o
    i                     @   sN   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 dej
ZdS )z(
Tests for IBM Model 2 training methods
    Ndefaultdict)AlignedSentIBMModel	IBMModel2)AlignmentInfoc                   @   s$   e Zd Zdd Zdd Zdd ZdS )TestIBMModel2c                 C   sx   t ddgg dt g dddgg}t|d}|| | |jd d d d	 d
 | |jd	 d d	 d d d S )Nhameggsschinkenr   eierspamr   r   r   r   r            g      ?   gUUUUUU?)r   r   set_uniform_probabilitiesassertEqualalignment_tableselfcorpusmodel2 r   ]/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/nltk/test/unit/translate/test_ibm2.py(test_set_uniform_alignment_probabilities   s   

"z6TestIBMModel2.test_set_uniform_alignment_probabilitiesc                 C   s|   t ddgg dt g dddgg}t|d}|| | |jd d d	 d
 tj | |jd
 d d
 d tj d S )Nr	   r
   r   r   r   r   c   r   r   r   r   )r   r   r   r   r   r   MIN_PROBr   r   r   r   =test_set_uniform_alignment_probabilities_of_non_domain_values   s   

 $zKTestIBMModel2.test_set_uniform_alignment_probabilities_of_non_domain_valuesc                 C   sZ  g d}g d}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 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 d< t|d}||_||_||}d}	d}
|	|
 }| t|dt|d d S )N)ichessejagern   räucherschinken)ilovetoeatsmokedr	   )r   r   r   r   r      r+   UNUSEDc                   S      t tS Nr   floatr   r   r   r   <lambda>9       z5TestIBMModel2.test_prob_t_a_given_s.<locals>.<lambda>g\(\?r&   r!   r'   r$   r(   r)   r"   r*   r%   r	   c                   S      t dd S )Nc                   S   r3   )Nc                   S   r-   r.   r/   r   r   r   r   r1   B   r2   zYTestIBMModel2.test_prob_t_a_given_s.<locals>.<lambda>.<locals>.<lambda>.<locals>.<lambda>r   r   r   r   r   r1   B       zGTestIBMModel2.test_prob_t_a_given_s.<locals>.<lambda>.<locals>.<lambda>r   r   r   r   r   r1   B   r4   g
ףp=
?r   r   r+      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_infor6   r   r   probabilitylexical_translation	alignmentexpected_probabilityr   r   r   test_prob_t_a_given_s-   sB   

z#TestIBMModel2.test_prob_t_a_given_sN)__name__
__module____qualname__r   r    r@   r   r   r   r   r      s    r   )__doc__unittestcollectionsr   nltk.translater   r   r   nltk.translate.ibm_modelr   TestCaser   r   r   r   r   <module>   s    