
    g                     f    d Z ddlZddlmZ ddlmZmZmZ ddlm	Z	  G d dej                        Zy)z(
Tests for IBM Model 2 training methods
    Ndefaultdict)AlignedSentIBMModel	IBMModel2)AlignmentInfoc                       e Zd Zd Zd Zd Zy)TestIBMModel2c                    t        ddgg d      t        g dddg      g}t        |d      }|j                  |       | j                  |j                  d   d   d   d	   d
       | j                  |j                  d	   d   d	   d   d       y )Nhameggsschinkenr   eierspamr   r   r   r   r            g      ?   gUUUUUU?)r   r   set_uniform_probabilitiesassertEqualalignment_tableselfcorpusmodel2s      W/var/www/openai/venv/lib/python3.12/site-packages/nltk/test/unit/translate/test_ibm2.py(test_set_uniform_alignment_probabilitiesz6TestIBMModel2.test_set_uniform_alignment_probabilities   s     )IJ866:JK
 61% 	((0 	//215a8;WE//215a8;WE    c                 V   t        ddgg d      t        g dddg      g}t        |d      }|j                  |       | j                  |j                  d   d   d	   d
   t
        j                         | j                  |j                  d
   d   d
   d   t
        j                         y )Nr   r   r   r   r   r   c   r   r   r   r   )r   r   r   r   r   r   MIN_PROBr   s      r   =test_set_uniform_alignment_probabilities_of_non_domain_valueszKTestIBMModel2.test_set_uniform_alignment_probabilities_of_non_domain_values   s     )IJ866:JK
 61% 	((0 	//3A6q9!<h>O>OP//226q9!<h>O>OPr    c                 F   g d}g d}t        ||      g}t        dd g|z   dg|z   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}
|	|
z  }| j                  t        |d      t        |d             y )N)ichessejagern   räucherschinken)ilovetoeatsmokedr   )r   r   r   r   r      r0   UNUSEDc                       t        t              S Nr   float r    r   <lambda>z5TestIBMModel2.test_prob_t_a_given_s.<locals>.<lambda>9   s	    E0Br    g\(\?r+   r&   r,   r)   r-   r.   r'   r/   r*   r   c                      t        d       S )Nc                      t        d       S )Nc                       t        t              S r3   r4   r6   r    r   r7   zYTestIBMModel2.test_prob_t_a_given_s.<locals>.<lambda>.<locals>.<lambda>.<locals>.<lambda>B   s	    K<Nr    r   r6   r    r   r7   zGTestIBMModel2.test_prob_t_a_given_s.<locals>.<lambda>.<locals>.<lambda>B   s
    4N(Or    r   r6   r    r   r7   z5TestIBMModel2.test_prob_t_a_given_s.<locals>.<lambda>B   s
    K OPr    g
ףp=
?r   r   r0      r   r   r   gQ?gX?gh\?)	r   r   r   r   translation_tabler   prob_t_a_given_sr   round)r   src_sentencetrg_sentencer   alignment_infor<   r   r   probabilitylexical_translation	alignmentexpected_probabilitys               r   test_prob_t_a_given_sz#TestIBMModel2.test_prob_t_a_given_s-   s   HBlL9:&!F\!J%	
 ((BC(,#u%,0&!&)(,$%+/% (:>(#$677;% !34%P
 '+1a #&*1a #&*1a #&*1a #&*1a #&*1a #61%#4 !0 --n= F;	2Y>{A.6JA0NOr    N)__name__
__module____qualname__r   r$   rF   r6   r    r   r
   r
      s    F Q )Pr    r
   )__doc__unittestcollectionsr   nltk.translater   r   r   nltk.translate.ibm_modelr   TestCaser
   r6   r    r   <module>rP      s1     # ; ; 2JPH%% JPr    