
`]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 1 training methods
iN(   t   defaultdict(   t   AlignedSent(   t   IBMModel(   t	   IBMModel1(   t   AlignmentInfot   TestIBMModel1c           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  |  j | j d d  d d  d  S(	   Nt   hamt   eggst   schinkent   eiert   spami    g      ?i   (   R   R   t   set_uniform_probabilitiest   assertEqualt   translation_tablet   None(   t   selft   corpust   model1(    (    sA   lib/python2.7/site-packages/nltk/test/unit/translate/test_ibm1.pyt*   test_set_uniform_translation_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 t j  d  S(   NR   R   R   R	   R
   i    t   parrot(   R   R   R   R   R   R   t   MIN_PROB(   R   R   R   (    (    sA   lib/python2.7/site-packages/nltk/test/unit/translate/test_ibm1.pyt?   test_set_uniform_translation_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  } | | _ | j |  } 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_ibm1.pyt   <lambda>;   t    g\(\?(   i    i   i   i    i   i   i   g@ǘ?g7h>?gSKB;
?gčN?gX?(	   R   R   R   R    R   R   t   prob_t_a_given_sR   t   round(
   R   t   src_sentencet   trg_sentenceR   t   alignment_infoR   R   t   probabilityt   lexical_translationt   expected_probability(    (    sA   lib/python2.7/site-packages/nltk/test/unit/translate/test_ibm1.pyt   test_prob_t_a_given_s/   s*    

		(   t   __name__t
   __module__R   R   R+   (    (    (    sA   lib/python2.7/site-packages/nltk/test/unit/translate/test_ibm1.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_ibm1.pyt   <module>   s   