ó
ù`]c           @   sU   d  d l  Z  d  d l m Z d  d l Z d  d l m Z d e  j f d „  ƒ  YZ d S(   iÿÿÿÿN(   t   Counter(   t
   Vocabularyt   NgramModelVocabularyTestsc           B   sÈ   e  Z d  Z e d „  ƒ 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 d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   s   tests Vocabulary Classc         C   s@   t  d d d d d d d d d d d d d	 g d
 d ƒ|  _ d  S(   Nt   zt   at   bt   ct   ft   dt   et   gt   wt
   unk_cutoffi   (   R   t   vocab(   t   cls(    (    s@   lib/python2.7/site-packages/nltk/test/unit/lm/test_vocabulary.pyt
   setUpClass   s    -c         C   s   |  j  |  j ƒ d  S(   N(   t
   assertTrueR   (   t   self(    (    s@   lib/python2.7/site-packages/nltk/test/unit/lm/test_vocabulary.pyt   test_truthiness   s    c         C   s   |  j  |  j j d ƒ d  S(   Ni   (   t   assertEqualR   t   cutoff(   R   (    (    s@   lib/python2.7/site-packages/nltk/test/unit/lm/test_vocabulary.pyt   test_cutoff_value_set_correctly   s    c         C   s&   |  j  t ƒ  d |  j _ Wd  QXd  S(   Ni   (   t   assertRaisest   AttributeErrorR   R   (   R   (    (    s@   lib/python2.7/site-packages/nltk/test/unit/lm/test_vocabulary.pyt   test_unable_to_change_cutoff    s    c         C   sK   |  j  t ƒ  } t d d d ƒWd  QXd } |  j | t | j ƒ ƒ d  S(   Nt   abcR   i    s*   Cutoff value cannot be less than 1. Got: 0(   R   t
   ValueErrorR   R   t   strt	   exception(   R   t   exc_infot   expected_error_msg(    (    s@   lib/python2.7/site-packages/nltk/test/unit/lm/test_vocabulary.pyt   test_cutoff_setter_checks_value$   s    c         C   sR   |  j  |  j j d d ƒ |  j  |  j j d d ƒ |  j  |  j j d d ƒ d  S(   NR   i   R   R   i   (   R   R   t   counts(   R   (    (    s@   lib/python2.7/site-packages/nltk/test/unit/lm/test_vocabulary.pyt   test_counts_set_correctly*   s    c         C   sF   |  j  d |  j k ƒ |  j d |  j k ƒ |  j d |  j k ƒ d  S(   NR   R   R   (   R   R   t   assertFalse(   R   (    (    s@   lib/python2.7/site-packages/nltk/test/unit/lm/test_vocabulary.pyt%   test_membership_check_respects_cutoff/   s    c         C   s   |  j  d t |  j ƒ ƒ d  S(   Ni   (   R   t   lenR   (   R   (    (    s@   lib/python2.7/site-packages/nltk/test/unit/lm/test_vocabulary.pyt   test_vocab_len_respects_cutoff7   s    c      	   C   s{   d d d d d d d d d	 g	 } d d d d d
 g } t  j |  | t |  j j j ƒ  ƒ ƒ t  j |  | t |  j ƒ ƒ d  S(   NR   R   R   R   R	   R   R
   R   R   s   <UNK>(   t   sixt   assertCountEqualt   listR   R    t   keys(   R   t   vocab_countst   vocab_items(    (    s@   lib/python2.7/site-packages/nltk/test/unit/lm/test_vocabulary.pyt   test_vocab_iter_respects_cutoff<   s    !%c         C   so   t  d d ƒ } |  j t | ƒ d ƒ |  j | ƒ |  j | j | ƒ | j t d ƒ ƒ |  j | j | ƒ d  S(   NR   i   i    t   abcde(   R   R   R$   R"   t   assertInt	   unk_labelt   updateR(   (   R   t   empty(    (    s@   lib/python2.7/site-packages/nltk/test/unit/lm/test_vocabulary.pyt   test_update_empty_vocabC   s    c         C   s<   |  j  |  j j d ƒ d ƒ |  j  |  j j d ƒ d ƒ d  S(   NR   R   s   <UNK>(   R   R   t   lookup(   R   (    (    s@   lib/python2.7/site-packages/nltk/test/unit/lm/test_vocabulary.pyt   test_lookupL   s    c         C   s‰   |  j  |  j j d d g ƒ d ƒ |  j  |  j j d ƒ d ƒ |  j  |  j j d	 ƒ d
 ƒ |  j  |  j j t t t d ƒ ƒ ƒ d ƒ d  S(   NR   R   R   s   <UNK>i   (   R   R   (   R   R   (   R   R   (   R   R   (   R   s   <UNK>(   s   <UNK>s   <UNK>s   <UNK>(   R   R   R3   t   mapR   t   range(   R   (    (    s@   lib/python2.7/site-packages/nltk/test/unit/lm/test_vocabulary.pyt   test_lookup_iterablesP   s
    "c         C   s   |  j  |  j j d ƒ d ƒ |  j  |  j j g  ƒ d ƒ |  j  |  j j t g  ƒ ƒ d ƒ |  j  |  j j d „  t d d ƒ Dƒ ƒ d ƒ d  S(   Nc         s   s   |  ] } | Vq d  S(   N(    (   t   .0t   n(    (    s@   lib/python2.7/site-packages/nltk/test/unit/lm/test_vocabulary.pys	   <genexpr>\   s    i    (    (    (    (    (    (   R   R   R3   t   iterR6   (   R   (    (    s@   lib/python2.7/site-packages/nltk/test/unit/lm/test_vocabulary.pyt   test_lookup_empty_iterablesX   s    "c         C   sŽ   |  j  |  j j d d g d d g g ƒ d d f ƒ |  j  |  j j d d g d g ƒ d ƒ |  j  |  j j d d g g g g g ƒ d ƒ d  S(   NR   R   R   s   <UNK>(   R   R   (   R   s   <UNK>(   R   R   (   (   R   R   s   <UNK>(   R   R   (   (   R   R   (   (   (   R   R   (   (   (   (   R   R   (   (   (   (   (   R   R   (   R   R   R3   (   R   (    (    s@   lib/python2.7/site-packages/nltk/test/unit/lm/test_vocabulary.pyt   test_lookup_recursive^   s    .(c      	   C   s\   |  j  t ƒ  |  j j d  ƒ Wd  QX|  j  t ƒ ! t |  j j d  d  g ƒ ƒ Wd  QXd  S(   N(   R   t	   TypeErrorR   R3   t   NoneR(   (   R   (    (    s@   lib/python2.7/site-packages/nltk/test/unit/lm/test_vocabulary.pyt   test_lookup_Nonee   s    c      	   C   s\   |  j  t ƒ  |  j j d ƒ Wd  QX|  j  t ƒ ! t |  j j d d g ƒ ƒ Wd  QXd  S(   Ni   i   (   R   R=   R   R3   R(   (   R   (    (    s@   lib/python2.7/site-packages/nltk/test/unit/lm/test_vocabulary.pyt   test_lookup_intk   s    c         C   s    |  j  |  j j d ƒ d ƒ d  S(   Nt    s   <UNK>(   R   R   R3   (   R   (    (    s@   lib/python2.7/site-packages/nltk/test/unit/lm/test_vocabulary.pyt   test_lookup_empty_strq   s    c         C   s£   t  d d d g d d ƒ} t  d d d g d d ƒ} t  d d d g d d d d ƒ} t  d d g d d ƒ} |  j | | ƒ |  j | | ƒ |  j | | ƒ d  S(   NR   R   R   R   i   R/   t   blah(   R   R   t   assertNotEqual(   R   t   v1t   v2t   v3t   v4(    (    s@   lib/python2.7/site-packages/nltk/test/unit/lm/test_vocabulary.pyt   test_eqalityt   s    !c         C   s   |  j  t |  j ƒ d ƒ d  S(   Ns8   <Vocabulary with cutoff=2 unk_label='<UNK>' and 5 items>(   R   R   R   (   R   (    (    s@   lib/python2.7/site-packages/nltk/test/unit/lm/test_vocabulary.pyt   test_str~   s    c         C   sP   |  j  |  j t t d d d d d d d d d d d d d	 g ƒ d
 d ƒƒ d  S(   NR   R   R   R   R   R   R	   R
   R   R   i   (   R   R   R   R    (   R   (    (    s@   lib/python2.7/site-packages/nltk/test/unit/lm/test_vocabulary.pyt   test_creation_with_counter„   s    0(   t   __name__t
   __module__t   __doc__t   classmethodR   R   R   R   R   R!   R#   R%   R,   R2   R4   R7   R;   R<   R?   R@   RB   RI   RJ   RK   (    (    (    s@   lib/python2.7/site-packages/nltk/test/unit/lm/test_vocabulary.pyR      s*   																		
	(   t   unittestt   collectionsR    R&   t   nltk.lmR   t   TestCaseR   (    (    (    s@   lib/python2.7/site-packages/nltk/test/unit/lm/test_vocabulary.pyt   <module>	   s   