
    /h                     f    S r SSKrSSKJr  SSKJrJrJr  SSKJ	r	   " S S\R                  5      rg)z(
Tests for IBM Model 4 training methods
    Ndefaultdict)AlignedSentIBMModel	IBMModel4)AlignmentInfoc                   &    \ rS rSrS rS rS rSrg)TestIBMModel4   c                    SSSS.nSSSS.n[        SS// SQ5      [        / S	QS
S
/5      /n[        USX5      nUR                  U5        SnU R                  UR                  S   S   S   U5        U R                  UR                  S   S   S   U5        U R                  UR
                  S   S   U5        U R                  UR
                  S   S   U5        g )Nr      schinkeneierspam   hameggsr   r   r   r   r   r   r   r   r   r   r   gUUUUUU?   )r   r   set_uniform_probabilitiesassertEqualhead_distortion_tablenon_head_distortion_table)selfsrc_classestrg_classescorpusmodel4expected_probs         Z/var/www/auris/envauris/lib/python3.13/site-packages/nltk/test/unit/translate/test_ibm4.py>test_set_uniform_distortion_probabilities_of_max_displacementsLTestIBMModel4.test_set_uniform_distortion_probabilities_of_max_displacements   s    #$a;A6)IJ866:JK
 61k? 	((0
 , 	55a8;A>N55b9!<Q?O99!<Q?O99"=a@-P    c                 $   SSSS.nSSSS.n[        SS// SQ5      [        / S	QS
S
/5      /n[        USX5      nUR                  U5        U R                  UR                  S   S   S   [
        R                  5        U R                  UR                  S   S   S   [
        R                  5        U R                  UR                  S   S   [
        R                  5        U R                  UR                  S   S   [
        R                  5        g )Nr   r   r   r   r   r   r   r   r   r      d   )r   r   r   r   r   r   MIN_PROBr   )r   r   r    r!   r"   s        r$   >test_set_uniform_distortion_probabilities_of_non_domain_valuesLTestIBMModel4.test_set_uniform_distortion_probabilities_of_non_domain_values%   s   #$a;A6)IJ866:JK
 61k? 	((0 	55a8;A>@Q@QR55c:1=a@(BSBST99!<Q?ARARS99#>qA8CTCTUr'   c                    / SQn/ SQnSSSSSS.nSSSSSSS	.n[        X!5      /n[        S
S /U-   S/U-   S/S/S// S/SS//5      n[        S 5      nSUS   S    S'   SUS   S   S'   SUS   S   S'   SUS   S   S'   [        S 5      nSUS   S'   [        S 5      n	SU	S   S'   SU	S   S'   SU	S   S '   SU	S   S'   SU	S   S'   SU	S   S'   [        S 5      n
S U
S   S'   S U
S   S'   S U
S   S!'   S U
S   S'   S"U
S   S'   S U
S   S '   S#U	UUU
S S$.n[        USX4U5      nUR	                  U5      nS[        S#S5      -  [        S%S5      -  nS&nS'nS(nX-  U-  U-  nU R                  [        US5      [        US5      5        g ))N)ichessejagern   räucherschinken)ilovetoeatsmokedr   r   r   r   r   r)   )r3   r1   r/   r0   r2   )r   r8   r4   r5   r6   r7   )r   r   r)   r   r      r9   UNUSEDr9      c                      [        S 5      $ )Nc                       [        [        5      $ Nr   float r'   r$   <lambda>GTestIBMModel4.test_prob_t_a_given_s.<locals>.<lambda>.<locals>.<lambda>H   s	    E(:r'   r   rA   r'   r$   rB   5TestIBMModel4.test_prob_t_a_given_s.<locals>.<lambda>H   s
    K :;r'   g
ףp=
?c                       [        [        5      $ r>   r?   rA   r'   r$   rB   rD   O   s	    E8Jr'   gQ?c                       [        [        5      $ r>   r?   rA   r'   r$   rB   rD   R   s	    E0Br'   g\(\?r4   r/   r5   r2   r6   r7   r0   r8   r3   r   c                       [        [        5      $ r>   r?   rA   r'   r$   rB   rD   Z   s	    k%.@r'   gGz?r1   g+?gK7A`?)p1translation_tabler   r   fertility_tablealignment_tableg-?gtSU?gX?gW92?)r   r   r   r   prob_t_a_given_spowr   round)r   src_sentencetrg_sentencer   r    r!   alignment_infor   r   rJ   rK   probabilitiesr"   probabilitynull_generation	fertilitylexical_translation
distortionexpected_probabilitys                      r$   test_prob_t_a_given_s#TestIBMModel4.test_prob_t_a_given_s9   ss   HB+,AaTUV11aqQRSl9:&!F\!J%S1#sBaV,	
 !,;!
 -1a &q))-a #A&*.b!!$Q')-a #A&$/0J$K!*.!!$Q''(BC(,#u%,0&!&)(,$%+/% (:>(#$677;% !34%&@A$(5!%)6"#'4 %)6"16-.#'4  !2%:)B.#
 61kN --n= c%m+c%m;I	E9
'*==
J 	 	{A.6JA0NOr'   rA   N)__name__
__module____qualname____firstlineno__r%   r,   rZ   __static_attributes__rA   r'   r$   r
   r
      s    Q0V(?Pr'   r
   )__doc__unittestcollectionsr   nltk.translater   r   r   nltk.translate.ibm_modelr   TestCaser
   rA   r'   r$   <module>rg      s1     # ; ; 2lPH%% lPr'   