U
    »mœdÃD ã                   @   s<  d Z ddlZddlZddlZddlmZ ddlmZ ddlmZm	Z	 ddl
m  mZ ddlmZ ddlmZ ddlZddlmZ dd	lmZmZmZmZmZmZmZ dd
lmZ ddlmZ G dd„ dƒZdKdd„Z dLdd„Z!G dd„ dƒZ"G dd„ dƒZ#G dd„ dƒZ$G dd„ dƒZ%G dd„ dƒZ&G dd„ dƒZ'G dd „ d ƒZ(G d!d"„ d"ƒZ)G d#d$„ d$ƒZ*G d%d&„ d&ƒZ+d'd(„ Z,d)d*„ Z-d+d,„ Z.d-d.„ Z/d/d0„ Z0d1d2„ Z1d3d4„ Z2d5d6„ Z3G d7d8„ d8ƒZ4G d9d:„ d:ƒZ5G d;d<„ d<ƒZ6G d=d>„ d>ƒZ7G d?d@„ d@ƒZ8G dAdB„ dBƒZ9G dCdD„ dDƒZ:G dEdF„ dFƒZ;G dGdH„ dHƒZ<G dIdJ„ dJƒZ=dS )Mz?
Tests for the stats.mstats module (support for masked arrays)
é    N)Únan)ÚmaskedÚnomask)Ústatsé   )Úcheck_named_results)Úraises)Úassert_equalÚassert_almost_equalÚassert_array_almost_equalÚassert_array_almost_equal_nulpÚassert_Úassert_allcloseÚassert_array_equal)Úsuppress_warnings)Ú_mstats_basicc                   @   s   e Zd Zdd„ ZdS )ÚTestMquantilesc                 C   sœ   t  dddgdddgddd	gdd
dgdddgdddgdddg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g}tj|ddd�}t||ƒ d S )Nç      @ç      @ç      ð?g     €G@g      .@ç       @g     €H@g      B@ç      @g     €C@ç      @ç      E@g      D@g     8�Àg     €D@g     €E@g3333333@g333333-@g333333÷?g     ÀB@ç      @gffffffE@gfffffD@gffffff@r   )r   é2   )ÚaxisÚlimit)ÚnpÚarrayÚmstatsZ
mquantilesr
   )ÚselfÚdataÚdesiredZquants© r$   ú\/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/scipy/stats/tests/test_mstats_basic.pyÚtest_mquantiles_limit_keyword   s$    öþz,TestMquantiles.test_mquantiles_limit_keywordN)Ú__name__Ú
__module__Ú__qualname__r&   r$   r$   r$   r%   r      s   r   çH¯¼šò×z>c                 C   s.   t j| ||d�}t|||d� t|j|ƒ d S ©N)r   Údtype©Úrtol)r    Úgmeanr   r	   r,   ©Z
array_liker#   r   r,   r.   Úxr$   r$   r%   Úcheck_equal_gmean,   s    r2   c                 C   s.   t j| ||d�}t|||d� t|j|ƒ d S r+   )r   Úhmeanr   r	   r,   r0   r$   r$   r%   Úcheck_equal_hmean2   s    r4   c                   @   s\   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zej	j
eedƒ dd�dd„ ƒZdd„ ZdS )ÚTestGeoMeanc                 C   s*   ddddg}t  dd¡}t||dd� d S )	Nr   é   é   é   é   ç      Ð?ç›+¡†›„=r-   )r   Úpowerr2   ©r!   Úar#   r$   r$   r%   Útest_1d9   s    zTestGeoMean.test_1dc                 C   sh   t  ddddddddd	d
g
¡}d}t||ƒ t jddddgddddgd�}t dd¡}t||dd� d S )Né
   é   é   é(   r   é<   éF   éP   éZ   éd   gs©ÑÅ¤F@r   r6   r7   r8   r   ©Úmaské   çUUUUUUÕ?r;   r-   )Úmar   r2   r   r<   r=   r$   r$   r%   Ú
test_1d_ma>   s    
zTestGeoMean.test_1d_mac                 C   sJ   t jjddddddddd	d
g
ddddddddddg
d�}d}t||ƒ d S )Nr@   rA   rB   rC   r   rD   rE   rF   rG   rH   r   r   rI   gdåÝq_¼D@©r   rM   r   r2   r=   r$   r$   r%   Útest_1d_ma_valueH   s    8zTestGeoMean.test_1d_ma_valuec                 C   s2   t j ddddddddd	d
g
¡}d
}t||ƒ d S )Nr@   rA   rB   rC   r   rD   rE   rF   rG   r   rO   r=   r$   r$   r%   Útest_1d_ma0N   s     zTestGeoMean.test_1d_ma0c                 C   sL   t j ddddddddd	d
g
¡}t j}t jdd�� t||ƒ W 5 Q R X d S )Nr@   rA   rB   rC   r   rD   rE   rF   rG   éÿÿÿÿÚignore)Úinvalid)r   rM   r   r   Úerrstater2   r=   r$   r$   r%   Útest_1d_ma_infT   s     zTestGeoMean.test_1d_ma_infÚfloat96úcannot find float96 so skipping©Úreasonc                 C   sH   t jddddgddddgd�}t dd¡ tj¡}t||tjd	d
� d S )Nr   r6   r7   r8   r   rI   rK   rL   r;   )r,   r.   )rM   r   r   r<   ÚastyperW   r2   ©r!   r>   Z
desired_dtr$   r$   r%   Útest_1d_float96[   s    zTestGeoMean.test_1d_float96c                 C   sà   t jddddgddddgddddggddddgddddgddddggd�}t ddddg¡}t||ddd� t  t d	d
¡t dd¡t dd¡g¡}t||ddd� ddddgddddgddddgg}d}ttj  |¡|ƒ d S )Nr   r6   r7   r8   r   rI   r;   ©r   r.   r9   r:   rK   ç      à?rR   r@   rA   rB   rC   r   rD   rE   rF   rG   rH   én   éx   g/,$»qJ@)rM   r   r   r2   r<   r=   r$   r$   r%   Ú
test_2d_maa   s    $ ÿ

þ"zTestGeoMean.test_2d_maN)r'   r(   r)   r?   rN   rP   rQ   rV   ÚpytestÚmarkÚskipifÚhasattrr   r]   rb   r$   r$   r$   r%   r5   8   s   

r5   c                   @   s<   e Zd Zdd„ Zejjeedƒ dd�dd„ ƒZ	dd	„ Z
d
S )ÚTestHarMeanc                 C   s¨   t jddddgddddgd�}d}t||dd	� tj  d
dddddddddg
¡}d}t||ƒ tj jd
dddddddddg
ddddddddddg
d�}d}t||ƒ d S )Nr   r6   r7   r8   r   rI   ç/ºè¢‹.ú?r;   r-   r@   rA   rB   rC   r   rD   rE   rF   rG   rH   g¶=b¹#A@g¹´óÜOÐ?@©rM   r   r4   r   r=   r$   r$   r%   r?   s   s     
ÿzTestHarMean.test_1drW   rX   rY   c                 C   sB   t jddddgddddgd�}tjdtjd�}t||tjd� d S )	Nr   r6   r7   r8   r   rI   rh   ©r,   )rM   r   r   ÚasarrayrW   r4   r\   r$   r$   r%   r]   �   s    zTestHarMean.test_1d_float96c                 C   sÂ   t jddddgddddgddddggddddgddddgddddggd�}t  ddddg¡}t||ddd� d	d
dg}t||ddd� ddddgddddgddddgg}d}ttj  |¡|ƒ d S )Nr   r6   r7   r8   r   rI   r;   r^   gº…ëQ¸þ?g433333@gš™™™™™ù?rR   r@   rA   rB   rC   r   rD   rE   rF   rG   rH   r`   ra   gmôW¶UC@ri   r=   r$   r$   r%   Útest_2d‡   s    $ ÿ
"zTestHarMean.test_2dN)r'   r(   r)   r?   rc   rd   re   rf   r   r]   rl   r$   r$   r$   r%   rg   r   s   
rg   c                   @   s   e Zd Zdd„ ZdS )ÚTestRankingc                 C   s‚  t  ddddddddddg
¡}tt |¡dddddddd	d	d
g
ƒ t|ddg< tt |¡ddddddddddg
ƒ ttj|dd�ddddddddddg
ƒ t  ddddddddddg
¡}tt |¡ddd	ddddd	dd
g
ƒ t  dddddgdddddgg¡}tt |¡dddddgddd	d	d
ggƒ ttj|dd�dddddgdddddggƒ ttj|dd�dddddgdddddggƒ d S )Nr   r   r6   r7   r8   é   rK   é   ç      !@r@   r   ç      @é   T)Zuse_missingg      @©r   ç      @)rM   r   r
   r    Úrankdatar   ©r!   r1   r$   r$   r%   Útest_ranking–   s2    
ÿ
ÿÿ
ÿ"
ÿÿÿzTestRanking.test_rankingN)r'   r(   r)   rw   r$   r$   r$   r%   rm   •   s   rm   c                   @   sÀ   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zejj	e
 ¡ d	kd
d�dd„ ƒZejj	e
 ¡ d	kd
d�ejjdd„ ƒƒZdd„ Zej dd¡ej dd¡dd„ ƒƒZdd„ Zejjdd„ ƒZdd„ ZdS )ÚTestCorrc           
   	   C   sR  t  d¡}t ¡ �‚ t dt¡ tt ||¡d dƒ tt ||d d d… ¡d dƒ t j	|dd�}t ||¡}t
|d tkƒ t
|d	 tkƒ W 5 Q R X t  	dd
dg¡}t  	dddg¡}t ||¡\}}t|t d¡d ƒ t|dƒ ddddg}t j	dd
ddg|d�}t j	ddddg|d�}	t ||	¡\}}t|t d¡d ƒ t|dƒ d S )Nr@   Úerrorr   r   rR   ç      ð¿TrI   r   ç        r7   r6   rL   Fg     ÀX@)rM   ÚarangeÚwarningsÚcatch_warningsÚsimplefilterÚRuntimeWarningr
   r    Úpearsonrr   r   r   r   Úsqrt)
r!   r1   ÚprÚx1Úy1ÚrÚprJ   Zx2Úy2r$   r$   r%   Útest_pearsonr¬   s(    

 
zTestCorr.test_pearsonrc           	      C   s¬   t jjddddddgddddddgd�}t jjd	d
dddd	gddddddgd�}t  ddddg¡}t  d	ddd	g¡}t ||¡\}}t ||¡\}}t||ƒ t||ƒ d S )Nr   r6   r7   r8   rn   rK   r   rI   é	   rr   ro   )r   rM   Úmasked_arrayr   r    r�   r   r	   )	r!   ZmxZmyr1   ÚyÚmrÚmpr†   r‡   r$   r$   r%   Útest_pearsonr_misaligned_maskË   s    ((
z&TestCorr.test_pearsonr_misaligned_maskc                 C   sî  ddddgddddg }}t t ||¡d d	ƒ ddddtjgddddtjg }}t |¡t |¡ }}t t ||¡d d	ƒ d
ddddddddddddddg}ddddddddd ddd!dd"dg}t t ||¡d d#ƒ d
ddddddddddddddtjg}ddddddddd ddd!dd"dtjg}t |¡t |¡ }}t t ||¡d d#ƒ ttd$ƒƒ}ttd$ƒƒ}|d% |d  |d< |d%< |d& |d'  |d'< |d&< |d( |d)  |d)< |d(< t t ||¡d d*ƒ t ||¡}d+}t	||d,d-� d S ).Nç333333@ç      @ç®Gáz®	@çHáz®G@çffffffú?ç…ëQ¸@çÍÌÌÌÌÌ@r   gIœQ=ä¿r   ç33333³G@r   çš™™™™™%@çÍÌÌÌÌN@ç333333û?ç      P@çÍÌÌÌÌŒO@r   çffffffö?çš™™™™™@ç333333Ó?ç333333@çÍÌÌÌÌÌ@çš™™™™™6@çš™™™™™ @ç333333F@çÍÌÌÌÌÌ'@çš™™™™™8@ç333333ã?çÍÌÌÌÌÌ@çÍÌÌÌÌÌD@r{   çffffff@ç333333ó?gàˆI
æ?éÐ  rŠ   i²  r@   iå  i³  gV-²�ïï?©ZcorrelationÚpvalueT©rM   )
r
   r    Ú	spearmanrr   r   rM   Úfix_invalidÚlistÚranger   ©r!   r1   rŒ   ÚresÚ
attributesr$   r$   r%   Útest_spearmanrÕ   sn    "      ÿ      ÿ       ÿ       ÿzTestCorr.test_spearmanrc                 C   s†  ddddddddd	d
dddddg}ddddddddddddd	dd
g}d}t  ||¡\}}t||ƒ t|dƒ t j||dd�\}}t||ƒ t|dƒ t j||dd�\}}t||ƒ t|d ƒ d!}t d"d#|¡}d$| tj |¡ }t  ||¡\}}t j||dd�\}	}
t|
|d% ƒ t j||dd�\}}t|d&|d%  ƒ ||	  k�rR|k�sXn t‚tj	t
d'd(�� t j||d)d� W 5 Q R X d S )*Nr   r—   r   r˜   r™   rš   r›   rœ   r   r�   rž   rŸ   r    r¡   r¢   r£   r¤   r¥   r¦   r§   r¨   r©   r{   rª   r«   g+þ;
æ?g œ·‚r?Úgreater©Úalternativeg œ·‚b?ÚlessgšæcH}íï?rH   r   rn   çš™™™™™¹?r6   r   zalternative must be 'less'...©Úmatchz	ekki-ekki)r    r°   r   r   ÚlinspaceÚrandomÚrandÚAssertionErrorrc   r   Ú
ValueError)r!   r1   rŒ   Zr_expr†   r‡   ÚnZstat1Úp1Zstat2Úp2Zstat3Úp3r$   r$   r%   Útest_spearmanr_alternativeû   sN          ÿ      ÿ





z#TestCorr.test_spearmanr_alternativeÚppc64lezfails/crashes on ppc64lerY   c                 C   s  t  t ddddg¡¡}t  t ddddg¡¡}dd	g}tt t ||¡¡|ƒ t  t d
¡¡}t  t d
¡¡}d	dg}tt t ||¡¡|ƒ tt	tj||dd� |d }|d |d< ||d< ddg}tt t ||¡¡|ƒ |d }|d |d< ||d< ddg}tt t ||¡¡|ƒ t  t d
¡¡}t  t d
¡d d d… ¡}ddg}tt t ||¡¡|ƒ |d }|d |d< ||d< ddg}tt t ||¡¡|ƒ |d }|d |d< ||d< ddg}tt t ||¡¡|ƒ t  
ddddtjg¡}t  
ddddtjg¡}t  
dddd tjg¡}tt t ||¡¡d!d"gƒ tt tj||d#d�¡d!d$gƒ tt t ||¡¡d%d&gƒ t  
d'd'd'd'd(d(d'd)d'd(d
d
d'd*d'd(d'd'd'd'd'tjg¡}t  
d'd+d+d+d
d,d)d'd-d.d/d+d+d+d+d+d+d'd
d0tjd'g¡}t ||¡}tt |¡d1d2gƒ d3}t||d4d5� d S )6NrŠ   r6   rn   rK   r8   ro   é   r{   r   r@   g´žx·O~¢>Úbanana©Úmethodr   g?é“>é“î?gaÆV¥ã×>g}Ò'}Ò'í?go‡›…&5ÿ>rR   rz   g?é“>é“î¿g}Ò'}Ò'í¿r�   r‘   r’   r“   r”   g     €:@g¸…ëQ¸Àg×£p=
×@r•   r–   g‡¼Š1UUÕ?ç      è?Ú
asymptoticgälgNÍß?g~öÈ‹ñ†á¿gÂQM¤�ÔÑ?r   rA   rD   rC   rF   é!   éC   é   é   é-   g‘ŒæXJÄ¿gv™PwTkÚ?r­   Tr¯   )rM   r   r   r
   rk   r    Ú
kendalltaur|   Úassert_raisesrÃ   r±   r   r   )r!   r1   rŒ   ÚexpectedÚbÚzÚresultr¶   r$   r$   r%   Útest_kendalltau(  sš    ÿÿÿ           ÿ           ÿzTestCorr.test_kendalltauc                 C   sd   t jdtd�}t |d¡}t jdtd�}t  |dd … |d d… f¡}tt  t 	||¡d ¡ƒ d S )Nr¬   rj   iË  éè  r   )
r   r|   ÚfloatrM   Zmasked_greaterZconcatenater   Úisfiniter    rÕ   )r!   r1   rŒ   r$   r$   r%   Útest_kendalltau_large€  s
    zTestCorr.test_kendalltau_largec                 C   sº   t t dddddddddddgdddddddddddddgdddd	d
ddddt ddt gt d	dddt d	ddddddgg}t |¡j}t |¡}t|d ddƒ t|d  d¡ddddgƒ d S )Nr8   r6   é   é   rn   r   r7   ro   rK   é   rŠ   rÊ   é   zglobal p-value (indep)gü©ñÒMb€?zseasonal p-valueg
×£p=
Ç?gö(\�Âõà?çš™™™™™É?g{®Gáz¤?)r   rM   r±   ÚTr    Zkendalltau_seasonalr
   Úround)r!   r1   Úoutputr$   r$   r%   Útest_kendalltau_seasonalŒ  s    ý

ÿz!TestCorr.test_kendalltau_seasonalrÍ   )ÚexactrÏ   rº   ©ú	two-sidedr¸   r»   c                 C   sÈ   t j d¡ d}t j |¡}t j |¡}t j |¡dk}tj||d�}tj||d�}tj||||d�}	| ¡ }
| ¡ }t	j|
|||d�}t j
||< t j
||< t	j|||d|d�}t|	|ƒ t||ƒ d S )Nr   r   r_   rI   )rÍ   rº   Úomit)rÍ   Ú
nan_policyrº   )r   rÀ   ÚseedrÁ   rM   r   r    rÕ   Ú
compressedr   r   r   )r!   rÍ   rº   rÄ   r1   rŒ   rJ   Zx_maskedZy_maskedZ
res_maskedZx_compressedZy_compressedZres_compressedZres_nanr$   r$   r%   Útest_kendalltau_mstats_vs_stats˜  s@       ÿ   ÿ

    ÿ
z(TestCorr.test_kendalltau_mstats_vs_statsc              	   C   sJ   dddddddddœ}|  ¡ D ]&\}}t |d |d	 ¡}t||ƒ qd S )
Ngé�£»mä?g‹Ž:¹4Wã?g,
ù:ÅH r{   gäKªØëç?gù°¼(Â6Ú?))rH   iY	  )ée   i„	  )éª   r   )é«   r   )ró   r   )é¬   r   )éÈ   iE&  )éÉ   i¸%  r   r   ©Úitemsr   Z_kendall_p_exactr
   ©r!   ZexpectationsÚncr×   rµ   r$   r$   r%   Útest_kendall_p_exact_medium·  s    ùz$TestCorr.test_kendall_p_exact_mediumc                 C   sF   dddddddœ}|  ¡ D ]&\}}t |d |d	 ¡}t||ƒ qd S )
NgEë‡ß?g§U`Ux<å?g½åveÅÛ?gÓÂZ¸šá?gôÐ=¹ñê?gG÷ ’ÉÖ?))i�  i5˜  )i‘  i\š  )i   idd )i!  i™h )i@  i º	 )iA  i ž	 r   r   r÷   rù   r$   r$   r%   Útest_kendall_p_exact_largeÆ  s    ûz#TestCorr.test_kendall_p_exact_largec              #   C   sÐ   dddddddddddddddddddddddddddddddddddg#}dddddd	d
ddddddddddddddddddddddddddd t jg#}tt ||¡d d!d"ƒ t ||¡}d#}t||d$d%� d S )&Nr   r   rR   gš™™™™™-@gš™™™™™+@gÍÌÌÌÌÌ(@g333333$@gffffff@gffffff@g333333@gffffff@g333333@rt   gffffff
@gš™™™™™	@r   gffffff@r   g333333@gffffff@gÍÌÌÌÌÌ @rš   g      ø?gÍÌÌÌÌÌô?r«   gš™™™™™ñ?çš™™™™™é?gffffffæ?r§   r_   rä   r¼   gÂ/õó¦"×?rn   r­   Tr¯   )r   r   r
   r    Zpointbiserialrr   r´   r$   r$   r%   Útest_pointbiserialÕ  sX    ,            ÿ                     þzTestCorr.test_pointbiserialN)r'   r(   r)   r‰   r�   r·   rÈ   rc   rd   re   ÚplatformÚmachinerÛ   Zslowrß   rè   Úparametrizerð   rû   Zxslowrü   rþ   r$   r$   r$   r%   rx   «   s*   
&-ÿ
Vÿ	
rx   c                   @   sD   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dS )ÚTestTrimmingc                 C   sL  t  d¡}tt |¡dddddddd	d
dg
ƒ t  d¡}tt |d¡d d dddddd	d
d g
ƒ t  d¡}ttj|ddd�d d d ddddd	d d g
ƒ t  d¡}ttj|ddd�d ddddddd	d d g
ƒ t  d¡}t |ddg< |d< tt |d¡d d dddd dd	d
d d d gƒ t  d¡ dd¡}dgd dgd  dgd  }tj|ddd d�}t|j ¡ |ƒ tj|dddd�}t|j ¡ |ƒ tj|dddd�}t|jj	 ¡ |ƒ t  d¡ dd¡}t|d< dgd dgd  dgd  }tj|ddd d�}t|j ¡ |ƒ tj|dddd�}t|j ¡ |ƒ tj|j	dddd�}t|j	j ¡ |ƒ d S )Nr@   r   r   r6   r7   r8   rn   rK   ro   rr   rŠ   )r6   rr   ©FF©ÚlimitsZ	inclusive)r¼   rä   T)r  Úrelativeé   rR   rH   rE   rA   )r  r   r`   rÊ   )
rM   r|   r	   r    Ztrimr   ÚreshapeÚ_maskZravelrå   )r!   r>   r1   r×   Útrimxr$   r$   r%   Ú	test_trimå  sD    
$
&
ÿ
ÿ
ÿzTestTrimming.test_trimc                 C   sÌ   t  d¡}tt |¡ ¡ dƒ ttj|dd� ¡ dƒ t|dd…< t |¡}t| ¡ dƒ t|jd	gd
 dgd  d	gd  dgd  d	gd
  ƒ t	|_d|_
tt |¡ ¡ dƒ tt |¡ ¡ dƒ d S )NrH   rD   r†   )ÚtailrF   r   rE   é0   r   rà   r   é"   rA   é   )r@   r@   )rM   r|   r	   r    ÚtrimbothÚcountZtrimtailr   r	  r   Úshape)r!   r1   r
  r$   r$   r%   Útest_trim_old
  s    

:zTestTrimming.test_trim_oldc                 C   sl   t  d¡}tj|ddd�}t jddddd	d
ddddg
ddddddddddg
d�}t||ƒ t|j|jƒ d S )Nr@   )g333333Ã?gìQ¸…ëÁ?r  r  r   r   r6   r7   r8   rn   rK   ro   rr   rŠ   rI   )rM   r|   r    Ztrimrr   r	   rJ   )r!   r1   rÚ   r×   r$   r$   r%   Ú
test_trimr  s    
ÿ
zTestTrimming.test_trimrc                 C   sp   t  ddddddddd	d
dddddddddg¡}tt |d¡ddƒ tt |d¡ddƒ tt |d¡ddƒ d S )NéM   éW   éX   ér   é—   éÒ   éÛ   éö   éý   é  é(  é+  é2  éx  é¬  é  éš  é  é3
  r¼   iW  r   )r¼   r¼   ©rä   rä   i  )rM   r   r
   r    Ztrimmed_mean©r!   r"   r$   r$   r%   Útest_trimmedmean  s            ÿzTestTrimming.test_trimmedmeanc                 C   s\   t  ddddddddd	d
dddddddddg¡}tt |d¡ddƒ tt |d¡ddƒ d S )Nr  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  g>®ãL@rn   rä   )rM   r   r
   r    Ztrimmed_stder)  r$   r$   r%   Útest_trimmed_stde&  s            ÿzTestTrimming.test_trimmed_stdec                 C   sŽ   t  ddddddddd	d
dddddddddg¡}tt |d¡jdd�ddƒ tt |dd¡jdd�ddƒ t|d< t |¡}t|j|jƒ d S )Nr  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  r(  r   ©Úddofgš™™™ÙÕ@r  gffff¦7Ç@rn   )	rM   r   r
   r    Ú	winsorizeÚvarr   r	   rJ   )r!   r"   Z
winsorizedr$   r$   r%   Útest_winsorization,  s.            ÿ ÿ þ
zTestTrimming.test_winsorizationc              	   C   sÒ   t  tjtjdddg¡}tttj|ddd� tt |d¡t  dddddg¡ƒ tt |d¡t  tjtjtjtjtjg¡ƒ ttj|dd	d�t  tjtjdddg¡ƒ ttj|dd	d�t  tjtjdddg¡ƒ d S )
Nr   r   r6   )çš™™™™™©?r1  Úraise)rí   )çš™™™™™Ù?r3  )rý   rý   rì   )	rM   r   r   r   rÖ   rÃ   r    r.  r	   r)  r$   r$   r%   Útest_winsorization_nan8  s     ÿÿÿÿÿz#TestTrimming.test_winsorization_nanN)
r'   r(   r)   r  r  r  r*  r+  r0  r4  r$   r$   r$   r%   r  ã  s   %r  c                   @   sþ   e Zd ZddddgZe ddddd	ejg¡Zej	e 	d
ddddgdddddgdddddgdddddgddd d!d"gg¡ej	d#d$d$d#d$gd#d#d#d$d#gd$d$d$d$d$gd#d#d#d#d#gd$d$d#d$d$gge
d%�d&�Zd'd'd(œd)d*„Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd'S )5ÚTestMomentsr   r6   r7   r8   g¤p=
×£ò?gæ?¤ß¾ä?gDúíëÀ9³?gª‚QI�€Ö?g}?5^ºIæ¿gÂq2ÔÕÛª?gþ{•!3à?gr!faµë?gìØkî¦£×?gžØYÞ?gSH*:/¡½?g#RÚ/Ô?g>yõ}zdÝ?gVß¯¸î<ç?g¼F¢íè?ggË w¶©å?gžyZú§fí?g½�îœ=¹?g!@VyÈ§?g# 1öØ?geY(€ÿ9®?g—£�D$Ó?gÁ;·ØÑÕ?gðJX<q0å?g#dˆŒœê?gŠ÷�®¡­ä?g×çA¬Ä]î?g_.ÚÊèÓÑ?g¥�ÉÔ²?g2^ë9†“Ù?TFrj   rI   N©r  r,   c                C   sH   t  |¡}|d k	rt  ||¡}t||ƒ |d kr6|j}|j|ksDt‚d S ©N)r   rk   Zbroadcast_tor   r,   rÂ   )r!   ÚactualÚexpectr  r,   r$   r$   r%   Ú_assert_equal]  s    

zTestMoments._assert_equalc                 C   sÄ  t  | jd¡}t|ddƒ t  | jd¡}t|dƒ t  | jd¡}t|dƒ t  | jd¡}t|dƒ t  | jddddg¡}t|d	dd	dgƒ t  | jd¡}t|d
ƒ ttt j| jdƒ t  | jd
dddg¡}t|d	dd	dgƒ t  g ¡}| j|tj	tj
d� t  tjg tjd�¡}| j|tj	tjd� t jt d¡d	d�}| j|g dtj
d� t jg gdd�}| j|tj	dtj
d� t jg gd	dgd	d�}| j|g dd� t d¡}tj	|d< tt  |d¡tjƒ d S )Nr   r{   r@   r6   g      ô?r7   r8   g     €@r   r   r«   r   rj   )r   r   rs   )r   r6  )r   )Úmomentr   )r6   r   )r  g      $@rŠ   )r    r;  Útestcaser
   r   rÖ   rÃ   r:  r   r   Zfloat64r   Zfloat32Úzerosr|   r	   rM   r   )r!   rŒ   r1   r$   r$   r%   Útest_momentf  s8    






zTestMoments.test_momentc                 C   s   t  | j¡}t|ddƒ d S )Nçþí¿Å%ŸÜ?r@   )r    Ú	variationr<  r
   )r!   rŒ   r$   r$   r%   Útest_variation‹  s    zTestMoments.test_variationc                 C   s0   t  dddddg¡}tj|dd�}t|dƒ d S )Nr   r6   r7   r8   rn   r,  gâ<<'�Ýà?)r   r   r    r@  r
   )r!   r>   rŒ   r$   r$   r%   Útest_variation_ddof�  s    zTestMoments.test_variation_ddofc                 C   sh  t  | j¡}t|ddƒ t j| jdd�}t|ddƒ t  | j¡}t|ddƒ tjt ddddd	g¡tjd
d
d
dd
gtd�d�}t	t  | j
d¡|ƒ t| j
ƒD ]\}}tt  |¡|| ƒ qœtjt dddddg¡tjd
d
d
dd
gtd�d�}t	t j| j
dd
d�|ƒ t| j
ƒD ]"\}}tt j|d
d�|| ƒ �qt	t  | j
dd d …f ¡t | j
dd d …f ¡ƒ d S )Ng7l•*ÄÒ¿r@   r   ©Úbiasg¨õ2Û ùÛ¿r{   gÒ½•Šræ?g>HÃ›eÑ?gIåÝÇ®ª¿FTrj   rI   r   g`ŽƒÙ¨ùú?gÂûé‡nÙ?g0¡·¿r6   )r    ÚskewÚtestmathworksr
   r<  rM   r   r   Úboolr   Útestcase_2dÚ	enumerater   ©r!   rŒ   Z
correct_2dÚiÚrowZcorrect_2d_bias_correctedr$   r$   r%   Útest_skewness–  s@    
 ÿýÿýÿÿÿzTestMoments.test_skewnessc                 C   sx  t j| jdddd�}t|ddƒ t j| jddd�}t|ddƒ t  | jdd¡}t|dƒ tjt dd	d
ddg¡tjdddddgtd�d�}t	t  | j
d¡|ƒ t| j
ƒD ]\}}tt  |¡|| ƒ q¨tjt dd	dddg¡tjdddddgtd�d�}t	t j| j
ddd�|ƒ t| j
ƒD ]"\}}tt j|dd�|| ƒ �qtt  | j
dd d …f ¡t | j
dd d …f ¡dd� d S )Nr   r   )ZfisherrD  gOß»S@r@   gâx|ïN@g=
×£p=ú?g      ø¿ç      Àgã'„@=�÷¿r{   gt‚
ÀQô¿FTrj   rI   g´?õ<þ¿g`‡œ@7Àà¿rC  r6   r8   )Znulp)r    ÚkurtosisrF  r
   r<  rM   r   r   rG  r   rH  rI  r   r   rJ  r$   r$   r%   Útest_kurtosis·  sJ    
ÿÿÿþÿþÿþÿþzTestMoments.test_kurtosis)r'   r(   r)   r<  rM   r±   r   r   rF  r   rG  rH  r:  r>  rA  rB  rM  rP  r$   r$   r$   r%   r5  F  s4   ÿüüüú	%!r5  c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestModec                 C   s`  dddddddddddddddg}t  |d	¡}t  ddddddg¡}t  |d
¡}t t |¡dk|¡}t |dk|¡}t |dk |¡}t t |¡dk |¡}ttj|d d�dƒ ttj|dd�dƒ ttj|d d�dƒ ttj|d d�dƒ ttj|d d�dƒ ttj|d d�dƒ ttj|d d�dƒ ttj|dd�dddddggdddddggfƒ ttj|dd�dddddggdddddggfƒ ttj|dd�dgdgdggdgdgdggfƒ ttj|dd�dgdgdggdgdgdggfƒ ttj|dd�ddggddggfƒ ttj|dd�dgdgdggdgdgdggfƒ tj|d d�}	d}
t|	|
dd� d S )Nr   r   r6   r7   r8   rn   rK   ro   )r7   rn   )r7   r6   rs   )r7   r8   )r   r7   )r   r   )r6   r   rR   )Úmoder  Tr¯   )	r   r  r   rM   Zmasked_wherer	   r    rR  r   )r!   Úa1Úa2Úa3Za4Zma1Zma2Zma3Zma4Za1_resr¶   r$   r$   r%   Ú	test_modeà  s0    "0000$0zTestMode.test_modec                 C   sd   t  d¡}|d d…d d …f  d7  < |d d …d d…f  d7  < | ¡ }t |d ¡ t||ƒ d S )N)rH   rH   r   r   )r   r=  Úcopyr    rR  r	   )r!   ZimÚcpr$   r$   r%   Útest_mode_modifies_inputý  s    
z!TestMode.test_mode_modifies_inputN)r'   r(   r)   rV  rY  r$   r$   r$   r%   rQ  ß  s   rQ  c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestPercentilec                 C   sD   dddddddg| _ ddd	d
ddddg| _ddddddddg| _d S )Nr7   r8   rn   r@   éýÿÿÿéûÿÿÿrK   iúÿÿÿéþÿÿÿrr   ro   r6   r   r   r   )rS  rT  rU  ©r!   r$   r$   r%   Úsetup_method	  s    zTestPercentile.setup_methodc                 C   sH   t  d¡d }tt |d¡dƒ tt |d¡dƒ tt |d¡dƒ d S )	Nrr   r_   r   r{   rH   rt   r   g      ü?)r   r|   r	   r    Úscoreatpercentilerv   r$   r$   r%   Útest_percentile  s    zTestPercentile.test_percentilec              	   C   sN   t  dddgdddgdddgdddgdddgg¡}tt |d¡dddgƒ d S )Nr   r8   r7   r   )rM   r   r	   r    r`  rv   r$   r$   r%   Útest_2D  s    üzTestPercentile.test_2DN)r'   r(   r)   r_  ra  rb  r$   r$   r$   r%   rZ    s   rZ  c                   @   s>   e Zd ZdZe ddddejg¡Zdd„ Z	dd	„ Z
d
d„ ZdS )ÚTestVariabilityz[  Comparison numbers are found using R v.1.5.1
         note that length(testcase) = 4
    r   r6   r7   r8   c                 C   sX   t  | j¡}t|dƒ | j ¡ }tt j| jdd�t ||d  ¡ t j| jdd�ƒ d S )Ngã�ŽËé§ä?r   r,  r6   )r    Úsemr<  r
   r  r   r   r‚   )r!   rŒ   rÄ   r$   r$   r%   Útest_sem#  s    

"ÿzTestVariability.test_semc                 C   s:   t  | j| j¡}ddddg}t||j|jdk dd� d S )NçÙòOT\wõ¿çþí¿Å%ŸÜ¿r?  çÙòOT\wõ?Fr  ©Údecimal)r    Úzmapr<  r   r"   rJ   )r!   rŒ   Zdesired_unmaskedvalsr$   r$   r%   Ú	test_zmap+  s     ÿ ÿzTestVariability.test_zmapc                 C   s4   t  | j¡}t ddddtjg¡}t||dd� d S )Nrf  rg  r?  rh  r  ri  )r    Úzscorer<  rM   r±   r   r   r
   )r!   rŒ   r#   r$   r$   r%   Útest_zscore4  s      ÿzTestVariability.test_zscoreN)r'   r(   r)   Ú__doc__rM   r±   r   r   r<  re  rl  rn  r$   r$   r$   r%   rc    s
   	rc  c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestMiscc                 C   sô   dgd dgd  dgd  dgd  dgd  d	gd  dgdgd  dgd
  dgd  d	gd  g}ddg ddg  ddg  ddg  ddg  ddg  dgddg  d
dg  ddg  ddg  g}t t tj|Ž jd
¡|d
ƒ d S )Nrn   rK   rÊ   ro   rŠ   rr   r7   r6   r@   r8   rà   gŸ«­Ø_v	@gù1æ®%äá?g"ýöuàœ¡?g”‡…ZÓ¼ù?gÿ!ýöu @g³q¬‹&@g;pÎˆÒÞ$@gTR' ‰p@gúíëÀ9#ö?gðHPüx?g“©‚QIç?)r
   r   ræ   r    Úobrientransformrå   )r!   ÚargsrÚ   r$   r$   r%   Útest_obrientransform?  s    :,ÿ:,ÿ ÿzTestMisc.test_obrientransformc                 C   sä   t t dddddddddddgdddddddddddddgdddd	d
ddddt ddt gt d	dddt d	ddddddgg}t |¡j}|j\}}}}tt t ||¡d¡dƒ tt t ||d¡d¡dƒ tt t ||d¡d¡dƒ d S )Nr8   r6   rà   rá   rn   r   r7   ro   rK   râ   rŠ   rÊ   rã   )ç¡Ö4ï8EÇ?gs×òAÏî?Úg)g¯%äƒžÍÂ?g·Ñ Þ	æ?Úl)rt  gê46<ã?)	r   rM   r±   rå   r
   r   ræ   r    Úks_2samp)r!   r1   ZwinterZspringZsummerZfallr$   r$   r%   Útest_ks_2sampG  s     ýÿÿÿzTestMisc.test_ks_2sampc                 C   s.  ddddddddddg
dd	dddddd	ddg
ddd
ddd	dd
d	dg
f}t j|Ž }t|d ddƒ t|d ddƒ ttdddddddddddgdddddddddddddgdddddddddtddtgtddddtdddddddgg}t |¡}t j|Ž }t|d ddƒ t|d ddƒ d}t||dd � d S )!Ng      "@g      #@ç      @g      @g       @r   rp   r   rq   r   r   r   gû:pÎˆò$@r8   r   gí(ÎQGÇu?rK   r6   rà   rá   rn   r7   ro   râ   rŠ   rÊ   rã   grŠŽäò @g-Cëâ6â?©Ú	statisticr®   Tr¯   )r    Zfriedmanchisquarer
   r   rM   r±   r   )r!   rr  rÚ   r1   r¶   r$   r$   r%   Útest_friedmanchisqV  s$    þ
ý

zTestMisc.test_friedmanchisqN)r'   r(   r)   rs  rx  r|  r$   r$   r$   r%   rp  =  s   rp  c                  C   s´   t  ddd¡} dt  ddd¡ d }|t  t  ddd¡¡7 }t | |¡}tjj}tt	||ƒƒ d}t
||dd� d	t|ƒks€t‚t|jd
ƒ t|jdƒ t|jdƒ t|jdƒ d S )Nr   rH   rä   r@   rA   )ÚslopeÚ	interceptZrvaluer®   ÚstderrTr¯   Úintercept_stderrgÍ5E%É?gÎâ ’+l$@g·4_Q c?g8Äèê¿Á?)r   r¿   Úsinr    Ú
linregressr   Z_stats_mstats_commonZLinregressResultr   Ú
isinstancer   ÚdirrÂ   r
   r}  r~  r  r€  )r1   rŒ   rÚ   Úlrr¶   r$   r$   r%   Útest_regress_simplem  s    r†  c               	   C   sB   t  d¡} t j d¡}d}tt|d�� t | |¡ W 5 Q R X d S )Nr@   zBCannot calculate a linear regression if all x values are identicalr½   )r   r=  rÀ   rÖ   rÃ   r    r‚  )r1   rŒ   Úmsgr$   r$   r%   Útest_linregress_identical_xƒ  s
    
rˆ  c                  C   s„  t  dddg¡\} }}}t| dƒ t|dƒ t jdddgdd�\} }}}t| dƒ t|dƒ tjjddddgddd	dgd
�}t  |¡\} }}}t| dƒ t|dƒ t j|dd�\} }}}t| dƒ t|dƒ dddddddg}dddddddg}t  ||d¡\} }}}t| dƒ t|dƒ t|ddd� t|ddd� t j||ddd�\} }}}t| dƒ t|dƒ t|ddd� t|ddd� d S ) Nr   r   r_   ZjointrÌ   r{   rH   FTrI   rL   gUUUUUUå?r6   r7   r8   r@   r  râ   rŠ   é   é   rA   rÔ   é7   éN   gìQ¸…ë±?r   g…ëQ¸…@ri  g®Gáz®@r   )r    Útheilslopesr
   r   rM   r   )r}  r~  ÚlowerÚupperrŒ   r1   r$   r$   r%   Útest_theilslopes‹  s>    

ÿ

 

ÿ




ÿ

r�  c               	   C   s’   t jtdd��. t ddgddg¡} t t | ¡¡s8t‚W 5 Q R X t	ƒ �@}| 
td¡ t dddgdddg¡} t| ddtjtjfƒ W 5 Q R X d S )NzAll `x` coordinates are...r½   r   r   zinvalid value encountered...)rc   Zwarnsr€   r    r�  r   ÚallÚisnanrÂ   r   Úfilterr   r   )rµ   Úsupr$   r$   r%   Útest_theilslopes_warnings²  s    r•  c                  C   sh   dddg} dddg}t  | |¡\}}}}t  | |¡}t||jƒ t||jƒ t||jƒ t||jƒ dS )zj
    Simple test to ensure tuple backwards-compatibility of the returned
    TheilslopesResult object
    r   r6   r8   rK   rr   N)r    r�  r	   r}  r~  Ú	low_slopeÚ
high_slope)rŒ   r1   r}  r~  r–  r—  rÚ   r$   r$   r%   Ú'test_theilslopes_namedtuple_consistency½  s    

r˜  c                  C   s2  dt  d¡ d } tt | ¡dƒ ttj| dd�dƒ dt  d¡ }d| d } tt | |¡d	ƒ ttj| |dd�d	ƒ d
| d d…< tt | |¡d	ƒ t  d¡}dd|  tjjddd� } t || ¡\}}}}}t | |¡\}}t	||dd� t	||dd� tj| |dd�\}}t	||dd� t	||dd� d S )Nr6   r@   r_   )r   r_   ZseparaterÌ   rn   r   )ry  rN  rÜ   r8   gffffffÀrŸ   éç   ©ÚsizeÚrandom_stater¼   r-   )
r   r|   r	   r    Úsiegelslopesr   ÚnormÚrvsr‚  r   )rŒ   r1   Z	slope_olsZintercept_olsÚ_r}  r~  r$   r$   r%   Útest_siegelslopesÎ  s$    
r¡  c                  C   sL   dddg} dddg}t  | |¡\}}t  | |¡}t||jƒ t||jƒ dS )zl
    Simple test to ensure tuple backwards-compatibility of the returned
    SiegelslopesResult object.
    r   r6   r8   rK   rr   N)r    r�  r	   r}  r~  )rŒ   r1   r}  r~  rÚ   r$   r$   r%   Ú(test_siegelslopes_namedtuple_consistencyë  s    

r¢  c                  C   s0   t  t d¡dd¡} t| jt dddg¡ƒ d S )Nr7   r   r:   r_   rÎ   )r    Zplotting_positionsr   r|   r   r"   r   )Úposr$   r$   r%   Útest_plotting_positionsú  s    r¤  c                   @   sx   e Zd 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¡e
j dddg¡dd„ ƒƒZdd„ ZdS )ÚTestNormalitytestsc                 C   s¬   t  d¡d }tt |¡t |¡ƒ tt |¡t |¡ƒ tt |¡t |¡ƒ tjtjtjg}tjtjtjg}ddddg}t||ƒD ] \}}t	t
||ƒ t	t
||ƒ q†d S )N©r]  rR   r   r   r6   r7   r]  rR   r   r   r6   r7   r]  rR   r   r   r6   r7   r]  rR   r   r   r6   r7   r6   r   r7   r8   )r   r   r   r    Ú
normaltestr   ÚskewtestÚkurtosistestÚziprÖ   rÃ   )r!   r1   ÚfuncsZmfuncsÚfuncZmfuncr$   r$   r%   Útest_vs_nonmasked  s     
ÿ
ÿ
ÿz$TestNormalitytests.test_vs_nonmaskedc                 C   s`   t  d¡d }ttj|d d�t |¡ƒ ttj|d d�t |¡ƒ ttj|d d�t |¡ƒ d S )Nr¦  r6   rs   )r   r   r   r    r§  r¨  r©  rv   r$   r$   r%   Útest_axis_None  s    ÿz!TestNormalitytests.test_axis_Nonec                 C   s†   t  d¡d }t jjt jt j|df t jddg|j df d�}tt |¡t	 |¡ƒ tt 
|¡t	 
|¡ƒ tt |¡t	 |¡ƒ d S )Nr¦  r6   r@   TFrI   )r   r   rM   Zr_Úinfr›  r   r    r§  r   r¨  r©  )r!   r1   Úxmr$   r$   r%   Útest_maskedarray_input  s    ÿz)TestNormalitytests.test_maskedarray_inputc                 C   sz   t  d¡d }t  |gd ¡j}tjtjtjfD ]D}||ƒ}||ƒ}t|d |d gd ƒ t|d |d gd ƒ q0d S )Nr¦  r6   r   r   )	r   r   Zvstackrå   r    r§  r¨  r©  r   )r!   r1   Zx_2dr¬  Zres_1dZres_2dr$   r$   r%   Útest_nd_input#  s    z TestNormalitytests.test_nd_inputc                 C   s.   t  d¡d }t |¡}d}t||dd� d S ©Nr¦  r6   rz  Tr¯   )r   r   r    r§  r   ©r!   r1   rµ   r¶   r$   r$   r%   Ú!test_normaltest_result_attributes,  s    
z4TestNormalitytests.test_normaltest_result_attributesc                 C   s.   t  d¡d }t |¡}d}t||dd� d S r³  )r   r   r    r©  r   r´  r$   r$   r%   Ú#test_kurtosistest_result_attributes2  s    
z6TestNormalitytests.test_kurtosistest_result_attributesc              
   C   sL   ddddddddddg
}t  dd	„ t|ƒD ƒ¡}tt |¡d
 dk dƒ d S )Né€   r   é:   ro   é)   rà   é§   c                 S   s   g | ]\}}t  ||¡‘qS r$   )r   Úfull)Ú.0rK  Úcr$   r$   r%   Ú
<listcomp><  s     z;TestNormalitytests.regression_test_9033.<locals>.<listcomp>r   g{®Gáz„?T)r   ZhstackrI  r	   r    r©  )r!   Úcountsr1   r$   r$   r%   Úregression_test_90338  s    z'TestNormalitytests.regression_test_9033Útestr¨  r©  rº   r»   r¸   c           
      C   sÌ   t jjddddd�}tt |ƒ}tt|ƒ}|||d�\}}|||d�\}}	t||dd� t|	|dd� tj|d	d
…< tjj	|t 
|¡d�}|| ¡ |d�\}}|||d�\}}	t||dd� t|	|dd� d S )Nr@   r   rB   é{   ©ÚlocÚscaler›  rœ  r¹   gê-�™—q=©Zatolr   rn   rI   )r   rž  rŸ  Úgetattrr    r   r   r   rM   r‹   r’  rï   )
r!   rÁ  rº   r1   Z
stats_testZmstats_testZz_exÚp_exrÙ   r‡   r$   r$   r%   Útest_alternative?  s    

z#TestNormalitytests.test_alternativec              	   C   sh   t jjddd�}d}tjt|d�� tj|dd� W 5 Q R X tjt|d�� tj|dd� W 5 Q R X d S )NrA   rÂ  rš  ú4alternative must be 'less', 'greater' or 'two-sided'r½   ry   r¹   )	r   rž  rŸ  rc   r   rÃ   r    r¨  r©  )r!   r1   r‡  r$   r$   r%   Útest_bad_alternativeT  s    z'TestNormalitytests.test_bad_alternativeN)r'   r(   r)   r­  r®  r±  r²  rµ  r¶  rÀ  rc   rd   r  rÉ  rË  r$   r$   r$   r%   r¥     s   		r¥  c                   @   s   e Zd Zdd„ ZdS )ÚTestFOnewayc                 C   sJ   t jddgt jd�}t jddgt jd�}t ||¡}d}t||dd� d S )	Ni�  i  rj   i  i  rz  Tr¯   )r   r   Zuint16r    Zf_onewayr   )r!   r>   rØ   rµ   r¶   r$   r$   r%   Útest_result_attributes`  s
    z"TestFOneway.test_result_attributesN©r'   r(   r)   rÍ  r$   r$   r$   r%   rÌ  _  s   rÌ  c                ö   @   sT  e Zd Ze ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddgô¡Ze ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddgž¡Zdd„ Zdd„ ZdS )	ÚTestMannwhitneyur   r   r   c                 C   s&   t  | j| j¡}d}t||dd� d S )Nrz  Tr¯   )r    Úmannwhitneyur1   rŒ   r   )r!   rµ   r¶   r$   r$   r%   rÍ  Š  s    z'TestMannwhitneyu.test_result_attributesc                 C   sB   t  | j| j¡}t | j| j¡}|j|jks0t‚t|j|jƒ d S r7  )	r    rÐ  r1   rŒ   r   r{  rÂ   r   r®   )r!   Úres1Úres2r$   r$   r%   Útest_against_stats�  s    z#TestMannwhitneyu.test_against_statsN)	r'   r(   r)   r   r   r1   rŒ   rÍ  rÓ  r$   r$   r$   r%   rÏ  h  sø                                                                                                                                                                                                                        ï                                                                                                                                      õrÏ  c                   @   s   e Zd Zdd„ ZdS )ÚTestKruskalc                 C   s>   dddddg}dddd	d
g}t  ||¡}d}t||dd� d S )Nr   r7   rn   ro   rŠ   r6   r8   rK   rr   r@   rz  Tr¯   )r    Zkruskalr   r´   r$   r$   r%   rÍ  š  s
    z"TestKruskal.test_result_attributesNrÎ  r$   r$   r$   r%   rÔ  ™  s   rÔ  c                   @   s^   e Zd 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S )ÚTestTtest_relc                 C   sv  t j d¡ t j dd¡ddddg }t |d d …df |d d …df ¡}t |d d …df |d d …df ¡}t||ƒ tj|d d …df |d d …df d d�}tj|d d …df |d d …df d d�}t||ƒ tj|d d …d d…f |d d …dd …f dd�}tj|d d …d d…f |d d …dd …f dd�}t||ƒ t |d d …d d…f |d d …dd …f ¡}t||ƒ d S )Né‡Ö rA   r8   r   r   r6   rs   )r   rÀ   rî   Úrandnr   Ú	ttest_relr    r   )r!   ÚoutcomerÑ  rÒ  Úres3r$   r$   r%   r­  ¥  s    $$
((
00
,zTestTtest_rel.test_vs_nonmaskedc              	   C   sÂ   t j d¡ tjt j dd¡dddgdddggd�}tƒ �~}| td¡ |d d …df |d d …df ft j	t j	gdd	gffD ]6}t
j|Ž \}}t|t j	t j	fƒ t|t j	t j	fƒ q|W 5 Q R X d S ©
NrÖ  r7   r6   r   r   rI   ú%invalid value encountered in absoluter   r   )r   rÀ   rî   rM   r‹   r×  r   r“  r€   r   r    rØ  r   ©r!   rÙ  r”  ÚpairÚtr‡   r$   r$   r%   Útest_fully_maskedº  s    ÿ8zTestTtest_rel.test_fully_maskedc                 C   s`   t j d¡ t j dd¡ddddg }t |d d …df |d d …df ¡}d}t||dd	� d S ©
NrÖ  rA   r8   r   r   r6   rz  Tr¯   )r   rÀ   rî   r×  r    rØ  r   ©r!   rÙ  rµ   r¶   r$   r$   r%   rÍ  Å  s
    $z$TestTtest_rel.test_result_attributesc              	   C   sz   t ttjt d¡t d¡ƒ t d¡}t ttj| ddd¡| ddd¡dd� t ttj| ddd¡| ddd¡dd� d S )	Nr@   rÊ   r9   r6   r7   r8   r   rs   )rÖ   rÃ   r    rØ  r   r|   r  rv   r$   r$   r%   Útest_invalid_input_sizeÍ  s     ÿ
  ÿ  ÿz%TestTtest_rel.test_invalid_input_sizec                 C   s$   t  g g ¡}tt t |¡¡ƒ d S r7  )r    rØ  r   r   r‘  r’  ©r!   rÑ  r$   r$   r%   Ú
test_emptyÖ  s    zTestTtest_rel.test_emptyc              	   C   s¤   t  dddgdddg¡\}}tt |¡|ftjdfƒ tƒ �^}| td¡ t  dddgdddg¡\}}t	|t 
tjtjg¡ƒ t	|t 
tjtjg¡ƒ W 5 Q R X d S ©Nr   r   rÜ  )r    Ú	ttest_indr	   r   Úabsr¯  r   r“  r€   r   r   r   ©r!   rß  r‡   r”  r$   r$   r%   Útest_zero_divisionÚ  s    z TestTtest_rel.test_zero_divisionc              	   C   s>   d}t jt|d��" tjdddgdddgd	d
� W 5 Q R X d S ©NrÊ  r½   r   r6   r7   r8   rn   rK   Úfoor¹   ©rc   r   rÃ   r    rç  ©r!   r‡  r$   r$   r%   rË  ä  s    z"TestTtest_rel.test_bad_alternativerº   r»   r¸   c                 C   s  t jjddddd�}t jjddddd�}t j|||d�\}}tj|||d�\}}t||d	d
� t||d	d
� tj|dd…< tj|dd…< tjj	|t 
|¡d�}tjj	|t 
|¡d�}tj|||d�\}}t j| ¡ | ¡ |d�\}}t||d	d
� t||d	d
� d S )Nr@   rn   rÓ   é*   rÃ  rr   r6   r¹   r;   r-   r   rI   )r   rž  rŸ  rØ  r    r   r   r   rM   r‹   r’  rï   ©r!   rº   r1   rŒ   Út_exrÈ  rß  r‡   r$   r$   r%   rÉ  é  s     ÿ
zTestTtest_rel.test_alternativeN)r'   r(   r)   r­  rà  rÍ  rã  rå  rê  rË  rc   rd   r  rÉ  r$   r$   r$   r%   rÕ  ¤  s   	
rÕ  c                   @   sV   e Z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S )ÚTestTtest_indc                 C   s*  t j d¡ t j dd¡ddddg }t |d d …df |d d …df ¡}t |d d …df |d d …df ¡}t||ƒ tj|d d …df |d d …df d d�}tj|d d …df |d d …df d d�}t||ƒ tj|d d …d d…f |d d …dd …f dd�}tj|d d …d d…f |d d …dd …f dd�}t||ƒ t |d d …d d…f |d d …dd …f ¡}t||ƒ tj|d d …df |d d …df dd	�}tj|d d …df |d d …df dd	�}t||ƒ tj|d d …df |d d …df d
d	�}tj|d d …df |d d …df d
d	�}t||ƒ d S )NrÖ  rA   r8   r   r   r6   rs   T©Z	equal_varF)r   rÀ   rî   r×  r   rç  r    r   )r!   rÙ  rÑ  rÒ  rÚ  Zres4Zres5r$   r$   r%   r­     s&    $$
((
00
,
((
((zTestTtest_ind.test_vs_nonmaskedc              	   C   sÂ   t j d¡ tjt j dd¡dddgdddggd�}tƒ �~}| td¡ |d d …df |d d …df ft j	t j	gdd	gffD ]6}t
j|Ž \}}t|t j	t j	fƒ t|t j	t j	fƒ q|W 5 Q R X d S rÛ  )r   rÀ   rî   rM   r‹   r×  r   r“  r€   r   r    rç  r   rÝ  r$   r$   r%   rà    s    (8zTestTtest_ind.test_fully_maskedc                 C   s`   t j d¡ t j dd¡ddddg }t |d d …df |d d …df ¡}d}t||dd	� d S rá  )r   rÀ   rî   r×  r    rç  r   râ  r$   r$   r%   rÍ  '  s
    $z$TestTtest_ind.test_result_attributesc                 C   s$   t  g g ¡}tt t |¡¡ƒ d S r7  )r    rç  r   r   r‘  r’  rä  r$   r$   r%   rå  /  s    zTestTtest_ind.test_emptyc              	   C   sü   t  dddgdddg¡\}}tt |¡|ftjdfƒ tƒ �R}| td¡ t  dddgdddg¡\}}t	|tj
tj
fƒ t	|tj
tj
fƒ W 5 Q R X t jdddgdddgdd�\}}tt |¡|ftjdfƒ t	t jdddgdddgdd�tj
tj
fƒ d S )Nr   r   rÜ  Fró  )r    rç  r	   r   rè  r¯  r   r“  r€   r   r   ré  r$   r$   r%   rê  3  s     ÿ
ÿz TestTtest_ind.test_zero_divisionc              	   C   s>   d}t jt|d��" tjdddgdddgd	d
� W 5 Q R X d S rë  rí  rî  r$   r$   r%   rË  B  s    z"TestTtest_ind.test_bad_alternativerº   r»   r¸   c                 C   s  t jjddddd�}t jjddddd�}t j|||d�\}}tj|||d�\}}t||dd	� t||dd	� tj|d
d…< tj|dd…< tjj	|t 
|¡d�}tjj	|t 
|¡d�}t j| ¡ | ¡ |d�\}}tj|||d�\}}t||dd	� t||dd	� d S )Nr@   r6   rH   rÂ  rÃ  rr   r¹   r;   r-   r   rF   rG   rI   )r   rž  rŸ  rç  r    r   r   r   rM   r‹   r’  rï   rð  r$   r$   r%   rÉ  G  s     ÿ
zTestTtest_ind.test_alternativeN©r'   r(   r)   r­  rà  rÍ  rå  rê  rË  rc   rd   r  rÉ  r$   r$   r$   r%   rò  ÿ  s   
rò  c                   @   sV   e Z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S )ÚTestTtest_1sampc                 C   sd   t j d¡ t j dd¡ddddg }t |d d …df d¡}t |d d …df d¡}t||ƒ d S )NrÖ  rA   r8   r   r   r6   )r   rÀ   rî   r×  r   Úttest_1sampr    r   )r!   rÙ  rÑ  rÒ  r$   r$   r%   r­  ^  s
    z!TestTtest_1samp.test_vs_nonmaskedc              	   C   s–   t j d¡ tjt j d¡dddgd�}t jt jf}tƒ �R}| t	d¡ t jt jfdf|dffD ]&}t
j|Ž \}}t||ƒ t||ƒ q`W 5 Q R X d S )NrÖ  r7   r   rI   rÜ  r{   )r   rÀ   rî   rM   r‹   r×  r   r   r“  r€   r    rö  r   )r!   rÙ  r×   r”  rÞ  rß  r‡   r$   r$   r%   rà  g  s    
z!TestTtest_1samp.test_fully_maskedc                 C   sT   t j d¡ t j dd¡ddddg }t |d d …df d¡}d}t||dd	� d S rá  )r   rÀ   rî   r×  r    rö  r   râ  r$   r$   r%   rÍ  r  s
    z&TestTtest_1samp.test_result_attributesc                 C   s$   t  g d¡}tt t |¡¡ƒ d S )Nr   )r    rö  r   r   r‘  r’  rä  r$   r$   r%   rå  z  s    zTestTtest_1samp.test_emptyc              	   C   sˆ   t  dddgd¡\}}tt |¡|ftjdfƒ tƒ �H}| td¡ t  dddgd¡\}}t	t 
|¡ƒ t|tjtjfƒ W 5 Q R X d S ræ  )r    rö  r	   r   rè  r¯  r   r“  r€   r   r’  r   r   ré  r$   r$   r%   rê  ~  s    z"TestTtest_1samp.test_zero_divisionc              	   C   s8   d}t jt|d�� tjdddgddd� W 5 Q R X d S )	NrÊ  r½   r   r6   r7   r8   rì  r¹   )rc   r   rÃ   r    rö  rî  r$   r$   r%   rË  ˆ  s    z$TestTtest_1samp.test_bad_alternativerº   r»   r¸   c                 C   sÈ   t jjddddd�}t j|d|d�\}}tj|d|d�\}}t||dd	� t||dd	� tj|d
d…< tjj	|t 
|¡d�}t j| ¡ d|d�\}}tj|d|d�\}}t||dd	� t||dd	� d S )Nr@   r6   rH   rÂ  rÃ  rŠ   r¹   r;   r-   r   rI   )r   rž  rŸ  rö  r    r   r   r   rM   r‹   r’  rï   )r!   rº   r1   rñ  rÈ  rß  r‡   r$   r$   r%   rÉ  �  s    ÿ
z TestTtest_1samp.test_alternativeNrô  r$   r$   r$   r%   rõ  ]  s   	
rõ  c                   @   s   e Zd ZdZdd„ ZdS )ÚTestDescribez…
    Tests for mstats.describe.

    Note that there are also tests for `mstats.describe` in the
    class TestCompareWithStats.
    c              	   C   sÐ   t jjddddddgddddddggddddddgddddddggd�}tj|dd	�}t|jddgƒ |j\}}t|ddgƒ t|ddgƒ t|jd
dgƒ t|j	d
dgƒ t|j
ddgƒ t|jddgƒ d S )Nr   r   r6   r7   r8   rŠ   rn   rI   rs   r   r   r   r{   gÍÌÌÌÌÌô¿ç       À)r   rM   r‹   r    Údescriber	   ÚnobsÚminmaxÚmeanÚvarianceÚskewnessr   rO  )r!   r>   rÚ   ZaminZamaxr$   r$   r%   Útest_basic_with_axis§  s     ÿÿþ
z!TestDescribe.test_basic_with_axisN)r'   r(   r)   ro  rÿ  r$   r$   r$   r%   r÷     s   r÷  c                   @   s8  e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*d+„ Zd,d-„ Zd.d/„ Zd0d1„ Zd2d3„ Zd4d5„ Zd6d7„ Zd8d9„ Zd:d;„ Z d<d=„ Z!d>d?„ Z"d@dA„ Z#dBdC„ Z$dDdE„ Z%dFdG„ Z&dHdI„ Z'dJdK„ Z(dLS )MÚTestCompareWithStatsa  
    Class to compare mstats results with stats results.

    It is in general assumed that scipy.stats is at a more mature stage than
    stats.mstats.  If a routine in mstats results in similar results like in
    scipy.stats, this is considered also as a proper validation of scipy.mstats
    routine.

    Different sample sizes are used for testing, as some problems between stats
    and mstats are dependent on sample size.

    Author: Alexander Loew

    NOTE that some tests fail. This might be caused by
    a) actual differences or bugs between stats and mstats
    b) numerical inaccuracies
    c) different definitions of routine interfaces

    These failures need to be checked. Current workaround is to have disabled these tests,
    but issuing reports on scipy-dev

    c                 C   s   ddddgS )z9 Returns list of sample sizes to be used for comparison. rÜ   rH   r@   rn   r$   r^  r$   r$   r%   Úget_nÏ  s    zTestCompareWithStats.get_nc                 C   s¤   t j d¡ t j |¡}|t j |¡ }t  t|ƒd d¡}t  t|ƒd d¡}||dt|ƒ…< ||dt|ƒ…< |dk}t jj||d�}t jj||d�}||||fS )NrÖ  rn   g €à7yÃACr   g €úÊsù?CrI   )r   rÀ   rî   r×  r»  ÚlenrM   r   )r!   rÄ   r1   rŒ   r°  ÚymrJ   r$   r$   r%   Úgenerate_xy_sampleÓ  s    z'TestCompareWithStats.generate_xy_samplec           
      C   sø   t  ||ft j¡}t  ||ft j¡}t  |d |ft j¡}t  |d |ft j¡}t|ƒD ].}|  |¡\|d d …|f< |d d …|f< }}	qX|d|… |d|…d d …f< |d|… |d|…d d …f< t jj|t  |¡d�}t jj|t  |¡d�}||||fS )Nrn   r   rI   )r   r»  r   r³   r  rM   r   r’  )
r!   rÄ   Únxr1   rŒ   r°  r  rK  ZdxZdyr$   r$   r%   Úgenerate_xy_sample2Dâ  s    ,z)TestCompareWithStats.generate_xy_sample2Dc                 C   sT   |   ¡ D ]F}|  |¡\}}}}t ||¡}tj ||¡}tt |¡t |¡ƒ qd S r7  )r  r  r   r‚  r    r   r   rk   )r!   rÄ   r1   rŒ   r°  r  Zresult1Zresult2r$   r$   r%   Útest_linregressñ  s
    z$TestCompareWithStats.test_linregressc           
      C   sb   |   ¡ D ]T}|  |¡\}}}}t ||¡\}}tj ||¡\}}	t||dd� t||	dd� qd S )Nr  ri  )r  r  r   r�   r    r
   ©
r!   rÄ   r1   rŒ   r°  r  r†   r‡   ÚrmÚpmr$   r$   r%   r‰   ø  s    z"TestCompareWithStats.test_pearsonrc           
      C   s^   |   ¡ D ]P}|  |¡\}}}}t ||¡\}}tj ||¡\}}	t||dƒ t||	dƒ qd S ©Nr  )r  r  r   r°   r    r
   r  r$   r$   r%   r·     s    z#TestCompareWithStats.test_spearmanrc                 C   s    t  d¡}tttj||dƒ d S )NrK   F)r   r|   rÖ   rÃ   r    r°   rv   r$   r$   r%   Ú!test_spearmanr_backcompat_useties	  s    
z6TestCompareWithStats.test_spearmanr_backcompat_usetiesc                 C   s|   |   ¡ D ]n}|  |¡\}}}}t t|ƒ¡}tj t|ƒ¡}t||dd� t t|ƒ¡}tj t|ƒ¡}t||dd� qd S )Ng‚vIhÂ%<=r-   )r  r  r   r/   rè  r    r   ©r!   rÄ   r1   rŒ   r°  r  r†   r	  r$   r$   r%   Ú
test_gmean  s    zTestCompareWithStats.test_gmeanc                 C   sx   |   ¡ D ]j}|  |¡\}}}}t t|ƒ¡}tj t|ƒ¡}t||dƒ t t|ƒ¡}tj t|ƒ¡}t||dƒ qd S ©Nr@   )r  r  r   r3   rè  r    r
   r  r$   r$   r%   Ú
test_hmean  s    zTestCompareWithStats.test_hmeanc                 C   sh   |   ¡ D ]Z}|  |¡\}}}}t |¡}tj |¡}t||dƒ t |¡}tj |¡}t||dƒ qd S r  )r  r  r   rE  r    r
   r  r$   r$   r%   Ú	test_skew&  s    

zTestCompareWithStats.test_skewc                 C   sh   |   ¡ D ]Z}|  |¡\}}}}t |¡}tj |¡}t||dƒ t |¡}tj |¡}t||dƒ qd S r  )r  r  r   r;  r    r
   r  r$   r$   r%   r>  2  s    

z TestCompareWithStats.test_momentc              	   C   sÄ   |   ¡ D ]¶}|  |¡\}}}}|| ¡  | ¡  }|| ¡  | ¡  }tt |¡|dd� tt |¡|dd� tt |¡tj |dt|ƒ… ¡dd� tt |¡tj |dt|ƒ… ¡dd� qd S )Nç»½×Ùß|Û=r-   r   )	r  r  rü  Zstdr   r   rm  r    r  )r!   rÄ   r1   rŒ   r°  r  ZzxZzyr$   r$   r%   rn  >  s     ÿ ÿz TestCompareWithStats.test_zscorec                 C   sh   |   ¡ D ]Z}|  |¡\}}}}t |¡}tj |¡}t||dƒ t |¡}tj |¡}t||dƒ qd S r  )r  r  r   rO  r    r
   r  r$   r$   r%   rP  P  s    

z"TestCompareWithStats.test_kurtosisc           
      C   s  t  d¡ dd¡}t j |¡}tj|dd�}tjj|dd�}t|ddd� t|ddd� |  	¡ D ]¶}|  
|¡\}}}}	ttjj|d d	d
�tj|d d	d
�dd� ttjj|	d d	d
�tj|d d	d
�dd� ttjj|d dd
�tj|d dd
�dd� ttjj|	d dd
�tj|d dd
�dd� q`d S )NrA   rn   r8   r   r,  gß'Üež @gñhãˆµøä>rÆ  r   )r   r-  é   ri  )r   r|   r  rM   r   r   rd  r    r   r  r  r
   )
r!   r>   Úamr†   r	  rÄ   r1   rŒ   r°  r  r$   r$   r%   re  [  s0     ÿ ÿ ÿ ÿzTestCompareWithStats.test_semc           	      C   sr   |   ¡ D ]d}|  |¡\}}}}tj|dd�}tjj|dd�}tdƒD ]&}tt || ¡t || ¡dd� qDqd S )Nr   r,  rK   r  ri  )	r  r  r   rù  r    r³   r
   r   rk   )	r!   rÄ   r1   rŒ   r°  r  r†   r	  Úiir$   r$   r%   Útest_describep  s    þz"TestCompareWithStats.test_describec                 C   s&   t  t d¡¡}d}t||dd� d S )Nrn   )rú  rû  rü  rý  rþ  rO  Tr¯   )r    rù  r   r|   r   )r!   r8  r¶   r$   r$   r%   Útest_describe_result_attributesz  s    z4TestCompareWithStats.test_describe_result_attributesc                 C   sD   |   ¡ D ]6}|  |¡\}}}}t |¡}tj |¡}t||ƒ qd S r7  )r  r  r   ru   r    r   r  r$   r$   r%   Útest_rankdata€  s
    
z"TestCompareWithStats.test_rankdatac                 C   sX   |   ¡ D ]J}|  |¡\}}}}tt |¡tj |¡dƒ tt |¡tj |¡dƒ qd S r  )r  r  r
   r   Ztmeanr    ©r!   rÄ   r1   rŒ   r°  r  r$   r$   r%   Ú
test_tmean‡  s    zTestCompareWithStats.test_tmeanc                 C   s¤   |   ¡ D ]–}|  |¡\}}}}tt |d¡tj |d¡dƒ tt |d¡tj |d¡dƒ ttj|dd�tjj|dd�dƒ ttj|dd�tjj|dd�dƒ qd S )Nr   r@   r   )Z
upperlimit)r  r  r
   r   Ztmaxr    r  r$   r$   r%   Ú	test_tmax�  s$     ÿ ÿ ÿ ÿzTestCompareWithStats.test_tmaxc                 C   s˜   |   ¡ D ]Š}|  |¡\}}}}tt |¡tj |¡ƒ tt |¡tj |¡ƒ ttj|dd�tjj|dd�dƒ ttj|dd�tjj|dd�dƒ qd S )Nrz   )Z
lowerlimitr@   )r  r  r	   r   Ztminr    r
   r  r$   r$   r%   Ú	test_tminš  s     ÿ ÿzTestCompareWithStats.test_tminc                 C   sX   |   ¡ D ]J}|  |¡\}}}}t ||¡}tj ||¡}t||dt|ƒ… dd� qd S )Nr   r  rÆ  )r  r  r   rk  r    r   r  )r!   rÄ   r1   rŒ   r°  r  rÙ   Zzmr$   r$   r%   rl  ¥  s
    zTestCompareWithStats.test_zmapc                 C   s\   |   ¡ D ]N}|  |¡\}}}}tt |¡tj |¡dd� tt |¡tj |¡dd� qd S ©Nr  ri  )r  r  r
   r   r@  r    r  r$   r$   r%   rA  ¬  s    ÿÿz#TestCompareWithStats.test_variationc                 C   s\   |   ¡ D ]N}|  |¡\}}}}tt |¡tj |¡dd� tt |¡tj |¡dd� qd S r  )r  r  r
   r   Útvarr    r  r$   r$   r%   Ú	test_tvar´  s    ÿÿzTestCompareWithStats.test_tvarc                 C   sB   t  d¡}t |d¡}tj |d¡}tt  |¡|j|j  ƒ d S )NrA   r¼   )	r   r|   r   r  r    r   Úsortr"   rJ   )r!   r>   rØ   Zbmr$   r$   r%   Útest_trimboth¼  s    
z"TestCompareWithStats.test_trimbothc                 C   s€   |   ¡ D ]r}|  |¡\}}}}tt |¡tj |¡dd� tt |¡tj |¡dd� ttj|dd�tjj|dd�dd� qd S )Nr  ri  )rø  r   )r  )r  r  r
   r   Ztsemr    r  r$   r$   r%   Ú	test_tsemÂ  s    ÿÿþzTestCompareWithStats.test_tsemc                 C   sL   |   ¡ D ]>}|dkr|  |¡\}}}}t |¡}tj |¡}t||ƒ qd S )Nrr   )r  r  r   r¨  r    r   r  r$   r$   r%   Útest_skewtestÍ  s    
z"TestCompareWithStats.test_skewtestc                 C   s.   t  d¡d }t |¡}d}t||dd� d S r³  )r   r   r    r¨  r   r´  r$   r$   r%   Útest_skewtest_result_attributesÖ  s    
z4TestCompareWithStats.test_skewtest_result_attributesc                 C   s@   t j d¡d }t |¡}tj |¡}tt  |¡t  |¡ƒ d S )N)rA   r6   g      4@)r   rÀ   r   r¨  r    r   rk   )r!   r1   r†   r	  r$   r$   r%   Útest_skewtest_2D_notmaskedÜ  s    
z/TestCompareWithStats.test_skewtest_2D_notmaskedc           	      C   s„   d}|   ¡ D ]r}|dkr|  ||¡\}}}}t |¡}tj |¡}t|d d |d d dd� t|d d |d d dd� qd S )Nr6   rr   r   r;   r-   r   )r  r  r   r¨  r    r   )	r!   r  rÄ   r1   rŒ   r°  r  r†   r	  r$   r$   r%   Útest_skewtest_2D_WithMaskã  s    
z.TestCompareWithStats.test_skewtest_2D_WithMaskc           	   
   C   sŽ   t jdd��x tƒ �f}| td¡ |  ¡ D ]J}|dkr*|  |¡\}}}}t |¡}tj	 |¡}t
t  |¡t  |¡ƒ q*W 5 Q R X W 5 Q R X d S )Nr2  )Zoverz!kurtosistest only valid for n>=20rr   )r   rU   r   r“  ÚUserWarningr  r  r   r§  r    r   rk   )	r!   r”  rÄ   r1   rŒ   r°  r  r†   r	  r$   r$   r%   Útest_normaltestî  s    
z$TestCompareWithStats.test_normaltestc                 C   sÜ   t  dddddddddddg¡ d¡}t  dddddddddddddddg¡ d¡}|dk}t jj||d�}| ¡ | ¡  }}t |¡}tj |¡}t	||ƒ t	||ƒ t	||ƒ tj g ¡\}	}
t	|
t jd	t j
d
�ƒ d S )Nr   r6   r7   r8   rÝ   rn   ry  rI   r   rj   )r   rk   r[   rM   r   rW  r   Zfind_repeatsr    r	   Zintp)r!   r1   ÚtmprJ   r°  Zx_origZxm_origr†   r	  r   r¿  r$   r$   r%   Útest_find_repeatsø  s    &.



z&TestCompareWithStats.test_find_repeatsc                 C   sj   |   ¡ D ]\}|  |¡\}}}}t ||¡}tj ||¡}t|d |d dd� t|d |d dd� qd S )Nr   r@   ri  r   ro   )r  r  r   rÕ   r    r
   r  r$   r$   r%   rÛ     s    z$TestCompareWithStats.test_kendalltauc                 C   sR   |   ¡ D ]D}|  |¡\}}}}t |¡}tj |¡}t|j|dt|ƒ… ƒ qd S )Nr   )r  r  r   rq  r    r
   rå   r  r  r$   r$   r%   rs    s
    
z)TestCompareWithStats.test_obrientransformc              
   C   sº   dD ]°}t ƒ � }dD ]”}|  ¡ D ]†}|  |¡\}}}}tj|tjj||d�}	tjj|tjj||d�}
tt	 
|	¡t	 
|
¡ƒ tj|tjj||d�}tt	 
|	¡t	 
|¡ƒ q qW 5 Q R X qdS )zFChecks that mstats.ks_1samp and stats.ks_1samp agree on masked arrays.©Úautoré   Úasymp©r»   r¸   rë   ©rº   rR  N)r   r  r  r   Zks_1samprž  Zcdfr    r	   r   rk   ©r!   rR  r”  rº   rÄ   r1   rŒ   r°  r  rÑ  rÒ  rÚ  r$   r$   r%   Útest_ks_1samp  s    z"TestCompareWithStats.test_ks_1sampc              
   C   s®   dD ]¤}t ƒ �”}dD ]ˆ}|  ¡ D ]z}|  |¡\}}}}tj|d||d�}	tjj|d||d�}
tt |	¡t |
¡ƒ tj|d||d�}tt |	¡t |¡ƒ q qW 5 Q R X qdS )zKChecks that 1-sample mstats.kstest and stats.kstest agree on masked arrays.r+  r.  rž  r/  N)	r   r  r  r   Úkstestr    r	   r   rk   r0  r$   r$   r%   Útest_kstest_1samp'  s    z&TestCompareWithStats.test_kstest_1sampc              
   C   sÆ   dD ]¼}t ƒ �¬}|dkr(d}| t|¡ dD ]ˆ}|  ¡ D ]z}|  |¡\}}}}	tj||||d�}
tjj||	||d�}tt	 
|
¡t	 
|¡ƒ tj||||d�}tt	 
|
¡t	 
|¡ƒ q8q,W 5 Q R X qdS )zVChecks that mstats.ks_2samp and stats.ks_2samp agree on masked arrays.
        gh-8431r+  ©r,  ré   ú)ks_2samp: Exact calculation unsuccessful.r.  r/  N)r   r“  r€   r  r  r   rw  r    r	   r   rk   ©r!   rR  r”  Úmessagerº   rÄ   r1   rŒ   r°  r  rÑ  rÒ  rÚ  r$   r$   r%   rx  4  s    z"TestCompareWithStats.test_ks_2sampc              
   C   sÆ   dD ]¼}t ƒ �¬}|dkr(d}| t|¡ dD ]ˆ}|  ¡ D ]z}|  |¡\}}}}	tj||||d�}
tjj||	||d�}tt	 
|
¡t	 
|¡ƒ tj||||d�}tt	 
|
¡t	 
|¡ƒ q8q,W 5 Q R X qdS )zKChecks that 2-sample mstats.kstest and stats.kstest agree on masked arrays.r+  r4  r5  r.  r/  N)r   r“  r€   r  r  r   r2  r    r	   r   rk   r6  r$   r$   r%   Útest_kstest_2sampE  s    z&TestCompareWithStats.test_kstest_2sampN))r'   r(   r)   ro  r  r  r  r  r‰   r·   r  r  r  r  r>  rn  rP  re  r  r  r  r  r  r  rl  rA  r  r!  r"  r#  r$  r%  r&  r(  r*  rÛ   rs  r1  r3  rx  r8  r$   r$   r$   r%   r   ¸  sL   	
	
r   c                   @   sž   e Zd Zej dddddejdddddddddejg¡Zej ddddejdddddddg¡ZdZ	dd„ Z
d	d
„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTestBrunnerMunzelr   r6   r8   r7   rn   r  c           	      C   sð   t j| j| jdd�\}}t j| j| jdd�\}}t j| j| jdd�\}}t j| j| jdd�\}}t||| jd� t||| jd� t||kƒ t|d| jd� t|d| jd� t|d| jd� t|d| jd� t|d| jd� t|d| jd� d S )	Nr»   r¹   r¸   ri  ç|	&�ˆ	@ç|	&�ˆ	Àg°¿Ò�G³g?g@-p¸Lèï?)r    ÚbrunnermunzelÚXÚYr
   Úsignificantr   )	r!   Úu1rÅ   Úu2rÆ   Úu3rÇ   Zu4Zp4r$   r$   r%   Útest_brunnermunzel_one_sided]  s2    ÿÿÿÿÿÿz.TestBrunnerMunzel.test_brunnermunzel_one_sidedc                 C   st   t j| j| jdd�\}}t j| j| jdd�\}}t||| jd� t|d| jd� t|d| jd� t|d| jd� d S )Nrë   r¹   ri  r:  r;  ç ÀÒ�G³w?©r    r<  r=  r>  r
   r?  ©r!   r@  rÅ   rA  rÆ   r$   r$   r%   Útest_brunnermunzel_two_sidedt  s    ÿÿÿz.TestBrunnerMunzel.test_brunnermunzel_two_sidedc                 C   sl   t  | j| j¡\}}t  | j| j¡\}}t||| jd� t|d| jd� t|d| jd� t|d| jd� d S )Nri  r:  r;  rD  rE  rF  r$   r$   r%   Útest_brunnermunzel_default�  s    ÿÿÿz,TestBrunnerMunzel.test_brunnermunzel_defaultc                 C   s0   d}d}t |dkƒ tttj| j| j||ƒ d S )Nry   rß  rê   ©r   rÖ   rÃ   r    r<  r=  r>  ©r!   rº   Údistributionr$   r$   r%   Ú$test_brunnermunzel_alternative_errorŽ  s    ûz6TestBrunnerMunzel.test_brunnermunzel_alternative_errorc                 C   st   t j| j| jdd�\}}t j| j| jdd�\}}t||| jd� t|d| jd� t|d| jd� t|d| jd� d S )NÚnormal)rK  ri  r:  r;  g œ"H°ë[?rE  rF  r$   r$   r%   Ú$test_brunnermunzel_distribution_norm™  s    ÿÿÿz6TestBrunnerMunzel.test_brunnermunzel_distribution_normc                 C   s0   d}d}t |dkƒ tttj| j| j||ƒ d S )Nrë   ry   )rß  rM  rI  rJ  r$   r$   r%   Ú%test_brunnermunzel_distribution_error¤  s    ûz7TestBrunnerMunzel.test_brunnermunzel_distribution_errorc                 C   sŒ   t  | jg ¡\}}t  g | j¡\}}t  g g ¡\}}tt |¡ƒ tt |¡ƒ tt |¡ƒ tt |¡ƒ tt |¡ƒ tt |¡ƒ d S r7  )r    r<  r=  r>  r   r   r’  )r!   r@  rÅ   rA  rÆ   rB  rÇ   r$   r$   r%   Útest_brunnermunzel_empty_imput¯  s    z0TestBrunnerMunzel.test_brunnermunzel_empty_imputN)r'   r(   r)   r   rM   Zmasked_invalidr   r=  r>  r?  rC  rG  rH  rL  rN  rO  rP  r$   r$   r$   r%   r9  V  s&          ÿ&r9  )NNr*   )NNr*   )>ro  r}   rÿ   Únumpyr   r   Znumpy.marM   r   r   Zscipy.stats.mstatsr   r    ZscipyZcommon_testsr   rc   r   rÖ   Znumpy.ma.testutilsr	   r
   r   r   r   r   r   Znumpy.testingr   Zscipy.statsr   r   r2   r4   r5   rg   rm   rx   r  r5  rQ  rZ  rc  rp  r†  rˆ  r�  r•  r˜  r¡  r¢  r¤  r¥  rÌ  rÏ  rÔ  rÕ  rò  rõ  r÷  r   r9  r$   r$   r$   r%   Ú<module>   sf   $

:#  :c ) 0'_	1[^C   !