
    (ph*                         S SK rS SKJrJrJrJrJr  S SKrS SKJ	r
  S SKJr  S SKJr  S SKJrJrJrJr  S rS r " S	 S
5      rS r\R0                  R3                  S/ SQ5      S 5       rg)    N)assert_equalassert_array_equalassert_array_almost_equalassert_approx_equalassert_allclose)raises)stats)xlogy)marginsexpected_freqchi2_contingencyassociationc                     [         R                  " S/5      n [        U 5      n[        [	        U5      S5        US   n[        U[         R                  " S/5      5        [         R                  " S//5      n [        U 5      u  p#[         R                  " S//5      n[         R                  " S//5      n[        X$5        [        X55        [         R                  " S5      R                  SS5      n [        U 5      u  p#[         R                  " S/S//5      n[         R                  " / SQ/5      n[        X$5        [        X55        [         R                  " S	5      R                  SS
S5      n [        U 5      u  p#n[         R                  " S//S///5      n[         R                  " S/S/S///5      n[         R                  " / SQ//5      n[        X$5        [        X55        [        Xg5        g )N   r               3   )r      
   r                  B      <   \   |   )r   r   H   N   )nparrayr   r   lenr   arangereshape)amm0m1	expected0	expected1m2	expected2s           U/var/www/html/venv/lib/python3.13/site-packages/scipy/stats/tests/test_contingency.pytest_marginsr2      s   
!A
AQ	
1Br288QC=)
1#AQZFB1#I1#Ir%r%
		"a#AQZFB2$&I012Ir%r%
		"aA&AJBBB4&C5'*+IB4"u-./I+,-.Ir%r%r%    c                     [        [        S/5      [        R                  " S/5      5        [        R                  " SS/SS//SS/SS//SS/SS///5      n [        U 5      n[        U[        R                  " U 5      5        [        R                  " / SQ/ SQ/5      n [        U 5      n[        R                  " / SQ/ SQ/5      n[        X5        g )	Nr         ?r   r   )r   r      )r6   r6   r6   )      (@r7   g      0@)      2@r8   g      8@)r   r   r$   r%   	ones_liker   )observedecorrects      r1   test_expected_freqr=   ,   s    }aS)288SE?;xx1a&1a&)QFQF+;q!fq!f=MNOHhAq",,x01xx|45HhAhh9:Ga)r3   c                   Z   \ rS rSrS rS rS rS rS r\	R                  R                  SSS	/5      S
 5       r\	R                  R                  S 5       r\	R                  R                  \	R                  R                  S\R                   \R"                  45      S 5       5       rS rSrg)TestChi2Contingency9   c                 \   [         R                  " SS/SS//5      n[        USS9u  p#pE[        US5        [        US5        [        US5        [	        X5        [         R                  " / SQ5      n[        USS9u  p#pE[        US5        [        US5        [        US5        [	        X5        g )	Nr   r   F
correctiong        r5   )r   r   r   r   )r$   r%   r   r   r   selfobschi2pdofexpecteds         r1   test_chi2_contingency_trivial1TestChi2Contingency.test_chi2_contingency_trivial:   s     hhAA'(!1#%!HT3QS!3) hhy!!1#%!HT3QS!3)r3   c                    [         R                  " / SQ/ SQ/ SQ/ SQ// SQ/ SQ/ SQ/ SQ//5      n[        U5      u  p#pE[        US	S
S9  [        USSS9  [	        US5        [         R                  " SS/SS//SS/SS///SS/SS//SS/SS////5      n[        U5      u  p#pE[        USSS9  [        USSS9  [	        US5        g )N)r   "      )#         )r       	   )r   r   r   )r   /   rR   )rN   r      )rV         )rT   !      g{GY@   )significantg"j,5#=r      r   rR   r   r   rO         r   gjt!@gQI?)r$   r%   r   r   r   rD   s         r1   test_chi2_contingency_R+TestChi2Contingency.test_chi2_contingency_RM   s   < hh 	 "2#!6D&a8Aya8S"L hhBxBxBxBx BxBxBxBx	 "2#!6D%Q7Av15S"r3   c           	         [         R                  " SS/SS//5      n[        USSS9u  p#pE[        US[	        XU-  5      R                  5       -  5        [        USSS9u  p#pEU[         R                  " S	S
/S
S	//5      -   n[        US[	        XfU-  5      R                  5       -  5        [         R                  " / SQ/ SQ/5      n[        USS9u  p#pE[        US[	        XU-  5      R                  5       -  5        g )Nr   r   Z   zlog-likelihoodF)lambda_rC   r   Tg      g      ?)r   r   r   )r   r   r   )rd   )r$   r%   r   r   r
   sum)rE   cgrH   rI   r;   c_corrs          r1   test_chi2_contingency_g+TestChi2Contingency.test_chi2_contingency_g   s    HHr2hR)*'3C38:c1U1c]..001'3C379cRXXc{S$K8991U6!8488::;HHlL12'3CDc1U1c]..001r3   c                    [         R                  " SS/SS//5      n[        [        [        U5        [         R                  " SS/SS//5      n[        [        [        U5        [         R
                  " S5      n[        [        [        U5        g )Nr   r   r   r   )r   r   )r$   r%   assert_raises
ValueErrorr   empty)rE   rF   s     r1   test_chi2_contingency_bad_args2TestChi2Contingency.test_chi2_contingency_bad_args   ss     hhR1a&)*j"2C8 hhAA'(j"2C8 hhvj"2C8r3   c                 n    [         R                  " SS/SS//5      n[        U5      S   n[        USSS9  g )Ni%  r   r   r   r   g-q=rtol)r$   r%   r   r   )rE   r:   rH   s      r1   #test_chi2_contingency_yates_gh138757TestChi2Contingency.test_chi2_contingency_yates_gh13875   s:     88dAYA/0X&q)15)r3   rC   FTc                     [         R                  " SS/SS//5      n[        X!S9n[        UR                  UR
                  UR                  UR                  4U5        g )Nr   r   rB   )r$   r%   r   r   	statisticpvaluerI   r   )rE   rC   rF   ress       r1   test_resultTestChi2Contingency.test_result   sL    hhAA'(s:cmmSZZ#:K:KLcRr3   c                 L   [         R                  " S5      R                  SS5      n[        USS9R                  n[
        R                  " U5      R                  n[
        R                  " SS9n[        USUS9n[        UR                  U5        [        UR                  USS	9  g )
Nr   r   FrB   iP  )n_resamplesrC   methodgV瞯<rs   )r$   r'   r(   r   rx   r	   fisher_exactry   PermutationMethodr   r   )rE   tableref_statistic
ref_pvaluer   rz   s         r1   test_exact_permutation*TestChi2Contingency.test_exact_permutation   s    		!$$Q*(5AKK''.55
((U;uvFS]]M2

JU;r3   r   c                    [         R                  R                  S5      n/ SQn/ SQn[        R                  " X4US9R                  5       n[        USU" US9S9n[        USS9n[        UR                  UR                  5        [        UR                  UR                  S	S
9  [        UR                  [         R                  5        [        UR                  UR                  5        g )Nl   {5 )i,  i     )   i  r   i  )seedF)rngr   rB   g{Gzt?)atol)r$   randomdefault_rngr	   random_tablervsr   r   rx   r   ry   rI   nanr   )rE   r   r   rowscolsr   rz   refs           r1   test_resampling_randomized.TestChi2Contingency.test_resampling_randomized   s     ii##J/#""4C8<<>uv#Ou7S]]CMM2

CJJT:SWWbff%S&&(9(9:r3   c                    [         R                  " S5      R                  SSS5      n[        R                  " 5       nSn[
        R                  " [        US9   [        USUS9  S S S 5        [         R                  " S5      R                  SS5      n[        R                  " 5       nSn[
        R                  " [        US9   [        XS	9  S S S 5        [        R                  " 5       nS
n[
        R                  " [        US9   [        USSUS9  S S S 5        SnSn[
        R                  " [        US9   [        USUS9  S S S 5        [        R                  " [        R                  R                  S9nSn[
        R                  " [        US9   [        USUS9  S S S 5        g ! , (       d  f       GNI= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr   r   z7Use of `method` is only compatible with two-way tables.)matchFr   r   z+`correction=True` is not compatible with...)r   z%`lambda_=2` is not compatible with...)rC   rd   r   herringz;`method='herring'` not recognized; if provided, `method`...)r   z4If the `method` argument of `chi2_contingency` is...)r$   r'   r(   r	   r   pytestr   rn   r   MonteCarloMethodnormr   )rE   r   r   messages       r1   test_resampling_invalid_args0TestChi2Contingency.test_resampling_invalid_args   si   		!$$Q1-((*K]]:W5UuVD 6 		!$$Q*((*?]]:W5U2 6 '')9]]:W5UuaO 6 O]]:W5UuVD 6 ''EJJNN;H]]:W5UuVD 65- 65 65
 65
 65
 65s<   F&
F8G	6GG+&
F58
G	
G
G(+
G9 N)__name__
__module____qualname____firstlineno__rK   r`   ri   rp   ru   r   markparametrizer{   slowr   r	   r   r   r   r   __static_attributes__r   r3   r1   r?   r?   9   s    *&\|29 * [[\E4=9S :S
 [[< < [[[[X(?(?(-(>(>(@ A;A ;Er3   r?   c            	         [        [        [        SS/SS//S5        [        [        [        SS//SS///S5        [        [        [        SS/SS//S5        [        [        [        [        R                  " SS/S	S//[
        S
9S5        g )Nr   r   r   r   Xcramerrl   r   dd)dtype)rm   rn   r   r$   r%   objectr   r3   r1   test_bad_association_argsr     s    *kQFQF+;SA*kaVH1vh+?J*kRHq!f+=xH*k((QFT1I.f=xIr3   zstat, expected))r   g?)	tschuprowg:ǰ`ڳ?)pearsong!2q܍?c                 j    [         R                  " / SQ/ SQ/ SQ/5      n[        X S9n[        X15        g )N)r   rW   r   r   r   )r]   r   rV   rX   rR   )rT   r   r   r   rR   )r:   r   )r$   r%   r   r   )statrJ   obs1r)   s       r1   
test_assocr     s4     88))(* +D 	T/AA r3   )numpyr$   numpy.testingr   r   r   r   r   r   r   rm   scipyr	   scipy.specialr
   scipy.stats.contingencyr   r   r   r   r2   r=   r?   r   r   r   r   r   r3   r1   <module>r      sv    , ,  *  D D&>
*TE TEn	I )<=!	=!r3   