
`]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 2 training methods
iN(   t   defaultdict(   t   AlignedSent(   t   IBMModel(   t	   IBMModel2(   t   AlignmentInfot   TestIBMModel2c           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   alignment_table(   t   selft   corpust   model2(    (    sA   lib/python2.7/site-packages/nltk/test/unit/translate/test_ibm2.pyt(   test_set_uniform_alignment_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  d  S(   NR   R   R   R	   R
   i    ic   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_ibm2.pyt=   test_set_uniform_alignment_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   } 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 d d <d | d d d d <d | d d d d <t | d  } | | _ | | _ | j |  } d }	 d# }
 |	 |
 } |  j t	 | d  t	 | d   d  S($   Nt   icht   esset   jat   gerns   räucherschinkent   it   lovet   tot   eatt   smokedR   i    i   i   i   i   t   UNUSEDc           S   s
   t  t  S(   N(   R    t   float(    (    (    sA   lib/python2.7/site-packages/nltk/test/unit/translate/test_ibm2.pyt   <lambda><   t    g\(\?c           S   s   t  d    S(   Nc           S   s   t  d    S(   Nc           S   s
   t  t  S(   N(   R    R   (    (    (    sA   lib/python2.7/site-packages/nltk/test/unit/translate/test_ibm2.pyR   E   R    (   R    (    (    (    sA   lib/python2.7/site-packages/nltk/test/unit/translate/test_ibm2.pyR   E   R    (   R    (    (    (    sA   lib/python2.7/site-packages/nltk/test/unit/translate/test_ibm2.pyR   E   R    g
ףp=
?i   i   gQ?(   i    i   i   i    i   i   i   g@ǘ?g7h>?gSKB;
?gčN?gX?gQ?g&4?gJQT?gW92?gh\?(
   R   R   t   NoneR    R   t   translation_tableR   t   prob_t_a_given_sR   t   round(   R   t   src_sentencet   trg_sentenceR   t   alignment_infoR"   R   R   t   probabilityt   lexical_translationt	   alignmentt   expected_probability(    (    sA   lib/python2.7/site-packages/nltk/test/unit/translate/test_ibm2.pyt   test_prob_t_a_given_s0   s>    

			
(   t   __name__t
   __module__R   R   R,   (    (    (    sA   lib/python2.7/site-packages/nltk/test/unit/translate/test_ibm2.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_ibm2.pyt   <module>   s   