
    /h                     Z    S SK r S SKJr  S SKJr  S SKJr   " S S\ R                  5      rg)    N)Counter)timeit)
Vocabularyc                       \ rS rSrSr\S 5       rS rS rS r	S r
S rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS r\R6                  " SS9S 5       rSrg)NgramModelVocabularyTests   ztests Vocabulary Classc                 &    [        / SQSS9U l        g N)zabcfdegr   r   r   r   w   
unk_cutoff)r   vocab)clss    Y/var/www/auris/envauris/lib/python3.13/site-packages/nltk/test/unit/lm/test_vocabulary.py
setUpClass$NgramModelVocabularyTests.setUpClass   s    M
	    c                 :    U R                  U R                  5        g N)
assertTruer   selfs    r   test_truthiness)NgramModelVocabularyTests.test_truthiness   s    

#r   c                 P    U R                  U R                  R                  S5        g )Nr   )assertEqualr   cutoffr    s    r   test_cutoff_value_set_correctly9NgramModelVocabularyTests.test_cutoff_value_set_correctly   s    **A.r   c                     U R                  [        5         SU R                  l        S S S 5        g ! , (       d  f       g = f)N   )assertRaisesAttributeErrorr   r&   r    s    r   test_unable_to_change_cutoff6NgramModelVocabularyTests.test_unable_to_change_cutoff   s(    ~. !DJJ /..s   1
?c                     U R                  [        5       n[        SSS9  S S S 5        SnU R                  U[	        WR
                  5      5        g ! , (       d  f       N6= f)Nabcr   r   z*Cutoff value cannot be less than 1. Got: 0)r+   
ValueErrorr   r%   str	exception)r!   exc_infoexpected_error_msgs      r   test_cutoff_setter_checks_value9NgramModelVocabularyTests.test_cutoff_setter_checks_value#   sL    z*hu+ +I+S1C1C-DE +*s   A
Ac                     U R                  U R                  R                  S   S5        U R                  U R                  R                  S   S5        U R                  U R                  R                  S   S5        g )Nr   r   r   r      )r%   r   countsr    s    r   test_counts_set_correctly3NgramModelVocabularyTests.test_counts_set_correctly)   s_    **3/3**3/3**3/3r   c                     U R                  SU R                  ;   5        U R                  SU R                  ;   5        U R                  SU R                  ;   5        g )Nr   r   r   )r   r   assertFalser    s    r   %test_membership_check_respects_cutoff?NgramModelVocabularyTests.test_membership_check_respects_cutoff.   sE    tzz)*

*+

*+r   c                 N    U R                  S[        U R                  5      5        g )N   )r%   lenr   r    s    r   test_vocab_len_respects_cutoff8NgramModelVocabularyTests.test_vocab_len_respects_cutoff6   s     	C

O,r   c                     / SQn/ SQnU R                  U[        U R                  R                  R	                  5       5      5        U R                  U[        U R                  5      5        g )N)	r   r   r   r   r   r   r   r   r   )r   r   r   r   <UNK>)assertCountEquallistr   r:   keys)r!   vocab_countsvocab_itemss      r   test_vocab_iter_respects_cutoff9NgramModelVocabularyTests.test_vocab_iter_respects_cutoff;   sM    D3lD1B1B1G1G1I,JKk4

+;<r   c                    [        SS9nU R                  [        U5      S5        U R                  U5        U R	                  UR
                  U5        UR                  [        S5      5        U R	                  UR
                  U5        g )Nr   r   r   abcde)r   r%   rC   r>   assertIn	unk_labelupdaterI   )r!   emptys     r   test_update_empty_vocab1NgramModelVocabularyTests.test_update_empty_vocabB   sb    a(UQ'eoou-T']#eoou-r   c                     U R                  U R                  R                  S5      S5        U R                  U R                  R                  S5      S5        g )Nr   r   rG   r%   r   lookupr    s    r   test_lookup%NgramModelVocabularyTests.test_lookupK   s@    **3/5**3/9r   c           
         U R                  U R                  R                  SS/5      S5        U R                  U R                  R                  S5      S5        U R                  U R                  R                  S5      S5        U R                  U R                  R                  [        [        [        S5      5      5      S5        g )Nr   r   r   r   )r   r   r   rG   r*   )rG   rG   rG   )r%   r   rY   mapr2   ranger    s    r   test_lookup_iterables/NgramModelVocabularyTests.test_lookup_iterablesO   s    **C:6
C**:6
C**:6GJJc#uQx013N	
r   c           	         U R                  U R                  R                  S5      S5        U R                  U R                  R                  / 5      S5        U R                  U R                  R                  [        / 5      5      S5        U R                  U R                  R                  S [	        SS5       5       5      S5        g )N c              3   $   #    U  H  ov   M     g 7fr   rd   ).0ns     r   	<genexpr>HNgramModelVocabularyTests.test_lookup_empty_iterables.<locals>.<genexpr>[   s     *Bk1ks   r   )r%   r   rY   iterr`   r    s    r   test_lookup_empty_iterables5NgramModelVocabularyTests.test_lookup_empty_iterablesW   s    **2.3**2.3**484b9***BeAqk*BBBGr   c                 &   U R                  U R                  R                  SS/SS//5      S5        U R                  U R                  R                  SS/S/5      S5        U R                  U R                  R                  SS/////5      S5        g )Nr   r   r   )r]   r^   )r]   rG   ))))r]   rX   r    s    r   test_lookup_recursive/NgramModelVocabularyTests.test_lookup_recursive]   s    JJSzC:679U	
 	**S#J+<=?TU**Szl^,<+=>@VWr   c                 B   U R                  [        5         U R                  R                  S 5        S S S 5        U R                  [        5         [	        U R                  R                  S S /5      5        S S S 5        g ! , (       d  f       NS= f! , (       d  f       g = fr   r+   	TypeErrorr   rY   rI   r    s    r   test_lookup_None*NgramModelVocabularyTests.test_lookup_Noned   sh    y)JJd# *y)""D$<01 *) *)))   A?'B?
B
Bc                 B   U R                  [        5         U R                  R                  S5        S S S 5        U R                  [        5         [	        U R                  R                  SS/5      5        S S S 5        g ! , (       d  f       NS= f! , (       d  f       g = f)Nr9   r   rq   r    s    r   test_lookup_int)NgramModelVocabularyTests.test_lookup_intj   sh    y)JJa  *y)""Aq6*+ *) *)))ru   c                 Z    U R                  U R                  R                  S5      S5        g )N rG   rX   r    s    r   test_lookup_empty_str/NgramModelVocabularyTests.test_lookup_empty_strp   s!    **2.8r   c                     [        / SQSS9n[        / SQSS9n[        / SQSSS9n[        SS/SS9nU R                  X5        U R                  X5        U R                  X5        g )N)r   r   r   r9   r   blah)r   rR   r   r   )r   r%   assertNotEqual)r!   v1v2v3v4s        r   test_eqality&NgramModelVocabularyTests.test_eqalitys   sb    A6A6AHc
q1 B#B#r   c                 N    U R                  [        U R                  5      S5        g )Nz8<Vocabulary with cutoff=2 unk_label='<UNK>' and 5 items>)r%   r2   r   r    s    r   test_str"NgramModelVocabularyTests.test_str}   s    

OW	
r   c           	      b    U R                  U R                  [        [        / SQ5      SS95        g r
   )r%   r   r   r   r    s    r   test_creation_with_counter4NgramModelVocabularyTests.test_creation_with_counter   s/    JJU 		
r   z?Test is known to be flaky as it compares (runtime) performance.)reasonc                     [        S5      nSSKJn  [        UR                  5       5      n[	        S[        5       S9n[	        S[        5       S9nU R                  XESS9  g )	NrP   r   )englishzlen(small_vocab))globalszlen(large_vocab)r9   )places)r   nltk.corpus.europarl_rawr   wordsr   localsassertAlmostEqual)r!   small_vocabr   large_vocabsmall_vocab_len_timelarge_vocab_len_times         r   test_len_is_constant.NgramModelVocabularyTests.test_len_is_constant   sZ    
 !)4 1  &&8&(K%&8&(K 	3RSTr   rd   N)__name__
__module____qualname____firstlineno____doc__classmethodr   r"   r'   r-   r6   r;   r?   rD   rM   rU   rZ   ra   rk   rn   rs   rw   r{   r   r   r   unittestskipr   __static_attributes__rd   r   r   r   r      s     
 
$/"F4
,-
=.:
HX2,9$

	
 ]]PUUr   r   )r   collectionsr   r   nltk.lmr   TestCaser   rd   r   r   <module>r      s)       MU 1 1 MUr   