3
Oéd^  ã               @   s„   d dl Zd dlmZmZmZmZmZ d dlm	Z
 d dlmZ d dl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S )é    N)Úassert_equalÚassert_array_equalÚassert_array_almost_equalÚassert_approx_equalÚassert_allclose)Úraises)Úxlogy)ÚmarginsÚexpected_freqÚchi2_contingencyc              C   sj  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ddd	dd
dg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ddddgggƒ}t||ƒ t||ƒ t||ƒ d S )Né   r   é   é   é   é   é3   é   é
   é   é   é   é   é   éB   éÒ   é<   é\   é|   éH   éN   )ÚnpÚarrayr	   r   Úlenr   ZarangeZreshape)ÚaÚmZm0Úm1Z	expected0Z	expected1Úm2Z	expected2© r'   úV/var/www/html/virt/lib64/python3.6/site-packages/scipy/stats/tests/test_contingency.pyÚtest_margins
   s2    





r)   c              C   s®   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dddgdddggƒ} t| ƒ}tjdddgd	d	d
ggƒ}t||ƒ d S )Nr   g      ð?r   r   r   é   g      (@g      0@g      2@g      8@)r   r
   r    r!   Z	ones_liker   )ZobservedÚeÚcorrectr'   r'   r(   Útest_expected_freq)   s    4r-   c              C   s¢   t jddgddggƒ} t| dd\}}}}t|dƒ t|dƒ t|dƒ t| |ƒ t jdddgƒ} t| dd\}}}}t|dƒ t|dƒ t|dƒ t| |ƒ d S )	Nr   r   F)Ú
correctiong        g      ð?r   r   )r    r!   r   r   r   )ÚobsÚchi2ÚpÚdofÚexpectedr'   r'   r(   Útest_chi2_contingency_trivial6   s    






r4   c              C   s  t jdddgdddgdddgddd	ggd
ddgdddgdddgdddgggƒ} t| ƒ\}}}}t|ddd t|d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
d t|dd
d t|dƒ d S )Nr   é"   é   é#   é   é   é    é	   r   r   é/   r   é   é   é   é!   é   g{®GáŠY@é   )Zsignificantg"„j,5È#=é   r   r   é   é   gj¼t“„!@g“©‚QIä?)r    r!   r   r   r   )r/   r0   r1   r2   r3   r'   r'   r(   Útest_chi2_contingency_RJ   s4    

&
rF   c              C   sâ   t jddgddggƒ} t| ddd\}}}}t|dt| | | ƒjƒ  ƒ t| ddd\}}}}| t jdd	gd	dggƒ }t|dt||| ƒjƒ  ƒ t jd
dd
gdd
d
ggƒ} t| dd\}}}}t|dt| | | ƒjƒ  ƒ d S )Nr   r   éZ   zlog-likelihoodF)Úlambda_r.   r   Tg      à?r   r   )rH   g      à¿g      à¿)r    r!   r   r   r   Úsum)ÚcÚgr1   r2   r+   Zc_corrr'   r'   r(   Útest_chi2_contingency_g©   s    rL   c              C   s^   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| ƒ d S )Nr   r   r   r   r   éÿÿÿÿ)r   r   )r    r!   Úassert_raisesÚ
ValueErrorr   Úempty)r/   r'   r'   r(   Útest_chi2_contingency_bad_args·   s    
rQ   )Znumpyr    Znumpy.testingr   r   r   r   r   Zpytestr   rN   Zscipy.specialr   Zscipy.stats.contingencyr	   r
   r   r)   r-   r4   rF   rL   rQ   r'   r'   r'   r(   Ú<module>   s   _