
`]c           @   s   d  Z  d d l Z d d l m Z d d l m Z d d l m Z d d l m Z d d l m	 Z	 d e j
 f d	     YZ d S(
   s(   
Tests for IBM Model 3 training methods
iN(   t   defaultdict(   t   AlignedSent(   t   IBMModel(   t	   IBMModel3(   t   AlignmentInfot   TestIBMModel3c           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s   t  d d g d d d g  t  d d d d g d d g  g } t | d  } | j |  |  j | j d d d d	 d
 d	  |  j | j d d	 d	 d d
 d  d  S(   Nt   hamt   eggst   schinkent   eiert   spami    i   i   i   g      ?i   (   R   R   t   set_uniform_probabilitiest   assertEqualt   distortion_table(   t   selft   corpust   model3(    (    sA   lib/python2.7/site-packages/nltk/test/unit/translate/test_ibm3.pyt)   test_set_uniform_distortion_probabilities   s    $'c         C   s   t  d d g d d d g  t  d d d d g d d g  g } t | d  } | j |  |  j | j d d d d t j  |  j | j d	 d d d
 t j  |  j | j d d	 d d
 t j  d  S(   NR   R   R   R	   R
   i    i   i   i	   i   (   R   R   R   R   R   R   t   MIN_PROB(   R   R   R   (    (    sA   lib/python2.7/site-packages/nltk/test/unit/translate/test_ibm3.pyt>   test_set_uniform_distortion_probabilities_of_non_domain_values    s    $&&c         C   s  d d d d d g } d d d d	 d
 d g } t  | |  g } t d" d  g | d g | d g d g d g g  d g d d g g  } t d    } d | d d d d <d | d d d d <d | d d d d <d | d d d d <d | d d d d <d | d d d d <t d    } d | d d <d | d d <d | d d  <d | d	 d <d | d
 d <d | d d <t d    } d | d d <d | d d <d | d d <d | d d <d | d d <d | d d  <i d d 6| d 6| d 6| d 6d  d  6} t | d |  }	 |	 j |  }
 d t d d  t d! d  } d+ } d0 } d5 } | | | | } |  j t |
 d  t | d   d  S(6   Nt   icht   esset   jat   gerns   räucherschinkent   it   lovet   tot   eatt   smokedR   i    i   i   i   i   t   UNUSEDi   i   c           S   s   t  d    S(   Nc           S   s   t  d    S(   Nc           S   s
   t  t  S(   N(   R    t   float(    (    (    sA   lib/python2.7/site-packages/nltk/test/unit/translate/test_ibm3.pyt   <lambda>>   t    (   R    (    (    (    sA   lib/python2.7/site-packages/nltk/test/unit/translate/test_ibm3.pyR   >   R    (   R    (    (    (    sA   lib/python2.7/site-packages/nltk/test/unit/translate/test_ibm3.pyR   >   R    g
ףp=
?c           S   s
   t  t  S(   N(   R    R   (    (    (    sA   lib/python2.7/site-packages/nltk/test/unit/translate/test_ibm3.pyR   G   R    g\(\?c           S   s
   t  t  S(   N(   R    R   (    (    (    sA   lib/python2.7/site-packages/nltk/test/unit/translate/test_ibm3.pyR   O   R    gGz?g+?gK7A`?t   p1t   translation_tableR   t   fertility_tablet   alignment_tableg-?(   i    i   i   i    i   i   i   gGz?gGz?g>٬\?g>٬\?g
}?g
}?gb3?gb3?gtSU?g@ǘ?g7h>?gSKB;
?gčN?gX?gQ?g&4?gJQT?gkǿz?gV紧?(	   R   R   t   NoneR    R   t   prob_t_a_given_st   powR   t   round(   R   t   src_sentencet   trg_sentenceR   t   alignment_infoR   R"   R#   t   probabilitiesR   t   probabilityt   null_generationt	   fertilityt   lexical_translationt
   distortiont   expected_probability(    (    sA   lib/python2.7/site-packages/nltk/test/unit/translate/test_ibm3.pyt   test_prob_t_a_given_s1   sX    

-
 (   t   __name__t
   __module__R   R   R3   (    (    (    sA   lib/python2.7/site-packages/nltk/test/unit/translate/test_ibm3.pyR      s   		(   t   __doc__t   unittestt   collectionsR    t   nltk.translateR   R   R   t   nltk.translate.ibm_modelR   t   TestCaseR   (    (    (    sA   lib/python2.7/site-packages/nltk/test/unit/translate/test_ibm3.pyt   <module>   s   