o
    Ö­jýT ã                   @   sz  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mZ ddl m!Z! ddl"m#Z#m$Z$ G dd„ dƒZ%dKdd„Z&dKdd„Z'e!G dd„ dƒƒZ(e!G dd„ dƒƒZ)G dd„ dƒZ*G dd„ dƒZ+e!G dd„ dƒƒZ,e!G dd „ d ƒƒZ-G d!d"„ d"ƒZ.G d#d$„ d$ƒZ/e!G d%d&„ d&ƒƒZ0e!G d'd(„ d(ƒƒZ1d)d*„ Z2d+d,„ Z3G d-d.„ d.ƒZ4d/d0„ Z5d1d2„ Z6d3d4„ Z7d5d6„ Z8e!G d7d8„ d8ƒƒZ9G d9d:„ d:ƒZ:G d;d<„ d<ƒZ;G d=d>„ d>ƒZ<G d?d@„ d@ƒZ=G dAdB„ dBƒZ>G dCdD„ dDƒZ?G dEdF„ dFƒZ@e!G dGdH„ dHƒƒZAG dIdJ„ dJƒZBdS )Lz?
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_basicÚ	_stats_py)Úskip_xp_invalid_arg)ÚSmallSampleWarningÚtoo_small_1d_not_omitc                   @   ó   e Zd Zdd„ ZdS )ÚTestMquantilesc                 C   s€   t  g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d	¢g d
¢g d¢g¡}g d¢g d¢g d¢g}tj|ddd�}t||ƒ d S )N)ç      @ç      @ç      ð?)g     €G@ç      .@ç       @)g     €H@ç      B@ç      @)r   ç     €C@ç      @)ç      E@ç      D@ç     8�À)ç     €D@r$   r#   )r   r#   r#   )r   r#   r#   )g     €E@r#   r#   )r"   r#   r#   )r   r#   r#   )g3333333@g333333-@g333333÷?)r"   g     ÀB@ç      @)gffffffE@gfffffD@gffffff@r   )r   é2   )ÚaxisÚlimit)ÚnpÚarrayÚmstatsÚ
mquantilesr
   )ÚselfÚdataÚdesiredÚquants© r1   ú`/var/www/html/CropPilot/venv/lib/python3.10/site-packages/scipy/stats/tests/test_mstats_basic.pyÚtest_mquantiles_limit_keyword   s$   
öþz,TestMquantiles.test_mquantiles_limit_keywordN)Ú__name__Ú
__module__Ú__qualname__r3   r1   r1   r1   r2   r      ó    r   çH¯¼šò×z>c                 C   ó.   t j| ||d�}t|||d� t|j|ƒ d S ©N)r'   Údtype©Úrtol)r+   Úgmeanr   r	   r;   ©Ú
array_liker/   r'   r;   r=   Úxr1   r1   r2   Úcheck_equal_gmean/   s   rB   c                 C   r9   r:   )r   Úhmeanr   r	   r;   r?   r1   r1   r2   Úcheck_equal_hmean6   s   rD   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&   g d¢}t  dd¡}t||dd� d S )N©r   é   é   é   é   ç      Ð?ç›+¡†›„=r<   )r)   ÚpowerrB   ©r-   Úar/   r1   r1   r2   Útest_1d>   s   zTestGeoMean.test_1dc                 C   sP   t  g d¢¡}d}t||ƒ t jg d¢g d¢d�}t dd¡}t||dd	� d S )
N©
é
   é   é   é(   r&   é<   éF   éP   éZ   éd   gs©ÑÅ¤F@rF   ©r   r   r   r   ©Úmaské   çUUUUUUÕ?rL   r<   )Úmar*   rB   r)   rM   rN   r1   r1   r2   Ú
test_1d_maC   s   
zTestGeoMean.test_1d_mac                 C   s*   t jjg d¢g d¢d�}d}t||ƒ d S )NrQ   ©
r   r   r   r   r   r   r   r   r   r   r\   gdåÝq_¼D@©r)   r`   r*   rB   rN   r1   r1   r2   Útest_1d_ma_valueM   s
   ÿzTestGeoMean.test_1d_ma_valuec                 C   s"   t j g d¢¡}d}t||ƒ d S )N)
rR   rS   rT   rU   r&   rV   rW   rX   rY   r   r   rc   rN   r1   r1   r2   Útest_1d_ma0T   s   zTestGeoMean.test_1d_ma0c                 C   sR   t j g d¢¡}t j}t jdd�� t||ƒ W d   ƒ d S 1 s"w   Y  d S )N)
rR   rS   rT   rU   r&   rV   rW   rX   rY   éÿÿÿÿÚignore)Úinvalid)r)   r`   r*   r   ÚerrstaterB   rN   r1   r1   r2   Útest_1d_ma_infZ   s
   "ÿzTestGeoMean.test_1d_ma_infÚfloat96úcannot find float96 so skipping©Úreasonc                 C   s@   t jg d¢g d¢d�}t dd¡ tj¡}t||tjdd� d S )NrF   r[   r\   r^   r_   rL   )r;   r=   )r`   r*   r)   rM   Úastyperk   rB   ©r-   rO   Ú
desired_dtr1   r1   r2   Útest_1d_float96a   s   zTestGeoMean.test_1d_float96c                 C   s¸   t jg d¢g d¢g d¢gg d¢g d¢g d¢gd�}t g d¢¡}t||ddd� t  t d	d
¡t dd¡t dd¡g¡}t||ddd� g d¢g d¢g d¢g}d}ttj  |¡|ƒ d S )NrF   ©r   r   r   r   ©r   r   r   r   ©r   r   r   r   r\   r   rL   ©r'   r=   rJ   rK   r^   ç      à?rI   rf   ©rR   rS   rT   rU   ©r&   rV   rW   rX   ©rY   rZ   én   éx   g/,$»qJ@)r`   r*   r)   rB   rM   rN   r1   r1   r2   Ú
test_2d_mah   s   ÿ

þzTestGeoMean.test_2d_maN)r4   r5   r6   rP   ra   rd   re   rj   ÚpytestÚmarkÚskipifÚhasattrr)   rr   r}   r1   r1   r1   r2   rE   <   s    
ÿ
rE   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   sp   t jg d¢g d¢d�}d}t||dd� tj  g d¢¡}d}t||ƒ tj jg d¢g d	¢d�}d
}t||ƒ d S )NrF   r[   r\   ç/ºè¢‹.ú?rL   r<   rQ   g¶=b¹#A@rb   g¹´óÜOÐ?@©r`   r*   rD   r)   rN   r1   r1   r2   rP   {   s   
ÿzTestHarMean.test_1drk   rl   rm   c                 C   s:   t jg d¢g d¢d�}tjdtjd�}t||tjd� d S )NrF   r[   r\   rƒ   ©r;   )r`   r*   r)   Úasarrayrk   rD   rp   r1   r1   r2   rr   ‰   s   zTestHarMean.test_1d_float96c                 C   s˜   t jg d¢g d¢g d¢gg d¢g d¢g d¢gd�}t  g d¢¡}t||ddd� g d	¢}t||d
dd� g d¢g d¢g d¢g}d}ttj  |¡|ƒ d S )NrF   rs   rt   ru   r\   r   rL   rv   )gº…ëQ¸þ?g433333@gš™™™™™ù?rf   rx   ry   rz   gmôW¶UC@r„   rN   r1   r1   r2   Útest_2d�   s   ÿzTestHarMean.test_2dN)r4   r5   r6   rP   r~   r   r€   r�   r)   rr   r‡   r1   r1   r1   r2   r‚   y   s    ÿ
r‚   c                   @   r   )ÚTestRankingc                 C   sò   t  g d¢¡}tt |¡g d¢ƒ t|ddg< tt |¡g d¢ƒ ttj|dd�g d¢ƒ t  g d	¢¡}tt |¡g d
¢ƒ t  g d¢g d¢g¡}tt |¡g d¢g d¢gƒ ttj|dd�g d¢g d¢gƒ ttj|dd�g d¢g d¢gƒ d S )N)
r   r   r   r   rG   rH   rI   é   r‰   r^   )
r   rH   rH   rH   r‰   r^   é   ç      !@r‹   rR   rH   rI   )
r   r%   r%   r   r   rI   r‰   ç      @rŒ   é   T)Úuse_missing)
r   r%   r%   ç      @r�   rI   r‰   rŒ   rŒ   r�   )
r   r   r‰   r   rG   rI   rH   r‰   r   r^   )
r   rH   r‹   rH   r‰   rŠ   r^   r‹   rH   rR   )r   r   r   r   rG   )rH   rI   r‰   r‰   r^   )r   rH   rH   rH   r‰   )r^   rŠ   r‹   r‹   rR   r   ©r'   )r   rG   ç      @r‘   r‰   r   ©r   r   r   r   r   ©rG   rG   rG   rG   rG   )r`   r*   r
   r+   Úrankdatar   ©r-   rA   r1   r1   r2   Útest_rankingŸ   s2   
ÿ
ÿÿ
ÿ
ÿÿÿzTestRanking.test_rankingN)r4   r5   r6   r–   r1   r1   r1   r2   rˆ   ž   r7   rˆ   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edd„ ƒZdS )ÚTestCorrc           
   	   C   sV  t  d¡}t ¡ �F t dt¡ tt ||¡d dƒ tt ||d d d… ¡d dƒ t j	|dd�}t ||¡}t
|d tu ƒ t
|d	 tu ƒ W d   ƒ n1 sRw   Y  t  	g d
¢¡}t  	g d¢¡}t ||¡\}}t|t d¡d ƒ t|dƒ g d¢}t j	g d¢|d�}t j	g d¢|d�}	t ||	¡\}}t|t d¡d ƒ t|dƒ d S )NrR   Úerrorr   r   rf   ç      ð¿Tr\   r   )r™   ç        r   )r   r   rH   rH   rG   r_   )FFFT)r™   rš   r   g     ÀX@)r   r   rH   rf   )r`   ÚarangeÚwarningsÚcatch_warningsÚsimplefilterÚRuntimeWarningr
   r+   Úpearsonrr*   r   r   r)   Úsqrt)
r-   rA   ÚprÚx1Úy1ÚrÚpr]   Úx2Úy2r1   r1   r2   Útest_pearsonrµ   s*   

 ô
zTestCorr.test_pearsonrc           	      C   s„   t jjg d¢g d¢d�}t jjg d¢g d¢d�}t  g d¢¡}t  g d¢¡}t ||¡\}}t ||¡\}}t||ƒ t||ƒ d S )N©r   rG   rH   rI   r‰   r^   )r   r   r   r   r   r   r\   )é	   r�   rŠ   r^   r‰   r«   )r   r   r   r   r   r   )r   rI   r‰   r^   )r«   r^   r‰   r«   )r)   r`   Úmasked_arrayr*   r+   r    r   r	   )	r-   ÚmxÚmyrA   ÚyÚmrÚmpr¥   r¦   r1   r1   r2   Útest_pearsonr_misaligned_maskÔ   s   
z&TestCorr.test_pearsonr_misaligned_maskc                 C   s²  g d¢g d¢}}t t ||¡d dƒ ddddtjgd	d
d
dtjg}}t |¡t |¡}}t t ||¡d dƒ g d¢}g d¢}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	||d0d1� d S )2N)ç333333@ç      @ç®Gáz®	@çHáz®G@)çffffffú?ç…ëQ¸@r¸   çÍÌÌÌÌÌ@r   gIœQ=ä¿r³   r´   rµ   r¶   r·   r¸   r¹   ©r   ç33333³G@r!   çš™™™™™%@çÍÌÌÌÌN@ç333333û?ç      P@çÍÌÌÌÌŒO@r   çffffffö?çš™™™™™@ç333333Ó?ç333333@rÃ   çÍÌÌÌÌÌ@©çš™™™™™6@çš™™™™™ @ç333333F@çÍÌÌÌÌÌ'@çš™™™™™8@ç333333ã?çÍÌÌÌÌÌ@çÍÌÌÌÌÌD@rš   rÌ   rÅ   çffffff@r   ç333333ó?rÁ   gàˆI
æ?r   r»   r!   r¼   r½   r¾   r¿   rÀ   r   rÁ   rÂ   rÃ   rÄ   rÅ   rÇ   rÈ   rÉ   rÊ   rË   rÌ   rÍ   rÎ   rš   rÏ   rÐ   éÐ  r«   i²  rR   iå  i³  gV-²�ïï?©ÚcorrelationÚpvalueT©r`   )
r
   r+   Ú	spearmanrr)   r   r`   Úfix_invalidÚlistÚranger   ©r-   rA   r¯   ÚresÚ
attributesr1   r1   r2   Útest_spearmanrÞ   s2   "ÿÿzTestCorr.test_spearmanrc                 C   sf  g d¢}g d¢}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rŽ|ks‘J ‚ J ‚tjt	dd�� t j||dd� W d   ƒ d S 1 s¬w   Y  d S )Nrº   rÆ   g+þ;
æ?g œ·‚r?Úgreater©Úalternativeg œ·‚b?ÚlessgšæcH}íï?rZ   r   r‰   çš™™™™™¹?rG   r   zalternative must be 'less'...©Úmatchz	ekki-ekki)
r+   rÖ   r   r)   ÚlinspaceÚrandomÚrandr~   r   Ú
ValueError)r-   rA   r¯   Úr_expr¥   r¦   ÚnÚstat1Úp1Ústat2Úp2Ústat3Úp3r1   r1   r2   Útest_spearmanr_alternative  s0   





"ÿz#TestCorr.test_spearmanr_alternativeÚppc64lezfails/crashes on ppc64lerm   c                 C   s  t  t g d¢¡¡}t  t g d¢¡¡}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d.tjd%g¡}t ||¡}tt |¡d/d0gƒ d1}t||d2d3� d S )4N)r«   rG   r‰   r^   )rI   rŠ   r«   é   rš   r   rR   g´žx·O~¢>Úbanana©Úmethodr   rG   g?é“>é“î?gaÆV¥ã×>r‰   r^   g}Ò'}Ò'í?go‡›…&5ÿ>rf   r™   g?é“>é“î¿g}Ò'}Ò'í¿r³   r´   rµ   r¶   r·   g     €:@g¸…ëQ¸Àg×£p=
×@r¸   r¹   g‡¼Š1UUÕ?ç      è?Ú
asymptoticgälgNÍß?g~öÈ‹ñ†á¿gÂQM¤�ÔÑ?r   rS   rV   rU   rX   é!   éC   é   é   é-   g‘ŒæXJÄ¿gv™PwTkÚ?rÒ   TrÕ   )r`   r*   r)   r
   r†   r+   Ú
kendalltaur›   Úassert_raisesrè   r×   r   r   )r-   rA   r¯   ÚexpectedÚbÚzÚresultrÜ   r1   r1   r2   Útest_kendalltau1  sn   ÿÿÿÿÿ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Ñ   r…   iË  éè  r   )
r)   r›   Úfloatr`   Úmasked_greaterÚconcatenater   Úisfiniter+   rþ   )r-   rA   r¯   r1   r1   r2   Ú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g d¢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¡g d¢ƒ d S )NrI   rG   é   é   r‰   r   rH   ©rI   rH   r‰   rH   rG   rŠ   rH   r   r   rG   rH   r‰   rH   r^   é   r«   ró   é   zglobal p-value (indep)gü©ñÒMb€?zseasonal p-value)g
×£p=
Ç?gö(\�Âõà?çš™™™™™É?g{®Gáz¤?)r   r`   r×   ÚTr+   Úkendalltau_seasonalr
   Úround)r-   rA   Úoutputr1   r1   r2   Ú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&   rw   r\   )rö   rà   Úomit)rö   Ú
nan_policyrà   )r)   ræ   Úseedrç   r`   r*   r+   rþ   Ú
compressedr   r   r   )r-   rö   rà   rê   rA   r¯   r]   Úx_maskedÚy_maskedÚ
res_maskedÚx_compressedÚy_compressedÚres_compressedÚres_nanr1   r1   r2   Ú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Ú?))rZ   iY	  )ée   i„	  )éª   r   )é«   r   )r'  r   )é¬   r   )éÈ   iE&  )éÉ   i¸%  r   r   ©Úitemsr   Ú_kendall_p_exactr
   ©r-   ÚexpectationsÚncr   rÛ   r1   r1   r2   Ú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.  r1   r1   r2   Útest_kendall_p_exact_largeÏ  s   ûþz#TestCorr.test_kendall_p_exact_largec                 C   sÔ   g 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‘}tt ||¡d d d!ƒ t ||¡}d"}t||d#d$� d S )%N)#r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rf   gš™™™™™-@gš™™™™™+@gÍÌÌÌÌÌ(@g333333$@gffffff@gffffff@g333333@gffffff@g333333@r‘   gffffff
@gš™™™™™	@r   gffffff@r%   g333333@gffffff@gÍÌÌÌÌÌ @r¾   g      ø?gÍÌÌÌÌÌô?rÐ   gš™™™™™ñ?çš™™™™™é?gffffffæ?rÌ   rw   r  râ   r   gÂ/õó¦"×?r‰   rÒ   TrÕ   )r)   r   r
   r+   Úpointbiserialrr   rÚ   r1   r1   r2   Útest_pointbiserialÞ  sh   2ÿÿÿÿÿÿÿÿÿÿÿÿÿþþþþþþþþþþzTestCorr.test_pointbiserialN)r4   r5   r6   r©   r²   rÝ   rñ   r~   r   r€   ÚplatformÚmachiner  Úslowr
  r  Úparametrizer$  r1  Úxslowr2  r   r5  r1   r1   r1   r2   r—   ´   s.    
&-ÿ
Vÿ	
r—   c                   @   sT   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d„ Z
dd„ ZdS )ÚTestTrimmingc                 C   sø  t  d¡}tt |¡g d¢ƒ t  d¡}tt |d¡g d¢ƒ t  d¡}ttj|ddd�g d¢ƒ t  d¡}ttj|dd	d
�g d¢ƒ t  d¡}t |ddg< |d< tt |d¡g d¢ƒ 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 )NrR   ©
r   r   rG   rH   rI   r‰   r^   rŠ   r�   r«   )rG   r�   )
NNrG   rH   rI   r‰   r^   rŠ   r�   N©FF©ÚlimitsÚ	inclusive)
NNNrH   rI   r‰   r^   rŠ   NN)râ   r  T)r?  Úrelative)
Nr   rG   rH   rI   r‰   r^   rŠ   NNé   r   rf   r‰   )NNrG   rH   rI   Nr^   rŠ   r�   NNNrZ   r   rW   rS   )rA  r'   r{   ró   )
r`   r›   r	   r+   Útrimr   ÚreshapeÚ_maskÚravelr  )r-   rO   rA   r   Útrimxr1   r1   r2   Ú	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 )NrZ   rV   r¥   )ÚtailrX   r&   rW   é0   r   r  r   é"   rS   é   )rR   rR   )r`   r›   r	   r+   ÚtrimbothÚcountÚtrimtailr   rE  r   Úshape)r-   rA   rG  r1   r1   r2   Útest_trim_old  s   

:zTestTrimming.test_trim_oldc                 C   sL   t  d¡}tj|ddd�}t jg d¢g d¢d�}t||ƒ t|j|jƒ d S )NrR   )g333333Ã?gìQ¸…ëÁ?r=  r>  r<  )
r   r   r   r   r   r   r   r   r   r   r\   )r`   r›   r+   Útrimrr*   r	   r]   )r-   rA   r  r   r1   r1   r2   Ú
test_trimr%  s   

ÿ
zTestTrimming.test_trimrc                 C   sN   t  g d¢¡}tt |d¡ddƒ tt |d¡ddƒ tt |d¡ddƒ d S )N©éM   éW   éX   ér   é—   éÒ   éÛ   éö   éý   i  i(  i+  i2  ix  i¬  i  iš  i  i3
  râ   iW  r   )râ   râ   ©r  r  i  )r`   r*   r
   r+   Útrimmed_mean©r-   r.   r1   r1   r2   Útest_trimmedmean-  s   zTestTrimming.test_trimmedmeanc                 C   óN   t j d¡}|jdd�}t  |¡}tj|g d¢d�}tt |d¡| 	¡ ƒ d S )Nl   l{ýf0j rS   ©Úsize©r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r\   râ   )
r)   ræ   Údefault_rngÚsortr`   r*   r   r+   Útrimmed_varÚvar©r-   ÚrngÚ	data_origr.   r1   r1   r2   Útest_trimmedvar4  ó
   
zTestTrimming.test_trimmedvarc                 C   rb  )Nl   œ/{Gzi— rS   rc  re  r\   râ   )
r)   ræ   rf  rg  r`   r*   r   r+   Útrimmed_stdÚstdrj  r1   r1   r2   Útest_trimmedstd>  rn  zTestTrimming.test_trimmedstdc                 C   s:   t  g d¢¡}tt |d¡ddƒ tt |d¡ddƒ d S )NrT  r^  g>®ãL@r‰   r  )r`   r*   r
   r+   Útrimmed_stder`  r1   r1   r2   Útest_trimmed_stdeH  s   zTestTrimming.test_trimmed_stdec                 C   sl   t  g d¢¡}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 )	NrT  r^  r   ©Úddofgš™™™ÙÕ@r=  gffff¦7Ç@r‰   )	r`   r*   r
   r+   Ú	winsorizeri  r   r	   r]   )r-   r.   Ú
winsorizedr1   r1   r2   Útest_winsorizationN  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  g d¢¡ƒ 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   rG   )çš™™™™™©?ry  Úraise)r  )çš™™™™™Ù?r{  r“   )r3  r3  r  )	r`   r*   r)   r   rÿ   rè   r+   rv  r	   r`  r1   r1   r2   Útest_winsorization_nanZ  s    ÿÿÿÿÿz#TestTrimming.test_winsorization_nanN)r4   r5   r6   rH  rQ  rS  ra  rm  rq  rs  rx  r|  r1   r1   r1   r2   r;  ð  s    %

r;  c                	   @   s¾   e Zd Zg d¢Ze dddddejg¡Zej	e 	g d¢g d¢g d	¢g d
¢g d¢g¡ej	g d¢g d¢g d¢g d¢g d¢ge
d�d�Zdddœdd„Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ ZdS )!ÚTestMomentsrF   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†“Ù?)TFFTF)TTTFT)FFFFF)TTTTT)FFTFFr…   r\   N©rP  r;   c                C   sH   t  |¡}|d urt  ||¡}t||ƒ |d u r|j}|j|ks"J ‚d S ©N)r)   r†   Úbroadcast_tor   r;   )r-   ÚactualÚexpectrP  r;   r1   r1   r2   Ú_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g d	¢¡}t|g d
¢ƒ t  | jd¡}t|dƒ ttt j| jdƒ t  | jg d¢¡}t|g d
¢ƒ 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š   rR   rG   ç      ô?rH   rI   ç     €@rF   )r   r„  r   r…  r   rÐ   )r   rG   rH   r    r…   )r   r   r   r�   )r   r~  )r   )Úmomentr'   )rG   r   )rP  g      $@r«   )r+   r†  Útestcaser
   r   rÿ   rè   rƒ  r)   r   Úfloat64r*   Úfloat32Úzerosr›   r	   r`   r   )r-   r¯   rA   r1   r1   r2   Útest_momentŠ  s8   






zTestMoments.test_momentc                 C   s   t  | j¡}t|ddƒ d S )Nçþí¿Å%ŸÜ?rR   )r+   Ú	variationr‡  r
   )r-   r¯   r1   r1   r2   Útest_variation¯  s   zTestMoments.test_variationc                 C   s*   t  g d¢¡}tj|dd�}t|dƒ d S )N)r   rG   rH   rI   r‰   r   rt  gâ<<'�Ýà?)r)   r*   r+   r�  r
   )r-   rO   r¯   r1   r1   r2   Útest_variation_ddof³  s   zTestMoments.test_variation_ddofc                 C   sN  t  | j¡}t|ddƒ t j| jdd�}t|ddƒ t  | j¡}t|ddƒ tjt g d¢¡tjg d¢td	�d
�}t	t  | j
d¡|ƒ t| j
ƒD ]\}}tt  |¡|| ƒ qHtjt g d¢¡tjg d¢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•*ÄÒ¿rR   r   ©Úbiasg¨õ2Û ùÛ¿rš   )gÒ½•Šræ?r   g>HÃ›eÑ?r   gIåÝÇ®ª¿©FFFTFr…   r\   r   )g`ŽƒÙ¨ùú?rš   gÂûé‡nÙ?r   g0¡·¿FrG   )r+   ÚskewÚtestmathworksr
   r‡  r`   r*   r)   Úboolr   Útestcase_2dÚ	enumerater   ©r-   r¯   Ú
correct_2dÚiÚrowÚcorrect_2d_bias_correctedr1   r1   r2   Útest_skewnessº  s6   ýýÿÿÿzTestMoments.test_skewnessc                 C   s^  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 g d¢¡tjg d	¢td
�d�}t	t  | j
d¡|ƒ t| j
ƒD ]\}}tt  |¡|| ƒ qNtjt g d¢¡tjg d	¢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   )Úfisherr‘  gOß»S@rR   gâx|ïN@g=
×£p=ú?)ç      ø¿ç      Àgã'„@=�÷¿rš   gt‚
ÀQô¿r’  r…   r\   )rŸ  r   g´?õ<þ¿rš   g`‡œ@7Àà¿Fr�  rG   rI   )Únulp)r+   Úkurtosisr”  r
   r‡  r`   r*   r)   r•  r   r–  r—  r   r   r˜  r1   r1   r2   Útest_kurtosisÛ  sB   

ÿþÿþÿþÿ
þzTestMoments.test_kurtosis)r4   r5   r6   r‡  r`   r×   r)   r   r”  r*   r•  r–  rƒ  r‹  rŽ  r�  r�  r£  r1   r1   r1   r2   r}  i  s6    	ÿ
ü
üüú	%!r}  c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestModec                 C   s&  g d¢}t  |d¡}t  g d¢¡}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�g d¢gg d¢gfƒ ttj|dd�g d¢gg d¢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 )N)r   r   r   r   r   r   rG   rH   rH   rH   rH   rI   r‰   r^   rŠ   )rH   r‰   rª   )rH   rG   rG   r�   )rH   rI   r   )r   rH   )r   r   )rG   r   )r   r   r   r   r   r’   rf   rH   r   r‰   )ÚmoderN  TrÕ   )	r)   rD  r*   r`   Úmasked_wherer	   r+   r¥  r   )r-   Úa1Úa2Úa3Úa4Úma1Úma2Úma3Úma4Úa1_resrÜ   r1   r1   r2   Ú	test_mode  s0   $$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)rZ   rZ   r&   r   )r)   rŠ  Úcopyr+   r¥  r	   )r-   ÚimÚcpr1   r1   r2   Útest_mode_modifies_input!  s   
z!TestMode.test_mode_modifies_inputN)r4   r5   r6   r°  r´  r1   r1   r1   r2   r¤    s    r¤  c                   @   ó$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestPercentilec                 C   s"   g d¢| _ g d¢| _g d¢| _d S )N)rH   rI   r‰   rR   éýÿÿÿéûÿÿÿr^   )rH   éúÿÿÿéþÿÿÿr�   rŠ   rI   rG   r   )r   rI   r‰   rR   r·  r¸  r¹  r   )r§  r¨  r©  ©r-   r1   r1   r2   Ú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 )	Nr�   rw   r   rš   rZ   r‘   r&   g      ü?)r)   r›   r	   r+   Úscoreatpercentiler•   r1   r1   r2   Útest_percentile2  s   zTestPercentile.test_percentilec                 C   sB   t  g d¢g d¢g d¢g d¢g d¢g¡}tt |d¡g d¢ƒ d S )N©r   r   r   )rI   rI   rH   r&   )r`   r*   r	   r+   r½  r•   r1   r1   r2   Útest_2D8  s   
üzTestPercentile.test_2DN)r4   r5   r6   r¼  r¾  rÀ  r1   r1   r1   r2   r¶  ,  s    r¶  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   rG   rH   rI   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   rt  rG   )r+   Úsemr‡  r
   rN  r   r)   r¡   )r-   r¯   rê   r1   r1   r2   Útest_semH  s   

"ÿzTestVariability.test_semc                 C   s6   t  | j| j¡}g d¢}t||j|jdk dd� d S )N)çÙòOT\wõ¿çþí¿Å%ŸÜ¿rŒ  çÙòOT\wõ?FrB  ©Údecimal)r+   Úzmapr‡  r   r.   r]   )r-   r¯   Údesired_unmaskedvalsr1   r1   r2   Ú	test_zmapP  s
   
ÿzTestVariability.test_zmapc                 C   s4   t  | j¡}t ddddtjg¡}t||dd� d S )NrÄ  rÅ  rŒ  rÆ  rB  rÇ  )r+   Úzscorer‡  r`   r×   r)   r   r
   )r-   r¯   r/   r1   r1   r2   Útest_zscoreY  s
   ÿzTestVariability.test_zscoreN)r4   r5   r6   Ú__doc__r`   r×   r)   r   r‡  rÃ  rË  rÍ  r1   r1   r1   r2   rÁ  A  s    	rÁ  c                   @   rµ  )Ú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 )Nr‰   r^   ró   rŠ   r«   r�   rH   rG   rR   rI   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  r1   r1   r2   Útest_obrientransforme  s   :,ÿ:,ÿÿzTestMisc.test_obrientransformc                 C   sÎ   t t dddddddddddgg d¢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 )NrI   rG   r  r  r‰   r   rH   r  r^   r  r«   ró   r  )ç¡Ö4ï8EÇ?gs×òAÏî?Úg)g¯%äƒžÍÂ?g·Ñ Þ	æ?Úl)rÓ  gê46<ã?)	r   r`   r×   r  r
   r)   r  r+   Úks_2samp)r-   rA   ÚwinterÚspringÚsummerÚfallr1   r1   r2   Útest_ks_2sampm  s    ýÿÿÿzTestMisc.test_ks_2sampc                 C   sè   g d¢g d¢g d¢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g d¢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 )N)
g      "@ç      #@ç      @ç      @rÜ  rÞ  ç       @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û:pÎˆò$@rI   r   gí(ÎQGÇu?r^   rG   r  r  r‰   rH   r  r  r«   ró   r  grŠŽäò @g-Cëâ6â?©Ú	statisticrÔ   TrÕ   )r+   Úfriedmanchisquarer
   r   r`   r×   r   )r-   rÑ  r  rA   rÜ   r1   r1   r2   Útest_friedmanchisq|  s$   þ
ý

zTestMisc.test_friedmanchisqN)r4   r5   r6   rÒ  rÛ  rã  r1   r1   r1   r2   rÏ  b  s    rÏ  c                  C   s²   t  ddd¡} dt  ddd¡ d }|t  t  ddd¡¡7 }t | |¡}tj}tt||ƒƒ d}t	||dd� d	t
|ƒv s?J ‚t|jd
ƒ t|jdƒ t|jdƒ t|jdƒ d S )Nr   rZ   r  rR   rS   )ÚslopeÚ	interceptÚrvaluerÔ   ÚstderrTrÕ   Úintercept_stderrgÍ5E%É?gÎâ ’+l$@g·4_Q c?g8Äèê¿Á?)r)   rå   Úsinr+   Ú
linregressr   ÚLinregressResultr   Ú
isinstancer   Údirr
   rä  rå  rç  rè  )rA   r¯   r  ÚlrrÜ   r1   r1   r2   Útest_regress_simple“  s   rï  c                  C   sX   t  d¡} t j d¡}d}tt|d�� t | |¡ W d   ƒ d S 1 s%w   Y  d S )NrR   zBCannot calculate a linear regression if all x values are identicalrã   )r)   rŠ  ræ   rÿ   rè   r+   rê  )rA   r¯   Úmsgr1   r1   r2   Útest_linregress_identical_x©  s   
"ÿrñ  c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestTheilslopesc                 C   sd  t  g d¢¡\}}}}t|dƒ t|dƒ t jg d¢dd�\}}}}t|dƒ t|dƒ tjjg d¢g d¢d�}t  |¡\}}}}t|d	ƒ t|d
ƒ t j|dd�\}}}}t|d	ƒ t|dƒ g d¢}g d¢}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 )N)r   r   r   rw   Újointrõ   rš   )r   r   rZ   r   )FFTFr\   r_   gUUUUUUå?)r   rG   rH   rI   rR   rB  r  )r«   é   é   rS   rý   é7   éN   gìQ¸…ë±?rI   r    g…ëQ¸…@rG   rÇ  g®Gáz®@r   )r+   Útheilslopesr
   r)   r`   r*   )r-   rä  rå  ÚlowerÚupperr¯   rA   r1   r1   r2   Útest_theilslopes²  s>   


ÿ



ÿ




ÿ

z TestTheilslopes.test_theilslopesc                 C   s¼   d}t jt|d�� t ddgddg¡}t t |¡¡sJ ‚W d   ƒ n1 s(w   Y  tƒ �$}| 	td¡ t g d¢g d¢¡}t
|ddtjtjfƒ W d   ƒ d S 1 sWw   Y  d S )NzFAll `x` coordinates.*|Mean of empty slice.|invalid value encountered.*rã   r   r   zinvalid value encountered...©r   r   r   )r   r   r   )r~   ÚwarnsrŸ   r+   rø  r)   ÚallÚisnanr   Úfilterr   r   )r-   rð  rÛ   Úsupr1   r1   r2   Útest_theilslopes_warningsÙ  s   þ"ýz)TestTheilslopes.test_theilslopes_warningsc                 C   sd   g d¢}g d¢}t  ||¡\}}}}t  ||¡}t||jƒ t||jƒ t||jƒ t||jƒ dS )zv
        Simple test to ensure tuple backwards-compatibility of the returned
        TheilslopesResult object
        ©r   rG   rI   ©rI   r^   r�   N)r+   rø  r	   rä  rå  Ú	low_slopeÚ
high_slope)r-   r¯   rA   rä  rå  r  r  r  r1   r1   r2   Ú'test_theilslopes_namedtuple_consistencyå  s   z7TestTheilslopes.test_theilslopes_namedtuple_consistencyc                 C   s@   t j d¡}|jdddt jd�}t ||¡}t j |j	d¡ d S )Nl    UÕ5<H r   éÿ   rR   )rd  r;   r   )
r)   ræ   rf  ÚintegersÚuint8r   rø  Útestingr   rä  )r-   rk  r¯   rÛ   r1   r1   r2   Útest_gh19678_uint8õ  s   z"TestTheilslopes.test_gh19678_uint8N)r4   r5   r6   rû  r  r  r  r1   r1   r1   r2   rò  ±  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 )NrG   rR   rw   )r   rw   Úseparaterõ   r‰   r   )rÝ  r   r  rI   gffffffÀrÃ   éç   ©rd  Úrandom_staterâ   r<   )
r)   r›   r	   r+   Úsiegelslopesr   ÚnormÚrvsrê  r   )r¯   rA   Ú	slope_olsÚintercept_olsÚ_rä  rå  r1   r1   r2   Útest_siegelslopesþ  s$   
r  c                  C   sH   g d¢} g d¢}t  | |¡\}}t  | |¡}t||jƒ t||jƒ dS )zl
    Simple test to ensure tuple backwards-compatibility of the returned
    SiegelslopesResult object.
    r  r  N)r+   r  r	   rä  rå  )r¯   rA   rä  rå  r  r1   r1   r2   Ú(test_siegelslopes_namedtuple_consistency  s   r  c                     s˜   t j d¡} | jdd�‰t ˆ¡\}}dd„ ‰ tdƒD ]}tt  ˆ ˆd d …|f ƒ¡|| ƒ qt  ‡ ‡fdd„tˆj	d	 ƒD ƒ¡}tt  |¡|ƒ d S )
Nl   ,ûÎ'  )rZ   rI   rc  c                 S   sj   t | ƒ}t |¡}| | d d …tjf  }||d d …tjf  }tjtj||ftd�dd�}|| ||  S )Nr…   r   )Úk)Úlenr)   r›   ÚnewaxisÚtriuÚonesr•  )Úyirê   rA   ÚdyÚdxr]   r1   r1   r2   Údijk0  s   
z&test_sen_seasonal_slopes.<locals>.dijkrI   c                    s    g | ]}ˆ ˆd d …|f ƒ‘qS r  r1   )Ú.0rš  ©r!  rA   r1   r2   Ú
<listcomp>;  s     z,test_sen_seasonal_slopes.<locals>.<listcomp>r   )
r)   ræ   rf  r+   Úsen_seasonal_slopesrÙ   r   Úmedianr  rP  )rk  Úintra_slopeÚinter_sloperš  Ú
all_slopesr1   r#  r2   Útest_sen_seasonal_slopes*  s   &$r*  c                  C   s.   t  t d¡dd¡} t| jt g d¢¡ƒ d S )NrH   r   )rK   rw   r÷   )r+   Úplotting_positionsr)   r›   r   r.   r*   )Úposr1   r1   r2   Ú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}g d¢}t||ƒD ]5\}}t	j
ttd�� ||ƒ}t  |j¡sYJ ‚t  |j¡saJ ‚W d   ƒ n1 skw   Y  tt||ƒ qAd S )N©rº  rf   r   r   rG   rH   rº  rf   r   r   rG   rH   rº  rf   r   r   rG   rH   rº  rf   r   r   rG   rH   rG   rF   rã   )r)   r*   r   r+   Ú
normaltestr   ÚskewtestÚkurtosistestÚzipr~   rý  r   r   rÿ  rá  rÔ   rÿ   rè   )r-   rA   ÚfuncsÚmfuncsÚfuncÚmfuncrÛ   r1   r1   r2   Útest_vs_nonmaskedH  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/  rG   r�   )r)   r*   r   r+   r0  r1  r2  r•   r1   r1   r2   Ú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/  rG   rR   TFr\   )r)   r*   r`   Úr_Úinfrd  r   r+   r0  r   r1  r2  )r-   rA   Úxmr1   r1   r2   Útest_maskedarray_inputc  s   ÿz)TestNormalitytests.test_maskedarray_inputc                 C   sz   t  d¡d }t  |gd ¡j}tjtjtjfD ]"}||ƒ}||ƒ}t|d |d gd ƒ t|d |d gd ƒ qd S )Nr/  rG   r   r   )	r)   r*   Úvstackr  r+   r0  r1  r2  r   )r-   rA   Úx_2dr6  Úres_1dÚres_2dr1   r1   r2   Útest_nd_inputl  s   üz TestNormalitytests.test_nd_inputc                 C   ó.   t  d¡d }t |¡}d}t||dd� d S ©Nr/  rG   rà  TrÕ   )r)   r*   r+   r0  r   ©r-   rA   rÛ   rÜ   r1   r1   r2   Ú!test_normaltest_result_attributesu  ó   
z4TestNormalitytests.test_normaltest_result_attributesc                 C   rC  rD  )r)   r*   r+   r2  r   rE  r1   r1   r2   Ú#test_kurtosistest_result_attributes{  rG  z6TestNormalitytests.test_kurtosistest_result_attributesc                 C   s<   g d¢}t  dd„ t|ƒD ƒ¡}tt |¡d dk dƒ d S )N)
é€   r   é:   rŠ   r   é)   r  r   r   é§   c                 S   s   g | ]
\}}t  ||¡‘qS r1   )r)   Úfull)r"  rš  Úcr1   r1   r2   r$  …  s    z;TestNormalitytests.test_regression_9033.<locals>.<listcomp>r   g{®Gáz„?T)r)   Úhstackr—  r	   r+   r2  )r-   ÚcountsrA   r1   r1   r2   Útest_regression_9033�  s   z'TestNormalitytests.test_regression_9033Útestr1  r2  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 )NrR   r%   rT   é{   ©ÚlocÚscalerd  r  rß   gê-�™—q=©Úatolr   r‰   r\   )r   r  r  Úgetattrr+   r   r)   r   r`   r¬   rÿ  r  )
r-   rR  rà   rA   Ú
stats_testÚmstats_testÚz_exÚp_exr  r¦   r1   r1   r2   Útest_alternativeˆ  s   

z#TestNormalitytests.test_alternativec                 C   s’   t jjddd�}d}tjt|d�� tj|dd� W d   ƒ n1 s#w   Y  tjt|d�� tj|dd� W d   ƒ d S 1 sBw   Y  d S )NrS   rS  r  z`alternative` must be...rã   r˜   rß   )	r   r  r  r~   r   rè   r+   r1  r2  )r-   rA   rð  r1   r1   r2   Útest_bad_alternative�  s   ÿ"ÿz'TestNormalitytests.test_bad_alternativeN)r4   r5   r6   r8  r9  r=  rB  rF  rH  rQ  r~   r   r9  r^  r_  r1   r1   r1   r2   r.  E  s    		r.  c                   @   r   )Ú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  r…   i  i  rà  TrÕ   )r)   r*   Úuint16r+   Úf_onewayr   )r-   rO   r  rÛ   rÜ   r1   r1   r2   Útest_result_attributes©  s
   z"TestFOneway.test_result_attributesN©r4   r5   r6   rc  r1   r1   r1   r2   r`  ¨  r7   r`  c                   @   s8   e Zd Ze g d¢¡Ze g d¢¡Zdd„ Zdd„ ZdS )ÚTestMannwhitneyu)ôr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )žr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   c                 C   s&   t  | j| j¡}d}t||dd� d S )Nrà  TrÕ   )r+   ÚmannwhitneyurA   r¯   r   )r-   rÛ   rÜ   r1   r1   r2   rc  Ó  s   z'TestMannwhitneyu.test_result_attributesc                 C   sB   t  | j| j¡}t | j| j¡}|j|jksJ ‚t|j|jƒ d S r  )r+   rf  rA   r¯   r   rá  r   rÔ   )r-   Úres1Úres2r1   r1   r2   Útest_against_statsØ  s   z#TestMannwhitneyu.test_against_statsN)	r4   r5   r6   r)   r*   rA   r¯   rc  ri  r1   r1   r1   r2   re  ±  s
    re  c                   @   r   )ÚTestKruskalc                 C   s2   g d¢}g d¢}t  ||¡}d}t||dd� d S )N)r   rH   r‰   rŠ   r«   )rG   rI   r^   r�   rR   rà  TrÕ   )r+   Úkruskalr   rÚ   r1   r1   r2   rc  ã  s
   z"TestKruskal.test_result_attributesNrd  r1   r1   r1   r2   rj  â  r7   rj  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   sr  t j d¡ t j dd¡g d¢ }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é‡Ö rS   rI   ©r   r   r   rG   r   r   r�   rG   )r)   ræ   r  Úrandnr   Ú	ttest_relr+   r   )r-   Úoutcomerg  rh  Úres3r1   r1   r2   r8  î  s   $$
((
00
,zTestTtest_rel.test_vs_nonmaskedc                 C   óÔ   t j d¡ tjt j dd¡g d¢g d¢gd�}tƒ �E}| td¡ |d d …df |d d …d	f ft j	t j	gd
dgffD ]}t
j|Ž \}}t|t j	t j	fƒ t|t j	t j	fƒ q<W d   ƒ d S 1 scw   Y  d S ©Nrm  rH   rG   r¿  rü  r\   ú%invalid value encountered in absoluter   r   r   r   )r)   ræ   r  r`   r¬   ro  r   r   rŸ   r   r+   rp  r   ©r-   rq  r  ÚpairÚtr¦   r1   r1   r2   Útest_fully_masked  s   ÿÿü"þzTestTtest_rel.test_fully_maskedc                 C   ó\   t j d¡ t j dd¡g d¢ }t |d d …df |d d …df ¡}d}t||dd	� d S ©
Nrm  rS   rI   rn  r   r   rà  TrÕ   )r)   ræ   r  ro  r+   rp  r   ©r-   rq  rÛ   rÜ   r1   r1   r2   rc    ó
   $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 )	NrR   ró   rJ   rG   rH   rI   r   r�   )rÿ   rè   r+   rp  r)   r›   rD  r•   r1   r1   r2   Útest_invalid_input_size  s   ÿ
ÿ
ÿz%TestTtest_rel.test_invalid_input_sizec                 C   ó$   t  g g ¡}tt t |¡¡ƒ d S r  )r+   rp  r   r)   rþ  rÿ  ©r-   rg  r1   r1   r2   Ú
test_empty   ó   zTestTtest_rel.test_emptyc                 C   s²   t  g d¢g d¢¡\}}tt |¡|ftjdfƒ tƒ �3}| td¡ t  g d¢g d¢¡\}}t	|t 
tjtjg¡ƒ t	|t 
tjtjg¡ƒ W d   ƒ d S 1 sRw   Y  d S )Nrü  r¿  r   ru  )r+   Ú	ttest_indr	   r)   Úabsr;  r   r   rŸ   r   r*   r   ©r-   rx  r¦   r  r1   r1   r2   Útest_zero_division$  s   "üz TestTtest_rel.test_zero_divisionc                 C   óP   d}t jt|d�� tjg d¢g d¢dd� W d   ƒ d S 1 s!w   Y  d S ©Nú4alternative must be 'less', 'greater' or 'two-sided'rã   ©r   rG   rH   )rI   r‰   r^   Úfoorß   ©r~   r   rè   r+   rƒ  ©r-   rð  r1   r1   r2   r_  .  ó   "ÿ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 )NrR   r‰   rü   é*   rT  r�   rG   rß   rL   r<   r   r\   )r   r  r  rp  r+   r   r)   r   r`   r¬   rÿ  r  ©r-   rà   rA   r¯   Út_exr]  rx  r¦   r1   r1   r2   r^  3  s    
ÿzTestTtest_rel.test_alternativeN)r4   r5   r6   r8  ry  rc  r~  r�  r†  r_  r~   r   r9  r^  r1   r1   r1   r2   rl  í  s    	
rl  c                   @   óV   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¡g d¢ }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 )Nrm  rS   rI   rn  r   r   r�   rG   T©Ú	equal_varF)r)   ræ   r  ro  r   rƒ  r+   r   )r-   rq  rg  rh  rr  Úres4Úres5r1   r1   r2   r8  J  s&   $$
((
00
,
((
((zTestTtest_ind.test_vs_nonmaskedc                 C   rs  rt  )r)   ræ   r  r`   r¬   ro  r   r   rŸ   r   r+   rƒ  r   rv  r1   r1   r2   ry  g  s   $ÿü"þzTestTtest_ind.test_fully_maskedc                 C   rz  r{  )r)   ræ   r  ro  r+   rƒ  r   r|  r1   r1   r2   rc  r  r}  z$TestTtest_ind.test_result_attributesc                 C   r  r  )r+   rƒ  r   r)   rþ  rÿ  r€  r1   r1   r2   r�  z  r‚  zTestTtest_ind.test_emptyc                 C   s   t  g d¢g d¢¡\}}tt |¡|ftjdfƒ tƒ �,}| td¡ t  g d¢g d¢¡\}}t	|tj
tj
fƒ t	|tj
tj
fƒ W d   ƒ n1 sKw   Y  t jg d¢g d¢dd�\}}tt |¡|ftjdfƒ t	t jg d¢g d¢dd�tj
tj
fƒ d S )Nrü  r¿  r   ru  Fr”  )r+   rƒ  r	   r)   r„  r;  r   r   rŸ   r   r   r…  r1   r1   r2   r†  ~  s   üÿ
ÿz TestTtest_ind.test_zero_divisionc                 C   r‡  rˆ  rŒ  r�  r1   r1   r2   r_  �  rŽ  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 )NrR   rG   rZ   rS  rT  r�   rß   rL   r<   r   rX   rY   r\   )r   r  r  rƒ  r+   r   r)   r   r`   r¬   rÿ  r  r�  r1   r1   r2   r^  ’  s    
ÿzTestTtest_ind.test_alternativeN©r4   r5   r6   r8  ry  rc  r�  r†  r_  r~   r   r9  r^  r1   r1   r1   r2   r“  I  s    r“  c                   @   r’  )ÚTestTtest_1sampc                 C   s`   t j d¡ t j dd¡g d¢ }t |d d …df d¡}t |d d …df d¡}t||ƒ d S )Nrm  rS   rI   rn  r   r   )r)   ræ   r  ro  r   Úttest_1sampr+   r   )r-   rq  rg  rh  r1   r1   r2   r8  ©  s
   z!TestTtest_1samp.test_vs_nonmaskedc                 C   sª   t j d¡ tjt j d¡g d¢d�}t jt jf}tƒ �/}| t	d¡ t jt jfdf|dffD ]}t
j|Ž \}}t||ƒ t||ƒ q/W d   ƒ d S 1 sNw   Y  d S )Nrm  rH   r¿  r\   ru  rš   )r)   ræ   r  r`   r¬   ro  r   r   r   rŸ   r+   rš  r   )r-   rq  r   r  rw  rx  r¦   r1   r1   r2   ry  ²  s   
ý"þz!TestTtest_1samp.test_fully_maskedc                 C   sP   t j d¡ t j dd¡g d¢ }t |d d …df d¡}d}t||dd	� d S r{  )r)   ræ   r  ro  r+   rš  r   r|  r1   r1   r2   rc  ½  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€  r1   r1   r2   r�  Å  r‚  zTestTtest_1samp.test_emptyc                 C   sš   t  g d¢d¡\}}tt |¡|ftjdfƒ tƒ �)}| td¡ t  g d¢d¡\}}t	t 
|¡ƒ t|tjtjfƒ W d   ƒ d S 1 sFw   Y  d S )Nrü  r   r   ru  )r+   rš  r	   r)   r„  r;  r   r   rŸ   r   rÿ  r   r   r…  r1   r1   r2   r†  É  s   "üz"TestTtest_1samp.test_zero_divisionc                 C   sL   d}t jt|d�� tjg d¢ddd� W d   ƒ d S 1 sw   Y  d S )Nr‰  rã   rŠ  rI   r‹  rß   )r~   r   rè   r+   rš  r�  r1   r1   r2   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 )NrR   rG   rZ   rS  rT  r«   rß   rL   r<   r   r\   )r   r  r  rš  r+   r   r)   r   r`   r¬   rÿ  r  )r-   rà   rA   r‘  r]  rx  r¦   r1   r1   r2   r^  Ø  s   
ÿz TestTtest_1samp.test_alternativeNr˜  r1   r1   r1   r2   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g d¢g d¢gg d¢g d¢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 )N)r   r   rG   rH   rI   r«   )r‰   r‰   r   r«   rH   rH   )r   r   r   r   r   r   )r   r   r   r   r   r   r\   r   r�   r‰   rI   r   rH   r   r    r   rš   gÍÌÌÌÌÌô¿ç       À)r)   r`   r¬   r+   Údescriber	   ÚnobsÚminmaxÚmeanÚvarianceÚskewnessr   r¢  )r-   rO   r  ÚaminÚamaxr1   r1   r2   Útest_basic_with_axisò  s    ÿÿþ
z!TestDescribe.test_basic_with_axisN)r4   r5   r6   rÎ  r¥  r1   r1   r1   r2   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   g d¢S )z9 Returns list of sample sizes to be used for comparison. )r  rZ   rR   r‰   r1   r»  r1   r1   r2   Ú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 )Nrm  r‰   g €à7yÃACr   g €úÊsù?Cr\   )r)   ræ   r  ro  rM  r  r`   r*   )r-   rê   rA   r¯   r<  Úymr]   r1   r1   r2   Ú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< }}	q,|d|… |d|…d d …f< |d|… |d|…d d …f< t jj|t  |¡d�}t jj|t  |¡d�}||||fS )Nr‰   r   r\   )r)   rM  r   rÙ   r©  r`   r*   rÿ  )
r-   rê   ÚnxrA   r¯   r<  r¨  rš  r   r  r1   r1   r2   Úgenerate_xy_sample2D.  s   ,z)TestCompareWithStats.generate_xy_sample2Dc                 C   sT   |   ¡ D ]#}|  |¡\}}}}t ||¡}tj ||¡}tt |¡t |¡ƒ qd S r  )r§  r©  r   rê  r+   r   r)   r†   )r-   rê   rA   r¯   r<  r¨  Úresult1Úresult2r1   r1   r2   Útest_linregress=  s   üz$TestCompareWithStats.test_linregressc           
      C   sb   |   ¡ D ]*}|  |¡\}}}}t ||¡\}}tj ||¡\}}	t||dd� t||	dd� qd S )NrL  rÇ  )r§  r©  r   r    r+   r
   ©
r-   rê   rA   r¯   r<  r¨  r¥   r¦   ÚrmÚpmr1   r1   r2   r©   D  s   úz"TestCompareWithStats.test_pearsonrc           
      C   s^   |   ¡ D ](}|  |¡\}}}}t ||¡\}}tj ||¡\}}	t||dƒ t||	dƒ qd S ©NrL  )r§  r©  r   rÖ   r+   r
   r¯  r1   r1   r2   rÝ   M  s   ûz#TestCompareWithStats.test_spearmanrc                 C   s    t  d¡}tttj||dƒ d S )Nr^   F)r)   r›   rÿ   rè   r+   rÖ   r•   r1   r1   r2   Ú!test_spearmanr_backcompat_usetiesU  s   
z6TestCompareWithStats.test_spearmanr_backcompat_usetiesc                 C   s|   |   ¡ D ]7}|  |¡\}}}}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ê   rA   r¯   r<  r¨  r¥   r°  r1   r1   r2   Ú
test_gmean[  s   øzTestCompareWithStats.test_gmeanc                 C   sx   |   ¡ D ]5}|  |¡\}}}}t t|ƒ¡}tj t|ƒ¡}t||dƒ t t|ƒ¡}tj t|ƒ¡}t||dƒ qd S ©NrR   )r§  r©  r   rC   r„  r+   r
   r´  r1   r1   r2   Ú
test_hmeanf  s   ÷zTestCompareWithStats.test_hmeanc                 C   óh   |   ¡ D ]-}|  |¡\}}}}t |¡}tj |¡}t||dƒ t |¡}tj |¡}t||dƒ qd S r¶  )r§  r©  r   r“  r+   r
   r´  r1   r1   r2   Ú	test_skewr  ó   

÷zTestCompareWithStats.test_skewc                 C   r¸  r¶  )r§  r©  r   r†  r+   r
   r´  r1   r1   r2   r‹  ~  rº  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   rp  r   r   rÌ  r+   r  )r-   rê   rA   r¯   r<  r¨  ÚzxÚzyr1   r1   r2   rÍ  Š  s    ÿ ÿòz TestCompareWithStats.test_zscorec                 C   r¸  r¶  )r§  r©  r   r¢  r+   r
   r´  r1   r1   r2   r£  œ  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� q0d S )NrS   r‰   rI   r   rt  gß'Üež @gñhãˆµøä>rW  r   )r'   ru  é   rÇ  )r)   r›   rD  r`   r*   r   rÂ  r+   r   r§  r©  r
   )
r-   rO   Úamr¥   r°  rê   rA   r¯   r<  r¨  r1   r1   r2   rÃ  §  s*   ÿÿÿÿøzTestCompareWithStats.test_semc           	      C   sr   |   ¡ D ]2}|  |¡\}}}}tj|dd�}tjj|dd�}tdƒD ]}tt || ¡t || ¡dd� q"qd S )Nr   rt  r^   rB  rÇ  )	r§  r©  r   r�  r+   rÙ   r
   r)   r†   )	r-   rê   rA   r¯   r<  r¨  r¥   r°  Úiir1   r1   r2   Útest_describe¼  s   þÿüz"TestCompareWithStats.test_describec                 C   s&   t  t d¡¡}d}t||dd� d S )Nr‰   )rž  rŸ  r   r¡  r¢  r¢  TrÕ   )r+   r�  r)   r›   r   )r-   r�  rÜ   r1   r1   r2   Útest_describe_result_attributesÆ  s   z4TestCompareWithStats.test_describe_result_attributesc                 C   sD   |   ¡ D ]}|  |¡\}}}}t |¡}tj |¡}t||ƒ qd S r  )r§  r©  r   r”   r+   r   r´  r1   r1   r2   Útest_rankdataÌ  s   
üz"TestCompareWithStats.test_rankdatac                 C   sX   |   ¡ D ]%}|  |¡\}}}}tt |¡tj |¡dƒ tt |¡tj |¡dƒ qd S r²  )r§  r©  r
   r   Útmeanr+   ©r-   rê   rA   r¯   r<  r¨  r1   r1   r2   Ú
test_tmeanÓ  s
   ýzTestCompareWithStats.test_tmeanc                 C   s¤   |   ¡ D ]K}|  |¡\}}}}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   rR   r   )Ú
upperlimit)r§  r©  r
   r   Útmaxr+   rÅ  r1   r1   r2   Ú	test_tmaxÙ  s   ÿÿÿÿ÷zTestCompareWithStats.test_tmaxc                 C   s˜   |   ¡ D ]E}|  |¡\}}}}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 )Nr™   )Ú
lowerlimitrR   )r§  r©  r	   r   Útminr+   r
   rÅ  r1   r1   r2   Ú	test_tminæ  s   ÿÿùzTestCompareWithStats.test_tminc                 C   sX   |   ¡ D ]%}|  |¡\}}}}t ||¡}tj ||¡}t||dt|ƒ… dd� qd S )Nr   r»  rW  )r§  r©  r   rÉ  r+   r   r  )r-   rê   rA   r¯   r<  r¨  r  Úzmr1   r1   r2   rË  ñ  s   üzTestCompareWithStats.test_zmapc                 C   ó\   |   ¡ D ]'}|  |¡\}}}}tt |¡tj |¡dd� tt |¡tj |¡dd� qd S ©NrB  rÇ  )r§  r©  r
   r   r�  r+   rÅ  r1   r1   r2   rŽ  ø  ó   ÿÿüz#TestCompareWithStats.test_variationc                 C   rÎ  rÏ  )r§  r©  r
   r   Útvarr+   rÅ  r1   r1   r2   Ú	test_tvar   rÐ  zTestCompareWithStats.test_tvarc                 C   sB   t  d¡}t |d¡}tj |d¡}tt  |¡|j|j  ƒ d S )NrS   râ   )	r)   r›   r   rM  r+   r   rg  r.   r]   )r-   rO   r  Úbmr1   r1   r2   Útest_trimboth  s   
z"TestCompareWithStats.test_trimbothc                 C   s€   |   ¡ D ]9}|  |¡\}}}}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 )NrL  rÇ  )rœ  r   )r?  )r§  r©  r
   r   Útsemr+   rÅ  r1   r1   r2   Ú	test_tsem  s   ÿÿþúzTestCompareWithStats.test_tsemc                 C   sL   |   ¡ D ]}|dkr#|  |¡\}}}}t |¡}tj |¡}t||ƒ qd S )Nr�   )r§  r©  r   r1  r+   r   r´  r1   r1   r2   Útest_skewtest  s   

€ûz"TestCompareWithStats.test_skewtestc                 C   rC  rD  )r)   r*   r+   r1  r   rE  r1   r1   r2   Útest_skewtest_result_attributes"  rG  z4TestCompareWithStats.test_skewtest_result_attributesc                 C   s@   t j d¡d }t |¡}tj |¡}tt  |¡t  |¡ƒ d S )N)rS   rG   g      4@)r)   ræ   r   r1  r+   r   r†   )r-   rA   r¥   r°  r1   r1   r2   Útest_skewtest_2D_notmasked(  s   
z/TestCompareWithStats.test_skewtest_2D_notmaskedc           	      C   s„   d}|   ¡ D ]9}|dkr?|  ||¡\}}}}t |¡}tj |¡}t|d d |d d dd� t|d d |d d dd� qd S )NrG   r�   r   rL   r<   r   )r§  r«  r   r1  r+   r   )	r-   rª  rê   rA   r¯   r<  r¨  r¥   r°  r1   r1   r2   Útest_skewtest_2D_WithMask/  s   
€ùz.TestCompareWithStats.test_skewtest_2D_WithMaskc           	   	   C   sÔ   t jdd��Z tƒ �>}| td¡ | td¡ |  ¡ D ]%}|dkr@|  |¡\}}}}t |¡}tj	 |¡}t
t  |¡t  |¡ƒ qW d   ƒ n1 sKw   Y  W d   ƒ d S W d   ƒ d S 1 scw   Y  d S )Nrz  )Úoverz(`kurtosistest` p-value may be inaccuratez!kurtosistest only valid for n>=20r�   )r)   ri   r   r   ÚUserWarningr§  r©  r   r0  r+   r   r†   )	r-   r  rê   rA   r¯   r<  r¨  r¥   r°  r1   r1   r2   Útest_normaltest:  s   
€ûPýz$TestCompareWithStats.test_normaltestc                 C   sÐ   t  g d¢¡ d¡}t  g d¢¡ d¡}|dk}t jj||d�}| ¡ | ¡ }}t j|dd�\}}||dk ||dk f}	tj 	|¡}
t
|	|
ƒ t
||ƒ t
||ƒ tj 	g ¡\}}t
|t jd	t jd
�ƒ d S )N)r   r   rG   rG   rH   rH   rH   rI   rI   rI   rI   r  )r   r   rG   rG   rH   rH   rH   rI   rI   rI   rI   r‰   r‰   r‰   r‰   rÝ  r\   T)Úreturn_countsr   r   r…   )r)   r†   ro   r`   r*   r±  Úuniquer   r+   Úfind_repeatsr	   Úintp)r-   rA   Útmpr]   r<  Úx_origÚxm_origrß  Úunique_countsr¥   r°  r  rP  r1   r1   r2   Útest_find_repeatsE  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   rR   rÇ  r   rŠ   )r§  r©  r   rþ   r+   r
   r´  r1   r1   r2   r  Y  s   ûz$TestCompareWithStats.test_kendalltauc                 C   sR   |   ¡ D ]"}|  |¡\}}}}t |¡}tj |¡}t|j|dt|ƒ… ƒ qd S )Nr   )r§  r©  r   rÐ  r+   r
   r  r  r´  r1   r1   r2   rÒ  a  s   
üz)TestCompareWithStats.test_obrientransformc              
   C   sÎ   dD ]b}t ƒ �U dD ]J}|  ¡ D ]C}|  |¡\}}}}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 d  ƒ n1 s_w   Y  qdS )zFChecks that mstats.ks_1samp and stats.ks_1samp agree on masked arrays.©Úautor  Úasymp©rá   rÞ   r  ©rà   r¥  N)r   r§  r©  r   Úks_1sampr  Úcdfr+   r	   r)   r†   ©r-   r¥  rà   rê   rA   r¯   r<  r¨  rg  rh  rr  r1   r1   r2   Útest_ks_1samph  s*   ÿÿÿ÷ÿÿ€ÿz"TestCompareWithStats.test_ks_1sampc              
   C   sÂ   dD ]\}t ƒ �O dD ]D}|  ¡ D ]=}|  |¡\}}}}tj|d||d�}tjj|d||d�}	tt |¡t |	¡ƒ tj|d||d�}
tt |¡t |
¡ƒ qq
W d  ƒ n1 sYw   Y  qdS )z]
        Checks that 1-sample mstats.kstest and stats.kstest agree on masked arrays.
        rç  rê  r  rë  N)	r   r§  r©  r   Úkstestr+   r	   r)   r†   rî  r1   r1   r2   Útest_kstest_1sampx  s*   ÿ
ÿÿ÷ÿÿ€ÿz&TestCompareWithStats.test_kstest_1sampc              
   C   óÚ   dD ]h}t ƒ �[}|dv rd}| t|¡ dD ]D}|  ¡ D ]=}|  |¡\}}}}	tj||||d�}
tjj||	||d�}tt	 
|
¡t	 
|¡ƒ tj||||d�}tt	 
|
¡t	 
|¡ƒ qqW d  ƒ n1 sew   Y  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   rÖ  r+   r	   r)   r†   ©r-   r¥  r  Úmessagerà   rê   rA   r¯   r<  r¨  rg  rh  rr  r1   r1   r2   rÛ  Š  s0   ÿ
ÿÿ÷ÿü€ÿz"TestCompareWithStats.test_ks_2sampc              
   C   rò  )z]
        Checks that 2-sample mstats.kstest and stats.kstest agree on masked arrays.
        rç  ró  rô  rê  rë  N)r   r   rŸ   r§  r©  r   rð  r+   r	   r)   r†   rõ  r1   r1   r2   Útest_kstest_2sampž  s0   ÿ
ÿÿ÷ÿü€ÿz&TestCompareWithStats.test_kstest_2sampN))r4   r5   r6   rÎ  r§  r©  r«  r®  r©   rÝ   r³  rµ  r·  r¹  r‹  rÍ  r£  rÃ  rÁ  rÂ  rÃ  rÆ  rÉ  rÌ  rË  rŽ  rÒ  rÔ  rÖ  r×  rØ  rÙ  rÚ  rÝ  ræ  r  rÒ  rï  rñ  rÛ  r÷  r1   r1   r1   r2   r¦    sN    	
	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   rG   rI   rH   r‰   rL  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Þ   rÇ  ç|	&�ˆ	@ç|	&�ˆ	Àg°¿Ò�G³g?g@-p¸Lèï?)r+   ÚbrunnermunzelÚXÚYr
   Úsignificantr   )	r-   Úu1rì   Úu2rî   Úu3rð   Úu4Úp4r1   r1   r2   Útest_brunnermunzel_one_sided»  s2   ÿÿÿÿÿ
ÿz.TestBrunnerMunzel.test_brunnermunzel_one_sidedc                 C   ót   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ß   rÇ  rù  rú  ç ÀÒ�G³w?©r+   rû  rü  rý  r
   rþ  ©r-   rÿ  rì   r   rî   r1   r1   r2   Útest_brunnermunzel_two_sidedÒ  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 )NrÇ  rù  rú  r  r  r  r1   r1   r2   Útest_brunnermunzel_defaultß  s   ÿÿ
ÿz,TestBrunnerMunzel.test_brunnermunzel_defaultc                 C   ó0   d}d}t |dvƒ tttj| j| j||ƒ d S )Nr˜   rx  r  ©r   rÿ   rè   r+   rû  rü  rý  ©r-   rà   Údistributionr1   r1   r2   Ú$test_brunnermunzel_alternative_errorì  ó   ûz6TestBrunnerMunzel.test_brunnermunzel_alternative_errorc                 C   r  )NÚnormal)r  rÇ  rù  rú  g œ"H°ë[?r  r  r1   r1   r2   Ú$test_brunnermunzel_distribution_norm÷  s   ÿÿ
ÿz6TestBrunnerMunzel.test_brunnermunzel_distribution_normc                 C   r  )Nr  r˜   )rx  r  r  r  r1   r1   r2   Ú%test_brunnermunzel_distribution_error  r  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 r  )r+   rû  rü  rý  r   r)   rÿ  )r-   rÿ  rì   r   rî   r  rð   r1   r1   r2   Útest_brunnermunzel_empty_imput  s   z0TestBrunnerMunzel.test_brunnermunzel_empty_imputN)r4   r5   r6   r)   r`   Úmasked_invalidr   rü  rý  rþ  r  r	  r
  r  r  r  r  r1   r1   r1   r2   rø  ´  s    ÿ&rø  )NNr8   )CrÎ  rœ   r6  Únumpyr)   r   Únumpy.mar`   r   r   Úscipy.stats.mstatsr   r+   ÚscipyÚcommon_testsr   r~   r   rÿ   Únumpy.ma.testutilsr	   r
   r   r   r   r   r   Únumpy.testingr   Úscipy.statsr   r   Úscipy.conftestr   Úscipy.stats._axis_nan_policyr   r   r   rB   rD   rE   r‚   rˆ   r—   r;  r}  r¤  r¶  rÁ  rÏ  rï  rñ  rò  r  r  r*  r-  r.  r`  re  rj  rl  r“  r™  r›  r¦  rø  r1   r1   r1   r2   Ú<module>   sz    $

<$  >x ) 0Mb	1\_C   3