
    \j                     `    d dl Z d dlmZ d Zd Zd Zd Zd Zd Zd	 Z	d
 Z
d Zd Zd Zd Zy)    N
windowdiffc                      t        ddd      dk(  sJ t        ddd      dk(  sJ t        ddd      dk(  sJ t        dd	d      dk(  sJ y )
N0001000           111   000      ?010101101010r        J/root/env/lib/python3.12/site-packages/nltk/test/unit/test_segmentation.pytest_basic_functionalityr      s`    iA.#555eUA&#--- eUA&#---h!,333r   c                  T    t        dddd      dk(  sJ t        dddd      dk(  sJ y )	Naaaabar   bboundaryr   1110111r
   0r   r   r   r   test_boundary_marker_variationsr      s4    h!c:cAAAiA<CCCr   c                      t        dddd      dk(  sJ t        ddd	d      d
k(  sJ t        dddd      dk(  sJ t        ddd	d      d
k(  sJ y )Nr   0000100r   Tweightedg?r   1111011r
   gUUUUUU?Fr   r   r   r   test_weighted_vs_unweightedr       sj    iA=DDDiA=ASSSS iA>#EEEiA>BTTTTr   c                      t        ddd      dk(  sJ t        ddd      dk(  sJ t        ddd      dk(  sJ t        d	d
d      dk(  sJ y )Nr      r   1r   r   001r   r	   110r   r   r   r   test_edge_casesr&       s`    c3"c)))c3"c))) eUA&#---eUA&#---r   c                     t        j                  t        d      5  t        ddd       d d d        t        j                  t        d      5  t        ddd       d d d        t        j                  t        d	      5  t        d
d
d       d d d        t        j                  t        d	      5  t        ddd       d d d        y # 1 sw Y   xY w# 1 sw Y   xxY w# 1 sw Y   SxY w# 1 sw Y   y xY w)Nz!Segmentations have unequal length)matchr   0000r
   1111r	   r   zCWindow width k should be smaller or equal than segmentation lengths00   )pytestraises
ValueErrorr   r   r   r   test_error_handlingr0   *   s    	z)L	M %5&!$%	z)L	M %65!$% 
S
 " 	4q!	"
 
S
 $ 	5%#	$ $% %% %" "
$ $s/   CC>C/C*CCC'*C3c                  L    t        ddd      dk(  sJ t        ddd      dk(  sJ y )N  00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001i  r     0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101  1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010d   r   r   r   r   test_large_scale_casesr6   >   s2    &(8#>#EEEj*c2c999r   c                  L    t        ddd      dk(  sJ t        ddd      dk(  sJ y )	N
0101010101
1010101010r,   r   
1100110011
0011001100r   r   r   r   r   r    test_mixed_content_segmentationsr<   D   s0    lL!4;;;lL!4;;;r   c                  \    t        g dg dd      dk(  sJ t        g dg dd      dk(  sJ y )N)r   r   r"   r   r   )r   r   r   r"   r   r   r   )r"   r"   r"   r   r"   )r"   r"   r   r"   r"   r
   r   r   r   r   test_non_string_segmentationsr>   J   s0    o:cAAAo:cAAAr   c                  d    t        g dg ddd      dk(  sJ t        g dg dd	d
      dk(  sJ y )N)r   r   r"   r   )r   r"   r   r   r
   r"   r   gUUUUUU?)r"   r"   r   r"   )r"   r   r"   r"   r   r   r   r   r   r   r   "test_boundary_marker_as_non_stringr@   P   s5    lL!a@DVVVVlL!a@CGGGr   c                  L    t        ddd      dk(  sJ t        ddd      dk(  sJ y )	N	001001001	001001010r   g$I$I?	111000111	111111111r,   r   r   r   r   r   test_complex_patternsrF   V   s1    k;26IIIIk;2c999r   c                      d} d}d}t        | | d      dk(  sJ t        t        | |d      dz
        dk  sJ t        t        ||d      dz
        dk  sJ y	)
zGReference values from the windowdiff docstring (Pevzner & Hearst 2002).000100000010000010000100100000010000r   r   g333333?gư>g?N)r   abs)s1s2s3s      r   test_pevzner_hearst_examplesrO   \   sj    	B	B	Bb"a C'''z"b!$s*+d222z"b!$s*+d222r   c                      g d} | D ]D  \  }}}t        |||      t        |||      k(  sJ t        |||d      t        |||d      k(  rDJ  y)z:windowdiff(a, b, k) == windowdiff(b, a, k) for all inputs.))rH   rI   r   )rJ   rI   r   )r   r   r   )r   r   r   )r   r   r
   )rB   rC   r   Tr   Nr   )pairsseg1seg2ks       r   test_symmetryrU   f   sm    E  
dA$a(JtT1,EEEE$a$7:$D<
 
 	
 

r   )r-   nltk.metrics.segmentationr   r   r   r    r&   r0   r6   r<   r>   r@   rF   rO   rU   r   r   r   <module>rW      sK     04DU.$(:<BH:3
r   