ó
ù`]c           @   s~   d  d l  Z  d  d l Z d  d l m Z d  d l m Z d  d l m Z d e  j f d „  ƒ  YZ	 d e  j f d „  ƒ  YZ
 d S(	   iÿÿÿÿN(   t   FreqDist(   t   NgramCounter(   t
   everygramst   NgramCounterTestsc           B   se   e  Z d  Z e d „  ƒ Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d	 „  Z RS(
   sA   Tests for NgramCounter that only involve lookup, no modification.c         C   sN   t  d ƒ t  d ƒ g } t d „  | Dƒ ƒ |  _ t d „  | Dƒ ƒ |  _ d  S(   Nt   abcdt   egdbec         s   s!   |  ] } t  | d  d ƒVq d S(   t   max_leni   N(   R   (   t   .0t   sent(    (    s=   lib/python2.7/site-packages/nltk/test/unit/lm/test_counter.pys	   <genexpr>   s    c         s   s!   |  ] } t  | d  d ƒVq d S(   R   i   N(   R   (   R   R   (    (    s=   lib/python2.7/site-packages/nltk/test/unit/lm/test_counter.pys	   <genexpr>   s    (   t   listR   t   trigram_countert   bigram_counter(   t   clst   text(    (    s=   lib/python2.7/site-packages/nltk/test/unit/lm/test_counter.pyt
   setUpClass   s
    c         C   s6   |  j  |  j j ƒ  d ƒ |  j  |  j j ƒ  d ƒ d  S(   Ni   i   (   t   assertEqualR   t   NR
   (   t   self(    (    s=   lib/python2.7/site-packages/nltk/test/unit/lm/test_counter.pyt   test_N    s    c         C   sC   |  j  t |  j ƒ d ƒ |  j d } |  j  t |  j ƒ d ƒ d  S(   Ni   i2   i   (   R   t   lenR   (   R   t   _(    (    s=   lib/python2.7/site-packages/nltk/test/unit/lm/test_counter.pyt$   test_counter_len_changes_with_lookup$   s    c         C   s!   |  j  |  j d |  j j ƒ d  S(   Ni   (   R   R   t   unigrams(   R   (    (    s=   lib/python2.7/site-packages/nltk/test/unit/lm/test_counter.pyt    test_ngram_order_access_unigrams)   s    c         C   s}   d	 d
 d d d g } d d d d d d g } |  j  d } |  j  d } t j |  | | j ƒ  ƒ t j |  | | j ƒ  ƒ d  S(   Nt   at   bt   ct   et   gt   di   i   (   R   R   (   R   R   (   R   R   (   R   R   (   R   R   (   R   (   R   (   R   (   R   (   R   (   R   (   R
   t   sixt   assertCountEqualt
   conditions(   R   t   expected_trigram_contextst   expected_bigram_contextst   bigramst   trigrams(    (    s=   lib/python2.7/site-packages/nltk/test/unit/lm/test_counter.pyt   test_ngram_conditional_freqdist,   s    	c         C   sL   d } d } |  j  | |  j d g d ƒ |  j  | |  j d g d ƒ d  S(   Ni   R   R   R   (   R   R   (   R   t   b_given_a_countt   unk_given_b_count(    (    s=   lib/python2.7/site-packages/nltk/test/unit/lm/test_counter.pyt   test_bigram_counts_seen_ngrams<   s    c         C   s(   d } |  j  | |  j d g d ƒ d  S(   Ni    R   t   z(   R   R   (   R   t   z_given_b_count(    (    s=   lib/python2.7/site-packages/nltk/test/unit/lm/test_counter.pyt    test_bigram_counts_unseen_ngramsC   s    c         C   s!   d } |  j  | |  j d ƒ d  S(   Ni   R   (   R   R   (   R   t   expected_count_b(    (    s=   lib/python2.7/site-packages/nltk/test/unit/lm/test_counter.pyt   test_unigram_counts_seen_wordsH   s    c         C   s!   d } |  j  | |  j d ƒ d  S(   Ni    R)   (   R   R   (   R   t   unseen_count(    (    s=   lib/python2.7/site-packages/nltk/test/unit/lm/test_counter.pyt+   test_unigram_counts_completely_unseen_wordsM   s    (   t   __name__t
   __module__t   __doc__t   classmethodR   R   R   R   R%   R(   R+   R-   R/   (    (    (    s=   lib/python2.7/site-packages/nltk/test/unit/lm/test_counter.pyR      s   							t   NgramCounterTrainingTestsc           B   sP   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(   c         C   s   t  ƒ  |  _ d  S(   N(   R   t   counter(   R   (    (    s=   lib/python2.7/site-packages/nltk/test/unit/lm/test_counter.pyt   setUpT   s    c         C   s7   t  d ƒ } |  j d | ƒ |  j | d t ƒ  ƒ d  S(   Nt    i   i   (   R   t   assertNotInR   R    (   R   t   test(    (    s=   lib/python2.7/site-packages/nltk/test/unit/lm/test_counter.pyt   test_empty_stringW   s    c         C   s7   t  g  ƒ } |  j d | ƒ |  j | d t ƒ  ƒ d  S(   Ni   i   (   R   R8   R   R    (   R   R9   (    (    s=   lib/python2.7/site-packages/nltk/test/unit/lm/test_counter.pyt   test_empty_list\   s    c         C   s7   t  d  ƒ } |  j d | ƒ |  j | d t ƒ  ƒ d  S(   Ni   i   (   R   t   NoneR8   R   R    (   R   R9   (    (    s=   lib/python2.7/site-packages/nltk/test/unit/lm/test_counter.pyt	   test_Nonea   s    c         C   s€   t  d ƒ } t g  | D] } | f ^ q g ƒ } |  j t | d ƒ ƒ |  j t | d ƒ ƒ t j |  | | d j ƒ  ƒ d  S(   NR   i   i   i   (   R	   R   t   assertFalset   boolR   R   t   keys(   R   t   wordst   wR5   (    (    s=   lib/python2.7/site-packages/nltk/test/unit/lm/test_counter.pyt   test_train_on_unigramsf   s
    %c         C   s}   d d d d g } d d g d d g d d g g } |  j  t ƒ  t | g ƒ Wd  QX|  j  t ƒ  t | g ƒ Wd  QXd  S(   Nt   Checkt   thist   outt   !(   t   assertRaisest	   TypeErrorR   (   R   t   str_sentt	   list_sent(    (    s=   lib/python2.7/site-packages/nltk/test/unit/lm/test_counter.pyt   test_train_on_illegal_sentencesn   s    !c         C   s6   d d g } t  | g ƒ } |  j t | d ƒ ƒ d  S(   NR   R   R   R   i   (   R   R   (   R   R   (   R   R>   R?   (   R   t   bigram_sentR5   (    (    s=   lib/python2.7/site-packages/nltk/test/unit/lm/test_counter.pyt   test_train_on_bigramsx   s    c         C   sš   d d d d g } t  | g ƒ } d g } d d g } d g } t j |  | | d	 j ƒ  ƒ t j |  | | d
 j ƒ  ƒ t j |  | | d j ƒ  ƒ d  S(   NR   R   R   R   R   t   fR   t   hi   i   i   (   R   R   (   R   R   (   R   RO   R   (   RP   (   R   (   R   (   R   RO   (   R   R   R   R@   (   R   t
   mixed_sentR5   R   t   bigram_contextst   trigram_contexts(    (    s=   lib/python2.7/site-packages/nltk/test/unit/lm/test_counter.pyt   test_train_on_mix~   s    		(
   R0   R1   R6   R:   R;   R=   RC   RL   RN   RT   (    (    (    s=   lib/python2.7/site-packages/nltk/test/unit/lm/test_counter.pyR4   S   s   						
	(   t   unittestR   t   nltkR    t   nltk.lmR   t	   nltk.utilR   t   TestCaseR   R4   (    (    (    s=   lib/python2.7/site-packages/nltk/test/unit/lm/test_counter.pyt   <module>	   s   A