
    5[g                         d dl Zd dlmZmZmZmZmZ d dlZd dlm	Z
 d dlmZ d dlmZmZmZmZ d Zd Zd Zd	 Zd
 Zd Zd Zej2                  j5                  dddg      d        Zd Zej2                  j5                  dg d      d        Zy)    N)assert_equalassert_array_equalassert_array_almost_equalassert_approx_equalassert_allclose)raises)xlogy)marginsexpected_freqchi2_contingencyassociationc                     t        j                  dg      } t        |       }t        t	        |      d       |d   }t        |t        j                  dg             t        j                  dgg      } t        |       \  }}t        j                  dgg      }t        j                  dgg      }t        ||       t        ||       t        j                  d      j                  dd      } t        |       \  }}t        j                  dgdgg      }t        j                  g dg      }t        ||       t        ||       t        j                  d	      j                  dd
d      } t        |       \  }}}t        j                  dggdggg      }t        j                  dgdgdggg      }t        j                  g dgg      }t        ||       t        ||       t        ||       y )N   r               3   )r      
   r                  B      <   \   |   )r   r   H   N   )nparrayr
   r   lenr   arangereshape)amm0m1	expected0	expected1m2	expected2s           ]/var/www/html/bid-api/venv/lib/python3.12/site-packages/scipy/stats/tests/test_contingency.pytest_marginsr1      s   
!A
AQ	
1Br288QC=)
1#AQZFB1#I1#Ir9%r9%
		"a#AQZFB2$&I012Ir9%r9%
		"aA&AJBBB4&C5'*+IB4"u-./I+,-.Ir9%r9%r9%    c                     t        t        dg      t        j                  dg             t        j                  ddgddggddgddggddgddggg      } t        |       }t        |t        j                  |              t        j                  g dg dg      } t        |       }t        j                  g dg dg      }t        ||       y )	Nr         ?r   r   )r   r      )r5   r5   r5   )      (@r6   g      0@)      2@r7   g      8@)r   r   r#   r$   	ones_liker   )observedecorrects      r0   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)r2   c                  p   t        j                  ddgddgg      } t        | d      \  }}}}t        |d       t        |d       t        |d       t	        | |       t        j                  g d      } t        | d      \  }}}}t        |d       t        |d       t        |d       t	        | |       y )	Nr   r   F
correctiong        r4   )r   r   r   r   )r#   r$   r   r   r   obschi2pdofexpecteds        r0   test_chi2_contingency_trivialrF   8   s     ((QFQF#
$C-ceDD!S(sCasH% ((9
C-ceDD!S(sCasH%r2   c                     t        j                  g dg dg dg dgg dg dg dg dgg      } t        |       \  }}}}t        |d	d
       t        |dd       t	        |d       t        j                  ddgddggddgddgggddgddggddgddgggg      } t        |       \  }}}}t        |dd       t        |dd       t	        |d       y )N)r   "      )#         )r       	   )r   r   r   )r   /   rL   )rH   r      )rP         )rN   !      g{GY@   )significantg"j,5#=r      r   rL   r   r   rI         r   gjt!@gQI?)r#   r$   r   r   r   r@   s        r0   test_chi2_contingency_RrZ   L   s   < ((




 



		C .c2D!S(f!49!4bL ((8888
 8888
		C .c2D!S(e36q1br2   c            	         t        j                  ddgddgg      } t        | dd      \  }}}}t        |dt	        | | |z        j                         z         t        | dd      \  }}}}| t        j                  d	d
gd
d	gg      z   }t        |dt	        |||z        j                         z         t        j                  g dg dg      } t        | d      \  }}}}t        |dt	        | | |z        j                         z         y )Nr   r   Z   zlog-likelihoodF)lambda_r?   r   Tg      g      ?)r   r   r   )r   r   r   )r]   )r#   r$   r   r   r	   sum)cgrC   rD   r:   c_corrs         r0   test_chi2_contingency_grb      s    
2r(RH%&A#A/?/46LAq#qAqq!A#**,,-#A/?/35LAq#qD#;d455FAqvvax044667
,-.A#A/?@LAq#qAqq!A#**,,-r2   c                     t        j                  ddgddgg      } t        t        t        |        t        j                  ddgddgg      } t        t        t        |        t        j
                  d      } t        t        t        |        y )Nr   r   r   r   )r   r   )r#   r$   assert_raises
ValueErrorr   empty)rA   s    r0   test_chi2_contingency_bad_argsrh      ss     ((RHq!f%
&C*.4 ((QFQF#
$C*.4 ((6
C*.4r2   c                  r    t        j                  ddgddgg      } t        |       d   }t        |dd       y )Ni%  r   r   r   r   g-q=)rtol)r#   r$   r   r   )r9   rC   s     r0   #test_chi2_contingency_yates_gh13875rk      s:     xx$QF+,H"1%AAqu%r2   r?   FTc                     t        j                  ddgddgg      }t        ||       }t        |j                  |j
                  |j                  |j                  f|       y )Nr   r   r>   )r#   r$   r   r   	statisticpvaluerD   r   )r?   rA   ress      r0   test_resultrp      sN    
((QFQF#
$C
3:
6C#--SWWc6G6GH#Nr2   c            	         t        t        t        ddgddggd       t        t        t        ddggddgggd       t        t        t        ddgddggd       t        t        t        t        j                  ddgd	dggt
        
      d       y )Nr   r   r   r   Xcramerrd   r   dd)dtype)re   rf   r   r#   r$   object r2   r0   test_bad_association_argsrx      s    *kQFQF+;SA*kaVH1vh+?J*kRHq!f+=xH*k((QFT1I.f=xIr2   zstat, expected))rs   g?)	tschuprowg:ǰ`ڳ?)pearsong!2q܍?c                 r    t        j                  g dg dg dg      }t        ||       }t        ||       y )N)r   rQ   r   r   r   )rW   r   rP   rR   rL   )rN   r   r   r   rL   )r9   method)r#   r$   r   r   )statrE   obs1r(   s       r0   
test_assocr      s8     88))(* +D 	T$/AAx r2   )numpyr#   numpy.testingr   r   r   r   r   pytestr   re   scipy.specialr	   scipy.stats.contingencyr
   r   r   r   r1   r<   rF   rZ   rb   rh   rk   markparametrizerp   rx   r   rw   r2   r0   <module>r      s    , ,  * D D&>
*&(\~. 5"& t}5O 6O	I )<=!	=!r2   