o
    g                     @   s   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d Zdd	 Zd
d Zdd Zdd Zdd Zdd Zejdddgdd Zdd Zejdg ddd ZdS )    N)assert_equalassert_array_equalassert_array_almost_equalassert_approx_equalassert_allclose)raises)xlogy)marginsexpected_freqchi2_contingencyassociationc                  C   s^  t dg} t| }tt|d |d }t|t dg t dgg} t| \}}t dgg}t dgg}t|| t|| t ddd} t| \}}t dgdgg}t g dg}t|| t|| t d	dd
d} t| \}}}t dggdggg}t dgdgdggg}t g dgg}t|| t|| t|| d S )N   r               3   )r      
   r                  B      <   \   |   )r   r   H   N   )nparrayr	   r   lenr   arangereshape)amm0m1	expected0	expected1m2	expected2 r.   `/home/ubuntu/cloudmapper/venv/lib/python3.10/site-packages/scipy/stats/tests/test_contingency.pytest_margins   s2   





r0   c                  C   s   t tdgtdg t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|  tg dg dg} t| }tg dg dg}t|| d S )	Nr         ?r   r   )r   r      )r2   r2   r2   )      (@r3   g      0@)      2@r4   g      8@)r   r
   r!   r"   	ones_liker   )observedecorrectr.   r.   r/   test_expected_freq+   s   4r9   c                  C   s   t ddgddgg} t| dd\}}}}t|d t|d t|d t| | t g d} t| dd\}}}}t|d t|d t|d t| | d S )	Nr   r   F
correctiong        r1   )r   r   r   r   )r!   r"   r   r   r   obschi2pdofexpectedr.   r.   r/   test_chi2_contingency_trivial8   s   






rB   c                  C   s   t g dg dg dg dgg dg dg dg dgg} t| \}}}}t|d	d
d t|ddd t|d t 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d t|ddd t|d d S )N)r   "      )#         )r       	   )r   r   r   )r   /   rG   )rC   r      )rK         )rI   !      g{GY@   )significantg"j,5#=r      r   rG   r   r   rD         r   gjt!@gQI?)r!   r"   r   r   r   r<   r.   r.   r/   test_chi2_contingency_RL   sL   	
&	rU   c                  C   s   t ddgddgg} t| ddd\}}}}t|dt| | |    t| ddd\}}}}| t d	d
gd
d	gg }t|dt|||    t g dg dg} t| dd\}}}}t|dt| | |    d S )Nr   r   Z   zlog-likelihoodF)lambda_r;   r   Tg      g      ?)r   r   r   )r   r   r   )rW   )r!   r"   r   r   r   sum)cgr?   r@   r7   c_corrr.   r.   r/   test_chi2_contingency_g   s    r\   c                  C   s^   t ddgddgg} ttt|  t ddgddgg} ttt|  t d} ttt|  d S )Nr   r   r   r   )r   r   )r!   r"   assert_raises
ValueErrorr   empty)r=   r.   r.   r/   test_chi2_contingency_bad_args   s   
ra   c                  C   s4   t ddgddgg} t| d }t|ddd d S )Ni%  r   r   r   r   g-q=)rtol)r!   r"   r   r   )r6   r?   r.   r.   r/   #test_chi2_contingency_yates_gh13875   s   rc   r;   FTc                 C   s@   t ddgddgg}t|| d}t|j|j|j|jf| d S )Nr   r   r:   )r!   r"   r   r   	statisticpvaluer@   r
   )r;   r=   resr.   r.   r/   test_result   s   rg   c                   C   sz   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
d d S )Nr   r   r   r   Xcramerr]   r   dd)dtype)r^   r_   r   r!   r"   objectr.   r.   r.   r/   test_bad_association_args   s   rm   zstat, expected))ri   g?)	tschuprowg:ǰ`ڳ?)pearsong!2q܍?c                 C   s6   t g dg dg dg}t|| d}t|| d S )N)r   rL   r   r   r   )rR   r   rK   rM   rG   )rI   r   r   r   rG   )r6   method)r!   r"   r   r   )statrA   obs1r&   r.   r.   r/   
test_assoc   s   
rs   )numpyr!   numpy.testingr   r   r   r   r   pytestr   r^   scipy.specialr   scipy.stats.contingencyr	   r
   r   r   r0   r9   rB   rU   r\   ra   rc   markparametrizerg   rm   rs   r.   r.   r.   r/   <module>   s(    _
