
    /h                     `    S SK r S SKrS SKJr  S SKJr  S SKJr   " S S5      r " S S5      r	g)	    N)FreqDist)NgramCounter
everygramsc                   X    \ 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g)TestNgramCounter   zATests for NgramCounter that only involve lookup, no modification.c                     [        S5      [        S5      /n[        S U 5       5      U l        [        S U 5       5      U l        [        R
                  " 5       U l        g )Nabcdegdbec              3   6   #    U  H  n[        US S9v   M     g7f)   max_lenNr   .0sents     V/var/www/auris/envauris/lib/python3.13/site-packages/nltk/test/unit/lm/test_counter.py	<genexpr>/TestNgramCounter.setup_class.<locals>.<genexpr>   s      ,
48DJtQ'D   c              3   6   #    U  H  n[        US S9v   M     g7f)   r   Nr   r   s     r   r   r      s     *XSW4:dA+FSWr   )listr   trigram_counterbigram_counterunittestTestCasecase)selftexts     r   setup_classTestNgramCounter.setup_class   sT    Vd7m,+ ,
48,
  
 +*XSW*XX%%'	    c                     U R                   R                  5       S:X  d   eU R                  R                  5       S:X  d   eg )N      )r   Nr   r    s    r   test_NTestNgramCounter.test_N   s<    ""$$&",,,##%%'2---r$   c                     [        U R                  5      S:X  d   eU R                  S     [        U R                  5      S:X  d   eg )Nr   2   r   )lenr   r)   s    r   $test_counter_len_changes_with_lookup5TestNgramCounter.test_counter_len_changes_with_lookup!   sB    4&&'1,,,B4&&'1,,,r$   c                 V    U R                   S   U R                   R                  :X  d   eg )N   )r   unigramsr)   s    r    test_ngram_order_access_unigrams1TestNgramCounter.test_ngram_order_access_unigrams&   s'    ""1%)<)<)E)EEEEr$   c                    [         R                  " 5       n/ SQn/ SQnU R                  S   nU R                  S   nU R                  R	                  X4R                  5       5        U R                  R	                  X%R                  5       5        g )N)ab)r9   c)eg)r<   d)r=   r9   )r8   )r9   )r=   )r;   r:   )r<   r   r   )r   r   r   r   assertCountEqual
conditions)r    r   expected_trigram_contextsexpected_bigram_contextsbigramstrigramss         r   test_ngram_conditional_freqdist0TestNgramCounter.test_ngram_conditional_freqdist)   sy      "%
! $T &&q)''*		""#;=O=O=QR		""#<>Q>Q>STr$   c                 h    U R                   S/   S   S:X  d   eU R                   S/   S   S:X  d   eg )Nr8   r9   r2   r:   r   r)   s    r   test_bigram_counts_seen_ngrams/TestNgramCounter.test_bigram_counts_seen_ngrams:   sB    ""C5)#.!333""C5)#.!333r$   c                 6    U R                   S/   S   S:X  d   eg )Nr9   zr   rI   r)   s    r    test_bigram_counts_unseen_ngrams1TestNgramCounter.test_bigram_counts_unseen_ngrams>   s"    ""C5)#.!333r$   c                 .    U R                   S   S:X  d   eg )Nr9   r   rI   r)   s    r   test_unigram_counts_seen_words/TestNgramCounter.test_unigram_counts_seen_wordsA       ""3'1,,,r$   c                 .    U R                   S   S:X  d   eg )NrM   r   rI   r)   s    r   +test_unigram_counts_completely_unseen_words<TestNgramCounter.test_unigram_counts_completely_unseen_wordsD   rS   r$   )r   r   r   N)__name__
__module____qualname____firstlineno____doc__classmethodr"   r*   r/   r4   rF   rJ   rN   rQ   rU   __static_attributes__ r$   r   r   r      sA    K( (.-
FU"44--r$   r   c                       \ rS rSr\S 5       r\R                  R                  SS/ S/5      S 5       r	S r
S rS	 rS
 rSrg)TestNgramCounterTrainingH   c                 V    [        5       U l        [        R                  " 5       U l        g )N)r   counterr   r   r   r)   s    r   r"   $TestNgramCounterTraining.setup_classI   s    #~%%'	r$   r    Nc                 P    [        U5      nSU;  d   eUS   [        5       :X  d   eg )Nr   r2   )r   r   )r    r   tests      r   test_empty_inputs*TestNgramCounterTraining.test_empty_inputsN   s,    D!}}Aw(*$$$r$   c                     [        S5      n[        U Vs/ s H  o"4PM     sn/5      nUS   (       a   eUS   (       a   eU R                  R                  XS   R	                  5       5        g s  snf )Nr   r   r   r2   )r   r   r   r@   keys)r    wordswrc   s       r   test_train_on_unigrams/TestNgramCounterTraining.test_train_on_unigramsT   sa    Vu 5u!u 5671:~1:~		""5!*//*;<	 !6s   A.c                 "   / SQnSS/SS/SS//n[         R                  " [        5         [        U/5        S S S 5        [         R                  " [        5         [        U/5        S S S 5        g ! , (       d  f       N>= f! , (       d  f       g = f)N)Checkthisout!rq   rr   rs   rt   )pytestraises	TypeErrorr   )r    str_sent	list_sents      r   test_train_on_illegal_sentences8TestNgramCounterTraining.test_train_on_illegal_sentences\   sm    0v&%F	]]9%($ & ]]9%)% &% &% &%s   A/B /
A= 
Bc                 N    SS/n[        U/5      n[        US   5      (       a   eg )Nr7   r:   r=   r   )r   bool)r    bigram_sentrc   s      r   test_train_on_bigrams.TestNgramCounterTraining.test_train_on_bigramsf   s0    !:.}-
#####r$   c                 @   / SQn[        U/5      nS/nSS/nS/nU R                  R                  X2S   R                  5       5        U R                  R                  XBS   R                  5       5        U R                  R                  XRS   R                  5       5        g )	N)r7   r}   )r;   fr<   )hr   r>   r?   )r;   r   r2   r   r   )r   r   r@   rk   )r    
mixed_sentrc   r3   bigram_contextstrigram_contextss         r   test_train_on_mix*TestNgramCounterTraining.test_train_on_mixk   s    F

|,5!6*&<		""8QZ__->?		""?AJOO4EF		""#3QZ__5FGr$   )r   rc   )rW   rX   rY   rZ   r\   r"   ru   markparametrizerh   rn   rz   r   r   r]   r^   r$   r   r`   r`   H   sT    ( ( [[Vb"d^4% 5%
=&$
	Hr$   r`   )
r   ru   nltkr   nltk.lmr   	nltk.utilr   r   r`   r^   r$   r   <module>r      s-          4- 4-n,H ,Hr$   