
`]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 4 training methods
iN(   t   defaultdict(   t   AlignedSent(   t   IBMModel(   t	   IBMModel4(   t   AlignmentInfot   TestIBMModel4c           B   s#   e  Z d    Z d   Z d   Z RS(   c         C   s  i d d 6d d 6d d 6} i d d 6d d 6d d 6} t  d d g d d d g  t  d d d d g d d g  g } t | d | |  } | j |  d	 d d } |  j | j d d d |  |  j | j d d d |  |  j | j d d |  |  j | j d d |  d  S(   Ni    t   schinkent   eieri   t   spamt   hamt   eggsi   g      ?i   i   ii   (   R   R   t   set_uniform_probabilitiest   assertEqualt   head_distortion_tablet   non_head_distortion_table(   t   selft   src_classest   trg_classest   corpust   model4t   expected_prob(    (    sA   lib/python2.7/site-packages/nltk/test/unit/translate/test_ibm4.pyt>   test_set_uniform_distortion_probabilities_of_max_displacements   s    $c         C   s  i d d 6d d 6d d 6} i d d 6d d 6d d 6} 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 t j  |  j | j d
 d d t j  |  j | j d	 d t j  |  j | j d
 d t j  d  S(   Ni    R   R   i   R   R	   R
   i   i   id   (   R   R   R   R   R   R   t   MIN_PROBR   (   R   R   R   R   R   (    (    sA   lib/python2.7/site-packages/nltk/test/unit/translate/test_ibm4.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 } i d d 6d d 6d d 6d d 6d d 6} i d d 6d d
 6d d 6d d 6d d 6d d	 6} 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 <t 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" 6|
 d# 6d  d$ 6} t | d | | |  } | j |  } d t d d  t d% d  } d/ } d4 } d9 } | | | | } |  j t | d  t | d   d  S(:   Nt   icht   esset   jat   gerns   räucherschinkent   it   lovet   tot   eatt   smokedR	   i    i   i   i   i   i   t   UNUSEDi   c           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_ibm4.pyt   <lambda>K   t    (   R    (    (    (    sA   lib/python2.7/site-packages/nltk/test/unit/translate/test_ibm4.pyR#   K   R$   g
ףp=
?ic           S   s
   t  t  S(   N(   R    R"   (    (    (    sA   lib/python2.7/site-packages/nltk/test/unit/translate/test_ibm4.pyR#   R   R$   gQ?c           S   s
   t  t  S(   N(   R    R"   (    (    (    sA   lib/python2.7/site-packages/nltk/test/unit/translate/test_ibm4.pyR#   U   R$   g\(\?c           S   s
   t  t  S(   N(   R    R"   (    (    (    sA   lib/python2.7/site-packages/nltk/test/unit/translate/test_ibm4.pyR#   ]   R$   gGz?g+?gK7A`?t   p1t   translation_tableR   R   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Q?g&4?gJQT?gW92?(	   R   R   t   NoneR    R   t   prob_t_a_given_st   powR   t   round(   R   t   src_sentencet   trg_sentenceR   R   R   t   alignment_infoR   R   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_ibm4.pyt   test_prob_t_a_given_s<   s^    )0

-
 (   t   __name__t
   __module__R   R   R7   (    (    (    sA   lib/python2.7/site-packages/nltk/test/unit/translate/test_ibm4.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_ibm4.pyt   <module>   s   