§
    �zIfÌ%  ã                   ó`   — d Z ddlZddlmZ ddlmZmZ ddlmZ  G d„ dej	        ¦  «        Z
dS )z4
Tests for common methods of IBM translation models
é    N©Údefaultdict)ÚAlignedSentÚIBMModel)ÚAlignmentInfoc                   óf   — e Zd Zg d¢Zg d¢Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestIBMModel)új'ÚaimeÚbienÚjambon©ÚiÚloveÚhamc                 ó4  — t          g d¢g d¢¦  «        t          g d¢g d¢¦  «        t          g dg¦  «        g}t          |¦  «        }|                      t          |j        ¦  «        d¦  «         |                      t          |j        ¦  «        d¦  «         d S )N)ÚoneÚtwoÚthreeÚfour)ÚunÚdeuxÚtrois)Úfiver   Úsix)ÚquatreÚcinqr   Úsepté   é   )r   r   ÚassertEqualÚlenÚ	src_vocabÚ	trg_vocab©ÚselfÚparallel_corporaÚ	ibm_models      ú[/var/www/piapp/venv/lib/python3.11/site-packages/nltk/test/unit/translate/test_ibm_model.pyÚ!test_vocabularies_are_initializedz.TestIBMModel.test_vocabularies_are_initialized   s§   € åÐ7Ð7Ð7Ð9PÐ9PÐ9PÑQÔQÝÐ.Ð.Ð.Ð0IÐ0IÐ0IÑJÔJÝ˜˜V˜HÑ%Ô%ð
Ðõ Ð-Ñ.Ô.ˆ	Ø×Ò�˜YÔ0Ñ1Ô1°1Ñ5Ô5Ð5Ø×Ò�˜YÔ0Ñ1Ô1°1Ñ5Ô5Ð5Ð5Ð5ó    c                 óÈ   — g }t          |¦  «        }|                      t          |j        ¦  «        d¦  «         |                      t          |j        ¦  «        d¦  «         d S )Né   r   )r   r!   r"   r#   r$   r%   s      r)   Ú9test_vocabularies_are_initialized_even_with_empty_corporazFTestIBMModel.test_vocabularies_are_initialized_even_with_empty_corpora   s^   € ØÐåÐ-Ñ.Ô.ˆ	Ø×Ò�˜YÔ0Ñ1Ô1°1Ñ5Ô5Ð5Ø×Ò�˜YÔ0Ñ1Ô1°1Ñ5Ô5Ð5Ð5Ð5r+   c                 óŽ  — t          t          j        t          j        ¦  «        }ddddddœddddddœddddddœd	œ}t	          d
„ ¦  «        }t          g ¦  «        }||_        ||_        |                     |¦  «        }|  	                    |j
        dd …         d¦  «         |  	                    |j        g dgdgg dgg¦  «         d S )NçÍÌÌÌÌÌì?çš™™™™™©?ç{®Gáz”?ç¸…ëQ¸ž?r   ©r
   r   r   r   Nç{®Gáz„?ç®Gáz®ï?r   c                  ó"   — t          d„ ¦  «        S )Nc                  ó"   — t          d„ ¦  «        S )Nc                  ó"   — t          d„ ¦  «        S )Nc                  ó   — dS ©Ngš™™™™™É?© r<   r+   r)   ú<lambda>zoTestIBMModel.test_best_model2_alignment.<locals>.<lambda>.<locals>.<lambda>.<locals>.<lambda>.<locals>.<lambda>.   ó   € ÐPS€ r+   r   r<   r+   r)   r=   z]TestIBMModel.test_best_model2_alignment.<locals>.<lambda>.<locals>.<lambda>.<locals>.<lambda>.   ó   € ½KÈÈÑ<TÔ<T€ r+   r   r<   r+   r)   r=   zKTestIBMModel.test_best_model2_alignment.<locals>.<lambda>.<locals>.<lambda>.   ó   € ­Ð4TÐ4TÑ(UÔ(U€ r+   r   r<   r+   r)   r=   z9TestIBMModel.test_best_model2_alignment.<locals>.<lambda>.   ó   € •KÐ UÐ UÑVÔV€ r+   r-   )r-   é   é   rB   é   ©r   r	   Ú _TestIBMModel__TEST_TRG_SENTENCEÚ _TestIBMModel__TEST_SRC_SENTENCEr   r   Útranslation_tableÚalignment_tableÚbest_model2_alignmentr!   Ú	alignmentÚcepts©r&   Úsentence_pairrH   rI   r(   Úa_infos         r)   Útest_best_model2_alignmentz'TestIBMModel.test_best_model2_alignment"   sû   € å#ÝÔ,­lÔ.Nñ
ô 
ˆð
  T°4À4ÈqÐQÐQØ¨°dÀdÐRVÐWÐWØ T°1ÀÈAÐNÐNð
ð 
Ðõ
 &ØVÐVñ
ô 
ˆõ ˜R‘L”Lˆ	Ø&7ˆ	Ô#Ø$3ˆ	Ô!ð ×0Ò0°Ñ?Ô?ˆð 	×Ò˜Ô)¨!¨"¨"Ô-¨yÑ9Ô9Ð9Ø×Ò˜œ¨¨Q¨C°!°°b¸1¸#Ð'>Ñ?Ô?Ð?Ð?Ð?r+   c           	      ó’  — t          t          j        t          j        ¦  «        }ddddddœddddddœddddddœd	œ}t	          d
„ ¦  «        }t          g ¦  «        }||_        ||_        |                     |dd¦  «        }|  	                    |j
        dd …         d¦  «         |  	                    |j        g dgg g ddgg¦  «         d S )Nr0   r1   r2   r3   r   r4   r5   r6   r   c                  ó"   — t          d„ ¦  «        S )Nc                  ó"   — t          d„ ¦  «        S )Nc                  ó"   — t          d„ ¦  «        S )Nc                  ó   — dS r;   r<   r<   r+   r)   r=   z�TestIBMModel.test_best_model2_alignment_does_not_change_pegged_alignment.<locals>.<lambda>.<locals>.<lambda>.<locals>.<lambda>.<locals>.<lambda>G   r>   r+   r   r<   r+   r)   r=   z~TestIBMModel.test_best_model2_alignment_does_not_change_pegged_alignment.<locals>.<lambda>.<locals>.<lambda>.<locals>.<lambda>G   r?   r+   r   r<   r+   r)   r=   zlTestIBMModel.test_best_model2_alignment_does_not_change_pegged_alignment.<locals>.<lambda>.<locals>.<lambda>G   r@   r+   r   r<   r+   r)   r=   zZTestIBMModel.test_best_model2_alignment_does_not_change_pegged_alignment.<locals>.<lambda>G   rA   r+   rB   rC   r-   )r-   rC   rC   rD   rE   rM   s         r)   Ú;test_best_model2_alignment_does_not_change_pegged_alignmentzHTestIBMModel.test_best_model2_alignment_does_not_change_pegged_alignment<   sý   € å#ÝÔ,­lÔ.Nñ
ô 
ˆð  T°4À4ÈqÐQÐQØ¨°dÀdÐRVÐWÐWØ T°1ÀÈAÐNÐNð
ð 
Ðõ
 &ØVÐVñ
ô 
ˆõ ˜R‘L”Lˆ	Ø&7ˆ	Ô#Ø$3ˆ	Ô!ð ×0Ò0°ÀÀ1ÑEÔEˆà×Ò˜Ô)¨!¨"¨"Ô-¨yÑ9Ô9Ð9Ø×Ò˜œ¨¨Q¨C°°R¸!¸Q¸Ð'@ÑAÔAÐAÐAÐAr+   c           
      ó   — t          g d¢t          j        ¦  «        }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„ ¦  «        }t	          g ¦  «        }||_        ||_        |                     |¦  «        }|                      |j	        dd …         d¦  «         |                      |j
        dgdgdgddgdgg¦  «         d S )N)r   Úreallyú,rX   r   r   r0   r1   r2   r3   r   r4   r5   g
×£p=
·?g333333Ó?çffffffæ?r6   )r   rX   rY   r   r   c                  ó"   — t          d„ ¦  «        S )Nc                  ó"   — t          d„ ¦  «        S )Nc                  ó"   — t          d„ ¦  «        S )Nc                  ó   — dS r;   r<   r<   r+   r)   r=   z…TestIBMModel.test_best_model2_alignment_handles_fertile_words.<locals>.<lambda>.<locals>.<lambda>.<locals>.<lambda>.<locals>.<lambda>c   r>   r+   r   r<   r+   r)   r=   zsTestIBMModel.test_best_model2_alignment_handles_fertile_words.<locals>.<lambda>.<locals>.<lambda>.<locals>.<lambda>c   r?   r+   r   r<   r+   r)   r=   zaTestIBMModel.test_best_model2_alignment_handles_fertile_words.<locals>.<lambda>.<locals>.<lambda>c   r@   r+   r   r<   r+   r)   r=   zOTestIBMModel.test_best_model2_alignment_handles_fertile_words.<locals>.<lambda>c   rA   r+   r-   )r-   rD   r   rD   rB   rC   rD   é   rB   rC   r    )r   r	   rG   r   r   rH   rI   rJ   r!   rK   rL   rM   s         r)   Ú0test_best_model2_alignment_handles_fertile_wordsz=TestIBMModel.test_best_model2_alignment_handles_fertile_wordsT   s(  € å#Ø9Ð9Ð9ÝÔ,ñ
ô 
ˆð  T°4À4ÈqÐQÐQØ¨°3À$ÈdÐSÐSØ 1¨c¸QÀcÐJÐJØ¨°dÀdÐRVÐWÐWØ T°1ÀÈAÐNÐNð
ð 
Ðõ &ØVÐVñ
ô 
ˆõ ˜R‘L”Lˆ	Ø&7ˆ	Ô#Ø$3ˆ	Ô!ð ×0Ò0°Ñ?Ô?ˆð 	×Ò˜Ô)¨!¨"¨"Ô-Ð/AÑBÔBÐBØ×Ò˜œ¨¨¨a¨S°1°#¸¸1°vÀ¸sÐ'CÑDÔDÐDÐDÐDr+   c                 ó  — t          t          j        g ¦  «        }t          g ¦  «        }|                     |¦  «        }|                      |j        dd …         d¦  «         |                      |j        g d¢g¦  «         d S )Nr-   )r   r   r   )r-   rB   rD   )r   r	   rF   r   rJ   r!   rK   rL   ©r&   rN   r(   rO   s       r)   Ú5test_best_model2_alignment_handles_empty_src_sentencezBTestIBMModel.test_best_model2_alignment_handles_empty_src_sentenceq   s|   € å#¥LÔ$DÀbÑIÔIˆÝ˜R‘L”Lˆ	ð ×0Ò0°Ñ?Ô?ˆð 	×Ò˜Ô)¨!¨"¨"Ô-¨yÑ9Ô9Ð9Ø×Ò˜œ¨	¨	¨	 {Ñ3Ô3Ð3Ð3Ð3r+   c                 ó  — t          g t          j        ¦  «        }t          g ¦  «        }|                     |¦  «        }|                      |j        dd …         d¦  «         |                      |j        g g g g g g¦  «         d S )Nr-   r<   )r   r	   rG   r   rJ   r!   rK   rL   rb   s       r)   Ú5test_best_model2_alignment_handles_empty_trg_sentencezBTestIBMModel.test_best_model2_alignment_handles_empty_trg_sentence}   s�   € å# B­Ô(HÑIÔIˆÝ˜R‘L”Lˆ	ð ×0Ò0°Ñ?Ô?ˆð 	×Ò˜Ô)¨!¨"¨"Ô-¨rÑ2Ô2Ð2Ø×Ò˜œ¨¨B°°B¸Ð';Ñ<Ô<Ð<Ð<Ð<r+   c           	      ó  — t          dddg g dgdgg¦  «        }t          g ¦  «        }|                     |¦  «        }t          ¦   «         }|D ]}|                     |j        ¦  «         Œh d£}|                      ||¦  «         d S )N©r   rD   rB   ©NÚdesu   Å“ufsÚverts©ÚUNUSEDÚgreenÚeggsrB   r-   >   ©r   rB   rD   ©r   rD   r   ©r   rD   r-   ©r   r   rB   ©r   r-   rB   ©r   rB   rB   ©r   rD   rD   rg   ©r   r   ÚneighboringÚsetÚaddrK   r!   ©r&   rO   r(   Ú	neighborsÚneighbor_alignmentsÚneighborÚexpected_alignmentss          r)   Ú*test_neighboring_finds_neighbor_alignmentsz7TestIBMModel.test_neighboring_finds_neighbor_alignments‰   s³   € åØØ+Ø'Ø��a�S˜1˜#Ðñ	
ô 
ˆõ ˜R‘L”Lˆ	ð ×)Ò)¨&Ñ1Ô1ˆ	õ "™eœeÐØ!ð 	8ð 	8ˆHØ×#Ò# HÔ$6Ñ7Ô7Ð7Ð7ð
ð 
ð 
Ðð 	×ÒÐ,Ð.AÑBÔBÐBÐBÐBr+   c           	      óB  — t          dddg g dgdgg¦  «        }t          g ¦  «        }|                     |¦  «        }|D ]}|j        dk    r|}Œ|j        dk    r|}Œ|                      |j        g g ddgg g¦  «         |                      |j        g g dgdgg¦  «         d S )Nrg   rh   rk   rB   r-   rt   )r   r   rw   rK   r!   rL   )r&   rO   r(   r{   r}   Úmoved_alignmentÚswapped_alignments          r)   Ú-test_neighboring_sets_neighbor_alignment_infoz:TestIBMModel.test_neighboring_sets_neighbor_alignment_info©   sÚ   € åØØ+Ø'Ø��a�S˜1˜#Ðñ	
ô 
ˆõ ˜R‘L”Lˆ	ð ×)Ò)¨&Ñ1Ô1ˆ	ð "ð 	-ð 	-ˆHØÔ! YÒ.Ð.Ø"*��ØÔ# yÒ0Ð0Ø$,Ð!øà×Ò˜Ô.°°R¸!¸Q¸ÀÐ0DÑEÔEÐEØ×ÒÐ*Ô0°2°r¸A¸3ÀÀÐ2DÑEÔEÐEÐEÐEr+   c           	      ó  — t          dddg g dgdgg¦  «        }t          g ¦  «        }|                     |d¦  «        }t          ¦   «         }|D ]}|                     |j        ¦  «         Œh d£}|                      ||¦  «         d S )Nrg   rh   rk   rB   r-   >   rr   rs   rt   rg   rv   rz   s          r)   Ú8test_neighboring_returns_neighbors_with_pegged_alignmentzETestIBMModel.test_neighboring_returns_neighbors_with_pegged_alignmentÀ   sµ   € åØØ+Ø'Ø��a�S˜1˜#Ðñ	
ô 
ˆõ ˜R‘L”Lˆ	ð ×)Ò)¨&°!Ñ4Ô4ˆ	õ "™eœeÐØ!ð 	8ð 	8ˆHØ×#Ò# HÔ$6Ñ7Ô7Ð7Ð7ð
ð 
ð 
Ðð 	×ÒÐ,Ð.AÑBÔBÐBÐBÐBr+   c                 óÐ   — t          dd d d ¦  «        }d„ }d„ }t          g ¦  «        }||_        ||_        |                     |¦  «        }|                      |j        d¦  «         d S )Nrg   c                 óÚ   — | j         dk    r$t          dd d d ¦  «        t          dd d d ¦  «        hS | j         dk    r$t          dd d d ¦  «        t          dd d d ¦  «        hS t          ¦   «         S )Nrg   rt   ©r   r-   r-   ru   ©r   rC   rC   )rK   r   rx   )ÚaÚjs     r)   Úneighboring_mockz5TestIBMModel.test_hillclimb.<locals>.neighboring_mockà   s�   € ØŒ{˜iÒ'Ð'å! )¨T°4¸Ñ>Ô>Ý! )¨T°4¸Ñ>Ô>ðð ð ” 	Ò)Ð)å! )¨T°4¸Ñ>Ô>Ý! )¨T°4¸Ñ>Ô>ðð õ ‘5”5ˆLr+   c                 óH   — ddddddœ}|                      | j        d¦  «        S )Ng      à?g333333ã?gš™™™™™Ù?rZ   )rg   rt   rˆ   ru   r‰   r5   )ÚgetrK   )rŠ   Úprob_valuess     r)   Úprob_t_a_given_s_mockz:TestIBMModel.test_hillclimb.<locals>.prob_t_a_given_s_mockí   s5   € àØØØØðð ˆKð —?’? 1¤;°Ñ5Ô5Ð5r+   r‰   )r   r   rw   Úprob_t_a_given_sÚ	hillclimbr!   rK   )r&   Úinitial_alignmentrŒ   r�   r(   Úbest_alignments         r)   Útest_hillclimbzTestIBMModel.test_hillclimbÜ   sˆ   € å)¨)°T¸4ÀÑFÔFÐð	ð 	ð 	ð	6ð 	6ð 	6õ ˜R‘L”Lˆ	Ø 0ˆ	ÔØ%:ˆ	Ô"ð #×,Ò,Ð->Ñ?Ô?ˆð 	×Ò˜Ô1°9Ñ=Ô=Ð=Ð=Ð=r+   c                 óò   — t          t          j        t          j        ¦  «        }t	          g ¦  «        }d„ |_        |                     |¦  «        \  }}|                      t          |¦  «        d¦  «         d S )Nc                 ó   — dS )Ngü©ñÒMbP?r<   )Úxs    r)   r=   z*TestIBMModel.test_sample.<locals>.<lambda>  s   € ¨u€ r+   é=   )	r   r	   rF   rG   r   r‘   Úsampler!   r"   )r&   rN   r(   Úsamplesr”   s        r)   Útest_samplezTestIBMModel.test_sample  sq   € å#ÝÔ,­lÔ.Nñ
ô 
ˆõ ˜R‘L”Lˆ	Ø%4 _ˆ	Ô"ð #,×"2Ò"2°=Ñ"AÔ"AÑˆ�ð 	×Ò�˜W™œ rÑ*Ô*Ð*Ð*Ð*r+   N)Ú__name__Ú
__module__Ú__qualname__rG   rF   r*   r.   rP   rV   r`   rc   re   r   rƒ   r…   r•   rœ   r<   r+   r)   r	   r	      sô   € € € € € Ø:Ð:Ð:ÐØ.Ð.Ð.Ðð	6ð 	6ð 	6ð6ð 6ð 6ð@ð @ð @ð4Bð Bð Bð0Eð Eð Eð:
4ð 
4ð 
4ð
=ð 
=ð 
=ðCð Cð Cð@Fð Fð Fð.Cð Cð Cð8#>ð #>ð #>ðJ+ð +ð +ð +ð +r+   r	   )Ú__doc__ÚunittestÚcollectionsr   Únltk.translater   r   Únltk.translate.ibm_modelr   ÚTestCaser	   r<   r+   r)   ú<module>r¦      s—   ððð ð €€€Ø #Ð #Ð #Ð #Ð #Ð #à 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2ðA+ð A+ð A+ð A+ð A+�8Ô$ñ A+ô A+ð A+ð A+ð A+r+   