a
    ˆù»jØ  ã                   @   s4	  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	  m
Z ddlZddlZddlmZmZmZmZmZmZmZmZmZmZ ddlZddlmZ ddlm  mZ ddl
m Z m!Z!m"Z"m#Z#m$Z$ ddl
Z%ddl&m'Z' ddl(m'  m)Z) ddl*m'  m+Z, ddl-m.Z. dd	l/m0Z0 dd
l1m2Z2 ddl3m4Z4 ddl5m6Z6 ddl7m8Z8 ddl9m:Z: ddl;m<Z< ddl=m>Z> e g d¢e?ƒZ@e g d¢e?ƒZAe g d¢e?ƒZBe g d¢e?ƒZCe g d¢e?ƒZDe g d¢e?ƒZEe g d¢e?ƒZFG dd„ dƒZGG dd„ dƒZHG dd„ dƒZIG dd „ d ƒZJG d!d"„ d"ƒZKd#d$„ ZLd%d&„ ZMd'd(„ ZNd)d*„ ZOd+d,„ ZPG d-d.„ d.ƒZQd/d0„ ZRd1d2„ ZSd3d4„ ZTd5d6„ ZUG d7d8„ d8ƒZVG d9d:„ d:ƒZWd;d<„ ZXd=d>„ ZYd?d@„ ZZG dAdB„ dBƒZ[ej\ ]dC¡G dDdE„ dEƒƒZ^G dFdG„ dGƒZ_G dHdI„ dIƒZ`G dJdK„ dKƒZadLdM„ ZbG dNdO„ dOƒZcG dPdQ„ dQƒZdejejfdRdS„ ƒZgG dTdU„ dUƒZhG dVdW„ dWƒZiedXg dY¢ƒZjejg dZ¢dddd[d\d[e% kd]¡ d^e% kd_¡   d\d`e% kda¡ d`e% kdb¡   dcdY�ejg dZ¢g dd¢ddded\d[e% kda¡ d`e% kd]¡  d`e% kdf¡   d\d\e% kd]¡ dge% kda¡  d\e% kdh¡   didY�ejg dZ¢d`ddd[d\d[e% kd]¡ d^e% kd_¡   d\d`e% kda¡ d`e% kdb¡   dcdY�ejg dj¢g dj¢dddddddY�gZlejg ddddddddY�eje%  g g g g¡jmdddg dk¢g dk¢g dk¢g dk¢dY�eje%  g g g g¡dddg g g g dY�gZnG dldm„ dmƒZodndo„ Zpej\ qdpdqe%jrfdre%jsfg¡dsdt„ ƒZtdudv„ Zudwdx„ Zvdydz„ ZwG d{d|„ d|ƒZxG d}d~„ d~ƒZyG dd€„ d€ƒZzd�d‚„ Z{dƒd„„ Z|d…d†„ Z}ej\ qd‡e% ~dˆ¡d‰fe% ~dŠ¡d‹fg¡dŒd�„ ƒZdŽd�„ Z€ej\ qd�g d‘¢¡d’d“„ ƒZ�ej\ qd”e'j‚e% !d•¡dffe'jƒe% !d•¡e% !d•¡ffg¡d–d—„ ƒZ„�d	d˜d™„Z…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Žej\ qd‡e% ~dˆ¡d‰fe% ~dŠ¡d‹fg¡d¬d­„ ƒZ�d®d¯„ Z�d°d±„ Z‘d²d³„ Z’d´dµ„ Z“d¶d·„ Z”d¸d¹„ Z•dºd»„ Z–G d¼d½„ d½ƒZ—d¾d¿„ Z˜G dÀdÁ„ dÁƒZ™G dÂdÃ„ dÃƒZšdÄdÅ„ Z›dÆdÇ„ ZœG dÈdÉ„ dÉƒZ�dÊdË„ ZždÌdÍ„ ZŸ�d
dÏdÐ„Z �ddÑdÒ„Z¡�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©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³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¹e%jº »�d¡Z¼e¼ ºd•¡Z½e¼ ºd•¡Z¾ej\ q�de'j¿e½ffe'jÀe½e'jÁjÂffe'jÃe½e¾ffe'jÄe½e¾ffg¡�d�d„ ƒZÅG �d�d„ �dƒZÆdS (  zü Test functions for stats module

    WRITTEN BY LOUIS LUANGKESORN <lluang@yahoo.com> FOR THE STATS MODULE
    BASED ON WILKINSON'S STATISTICS QUIZ
    https://www.stanford.edu/~clint/bench/wilk.txt

    Additional tests by a host of SciPy developers.
é    N)Ú
namedtuple)Úproduct)
Úassert_Úassert_equalÚassert_almost_equalÚassert_array_almost_equalÚassert_array_equalÚassert_approx_equalÚassert_allcloseÚassert_warnsÚsuppress_warningsÚassert_array_less)Úraises)ÚarrayÚarangeÚfloat32Úfloat64Úpower)Úkolmogn)ÚFuncData)Úbinom)Úoptimizeé   )Úcheck_named_results)Úcdist)Ú_broadcast_concatenate)Ú_permutation_distribution_t)Ú	AxisError)	r   é   é   é   é   é   é   é   é	   )	r   r   r   r   r   r   r   r   r   )	i÷àõiøàõiùàõiúàõiûàõiüàõiýàõiþàõiÿàõ)	gƒ~®Ïÿÿï?g<âÕÿÿï?gôEkÚÿÿï?g­©Éßÿÿï?ge(åÿÿï?gq†êÿÿï?gÖÔäïÿÿï?g�8Cõÿÿï?gGœ¡úÿÿï?)	g   ¢”mBg   ¢”}Bg  €yïÓ…Bg   ¢”�Bg  @åœ0’Bg  €yïÓ•Bg  ÀBw™Bg   ¢”�Bg   ›ó^ B)	çê-�™—q=gê-�™—�=gßÄAfcŠ=gê-�™—‘=g•dyáý•=gßÄAfcš=gžY¢LÉž=gê-�™—¡=gS§S±ŒÊ£=)	ç      à?ç      ø?ç      @ç      @ç      @ç      @ç      @ç      @ç      !@c                   @   sJ   e Zd Ze ej¡jZdd„ Zdd„ Z	dd„ Z
dd„ Zd	d
„ Zdd„ ZdS )ÚTestTrimmedStatsc              
   C   s@  t  tdd¡}t|d| jd� t jtddd�}t jtd d�}t||| jd� tdtd	� d
d¡}t j|d d�}t|| ¡ | jd� t j|dd�}t	||jdd�dd� t j|dd�}t	||jdd�dd� t j|dd d�}t|d| jd� t j|ddd�}g d¢}t	||dd� t j|dddd�}g d¢}t	||dd� t
 |¡}t
j|ddd …f< t j|ddd�}ddddt
jt
jt
jg}t	||dd� tƒ �š}| td¡ t j|ddd�}d d!d"d#t
jt
jt
jt
jt
jg	}t	||dd� t j|dd$dd�}dd!d"d#t
jt
jt
jt
jt
jg	}t	||dd� W d   ƒ n1 �s20    Y  d S )%N©r   r$   ©TTç      @©Úsignificant)FF©ÚlimitsÚ	inclusive©r7   é?   ©Údtyper%   r#   ©Úaxisr   r$   ©Údecimalr   )r   é=   )r7   r>   g     €?@)r   é   )é   ç      '@r%   é
   é   é   é   ©TF)r7   r8   r>   )ç      %@rD   r%   rE   rF   rG   rH   éÿÿÿÿéýÿÿÿ)r   rH   r+   r,   r-   úMean of empty slicer    rE   é   rB   ©FT)ÚstatsZtmeanÚXr	   Údprecr   r   ÚreshapeÚmeanr   Únpr   Únanr   ÚrecordÚRuntimeWarning)ÚselfÚyÚy1Úy2Úx_2dZy_trueZx_2d_with_nanÚsup© r_   úBE:\soccer\ml_env\Lib\site-packages\scipy/stats/tests/test_stats.pyÚ
test_tmeanH   sF    
 ÿ zTestTrimmedStats.test_tmeanc                 C   sˆ  t jtddd�}t|d| jd� t jtd d�}t|tjdd�| jd� td	td
� d¡}t j|d d�}t||jdd�| jd� t j|dd�}t	|d t
 dd¡dd� t j|dd�}t	|d t
 dd¡dd� t  |dd d …f ¡}t|d| jd� tƒ �x}| td¡ t j|dddd�}t|d d| jd� t j|dddd�}t|d d| jd� t|d t
jƒ W d   ƒ n1 �sz0    Y  d S )Nr1   r2   r6   gªªªªªª@r4   r9   r   ©Úddofr:   r;   )r%   r#   r=   r   )r   r#   g     øv@r$   r?   )r   r%   gÒîãªªª@r   g«ªªªªª@z"Degrees of freedom <= 0 for slice.)r   r!   )r7   r>   r8   r)   ©r   r"   )rP   ZtvarrQ   r	   rR   Úvarr   r   rS   r   rU   Úfullr   rW   rX   r   rV   )rY   rZ   r]   r^   r_   r_   r`   Ú	test_tvarw   s(    zTestTrimmedStats.test_tvarc                 C   sH   t  tdd¡}t|d| jd� t jtd d�}t|tjdd�| jd� d S )Nr1   r2   gBÄ†/H@r4   r9   r   rb   )rP   ZtstdrQ   r	   rR   Ústd©rY   rZ   r_   r_   r`   Ú	test_tstd—   s    zTestTrimmedStats.test_tstdc              	   C   sä  t t d¡dƒ t d¡}t t |¡dƒ t tj|dd�dƒ t tj|ddd�dƒ | d¡}t tj|ddd�d	dgƒ t tj|dd
�g d¢ƒ t tj|d d
�dƒ t d¡}tj|d< tƒ �¦}| t	d¡ t t |¡tjƒ t tj|dd�dƒ t
ttj|dd� t
ttj|dd� d}t
t|d�� tj|dd� W d   ƒ n1 �sL0    Y  W d   ƒ n1 �sl0    Y  tƒ �R}| t	d¡ t d¡ dd¡}tj|ddd�}t |tjdddgƒ W d   ƒ n1 �sÖ0    Y  d S )Nr    rE   r   )Ú
lowerlimitF)rk   r8   r   ©r!   r   r   r=   )r   r   r    r"   r$   ç      $@r%   úinvalid value*Úomit©Ú
nan_policyç        ÚraiseÚfoobarz'propagate', 'raise', 'omit'©ÚmatchZfooúAll-NaN slice encounteredé   )rk   r>   r$   rG   )r   rP   ZtminrU   r   rS   rV   r   rW   rX   Úassert_raisesÚ
ValueErrorÚfilter)rY   Úxr^   ÚmsgÚresr_   r_   r`   Ú	test_tminž   s2    



NzTestTrimmedStats.test_tminc                 C   s¤  t t d¡dƒ t d¡}t t |¡dƒ t tj|dd�dƒ t tj|ddd�dƒ | d¡}t tj|ddd�dd	gƒ t tj|d
d�g d¢ƒ t tj|d d�dƒ t d¡}tj|d< tƒ �f}| t	d¡ t t |¡tjƒ t tj|dd�dƒ t
ttj|dd� t
ttj|dd� W d   ƒ n1 �s,0    Y  tƒ �R}| t	d¡ t d¡ dd¡}tj|dd
d�}t |dd	dtjgƒ W d   ƒ n1 �s–0    Y  d S )Nr    rE   r%   )Ú
upperlimitF)r€   r8   r$   rl   r#   r   r=   ©r   r   r!   r#   r%   rm   r"   rn   ro   rp   ç      "@rs   rt   rw   rx   rF   )r€   r>   r   )r   rP   ZtmaxrU   r   rS   rV   r   rW   rX   ry   rz   r{   )rY   r|   r^   r~   r_   r_   r`   Ú	test_tmax¿   s,    



2zTestTrimmedStats.test_tmaxc                 C   sn   t jtddd�}t g d¢¡}t||jdd�t |j¡ | j	d� tt jtdd	gd
�t jtd d
�| j	d� d S )N)r   r$   rO   r6   )r    r!   r"   r#   r$   r   rb   r4   rK   rE   r9   )
rP   ZtsemrQ   rU   r   r	   rh   ÚsqrtÚsizerR   )rY   rZ   Zy_refr_   r_   r`   Ú	test_tsemÝ   s    ÿþzTestTrimmedStats.test_tsemN)Ú__name__Ú
__module__Ú__qualname__rU   Zfinfor   Ú	precisionrR   ra   rg   rj   r   rƒ   r†   r_   r_   r_   r`   r0   D   s   / !r0   c                   @   s¤  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#e$j% &dBg dC¢¡dDdE„ ƒZ'dFdG„ Z(dHdI„ Z)dJdK„ Z*dLdM„ Z+dNdO„ Z,e$j%j-e$j% &dPdQ¡e$j% &dRdS¡dTdU„ ƒƒƒZ.e$j%j-e$j% &dPdQ¡dVdW„ ƒƒZ/dXdY„ Z0dZS )[ÚTestCorrPearsonráE   W.II.D. Compute a correlation matrix on all the variables.

        All the correlations, except for ZERO and MISS, should be exactly 1.
        ZERO and MISS should have undefined or missing correlations with the
        other variables.  The same should go for SPEARMAN correlations, if
        your program has them.
    c                 C   s"   t  tt¡}|d }t|dƒ d S ©Nr   ç      ð?)rP   ÚpearsonrrQ   r	   ©rY   rZ   Úrr_   r_   r`   Útest_pXXñ   s    zTestCorrPearsonr.test_pXXc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   r�   rQ   ÚBIGr	   r�   r_   r_   r`   Ú
test_pXBIGö   s    zTestCorrPearsonr.test_pXBIGc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   r�   rQ   ÚLITTLEr	   r�   r_   r_   r`   Útest_pXLITTLEû   s    zTestCorrPearsonr.test_pXLITTLEc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   r�   rQ   ÚHUGEr	   r�   r_   r_   r`   Útest_pXHUGE   s    zTestCorrPearsonr.test_pXHUGEc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   r�   rQ   ÚTINYr	   r�   r_   r_   r`   Útest_pXTINY  s    zTestCorrPearsonr.test_pXTINYc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   r�   rQ   ÚROUNDr	   r�   r_   r_   r`   Útest_pXROUND
  s    zTestCorrPearsonr.test_pXROUNDc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   r�   r“   r	   r�   r_   r_   r`   Útest_pBIGBIG  s    zTestCorrPearsonr.test_pBIGBIGc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   r�   r“   r•   r	   r�   r_   r_   r`   Útest_pBIGLITTLE  s    z TestCorrPearsonr.test_pBIGLITTLEc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   r�   r“   r—   r	   r�   r_   r_   r`   Útest_pBIGHUGE  s    zTestCorrPearsonr.test_pBIGHUGEc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   r�   r“   r™   r	   r�   r_   r_   r`   Útest_pBIGTINY  s    zTestCorrPearsonr.test_pBIGTINYc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   r�   r“   r›   r	   r�   r_   r_   r`   Útest_pBIGROUND#  s    zTestCorrPearsonr.test_pBIGROUNDc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   r�   r•   r	   r�   r_   r_   r`   Útest_pLITTLELITTLE(  s    z#TestCorrPearsonr.test_pLITTLELITTLEc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   r�   r•   r—   r	   r�   r_   r_   r`   Útest_pLITTLEHUGE-  s    z!TestCorrPearsonr.test_pLITTLEHUGEc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   r�   r•   r™   r	   r�   r_   r_   r`   Útest_pLITTLETINY2  s    z!TestCorrPearsonr.test_pLITTLETINYc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   r�   r•   r›   r	   r�   r_   r_   r`   Útest_pLITTLEROUND7  s    z"TestCorrPearsonr.test_pLITTLEROUNDc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   r�   r—   r	   r�   r_   r_   r`   Útest_pHUGEHUGE<  s    zTestCorrPearsonr.test_pHUGEHUGEc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   r�   r—   r™   r	   r�   r_   r_   r`   Útest_pHUGETINYA  s    zTestCorrPearsonr.test_pHUGETINYc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   r�   r—   r›   r	   r�   r_   r_   r`   Útest_pHUGEROUNDF  s    z TestCorrPearsonr.test_pHUGEROUNDc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   r�   r™   r	   r�   r_   r_   r`   Útest_pTINYTINYK  s    zTestCorrPearsonr.test_pTINYTINYc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   r�   r™   r›   r	   r�   r_   r_   r`   Útest_pTINYROUNDP  s    z TestCorrPearsonr.test_pTINYROUNDc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   r�   r›   r	   r�   r_   r_   r`   Útest_pROUNDROUNDU  s    z!TestCorrPearsonr.test_pROUNDROUNDc                 C   s,   t  tt¡}d}t||ƒ t|j|jƒ d S ©N©ÚcorrelationÚpvalue)rP   r�   rQ   r   r   r®   Ú	statistic©rY   r~   Ú
attributesr_   r_   r`   Útest_pearsonr_result_attributesZ  s    
z0TestCorrPearsonr.test_pearsonr_result_attributesc              	   C   sH   t dƒ}t ||¡\}}t|ddd� t|dt dt d¡ ¡d� d S )Nç      @rŽ   çVçž¯Ò<©Úatolrr   r   ©r   rP   r�   r
   rU   r„   Úspacing©rY   Úar‘   Úprobr_   r_   r`   Útest_r_almost_exactly_pos1`  s    z+TestCorrPearsonr.test_r_almost_exactly_pos1c              	   C   sJ   t dƒ}t || ¡\}}t|ddd� t|dt dt d¡ ¡d� d S )Nr´   ç      ð¿rµ   r¶   rr   r   rŽ   r¸   rº   r_   r_   r`   Útest_r_almost_exactly_neg1i  s    z+TestCorrPearsonr.test_r_almost_exactly_neg1c                 C   sJ   t g d¢ƒ}t g d¢ƒ}t ||¡\}}t|t d¡d ƒ t|dƒ d S )N©rK   r   r   )r   r   r   r   r   çUUUUUUÕ?)r   rP   r�   r	   rU   r„   )rY   r»   Úbr‘   r¼   r_   r_   r`   Ú
test_basicr  s
    zTestCorrPearsonr.test_basicc                 C   sh   d}t jtj|d��@ t g d¢g d¢¡\}}t|tjƒ t|tjƒ W d   ƒ n1 sZ0    Y  d S )NúAn input array is constantru   ©çòÒMbXå?rÆ   rÆ   ©g°rh‘í|¿?gÉv¾Ÿ/Ý?gsh‘í|?é?)ÚpytestÚwarnsrP   ÚConstantInputWarningr�   r   rU   rV   )rY   r}   r‘   Úpr_   r_   r`   Útest_constant_input{  s
    z$TestCorrPearsonr.test_constant_inputc                 C   st   dddt  d¡ g}ddddt  d¡  g}d}tjtj|d��  t ||¡\}}W d   ƒ n1 sf0    Y  d S )Nr   r   r"   z/An input array is nearly constant; the computedru   )rU   r¹   rÈ   rÉ   rP   ZNearConstantInputWarningr�   )rY   r|   rZ   r}   r‘   rË   r_   r_   r`   Útest_near_constant_input„  s
    z)TestCorrPearsonr.test_near_constant_inputc                 C   s8   g d¢}g d¢}t  ||¡\}}t|dƒ t|dƒ d S )N)gµ¦yÇ)r?gx‹dè{s?gßnp?g$›«æ9"o?ge œ=:ïk?)g†ûãoÈŸûg`Ðÿ
,™ˆg“zó‰ÊÎàgÔ2ól?³g>?°…?'ge‡;üEç?g3RÚÅÂöÄ?)rP   r�   r
   ©rY   r|   rZ   r‘   rË   r_   r_   r`   Útest_very_small_input_valuesŽ  s
    
z-TestCorrPearsonr.test_very_small_input_valuesc                 C   sH   dt  g d¢¡ }dt  d¡ }t ||¡\}}t|dƒ t|dƒ d S )NgÇY)	kŸR)r   r   r   r   r   r   r   r#   gªLXèz¶ë?gÍ—‚~-ˆ?)rU   r   r   rP   r�   r
   rÎ   r_   r_   r`   Útest_very_large_input_values›  s
    
z-TestCorrPearsonr.test_very_large_input_valuesc                 C   sD   t  g d¢¡}t  g d¢¡}t ||¡\}}t|dƒ t|dƒ d S )N)g±7øÂ	ˆig¥NÒòûƒ—ig_bÄ4‹�¡igZb××ç¤i)gøœDig<'È(Â½œigm–žQŽÅiçZb××çtigá*D¸æ{Ö?g�êÝ£Âä?)rU   r   rP   r�   r
   rÎ   r_   r_   r`   Ú!test_extremely_large_input_values©  s
    
z2TestCorrPearsonr.test_extremely_large_input_valuesc                 C   sB   t  ddgddg¡}|\}}t|dƒ t|dƒ t| ¡ dƒ d S )Nr   r   r   r!   ©rK   r   )rP   r�   r   Úconfidence_interval)rY   r~   r‘   rË   r_   r_   r`   Útest_length_two_pos1¶  s
    

z%TestCorrPearsonr.test_length_two_pos1c                 C   s0   t  ddgddg¡\}}t|dƒ t|dƒ d S )Nr   r   r   r!   rK   )rP   r�   r   )rY   r‘   rË   r_   r_   r`   Útest_length_two_neg2¿  s    
z%TestCorrPearsonr.test_length_two_neg2z$alternative, pval, rlow, rhigh, sign))ú	two-sidedçˆöïÑèÙÔ?gÐmãúê¿g¸“ÆŽúÀï?r   )ÚlessçKôƒË…Éê?rK   gé?ú
Šï?r   )ÚgreaterçÓ.ðÑèÙÄ?gðÕ¤ÑÎ¶å¿r   r   )r×   rØ   gÓfÇŽúÀï¿g¡ëlãúê?rK   )rÙ   rÜ   r¾   gðÕ¤ÑÎ¶å?rK   )rÛ   rÚ   gé?ú
Šï¿rŽ   rK   c           
      C   sl   g d¢}t  g d¢¡| }tj|||d�}t|jd| dd� t|j|dd� | ¡ }	t|	||fdd� d S )N©r   r   r   r    )r   r   r'   r   ©Úalternativegê—“å?r&   ©Úrtolç�íµ ÷Æ°>)rU   r   rP   r�   r
   r°   r¯   rÔ   )
rY   rß   ÚpvalZrlowZrhighÚsignr|   rZ   ÚresultÚcir_   r_   r`   Útest_basic_exampleÍ  s    z#TestCorrPearsonr.test_basic_examplec                 C   sP   t  d¡}| }tj||dd�}tj||dd�}t|jdƒ t|jddd� d S )	NrE   rÛ   rÞ   rÙ   r   r   g#B’¡œÇ;r¶   )rU   r   rP   r�   r
   r¯   )rY   r|   rZ   Ztest_greaterZ	test_lessr_   r_   r`   Ú(test_negative_correlation_pvalue_gh17795Ý  s    
z9TestCorrPearsonr.test_negative_correlation_pvalue_gh17795c                 C   sN   g d¢}g d¢}t  ||¡}|\}}t|dƒ t|ddd� t| ¡ dƒ d S )N©r   r   r   )r!   éüÿÿÿióÿÿÿr¾   rr   çH¯¼šò×z>r¶   rÓ   )rP   r�   r
   r   rÔ   )rY   r|   rZ   r~   r‘   rË   r_   r_   r`   Ú#test_length3_r_exactly_negative_oneå  s    
z4TestCorrPearsonr.test_length3_r_exactly_negative_onec                 C   s$   g d¢}ddg}t ttj||ƒ d S )Nré   r    r!   ©ry   rz   rP   r�   ©rY   r|   rZ   r_   r_   r`   Útest_unequal_lengthsñ  s    z%TestCorrPearsonr.test_unequal_lengthsc                 C   s    dg}dg}t ttj||ƒ d S ©Nr   r   rí   rî   r_   r_   r`   Ú	test_len1ö  s    zTestCorrPearsonr.test_len1c                 C   sR   g d¢}g d¢}d}t jt|d�� t ||¡ W d   ƒ n1 sD0    Y  d S )N)y       €      ð¿y       €       Ày       €      Àz+This function does not support complex dataru   )rÈ   r   rz   rP   r�   )rY   r|   rZ   Úmessager_   r_   r`   Útest_complex_dataû  s
    z"TestCorrPearsonr.test_complex_datarß   ©rÙ   rÛ   r×   Úmethod©ÚpermutationZmonte_carloc           
      C   sª   t j d¡}|dkrdnd}|j|d�}|j|d�}tj|d�tj|jfd d�d	œ}|| }tj||||d
�}tj|||d�}	t|j	|	j	dd� t|j
|	j
ddd� d S )Nì   «oƒ#[m»r÷   éd   éè  ©r…   ©Úrandom_stater   )Úrvsrö   )rß   rõ   rÞ   rµ   rà   ç{®Gáz„?çü©ñÒMbP?©rá   r·   )rU   ÚrandomÚdefault_rngÚnormalrP   ZPermutationMethodZMonteCarloMethodr�   r
   r°   r¯   )
rY   rõ   rß   Úrngr…   r|   rZ   Úmethodsr~   Úrefr_   r_   r`   Útest_resampling_pvalue  s    
ÿz'TestCorrPearsonr.test_resampling_pvaluec           	      C   sf   t j d¡}|jdd�}|jdd�}tj|||d�}tj|d�}|j|d�}| ¡ }t||dd� d S )	Nrø   rù   rû   rÞ   rü   ©rõ   rÿ   r¶   )	rU   r  r  r  rP   r�   ZBootstrapMethodrÔ   r
   )	rY   rß   r  r|   rZ   r~   rõ   Zres_ciZref_cir_   r_   r`   Útest_bootstrap_ci  s    z"TestCorrPearsonr.test_bootstrap_cic                 C   sœ   d}t jt|d��( tjddgddgdd� W d   ƒ n1 s@0    Y  t ddgddg¡}t jt|d�� |jd	d� W d   ƒ n1 sŽ0    Y  d S )
Nz"`method` must be an instance of...ru   r   r   r   r    Ú
asymptoticr	  Úexact)rÈ   r   rz   rP   r�   rÔ   )rY   rò   r~   r_   r_   r`   Útest_invalid_method   s    6z$TestCorrPearsonr.test_invalid_methodN)1r‡   rˆ   r‰   Ú__doc__r’   r”   r–   r˜   rš   rœ   r�   rž   rŸ   r    r¡   r¢   r£   r¤   r¥   r¦   r§   r¨   r©   rª   r«   r³   r½   r¿   rÃ   rÌ   rÍ   rÏ   rÐ   rÒ   rÕ   rÖ   rÈ   ÚmarkÚparametrizerç   rè   rì   rï   rñ   ró   Úxslowr  r
  r  r_   r_   r_   r`   r‹   è   sd   				
	ÿ
	r‹   c                   @   sz   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zej	j
d
d„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zej	 dg d¢¡dd„ ƒZdS )ÚTestFisherExacta¢  Some tests to show that fisher_exact() works correctly.

    Note that in SciPy 0.9.0 this was not working well for large numbers due to
    inaccuracy of the hypergeom distribution (see #1218). Fixed now.

    Also note that R and SciPy have different argument formats for their
    hypergeometric distribution functions.

    R:
    > phyper(18999, 99000, 110000, 39000, lower.tail = FALSE)
    [1] 1.701815e-09
    c                 C   s²  t j}|ddgddggƒd }t|ddd� |d	d
gddggƒd }t|ddd� |d
dgdd
ggƒd }t|ddd� |ddgddggƒd }t|ddd� |ddgddggƒd }t|ddd� |ddgddggƒd }t|ddd� |ddgddggƒd }t|ddd� |ddgddggƒd }t|ddd� |ddgdd
ggƒd }t|dƒ |dd
gddggƒd }t|dƒ |d
dgdd
ggƒ}t|d ddd� t|d dƒ d S ) Né¤8  é N  é0u  é@œ  r   gØžY ¦†?r    r4   rù   r   rú   r!   g,Ôšæ§À?r#   r$   gÕ2c‘—?r"   rE   göY
íAÉ?é   é   g_Ð£†¸?rx   é   gOÖ^úMÆ?r   g˜ïÖ…a¨?r   rŽ   gƒÞgÑEÝ?g’$I’$I²?)rP   Úfisher_exactr	   )rY   r  r~   r_   r_   r`   rÃ   8  s0    

zTestFisherExact.test_basicc                 C   s  ddgddggdfddgddggdfdd	gd
d
ggdfddgddggdfddgddggdfd
dgd
d	ggdfd
dgd
dggdfddgd	dggt jdffddgd	dggdfdd	gddggt jdffdd	gddggdfg}|D ]4\}}t t  |¡¡}t jj|d	 |d	 ddd� qÚd S )Nrù   r   rú   r!   )gAnº&	Ð?g“}K
T¦À?r#   r$   )g¦›	7ûµ?gÑÉÀ ‘—?r   rE   )g!çÁç@çjô)íAÉ?r  r  )gUþ‰!a¹Õ?gÌKY£†¸?rx   r  )g7�úXÙ?g~l²tPÆ?)gFu|Ë?r  r   )rr   gQÆìN^¯?r    g†a†a¨?©rr   rŽ   g†a†a¨?r   rF   T)r@   Úverbose)rU   ÚinfrP   r  ÚasarrayÚtestingr   )rY   ZtablistÚtableZres_rr~   r_   r_   r`   Útest_preciseS  s"    õÿzTestFisherExact.test_precisec                 C   s|   ddgddgg}t  |¡}t|d dƒ ddgdd	gg}t  |¡}t|d d
ƒ ddgddgg}t  |¡}t|d dƒ d S )Nr"   é%   él   éÈ   r   gÑm¤Üt?é   r   éf   gÔÈ,‹×Áë:é^   é0   iù  i\B  gº–N¶¨šQ8©rP   r  r
   ©rY   r|   r~   r_   r_   r`   Útest_gh4130k  s    


zTestFisherExact.test_gh4130c                 C   s0   ddgddgg}t  |¡}t|d ddd� d S )NiiòX iÝV i¿çW r   r   g¯žÑ§›R£r¶   r*  r+  r_   r_   r`   Útest_gh9231�  s    
zTestFisherExact.test_gh9231c                 C   st   g d¢}t |g d¢ƒD ]0\}}t ddgd|gg¡d }t||dd� qt d	d
gddgg¡d }t|ddd� d S )N)g±Æ?‘Î=gNuP½=gËsù­=)éK   éL   éM   i(E  ið  i)  r   r    r4   iPF  i€8 r  i�_ g^KÈ=›Ñ?)ÚziprP   r  r	   )rY   Úpvalsrã   Únumr~   r_   r_   r`   Útest_large_numbersˆ  s    z"TestFisherExact.test_large_numbersc                 C   s    t ttjt d¡ dd¡ƒ d S )Nr"   r   r   )ry   rz   rP   r  rU   r   rS   ©rY   r_   r_   r`   Útest_raises“  s    ÿzTestFisherExact.test_raisesc                 C   sn   ddgddggddgddggddgddggddgddggf}|D ](}t  |¡\}}t|dƒ t|tjƒ q@d S )Nr   r!   rE   rŽ   )rP   r  r   rU   rV   )rY   Útablesr!  Z	oddsratiorã   r_   r_   r`   Útest_row_or_col_zero˜  s    ý
z$TestFisherExact.test_row_or_col_zeroc                 C   s  ddgddggddgddggddgdd	ggd
dgddggddgddggddgddggddgddggddgddggddgddggf	}ddgddgddgddgddgddgddgddgddgf	}t ||ƒD ]L\}}g }| tj|dd�d ¡ | tj|d d�d ¡ t||dd!d"� qÆd S )#Nr   r#   r$   r%  é,  é   rB   r"   i¥  é¾   i   i„  r   r   r   r    gIëü[÷’?gq}“!î÷ï?rŽ   g2½á\„ª&g’ŠQ“pô6g:O‡_»ç?gÚ×Ë añÒ?çš™™™™™¹?çffffffæ?çÍÌÌÌÌÌì?ç333333Ó?çUUUUUUå?rÁ   rÙ   rÞ   rÛ   rë   )r·   rá   )r1  ÚappendrP   r  r
   )rY   r7  r2  r!  rã   r~   r_   r_   r`   Útest_less_greater¢  s2    ôõz!TestFisherExact.test_less_greaterc                 C   s   t  ddgddgg¡\}}d S )Nr   r   r%   i¡")rP   r  )rY   Zoddsr¯   r_   r_   r`   Útest_gh3014Ä  s    zTestFisherExact.test_gh3014rß   ©r×   rÙ   rÛ   c                 C   s:   t  ddgddgg¡}tj||d�}t|j|jf|ƒ d S )Nr  r  r  r  rÞ   )rU   r   rP   r  r   r°   r¯   )rY   rß   r!  r~   r_   r_   r`   Útest_resultÉ  s    zTestFisherExact.test_resultN)r‡   rˆ   r‰   r  rÃ   r"  r,  r-  rÈ   r  Úslowr4  r6  r8  rB  rC  r  rE  r_   r_   r_   r`   r  *  s   


"r  c                   @   s   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%dFS )GÚTestCorrSpearmanrrŒ   c                 C   s"   t  dd¡}tt |¡ ¡ ƒ d S )Nç      @ç       @)rP   Ú	spearmanrr   rU   ÚisnanÚallri   r_   r_   r`   Útest_scalarÙ  s    zTestCorrSpearmanr.test_scalarc                 C   s0   t ttjg d¢ddgƒ t ttjg d¢dƒ d S )N©r   r   r   r$   r%   )ry   rz   rP   rJ  r5  r_   r_   r`   Útest_uneven_lengthsÝ  s    z%TestCorrSpearmanr.test_uneven_lengthsc                 C   sŒ   t j d¡ t j dd¡}t j dd¡}t ||¡jjdks@J ‚tj|j|jdd�j	jdks`J ‚t
ttj||dd� t
ttj|j|jƒ d S )Né„‹ r    r   r   ©r!   r!   r   r=   )rU   r  ÚseedÚrandnrP   rJ  r°   ÚshapeÚTr¯   ry   rz   rî   r_   r_   r`   Útest_uneven_2d_shapesá  s     z'TestCorrSpearmanr.test_uneven_2d_shapesc                 C   sz   t j d¡ t j ddd¡}tttj|ƒ tttj||ƒ tttj|d d ƒ ttj||d d�tj| 	¡ | 	¡ dd�ƒ d S )NrP  r    r   r   r=   r   )
rU   r  rR  rS  ry   rz   rP   rJ  r
   Úflatten©rY   r|   r_   r_   r`   Útest_ndim_too_highì  s    ÿz$TestCorrSpearmanr.test_ndim_too_highc                 C   sp   t  d¡}t j|d< tt ||¡t jt jfƒ ttj||dd�dƒ tttj||dd� tttj||dd� d S )Nrm   r%   ro   rp   )rŽ   rr   rs   rt   )rU   r   rV   r   rP   rJ  ry   rz   rX  r_   r_   r`   Útest_nan_policyö  s    

ÿz!TestCorrSpearmanr.test_nan_policyc                 C   s¸   t j d¡ t j dd¡}d}t j|d d …|f< t j||dd�}tj|dd�\}}t |¡\}}t jt j||dd�|dd�}t jt j||dd�|dd�}t||d	d
� t||d	d
� d S )Nr!   rE   r"   r   r=   ro   rp   r   ç›+¡†›„=r¶   )	rU   r  rR  ÚrandrV   ÚdeleterP   rJ  r
   )rY   r|   ÚkrZ   ZcorxZpxZcoryÚpyr_   r_   r`   Útest_nan_policy_bug_12458ÿ  s    z+TestCorrSpearmanr.test_nan_policy_bug_12458c                    sp   t j d¡ d‰ d}t j ˆ |¡‰t jˆd< t jˆd< tjˆddd�\}}‡ ‡fdd	„tˆ ƒD ƒ}t||ƒ d S )
Nr!   rE   ©r   r   )r   rK   r   Ú	propagate©r>   rq   c                    s$   g | ]‰ ‡ ‡fd d„t ˆƒD ƒ‘qS )c              	      s2   g | ]*}t  ˆ|d d …f ˆˆ d d …f ¡j‘qS ©N)rP   rJ  r°   ©Ú.0Úi)Újr|   r_   r`   Ú
<listcomp>  ó    zJTestCorrSpearmanr.test_nan_policy_bug_12411.<locals>.<listcomp>.<listcomp>©Úrange©rf  ©Úmr|   ©rh  r`   ri    s   ÿz?TestCorrSpearmanr.test_nan_policy_bug_12411.<locals>.<listcomp>)	rU   r  rR  rS  rV   rP   rJ  rl  r
   )rY   ÚnÚcorrr¯   r~   r_   rn  r`   Útest_nan_policy_bug_12411  s    

ÿz+TestCorrSpearmanr.test_nan_policy_bug_12411c                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   rJ  rQ   r	   r�   r_   r_   r`   Útest_sXX  s    zTestCorrSpearmanr.test_sXXc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   rJ  rQ   r“   r	   r�   r_   r_   r`   Ú
test_sXBIG  s    zTestCorrSpearmanr.test_sXBIGc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   rJ  rQ   r•   r	   r�   r_   r_   r`   Útest_sXLITTLE"  s    zTestCorrSpearmanr.test_sXLITTLEc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   rJ  rQ   r—   r	   r�   r_   r_   r`   Útest_sXHUGE'  s    zTestCorrSpearmanr.test_sXHUGEc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   rJ  rQ   r™   r	   r�   r_   r_   r`   Útest_sXTINY,  s    zTestCorrSpearmanr.test_sXTINYc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   rJ  rQ   r›   r	   r�   r_   r_   r`   Útest_sXROUND1  s    zTestCorrSpearmanr.test_sXROUNDc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   rJ  r“   r	   r�   r_   r_   r`   Útest_sBIGBIG6  s    zTestCorrSpearmanr.test_sBIGBIGc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   rJ  r“   r•   r	   r�   r_   r_   r`   Útest_sBIGLITTLE;  s    z!TestCorrSpearmanr.test_sBIGLITTLEc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   rJ  r“   r—   r	   r�   r_   r_   r`   Útest_sBIGHUGE@  s    zTestCorrSpearmanr.test_sBIGHUGEc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   rJ  r“   r™   r	   r�   r_   r_   r`   Útest_sBIGTINYE  s    zTestCorrSpearmanr.test_sBIGTINYc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   rJ  r“   r›   r	   r�   r_   r_   r`   Útest_sBIGROUNDJ  s    z TestCorrSpearmanr.test_sBIGROUNDc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   rJ  r•   r	   r�   r_   r_   r`   Útest_sLITTLELITTLEO  s    z$TestCorrSpearmanr.test_sLITTLELITTLEc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   rJ  r•   r—   r	   r�   r_   r_   r`   Útest_sLITTLEHUGET  s    z"TestCorrSpearmanr.test_sLITTLEHUGEc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   rJ  r•   r™   r	   r�   r_   r_   r`   Útest_sLITTLETINYY  s    z"TestCorrSpearmanr.test_sLITTLETINYc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   rJ  r•   r›   r	   r�   r_   r_   r`   Útest_sLITTLEROUND^  s    z#TestCorrSpearmanr.test_sLITTLEROUNDc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   rJ  r—   r	   r�   r_   r_   r`   Útest_sHUGEHUGEc  s    z TestCorrSpearmanr.test_sHUGEHUGEc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   rJ  r—   r™   r	   r�   r_   r_   r`   Útest_sHUGETINYh  s    z TestCorrSpearmanr.test_sHUGETINYc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   rJ  r—   r›   r	   r�   r_   r_   r`   Útest_sHUGEROUNDm  s    z!TestCorrSpearmanr.test_sHUGEROUNDc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   rJ  r™   r	   r�   r_   r_   r`   Útest_sTINYTINYr  s    z TestCorrSpearmanr.test_sTINYTINYc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   rJ  r™   r›   r	   r�   r_   r_   r`   Útest_sTINYROUNDw  s    z!TestCorrSpearmanr.test_sTINYROUNDc                 C   s"   t  tt¡}|d }t|dƒ d S r�   )rP   rJ  r›   r	   r�   r_   r_   r`   Útest_sROUNDROUND|  s    z"TestCorrSpearmanr.test_sROUNDROUNDc                 C   s,   t  tt¡}d}t||ƒ t|j|jƒ d S r¬   )rP   rJ  rQ   r   r   r®   r°   r±   r_   r_   r`   Ú test_spearmanr_result_attributes�  s    
z2TestCorrSpearmanr.test_spearmanr_result_attributesc                 C   s@   g d¢}g d¢}t  ||¡}t  t ||g¡j¡}t||ƒ d S )N©r   r   r   r    r!   r"   )r   r   r   r    r"   r!   )rP   rJ  rU   r  rU  r
   ©rY   Úx1Úx2Úres1Úres2r_   r_   r`   Útest_1d_vs_2d‡  s
    zTestCorrSpearmanr.test_1d_vs_2dc                 C   sf   dD ]\}dt jddddg}dddddt jg}tj|||d�}tjt  ||g¡j|d�}t||ƒ qd S )	N)rb  ro   r   r   r    r!   r"   r   rp   )rU   rV   rP   rJ  r  rU  r
   )rY   rq   rŒ  r�  rŽ  r�  r_   r_   r`   Útest_1d_vs_2d_nansŽ  s    z$TestCorrSpearmanr.test_1d_vs_2d_nansc                 C   s    t  d¡}| }t  g d¢¡}t  |||g¡j}t |¡}t  g d¢g d¢g d¢g¡}t jdtd�}d|d	d
d	…f< d|d
d	…d	f< t	|j
|ƒ t	|j|ƒ d S )Nr"   )r   r   r   r   r!   r    )r   rK   ç÷3£¼â+î?)rK   r   ç÷3£¼â+î¿)r’  r“  r   ©r   r   r;   g+Hs]®s?r   r   )rU   r   r   r  rU  rP   rJ  ÚzerosÚfloatr
   r°   r¯   )rY   rŒ  r�  Úx3r|   ÚactualZexpected_corrZexpected_pvaluer_   r_   r`   Ú
test_3cols—  s    


þzTestCorrSpearmanr.test_3colsc              
   C   s¾   t  t jddddddgdt jddd	ddgg d
¢g¡j}t  t jt jt jgt jt jt jgt jt jdgg¡}ttj|dd�j|ƒ tj|dd�j}t|d d |d d |d d fddd� d S )Nr´   rH  r3   çffffff@ç      @çffffff"@çffffff@g333333@çš™™™™™@)r'   rH  çffffff@çffffff@ç       @rš  çffffff@rŽ   rb  rp   ro   r   r   r   )gaÑcJÚCÊ?g%Ålnñß?g_0nYt!Þ¿râ   rà   )rU   r   rV   rU  r
   rP   rJ  r°   )rY   r|   rr  r~   r_   r_   r`   Útest_gh_9103§  s    þþÿ"ÿzTestCorrSpearmanr.test_gh_9103c           
      C   s¦   d}t j d¡ t j |¡}t j |¡dk}|dk}t  |¡}tj||dd�j}t j||< tj||dd�j}| 	t j
¡}tj||dd�j}g d¢}	t|||g|	ƒ d S )Nrù   iH” r=  r'   ro   rp   )g¬onjµë?ç)Wn%·ë?r¤  )rU   r  rR  r\  r   rP   rJ  r°   rV   ÚastypeÚint32r
   )
rY   rq  r|   ro  r»   rÂ   rŽ  r�  Úres3Úexpectedr_   r_   r`   Útest_gh_8111¶  s    

zTestCorrSpearmanr.test_gh_8111N)&r‡   rˆ   r‰   r  rM  rO  rV  rY  rZ  r`  rs  rt  ru  rv  rw  rx  ry  rz  r{  r|  r}  r~  r  r€  r�  r‚  rƒ  r„  r…  r†  r‡  rˆ  r‰  r�  r‘  r™  r£  r©  r_   r_   r_   r`   rG  Ð  sF   
		rG  c                   @   sž   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ej d d!¡d"d#„ ƒZd$S )%ÚTestCorrSpearmanr2z-Some further tests of the spearmanr function.c                 C   sH   g d¢}g d¢}d}t  ||¡}t|d |d ƒ t|d |d ƒ d S )N©r   r   r   r    r!   ©r!   r"   r#   r$   r#   ©g™hÜ
ÚCê?g€¬R£­¶?r   r   )rP   rJ  r	   ©rY   rŒ  r�  r¨  r~   r_   r_   r`   Útest_spearmanr_vs_rÑ  s    z&TestCorrSpearmanr2.test_spearmanr_vs_rc                 C   s   t t g g ¡tjtjfƒ d S rd  )r   rP   rJ  rU   rV   r5  r_   r_   r`   Útest_empty_arraysÛ  s    z$TestCorrSpearmanr2.test_empty_arraysc                 C   sš   t j d¡ t  t jjdddd�t jjdddd�g¡}ddgddgg}t  t j |¡|¡}d}t 	|d |d ¡}t
|d |d ƒ t
|d |d ƒ d S )	Néz  r   éô  ©ÚlocÚscaler…   rŽ   r?  )g‚CzYšWÒ?geÞü™*Ò=r   )rU   r  rR  r   r  ÚdotÚlinalgÚcholeskyrP   rJ  r	   )rY   r|   rr  r¨  r~   r_   r_   r`   Útest_normal_drawsÞ  s    ÿÿz$TestCorrSpearmanr2.test_normal_drawsc                 C   s"   t t g d¢g d¢¡d dƒ d S )N©r   r   r   r   rŽ   )r	   rP   rJ  r5  r_   r_   r`   Útest_corr_1ê  s    zTestCorrSpearmanr2.test_corr_1c                 C   sp   t  d¡}t j|d< tt ||¡t jt jfƒ ttj||dd�dƒ tttj||dd� tttj||dd� d S )Nrm   r%   ro   rp   )rŽ   r   rs   rt   )	rU   r   rV   r   rP   rJ  r
   ry   rz   rX  r_   r_   r`   Útest_nan_policiesí  s    

ÿz$TestCorrSpearmanr2.test_nan_policiesc                 C   s(   t  d¡}t  d¡}tttj||ƒ d S )Nrm   ç      4@)rU   r   ry   rz   rP   rJ  rî   r_   r_   r`   rï   ö  s    

z'TestCorrSpearmanr2.test_unequal_lengthsc                 C   sT   g d¢}dddt jg}tj||dd�}tj|d d… |d d… dd�}t||ƒ d S )NrÝ   r$   r#   r"   ro   rp   r   )rU   rV   rP   rJ  r   r‹  r_   r_   r`   Útest_omit_paired_valueû  s
     z)TestCorrSpearmanr2.test_omit_paired_valuec                 C   sš   t tdƒƒ}t tdƒƒ}|d |d  |d< |d< |d |d  |d< |d< |d |d  |d< |d< | tj¡ | d¡ ttj||d	d
�d dƒ d S )NéÐ  r%   r   i²  rE   iå  i³  r´   ro   rp   gV-²�ïï?)Úlistrl  rA  rU   rV   r   rP   rJ  rî   r_   r_   r`   Ú#test_gh_issue_6061_windows_overflow  s    
z6TestCorrSpearmanr2.test_gh_issue_6061_windows_overflowc                 C   sÈ   d}t jtj|d��  t g d¢g d¢¡\}}t|tjƒ t|tjƒ t g d¢g d¢¡\}}t|tjƒ t|tjƒ t g d¢g d¢¡\}}t|tjƒ t|tjƒ W d   ƒ n1 sº0    Y  d S )NrÄ   ru   ©r   r   r   ©r   r   r   )rÈ   rÉ   rP   rÊ   rJ  r   rU   rV   )rY   Úwarn_msgr‘   rË   r_   r_   r`   Ú	test_tie0  s    zTestCorrSpearmanr2.test_tie0c                 C   sF   g d¢}g d¢}g d¢}g d¢}t  ||¡}t  ||¡}t||ƒ d S )N©rŽ   rI  r´   rH  )rŽ   rI  rI  r´   )rŽ   r)   r)   rH  )rP   rJ  r�   r   )rY   r|   rZ   ZxrÚyrÚsrÚprr_   r_   r`   Ú	test_tie1  s    zTestCorrSpearmanr2.test_tie1c                 C   sZ   g d¢}g d¢}ddddt jg}ddddt jg}t ||¡}tj||dd	�}t||ƒ d S )
N)r   r   r)   r   )r   r   r)   r    r   r   r)   r   r    ro   rp   )rU   rV   rP   rJ  r   )rY   rŒ  r[   r�  r\   Zsr1Zsr2r_   r_   r`   Ú	test_tie2*  s    zTestCorrSpearmanr2.test_tie2c                 C   sø   t  g d¢g d¢g¡}t  g d¢g d¢g¡}t  g d¢g d¢g¡}d}tjtj|d��Ž tj|dd�\}}t|t jƒ t|t jƒ tj|dd�\}}t|t jƒ t|t jƒ tj|dd�\}}t|t jƒ t|t jƒ W d   ƒ n1 sê0    Y  d S )N©r   r   r   r   rÝ   rÄ   ru   r   r=   ©	rU   r   rÈ   rÉ   rP   rÊ   rJ  r   rV   )rY   Úz1Zz2Zz3rÄ  r‘   rË   r_   r_   r`   Útest_ties_axis_18  s    z#TestCorrSpearmanr2.test_ties_axis_1c                 C   s|   t  g d¢¡}t  g d¢¡}d}tjtj|d��8 t ||¡\}}t|t jƒ t|t jƒ W d   ƒ n1 sn0    Y  d S )N)
rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   ©
r   g‘NÂ}	„?r   r   g	™ï–Ï/`?gY%uX-±H?gC1štºq1?r   r   gˆ¥*­I?rÄ   ru   rÍ  )rY   r|   rZ   rÄ  r‘   rË   r_   r_   r`   Útest_gh_11111H  s    z TestCorrSpearmanr2.test_gh_11111c                 C   s4   t  g d¢¡}t  g d¢¡}tttj||dd� d S )N)
rŽ   ç      @rI  rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rÐ  r   r=   )rU   r   ry   rz   rP   rJ  rî   r_   r_   r`   Útest_index_errorS  s    z#TestCorrSpearmanr2.test_index_errorc                 C   sÊ   g d¢}g d¢}d}t j||dd�}t|d |d ƒ t|d d|d d  ƒ t j||d	d�}t|d |d ƒ t|d |d d ƒ tjtd
d��  t j||dd� W d   ƒ n1 s¼0    Y  d S )Nr«  r¬  r­  rÙ   rÞ   r   r   r   rÛ   ú`alternative` must be 'less'...ru   ú	ekki-ekki)rP   rJ  r	   rÈ   r   rz   r®  r_   r_   r`   Útest_alternativeZ  s    z#TestCorrSpearmanr2.test_alternativerß   rD  c           	      C   sú   g d¢}g d¢}|t jg }|t jg }tt ||¡t jt jfƒ tj||d|d�}tj|||d�}t||ƒ d}tjt|d��" tj||d|d� W d   ƒ n1 s¨0    Y  d	}tjt|d��" tj||d
|d� W d   ƒ n1 sì0    Y  d S )Nr«  r¬  ro   ©rq   rß   rÞ   úThe input contains nan valuesru   rs   únan_policy must be one of...rÕ  )	rU   rV   r   rP   rJ  r
   rÈ   r   rz   )	rY   rß   rŒ  r�  Úx1nanÚx2nanÚ
res_actualÚres_expectedrò   r_   r_   r`   Útest_alternative_nan_policyq  s(    
ÿ

ÿ$
ÿz.TestCorrSpearmanr2.test_alternative_nan_policyN)r‡   rˆ   r‰   r  r¯  r°  r¹  r»  r¼  rï   r¾  rÁ  rÅ  rÊ  rË  rÏ  rÑ  rÓ  rÖ  rÈ   r  r  rÞ  r_   r_   r_   r`   rª  Î  s$   
	rª  c                  C   sl  d} g d¢}g d¢}d}| D ]4}t  ||¡}t|d |d ƒ t|d |d ƒ qg d¢}g d¢}d}| D ]4}t  ||¡}t|d |d ƒ t|d |d ƒ qjg d	¢}g d
¢}d}| D ]4}t  ||¡}t|d |d ƒ t|d |d ƒ q¸g d¢}g d¢}d}| D ]6}t  ||¡}t|d |d ƒ t|d |d ƒ �qt d¡}t d¡}d}| D ]:}t j|||d�}t|d |d ƒ t|d |d ƒ �qZ|d }|d |d< ||d< d}| D ]:}t j|||d�}t|d |d ƒ t|d |d ƒ �qº|d }|d |d< ||d< d}| D ]:}t j|||d�}t|d |d ƒ t|d |d ƒ �qt d¡}t d¡d d d… }d}| D ]:}t j|||d�}t|d |d ƒ t|d |d ƒ �q||d }|d |d< ||d< d}| D ]:}t j|||d�}t|d |d ƒ t|d |d ƒ �qÜ|d }|d |d< ||d< d}| D ]:}t j|||d�}t|d |d ƒ t|d |d ƒ �q<tg d¢ƒ}tg d¢ƒ}d}tt j||dd�d |ƒ d}tt j||d d�d |ƒ |d |d< ttt j||d!d"� ttt j||d#d"� ttt j||d$d� g d%¢}g d&¢}d'}t  ||¡}t|d |d ƒ t|d |d ƒ d(}	| D ].}t j|||d�}t||	ƒ t	|j
|jƒ �q`| D ]x}t	t jg d)¢g d)¢|d�tjtjfƒ t	t jg d*¢g d)¢|d�tjtjfƒ t	t jg d)¢g d*¢|d�tjtjfƒ �q”t	t  g g ¡tjtjfƒ tj d+¡ t tjjddd,d-�tjjddd,d-�g¡}d.d/gd/d.gg}
t tj |
¡|¡}d0}t  |d |d ¡}t|d |d ƒ t|d |d ƒ tt jg d1¢g d1¢dd�d d.ƒ tt jg d1¢g d1¢d d�d d2ƒ t d3¡}tj|d4< tt  ||¡tjtjfƒ tt j||d5d6�d7d8d9� tt j||d5d:d;�d<d8d9� ttt j||d=d6� ttt j||d>d6� t d3¡}t d?¡}ttt j||ƒ t  g g ¡\}}t	tj|ƒ t	tj|ƒ t  dgdg¡\}}t	tj|ƒ t	tj|ƒ tjd@tdA�}tj |dB¡}tjd@tdA�}t |dCd … |d dC… f¡}tt t  ||¡d ¡ƒ d S )DN)rÂ   Úc)r!   r   r   r   r"   r    r#   r$   )r!   r   r"   r   r   r$   r#   r    r  r   r   )	r   r!   r   r   r   r"   r    r#   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®¶J’$IÂ¿gm¹”K¹è?)r   r   r   r"   r    r#   r$   )r   r"   r   r   r$   r#   r    )gJka†a¨?rŽ   rE   )rŽ   ç´žx·O~¢>)Úvariantr   )g?é“>é“î?çaÆV¥ã×>r!   r"   )g}Ò'}Ò'í?ço‡›…&5ÿ>rK   )r¾   rà  )g?é“>é“î¿râ  )g}Ò'}Ò'í¿rã  )
r   r   r   r    r    r"   r"   r$   r%   r%   )
r   r   r    r    r    r    r$   r$   r$   rE   gok¨¤�|ë?rÂ   gffffffê?rß  r  r	  ÚbananaZrms©rG   r   r   rG   r   ©r   r    r#   r   r   )çgúþÝ}+Þ¿g`=ài€Ò?r­   rÂ  rÃ  r±  r²  r³  rŽ   r?  )gå\zf±È?gÔ^nŠÅ)ß=rº  g#¬Çqì?rm   r%   ro   rp   )rŽ   g®È/¢ã×>râ   rà   r  )rq   rõ   )rŽ   g�Îóèíà&?rs   rt   r½  r¿  r;   iË  rú   )rP   Ú
kendalltaur	   rU   r   r   ry   rz   r   r   r®   r°   rV   r  rR  r  r¶  r·  r¸  r   r
   r–  ÚmaZmasked_greaterÚconcatenater   Úisfinite)Úvariantsr|   rZ   r¨  Ztauxr~   rÂ   rŒ  r�  r²   rr  ÚtauÚp_valuer_   r_   r`   Útest_kendalltau™  s,   




ÿ
ÿ
ÿÿÿÿÿ

ÿÿ

rï  c                  C   sœ   t j d¡ tddƒD ]€} g }t| ƒD ]}||g| 7 }q&t|ƒ}t j |¡ t j |¡ t ||¡}t ||¡}t	|d |d ƒ t	|d |d ƒ qd S )Né*   r   rE   r   r   )
rU   r  rR  rl  rÀ  ÚshuffleÚmstats_basicrè  rP   r	   )Úsr»   rg  rÂ   r¨  r˜  r_   r_   r`   Útest_kendalltau_vs_mstats_basics  s    rô  c                  C   sX   g d¢} t jdddg}tj| |dd�}t | dd … |dd … ¡}t|j|jdd� d S )	NrÆ  ç333333@ç333333@ro   rp   r   rµ   r¶   )rU   rV   rP   rè  r
   r°   )r|   rZ   Úr1Úr2r_   r_   r`   Útest_kendalltau_nan_2nd_argƒ  s
    rù  c                  C   s„   d} t j| d��  tjg g dd� W d   ƒ n1 s60    Y  t jd| › �d�� t g g d¡ W d   ƒ n1 sv0    Y  d S )Nz"keyword argument 'initial_lexsort'ru   T)Zinitial_lexsortzuse keyword arguments|)rÈ   Zdeprecated_callrP   rè  )Zmsg_depr_   r_   r`   Útest_kendalltau_deprecations�  s
    .rú  c                  C   sf   dd l } |  d¡ g d¢}d}| j||d�}| j||d�}t ||¡}t|jdƒ t|jddd	� d S )
Nr   i¡´_ ©r   r   r   r    r!   r"   r#   i@ ©r^  g*í8_2\S?gÃdª`TRß?gü©ñÒMb`?r¶   )r  rR  ÚchoicesrP   rè  r
   r°   r¯   )r  ÚclassesZ	n_samplesr|   rZ   r~   r_   r_   r`   Ú test_kendalltau_gh18139_overflow•  s    
rÿ  c                   @   sH  e Zd Zdd„ ZdZejejejgZg d¢Zg d¢Z	g d¢Z
g d¢Zg d¢Zg d	¢Zg d
¢Zg d¢Zdd„ Zeeeedgd ƒƒeeeeeƒdgd ƒƒ Zej de¡dd„ ƒZeeeedgd ƒƒeeeeeƒdgd ƒƒ Zej de¡dd„ ƒZeeee	dgd ƒƒeeeee	ƒdgd ƒƒ Zej de¡dd„ ƒZeeee
dgd ƒƒeeeee
ƒdgd ƒƒ Zej de¡dd„ ƒZeeeedgd ƒƒeeeeeƒdgd ƒƒ Zej de¡dd„ ƒZ eeeedgd ƒƒeeeeeƒdgd ƒƒ Z!ej de!¡dd„ ƒZ"eeeedgd ƒƒeeeeeƒdgd ƒƒ Z#ej de#¡dd„ ƒZ$eeeedgd ƒƒeeeeeƒdgd ƒƒ Z%ej de%¡d d!„ ƒZ&eeeedgd ƒƒeeeeeƒdgd ƒƒ Z'ej de'¡d"d#„ ƒZ(eeedgd ƒƒeeedgd ƒƒ Z)ej d$e)¡d%d&„ ƒZ*ej d'd(¡ej d)d*¡d+d,„ ƒƒZ+d-S ).ÚTestKendallTauAlternativec                 C   s„  g d¢}g d¢}t j||dd�}|d dks0J ‚t j||dd�}t|d |d ƒ t|d d|d d  ƒ t j||d	d�}t|d |d ƒ t|d |d d ƒ | ¡  t j||dd�}|d dk sÌJ ‚t j||d	d�}t|d |d ƒ t|d d|d d  ƒ t j||dd�}t|d |d ƒ t|d |d d ƒ tjtd
d��  t j||dd� W d   ƒ n1 �sv0    Y  d S )Nr«  r¬  r×   rÞ   r   rÙ   r   r   rÛ   rÔ  ru   rÕ  )rP   rè  r   r
   ÚreverserÈ   r   rz   r®  r_   r_   r`   Ú&test_kendalltau_alternative_asymptotic¨  s*    z@TestKendallTauAlternative.test_kendalltau_alternative_asymptotic)rÙ   r×   rÛ   )r   r   r'   )r   çýRUUUUÕ?çZUUUUÅ?)g~©ªªªªî?r  r  )çðîîîîâ?r   r  )çË®[°…á?r   r  )g­¢¯ÝÌî?gýSÇŒ“¾?gýSÇŒ“®?)g¼:Ÿ
±„Ï?g²3Ÿ
±„ß?g§<t‡'.è?)gN  Aƒï?g‰ÌÉssŸ?gY”ÌÉss�?c           	      C   s@   |rt  |¡ }|d9 }tj||d|d�}||f}t||ƒ d S )NrK   r  ©rõ   rß   )rU   r  rP   rè  r
   )	rY   r|   rZ   rß   ÚrevÚstat_expectedÚ
p_expectedr~   rÝ  r_   r_   r`   Ú
exact_testç  s    z$TestKendallTauAlternative.exact_testFr   Tzalternative, p_expected, revc                 C   s,   dgdg }}t j}|  ||||||¡ d S rð   )rU   rV   r  ©rY   rß   r
  r  r|   rZ   r	  r_   r_   r`   Útest_against_R_n1ò  s    z+TestKendallTauAlternative.test_against_R_n1c                 C   s.   ddgddg }}d}|   ||||||¡ d S )Nr   r   r   r    gþÿÿÿÿÿï?©r  r  r_   r_   r`   Útest_against_R_n2û  s    z+TestKendallTauAlternative.test_against_R_n2c                 C   s.   g d¢g d¢ }}d}|   ||||||¡ d S )Nré   r   r  r  r_   r_   r`   Útest_against_R_c0  s    z+TestKendallTauAlternative.test_against_R_c0c                 C   s.   g d¢g d¢ }}d}|   ||||||¡ d S )NrÝ   )r   r   r    r   gVUUUUUå?r  r  r_   r_   r`   Útest_against_R_c1  s    z+TestKendallTauAlternative.test_against_R_c1c                 C   s.   g d¢g d¢ }}d}|   ||||||¡ d S )Nr«  )r   r!   r    r   r   r   r  r  r_   r_   r`   Útest_against_R_no_correlation  s    z7TestKendallTauAlternative.test_against_R_no_correlationc                 C   s.   g d¢g 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`   Útest_against_R_no_correlationb!  s    z8TestKendallTauAlternative.test_against_R_no_correlationbc                 C   s,   g d¢}g d¢}d}|   ||||||¡ d S )N)	g333333F@g33333óF@g33333óD@gfffff¦J@gš™™™™YF@gÍÌÌÌÌF@gš™™™™YI@gš™™™™™F@gÍÌÌÌÌN@)	gÍÌÌÌÌÌ@çÍÌÌÌÌÌ@r)   r3   çÍÌÌÌÌÌ@rH  gÍÌÌÌÌÌ@çffffff@r   gÇqÇqÜ?r  r  r_   r_   r`   Útest_against_R_lt_171*  s    z/TestKendallTauAlternative.test_against_R_lt_171c                 C   s@   t j d¡ t j d¡}t j d¡}d}|  ||||||¡ d S )Nr   rù   gUm�*,ÿ§¿©rU   r  rR  r\  r  r  r_   r_   r`   Útest_against_R_lt_171b7  s
    z0TestKendallTauAlternative.test_against_R_lt_171bc                 C   s@   t j d¡ t j d¡}t j d¡}d}|  ||||||¡ d S )Nr   éª   gƒHÌÍ4‘¼?r  r  r_   r_   r`   Útest_against_R_lt_171cC  s
    z0TestKendallTauAlternative.test_against_R_lt_171czalternative, revc                 C   st   t j d¡ t j d¡}t j d¡}tj||d|d�}tj||d|d�}t|d |d ƒ t|d |d dd� d S )	Nr   i�  r  r  r  r   r   rà   )rU   r  rR  r\  rP   rè  r   r
   )rY   rß   r  r|   rZ   Úres0rŽ  r_   r_   r`   Útest_gt_171N  s    
ÿ
ÿz%TestKendallTauAlternative.test_gt_171rõ   )r  r  rß   rD  c           
      C   s  g d¢}g d¢}|t jg }|t jg }tj||||d�}t jt jf}t||ƒ tj||d||d�}tj||||d�}t||ƒ d}	tjt|	d��$ tj||d||d� W d   ƒ n1 s¼0    Y  d	}	tjt|	d��$ tj||d
||d� W d   ƒ n1 �s0    Y  d S )Nr«  ©r!   r"   r#   r$   r%   r  ro   )rq   rõ   rß   rØ  ru   rs   rÙ  rÕ  )rU   rV   rP   rè  r
   rÈ   r   rz   )
rY   rõ   rß   rŒ  r�  rÚ  rÛ  rÜ  rÝ  rò   r_   r_   r`   rZ  Z  s4    ÿ

ÿ
ÿ

ÿ$
ÿz)TestKendallTauAlternative.test_nan_policyN),r‡   rˆ   r‰   r  ÚalternativesrU   rV   Zp_n1Zp_n2Zp_c0Zp_c1Zp_no_correlationZp_no_correlationbZ
p_n_lt_171Zp_n_lt_171bZp_n_lt_171cr  rÀ  r1  ÚreversedZ	case_R_n1rÈ   r  r  r  Z	case_R_n2r  Z	case_R_c0r  Z	case_R_c1r  Zcase_R_no_corrr  Zcase_no_cor_br  Zcase_R_lt_171r  Zcase_R_lt_171br  Zcase_R_lt_171cr  Zcase_gt_171r  rZ  r_   r_   r_   r`   r   §  s’   4ÿ
ÿ
ÿ
ÿ
ÿÿ
ÿÿ
ÿ
ÿÿ
ÿÿ
ÿ
r   c                  C   s2  g d¢} g d¢}t  | |¡\}}t|dƒ ttj|ƒ t j| |dd�\}}t|dƒ ttj|ƒ t j| |dd„ d	�\}}t|d
ƒ ttj|ƒ t  | |¡}d}t||ƒ t|j|jƒ t j| |d d�\}}t|dƒ ttj|ƒ t j|| d d�\}}t|dƒ ttj|ƒ t j| |d dd�\}}t|dƒ ttj|ƒ t j|| d dd�\}}t|dƒ ttj|ƒ t j| |dd�\}}t|dƒ ttj|ƒ t j| |ddd„ d�\}}t|d
ƒ ttj|ƒ t j|| ddd„ d�\}}t|d
ƒ ttj|ƒ t  tj	| tj
d�|¡\}}t|dƒ t  tj	| tjd�|¡\}}t|dƒ t  tj	| tj
d�tj	|tj
d�¡\}}t|dƒ t  g g ¡\}}ttj|ƒ ttj|ƒ t  dgdg¡\}}ttj|ƒ ttj|ƒ ttt jddgg d¢ƒ ttt jddgddgdgƒ g d¢} ddddtjg}t  | |¡\}}t|dƒ ddtjddg} t  | |¡\}}t|dƒ g d¢} d d!d"d tjg}t  | |¡\}}t|dƒ d#d$tjd#d$g} t  | |¡\}}t|dƒ g d%¢} g d&¢}t  | |¡\}}t|d'ƒ d#d$tjd#tjg} t  | |¡\}}t|d'ƒ tjd!d"tjtjg}t  | |¡\}}t|d'ƒ d S )(Nrå  ræ  g‰´•¨s$â¿F)ÚadditivegROêoäçã¿c                 S   s   dS ©Nr   r_   ©r|   r_   r_   r`   Ú<lambda>‡  rj  z"test_weightedtau.<locals>.<lambda>)Úweigherrç  r­   )Úrankg�‡Äå›Ú¿gÒççnôúæ¿)r'  r"  g‡ œ@Ú¿g[Ä‘(Îê¿gIŸÚ©nƒà¿Tc                 S   s   dS r#  r_   r$  r_   r_   r`   r%  ¢  rj  )r'  r&  c                 S   s   dS r#  r_   r$  r_   r_   r`   r%  ¥  rj  r;   r   r   ©r   r   r   r    r#   rG   r   )ç      (@rI  rŽ   r)  rI  rŽ   rH  rÒ  r)  rI  )r)  rI  rŽ   r)  rŽ   )rŽ   rH  rÒ  rŽ   rŽ   g„t3ß4+å¿)rP   Úweightedtaur	   r   rU   rV   r   r®   r°   r  r   Úint16ry   rz   )r|   rZ   rí  rî  r~   r²   r_   r_   r`   Útest_weightedtau}  s˜    












ÿ






r,  c                   C   s6   t  dgdg¡ t  dgdg¡ t  tjgdg¡ d S )Nr   rŽ   é4   )rP   r*  rU   rV   r_   r_   r_   r`   Útest_segfault_issue_9710×  s    r.  c                  C   sZ   d} t  | d ¡ t¡}t  | d ¡ t¡}t j|d< tj||ddd�\}}t|dƒ d S )Né¬   r   rK   r  ro   )rõ   rq   rr   )rU   r   r¥  r–  rV   rP   rè  r   )rq  r|   rZ   Ú_rã   r_   r_   r`   Útest_kendall_tau_largeá  s    
r1  c               
   C   sÖ   dd„ } dd„ }t j d¡ tddƒD ]ª}g }t|ƒD ]}||g| 7 }q6t|ƒ}t j |¡ t j |¡ t jt|ƒt jd�}td	ƒD ]H}d
D ]2}| |||||ƒ}	t	 
|||||¡j}
t|	|
ƒ qŽt j |¡ q†q&d S )Nc                 S   s`  d } } } }}	t tt| ƒƒtt| ƒƒƒD �]
\}
}|rT|||
 ƒ||| ƒ n|||
 ƒ||| ƒ }||7 }| |
 | | krŒ||7 }||
 || kr¤|	|7 }	| |
 | | k rÄ||
 || k sä| |
 | | krî||
 || krî||7 }q.| |
 | | k �r||
 || k�s2| |
 | | kr.||
 || k r.||7 }q.|| t || ¡ t ||	 ¡ S ©Nr   )r   rl  ÚlenrU   r„   )r|   rZ   r'  r&  ÚaddZtotZconcZdiscÚuÚvrg  rh  Úwr_   r_   r`   Úwkqí  s    $ÿ@
D
z*test_weightedtau_vs_quadratic.<locals>.wkqc                 S   s   d| d  S )NrŽ   r   r_   r$  r_   r_   r`   r&  ý  s    z.test_weightedtau_vs_quadratic.<locals>.weigherrð  r   rE   r;   r   rI   )rU   r  rR  rl  rÀ  rñ  r   r3  ZintprP   r*  r°   r	   )r8  r&  ró  r»   rg  rÂ   r'  r0  r4  r¨  r˜  r_   r_   r`   Útest_weightedtau_vs_quadraticë  s"    r9  c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestFindRepeatsc                 C   s6   g d¢}t  |¡\}}t|g d¢ƒ t|g d¢ƒ d S )N)r   r   r   r    r   r   r   r    r   r   r!   rÝ   )r   r   r   r   ©rP   Zfind_repeatsr   )rY   r»   r~   Znumsr_   r_   r`   rÃ     s    zTestFindRepeats.test_basicc                 C   s8   g d¢g fD ]&}t  |¡\}}t|g ƒ t|g ƒ qd S )N)rE   r  é2   é   é(   r;  )rY   r»   ZrepeatedÚcountsr_   r_   r`   Útest_empty_result  s    
z!TestFindRepeats.test_empty_resultN)r‡   rˆ   r‰   rÃ   r@  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	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'S )(ÚTestRegressionc                 C   s@   t  tt¡}t|jdƒ t|jdƒ t|jdƒ t|jdƒ d S )NiöàõrŽ   rr   )	rP   Ú
linregressrQ   r“   r   Ú	interceptÚrvalueÚstderrÚintercept_stderr©rY   rå   r_   r_   r`   Útest_linregressBIGX&  s
    z"TestRegression.test_linregressBIGXc                 C   s@   t  tt¡}t|jdƒ t|jdƒ t|jdƒ t|jdƒ d S )Nrr   rŽ   )rP   rB  rQ   r   rC  rD  rE  rF  rG  r_   r_   r`   Útest_regressXX0  s
    zTestRegression.test_regressXXc                 C   s(   t  tt¡}t|jdƒ t|jdƒ d S )Nrr   )rP   rB  rQ   ÚZEROr   rC  rD  rG  r_   r_   r`   Útest_regressZEROXE  s    z TestRegression.test_regressZEROXc                 C   sn   t  ddd¡}dt  ddd¡ d }|t  t  ddd¡¡7 }t ||¡}tjj}tt||ƒƒ t	|j
dƒ d S )Nr   rù   çš™™™™™É?rE   r  ç©·4_Q c?)rU   ÚlinspaceÚsinrP   rB  Ú_stats_mstats_commonÚLinregressResultr   Ú
isinstancer   rE  )rY   r|   rZ   rå   Úlrr_   r_   r`   Útest_regress_simpleN  s    z"TestRegression.test_regress_simplec                 C   sö   t  ddd¡}dt  ddd¡ d }|t  t  ddd¡¡7 }tjtdd��  tj||dd	� W d   ƒ n1 sp0    Y  tj||d
d	�}tj||dd	�}t|j	d|j	d  ƒ tj||dd	�}t|j	|j	d ƒ |j
|j
  krì|j
ksòn J ‚d S )Nr   rù   rL  rE   r  zalternative must be 'less'...ru   rÕ  rÞ   r×   rÙ   r   r   rÛ   )rU   rN  rO  rÈ   r   rz   rP   rB  r
   r¯   rD  )rY   r|   rZ   rŽ  r�  r§  r_   r_   r`   Útest_regress_alternativeY  s    .z'TestRegression.test_regress_alternativec                 C   sr   g d¢}g d¢}t j||dd�}t|jdƒ t|jdƒ t|jt d¡ƒ t|jdƒ t|j	d	ƒ t|j
d
ƒ d S )N)
é—   é®   éŠ   éº   é€   éˆ   é³   é£   é˜   éƒ   )
r:   éQ   é8   é[   é/   é9   r/  éH   é>   r)  r×   rÞ   gØ—§h–å?gŸJK@:CÀgag€“�î?gé¸-‰³>g5Õ’O“ª?g]ØŠE @)rP   rB  r
   ÚsloperC  rD  rU   r„   r¯   rE  rF  ©rY   r|   rZ   r~   r_   r_   r`   Útest_regress_against_Rn  s    z%TestRegression.test_regress_against_Rc                 C   sp   t  ddd¡}dt  ddd¡ d }|t  t  ddd¡¡7 }t  ||f¡}t |¡}t|jdƒ t|jdƒ d S )Nr   rù   rL  rE   r  rM  ç8Äèê¿Á?)	rU   rN  rO  ÚvstackrP   rB  r   rE  rF  )rY   r|   rZ   Úrowsrå   r_   r_   r`   Útest_regress_simple_onearg_rows�  s    
z.TestRegression.test_regress_simple_onearg_rowsc                 C   s€   t  ddd¡}dt  ddd¡ d }|t  t  ddd¡¡7 }t  t  |d¡t  |d¡f¡}t |¡}t|jdƒ t|j	dƒ d S )	Nr   rù   rL  rE   r  r   rM  rj  )
rU   rN  rO  ÚhstackÚexpand_dimsrP   rB  r   rE  rF  )rY   r|   rZ   Úcolumnsrå   r_   r_   r`   Útest_regress_simple_onearg_cols�  s    
z.TestRegression.test_regress_simple_onearg_colsc                 C   s   t ttjt d¡ƒ d S )Nr”  )ry   rz   rP   rB  rU   Úonesr5  r_   r_   r`   Útest_regress_shape_error—  s    z'TestRegression.test_regress_shape_errorc                 C   sž   t  d¡}t  dd¡}|ddg  d8  < |ddg  d7  < t ||¡}dd	„ }||jd
ƒ ||jdƒ ||jdƒ ||jdƒ ||jdƒ ||j	dƒ d S )NrF   r!   rx   r   éþÿÿÿr   rK   c                 S   s   t | |dd�S )NrC   r?   )r   ©r|   rZ   r_   r_   r`   Ú	assert_ae©  s    z1TestRegression.test_linregress.<locals>.assert_aerŽ   r3   gePUÿnï?g.«¶bt>g¢©•Ú½E°?gÊºL7Ø?)
rU   r   rP   rB  rg  rC  rD  r¯   rE  rF  )rY   r|   rZ   rå   rv  r_   r_   r`   Útest_linregressœ  s    
zTestRegression.test_linregressc                 C   sz   d\}}t  |d| |¡}t  d| ||¡}t ||¡}t|jdkƒ t|jdƒ tt  |j¡ ƒ tt  |j	¡ ƒ d S )N)gJ‘rä «11é † r   rK   )
rU   rN  rP   rB  r   rD  r   rK  rE  rF  )rY   r»   rq  r|   rZ   rå   r_   r_   r`   Ú test_regress_simple_negative_cor²  s    z/TestRegression.test_regress_simple_negative_corc                 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t
|ƒv s|J ‚d S )Nr   rù   rL  rE   r  )rg  rC  rD  r¯   rE  rF  )rU   rN  rO  rP   rB  rP  rQ  r   rR  r   Údir)rY   r|   rZ   rå   rS  r²   r_   r_   r`   Ú!test_linregress_result_attributesÄ  s    
z0TestRegression.test_linregress_result_attributesc                 C   sJ   t  d¡}t  dd¡}t ||¡}t|jdƒ t|jdƒ t|jdƒ d S )Nr   r   r!   rr   )rU   r   rP   rB  r   r¯   rE  rF  ©rY   r|   rZ   rå   r_   r_   r`   Útest_regress_two_inputsÔ  s    
z&TestRegression.test_regress_two_inputsc                 C   sH   t  d¡}t  d¡}t ||¡}t|jdƒ t|jdƒ t|jdƒ d S )Nr   rŽ   rr   )	rU   r   rr  rP   rB  r   r¯   rE  rF  r|  r_   r_   r`   Ú'test_regress_two_inputs_horizontal_lineá  s    

z6TestRegression.test_regress_two_inputs_horizontal_linec                 C   sl   g d¢}g d¢}t  ||¡}t|jdƒ t|jdƒ t|jd dƒ t|jdƒ t|jdƒ t|jd	ƒ d S )
N)$rL  gfffffu@gÍÌÌÌÌŒ]@gÍÌÌÌÌ¤‹@ç333333$@g     Pl@gfffffÒ„@gfffff"�@gš™™™™	|@g     Hˆ@gš™™™™q�@çš™™™™™Ù?ç333333ã?g     <ˆ@g33333×„@g      u@g     ø{@g333333'@g     `�@ç33333ƒl@gfffff�@gÍÌÌÌÌ¼‹@gÍÌÌÌÌ^@r?  r?  gffffff�@gš™™™™1u@gš™™™™¹‹@g     8�@g     Xˆ@g333333&@g33333“]@gfffff¦l@gÍÌÌÌÌè„@çfffff|@r'   )$r<  gÍÌÌÌÌ,u@gfffff†]@ç     À‹@rœ  r‚  g     ä„@ç     4�@gš™™™™|@ç33333Wˆ@gš™™™™y�@r?  r<  gÍÌÌÌÌPˆ@gfffffæ„@çÍÌÌÌÌ4u@rƒ  gš™™™™™%@gš™™™™m�@gš™™™™‰l@g     0�@gfffffÆ‹@gfffffæ]@r?  r�  gÍÌÌÌÌl�@r‡  r„  r…  r†  gffffff$@gffffff]@gÍÌÌÌÌœl@g33333ã„@g33333|@rL  gîµ¥«ð?g!¶·æÉÐ¿r   gpÍXâòÿï?rr   gŠh-hË*<?g›gçüÌÍ?)	rP   rB  r   rg  rC  rD  r¯   rE  rF  r|  r_   r_   r`   Útest_nist_norrisî  s    zTestRegression.test_nist_norrisc                 C   sz   t  ddd¡}dt  ddd¡ d }|t  t  ddd¡¡7 }t ||¡}t  ||d¡}t|j|d ƒ t|j|d ƒ d S )Nr   rù   rL  rE   r  r   )	rU   rN  rO  rP   rB  Zpolyfitr   rg  rC  )rY   r|   rZ   rå   Zpolyr_   r_   r`   Útest_compare_to_polyfit  s    z&TestRegression.test_compare_to_polyfitc                 C   s   t ttjg g ƒ d S rd  )ry   rz   rP   rB  r5  r_   r_   r`   Útest_empty_input  s    zTestRegression.test_empty_inputc                 C   s†   t  d¡}t j|d< t jdd�� t ||¡}W d   ƒ n1 sB0    Y  tjj}tt	||ƒƒ t
|t jfd ƒ t|jt jƒ d S )Nrm   r%   Úignore©Úinvalidr!   )rU   r   rV   ÚerrstaterP   rB  rP  rQ  r   rR  r   r   rF  )rY   r|   rå   rS  r_   r_   r`   Útest_nan_input  s    

*zTestRegression.test_nan_inputc                 C   sV   t  d¡}t j d¡}d}tt|d�� t ||¡ W d   ƒ n1 sH0    Y  d S )NrE   z$Cannot calculate a linear regressionru   )rU   r•  r  ry   rz   rP   rB  ©rY   r|   rZ   r}   r_   r_   r`   Útest_identical_x  s
    
zTestRegression.test_identical_xN)r‡   rˆ   r‰   rH  rI  rK  rT  rU  ri  rm  rq  rs  rw  ry  r{  r}  r~  rˆ  r‰  rŠ  r�  r‘  r_   r_   r_   r`   rA  $  s&   
	
rA  c                  C   sD  t  g d¢¡\} }}}t| dƒ t|dƒ d}tjt|d��" t jg d¢dd� W d   ƒ n1 sd0    Y  t jg d¢dd�\} }}}t| dƒ t|dƒ g d	¢}g d
¢}t j||dd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   r'   zHmethod must be either 'joint' or 'separate'.'joint_separate' is invalid.ru   Zjoint_separater	  Zjointrr   )r   r   r   r    rE   rG   é   )r%   r  é   r  é-   é7   éN   gìQ¸…ë±?Zseparater    rH  g…ëQ¸…@r   r?   g®Gáz®@r›  )rP   Ztheilslopesr   rÈ   r   rz   )rg  rC  ÚlowerÚupperr}   r|   rZ   r_   r_   r`   Útest_theilslopes&  s6    

0
ÿ


ÿ


ÿ

rš  c                  C   sx   g d¢} t j| dd�\}}}}t|t g d¢¡ƒ t j| ddd�\}}}}t|dkƒ d}t j| ddd�}t||ƒ d S )	N©r   r    r   r   r   r   r    ©Únumbins)r´   rH  r3   r›  )r(   r!   )r�  Zdefaultreallimitsr   )Zcumcountrk   ÚbinsizeÚextrapoints)rP   Zcumfreqr   rU   r   r   r   )r|   ZcumfreqsÚlowlimrž  rŸ  r²   r~   r_   r_   r`   Útest_cumfreqH  s    ÿr¡  c                  C   sz   t  g d¢¡} tj| dd�\}}}}t|tg d¢ƒƒ d}tj| dd�}t||ƒ tjg d¢dd�\}}}}t||ƒ d S )Nr›  r    rœ  )r'   çKÚ}\UUÅ?r¢  r¢  )Z	frequencyrk   rž  rŸ  )rU   r   rP   Zrelfreqr   r   )r»   Zrelfreqsr   rž  rŸ  r²   r~   Z	relfreqs2r_   r_   r`   Útest_relfreqV  s    
ÿ

ÿr£  c                   @   sL   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S )ÚTestScoreatpercentilec                 C   s"   g d¢| _ g d¢| _g d¢| _d S )N)r   r    r!   rE   rL   éûÿÿÿr"   )r   éúÿÿÿrt  r$   r#   r    r   r   )r´   r    r!   rE   rL   r¥  r¦  rÒ  )Úa1Úa2Úa3r5  r_   r_   r`   Úsetup_methodh  s    

z"TestScoreatpercentile.setup_methodc                 C   sF   t dƒd }tt |d¡dƒ tt |d¡dƒ tt |d¡dƒ d S )	Nr$   r'   r   rr   rù   r*   r<  ç      ü?)r   r   rP   ÚscoreatpercentilerX  r_   r_   r`   rÃ   m  s    z TestScoreatpercentile.test_basicc                 C   s(  t j}t|ttdƒƒdƒdƒ t|ttdƒƒddƒdƒ t|ttdƒƒddd�dƒ t|t g d¢¡dd	ƒd
ƒ t|t g d¢¡ddƒdƒ t|ttdƒƒddd�dƒ t|ttdƒƒdddd�dƒ t|ttdƒƒdddd�dƒ t|t g d¢¡dd	dd�d
ƒ t|t g d¢¡dddd�dƒ d S )NrE   r<  r+   ©r   r#   rù   ©r   r$   )Úlimit©r   rE   rù   ©rE   rù   r–  ©r   rE   r,   Zfraction©Úinterpolation_method©r¯  r´  ©rP   r¬  r   rÀ  rl  rU   r   ©rY   Úscoreatpercr_   r_   r`   Útest_fractions  s:    ÿÿþÿþÿþÿþz#TestScoreatpercentile.test_fractionc                 C   s:  t j}t|ttdƒƒddd�dƒ t|ttdƒƒddd�dƒ t|ttdƒƒdddd�dƒ t|ttdƒƒdddd	�dƒ t|ttd
ƒƒdddd�dƒ t|ttd
ƒƒdddd�dƒ t|t g d¢¡dddd�dƒ t|t g d¢¡dddd	�d
ƒ t|t g d¢¡dddd�dƒ t|t g d¢¡dddd	�dƒ d S )NrE   r<  r˜  r³  r    Úhigherr!   r­  rµ  rù   r®  r°  r±  r²  r   r¶  r·  r_   r_   r`   Útest_lower_higher�  sf    ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿz'TestScoreatpercentile.test_lower_higherc                 C   s´   t dƒd }t g d¢¡}t |g d¢¡}t||ƒ tt|tjƒƒ tt |t g d¢¡¡|ƒ tjt  d¡ 	d¡t g d¢¡dd	�}tg d
¢g d¢g d¢g d¢gƒ}t||ƒ d S )Nr$   r'   )r   r*   r«  )r   rù   r<  rG   ©r   r    )r   r   rù   rù   r   r=   )r   r    r$   )ç¸…ëQ¸ž?g…ëQ¸@g�Âõ(\ @©r   r#   rF   )
r   rU   r   rP   r¬  r
   r   rR  ZndarrayrS   )rY   r|   r¨  r~   r�  Z	expected2r_   r_   r`   Útest_sequence_per¦  s"    
ÿÿýz'TestScoreatpercentile.test_sequence_perc                 C   sô   t j}tdƒ dd¡}t||dƒg d¢ƒ g d¢g d¢g d¢g}t||dd	d
�|ƒ g d¢g d¢g d¢g}t||ddd
�|ƒ tg d¢g d¢g d¢g d¢g d¢gƒ}t  |d¡}t|jdƒ t|dƒ t j|dd	d
�}t|jdƒ t|g d¢ƒ d S )NrG   r   r    )r  r<  rù   )g      @r,   ç      &@)r   r   r    r!   ©r    r!   r"   r#   )r$   r%   rE   rF   r   r=   )ç      è?g      @g     €!@)r(   r,   ç      #@r¾  r   ©r   r   r   )r    r    r   r<  r_   rŽ   ©r   )rP   r¬  r   rS   r   r   rT  )rY   r¸  r|   Zr0r÷  Úscorer_   r_   r`   Ú	test_axis¸  s&    ü
zTestScoreatpercentile.test_axisc                 C   s@   t ttjddgddd� t ttjdgdƒ t ttjdgdƒ d S )Nr   r   ra  rt   r³  ée   rK   )ry   rz   rP   r¬  r5  r_   r_   r`   Útest_exceptionÐ  s
    ÿz$TestScoreatpercentile.test_exceptionc                 C   sT   t t g d¡tjƒ t t t g g g¡d¡tjƒ t t g ddg¡tjtjgƒ d S )Nr<  éc   )r   rP   r¬  rU   rV   r   r5  r_   r_   r`   Ú
test_emptyÖ  s    z TestScoreatpercentile.test_emptyN)r‡   rˆ   r‰   rª  rÃ   r¹  r»  r¿  rÇ  rÉ  rË  r_   r_   r_   r`   r¤  g  s   r¤  zignore::FutureWarningc                
   @   s:  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zej 	d	e
 d
d¡¡dd„ ƒZdd„ Zdd„ Zej 	dg d¢de
jddddgg d¢de
jddgg¡ej 	dddg¡dd„ ƒƒZej 	d	e
 dd¡¡e
jfdd„ƒZd d!„ Zd"d#„ Zej 	d$d%d&g¡d'd(„ ƒZd)d*„ Zej d+¡ej 	d,e
 d-¡e
 d.¡g¡d/d0„ ƒƒZd1d2„ Zd3S )4ÚTestModec                 C   s2   t  g ¡\}}t|t g ¡ƒ t|t g ¡ƒ d S rd  ©rP   Úmoder   rU   r   ©rY   Úvalsr?  r_   r_   r`   rË  ß  s    zTestMode.test_emptyc                 C   s6   t  d¡\}}t|t dg¡ƒ t|t dg¡ƒ d S )NrH  r   rÍ  rÏ  r_   r_   r`   rM  ä  s    zTestMode.test_scalarc                 C   s2   g d¢}t  |¡}t|d dƒ t|d dƒ d S )N©r   r!   r   rE   é   r   r   r"   r$   r"   rE   r"   r   r"   r   r   ©rP   rÎ  r   )rY   Údata1rÐ  r_   r_   r`   rÃ   é  s    
zTestMode.test_basicc              	   C   s$  g d¢}g d¢}g d¢}g d¢}g d¢}t  |||||g¡}tj|d dd�}t|d t  d	gg¡ƒ t|d
 t  dgg¡ƒ tj|ddd�}t|d t  g d¢g¡ƒ t|d
 t  g d¢g¡ƒ tj|d
dd�}t|d t  dgdgdgd	gd	gg¡ƒ t|d
 t  dgdgdgdgdgg¡ƒ d S )N)rE   rE   r=  r>  )rE   rE   rE   rE   )r  rE   r  r  )r=  r=  r=  r=  )r>  r=  r=  r=  T©r>   Úkeepdimsr   r=  r   r$   )rE   rE   r=  r=  )r   r   r   r   rE   r  r   r    r   )rU   r   rP   rÎ  r   )rY   rÔ  Údata2Zdata3Zdata4Zdata5ZarrrÐ  r_   r_   r`   Ú	test_axesï  s    (zTestMode.test_axesr>   rê   r   c                 C   sR   t j d¡ t j dddd¡}tj||j| d�}tj||d�}t j ||¡ d S )Né‹é©:rE   rF   rG   rH   r=   )	rU   r  rR  r\  rP   rÎ  Úndimr   r   )rY   r>   r»   r  rŽ  r_   r_   r`   Útest_negative_axes_gh_15375	  s
    z$TestMode.test_negative_axes_gh_15375c                 C   s<   g d¢}g }t  |¡}d}t||ƒ t  |¡}t||ƒ d S )NrÑ  )rÎ  Úcount)rP   rÎ  r   )rY   rÔ  r×  r˜  r²   Zactual2r_   r_   r`   Útest_mode_result_attributes	  s    


z$TestMode.test_mode_result_attributesc                 C   st   dt jdddddddddddg}t |¡}t|d	ƒ tj|d
d�}t|d	ƒ tttj|dd� tttj|dd� d S )Nr   r!   r   rE   rÒ  r   r"   r$   )r"   r   ro   rp   rs   rt   )rU   rV   rP   rÎ  r   ry   rz   )rY   rÔ  r˜  r_   r_   r`   Útest_mode_nan	  s     


zTestMode.test_mode_nanÚdata)r   r!   r   r   r   r   r!   r   )r   r!   r   rÖ  FTc                 C   s:   t j|d|d�}|r(t|d d dƒ nt|d dƒ d S )Nro   )rq   rÖ  r   r   rÓ  )rY   rß  rÖ  rå   r_   r_   r`   Útest_smallest_equal	  s    zTestMode.test_smallest_equalrL   c                 C   sj   t j d¡}|jdd� |¡}tj||dd�}t|jƒ}| 	|¡ t j
 |jj|¡ t j
 |jj|¡ d S )NrÙ  )r   r    r!   rû   FrÕ  )rU   r  r  Úuniformr¥  rP   rÎ  rÀ  rT  Úpopr   r   rÜ  )rY   r>   r<   r  r»   r~   Zreference_shaper_   r_   r`   Útest_mode_shape_gh_9955,	  s    

z TestMode.test_mode_shape_gh_9955c                 C   s8   dt jdt jg}t |¡}t  |j¡r0|jdks4J ‚d S ©Nr   r   )rU   rV   rP   rÎ  rK  rÜ  )rY   r»   r~   r_   r_   r`   Ú!test_nan_policy_propagate_gh_98156	  s    
z*TestMode.test_nan_policy_propagate_gh_9815c                 C   sF  t  d¡}tj|ddd�}|jj|jj  kr6dks<n J ‚tj|ddd�}|jj|jj  krhdksnn J ‚dddt jgddt jdgg}tj|ddd�}t|jddgƒ t|jd	dgƒ tj|ddd�}t|jdgdggƒ t|jd	gdggƒ t  |¡}tj|d dd�}tj| 	¡ dd
�}t||ƒ |jj|jj  k�rHdk�sNn J ‚tj|d dd�}tj| 	¡ dd
�}t
|j 	¡ |j 	¡ ƒ |jjdk�s˜J ‚t
|j 	¡ |j 	¡ ƒ |jjdk�sÀJ ‚dt jt jt jdgt jt jt jt jd	gdd	t jddgg}tj|dddd�}t|jg d¢ƒ t|jg d¢ƒ tj|dddd�}t|jdgd	gdggƒ t|jd	gdgd	ggƒ t  |¡}tj|d ddd�}tj| 	¡ ddd�}t||ƒ |jj|jj  k�rÆdk�sÌn J ‚tj|d ddd�}tj| 	¡ ddd�}t
|j 	¡ |j 	¡ ƒ |jjdk�sJ ‚t
|j 	¡ |j 	¡ ƒ |jjdk�sBJ ‚d S )N)r   r   r   r   r   FrÕ  )r   r   r   T)r   r   r   r   r   r   ©rÖ  r_   ©r   r   r!   ro   )r>   rÖ  rq   )r   r   r!   )r   r   r   )rÖ  rq   )rU   r•  rP   rÎ  rT  rÜ  rV   r   r   Úravelr   )rY   r»   r~   r  r_   r_   r`   Útest_keepdims=	  sX    
""

&þ

&zTestMode.test_keepdimsrq   rb  ro   c                 C   s´   d}t  |¡}t j|d< tj|dd|d�}t|jg d¢ƒ t|jg d¢ƒ t  dt jfd	t j	d
fg¡}t j
d|d�}tjtdd�� tj||d� W d   ƒ n1 s¦0    Y  d S )N)r    r   ©r   r   r   F)r»   r>   rÖ  rq   rÌ  ©r   r   r   r   ZasdfZqwerrÅ  rE   r;   zArgument `a` is not...ru   rp   )rU   rr  rV   rP   rÎ  r   rÜ  r<   Úuint8r   r•  rÈ   r   Ú	TypeError)rY   rq   rT  rß  r~   Zmy_dtypeÚtestr_   r_   r`   Útest_gh16955y	  s    

zTestMode.test_gh16955c                 C   sè   t  g ¡}tjdf}t||ƒ t jtjgdd�}t||ƒ g d¢tjtjtjgg}t j|ddd�}dtjgddgf}t||ƒ t j|dd	d�}dtjgdd
gf}t||ƒ t g g g¡}t j|dd�}tjtjgddgf}t||ƒ d S )Nr   ro   rp   )rm   r½  r½  r   rc  r  r   rb  r   r=   )rP   rÎ  rU   rV   r   r   )rY   r~   r  r»   Úzr_   r_   r`   Útest_gh9955Š	  s     





zTestMode.test_gh9955zignore::RuntimeWarningrð  r(  rº  c                 C   sV   t j|d dd�}tj|d dd�}|d j|d j  krL|j  krLdksRn J ‚d S )NTrÕ  r   r   rÄ  )rP   rÎ  rU   rT   rT  )rY   rð  r~   r  r_   r_   r`   Útest_gh17214£	  s    zTestMode.test_gh17214c                 C   sš   d}G dd„ dƒ}t jt|d��$ t |t d¡ƒ¡ W d   ƒ n1 sJ0    Y  t jt|d��$ t tjdtd�¡ W d   ƒ n1 sŒ0    Y  d S )Nz*Argument `a` is not recognized as numeric.c                   @   s   e Zd Zdd„ Zddd„ZdS )z8TestMode.test_raise_non_numeric_gh18254.<locals>.ArrLikec                 S   s
   || _ d S rd  )Ú_xrX  r_   r_   r`   Ú__init__®	  s    zATestMode.test_raise_non_numeric_gh18254.<locals>.ArrLike.__init__Nc                 S   s   | j  t¡S rd  )ró  r¥  Úobject)rY   r<   Úcopyr_   r_   r`   Ú	__array__±	  s    zBTestMode.test_raise_non_numeric_gh18254.<locals>.ArrLike.__array__)NN)r‡   rˆ   r‰   rô  r÷  r_   r_   r_   r`   ÚArrLike­	  s   rø  ru   r   r;   )rÈ   r   rí  rP   rÎ  rU   r   rõ  )rY   rò   rø  r_   r_   r`   Útest_raise_non_numeric_gh18254ª	  s    2z'TestMode.test_raise_non_numeric_gh18254N)r‡   rˆ   r‰   rË  rM  rÃ   rØ  rÈ   r  r  rU   r   rÛ  rÝ  rÞ  rV   rà  r   rã  rå  ré  rï  rñ  ÚfilterwarningsÚemptyrò  rù  r_   r_   r_   r`   rÌ  Ü  s6   
	
ü	<

rÌ  c                   @   s    e Zd Zg d¢ZdZdd„ ZdS )ÚTestSEMrÝ   rH  c              	   C   s.  t ƒ �T}tjdd��( | td¡ t | j¡}W d   ƒ n1 sB0    Y  W d   ƒ n1 s`0    Y  tt 	|¡ƒ t | j
¡}t|dƒ t| j
ƒ}ttj| j
dd�t ||d  ¡ tj| j
dd�ƒ t d¡}tj|d	< tt |¡tjƒ ttj|d
d�dƒ tttj|dd� tttj|dd� d S )Nr‹  rŒ  ú!Degrees of freedom <= 0 for slicegã�ŽËé§ä?r   rb   r   rm   r%   ro   rp   g¿ÜH=6í?rs   rt   )r   rU   rŽ  r{   rX   rP   ZsemÚscalar_testcaser   rK  Útestcaser	   r3  r
   r„   r   rV   r   ry   rz   )rY   r^   rZ   rq  r|   r_   r_   r`   Útest_sem¾	  s     H

"ÿ

zTestSEM.test_semN)r‡   rˆ   r‰   rÿ  rþ  r   r_   r_   r_   r`   rü  ¹	  s   rü  c                   @   s(  e Zd Zej dg d¢g d¢fg d¢g d¢fg¡dd„ ƒZdd„ Zd	d
„ Zej dddg¡dd„ ƒZ	ej dddg¡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ej d,e g ¡e d-¡g¡d.d/„ ƒZd0d1„ Zd2d3„ Zd4d5„ Zd6S )7ÚTestZmapZscorezx, yrÝ   ré   )r   r   r   r   r    c                 C   s6   t  ||¡}|t |¡ t |¡ }t||dd� d S )Nr&   rà   )rP   ÚzmaprU   rT   rh   r
   )rY   r|   rZ   rð  r¨  r_   r_   r`   Ú	test_zmapÙ	  s    zTestZmapZscore.test_zmapc           	      C   sÞ   t  g d¢g d¢g d¢g¡}dt  d¡ }t  d¡d }t  d¡}tj||d	d
�}tj||dd
�}| | d | d dgd|| d |g|| d || gg}g d¢| | | t  d¡gg d¢g}t||ƒ t||ƒ d S ©N©rr   rr   rŽ   rŽ   )rŽ   rŽ   rŽ   rI  )rI  rr   rI  rr   rŽ   r@  r´   r   rI  r   r=   r   r   rr   ©r¾   r¾   rŽ   rŽ   )rŽ   r¾   rŽ   r¾   )rU   r   r„   rP   r  r   ©	rY   r|   Út1Út2Út3Úz0rÎ  Úz0_expectedÚz1_expectedr_   r_   r`   Útest_zmap_axiså	  s&    
þ
þþ
zTestZmapZscore.test_zmap_axisc                 C   s|   t  g d¢g d¢g¡}tj||ddd�}t  g d¢¡dt  d¡  }t  g d¢¡t  d	¡ }t|d
 |ƒ t|d |ƒ d S ©Nr  )rr   rŽ   rI  r´   r   ©r>   rc   )ç      à¿r  r'   r'   rŽ   r   )ç      ø¿r  r'   r(   g«ªªªªªú?r   )rU   r   rP   r  r„   r   ©rY   r|   rð  r  r  r_   r_   r`   Útest_zmap_ddofü	  s    
ÿzTestZmapZscore.test_zmap_ddofrc   r   r   c                 C   sd   t  dddt jg¡}t  dddddt jg¡}tj|||dd�}t|tj||t  |¡  |d	�ƒ d S )
NrL   rK   r   éøÿÿÿr#   rG   ro   ©rc   rq   rb   )rU   r   rV   rP   r  r
   rK  )rY   rc   ÚscoresÚcomparerð  r_   r_   r`   Útest_zmap_nan_policy_omit
  s    ÿz(TestZmapZscore.test_zmap_nan_policy_omitc              
   C   sÄ   t  dd¡ dd¡}t  ddd¡ dd¡}t j|d< t j|d	< t j|d
< tj||dd|d�}t  tj|d |d t  |d ¡  |d�tj|d |d t  |d ¡  |d�g¡}t	||dd� d S )Nç      Àr‚   r   rK   r  r"   é   )r   r    rd   rç  ro   r   )rq   r>   rc   r   rb   r[  rà   )
rU   r   rS   rN  rV   rP   r  r   rK  r
   )rY   rc   r  r  rð  r¨  r_   r_   r`   Ú#test_zmap_nan_policy_omit_with_axis
  s     


þ
þýz2TestZmapZscore.test_zmap_nan_policy_omit_with_axisc                 C   sh   t  g d¢¡}t  dddddt jg¡}tjtdd��  tj||d	d
� W d   ƒ n1 sZ0    Y  d S )Nré   r  rL   r   r#   rG   zinput contains nanru   rs   rp   )rU   r   rV   rÈ   r   rz   rP   r  )rY   r  r  r_   r_   r`   Útest_zmap_nan_policy_raise"
  s    z)TestZmapZscore.test_zmap_nan_policy_raisec                 C   s(   t  g d¢¡}g d¢}t||dd� d S )NrÝ   )gÙòOT\wõ¿gþí¿Å%ŸÜ¿gþí¿Å%ŸÜ?gÙòOT\wõ?rG   r?   )rP   Úzscorer   )rY   rZ   Údesiredr_   r_   r`   Útest_zscore(
  s    zTestZmapZscore.test_zscorec           	      C   sÚ   t  g d¢g d¢g d¢g¡}dt  d¡ }t  d¡d }t  d¡}tj|d	d
�}tj|dd
�}| | d | d dgd|| d |g|| d || gg}g d¢| | | t  d¡gg d¢g}t||ƒ t||ƒ d S r  )rU   r   r„   rP   r  r   r  r_   r_   r`   Útest_zscore_axis0
  s&    
þ
þþ
zTestZmapZscore.test_zscore_axisc                 C   sz   t  g d¢g d¢g¡}tj|ddd�}t  g d¢¡dt  d¡  }t  g d¢¡t  d	¡ }t|d
 |ƒ t|d |ƒ d S r  )rU   r   rP   r  r„   r   r  r_   r_   r`   Útest_zscore_ddofG
  s    
ÿzTestZmapZscore.test_zscore_ddofc                 C   s:   t  ddt jddg¡}tj|dd�}tt  |¡ƒs6J ‚d S )Nr   r   r    r!   rb  rp   )rU   r   rV   rP   r  rL  rK  ©rY   r|   rð  r_   r_   r`   Útest_zscore_nan_propagateS
  s    z(TestZmapZscore.test_zscore_nan_propagatec                 C   sH   t  ddt jddg¡}tj|dd�}t  ddt jd	d
g¡}t||ƒ d S )Nr   r   r    r!   ro   rp   gIHb=ô¿gIHb=ä¿gIHb=ä?gIHb=ô?)rU   r   rV   rP   r  r   ©rY   r|   rð  r¨  r_   r_   r`   Útest_zscore_nan_omitX
  s    üz#TestZmapZscore.test_zscore_nan_omitc                 C   s\   t  t jdddddg¡}tj|ddd�}t jt jtj|dd … dd	�f }t||d
d� d S )NrŽ   r´   r3   rÒ  r‚   r   ro   r  rb   ç‚vIhÂ%<=rà   )rU   r   rV   rP   r  Úr_r
   r%  r_   r_   r`   Útest_zscore_nan_omit_with_ddofe
  s    "z-TestZmapZscore.test_zscore_nan_omit_with_ddofc                 C   s,   t  ddt jddg¡}tttj|dd� d S )Nr   r   r    r!   rs   rp   )rU   r   rV   ry   rz   rP   r  rX  r_   r_   r`   Útest_zscore_nan_raisek
  s    z$TestZmapZscore.test_zscore_nan_raisec                 C   s0   dgd }t  |¡}t|t t|ƒtj¡ƒ d S )NgƒÀÊ¡E¶¿r   )rP   r  r   rU   rf   r3  rV   r#  r_   r_   r`   Útest_zscore_constant_input_1dp
  s    

z,TestZmapZscore.test_zscore_constant_input_1dc              	   C   sä   t  g d¢g d¢g¡}tj|dd�}t|t  t jdddgt jdddgg¡ƒ tj|dd�}t|t  t jt jt jt jgt |d ¡g¡ƒ tj|d d�}t|t | ¡ ¡ |j¡ƒ t  	d¡}tj|d d�}t|t  
|jt j¡ƒ d S )	N©rm   rm   rm   rm   ©rm   rÀ  r)  ç      *@r   r=   r¾   rŽ   r   )r   r"   )rU   r   rP   r  r   rV   rè  rS   rT  rr  rf   )rY   r|   r  rÎ  rð  rZ   r_   r_   r`   Útest_zscore_constant_input_2du
  s     
ÿÿÿ
z,TestZmapZscore.test_zscore_constant_input_2dc                 C   sæ   t  g d¢dddt jgddt jdgg¡}tj|ddd�}t  d¡}t  d	¡}t|t  t j| d
t jgt jddt jgt j|t jt jgg¡ƒ tj|ddd�}t|t  t jt jt jt jg| d|t jg| d	 |t j| d	 gg¡ƒ d S )Nr,  rm   rÀ  r)  ro   r   ©rq   r>   r(   r   r¾   rŽ   r   )rU   r   rV   rP   r  r„   r
   )rY   r|   r  ró  Ús2rÎ  r_   r_   r`   Ú-test_zscore_constant_input_2d_nan_policy_omit…
  s     
þ

þþz<TestZmapZscore.test_zscore_constant_input_2d_nan_policy_omitc                 C   s^   t  t jt jt jt jgg d¢g¡}tj|ddd�}t|t  t jt jt jt jgg d¢g¡ƒ d S )N)rm   rm   r)  r)  ro   r   r0  r  )rU   r   rV   rP   r  r   r#  r_   r_   r`   Útest_zscore_2d_all_nan_row”
  s    ÿÿz)TestZmapZscore.test_zscore_2d_all_nan_rowc                 C   s,   t  dt j¡}tj|dd d�}t||ƒ d S )N©r   r   ro   r0  )rU   rf   rV   rP   r  r   )rY   rZ   rð  r_   r_   r`   Útest_zscore_2d_all_nanœ
  s    z%TestZmapZscore.test_zscore_2d_all_nanr|   )r   r   r!   c                 C   s   t  |¡}t||ƒ d S rd  )rP   r  r   r#  r_   r_   r`   Útest_zscore_empty_input¢
  s    
z&TestZmapZscore.test_zscore_empty_inputc                 C   sN   t  g d¢¡}t |¡}t  |t |¡ ¡t  tj|dd�¡ }t||ƒ d S )NrÝ   r   rb   )rU   r   rP   ÚgzscoreÚlogÚgmeanÚgstdr
   )rY   r|   rð  r  r_   r_   r`   Útest_gzscore_normal_array§
  s    
(z(TestZmapZscore.test_gzscore_normal_arrayc                 C   sJ   t  g d¢¡}t jj|g d¢d�}t |¡}ddt jddg}t||ƒ d S )N)r   r   rK   r   r    )r   r   r   r   r   ©Úmaskg0À’Êjø¿g”¹`óëÈ¿g/‹ÈAö°â?g·(ÒÍ/ò?)rU   r   ré  Úmasked_arrayrP   r7  r  r
   )rY   r|   Zmxrð  r  r_   r_   r`   Útest_gzscore_masked_array­
  s    

ÿz(TestZmapZscore.test_gzscore_masked_arrayc                 C   sî   t j d¡}| d¡}t  |¡}t j ||¡}d|jd< t 	|dd … ¡}t  
t  |¡¡r^J ‚t 	|¡}t|dd … |ƒ tj	|d d�}t|dd … |ƒ |d |dd …< t 	|¡}t|dd … t jƒ tj	|d d�}t|dd … t jƒ d S )Nií_„ rE   Tr   r   r=   )rU   r  r  Zstandard_normalÚ
zeros_likeré  r>  r=  rP   r  ÚanyrK  r
   r   rV   )rY   r  r|   r=  rZ   r  r~   r_   r_   r`   Ú$test_zscore_masked_element_0_gh19039µ
  s     




z3TestZmapZscore.test_zscore_masked_element_0_gh19039N)r‡   rˆ   r‰   rÈ   r  r  r  r  r  r  r  r  r   r!  r"  r$  r&  r)  r*  r+  r/  r2  r3  r5  rU   r   r•  r6  r;  r?  rB  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ej	 
dg d¢¡dd„ ƒZej	 
dde ejddg¡fde ejejdg¡fg¡dd„ ƒZej	 
ddg d¢fdg¡dd„ ƒZdd„ ZdS )ÚTestMedianAbsDeviationc                 C   sR   t  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  g d¢¡| _d S )Nçš™™™™™@rõ  r)   çš™™™™™@r  ç333333@ç=
×£p=@r  çö(\�Âõ
@rö  r*   r  çš™™™™™@ç)\�Âõ(@ç…ëQ¸@)rD  rD  rõ  rõ  r)   rE  r  rF  rG  rG  r  rH  rö  rö  rö  r*   r  rI  rI  rI  rI  rJ  rK  g33333ó<@)rU   r   rV   Údat_nanÚdatr5  r_   r_   r`   Úsetup_classË
  s
    þz"TestMedianAbsDeviation.setup_classc                 C   sN   t tj| jd d�dƒ | j dd¡}tj|dd�}t g d¢¡}t||ƒ d S )Nr=   g¸…ëQ¸Ö?r"   r    r   )g×£p=
×Û?r'   çÍÌÌÌÌÌÜ?r€  )r   rP   Úmedian_abs_deviationrM  rS   rU   r  r   )rY   rM  ÚmadZmad_expectedr_   r_   r`   Útest_median_abs_deviationÓ
  s    ÿz0TestMedianAbsDeviation.test_median_abs_deviationc                 C   s   t j| jdd�}t|dƒ d S )Nro   rp   gÃõ(\�ÂÕ?)rP   rP  rL  r   )rY   rQ  r_   r_   r`   Útest_mad_nan_omitÛ
  s    z(TestMedianAbsDeviation.test_mad_nan_omitc                 C   sF   t  ddddt jgg d¢g¡}tj|dd�}t|t  t jdg¡ƒ d S )NrŽ   rI  r´   rH  )rŽ   rH  r3   r¡  r‚   r   r=   ©rU   r   rV   rP   rP  r   )rY   r|   rQ  r_   r_   r`   Útest_axis_and_nanß
  s
    ÿz(TestMedianAbsDeviation.test_axis_and_nanc              	   C   s8   t  dddddt jt jg¡}tj|dd�}t|dƒ d S )	Nr   r   r    r"   rÊ  ro   rp   r´   )rU   r   rV   r  rP   rP  r   )rY   rð  rQ  r_   r_   r`   Útest_nan_policy_omit_with_infå
  s    z4TestMedianAbsDeviation.test_nan_policy_omit_with_infr>   )r   r   r   Nc                 C   s:   t  d¡}tj||d�}t|t j|j|d�t jd�ƒ d S )N)r   r   r    r=   ©Ú
fill_value)rU   r•  rP   rP  r   Ú	full_likeÚsumrV   )rY   r>   r|   rQ  r_   r_   r`   Útest_size_zero_with_axisê
  s    
z/TestMedianAbsDeviation.test_size_zero_with_axisznan_policy, expectedro   r(   rb  c              	   C   sZ   t  t jt jt jt jt jt jgddddt jt jgg d¢g¡}tj||dd�}t||ƒ d S )Nr   r!   r   r"   )r!   r"   r#   r%   r%   rE   r0  rT  )rY   rq   r¨  r|   rQ  r_   r_   r`   Útest_nan_policy_with_axisð
  s    þz0TestMedianAbsDeviation.test_nan_policy_with_axiszaxis, expectedr   )r)   rI  r)  )Nr+   c                 C   sL   t  ddddt jgg d¢g d¢g¡}tj|t jd|d�}t||d	d	d
� d S )Nr   r   r    r%   )r   r   r   r   rG   )éöÿÿÿr]  r]  r  r  ro   )Úcenterrq   r>   rµ   r  )rU   r   rV   rP   rP  rT   r
   )rY   r>   r¨  r|   rQ  r_   r_   r`   Útest_center_mean_with_nanú
  s    þÿz0TestMedianAbsDeviation.test_center_mean_with_nanc                 C   sD   t jtdd��" tjg d¢dd� W d   ƒ n1 s60    Y  d S )NÚcallableru   )r   r   r   r!   rÊ  ©r^  )rÈ   r   rí  rP   rP  r5  r_   r_   r`   Útest_center_not_callable  s    z/TestMedianAbsDeviation.test_center_not_callableN)r‡   rˆ   r‰   rN  rR  rS  rU  rV  rÈ   r  r  r[  rU   r   rV   r\  r_  rb  r_   r_   r_   r`   rC  Ê
  s$   
ÿÿ
ÿ
rC  c                 C   s,   t t| ƒ|dƒ | D ]}t|j|u ƒ qdS )z¼
    Checks that all of the warnings from a list returned by
    `warnings.catch_all(record=True)` are of the required type and that the list
    contains expected number of warnings.
    znumber of warningsN)r   r3  r   Úcategory)Z	warn_listÚexpected_typeÚexpected_lenZwarn_r_   r_   r`   Ú_check_warnings	  s    rf  c                   @   sl   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d„ Zdd„ Zdd„ ZdS )ÚTestIQRc                 C   s.   t  d¡d }t j |¡ tt |¡dƒ d S )Nr$   r'   r«  )rU   r   r  rñ  r   rP   ÚiqrrX  r_   r_   r`   rÃ     s    zTestIQR.test_basicc              	   C   s–   t  d¡}t |¡ t |d ¡ t |d¡ t |d¡ t |d d¡ t |d dd¡ t |d ddd	¡ t |d d
ddd¡ t |d ddddd¡ d S )NrQ  r   ©r   r   )rE   éZ   )r=  r  rŽ   )r  r.  r(   rb  )r<  r<  r  rs   Úlineargš™™™™™Ù¿ro   r˜  T)rU   rr  rP   rh  )rY   Údr_   r_   r`   Útest_api  s    

zTestIQR.test_apic                 C   s.   t t g ¡tjƒ t t t d¡¡tjƒ d S r2  )r   rP   rh  rU   rV   r   r5  r_   r_   r`   rË  '  s    zTestIQR.test_emptyc                 C   sl  t  d¡}tt |¡dƒ ttj|dd�t  d¡ƒ ttj|dd�t  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  d¡t  d¡ }ttj|dd�t  d¡ƒ ttj|dd�t  d¡ƒ ttj|dd�t  dd¡ƒ ttj|dd�t  d¡ƒ ttj|dd�t  dd¡ƒ ttj|dd�t  dd¡ƒ d S )N)r#   r    rr   r   r=   r    r   r#   rk  ©ÚinterpolationÚmidpointÚnearestr˜  rº  )r    r!   r"   r"   )r!   r"   )r    r"   r   )r    r!   r)   ri  ©r   r   r!   r´   ©r   r   )	rU   rr  r   rP   rh  r   r•  r   rf   rî   r_   r_   r`   Útest_constant+  s     
zTestIQR.test_constantc                 C   sL   t  d¡d }tt |d ¡dƒ tt |¡dƒ ttj|dd�dgƒ d S )Nr   rÒ  r   rr   Træ  )rU   r   r   rP   rh  r   rX  r_   r_   r`   Útest_scalarlikeA  s    zTestIQR.test_scalarlikec                 C   s„   t  d¡ d¡}tt |¡dƒ ttj|dd�t  dd¡ƒ ttj|dd�t  d	d
¡ƒ ttj|dd�dƒ ttj|dd�dƒ d S )Nr  ©r   r!   rÒ  r   r=   r!   r3   r   r   rI  ri  ra  )rU   r   rS   r   rP   rh  r   rf   rX  r_   r_   r`   Útest_2DG  s    zTestIQR.test_2Dc              
   C   s˜  t jjdd�}t  |gd ¡}t |¡}ttj|dd�|ƒ t  |dd¡}ttj|dd�|ƒ | dd	¡}ttj|d
d�|ƒ | dd	¡}ttj|dd�tj|d d�ƒ ttj|dd�tj|dd�ƒ t  	d¡}t j 
|¡ | d¡}ttj|dd�d t |d d …d d …d d …df  ¡ ¡ƒ ttj|dd�d	 t |d d …d d …d	d d …f  ¡ ¡ƒ ttj|dd�d t |d d …d d …dd d …f  ¡ ¡ƒ ttj|dd�d t |dd d …d d …d d …f  ¡ ¡ƒ ttj|dd�d t |dd	d d …d d …f  ¡ ¡ƒ ttj|dd�d t |dd d …d d …d	f  ¡ ¡ƒ ttj|dd�d t |dd d …dd d …f  ¡ ¡ƒ tttj|dd� tttj|dd� d S )N)éG   rÒ  rû   rE   ri  r=   rK   r   ©r   r   r   rr  r(  ©r   iƒ  ©r   r!   r#   rF   ©r   r   r   )r   r   rê   r   )r   r   r   ©r   r   )r   rt  )r   r   ©r   r   r    rê  )rU   r  r  ÚdstackrP   rh  r   ÚmoveaxisZswapaxesr   rñ  rS   rè  ry   r   rz   )rY   Úor|   Úqrl  r_   r_   r`   rÇ  O  sR    
ÿÿ

$ÿ$ÿ$ÿ$ÿ ÿ ÿ ÿzTestIQR.test_axisc                 C   s–   t  d¡}tt |¡dƒ ttj|dd�dƒ ttj|dd�dƒ ttj|dd�dƒ tttj|d	d� tttj|t jd
fd� tt	tj|dd� d S )Nr!   r   )r  g     àU@)r  r)   )g      )@r.  )rE   r<  gš™™™™™ù?)r   rÈ  r  )r   r<  é<   )
rU   r   r   rP   rh  r   ry   rz   rV   rí  rX  r_   r_   r`   Útest_rngx  s    
zTestIQR.test_rngc                 C   sn  t  d¡}t  d¡}tt |¡dƒ tt |¡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
ƒ ttj|dd�dƒ ttj|dd�dƒ ttj|d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ƒ ttj|dd�dƒ dD ]}tj||d� �qBtttj|dd� d S )Nr!   r    r   r(   rk  rn  rº  )r  éP   )r  ro  r   r˜  rq  r   rp  r)   )Zinverted_cdfZaveraged_inverted_cdfZclosest_observationZinterpolated_inverted_cdfZhazenZweibullZmedian_unbiasedZnormal_unbiasedrt   )rU   r   r   rP   rh  ry   rz   )rY   r|   rZ   rõ   r_   r_   r`   Útest_interpolationƒ  s(    

zTestIQR.test_interpolationc                 C   s^  t  d¡}ttj|d dd�jdƒ ttj|ddd�jdƒ ttj|ddd�jdƒ ttj|d	dd�jd
ƒ ttj|ddd�jdƒ ttj|ddd�jdƒ ttj|ddd�jdƒ ttj|d dd�jdƒ ttj|ddd�jdƒ ttj|ddd�jdƒ ttj|d	dd�jdƒ ttj|ddd�jdƒ ttj|ddd�jdƒ ttj|ddd�jdƒ d S )Nr{  FrÕ  r_   r   )r   r!   rF   ri  )r#   rF   )r   r   )r!   r#   ©r   r¾  ©r   r   r   r   ræ  r|  )r#   TrÌ  )r   r!   r   rF   )r   r   r#   rF   )r   r!   r#   r   )r   r   r#   rF   )r   r   r#   r   )rU   rr  r   rP   rh  rT  rX  r_   r_   r`   ré  ¥  s    
zTestIQR.test_keepdimsc                 C   s¶  t  d¡ d¡}ttj|dd�dƒ ttj|dd�dƒ ttj|dd�dƒ t j|d< tjd	d
��p t 	d¡ ttj|dd�t jƒ ttj|ddd�ddt jddgƒ ttj|ddd�dt jdgƒ W d   ƒ n1 sØ0    Y  tjd	d
��f t 	d¡ ttj|dd�dƒ ttj|ddd�t  
dd¡ƒ ttj|ddd�g d¢ƒ W d   ƒ n1 �s\0    Y  tttj|dd� tttj|ddd� tttj|ddd� tttj|dd� d S )Nç      .@rv  rb  rp   r#   ro   rs   rs  T©rW   Úalwaysr   rc  r!   r   r   r.   )r   r)   r   Zbarfood)rU   r   rS   r   rP   rh  rV   ÚwarningsÚcatch_warningsÚsimplefilterrf   ry   rz   rX  r_   r_   r`   Útest_nanpolicy¸  s2    

ÿÿ
ÿ"
:zTestIQR.test_nanpolicyc                 C   s˜  t  d¡ d¡}ttj|dd�dƒ ttj|dd�dƒ ttj|dd�d	ƒ t j|d
< tj	dd��Ì t 
d¡ ttj|ddd�t jƒ ttj|ddd�t jƒ ttj|ddd�t jƒ ttj|dddd�dt jdgƒ ttj|dddd�t  dt jdg¡d ƒ ttj|dddd�dt jdgƒ W d   ƒ n1 �s60    Y  ttj|ddd�dƒ ttj|ddd�dƒ ttj|ddd�dƒ tttj|dd� d S )Nr‰  rv  rŽ   ©rµ  r#   r  g=V^w¥Á@rI  r*   rs  TrŠ  r‹  rb  )rµ  rq   r   )r>   rµ  rq   r   gF—7‡k•õ?ro   r.   gŠ¥	I1=@g      @rt   )rU   r   rS   r   rP   rh  r   rV   rŒ  r�  rŽ  r   ry   rz   rX  r_   r_   r`   Ú
test_scaleØ  s:    

ÿ
ÿÿþ
ÿ$ÿzTestIQR.test_scaleN)r‡   rˆ   r‰   rÃ   rm  rË  rt  ru  rw  rÇ  r„  r†  ré  r�  r‘  r_   r_   r_   r`   rg    s   )" rg  c                   @   sN  e Zd ZdZg d¢ZdZej d¡ ej 	d¡Z
g d¢Zdddœd	d
„Zej dddg¡ej deddƒ¡dd„ ƒƒZej dddg¡ej dd¡dd„ ƒƒZdd„ Zej dejejejg¡ej dddg¡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S ):ÚTestMomentsa  
        Comparison numbers are found using R v.1.5.1
        note that length(testcase) = 4
        testmathworks comes from documentation for the
        Statistics Toolbox for Matlab and can be found at both
        https://www.mathworks.com/help/stats/kurtosis.html
        https://www.mathworks.com/help/stats/skewness.html
        Note that both test cases came from here.
    rÝ   rH  éÒ  rð  )g¤p=
×£ò?gæ?¤ß¾ä?gDúíëÀ9³?gª‚QI�€Ö?g}?5^ºIæ¿N©rT  r<   c                C   sH   t  |¡}|d urt  ||¡}t||ƒ |d u r6|j}|j|ksDJ ‚d S rd  )rU   r  Úbroadcast_tor   r<   )rY   r˜  ÚexpectrT  r<   r_   r_   r`   Ú_assert_equal  s    

zTestMoments._assert_equalr…   rE   )rE   r   zm, crˆ  )Nr   r   c                 C   sr   t j d¡}|j|d�}tj|||d�}|d u r>t j|dd�n|}t j|| | dd�t|ƒ }t||dd� d S )Nl   ŠrH¯Z rû   ra  r   r=   ç¼‰Ø—²Òœ<r¶   )	rU   r  r  rP   ÚmomentrT   rZ  r3  r
   )rY   r…   ro  rß  r  r|   r~   r  r_   r_   r`   Ú test_moment_center_scalar_moment  s    z,TestMoments.test_moment_center_scalar_momentrß  c                    sR   t j d¡}|j|d�‰g d¢}tjˆ|ˆ d�}‡ ‡fdd„|D ƒ}t||ƒ d S )Nl   ª%à~.}~= rû   rˆ  ra  c                    s   g | ]}t jˆ|ˆ d �‘qS )ra  )rP   r™  re  ©rß  r|   r_   r`   ri  &  rj  z?TestMoments.test_moment_center_array_moment.<locals>.<listcomp>)rU   r  r  rP   r™  r   )rY   r…   rß  r  ro  r~   r  r_   r›  r`   Útest_moment_center_array_moment  s    z+TestMoments.test_moment_center_array_momentc                 C   sN  t  | j¡}t|dƒ t  | jd¡}t|dƒ 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¢ƒ d}tj	t
|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� W d   ƒ n1 �sà0    Y  t d¡}tj|d< tt  |d¡tjƒ tt j|dd�dƒ ttt j|dd� ttt j|dd� d S ) Nrr   r   rŽ   r   rE   r   ç      ô?r   r    ç     €@rÝ   )r   r�  r   rž  ç333333ó?)rŽ   r   r   rH  ú1Mean of empty slice\.|invalid value encountered.*ru   r;   ra  r=   rz  r”  r‡  ©Úorderr>   )r   r   ©rT  rm   r%   ro   rp   rs   rt   )rP   r™  rþ  r	   rÿ  r
   ry   rz   rÈ   rÉ   rX   r—  rU   rV   r   r   r   r•  r   r   r   )rY   rZ   rò   r|   r_   r_   r`   Útest_moment)  sJ    






0

zTestMoments.test_momentr<   zexpect, orderri  ra  c                 C   s²   t j d¡ |¡}tj||d�}| j|||d� tjt  |d¡d|d�}| j||d|d� tjt  |d	¡d
|d�}| j||d|d� tjt  |d	¡d |d�}| j||d|d� d S )Nr!   ©r¢  r;   )r"   r!   r   )r>   r¢  )r!   r”  r«  r   )r   r   r    r!   r_   )rU   r  r\  r¥  rP   r™  r—  r•  )rY   r<   r–  r¢  r|   rZ   r_   r_   r`   Útest_constant_momentsX  s    ÿÿz!TestMoments.test_constant_momentsc                 C   sP   t  d¡ dd¡ t¡}t j|d< tj|dddd�}t jj	|dt jgd	d
� d S )Nr$   r   rK   ra  r   rb  rc  r�  rµ   r¶   )
rU   r   rS   r¥  r–  rV   rP   r™  r   r
   )rY   r»   Úmmr_   r_   r`   Útest_moment_propagate_nanj  s    
z%TestMoments.test_moment_propagate_nanc                 C   sD   t jtdd��" tjg d¢g d� W d   ƒ n1 s60    Y  d S )Nz6'order' must be a scalar or a non-empty 1D list/array.ru   rÝ   r¥  )rÈ   r   rz   rP   r™  r5  r_   r_   r`   Útest_moment_empty_orderr  s    z#TestMoments.test_moment_empty_orderc                 C   s8   t  d¡}tj|dd�}tj|dd�}t j ||¡ d S )NrE   r   )r™  r¥  )rU   r   rP   r™  r   r   )rY   r|   r~   r  r_   r_   r`   Útest_rename_moment_orderx  s    
z$TestMoments.test_rename_moment_orderc                 C   sô   t  | j¡}t |¡sJ ‚t  | j¡}t|ddƒ t j| jdd�}t|ddƒ t  | j¡}t|ddƒ t d¡}tj	|d< tj
d	d
��" tt  |¡tj	ƒ W d   ƒ n1 s®0    Y  tt j|dd�dƒ ttt j|dd� ttt j|dd� d S )Ng7l•*ÄÒ¿rE   r   ©Úbiasg¨õ2Û ùÛ¿rr   rm   r%   r‹  rŒ  ro   rp   rs   rt   )rP   Úskewrþ  rU   rK  Útestmathworksr	   rÿ  r   rV   rŽ  r   ry   rz   ©rY   rZ   r|   r_   r_   r`   Útest_skewness€  s    

0zTestMoments.test_skewnessc                 C   s   t t tdƒ¡dƒ d S )NrE   rr   )r   rP   r­  r   r5  r_   r_   r`   Útest_skewness_scalar•  s    z TestMoments.test_skewness_scalarc                 C   sz   t  d¡ dd¡ t¡}t j|d< t jdd��  tj|ddd	�}W d   ƒ n1 sT0    Y  t j	j
|d
t jgdd� d S )Nr$   r   rK   ra  r‹  rŒ  r   rb  rc  r   rµ   r¶   )rU   r   rS   r¥  r–  rV   rŽ  rP   r­  r   r
   )rY   r»   ró  r_   r_   r`   Útest_skew_propagate_nan™  s
    
.z#TestMoments.test_skew_propagate_nanc              
   C   sà   t jtdd��¾ t dd¡}t t |¡¡s0J ‚t t |tdƒ ¡¡sLJ ‚t t |tdƒ ¡¡shJ ‚t tj|dd�¡s€J ‚t t dgd	 ¡¡sšJ ‚t t d
t 	dd¡d  ¡¡s¾J ‚W d   ƒ n1 sÒ0    Y  d S )NúPrecision loss occurredru   çË9Ÿ•ÏÑ¿rE   ì           Fr«  gš™™™™™,@r#   r   rL   r    r˜  )
rÈ   rÉ   rX   rU   ÚrepeatrK  rP   r­  r–  r   ©rY   r»   r_   r_   r`   Útest_skew_constant_value¢  s    z$TestMoments.test_skew_constant_valuec                 C   sÔ   t  | j¡}t |¡sJ ‚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 d¡}tj	|d	< t
t  |¡tj	ƒ tt j|d
d�dƒ ttt j|dd� ttt j|dd� d S )Nr   r   ©Úfisherr¬  gOß»S@rE   gâx|ïN@g=
×£p=ú?rm   r%   ro   rp   ç®Gáz®ó¿rs   rt   )rP   Úkurtosisrþ  rU   rK  r®  r	   rÿ  r   rV   r   r   ry   rz   r¯  r_   r_   r`   Útest_kurtosis°  s    


zTestMoments.test_kurtosisc                 C   s   t tt g d¢¡ƒtjƒ d S )Nré   )r   ÚtyperP   r¼  rU   r   r5  r_   r_   r`   Útest_kurtosis_array_scalarÒ  s    z&TestMoments.test_kurtosis_array_scalarc                 C   sN   t  d¡ dd¡ t¡}t j|d< tj|ddd�}t jj	|dt jgd	d
� d S )Nr$   r   rK   ra  r   rb  rc  gÃõ(\�Âõ¿rµ   r¶   )
rU   r   rS   r¥  r–  rV   rP   r¼  r   r
   )rY   r»   r^  r_   r_   r`   Útest_kurtosis_propagate_nanÕ  s    
z'TestMoments.test_kurtosis_propagate_nanc                 C   s°   t  dd¡}tjtdd��‚ t  tj|dd�¡s4J ‚t  tj|tdƒ dd�¡sTJ ‚t  tj|tdƒ dd�¡stJ ‚t  tj|ddd�¡sŽJ ‚W d   ƒ n1 s¢0    Y  d S )	Nr´  rE   r³  ru   F)rº  rµ  r¹  )	rU   r¶  rÈ   rÉ   rX   rK  rP   r¼  r–  r·  r_   r_   r`   Útest_kurtosis_constant_valueÝ  s      z(TestMoments.test_kurtosis_constant_valuec                 C   s6   | j t | j ¡ }tt |d¡ ¡ t | j d¡ƒ d S )Nrð  )Útestcase_moment_accuracyrU   rT   r
   r   rP   r™  )rY   Z
tc_no_meanr_   r_   r`   Útest_moment_accuracyç  s    
ÿÿz TestMoments.test_moment_accuracyc                 C   sh   t jtdd��F tj d¡}|jdd�}d|d d …df< t |¡d  W d   ƒ n1 sZ0    Y  d S )Nr³  ru   l   :"z` )rù   rE   rû   ç)\�Âõ(ð?r   )rÈ   rÉ   rX   rU   r  r  rP   r­  )rY   r  r»   r_   r_   r`   Útest_precision_loss_gh15554ï  s
    z'TestMoments.test_precision_loss_gh15554c                 C   sx   d}t jt|d�� t g ¡ W d   ƒ n1 s20    Y  t jt|d�� t g ¡ W d   ƒ n1 sj0    Y  d S )Nr   ru   )rÈ   rÉ   rX   rP   r­  r¼  ©rY   rò   r_   r_   r`   Útest_empty_1dù  s
    (zTestMoments.test_empty_1d)&r‡   rˆ   r‰   r  rÿ  rþ  rU   r  rR  r\  rÂ  r®  r—  rÈ   r  r  r   rš  rœ  r¤  r   r   Z
complex128r¦  r¨  r©  rª  r°  r±  r²  r¸  r½  r¿  rÀ  rÁ  rÃ  rÅ  rÇ  r_   r_   r_   r`   r’  ü  s>   		/	"

r’  c              
   C   s  t  ¡ }tddd�}t jddd�}| t j|||d�ƒ}g }t ¡ �� t d¡ tt	|j
ƒƒD ]f}t t¡�H tj|d|d�}t |d	k¡r¤t t |¡¡r¤| |¡ W d   ƒ q\1 s¸0    Y  q\W d   ƒ n1 sØ0    Y  t |¡ | tj |¡ƒ}||fS )
NF)Ú	allow_nanZallow_infinityr   r   )Zmin_dimsZmin_side)r<   ÚelementsrT  Úerrorr¡  r   )ÚnpstZfloating_dtypesÚdictZarray_shapesZarraysrŒ  r�  rŽ  rl  r3  rT  Ú
contextlibÚsuppressÚ	ExceptionrP   r™  rU   rL  rë  rA  Ú
hypothesisZassumeÚ
strategiesZsampled_from)Zdrawr<   rÉ  rT  rß  Zok_axesr>   re   r_   r_   r`   Úttest_data_axis_strategy  s    

H
rÒ  c                   @   sÊ   e Zd Ze g d¢¡Ze g d¢¡ZdZdZdZ	dZ
dZdZd	Zd
Ze
d Zde
d  Zdd„ Zdd„ Zej dg d¢¡dd„ ƒZdd„ Zejjejej dd¡eƒ d�ej dddg¡dd„ ƒƒƒZdS )ÚTestStudentTestrÀ   r(  r   r   g÷�Sèz¶û¿gEˆý.ÚÌ?gÇ {¶ÀgÊB…4tý²?gÇ {¶û?g�ŠôìÚÌ?r   c              	   C   sø  t ƒ �Z}tjddd��, | td¡ t dd¡\}}W d   ƒ n1 sH0    Y  W d   ƒ n1 sf0    Y  tt |¡ƒ tt |¡ƒ t | j	d¡\}}t
|| jƒ t
|| jƒ t | j	d¡}d}t||ƒ t | jd¡\}}t
|| jƒ t
|| jƒ t | j	d¡\}}t
|| jƒ t
|| jƒ t | j	d	¡\}}t
|| jƒ t
|| jƒ tjjd
dddd�}tj|d< tjdd��h tt |d¡tjtjfƒ t
tj|ddd�dƒ tttj|ddd� tttj|ddd� W d   ƒ n1 �sê0    Y  d S )Nr‹  ©r�  Údividerý  rH  r´   r   ©r°   r¯   r   r   r!   rE   é3   i§Ìt ©r´  rµ  r…   rý   r<  rŒ  r3   ro   rp   )gÍ„Á^œBú¿g/kCÒüm»?rs   rt   )r   rU   rŽ  r{   rX   rP   Úttest_1sampr   rK  ÚX1r   ÚT1_0ÚP1_0r   ÚX2ÚT2_0ÚP2_0ÚT1_1ÚP1_1ÚT1_2ÚP1_2Únormrþ   rV   r   ry   rz   )rY   r^   ÚtrË   r~   r²   r|   r_   r_   r`   Útest_onesample,  sB    ÿL

ÿÿzTestStudentTest.test_onesamplec                 C   sv   t ttj| jddd� tj| jddd�\}}t|| jƒ t|| jƒ tj| jddd�\}}t|| jƒ t|| jƒ d S )Nr   rÊ  rÞ   r   rÙ   rÛ   )	ry   rz   rP   rÙ  rÚ  r
   ÚP1_1_lrà  ÚP1_1_g)rY   rå  rË   r_   r_   r`   Útest_1samp_alternativeX  s    ÿz&TestStudentTest.test_1samp_alternativerß   rD  c           	      C   s„   t j d¡}d}|j|ddd�}| ¡ }ddgdt jgt j d	gd
œ}tj|||d�}|jdd�}t||| ƒ t	|j
|d ƒ d S )Nl   <Ple¦H† rE   r(   r   ©r…   r´  rµ  gÃ�Ž]×?g$(ÔØ}w@géS1žèç?gâ¤ù¼›]@©r×   rÛ   rÙ   )Úpopmeanrß   ç333333ë?©Zconfidence_levelr   )rU   r  r  r  r  rP   rÙ  rÔ   r
   r   Údf)	rY   rß   r  rq  r|   rì  r  r~   ræ   r_   r_   r`   Útest_1samp_ci_1dd  s    
þz TestStudentTest.test_1samp_ci_1dc                 C   sT   t  t d¡d¡}d}tjt|d�� |jdd� W d   ƒ n1 sF0    Y  d S )NrE   r   ú4`confidence_level` must be a number between 0 and 1.ru   rî  )rP   rÙ  rU   r   rÈ   r   rz   rÔ   )rY   r~   rò   r_   r_   r`   Útest_1samp_ci_ivy  s    z TestStudentTest.test_1samp_ci_ivrµ   g÷ÿÿÿÿÿï?)ÚalphaÚ	data_axisrÙ   rÛ   c           
      C   sr   |\}}t j|d||d�}|j|d�\}}|dkr6|n|}	tj|	|d�}	t j||	||d�}tj |jd| ¡ d S )Nr   )rß   r>   rî  rÛ   r=   r   )rP   rÙ  rÔ   rU   ro  r   r
   r¯   )
rY   ró  rô  rß   rß  r>   r~   Úlr5  rì  r_   r_   r`   Útest_pvalue_ci€  s    ÿÿzTestStudentTest.test_pvalue_ciN)r‡   rˆ   r‰   rU   r   rÚ  rÝ  rÛ  rÜ  rà  rá  râ  rã  rÞ  rß  rç  rè  ræ  ré  rÈ   r  r  rð  rò  r  rÐ  ÚgivenrÑ  ZfloatsrÒ  rö  r_   r_   r_   r`   rÓ    s.   ,
ÿrÓ  c                   @   sv  e Zd Zdd„ Zej dg d¢¡dd„ ƒZej dg d¢¡dd	„ ƒZej dg d
¢¡dd„ ƒZ	ej dg d¢¡dd„ ƒZ
ej dg d¢¡dd„ ƒZej dg d
¢¡dd„ ƒZej dg d¢¡dd„ ƒZej ddg d¢fdg d¢fdg d¢fdg d¢fg¡dd„ ƒZej ddg d¢fdg d ¢fdg d!¢fdg d¢fg¡d"d#„ ƒZd$g d%ejfd$ejgd%ejfd$ejgg d&¢ejejejgfd$d%d'gd%d'ejgd(d)ejgfd*d%d'ejgg d&¢g d+¢fd*d%d'gd,d%ejgd,d(ejgfd*ejejgg d&¢ejejejgfgZej d-e¡d.d/„ ƒZd0d%d'd1ejgg d2¢d3fd0g d2¢d%d'd1ejgd3fgZej d4e¡d5d6„ ƒZej d7g d8¢¡d9d:„ ƒZd;S )<ÚTestPercentileOfScorec                 O   s   t j|i |¤ŽS rd  )rP   Zpercentileofscore)rY   ÚargsÚkwargsr_   r_   r`   Úf“  s    zTestPercentileOfScore.fzkind, result))r'  r>  )rT   é#   ©Ústrictr=  )Úweakr>  c                 C   s"   g d¢}t | j|d|d�|ƒ d S )N©
r   r   r   r    r!   r"   r#   r$   r%   rE   r    ©Úkind©r   rû  ©rY   r  rå   r»   r_   r_   r`   Útest_unique–  s    z!TestPercentileOfScore.test_unique))r'  r•  )rT   r>  rý  )rÿ  r<  c                 C   s"   g d¢}t | j|d|d�|ƒ d S )N)
r   r   r   r    r    r!   r"   r#   r$   r%   r    r  r  r  r_   r_   r`   Útest_multiple2ž  s    z$TestPercentileOfScore.test_multiple2))r'  r<  )rT   r•  rý  )rÿ  rƒ  c                 C   s"   g d¢}t | j|d|d�|ƒ d S )N)
r   r   r   r    r    r    r!   r"   r#   r$   r    r  r  r  r_   r_   r`   Útest_multiple3¦  s    z$TestPercentileOfScore.test_multiple3))r'  r=  )rT   r=  rý  )rÿ  r=  c                 C   s"   g d¢}t | j|d|d�|ƒ d S )N)
r   r   r   r!   r"   r#   r$   r%   rE   rF   r    r  r  r  r_   r_   r`   Útest_missing®  s    z"TestPercentileOfScore.test_missingc                 C   s"   g d¢}t | j|d|d�|ƒ d S )N©
rE   r  r=  r>  r<  rƒ  éF   r…  rj  rù   r>  r  r  r  r_   r_   r`   r4  ¶  s    z(TestPercentileOfScore.test_large_numbersc                 C   s"   g d¢}t | j|d|d�|ƒ d S )N)
rE   r  r=  r>  r>  r>  r<  rƒ  r
  r…  r>  r  r  r  r_   r_   r`   Útest_large_numbers_multiple3¾  s    z2TestPercentileOfScore.test_large_numbers_multiple3c                 C   s"   g d¢}t | j|d|d�|ƒ d S )N©
rE   r  r=  r<  rƒ  r
  r…  rj  rù   én   r>  r  r  r  r_   r_   r`   Útest_large_numbers_missingÆ  s    z0TestPercentileOfScore.test_large_numbers_missingr'  )r   rE   rù   rù   rT   )r   r!   é_   rù   rþ  )r   r   rj  rù   rÿ  c                 C   s&   g d¢}t | j|g d¢|d�|ƒ d S )Nr  )r   rE   r  r%  r  r  r  r_   r_   r`   Útest_boundariesÎ  s    z%TestPercentileOfScore.test_boundaries)r   rE   rù   )r   r!   r  )r   r   rj  c              
   C   sD   ddddddddd	t j
 g
}t| j|t j dt j
 g|d
�|ƒ d S )Nr   r   r   r    r!   r"   r#   r$   r%   r  )rU   r  r   rû  r  r_   r_   r`   Útest_infÖ  s    zTestPercentileOfScore.test_infrb  r   r(  r   r<  rù   ro   )r   r<  rù   r   zpolicy, a, score, resultc                 C   s   t | j|||d�|ƒ d S )Nrp   r  )rY   Úpolicyr»   rÆ  rå   r_   r_   r`   Útest_nans_okæ  s    z"TestPercentileOfScore.test_nans_okrs   r   ré   rØ  zpolicy, a, score, messagec                 C   s@   t t|d��  | j|||d� W d   ƒ n1 s20    Y  d S )Nru   rp   )ry   rz   rû  )rY   r  r»   rÆ  rò   r_   r_   r`   Útest_nans_failñ  s    z$TestPercentileOfScore.test_nans_failrT  ))r"   r4  ©r   r   r   )r   r   r   r   c                 C   sB   t  g d¢¡}| |¡}|d }g d¢}t| j||dd�|ƒ d S )N)r   r   r   r   r    r!   rE   r   r'  r  )rU   r   rS   r   rû  )rY   rT  r»   r  Úresultsr_   r_   r`   Útest_ndö  s
    
zTestPercentileOfScore.test_ndN)r‡   rˆ   r‰   rû  rÈ   r  r  r  r  r  r  r4  r  r  r  r  rU   rV   Zcasesr  r  r  r_   r_   r_   r`   rø  ‘  s`   









ý



ý
"ú
ÿÿý
rø  ZCase)Úf_obsÚf_exprc   r>   Úchi2r8  Úmod_logÚcr)r    r$   rG   r$   r    r   r'   rG   r(   r$   rI  r@  gfœx­(@)r   rx   rG   r   r  rH  rx   ç      Ð?g‡æÙ{TÉ4@)r   r!   r#   r%   ©r   r   r   c                   @   sL   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S )ÚTestPowerDivergencec                 C   sä   t  |¡}|d u r|j}nt  ||¡}|j| }tƒ �n}	|	 td¡ tj	|||||d�\}
}t
|
|ƒ |dksv|dkr–tj||||d�\}
}t
|
|ƒ W d   ƒ n1 sª0    Y  t  |¡}tjj ||d | ¡}t
||ƒ d S )NrM   ©r  r  rc   r>   Úlambda_r   Úpearson)r  r  rc   r>   )rU   r  r…   Ú	broadcastrT  r   r{   rX   rP   Úpower_divergencer
   Ú	chisquareÚdistributionsr  Úsf)rY   r  r  rc   r>   r!  Úexpected_statZnum_obsrÂ   r^   ÚstatrË   Z
expected_pr_   r_   r`   Úcheck_power_divergenceE  s,    

þ


ÿ
(


ÿz*TestPowerDivergence.check_power_divergencec              	   C   sà   t D ]Ö}|  |j|j|j|jd |j¡ |  |j|j|j|jd|j¡ |  |j|j|j|jd|j¡ |  |j|j|j|jd|j¡ |  |j|j|j|jd|j¡ |  |j|j|j|jd|j	¡ |  |j|j|j|jd|j	¡ qd S ©Nr"  r   úlog-likelihoodúmod-log-likelihoodúcressie-readr@  )
Úpower_div_1d_casesr*  r  r  rc   r>   r  r8  r  r  ©rY   Úcaser_   r_   r`   rÃ   `  s:    þþþþþþþzTestPowerDivergence.test_basicc              	   C   sà   t D ]Ö}tj |j¡}|  ||j|j|jd |j	¡ |  ||j|j|jd|j	¡ |  ||j|j|jd|j	¡ |  ||j|j|jd|j
¡ |  ||j|j|jd|j¡ |  ||j|j|jd|j¡ |  ||j|j|jd|j¡ qd S r+  )r/  rU   ré  r   r  r*  r  rc   r>   r  r8  r  r  )rY   r1  Úmobsr_   r_   r`   Útest_basic_maskedx  s<    þþþþþþþz%TestPowerDivergence.test_basic_maskedc              	   C   sà   t d }t d }t |j|jf¡}t t |j¡t |j¡ |jf¡}|  ||ddd|j|jg¡ |  ||ddd|j	|j	g¡ |  ||ddd|j
|j
g¡ |  ||ddd|j|jg¡ |  t |j¡ dd¡d dd d|j¡ d S )Nr   r   r"  r,  r-  r.  r   )r/  rU   rk  r  Ú	ones_likerT   r  r*  r  r8  r  r  r   rS   )rY   Úcase0Úcase1r  r  r_   r_   r`   rÇ  ‘  s4    ÿþþþþþzTestPowerDivergence.test_axisc                 C   sÎ   t d }t d }t |j|jf¡j}t t |j¡t |j¡ |jf¡j}|j|jg}t 	dgdgg¡}t
j|||d�\}}t||ƒ t
j|||d d�\}	}
t
j|||d d�\}}t|t |
|f¡ƒ d S )Nr   r   rb   rê  ra  )r/  rU   rk  r  rU  r4  rT   r  r  r   rP   r$  r
   r   )rY   r5  r6  r  r  Zexpected_chi2rc   r)  rË   Zstat0Úp0Zstat1Úp1r_   r_   r`   Útest_ddof_broadcasting«  s    ÿ
z*TestPowerDivergence.test_ddof_broadcastingc              
   C   s®   t  ¡ �’ tD ]|}|  |j|j|j|jd|j¡ |  |j|j|j|jd|j	¡ |  |j|j|j|jd|j
¡ |  |j|j|j|jd|j¡ qW d   ƒ n1 s 0    Y  d S )Nr"  r,  r-  r.  )rŒ  r�  Úpower_div_empty_casesr*  r  r  rc   r>   r  r8  r  r  r0  r_   r_   r`   Útest_empty_casesÇ  s$    
þþþþz$TestPowerDivergence.test_empty_casesc                 C   sN   t d j}t d j}t d j}t d j}tj||||dd�}d}t||ƒ d S )Nr   r"  r   rÖ  )r/  r  r  rc   r>   rP   r$  r   )rY   r  r  rc   r>   r~   r²   r_   r_   r`   Ú'test_power_divergence_result_attributes×  s    




ÿz;TestPowerDivergence.test_power_divergence_result_attributesc                 C   sÜ   t  ddgddgg¡}t  ddgddgg¡}ttdd	��& tjddgdd
gd� W d   ƒ n1 sd0    Y  ttdd	��  tj||dd� W d   ƒ n1 s 0    Y  tj||d�\}}t|ddgƒ t|ddgƒ d S )NrE   r  r=  r!   r  rü  r  úFor each axis slice...ru   rƒ  ©r  r  r   )r  r  r>   gòÌ‘¶mÛ@g¥ÝÇUUU@g¤j�^4;‘?gè4¨‰€;º?)rU   r   ry   rz   rP   r$  r
   )rY   r  r  r)  rã   r_   r_   r`   Útest_power_divergence_gh_12282â  s    4.z2TestPowerDivergence.test_power_divergence_gh_12282N)r‡   rˆ   r‰   r*  rÃ   r3  rÇ  r9  r;  r<  r?  r_   r_   r_   r`   r  C  s   r  c                   C   sF   t tdd��& tjddgddgd� W d   ƒ n1 s80    Y  d S )Nr=  ru   rE   r  r=  rƒ  r>  )ry   rz   rP   r%  r_   r_   r_   r`   Útest_gh_chisquare_12282ï  s    r@  zn, dtyper%  i@B c                 C   sj   t j| dg|d�}t j| d | d g|d�}t ||¡}|\}}t|| dd� t|j|ƒ t|j|ƒ d S )Nr   r;   r   r'  rà   )rU   r   rP   r%  r
   r   r°   r¯   )rq  r<   ÚobsÚexpr~   r)  rË   r_   r_   r`   Ú#test_chiquare_data_types_attributes÷  s    rC  c               	   C   sÌ  t  g d¢g d¢g¡j} t  g d¢g d¢g¡j}t j | |¡}t  ddg¡}t  ddt  d¡ d	t  d
¡   ddt  d¡ dt  d¡   g¡}tjj}t 	|¡\}}t
 ||¡ t
 || ||jdd�d ¡¡ tj|dd�\}}t
j||dd� t
 || ||jdd�d ¡¡ tj	|jdd�\}}t
 ||¡ t
 || ||jjdd�d ¡¡ tj|jddd�\}}t
j||dd� t
 || ||jdd�d ¡¡ t jjg d¢g d¢d�}	t jjg d¢g d¢d�}
tj	|	|
d�\}}t
 |d¡ tj	t j g d¢¡d d�\}}tt|t jƒƒ tt|t jƒƒ t|dƒ t|tjj dd¡ƒ t jdd��Z tƒ �2}| td ¡ t 	t j g ¡¡\}}W d   ƒ n1 �s˜0    Y  W d   ƒ n1 �s¸0    Y  tt|t jjƒƒ t|jd!ƒ t|jƒ t j g g g g¡}t 	|¡\}}tt|t jjƒƒ t
 |g ¡ t jdd��T tƒ �,}| td ¡ t 	|j¡\}}W d   ƒ n1 �sp0    Y  W d   ƒ n1 �s�0    Y  tt|t jjƒƒ t|jd"ƒ tt  |j¡ƒ d S )#N)r$   r$   rx   é    rK   )rK   rK   r   r    r!   )r   r   r   r   r   )r   r   r   r   r   g      8@r'   r   rx   rD  rI  r   rÂ  r!   r�  r   r=   r   r,  ©r!  r  r?   )r>   r!  )r   r!   r"   rÊ  rE   )r   r   r   r   r   r<  )r   r    r$   rE   rÊ  )r  ré   rŽ   r‹  rŒ  rM   r_   rÅ  )rU   r   rU  ré  r>  r8  rP   r&  r  r%  Úmatr   r   r'  rÜ  r$  r   rR  r   r   r   rŽ  r   r{   rX   ZMaskedArrayrT  r=  rL  )rA  r=  r2  Zexpected_chisqZ
expected_gr  ZchisqrË   ÚgZobs1Zexp1r^   Zempty3r_   r_   r`   Útest_chisquare_masked_arrays  sn    "ÿÿÿÿÿ
V
PrH  c                  C   sÊ   t  g d¢¡} d}t  dt| ƒd ¡}t  |  ¡ t  || ¡ ¡  ¡}t  |||  ¡}t  | |f¡j}t  g d¢¡ 	dd¡}|D ]B\}}t
j|d d …df |d d …df |d�\}	}
t|	|d	d
� q‚d S )N)r  rF   rC   rN   r!   rF   rE   r    r$   rE   r#   r%   rF   r   r"   r   r   r    gñ*k›âqµ¿r   ) g      $Àg    € ñ@r  g     r@g      ÀgffffffP@g       ÀgÍÌÌÌÌLD@r  g      A@r¾   g     €=@r  g     €:@rr   gš™™™™™8@r'   gffffff7@gq=
×£på?gš™™™™7@rŽ   g33333³6@r(   gš™™™™™6@rI  gfffffæ6@r´   gÍÌÌÌÌÌ8@r3   g     ÀA@rm   g     Àj@rK   r   r   rE  g{®Gázt?rà   )rU   r   r   r3  r8  rZ  rB  rk  rU  rS   rP   r$  r
   )rA  Úbetarg  ró  Zexpected_countsZtable4Ztable5r!  r(  r)  rË   r_   r_   r`   Ú/test_power_divergence_against_cressie_read_dataO  s    	 î ÿ
rJ  c                  C   sŽ  t g d¢ƒt g d¢ƒt g d¢ƒt g d¢ƒg} t g d¢ƒt g d¢ƒt g d¢ƒt g d¢ƒg}t g d	¢ƒt g d
¢ƒt g d¢ƒt g d¢ƒg}tt | d | d | d | d ¡dƒ tt |d |d |d |d ¡dƒ tt |d |d |d |d ¡dƒ tttj|d |d ƒ d}tj| Ž }t||ƒ tt | d | d | d | d ¡dƒ tt |d |d |d |d ¡dƒ tttj|d |d ƒ d S )N)gÑ"Ûù~jè?g^ºI+ã?gºI+‡î?gj¼t“ä?gÓMbX9ì?gÁÊ¡E¶óí?çôýÔxé&å?ç-²�ï§â?gÍÌÌÌÌÌè?rŽ   g®Gázî?g+‡ÙÎã?g´Èv¾Ÿï?g9´Èv¾Ÿî?)gú~j¼t“è?g¶óýÔxéâ?gßO�—nï?rK  gÑ"Ûù~jì?ç˜nƒÀÊí?gÇK7‰A`å?rL  g7‰A`åÐê?rŽ   çbX9´Èî?gZd;ßOå?g1¬Zdï?g²�ï§ÆKï?)gyé&1¬è?gáz®Gáâ?g`åÐ"Ûùî?g!°rh‘íä?g'1¬Zì?gZd;ßOí?g°rh‘í|ã?gj¼t“â?gƒÀÊ¡E¶ë?rŽ   gáz®Gáî?gÙÎ÷Sã¥ã?gŒJê4ï?gƒÀÊ¡Eî?)gð§ÆK7‰é?gh‘í|?5â?g‹lçû©ñî?g /Ý$å?g#Ûù~j¼ì?rM  gìQ¸…ëå?ç      ä?g      ì?rŽ   rN  gœÄ °rhå?g333333ï?ç
×£p=
ï?)r    r   r!   r   r!   r   r   r!   r    r    r    r   )r   r   r   r   r   r   r   r   r   r   r   r   )r   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ÍÌÌÌÌÌ#@r/   rš  gš™™™™™$@)g333333@gÍÌÌÌÌÌ@gÍÌÌÌÌÌ@r*   gÍÌÌÌÌÌ@)rž  r¢  r,   r  çÍÌÌÌÌÌ @)gš™™™™™!@gÍÌÌÌÌÌ!@ç333333 @çffffff
@g333333"@r   r   r   r   )g–N§Óét$@g ¥—Bv‘?)g
_ñ_ñ2@g˜5"]i2?)g\�Âõ(\%@g¯¢·+Ô‹?rÖ  )r   r   rP   Zfriedmanchisquarery   rz   r   Úmstats)rŒ  r�  r—  r²   r~   r_   r_   r`   Útest_friedmanchisquare|  sN    



ú




ý	



ý ÿ ÿ ÿ

ÿþÿþrU  c                   @   s4   e Zd ZdZddd„Zddd„Zdd	„ Zd
d„ ZdS )Ú
TestKSTestzLTests kstest and ks_1samp agree with K-S various sizes, alternatives, modes.ÚautorC   c           	      C   s8   t j|d||d�}t ||g¡}tt |¡||d� d S ©Nrä  ©rß   rÎ  r?   )rP   ÚkstestrU   r   r   ©	rY   r|   rß   Úexpected_statisticÚexpected_probrÎ  r@   rå   r¨  r_   r_   r`   Ú_testOne¶  s    zTestKSTest._testOnec                 C   s@   t j|d||d�}t j|t jj||d�}tt |¡||d� d S rX  )rP   rZ  Úks_1samprä  Úcdfr   rU   r   )rY   r|   rß   rÎ  r@   rå   Zresult_1sampr_   r_   r`   Ú_test_kstest_and_ks1samp¼  s
    ÿz#TestKSTest._test_kstest_and_ks1sampc                 C   s,   t  ddd¡}d}t |d¡}t||ƒ d S )NrK   r   r%   rÖ  rä  )rU   rN  rP   rZ  r   ©rY   r|   r²   r~   r_   r_   r`   Útest_namedtuple_attributesÂ  s    z%TestKSTest.test_namedtuple_attributesc                 C   sl   t  ddd¡}|  |d¡ t  ddd¡}|  |d¡ g d¢}|  |d¡ | j|dd	d
� | j|dd	d
� d S )NrK   r   r%   r×   éñÿÿÿr  ©
r»  g¸…ëQ¸®?g333333ã¿gÃõ(\�ÂÅ?g…ëQ¸å?gÃõ(\�ÂÅ¿g{®Gáz´¿gHáz®GÑ?g\�Âõ(\ï¿g®Gáz®ï¿rÛ   r  ©rÎ  rÙ   )rU   rN  ra  rX  r_   r_   r`   Útest_agree_with_ks_1sampÉ  s    z#TestKSTest.test_agree_with_ks_1sampN)rW  rC   )rW  rC   )r‡   rˆ   r‰   r  r^  ra  rc  rg  r_   r_   r_   r`   rV  ³  s    ÿ

rV  c                   @   sj   e Zd ZdZddd„Zdd„ Zdd	„ Zd
d„ Zdd„ Ze	j
 dejejg¡e	j
 dg d¢¡dd„ ƒƒZdS )ÚTestKSOneSamplezY
    Tests kstest and ks_samp 1-samples with K-S various sizes, alternatives, modes.
    rW  rC   c           	      C   s<   t j|t jj||d�}t ||g¡}tt |¡||d� d S )NrY  r?   )rP   r_  rä  r`  rU   r   r   r[  r_   r_   r`   r^  Ý  s    zTestKSOneSample._testOnec                 C   s0   t  ddd¡}d}t |tjj¡}t||ƒ d S )NrK   r   r%   rÖ  )rU   rN  rP   r_  rä  r`  r   rb  r_   r_   r`   rc  ã  s    z*TestKSOneSample.test_namedtuple_attributesc                 C   s€   t  ddd¡}|  |ddd¡ t  ddd¡}|  |dd	d
¡ g d¢}|  |ddd¡ | j|ddddd� | j|ddddd� d S )NrK   r   r%   r×   g²|»ÐNÄ?gÎï7.×sî?rd  r  gî{CTpÜ?g M<b*ä£?re  gZ­×LÊÒ?g86ùJ4ÇÒ?rÛ   gŸ+±·‡ÐÂ?r  rf  rÙ   gš…ˆHDþ»?gŽ–¿×rç?©rU   rN  r^  rX  r_   r_   r`   Útest_agree_with_rê  s    z!TestKSOneSample.test_agree_with_rc                 C   sJ   t jjdddd�}| j|ddddd	� |  |d
dd¡ |  |ddd¡ d S )NrL  rù   é±hÞ:)r´  r…   rý   r×   ghúÑ…Ÿè¿?gøÆÏ7Üå¶?Úasymprf  rÙ   gð^hˆü¤?rÛ   gvÇ!�Ô‰}?g*zº)¬‡ï?)rP   rä  rþ   r^  rX  r_   r_   r`   Útest_known_examples÷  s    ÿz#TestKSOneSample.test_known_examplesc                 C   s”   t t ttjddƒ¡ƒ ttdd�� tdddƒ W d   ƒ n1 sF0    Y  t t tdddƒ¡ƒ t g d¢¡}tt|dd	ƒj	t
ttgd
� d S )Nr   Tzn is not integral: 1.5ru   r(   rK   ))rÈ  r   TrŽ   )rÈ  çš™™™™™ñ?TrŽ   )rÈ  r   Trr   )rÈ  gš™™™™™¹¿Trr   )rD  ç      �?Trr   )rD  ro  FrŽ   )rD  r'   TgbÏÝÿÿï?)rD  r'   Fgiƒ¯õNq>)rD  ç      À?Tgâ‡vÕ(Ö?)rD  r  TgÂò¨TÖ	ï?)é@  g\�Âõ(\ß?Frr   )rq  ç      °?Fg¾¸·(¶Ý>)rq  gìQ¸…ë�?Fgß@c“êüï?)rq  ç       ?FgX+Ê³P¶?r(  r   )Zdtypes)r   rU   rK  r   rV   ry   rz   r  r   ÚcheckÚintr–  Úbool)rY   Zdatasetr_   r_   r`   Útest_ks1samp_allpathsÿ  s    *z%TestKSOneSample.test_ks1samp_allpathsÚksfuncú*alternative, x6val, ref_location, ref_sign))rÛ   r"   r"   r   )rÙ   r#   r#   rK   )r×   r"   r"   r   )r×   r#   r#   rK   c           	      C   sb   t  d¡d }||d< tjdd�j}||||d�}t|jddd� |j|ksPJ ‚|j|ks^J ‚d S )	NrE   r'   r"   r�  rÞ   r<  rµ   rà   )	rU   r   rP   rá  r`  r
   r°   Ústatistic_locationÚstatistic_sign)	rY   rx  rß   Úx6valÚref_locationÚref_signr|   r`  r~   r_   r_   r`   Útest_location_sign"  s    
z"TestKSOneSample.test_location_signN)rW  rC   )r‡   rˆ   r‰   r  r^  rc  rj  rm  rw  rÈ   r  r  rP   rZ  r_  r  r_   r_   r_   r`   rh  Ø  s    ÿ
#ÿrh  c                   @   s  e Zd ZdZd1d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jdd„ ƒZejjdd„ ƒZdd„ Zdd„ Zejjdd„ ƒZejjdd„ ƒZejjdd „ ƒZd!d"„ Zejjd#d$„ ƒZd%d&„ Zejjd'd(„ ƒZd)d*„ Zej d+ejejg¡ej d,g d-¢¡d.d/„ ƒƒZ d0S )2ÚTestKSTwoSamplesz<Tests 2-samples with K-S various sizes, alternatives, modes.rW  c           	      C   s4   t j||||d�}t ||g¡}tt |¡|ƒ d S )Nrf  )rP   Úks_2samprU   r   r   )	rY   rŒ  r�  rß   r\  r]  rÎ  rå   r¨  r_   r_   r`   r^  :  s    zTestKSTwoSamples._testOnec                 C   sˆ   |   dgdgddd¡ |   dgdgddd¡ |   dgdgddd¡ |   dgdgddd¡ |   dgdgddd¡ |   dgdgddd¡ d S )	Nr   r   r×   rŽ   rÛ   r'   rÙ   rr   )r^  r5  r_   r_   r`   Ú	testSmall@  s    zTestKSTwoSamples.testSmallc                 C   sœ   t  ddg¡}|d }|d }t  g d¢¡}|  ||ddd¡ |  ||ddd¡ |  ||d	dd¡ |  ||dd
d¡ |  ||dd
d¡ |  ||d	dd¡ d S )NrŽ   rI  rÿ   ©rŽ   rI  r´   r×   rÁ   rÛ   r=  rÙ   r@  r�  r?  r   ©rU   r   r^  ©rY   rÔ  Zdata1pZdata1mr×  r_   r_   r`   ÚtestTwoVsThreeH  s    zTestKSTwoSamples.testTwoVsThreec                 C   sœ   t  ddg¡}|d }|d }t  g d¢¡}|  ||ddd¡ |  ||ddd	¡ |  ||d
dd¡ |  ||ddd¡ |  ||ddd¡ |  ||d
dd¡ d S )NrŽ   rI  rÿ   rÆ  r×   r'   gÞÝÝÝÝÝí?rÛ   gá?rÙ   r  çš™™™™™é?rÂ  r€  rL  r   r„  r…  r_   r_   r`   ÚtestTwoVsFourT  s    zTestKSTwoSamples.testTwoVsFourc                 C   s–   t  ddd¡}|d d }|d d }|  ||ddd¡ |  ||ddd	¡ |  ||d
dd¡ |  ||ddd¡ |  ||ddd¡ |  ||d
dd¡ d S )Nr   rù   r   r<  r×   r½  g~zÿÿÿÿï?rÛ   gz³;ê.Bí?rÙ   r   rŽ   ç{®Gáz”?gn2IáUÀî?ri  )rY   Úx100Z	x100_2_p1Z	x100_2_m1r_   r_   r`   Útest100_100a  s    zTestKSTwoSamples.test100_100c                 C   s¤   t  ddd¡}t  ddd¡}|d d }|d d }|  ||ddd¡ |  ||d	dd
¡ |  ||ddd¡ |  ||ddd¡ |  ||d	dd¡ |  ||ddd¡ d S )Nr   rù   r  r  r<  r×   gÿñ¯ÿÊ?g@Âß¿î�?rÛ   g}nÝï€?rÙ   r   g¦:[ª³¥Ê?gà]O);’?gÑ«³—);‚?rr   rŽ   ri  )rY   rŠ  Zx110Z
x110_20_p1Z
x110_20_m1r_   r_   r`   Útest100_110l  s    zTestKSTwoSamples.test100_110c                 C   s  t jdgd dgd  dgd  dgd  td�}|d }t jdgd dgd  dgd  dgd  td�}t jdgd dgd  dgd  d	gd  td�}|  ||d
dd¡ |  ||ddd¡ |  ||ddd¡ |  ||d
dd¡ |  ||ddd¡ |  ||ddd¡ d S )Nr   r   r    r!   r"   r;   r   rE   r#   r×   g      Ô?g�¾^dHÛ?rÛ   gQl6¢ÊyË?rÙ   rr   rŽ   gVdEVdEÖ?g(f“„^ˆ·?gÄû·!ƒˆ§?g‘i�iÀ?gè+© Ï–ã?)rU   r   ru  r^  )rY   Zx2233Zx3344Zx2356Zx3467r_   r_   r`   ÚtestRepeatedValuesy  s    222z#TestKSTwoSamples.testRepeatedValuesc                 C   sØ   t  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
 ddd¡ d S )Nrƒ  r   r×   rÁ   rŽ   rÛ   rÂ  rÙ   rr   r'   r„  )rY   r×  r_   r_   r`   ÚtestEqualSizes…  s    zTestKSTwoSamples.testEqualSizesc           	   	   C   sŽ  d\}}d| | d d }t  dd|¡| }t  dd|¡}| j||dd| | ddd	� | j||dd| | dd
d	� | j||dd| | dd
d	� | j||dd| | dd
d	� tƒ �\}d}| t|¡ | j||dd| | ddd	� | j||dd| | ddd	� W d   ƒ n1 �s0    Y  tjdd��D}t d¡ | j||dd| | ddd	� t	|tdƒ W d   ƒ n1 �s€0    Y  d S )N)r²  iX  rŽ   r   r   r%  r×   g     @Ÿ@rW  rf  rl  rÛ   g½­2JEï?rÙ   g     @@gsW\ncæï?ú)ks_2samp: Exact calculation unsuccessful.r  TrŠ  r‹  ©
rU   rN  r^  r   r{   rX   rŒ  r�  rŽ  rf  ©	rY   Ún1Ún2Údeltar|   rZ   r^   rò   r7  r_   r_   r`   ÚtestMiddlingBoth‘  s>    ÿÿÿÿÿÿ&
ÿz!TestKSTwoSamples.testMiddlingBothc           	   	   C   sŽ  d\}}d| | d d }t  dd|¡| }t  dd|¡}| j||dd| | ddd	� | j||dd| | dd
d	� | j||dd| | ddd	� | j||dd| | ddd	� tƒ �\}d}| t|¡ | j||dd| | ddd	� | j||dd| | ddd	� W d   ƒ n1 �s0    Y  tjdd��D}t d¡ | j||dd| | ddd	� t	|tdƒ W d   ƒ n1 �s€0    Y  d S )N)rú   éL  rŽ   r   r   r%  r×   g     È¹@rl  rf  rW  rÛ   g«¹�“Z¢î?rÙ   g     @�@g @¾J—ñï?r�  r  TrŠ  r‹  r�  r‘  r_   r_   r`   ÚtestMediumBoth­  s>    ÿÿÿÿÿÿ&
ÿzTestKSTwoSamples.testMediumBothc                 C   sŠ   d\}}|d }d| | d d }t  dd|¡| }t  dd|¡}|  ||dd	| d
¡ |  ||dd| d¡ |  ||dd	| d¡ d S )N)é'  r  rÀ  rŽ   r   r   r%  rù   r×   g    `ýê@g      ó<rÛ   g     ˆ�@gé”ò¼‰·ï?rÙ   gi·ÑÂmb£:ri  )rY   r’  r“  Úlcmr”  r|   rZ   r_   r_   r`   Ú	testLargeÊ  s    zTestKSTwoSamples.testLargec                 C   s\   t j d¡ t jjdd�}t jjdd�d }| j||dddd	d
� | j||ddddd
� d S )Né@â i¸  rû   i¹  r(   r×   g�¸Cåæè¼?ç      é<rl  rf  r  ©rU   r  rR  r  r^  rî   r_   r_   r`   Útest_gh11184Õ  s    ÿÿzTestKSTwoSamples.test_gh11184c                 C   sˆ   t j d¡ t jjdd�}t jjdd�d }| j||dddd	d
� | j||ddddd
� | j||dddd	d
� | j||dddd	d
� d S )Nr›  r˜  rû   i'  r(   r×   g 	_Êr!»?gADà®ß5rl  rf  rœ  r  rÛ   g×œN#ýyƒ7rÙ   gvqíãw¹¸?r�  rî   r_   r_   r`   Útest_gh11184_biggerß  s    ÿÿÿÿz$TestKSTwoSamples.test_gh11184_biggerc                 C   s„   t j d¡ tdddƒD ]f}t jj|d�}t jj|d dd�}tj||dd	�j}tj||d
d	�j}t|d| ƒ t|d| ƒ qd S )Nr›  rú   ià.  rû   rE   r'   ©r…   r´  r  rf  rl  r   )	rU   r  rR  rl  r  rP   r�  r¯   r   )rY   r|   Zvals1Zvals2r  rl  r_   r_   r`   Útest_gh12999î  s    zTestKSTwoSamples.test_gh12999c           	   	   C   s.  d\}}|d }d| | d d }t  dd|¡| }t  dd|¡}| j||dd| d	d
d� | j||dd| ddd� | j||dd| d	dd� |  ||dd| d¡ |  ||dd| d¡ tƒ �T}d}| t|¡ | j||dd| ddd� | j||dd| ddd� W d   ƒ n1 �s 0    Y  d S )N)r˜  iø*  rÀ  rŽ   r   r   r%  r×   g     ˜�@gkHYøï?rl  rf  gLÆÉ”.øï?r  rW  rÛ   g.LbG«2è?rÙ   rm   g¶r?ÖŽþï?r�  )rU   rN  r^  r   r{   rX   )	rY   r’  r“  r™  r”  r|   rZ   r^   rò   r_   r_   r`   ÚtestLargeBothú  s2    ÿÿÿÿÿzTestKSTwoSamples.testLargeBothc                 C   s$   d}t  ddgdg¡}t||ƒ d S )NrÖ  r   r   r   )rP   r�  r   ©rY   r²   r~   r_   r_   r`   ÚtestNamedAttributes  s    z$TestKSTwoSamples.testNamedAttributesc                 C   s€   ddl m}m} |ddddƒ |ddddƒ tjdd��4 tt|dd	ddƒ tt|d
dddƒ W d   ƒ n1 sr0    Y  d S )Nr   )Ú_count_paths_outside_methodÚ!_compute_outer_prob_inside_methodr   rú   ié  rs   rŒ  r–  iK  r¿  )Úscipy.stats._stats_pyr¥  r¦  rU   rŽ  ry   ÚFloatingPointError)rY   r¥  r¦  r_   r_   r`   Útest_some_code_paths  s    ÿÿz%TestKSTwoSamples.test_some_code_pathsc                 C   s8   t ttjg dgƒ t ttjdgg ƒ t ttjg g ƒ d S r#  )ry   rz   rP   r�  r5  r_   r_   r`   Útest_argument_checking)  s    z'TestKSTwoSamples.test_argument_checkingc                 C   sd   t j d¡ d}tjj|ddd�}|d }tj||ddd� tj||d	dd� tj||d
dd� dS )zEnsure gh-12218 is fixed.éNa¼ i    rr   r   rê  rÛ   rl  rY  rÙ   r×   N)rU   r  rR  rP   rá  rþ   r�  )rY   r’  Úrvs1Úrvs2r_   r_   r`   Útest_gh12218/  s    zTestKSTwoSamples.test_gh12218c                 C   s€   t jjdd�}|jdd�d }|jdd�}d}tjt|d��0 tj||d	d
�}t|j	ddd� W d   ƒ n1 sr0    Y  d S )Ni­{f©rR  iq  rû   r'   iq  z(ks_2samp: Exact calculation unsuccessfulru   rÙ   rÞ   r   r[  r¶   )
rU   r  ÚRandomStaterÈ   rÉ   rX   rP   r�  r
   r¯   )rY   r  rÔ  r×  rò   r~   r_   r_   r`   Útest_warnings_gh_14019<  s    z'TestKSTwoSamples.test_warnings_gh_14019rx  ry  ))rÛ   çš™™™™™@r²  r   )rÙ   çffffff@r›  rK   )r×   r²  r²  r   )r×   r³  r›  rK   c           	      C   s^   t jdt jd�}| ¡ }||d< tj|||d�}|jdks>J ‚|j|ksLJ ‚|j|ksZJ ‚d S )NrE   r;   r"   rÞ   r<  )	rU   r   r   rö  rP   r�  r°   rz  r{  )	rY   rx  rß   r|  r}  r~  r|   rZ   r~   r_   r_   r`   r  H  s    
z#TestKSTwoSamples.test_location_signN)rW  )!r‡   rˆ   r‰   r  r^  r‚  r†  rˆ  r‹  rŒ  r�  rŽ  rÈ   r  rF  r•  r—  rš  rž  r  rŸ  r¡  r¢  r¤  r©  rª  r®  r±  r  rP   rZ  r�  r  r_   r_   r_   r`   r€  7  sD    ÿ








ÿr€  c               	   C   sâ  d\} }| |  g||gf}t  ddd¡}t  ddd¡}t  t  ddd¡t  ddd¡g¡}t  t  ddd¡t  ddd¡g¡}tj||dd�\}}t||g| |fƒ tj|j|jdd�\}}t||g|ƒ tj||dd�\}}t||g|ƒ tƒ �\}	t jddd	��, |	 	t
d
¡ t dd¡\}}W d   ƒ n1 �s20    Y  W d   ƒ n1 �sR0    Y  tt  |¡ƒ tt  |¡ƒ d}
tj||dd�}t||
ƒ t  |||g¡}t  |||g¡}tj||dd�\}}tt  |¡| ƒ tt  |¡|ƒ t|jdƒ tjt  |dd¡t  |dd¡dd�\}}tt  |¡| ƒ tt  |¡|ƒ t|jdƒ tttj||dd� tj||ddd�\}}t|d|d  ƒ t|| ƒ tj||ddd�\}}t||d ƒ t|| ƒ t j d¡}tjjddd|d�}t j|d< tjjddd|d�tjjdd|d� }t j|d< t jdd��* tt ||¡t jt jfƒ W d   ƒ n1 �sV0    Y  ttj||dd �d!ƒ tttj||d"d � tttj||d#d � tjt
d$d%��( t g d&¢g d'¢¡\}}W d   ƒ n1 �sÜ0    Y  tt  |¡|ft jdfƒ t jdd��r tt g d&¢g d&¢¡t jt jfƒ t  dt jgd(dgg¡}tt |t  d)¡¡dt jgdt jgfƒ W d   ƒ n1 �s†0    Y  t   d*¡}tttj| !d+¡| !d,¡ƒ d-d.„ }t  "|¡}t j|d d …d/d0…f< t j|d d …d1d2…f< tj||ddd �\} }tj||dddd3�\}}t|| d4d5� t jdd��& t||| |dƒd4d5� W d   ƒ n1 �sj0    Y  tj||dddd3�\}}t|| d4d5� t jdd��& t||| |dƒd4d5� W d   ƒ n1 �sÔ0    Y  d S )6N)gÆ”uâÿé?gÈµ·IÈÚ?r   rù   rÄ  gžï§ÆKÿX@r   r=   r‹  rÔ  rý  rH  r´   rÖ  r4  r   r}  rÊ  rÞ   rÙ   ©r>   rß   rÛ   r«  r!   rE   éõ  rØ  r²  rL  )rµ  r…   rý   rŒ  ro   rp   )ghømÇ#1Ð?gr¦yÌ§œé?rs   rt   r³  ru   r  rÄ  rK   r~  r  )r$   r   ©r   r   r    c                 S   s4   | dk r|dks | dkr(|dkr(|d S d|d  S ©Nr   rÙ   rÛ   r   r   r_   ©rå  rË   Úaltr_   r_   r`   Úconvertµ  s     ztest_ttest_rel.<locals>.convertr  r=  r  r  r×  r[  rà   )#rU   rN  r   rP   Ú	ttest_relr   rU  r   rŽ  r{   rX   r   rK  r   r  Úabsr   rT  r€  ry   rz   r
   r  r°  rä  rþ   rV   r   rÈ   rÉ   r  r•  r   rS   Ú	vectorize)ÚtrrÉ  Útprr¬  r­  Úrvs1_2DÚrvs2_2Drå  rË   r^   r²   r~   Úrvs1_3DÚrvs2_3Dr  r|   rZ   Úananrº  Ú	converterr_   r_   r`   Útest_ttest_rel[  s¬    ""ÿP
þ



ÿ
:ÿ8"ÿ$
ÿ
ÿ
6ÿ
rÆ  c                  C   s˜   t jdddg} g d¢}tj| |dd�}tj|| dd�}t|j|j dd� t|j|jdd� t |d	d … | d	d … ¡}t||dd� t|d
dd� d S )NrI  r´   rH  ©rŽ   rI  rŽ   rI  ro   rp   rµ   r¶   r   )rt  g°rh‘í|Ç?ç-Cëâ6?)rU   rV   rP   r»  r
   r°   r¯   ©r|   rZ   r÷  rø  Zr3r_   r_   r`   Útest_ttest_rel_nan_2nd_argÍ  s    rÊ  c                  C   s4   t  g g ¡} t| t jjƒsJ ‚t| tjtjfƒ d S rd  )rP   r»  rR  Ú	_stats_pyÚTtestResultr   rU   rV   ©rå   r_   r_   r`   Ú#test_ttest_rel_empty_1d_returns_nanâ  s    rÎ  zb, expected_shape)r   r!   r   rv  ©r   r   r   )r   r   c                 C   sX   t  d¡}tj|| dd�}t|tjjƒs,J ‚t j|t jd�}t	|j
|ƒ t	|j|ƒ d S ©N)r   r   r   rK   r=   rW  )rU   rû  rP   r»  rR  rË  rÌ  rf   rV   r   r°   r¯   ©rÂ   Zexpected_shaper»   rå   Zexpected_valuer_   r_   r`   Útest_ttest_rel_axis_size_zeroê  s    
rÒ  c                  C   sV   t  d¡} t  d¡}tj| |dd�}t|tjjƒs6J ‚t|jj	dƒ t|j
j	dƒ d S ©N)r   r$   r   ©r!   r$   r   r   r=   ©r!   r   )rU   rû  rP   r»  rR  rË  rÌ  r   r°   rT  r¯   ©r»   rÂ   rå   r_   r_   r`   Ú test_ttest_rel_nonaxis_size_zeroù  s    

r×  rß   rD  c                 C   sŒ   t j d¡}d}|j|ddd�}|j|ddd�}ddgdt jgt j d	gd
œ}tj||| d�}|jdd�}t|||  ƒ t	|j
|d ƒ d S )Nl   C67l:  rE   r(   r   rê  gÜZÜ?Y˜þ¿g¦ši{aœÙ?g8Èÿ ëù¿gà€ºÿC•ª?rë  rÞ   rí  rî  r   )rU   r  r  r  r  rP   r»  rÔ   r
   r   rï  )rß   r  rq  r|   rZ   r  r~   ræ   r_   r_   r`   Útest_ttest_rel_ci_1d  s    	
þrØ  ztest_fun, argsrE   c                 C   sJ   | |Ž }d}t jt|d�� |jdd� W d   ƒ n1 s<0    Y  d S )Nrñ  ru   rE   rî  )rÈ   r   rz   rÔ   )Ztest_funrù  r~   rò   r_   r_   r`   Útest_ttest_ci_iv  s    rÙ  c                 C   s   ddd„}|| |ƒ|||ƒ S )Nr   c                 S   s<   t  | ¡} t j| |d�}t j| |dd�}| j| }|||fS )Nr=   r   r  )rU   r  rT   rh   rT  )r|   r>   Úmurh   Únobsr_   r_   r`   Ú_stats*  s
    

z_desc_stats.<locals>._stats)r   r_   )rŒ  r�  r>   rÜ  r_   r_   r`   Ú_desc_stats)  s    
rÝ  c               	   C   s  d} d}| |  g||gf}t  ddd¡}t  ddd¡}t  ||g¡}t  ||g¡}tj||dd�\}}t||g| |fƒ ttjt||ƒŽ ||gƒ tj|j|jdd�\}}t||g|ƒ t|j|jƒ}	ttj|	Ž ||gƒ tj||dd�\}}t||g|ƒ t||dd�}	ttj|	Ž ||gƒ t	ƒ �Z}
t j
d	d
��, |
 td¡ t dd¡\}}W d   ƒ n1 �sf0    Y  W d   ƒ n1 �s†0    Y  tt  |¡ƒ tt  |¡ƒ t  |||g¡}t  |||g¡}tj||dd�\}}tt  |¡t  | ¡ƒ tt  |¡|ƒ t|jdƒ tjt  |dd¡t  |dd¡dd�\}}tt  |¡t  | ¡ƒ tt  |¡|ƒ t|jdƒ tttj||dd� tttjgt|j|jƒ¢R ddiŽ tj||dd�\}}t|d|d  ƒ t|| ƒ tj||dd�\}}t||d ƒ t|| ƒ tj|j|jddd�\}}t|j|jƒ}	ttj|	ddiŽ||gƒ tj|j|jddd�\}}t|j|jƒ}	ttj|	ddiŽ||gƒ t j d¡}tjjddd|d�}t j|d< tjjddd|d�}t j
d	d
��* tt ||¡t jt jfƒ W d   ƒ n1 �s 0    Y  ttj||dd�dƒ tttj||dd� tttj||d d� tjtd!d"��( t g d#¢g d$¢¡\}}W d   ƒ n1 �s†0    Y  tt  |¡|ft j dfƒ t j
d	d
��r tt g d#¢g d#¢¡t jt jfƒ t  dt jgd%dgg¡}tt |t  !d&¡¡dt jgdt jgfƒ W d   ƒ n1 �s00    Y  t j|d d …d d …dd'…f< t j|d d …d d …d(d)…f< d*d+„ }t  "|¡}tj||ddd�\} }tj||dddd,�\}}t|| d-d.� t||| |dƒd-d.� tj||dddd,�\}}t|| d-d.� t||| |dƒd-d.� d S )/Nç	ÌùrÜuñ?g8Mè�Ñ±Ñ?r   rù   r!   éi   r   r=   r‹  rŒ  rý  rH  r´   r4  r   r}  rÊ  rÞ   rß   rÙ   rÛ   r´  r«  rE   rµ  rØ  r²  ro   rp   )gÔò¨uÍ·Ï?g*Ž�Ø,½é?rs   rt   r³  ru   r  rÄ  rK   r~  r  r"   rG   c                 S   s4   | dk r|dks | dkr(|dkr(|d S d|d  S r·  r_   r¸  r_   r_   r`   rº  �  s     ztest_ttest_ind.<locals>.convertr×  r[  rà   )#rU   rN  r   rP   Ú	ttest_indr   Úttest_ind_from_statsrÝ  rU  r   rŽ  r{   rX   r   rK  r  r   r¼  r   rT  r€  ry   rz   r
   r  r°  rä  rþ   rV   r   rÈ   rÉ   r  r•  r½  )r¾  rÉ  r¿  r­  r¬  rÀ  rÁ  rå  rË   rù  r^   rÂ  rÃ  r  r|   rZ   rÄ  rº  rÅ  r_   r_   r`   Útest_ttest_ind3  sÊ    
ÿþ
ÿ
ÿPþ

ÿÿ

ÿÿ
:ÿ8"ÿ$
ÿ
ÿ
râ  c                   @   s2  e Zd ZdZej d¡ e e de d ¡ej de d ¡f¡Z	e e ed ¡d ej ed ¡f¡Z
e d¡Ze d¡d ZddgZddgZej d¡ ejjd	dd
d� dd	¡jZejjdddd�ZddgZddgZg d¢Ze	e
ddiefe	je
jddiefe	ddd…f e
ddd…f ddied fe	ddd…f  ¡ e
ddd…f  ¡ ddied fe	e
dddœefe	e
ej d¡ddœefeeddidfeedddœefeei dfe	e
ej d¡ddœefg
Zej de¡dd„ ƒZ dd„ Z!dd„ Z"d d!„ Z#d"d#„ Z$ej %¡ d$d%„ ƒZ&d&d'„ Z'd(d)„ Z(d*d+„ Z)dS ),ÚTest_ttest_ind_permutationsr  r   r   r    rù   rE   r   r   r!   r²  r³  r$   çœî£'^P?gCêŒq¤å?g$ûšRµƒå?)g=Bõ™¶Æï?g³¤îå?goÅœã–âê?g‡pº�î?gœî£'^Ð?r>   N)rý   r>   Ú	equal_varTrK   )r>   rý   rÁ   za,b,update,p_dc                 C   sv   d ddœ}d ddddœ}|  |¡ |  |¡ tj||fi |¤Ž\}}tj||fi |¤Ž\}	}
t||	dƒ t|
|ƒ d S )NF©r>   rå  rú   r   )r>   rå  Úpermutationsrý   r!   )ÚupdaterP   rà  r   )rY   r»   rÂ   rè  Úp_dZ	options_aÚ	options_pZstat_ar0  Zstat_pr¯   r_   r_   r`   Útest_ttest_ind_permutationsÙ  s    
ÿ

z7Test_ttest_ind_permutations.test_ttest_ind_permutationsc                 C   s   t j d¡ d}t j d|d¡}t j d|d¡}dddœ}|jdd� tj||fi |¤Ž}tj||fi |¤Ž}|jd	d� tj||fi |¤Ž}tj||fi |¤Ž}|jd
d� tj||fi |¤Ž}	tj||fi |¤Ž}
t|j|jƒ t|j|	jƒ t|j|j ƒ t|j|j ƒ t|	j|
j ƒ t|	j	|
j	ƒ t|j	|j	ƒ t|j	|j	ƒ |j	dk}t|j	| |j	|  |	j	| ƒ t|j	|  |j	|   |	j	|  ƒ d S )Nr   r   r   r   rú   )r>   rç  rÛ   rÞ   rÙ   r×   r'   ©
rU   r  rR  r\  rè  rP   rà  r   r°   r¯   )rY   ÚNr»   rÂ   rê  Úres_g_abÚres_g_baÚres_l_abÚres_l_baÚres_2_abZres_2_bar=  r_   r_   r`   Ú test_ttest_ind_exact_alternativeæ  s:    

ÿ
ÿz<Test_ttest_ind_permutations.test_ttest_ind_exact_alternativec                 C   sš   t j d¡ d}t j |¡}t j |¡}t ||¡}tj||dd�}tj||dd�}tj||t jd�}|j|jksvJ ‚|j|jks†J ‚|j|jks–J ‚d S )Nr   r   rú   ©rç  )rU   r  rR  r\  rP   rà  r  r¯   )rY   rí  r»   rÂ   r  rŽ  r�  r§  r_   r_   r`   Útest_ttest_ind_exact_selection  s    z:Test_ttest_ind_permutations.test_ttest_ind_exact_selectionc           
      C   s’   t j d¡ t j d¡}t j d¡}t  ||f¡}t|ƒt|ƒ }}d}t|||dƒ\}}}tt|ƒƒ}	|	t|| |ƒks~J ‚t|ƒ|	ksŽJ ‚d S )Nr   r   r    rx  T)	rU   r  rR  r\  rê  r3  r   Úsetr   )
rY   r»   rÂ   rß  ÚnaÚnbrç  Zt_statr0  Zn_uniquer_   r_   r`   Ú!test_ttest_ind_exact_distribution  s    ÿ
z=Test_ttest_ind_permutations.test_ttest_ind_exact_distributionc           	      C   s  t j d¡ d}t j dd|¡}t j d|¡}ddddœ}|jdd	� tj||fi |¤Ž}tj||fi |¤Ž}|jd
d	� tj||fi |¤Ž}tj||fi |¤Ž}t|j|jƒ t|j|j ƒ t|j|j ƒ t|j	|j	 dd|d d   ƒ t|j	|j	 dd|d d   ƒ d S )Nr   r<  r   r   rK   rú   )r>   rç  rý   rÛ   rÞ   rÙ   r   rç  rì  )	rY   rí  r»   rÂ   rê  rî  rï  rð  rñ  r_   r_   r`   Ú#test_ttest_ind_randperm_alternative1  s(    ÿÿz?Test_ttest_ind_permutations.test_ttest_ind_randperm_alternativec           	      C   sN  t j d¡ d}t j |d¡}t j |d¡}dddœ}|jdd� tj||fi |¤Ž}|jdd� tj||fi |¤Ž}|jd	d� tj||fi |¤Ž}t|j|j d
d
|d d
   ƒ |jdk}t	d|j|  |j| dd� t	dd
|j|    |j|  dd� t	d|j|   |j|  dd� t	dd
|j|   |j| dd� d S )Nr   r<  r    r  ©rç  rý   rÛ   rÞ   rÙ   r×   r   rç  r'   r   r‰  r¶   )
rU   r  rR  r\  rè  rP   rà  r   r¯   r
   )	rY   rí  r»   rÂ   rê  rî  rð  rò  r=  r_   r_   r`   Ú$test_ttest_ind_randperm_alternative2N  s6    
ÿ

ÿÿÿ
ÿz@Test_ttest_ind_permutations.test_ttest_ind_randperm_alternative2c           	      C   sä  t j d¡ d}t j |d¡}t j |d¡}t j|d< t j|d< t j|d< t j|d< dddœ}|jd	d
� ttdd��$ tj	||fi |¤Ž}W d   ƒ n1 s 0    Y  t
ƒ ��}| td¡ |jdd
� tj	||fi |¤Ž}t  |¡jdd�t  |¡jdd�B }tj	|d d …| f |d d …| f fi |¤Ž}t|j| t jƒ t|j| t jƒ t|j|  |jƒ t|j|  |jƒ tj	| ¡ | ¡ fi |¤Ž}t  |j¡�s®J ‚t  |j¡�sÀJ ‚W d   ƒ n1 �sÖ0    Y  d S )Nr   r<  r!   ©r!   r   )r$   r   )r%   r   rú   rû  rs   rp   rØ  ru   rn   rb  r=   )rU   r  rR  r\  rV   rè  ry   rz   rP   rà  r   rW   rX   rK  rA  r   r¯   r°   r
   rè  )	rY   rí  r»   rÂ   rê  r~   r^   r=  r�  r_   r_   r`   Ú$test_ttest_ind_permutation_nanpolicyp  s2    




2
$0z@Test_ttest_ind_permutations.test_ttest_ind_permutation_nanpolicyc                 C   sÈ   t tdd��$ tj| j| jdd� W d   ƒ n1 s60    Y  t tdd��$ tj| j| jdd� W d   ƒ n1 sv0    Y  t tdd��( tj| j| jdddd	� W d   ƒ n1 sº0    Y  d S )
NzPermutations must beru   rL   rô  r(   z'hello' cannot be usedr   Zhello)rç  rý   r>   )ry   rz   rP   rà  r¨  Úb2r»   rÂ   r5  r_   r_   r`   Ú'test_ttest_ind_permutation_check_inputs”  s    22ÿzCTest_ttest_ind_permutations.test_ttest_ind_permutation_check_inputsc                 C   sN   d}t j |d¡}t j |d¡}tj||dd�j}td|vƒ d|vsJJ ‚d S )NrE   r  r   rô  rr   )rU   r  r\  rP   rà  r¯   Úprint)rY   rí  r»   rÂ   Zp_valuesr_   r_   r`   Ú)test_ttest_ind_permutation_check_p_values�  s    zETest_ttest_ind_permutations.test_ttest_ind_permutation_check_p_values)*r‡   rˆ   r‰   rí  rU   r  rR  rk  r   r»   rÂ   r¨  rÿ  r©  Zb3rP   rä  rþ   rS   rU  r¬  r­  ré  Zp_d_genZp_d_bigÚtolistr°  r  ÚparamsrÈ   r  r  rë  ró  rõ  rù  rú  rF  rü  rþ  r   r  r_   r_   r_   r`   rã  °  sP   ,(

ÿÿ*2
õ
*
!$	rã  c                   @   sž   e Zd Zej ¡ ejjddddœddii gg d¢d�ejjd	d
dgd	dgd�dd„ ƒƒƒZejjddddœddii gg d¢d�ej dddg¡dd„ ƒƒZdS )ÚTest_ttest_ind_commonÚkwdsr%  r   rû  ÚtrimrL  )rç  r  Úbasic)Zidsrå  TFZunequal_varc                 C   s¶  t j d¡ t j dddddd¡}t j ddddd¡}tj||fd	d
i|¤Ž}d\}}}||d d …|d d …dd d …f }	|d d …dd d …|d d …f }
tj|	|
fd	di|¤Ž}t|j|d d …||d d …f |jƒ t|j|d d …||d d …f |jƒ t  	t  
|d¡d
d¡}t  	t  
|d¡d
d¡}|jd d… }t  |¡}t  |¡}tdd„ |D ƒŽ D ]B}|| }|| }tj||fd	di|¤Ž}|j||< |j||< �qVt||jƒ t||jƒ d S )Nr   r!   r    r#   r   r"   r$   r   r>   rL   )r   r   r   rt  ©r   r   r   r   r   r   rK   ©r!   r   r    r   r   r   c                 s   s   | ]}t |ƒV  qd S rd  rk  re  r_   r_   r`   Ú	<genexpr>É  rj  z=Test_ttest_ind_common.test_ttest_many_dims.<locals>.<genexpr>)rU   r  rR  r\  rP   rà  r   r°   r¯   r€  ÚtilerT  r•  r   r
   )rY   r  rå  r»   rÂ   r~   rg  rh  r^  r¨  rÿ  r�  r|   rZ   rT  Ú
statisticsÚpvaluesÚindicesÚxiÚyir§  r_   r_   r`   Útest_ttest_many_dimsª  s6    
 ÿÿ


z*Test_ttest_ind_common.test_ttest_many_dims)r  rç  r  r>   rK   c           
   	   C   s  t jjddd� d¡}t jjddd� d¡}t j|d d d< t j|d d d< t  t j|| |d	�¡}tƒ �l}t jd
d��@ | 	t
d¡ | 	t
d¡ tj||fd|i|¤Ž}W d   ƒ n1 sÂ0    Y  W d   ƒ n1 sà0    Y  t  |j¡}t||ƒ t  |j¡}	t|	|ƒ d S )NrE   )r!   r   rE   rû   r–  r   r   r   r"   r=   r‹  rŒ  z'invalid value encountered in less_equalr³  r>   )rU   r  Úrandintr¥  rV   rK  rZ  r   rŽ  r{   rX   rP   rà  r¯   r   r°   )
rY   r  r>   r»   rÂ   r¨  r^   r~   Zp_nansZstatistic_nansr_   r_   r`   Útest_nans_on_axisÓ  s    ÿT
z'Test_ttest_ind_common.test_nans_on_axisN)	r‡   rˆ   r‰   rÈ   r  rF  r  r  r  r_   r_   r_   r`   r  §  s"   ÿþÿ#ÿþr  c                	   @   sÒ   e Zd Zg d¢g d¢dddgg d¢g d¢dddgg d¢g d¢d	d
dgg d¢g d¢dddgg d¢g d¢dddggZej de¡dd„ ƒZdd„ Zdd„ Z	ej dd¡dd„ ƒZ
dd „ Zej d!g d"¢¡d#d$„ ƒZd%S )&ÚTest_ttest_trimré   ©rn  rF  gÍÌÌÌÌÌ@çú9‚(á?çøe¡Ä÷å¿rL  )ra  g33333`@rG   g33333ó^@gö(\�ÂP@r—  gfffffÚ‡@g—BŒM)u„?g¯îÌ]@gyàþ¶déº?g	ÿs5v¨@g{®GázÔ?©rE  rE  rn  r´   çffffffþ?r´   r   r   r?  r  r  ©r-   gš™™™™™@rR  r*   r'   r   g333333@rž  rÃ  gÍÌÌÌÌÌ@r�  gn4aÆ‚•g?ç‡ý^üÀ)gü,¿¡
ë¿gÎmãËÁ?gãÙi”ÃI@gE|Š�x!ä¿gí¯vwQá?gl­õfP¤ò¿g‘®_Ñ)Ÿ¶¿g¯XG~’õò?g=šn¡×@g8$œ³‘mù¿g({ðìºú¿g]ç:èmÇÓ?gùYvÒû Àgb‘²©©×?gb¶	œªð¿gSTÃŸ}â¿g9¾’yí¿g.äÏ¿v“ñ?g¹Þº‹ÅiÚ?g	'XÒ@â÷¿)gá>²_\ô?g hO§ò?gau?Ú@g×Œg+ŠÒó?gÂ:éØœ^î¿g†‡z54ñ¿gŠ7–f©ñ?g±áDO%î@g›#†xG@gÖ\ÉéF³Ú?gÙûž¢4Eð?g÷’ÿnfè¿gÝ>P"…Û¿gƒ�‡uX@gvŸˆêR¨ù?g%š›Êýéà?g2YÜdzè¿g€o‰ãëø?gih¨öŽßõ?gn¡úÂò?gÒÚ!÷n®u?gúJ+bÉÀza,b,pr,tr,trimc                 C   s6   t j|||dd�\}}t||dd� t||dd� dS )a  
        Using PairedData's yuen.t.test method. Something to note is that there
        are at least 3 R packages that come with a trimmed t-test method, and
        comparisons were made between them. It was found that PairedData's
        method's results match this method, SAS, and one of the other R
        methods. A notable discrepancy was the DescTools implementation of the
        function, which only sometimes agreed with SAS, WRS2, PairedData and
        this implementation. For this reason, most comparisons in R are made
        against PairedData's method.

        Rather than providing the input and output for all evaluations, here is
        a representative example:
        > library(PairedData)
        > a <- c(1, 2, 3)
        > b <- c(1.1, 2.9, 4.2)
        > options(digits=16)
        > yuen.t.test(a, b, tr=.2)

            Two-sample Yuen test, trim=0.2

        data:  x and y
        t = -0.68649512735573, df = 3.4104431643464, p-value = 0.5361949075313
        alternative hypothesis: true difference in trimmed means is not equal
        to 0
        95 percent confidence interval:
         -3.912777195645217  2.446110528978550
        sample estimates:
        trimmed mean of x trimmed mean of y
        2.000000000000000 2.73333333333333
        F©r  rå  rµ   r¶   N©rP   rà  r
   )rY   r»   rÂ   rÉ  r¾  r  r°   r¯   r_   r_   r`   Útest_ttest_compare_r  s     z$Test_ttest_trim.test_ttest_compare_rc                 C   sF   g d¢}g d¢}t j||ddd�\}}t|ddd� t|d	dd� d S )
N)rG   rC   r“  r  rD  é,   rG   rC   r“  r  rD  r   )rN   r&  rC   rG   r=  é   r”  rN   r&  rC   rG   r=  r!  r”  g
×£p=
·?Fr  gRb×övà?râ   r¶   gŸçOÕiå?r  ©rY   r»   rÂ   r°   r¯   r_   r_   r`   Útest_compare_SAS(  s
    z Test_ttest_trim.test_compare_SASc                 C   sD   g d¢}g d¢}t j||dd�\}}t|ddd� t|ddd� d	S )
aÞ  
        The PairedData library only supports unequal variances. To compare
        samples with equal variances, the multicon library is used.
        > library(multicon)
        > a <- c(2.7, 2.7, 1.1, 3.0, 1.9, 3.0, 3.8, 3.8, 0.3, 1.9, 1.9)
        > b <- c(6.5, 5.4, 8.1, 3.5, 0.5, 3.8, 6.8, 4.9, 9.5, 6.2, 4.1)
        > dv = c(a,b)
        > iv = c(rep('a', length(a)), rep('b', length(b)))
        > yuenContrast(dv~ iv, EQVAR = TRUE)
        $Ms
           N                 M wgt
        a 11 2.442857142857143   1
        b 11 5.385714285714286  -1

        $test
                              stat df              crit                   p
        results -4.246116897032513 12 2.178812829667228 0.00113508833897713
        r  r  rL  ©r  gþ‡ÐÒç˜R?ç»½×Ùß|Û=r¶   g–ý^üÀNr  r"  r_   r_   r`   Útest_equal_var7  s
    zTest_ttest_trim.test_equal_varz	alt,pr,tr))rÛ   gjÎœ>5ôï?r  )rÙ   gn4aÆ‚•W?r  c                 C   sH   g d¢}g d¢}t j||dd|d�\}}t||dd� t||dd� dS )	zõ
        > library(PairedData)
        > a <- c(2.7,2.7,1.1,3.0,1.9,3.0,3.8,3.8,0.3,1.9,1.9)
        > b <- c(6.5,5.4,8.1,3.5,0.5,3.8,6.8,4.9,9.5,6.2,4.1)
        > options(digits=16)
        > yuen.t.test(a, b, alternative = 'greater')
        r  r  rL  F)r  rå  rß   r%  r¶   Nr  )rY   r¹  rÉ  r¾  r»   rÂ   r°   r¯   r_   r_   r`   Útest_alternativesQ  s    ÿ
z!Test_ttest_trim.test_alternativesc                 C   sN   d}t t|d��* tjddgddgddd� W d   ƒ n1 s@0    Y  d S )Nz7Permutations are currently not supported with trimming.ru   r   r   r   rL  )r  rç  ©ry   rz   rP   rà  )rY   rv   r_   r_   r`   Útest_errors_unsupportede  s    z'Test_ttest_trim.test_errors_unsupportedr  )gš™™™™™É¿r'   r   c                 C   sL   d}t t|d��( tjddgddg|d� W d   ƒ n1 s>0    Y  d S )Nz/Trimming percentage should be 0 <= `trim` < .5.ru   r   r   r$  r(  )rY   r  rv   r_   r_   r`   Útest_trim_bounds_errorl  s    z&Test_ttest_trim.test_trim_bounds_errorN)r‡   rˆ   r‰   r  rÈ   r  r  r  r#  r&  r'  r)  r*  r_   r_   r_   r`   r  ð  s:   ÿÿÿþùö
#ÿ
r  c                   @   s
  e Zd Zejdd�Zg d¢ed< dddej dged	< ddd
dejged< g d¢ed< dddej dged< ddddejged< g d¢ed< g d¢ed< g d¢ed< g d¢ed< g d¢ed < g d!¢ed"< ej 	d#g d$¢¡ej 	d%d&d'g¡ej 	d(d)d*g¡d+d,„ ƒƒƒZ
d-S ).ÚTest_ttest_CI)r   r   r   r!   r£  )ç–g� Í¿çÔe1±ùä3@g·¼Ívà7ê?gÄ™Ñ"ê¤Ï¿g8 {‚M(È?r  r,  r-  g·¼Ívà7Ú?gxŠ¬_ï±Á?rÏ  g
/Á©äâ?gD¨ Œ.É¿)r   r   r   )çµrŠé�eÏ¿ç®-</Û&@g?í¦JJðé?gbãÑøËÕ¿g3®ÑÕŠÐ?)r   r   r   r.  r/  g?í¦JJðÙ?g¾F£ÞòáÇ?)r   r   r   gû{„õÚã?gæads2Ñ¿)r   r   r   )çÄÀs"%Î¿r&  gŒW±íŒ"ê?NN)r   r   r   )r0  r&  g�W±íŒ"Ú?NN©r   r   r   )r0  r&  g:T'‰¹îâ?NN)r   r   r   )çµ:¢ÌÐ¿rC   gÀÉ0:5Éé?NNr’  )r2  rC   g¿É0:5ÉÙ?NNrÄ  )r2  rC   g ›çbeã?NN)r   r   r   rß   rD  rå  FTr  r   rL  c                 C   sÐ   |r|rt  d¡ tj d¡}| d¡}| d¡}tj|||||d�}dddd	œ}| j|| t|ƒtt 	|¡ƒf }	|	\}
}}}}t
|j|
ƒ t
|j|ƒ t
|j|ƒ |sÌ| d
¡}t
|j|ƒ t
|j|ƒ d S )Nz3Discrepancy in `main`; needs further investigation.l   ¤'N±k' rF   rH   )rß   rå  r  r   r   r   rD  r>  )rÈ   ZxfailrU   r  r  rP   rà  r‘   ru  Úceilr
   r°   rï  r¯   rÔ   ÚlowÚhigh)rY   rß   rå  r  r  r|   rZ   r~   r   r  r°   rï  r¯   r4  r5  ræ   r_   r_   r`   Útest_confidence_intervalž  s$    



ÿ"
z&Test_ttest_CI.test_confidence_intervalN)r‡   rˆ   r‰   rU   rû  r‘   r  rÈ   r  r  r6  r_   r_   r_   r`   r+  s  s"   r+  c            
   	   C   s  t j d¡ t j dddddd¡} t j ddddd¡}t| |fd	d
�}t  | d¡} t  |d d¡}tdd„ |jD ƒŽ D ]†}|\}}}}}}	|| jd	 k rÆ| ||||||	f |||||||	f ksüJ ‚qv|||||| jd	  ||	f |||||||	f ksvJ ‚qvd S )Nr   r!   r    r   r   r"   r$   r   rL   r=   r	  )N.r
  c                 s   s   | ]}t |ƒV  qd S rd  rk  re  r_   r_   r`   r  Â  rj  z.test__broadcast_concatenate.<locals>.<genexpr>)rU   r  rR  r\  r   r  r   rT  )
r»   rÂ   rß  Úindexrg  rh  r^  rõ  ro  rq  r_   r_   r`   Útest__broadcast_concatenate¸  s    .r8  c                  C   sÞ  d} d}d}d}t j| |dd�\}}t||g||gƒ tt jt| |ƒddiŽ||gƒ d} d	}d
}t j| |dd�\}}t||g||gƒ tt jt| |ƒddiŽ||gƒ d}d}d}d}|| g||gf}t ddd¡}	t ddd¡}
t ddd¡}t ||
g¡}t |
|g¡}t j||
ddd�\}}t||g||fƒ tt jt||
ƒddiŽ||fƒ t j||	ddd�\}}t||g||fƒ tt jt||	ƒddiŽ||fƒ t j|j|jddd�\}}t||g|ƒ t|j|jƒ}tt j|ddiŽ||fƒ t j||ddd�\}}t||g|ƒ t||dd�}tt j|ddiŽ||fƒ d}t j||
ddd�}t	||ƒ t 
|||g¡}t 
|||g¡}t j||ddd�\}}tt |¡t |¡ƒ tt |¡|ƒ t|jdƒ t||dd�}t j|ddiŽ\}}tt |¡t |¡ƒ tt |¡|ƒ t|jdƒ t jt |dd¡t |dd¡ddd�\}}tt |¡t |¡ƒ tt |¡|ƒ t|jdƒ tt |dd¡t |dd¡dd�}t j|ddiŽ\}}tt |¡t |¡ƒ tt |¡|ƒ t|jdƒ tjtdd��, t jg d¢g d¢dd�\}}W d   ƒ n1 �s0    Y  tt |¡|ftjdfƒ tjdd ��z tt jg d¢g d¢dd�tjtjfƒ t dtjgd!dgg¡}tt j|t d"¡dd�dtjgdtjgfƒ W d   ƒ n1 �sÐ0    Y  d S )#Nré   r  r  r  F©rå  rå  rÝ   gÌ„Jþê?g* ÿªýÊ¿rÞ  g÷‹@Í[å?g�Ï‰Ò±Ñ?gþÞh�Gà?r   rù   r  r!   rß  r   ræ  r=   rÖ  r4  r   r}  r³  ru   r  rÄ  r‹  ©rL  rK   r~  )rP   rà  r   rá  rÝ  rU   rN  r   rU  r   r  r   r¼  r   rT  r€  rÈ   rÉ   rX   r  rŽ  rV   r•  )r»   rÂ   rÉ  r¾  rå  rË   Z	tr_uneq_nZ	pr_uneq_nr¿  Zrvs3r­  r¬  rÀ  rÁ  rù  r²   r~   rÂ  rÃ  rÄ  r_   r_   r`   Útest_ttest_ind_with_uneq_varÊ  sÐ    ÿþÿþ
ÿþý
ÿþý
ÿþ
ÿþ
þ
ÿ<
ÿÿr;  c                  C   s�   t jdddg} g d¢}tj| |dd�}tj|| dd�}t|j|j dd� t|j|jdd� t || d	d … ¡}t||dd� t|d
dd� d S )NrI  r´   rH  rÇ  ro   rp   rµ   r¶   r   )g¹8£³ HÀg“WØ@…·ª?)rU   rV   rP   rà  r
   r°   r¯   rÉ  r_   r_   r`   Útest_ttest_ind_nan_2nd_arg7  s    ÿr<  c                  C   s4   t  g g ¡} t| t jjƒsJ ‚t| tjtjfƒ d S rd  )rP   rà  rR  rË  rÌ  r   rU   rV   rÍ  r_   r_   r`   Ú#test_ttest_ind_empty_1d_returns_nanM  s    r=  c                 C   sX   t  d¡}tj|| dd�}t|tjjƒs,J ‚t j|t jd�}t	|j
|ƒ t	|j|ƒ d S rÐ  )rU   rû  rP   rà  rR  rË  rÌ  rf   rV   r   r°   r¯   rÑ  r_   r_   r`   Útest_ttest_ind_axis_size_zeroU  s    
r>  c                  C   sV   t  d¡} t  d¡}tj| |dd�}t|tjjƒs6J ‚t|jj	dƒ t|j
j	dƒ d S rÓ  ©rU   rû  rP   rà  rR  rË  rÌ  r   r°   rT  r¯   rÖ  r_   r_   r`   Ú test_ttest_ind_nonaxis_size_zerod  s    

r@  c                  C   sV   t  d¡} t  d¡}tj| |dd�}t|tjjƒs6J ‚t|jj	dƒ t|j
j	dƒ d S )N)r   r#   r   rÔ  r   r=   rÕ  r?  rÖ  r_   r_   r`   Ú2test_ttest_ind_nonaxis_size_zero_different_lengthsq  s    

rA  c                  C   sr   t  ddg¡t  ddg¡ } }t  ddg¡t  ddg¡ }}t  ddg¡t  dd	g¡ }}t | |||||¡ d S )
Nr   r   r   r    r!   é‚   éŒ   rù   é–   )rU   r   rP   rá  )Zmean1Zmean2Zstd1Zstd2Znobs1Znobs2r_   r_   r`   Útest_gh5686  s    rE  c               	   C   s.   t jdddddddd�} t| tjtjgƒ d S )Nr   r"   Fr9  )rP   rá  r   rU   rV   rÍ  r_   r_   r`   Ú%test_ttest_ind_from_stats_inputs_zero‡  s    rF  c                  C   sð   t j d¡} | jdd�}| jdd�}| jdd�}tj||ddd�}t |jt ¡ j	¡jd	ks`J ‚t
t  |j|d ¡|d
d� tj||ddd�}t |jt ¡ j	¡jd	ks¬J ‚t
t  |j|d ¡|d
d� tjg d¢dgdd�}t
|ddd� d S )Nl   úb¦Qú )r˜  r   rû   )r˜  r   rù   TrK   )rå  r>   r<  rÿ   r¶   )r   r   r!   r(   r9  )gàz“Nd¡ð?gJìåÚ?r%  rà   )rU   r  r  r  rá  rP   rà  r_  r¯   r`  r
   Z
percentile)r  r|   rZ   r‚  r~   r_   r_   r`   Útest_ttest_single_observation�  s    rG  c                  C   sŒ  d\} }}t jjdd| ||fd�}t j|d d …d d …d d …f t ||f¡dd�\}}t j|d d …d d …d d …f ddd�\}}t  |d d …ddf d¡\}}	t||dd	� t|d
 |dd	� t|j	||fƒ t j|d d …d d …d d …f t | d|f¡dd�\}}t j|d d …d d …d d …f ddd�\}}t  |dd d …df d¡\}}	t||dd	� t|d
 |dd	� t|j	| |fƒ t j|d d …d d …d d …f t | |df¡dd�\}}t j|d d …d d …d d …f ddd�\}}t  |ddd d …f d¡\}}	t||dd	� t|d
 |dd	� t|j	| |fƒ t  g d¢d¡\}
}tt 
|
¡|ftjdfƒ dd„ }t |¡}t  |d d …d d …d d …f d¡\}}t j|d d …d d …d d …f ddd�\}
}|||dƒ}t||ƒ t|
|ƒ t j|d d …d d …d d …f ddd�\}
}|||dƒ}t||ƒ t|
|ƒ tjdd��h tt  g d¢d¡tjtjfƒ t dtjgddgg¡}tt  |d¡dtjgdtjgfƒ W d   ƒ n1 �s 0    Y  tj|dd…dd…dd…f< t j|d d …d d …d d …f ddd�\}}t j|d d …d d …d d …f dddd�\}
}|||dƒ}t||ƒ t|
|ƒ t j|d d …d d …d d …f dddd�\}
}|||dƒ}t||ƒ t|
|ƒ d S )N©rE   r  r  r!   rE   r³  r   r=   r   rC   r?   rê  r   r  c                 S   s4   | dk r|dks | dkr(|dkr(|d S d|d  S r·  r_   r¸  r_   r_   r`   rº  Ä  s     z%test_ttest_1samp_new.<locals>.convertrÛ   rÞ   rÙ   r‹  r:  rK   r   r    r$   ro   rp   r×  )rP   rä  rþ   rÙ  rU   rr  r   r   r   rT  r¼  r  r½  r
   rŽ  rV   r   )r’  r“  Zn3Zrvn1r  r8  r	  Úp2r
  Úp3rå  rË   rº  rÅ  r¾  rÉ  ZpcrÄ  r_   r_   r`   Útest_ttest_1samp_new£  sf    
4*6*6*
&*

*

B* ÿ


 ÿ

rK  c                  C   sÄ   t j d¡} | jdd�}d}| jdd�}tjt|d��  tj||dd� W d   ƒ n1 s\0    Y  | jd	d�}tj||dd�}|jj	d
ks’J ‚t j
| ¡ dd�}tj||dd�}t|jdƒ d S )Nl   iIýÔ}pC )r   r  r  rû   z%`popmean.shape\[axis\]` must equal 1.)r!   r   r  ru   rt  )rì  r>   )r!   r   r  )r!   r  r=   gš™™™™™©?)rU   r  r  rÈ   r   rz   rP   rÙ  r°   rT  ro  rÔ   r
   r¯   )r  r|   rò   rì  r~   ræ   r_   r_   r`   Útest_ttest_1samp_popmean_arrayí  s    .rL  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S )ÚTestDescribec              	   C   sÂ   t ƒ �`}tjddd��2 | td¡ t d¡\}}}}}}W d   ƒ n1 sN0    Y  W d   ƒ n1 sl0    Y  t|dƒ t|dƒ t|dƒ t |¡s¢J ‚t |¡s°J ‚t |¡s¾J ‚d S )Nr‹  rÔ  rý  rH  r   )rH  rH  )	r   rU   rŽ  r{   rX   rP   Údescriber   rK  )rY   r^   rq  r§  ro  r6  ÚskÚkurtr_   r_   r`   Útest_describe_scalar  s    ÿR


z!TestDescribe.test_describe_scalarc                 C   sÊ  t  t  d¡t  dd¡f¡}dg d¢g d¢f }}t  g d¢¡}t  g d¢¡}d	gd
 }dgd
 }t |¡\}}	}
}}}t||ƒ t|	|ƒ t|
|ƒ t||ƒ t||dd� t||dd� tj|j	dd�\}}	}
}}}t||ƒ t|	|ƒ t|
|ƒ t||ƒ t||dd� t||dd� t  
d¡}t j|d< d\}}d}d}d}d}tj|dd�\}}	}
}}}t||ƒ t|	|ƒ t|
|ƒ t||ƒ t||ƒ t||dd� tttj|dd� tttj|dd� d S )Nr¼  ©r   r    r   r!   ©rŽ   rŽ   rŽ   rŽ   ©rI  rI  rI  rI  ©çffffffö?rV  rV  rV  )r?  r?  r?  r?  çH,p½ Ú?r    çTUUUUUý¿rH   r?   r   r=   rm   r%   )r%   )rr   r¡  rH  r.   rr   g¯Gáz®ó¿ro   rp   rs   rt   )rU   rk  rr  rf   r   rP   rN  r   r   rU  r   rV   ry   rz   ©rY   r|   ÚncZmmcZmcÚvcZskcZkurtcrq  r§  ro  r6  rO  rP  r_   r_   r`   Útest_describe_numbers  sH    
















z"TestDescribe.test_describe_numbersc                 C   s"   t  t d¡¡}d}t||ƒ d S )Nr!   )rÛ  ÚminmaxrT   ÚvarianceÚskewnessr¼  )rP   rN  rU   r   r   )rY   r˜  r²   r_   r_   r`   Útest_describe_result_attributes8  s    z,TestDescribe.test_describe_result_attributesc                 C   sÐ   t  t  d¡t  dd¡f¡}dg d¢g d¢f }}t  g d¢¡}t  g d¢¡}d	gd
 }dgd
 }tj|dd�\}}	}
}}}t||ƒ t|	|dd� t|
|dd� t||dd� t	||dd� t	||dd� d S )Nr¼  rR  r   r!   rS  rT  rU  )ç¸…ëQ¸Î?ra  ra  ra  rW  r    rX  r   rb   rµ   rà   rH   r?   )
rU   rk  rr  rf   r   rP   rN  r   r
   r   rY  r_   r_   r`   Útest_describe_ddof>  s    


zTestDescribe.test_describe_ddofc           	      C   s–   t  t  d¡t  dd¡f¡}d\}}d}d}d}d}tj|d d	�}t|j|ƒ t|j	|ƒ t|j
|ƒ t|j|ƒ t|j|d
d� t|j|d
d� d S )Nr¼  rR  r   )r  )rŽ   rI  rV  g³a¤+Ð?gE,p½ Ú?gUUUUUUý¿r=   rH   r?   )rU   rk  rr  rf   rP   rN  r   rÛ  r   r]  rT   r^  r   r_  r¼  )	rY   r|   Ze_nobsZe_minmaxZe_meanZe_varZe_skewZe_kurtr»   r_   r_   r`   Útest_describe_axis_noneM  s    z$TestDescribe.test_describe_axis_nonec                 C   s   t ttjg ƒ d S rd  )ry   rz   rP   rN  r5  r_   r_   r`   Útest_describe_emptya  s    z TestDescribe.test_describe_emptyN)	r‡   rˆ   r‰   rQ  r\  r`  rb  rc  rd  r_   r_   r_   r`   rM    s   )rM  c                  C   sf  t ttjdƒ t ttjdƒ t ttjdƒ d\} }}d\}}}d|d  |d  }}|d d|d   }}	t d¡d }
d}tt |
¡| |fƒ t	t |
¡|ƒ tt |
¡||fƒ ttj|
dd	�||fƒ ttj|
d
d	�||fƒ t	t |
¡|ƒ tt |
¡||fƒ ttj|
dd	�||fƒ ttj|
d
d	�||	fƒ t	t |
¡|ƒ tj
jdddd�}tj|d
d	�j}t|ddd� tjjddd�}tj|d
d	�j}t|dƒ ttj|
d d�| |fƒ ttj|
d d�||fƒ ttj|
d d�||fƒ t d¡}
tj|
d< tjdd��( tt |
¡tjtjfƒ W d   ƒ n1 �s:0    Y  d}ttj|
dd�|ƒ tj|dd…< tj|dd�\}}tj|ddd�\}}tj|dd
d�\}}t||dd� t||dd� t|d|d  dd� t||d dd� tjdd��" t ttj|
d d� W d   ƒ n1 �s0    Y  t ttj|
d!d� t ttjttd"ƒƒd!d	� t d#¡}
tj|
d$< tjdd��( tt |
¡tjtjfƒ W d   ƒ n1 �s¤0    Y  d%}ttj|
dd�|ƒ tj|dd&…< tj|d d… dd�\}}tj|d d… ddd�\}}tj|d d… dd
d�\}}t||dd� t||dd� t|d|d  dd� t||d dd� t ttj|
d d� t ttj|
d!d� t ttjttd&ƒƒd!d	� tjdd��( tt |
¡tjtjfƒ W d   ƒ n1 �sä0    Y  d'}ttj|
dd�|ƒ t ttj|
d d� t ttj|
d!d� g d(¢}t d)d*„ t|ƒD ƒ¡}
tt |
¡d d+k d,ƒ d S )-NrH  )g²M¦áÆc@gÐO±ÿ?g{\Èá›¿Œ¿)g2$£ÚÿÁ?g×’eóþ`¨?gÇƒÊK@¤ï?r   r   )rt  rK   r   r   r   r   rt  rK   r   r   r   r   rt  rK   r   r   r   r   rt  rK   r   r   r   r   rÖ  rÙ   rÞ   rÛ   r˜  é{   )r»   r…   rý   rr   r!   r?   ©r…   rý   r=   rm   r%   r‹  rŒ  )ge©G¡Kð?gZ^<ÒÃ½Ó?ro   rp   rE   rù   r×  rµ   r¶   r:  rs   rt   r$   g      >@r!  )gË9+—%Àg�?*òÝ—?r  )gÒÅwGwç@g³{8NÄ¦?)
rZ  r   é:   r#   r   é)   rx   r   r   é§   c                 S   s   g | ]\}}t  ||¡‘qS r_   )rU   rf   )rf  rg  rß  r_   r_   r`   ri  Ò  rj  z'test_normalitytests.<locals>.<listcomp>rÿ   T)ry   rz   rP   ÚskewtestÚkurtosistestZ
normaltestrU   r   r   r   Zskewnormrþ   r¯   r   Zlaplacer   rV   rŽ  r   r
   rÀ  rl  rn  Ú	enumerater   )Z	st_normalZst_skewZst_kurtZ	pv_normalZpv_skewZpv_kurtZpv_skew_lessZpv_kurt_lessZpv_skew_greaterZpv_kurt_greaterr|   r²   r§  rã   r¨  r¨  rð  rË   ZzlÚplZzgZpgr?  r_   r_   r`   Útest_normalitytestse  sÀ    

ÿÿÿÿ
ÿÿÿ

82ÿ

8ÿÿ
ÿ
ÿ8rn  c                   @   sT   e Zd Zej d¡ ej dd¡\ZZe	j
 dg d¢¡dd„ ƒZdd	„ Zd
d„ ZdS )ÚTestRankSumsr   r   rE   rß   rô   c                 C   s<   t j| j| j|d�j}t j| j| jd|d�j}t||ƒ d S )NrÞ   F)Zuse_continuityrß   )rP   Úranksumsr|   rZ   r¯   Úmannwhitneyur
   )rY   rß   rŽ  r�  r_   r_   r`   Útest_ranksums_result_attributesÛ  s    ÿÿz,TestRankSums.test_ranksums_result_attributesc                 C   s   t  | j| j¡}t|dƒ d S )NrÖ  )rP   rp  r|   rZ   r   )rY   r~   r_   r_   r`   Útest_ranksums_named_resultsä  s    z(TestRankSums.test_ranksums_named_resultsc                 C   sD   t tdd��$ tj| j| jdd� W d   ƒ n1 s60    Y  d S )Nz`alternative` must be 'less'ru   rt   rÞ   )ry   rz   rP   rp  r|   rZ   r5  r_   r_   r`   Útest_input_validationè  s    z"TestRankSums.test_input_validationN)r‡   rˆ   r‰   rU   r  rR  r\  r|   rZ   rÈ   r  r  rr  rs  rt  r_   r_   r_   r`   ro  Ö  s   
ro  c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestJarqueBerac                 C   s˜  t j d¡ t j ddd¡}t j dd¡}t j dd¡}tt |¡d t |¡j	ƒ tt |¡d t |¡j
ƒ tt |¡d t |¡j	ƒ tt |¡d t |¡j
ƒ tt |¡d t |¡j	ƒ tt |¡d t |¡j
ƒ tt |¡d t |¡d kƒ tt |¡j
t |¡j
kƒ tt |¡d t |¡d kƒ tt |¡j
t |¡j
kƒ tt |¡d t |¡d kƒ tt |¡j
t |¡j
kƒ d S )Nrk  r   r   rx  r˜  )rU   r  rR  r  r%  Zrayleighr   rP   Újarque_berar°   r¯   r   ©rY   r|   rZ   rð  r_   r_   r`   Útest_jarque_bera_statsî  s        z%TestJarqueBera.test_jarque_bera_statsc                 C   sâ   t j d¡ t j ddd¡}t t|ƒ¡ }\}}t t|ƒ¡ }\}}t | dd¡¡ }\}	}
||  krš|	  krš|j	  krš|j	  krš|j	ks n J ‚||  krØ|
  krØ|j
  krØ|j
  krØ|j
ksÞn J ‚d S )Nrk  r   r   rx  r   éPÃ  )rU   r  rR  r  rP   rv  rÀ  ÚtuplerS   r°   r¯   )rY   r|   Zjb_test1ZJB1r8  Zjb_test2ZJB2rI  Zjb_test3ZJB3rJ  r_   r_   r`   Útest_jarque_bera_array_like  s    >z*TestJarqueBera.test_jarque_bera_array_likec                 C   s   t ttjg ƒ d S rd  )ry   rz   rP   rv  r5  r_   r_   r`   Útest_jarque_bera_size  s    z$TestJarqueBera.test_jarque_bera_sizec           	      C   s¸   t jjdd�}|jdd�}ttj|d d�t | ¡ ¡ƒ tj|dd�}t |dd d …f ¡\}}t |dd d …f ¡\}}t|j||gƒ t|j	||gƒ tj|j
dd�}t||ƒ d S )Ni±¥Kr¯  )r   r•  rû   r=   r   r   )rU   r  r°  r   rP   rv  rè  r
   r°   r¯   rU  )	rY   r  r|   r~   Ús0r7  Ús1r8  ZresTr_   r_   r`   rÇ    s    ÿzTestJarqueBera.test_axisN)r‡   rˆ   r‰   rx  r{  r|  rÇ  r_   r_   r_   r`   ru  í  s   ru  c                  C   s   t  d¡} tttj| ƒ d S )NrÒ  )rU   r   ry   rz   rP   rj  r$  r_   r_   r`   Útest_skewtest_too_few_samples%  s    
r  c                  C   s   t  d¡} tttj| ƒ d S )NrH  )rU   r   ry   rz   rP   rk  r$  r_   r_   r`   Ú!test_kurtosistest_too_few_samples,  s    
r€  c                   @   sP   e Zd Zg d¢Zg d¢ZdZdd„ Zdd„ Zdd	„ Zd
d„ Z	dd„ Z
dd„ ZdS )ÚTestMannWhitneyU)g®Þ	ÂUå3@g^û�Â–‹3@g™òtÇ3@g½¢™]o·5@g·z³S4@gÔtÆ< 4@gM	‚«X3@gXÄmCók4@gLìo&£3@gfÉ˜ÊâÇ2@gžý{m;^3@ga A$|3@gMÑ¢Á_À4@gŽÌ#é3@g19T•_3@gg§„Cÿ2@gúqïR4@g˜Kk/±4@gè—Ü�Š3@gÌZ†û2@g„_
À²ƒ3@g«ÝÀ$`Ó3@g
ŒÃx„4@g3ƒ#Ð»5@g;VND÷ò1@g >®ƒåH2@g—µâr4@g³»ØyÜ¤2@gèà’?4@g=bòÉ‡Ž3@)gÔäìpG3@g„Lä:jþ0@gýî„¨Š2@g«¹JNnC1@gRÀ;`(3@g+Pi,ƒ2@g6:Z›2@gZ"3=ùÕ2@gF	uSa	3@gXâÒ€2@g¥ÙX3^83@g§2¡Õ1@g÷��J2@gZ)Eû‡ª2@g¦U8ø3@g°»°50@g�ˆ³Ô†3@gFz‰™33@gøèãz3@g¨¢²Ú´3@rC   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||ƒ t||ƒ t||kƒ t|dƒ t|dƒ t|dƒ t|dƒ t|d| jd� t|d| jd� d S )	NrÙ   rÞ   rÛ   éò  r'  g=_A§ÿï?r4   glP†z.?©rP   rq  rQ   ÚYr   r   r	   r5   ©	rY   Úu1r8  Úu2rI  Úu3rJ  Zu4Zp4r_   r_   r`   Útest_mannwhitneyu_one_sidedE  s    





z,TestMannWhitneyU.test_mannwhitneyu_one_sidedc                 C   sb   t j| j| jdd�\}}t j| j| jdd�\}}t||ƒ t|dƒ t|dƒ t|d| jd� d S )Nr×   rÞ   r‚  r'  glP†z.?r4   ©rP   rq  rQ   r„  r   r	   r5   ©rY   r†  r8  r‡  rI  r_   r_   r`   Útest_mannwhitneyu_two_sidedU  s    


ÿz,TestMannWhitneyU.test_mannwhitneyu_two_sidedc           	      C   sÔ   t j| j| jddd�\}}t j| j| jddd�\}}t j| j| jddd�\}}t j| j| jddd�\}}t||ƒ t||ƒ t||kƒ t|dƒ t|dƒ t|dƒ t|dƒ t|d| jd� t|d	| jd� d S )
NFrÙ   rÞ   rÛ   r‚  r'  gii5‡£ÿï?r4   g¬2¥¥2?rƒ  r…  r_   r_   r`   Ú&test_mannwhitneyu_no_correct_one_sided_  s*    ÿ
ÿ
ÿ
ÿ






z7TestMannWhitneyU.test_mannwhitneyu_no_correct_one_sidedc                 C   sf   t j| j| jddd�\}}t j| j| jddd�\}}t||ƒ t|dƒ t|dƒ t|d| jd� d S )NFr×   rÞ   r‚  r'  g¬2¥¥2?r4   rŠ  r‹  r_   r_   r`   Ú&test_mannwhitneyu_no_correct_two_sideds  s    ÿ
ÿ



ÿz7TestMannWhitneyU.test_mannwhitneyu_no_correct_two_sidedc                 C   sb   t  g d¢¡}t  g d¢¡}ttj||dd�dƒ ttj||dd�dƒ ttj||d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Ž   rI  rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   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Ž   rŽ   rŽ   rŽ   rŽ   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Ž   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rI  rŽ   rŽ   rŽ   rŽ   rI  rŽ   rŽ   rI  rŽ   rŽ   rI  rŽ   rŽ   rŽ   rŽ   rŽ   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Ž   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   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Ž   rŽ   rI  rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   r´   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   )žrŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rI  rŽ   rI  rŽ   rŽ   rŽ   rŽ   rI  rŽ   rŽ   rŽ   rI  rŽ   rŽ   rŽ   rŽ   rŽ   rI  rŽ   rŽ   r´   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rI  rŽ   rI  rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rI  rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rI  rŽ   rŽ   rŽ   rŽ   rŽ   rI  rI  rŽ   rŽ   rI  rŽ   rŽ   rI  rŽ   rI  rŽ   rŽ   rŽ   rŽ   rI  rI  rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rI  rŽ   rŽ   rŽ   rŽ   rŽ   rI  rI  rI  rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rI  rŽ   rŽ   rI  rŽ   rŽ   rŽ   rŽ   rI  rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rI  rŽ   rŽ   rŽ   rI  rŽ   rŽ   rŽ   rŽ   rŽ   rŽ   rÙ   rÞ   )ç     •Ð@g €?Õ¹•ý>rÛ   )r�  gÜ&)EÅÿï?r×   )r�  g�Ž?Õ¹•?)rU   r   r
   rP   rq  rî   r_   r_   r`   Útest_mannwhitneyu_ones  s    ÿÿÿz'TestMannWhitneyU.test_mannwhitneyu_onesc                 C   s&   d}t j| j| jdd�}t||ƒ d S )NrÖ  rÙ   rÞ   )rP   rq  rQ   r„  r   r£  r_   r_   r`   Ú#test_mannwhitneyu_result_attributesª  s    z4TestMannWhitneyU.test_mannwhitneyu_result_attributesN)r‡   rˆ   r‰   rQ   r„  r5   r‰  rŒ  r�  rŽ  r�  r‘  r_   r_   r_   r`   r�  3  s   	
+r�  c                  C   sT   g d¢} g d¢}t t | |¡d ddƒ d}t | |¡}t||ƒ t|j|jƒ 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   )"gš™™™™™-@gš™™™™™+@gÍÌÌÌÌÌ(@r  rŸ  r³  g333333@çffffff@g333333@r*   rS  çš™™™™™	@r´   r  r  r)   rõ  gffffff@çÍÌÌÌÌÌ @ç333333û?r•  r(   çÍÌÌÌÌÌô?r–  rŸ  rŸ  rn  r‡  r=  r�  r'   rL  rL  r<  r   gÂ/õó¦"×?r!   r­   )r   rP   Zpointbiserialrr   r   r®   r°   )r|   rZ   r²   r~   r_   r_   r`   Útest_pointbiserial±  s    
r—  c                  C   sd  t  g d¢¡} t | ¡}g d¢}t|d |ƒ t  g d¢¡}t |¡}t  g d¢¡}t|d |ƒ t | |¡\}}t||d ƒ t||d ƒ t | || ¡\}}}t||d ƒ t||d ƒ t||d ƒ t  d¡} t  g d¢g d¢g¡}tt | d	|  ¡|d
d� tddƒ}	t  g d¢¡}
t  	|	|
¡}t  g d¢¡}t  	||
¡}t |¡}t|d |dd� d S )N)r   r   r    )r#   rt  r#   r   )r   r   r"   r%   )r=  r   r   r=  r!   )çÒîãªªª@çI»�«ªªð?g&í>®ªªÚ¿r™  r˜  )çµû¸ªªª5@çÒîãªªª@gI»�«ªªú¿r›  rš  r   r$   r?   rF   )r!   rF   r%   r   r   r   )gŸ«­Ø_v	@gù1æ®%äá?g"ýöuàœ¡?g”‡…ZÓ¼ù?gÿ!ýöu @g³q¬‹&@r    )
rU   r   rP   Zobrientransformr
   r   r   r   rl  r¶  )rŒ  r  r¨  r�  r	  r»   rÂ   rß  rå   ÚvaluesÚrepsrß  Ztransformed_valuesr_   r_   r`   Útest_obrientransformÂ  s:    


ÿÿ

rž  rë   c                 C   s0   t j| |||d�}t|||d� t|j|ƒ d S ©N)r>   r<   Úweightsrà   )rP   r9  r
   r   r<   ©Ú
array_liker  r>   r<   rá   r   r|   r_   r_   r`   Úcheck_equal_gmeaní  s    r£  c                 C   s0   t j| |||d�}t|||d� t|j|ƒ d S rŸ  )rP   Úhmeanr
   r   r<   r¡  r_   r_   r`   Úcheck_equal_hmeanõ  s    r¥  c                 C   s2   t j| ||||d�}t|||d� t|j|ƒ d S rŸ  )rP   Úpmeanr
   r   r<   )r¢  rB  r  r>   r<   rá   r   r|   r_   r_   r`   Úcheck_equal_pmeanü  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	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 ) ÚTestHarMeanc                 C   s   g d¢}d}t ||ƒ d S ©N)r   r   r   r   ©r¥  ©rY   r»   r  r_   r_   r`   Útest_0  s    zTestHarMean.test_0c                 C   s0   g d¢}d}t ||ƒ g d¢}d}t ||ƒ d S )Nr	  ç¶=b¹#A@rÝ   gº…ëQ¸þ?rª  r«  r_   r_   r`   Útest_1d_list	  s    
zTestHarMean.test_1d_listc                 C   s    t  g d¢¡}d}t||ƒ d S )Nr	  r­  ©rU   r   r¥  r«  r_   r_   r`   Útest_1d_array  s    zTestHarMean.test_1d_arrayc                 C   s&   t  ddg¡}d}tt |¡|ƒ d S )Nr   r   rr   )rU   r   r   rP   r¤  r«  r_   r_   r`   Útest_1d_array_with_zero  s    z#TestHarMean.test_1d_array_with_zeroc                 C   s    t  g d¢¡}tttj|ƒ d S )N©r   r   rK   )rU   r   ry   rz   rP   r¤  r·  r_   r_   r`   Ú!test_1d_array_with_negative_value  s    z-TestHarMean.test_1d_array_with_negative_valuec                 C   s(   g d¢g d¢g d¢g}d}t ||ƒ d S ©N©rE   r  r=  r>  ©r<  rƒ  r
  r…  ©rj  rù   r  éx   gmôW¶UC@rª  r«  r_   r_   r`   Útest_2d_list#  s    zTestHarMean.test_2d_listc                 C   s.   g d¢g d¢g d¢g}d}t t |¡|ƒ d S r´  )r¥  rU   r   r«  r_   r_   r`   Útest_2d_array)  s    zTestHarMean.test_2d_arrayc                 C   s6   g d¢g d¢g d¢g}t  g d¢¡}t||dd� d S )Nrµ  r¶  r·  )çU|ÏŠ á6@g4.=²�C@çJQº6LsJ@çë’ÌE]P@r   r=   r¯  r«  r_   r_   r`   Útest_2d_axis0/  s    zTestHarMean.test_2d_axis0c                 C   s<   g d¢g d¢g d¢g}t  g d¢¡}ttj|dd�|ƒ d S )N©rE   r   r=  r>  r¶  r·  )r»  rr   r¼  r½  r   r=   ©rU   r   r
   rP   r¤  r«  r_   r_   r`   Útest_2d_axis0_with_zero5  s    z#TestHarMean.test_2d_axis0_with_zeroc                 C   s6   g d¢g d¢g d¢g}t  g d¢¡}t||dd� d S )Nrµ  r¶  r·  )g3333333@çú¯÷…O@çâŽy@óY@r   r=   r¯  r«  r_   r_   r`   Útest_2d_axis1:  s    zTestHarMean.test_2d_axis1c                 C   s<   g d¢g d¢g d¢g}t  g d¢¡}ttj|dd�|ƒ d S )Nr¿  r¶  r·  )rr   rÂ  rÃ  r   r=   rÀ  r«  r_   r_   r`   Útest_2d_axis1_with_zero@  s    z#TestHarMean.test_2d_axis1_with_zeroc                 C   s(   g d¢}g d¢}d}t |||dd� d S )N©r   rE   r"   ©rE   r!   r   r   çñhãˆµøä>©r   rá   rª  ©rY   r»   r   r  r_   r_   r`   Útest_weights_1d_listE  s    z TestHarMean.test_weights_1d_listc                 C   s\   t  ddgddgddgg¡}t  ddgddgddgg¡}t  ddg¡}t||d|dd	� d S )
Nr   r!   rE   r"   r   r   r   rÈ  ©r>   r   rá   r¯  rÊ  r_   r_   r`   Útest_weights_2d_array_axis0M  s    z'TestHarMean.test_weights_2d_array_axis0c                 C   sP   t  g d¢g d¢g¡}t  g d¢g d¢g¡}t  ddg¡}t||d|dd	� d S )
NrÆ  ©r#   r#   r#   rÇ  rÄ  r   r#   r   rÈ  rÌ  r¯  rÊ  r_   r_   r`   Útest_weights_2d_array_axis1U  s    z'TestHarMean.test_weights_2d_array_axis1c                 C   s>   t  g d¢¡}t jjg d¢g d¢d�}d}t|||dd� d S )N©r   rE   r"   rð  ©rE   r!   r   rð  ©r   r   r   r   r<  r   rÈ  rÉ  )rU   r   ré  r¥  rÊ  r_   r_   r`   Útest_weights_masked_1d_array]  s    z(TestHarMean.test_weights_masked_1d_arrayN)r‡   rˆ   r‰   r¬  r®  r°  r±  r³  r¹  rº  r¾  rÁ  rÄ  rÅ  rË  rÍ  rÏ  rÓ  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	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTestGeoMeanc                 C   s   g d¢}d}t ||ƒ d S r©  ©r£  r«  r_   r_   r`   r¬  g  s    zTestGeoMean.test_0c                 C   s:   g d¢}d}t ||ƒ g d¢}tddƒ}t ||dd� d S )Nr	  çs©ÑÅ¤F@rÝ   r  r  r[  rà   )r£  r   r«  r_   r_   r`   r®  l  s    

zTestGeoMean.test_1d_listc                 C   sF   t  g d¢¡}d}t||ƒ tg d¢tƒ}tddƒ}t||td� d S )Nr	  rÖ  rÝ   r  r  r;   )rU   r   r£  r   r   r«  r_   r_   r`   r°  v  s    

zTestGeoMean.test_1d_arrayc                 C   s(   g d¢g d¢g d¢g}d}t ||ƒ d S ©Nrµ  r¶  r·  g/,$»qJ@rÕ  r«  r_   r_   r`   r¹  �  s    zTestGeoMean.test_2d_listc                 C   s,   g d¢g d¢g d¢g}d}t t|ƒ|ƒ d S r×  )r£  r   r«  r_   r_   r`   rº  ‡  s    zTestGeoMean.test_2d_arrayc                 C   sl   g d¢g d¢g d¢g}t  g d¢¡}t||dd� tg d¢g d¢g d¢gƒ}tg d¢ƒ}t||ddd	� d S )
Nrµ  r¶  r·  )gù4@ÌÒÈA@g5ÇÁ¾€©H@g`8|wÐ­N@gm~Ó&Ô+R@r   r=   rÝ   r[  ©r>   rá   ©rU   r   r£  r«  r_   r_   r`   r¾  �  s    zTestGeoMean.test_2d_axis0c                 C   sx   g d¢g d¢g d¢g}t  g d¢¡}t||dd� tg d¢g d¢g d¢gƒ}tdd	ƒ}t|||gƒ}t||dd
d� d S )Nrµ  r¶  r·  )gDŠ" 6"6@gñ¡ÑcP@g
øÒ§Z@r   r=   rÝ   r  r  r[  rØ  )rU   r   r£  r   )rY   r»   r  r6  r_   r_   r`   rÄ  —  s    
zTestGeoMean.test_2d_axis1c                 C   s"   t g d¢ƒ}d}t||dd� d S )N)g}Ã”%­I²TrÑ   gœu ˆ<ä7~rÑ   r'  rà   )r   r£  r«  r_   r_   r`   Útest_large_values¢  s    zTestGeoMean.test_large_valuesc                 C   sF   g d¢}d}t jdd�� t||ƒ W d   ƒ n1 s80    Y  d S )N©
rE   r  r=  r>  r<  rƒ  r
  r…  rj  r   rr   r‹  r:  )rU   rŽ  r£  r«  r_   r_   r`   Útest_1d_list0§  s    zTestGeoMean.test_1d_list0c                 C   sL   t  g d¢¡}d}t jdd�� t||ƒ W d   ƒ n1 s>0    Y  d S )NrÛ  rr   r‹  )rÕ  )rU   r   rŽ  r£  r«  r_   r_   r`   Útest_1d_array0®  s    zTestGeoMean.test_1d_array0c                 C   sH   g d¢}t j}t jdd�� t||ƒ W d   ƒ n1 s:0    Y  d S )N)
rE   r  r=  r>  r<  rƒ  r
  r…  rj  rK   r‹  rŒ  )rU   rV   rŽ  r£  r«  r_   r_   r`   Útest_1d_list_negµ  s    zTestGeoMean.test_1d_list_negc                 C   s(   g d¢}g d¢}d}t |||dd� d S ©Nr«  )r   r!   r"   r    r   çGZ*oG8@rÈ  rÉ  rÕ  rÊ  r_   r_   r`   rË  ¼  s    z TestGeoMean.test_weights_1d_listc                 C   s4   t  g d¢¡}t  g d¢¡}d}t|||dd� d S rß  rÙ  rÊ  r_   r_   r`   Útest_weights_1d_arrayÄ  s    z!TestGeoMean.test_weights_1d_arrayc                 C   s>   t  g d¢¡}t jjg d¢g d¢d�}d}t|||dd� d S )NrŠ  )r   r!   r"   r    r   r!   )r   r   r   r   r   r   r<  rà  rÈ  rÉ  )rU   r   ré  r£  rÊ  r_   r_   r`   rÓ  Ì  s    z(TestGeoMean.test_weights_masked_1d_arrayN)r‡   rˆ   r‰   r¬  r®  r°  r¹  rº  r¾  rÄ  rÚ  rÜ  rÝ  rÞ  rË  rá  rÓ  r_   r_   r_   r`   rÔ  f  s   

rÔ  c                
   @   sF  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gddggdfe ddgddgddgg¡dfg¡dd„ ƒZe
j dg d¢g d¢g d¢gdfg d¢g d¢g d¢gdfg¡dd„ ƒZe
j dg d¢g d¢g d¢gdfg d¢g d¢g d¢gdfg¡d d!„ ƒZd"d#„ Zd$d%„ Ze
j d&g d'¢¡d(d)„ ƒZd*S )+ÚTestPowMeanc                 C   s   t  | | ¡| j d|  S r#  )rU   rZ  r…   ©r»   rË   r_   r_   r`   Úpmean_reference×  s    zTestPowMean.pmean_referencec                 C   s$   t  || |  ¡t  |¡ d|  S r#  )rU   rZ  )r»   rË   r   r_   r_   r`   Úwpmean_referenceÚ  s    zTestPowMean.wpmean_referencec                 C   sŠ   t jtdd��" t g d¢dg¡ W d   ƒ n1 s60    Y  t jtdd��( t g d¢t dg¡¡ W d   ƒ n1 s|0    Y  d S )NzPower mean only defined forru   ré   r   )rÈ   r   rz   rP   r¦  rU   r   r5  r_   r_   r`   Útest_bad_exponentÝ  s    0zTestPowMean.test_bad_exponentc                 C   sT   g d¢d }}t  t |¡|¡}t|||ƒ g d¢d }}t d¡}t|||ƒ d S )Nr	  r*   rÝ   r   r.   )râ  rä  rU   r   r§  r„   ©rY   r»   rË   r  r_   r_   r`   r®  ã  s    
zTestPowMean.test_1d_listc                 C   s0   t  g d¢¡d }}t ||¡}t|||ƒ d S )Nr	  g      À)rU   r   râ  rä  r§  rç  r_   r_   r`   r°  ì  s    zTestPowMean.test_1d_arrayc                 C   s.   t  ddg¡d }}d}tt ||¡|ƒ d S )Nr   r   rK   rr   )rU   r   r   rP   r¦  rç  r_   r_   r`   r±  ñ  s    z#TestPowMean.test_1d_array_with_zeroc                 C   sR   t  g d¢¡d }}tjtdd�� t ||¡ W d   ƒ n1 sD0    Y  d S )Nr²  g®Gáz®ó?zPower mean only defined if allru   )rU   r   rÈ   r   rz   rP   r¦  )rY   r»   rË   r_   r_   r`   r³  ö  s    z-TestPowMean.test_1d_array_with_negative_valuerã  rE   r  r<  rƒ  rj  rù   r  r'   c                 C   s"   t  t |¡|¡}t|||ƒ d S rd  )râ  rä  rU   r   r§  rç  r_   r_   r`   Útest_2d_axisnoneû  s    zTestPowMean.test_2d_axisnonerµ  r¶  r·  r¿  c                    s4   ‡ ‡fdd„t tˆ d ƒƒD ƒ}tˆ ˆ|dd� d S )Nc              
      s6   g | ].‰ t  t ‡‡ fd d„ttˆƒƒD ƒ¡ˆ¡‘qS )c                    s   g | ]}ˆ | ˆ ‘qS r_   r_   re  )r»   rh  r_   r`   ri    rj  z=TestPowMean.test_2d_list_axis0.<locals>.<listcomp>.<listcomp>)râ  rä  rU   r   rl  r3  rm  rã  rp  r`   ri  
  s   ý"ÿz2TestPowMean.test_2d_list_axis0.<locals>.<listcomp>r   r=   )rl  r3  r§  rç  r_   rã  r`   Útest_2d_list_axis0  s    üzTestPowMean.test_2d_list_axis0c                    s&   ‡ fdd„|D ƒ}t |ˆ |dd� d S )Nc                    s   g | ]}t  t |¡ˆ ¡‘qS r_   )râ  rä  rU   r   )rf  Za_©rË   r_   r`   ri    rj  z2TestPowMean.test_2d_list_axis1.<locals>.<listcomp>r   r=   )r§  rç  r_   rê  r`   Útest_2d_list_axis1  s    zTestPowMean.test_2d_list_axis1c                 C   s@   g d¢d }}g d¢}t  t |¡||¡}t||||dd� d S )NrÆ  gÞƒBÊÀó¿rÇ  rÈ  rÉ  )râ  rå  rU   r   r§  ©rY   r»   rË   r   r  r_   r_   r`   rË    s    z TestPowMean.test_weights_1d_listc                 C   sP   t  g d¢¡d }}t jjg d¢g d¢d�}t j||d�}t||||dd� d S )	NrÐ  r   rÑ  rÒ  r<  ©r   rÈ  rÉ  )rU   r   ré  Úaverager§  rì  r_   r_   r`   rÓ  !  s    z(TestPowMean.test_weights_masked_1d_array)r>   Úfun_namerË   ))Nrå  g3öˆEÊÀ#@)r   r9  r   )r   r¤  rK   c                    s~   |dkr‡ fdd„}n
t t|ƒ}t ddgddgddgg¡}t ddgddgd	dgg¡}||||d
�}t|ˆ |||dd� d S )Nrå  c                    s   t  | ˆ |¡S rd  )râ  rå  )r»   r>   r   rê  r_   r`   Úfun/  s    z.TestPowMean.test_weights_2d_array.<locals>.funr   r!   rE   r"   r   r   )r>   r   rÈ  rÌ  )ÚgetattrrP   rU   r   r§  )rY   r>   rï  rË   rð  r»   r   r  r_   rê  r`   Útest_weights_2d_array'  s    
z!TestPowMean.test_weights_2d_arrayN)r‡   rˆ   r‰   rä  rå  ræ  r®  r°  r±  r³  rÈ   r  r  rU   r   rè  ré  rë  rË  rÓ  rò  r_   r_   r_   r`   râ  Õ  sF   	ÿþ
ÿþ
	ÿþ
þrâ  c                   @   sœ   e Zd Ze d¡d ZdZe d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#S )$ÚTestGeometricStandardDeviationr  r   gvé aòZ@r   r   r    c                 C   s   t  | j¡}t|| jƒ d S rd  )rP   r:  Úarray_1dr
   Úgstd_array_1d©rY   Úgstd_actualr_   r_   r`   r°  ?  s    z,TestGeometricStandardDeviation.test_1d_arrayc                 C   s    t  t| jƒ¡}t|| jƒ d S rd  )rP   r:  rz  rô  r
   rõ  rö  r_   r_   r`   Ú test_1d_numeric_array_like_inputC  s    z?TestGeometricStandardDeviation.test_1d_numeric_array_like_inputc                 C   s<   t jtdd�� t d¡ W d   ƒ n1 s.0    Y  d S )NzInvalid array inputru   z3This should fail as it can not be cast to an array.)rÈ   r   rz   rP   r:  r5  r_   r_   r`   Ú,test_raises_value_error_non_array_like_inputG  s    zKTestGeometricStandardDeviation.test_raises_value_error_non_array_like_inputc                 C   sH   t jtdd��& t t | jdg¡¡ W d   ƒ n1 s:0    Y  d S )NúNon positive valueru   r   ©rÈ   r   rz   rP   r:  rU   rA  rô  r5  r_   r_   r`   Ú"test_raises_value_error_zero_entryK  s    zATestGeometricStandardDeviation.test_raises_value_error_zero_entryc                 C   sH   t jtdd��& t t | jdg¡¡ W d   ƒ n1 s:0    Y  d S )Nrú  ru   rK   rû  r5  r_   r_   r`   Ú&test_raises_value_error_negative_entryO  s    zETestGeometricStandardDeviation.test_raises_value_error_negative_entryc                 C   sJ   t jtdd��( t t | jtjg¡¡ W d   ƒ n1 s<0    Y  d S )NzInfinite valueru   )	rÈ   r   rz   rP   r:  rU   rA  rô  r  r5  r_   r_   r`   Ú!test_raises_value_error_inf_entryS  s    z@TestGeometricStandardDeviation.test_raises_value_error_inf_entryc                 C   sB   t g d¢tjdddggƒ}tj|dd�}t|t  dtjg¡ƒ d S )N)r   r   r   rx   r   r   r   r=   r    )r   rU   rV   rP   r:  r
   )rY   r»   r÷  r_   r_   r`   Útest_propagates_nan_valuesW  s    z9TestGeometricStandardDeviation.test_propagates_nan_valuesc                 C   sF   t jtdd��$ tj| j| jjd� W d   ƒ n1 s80    Y  d S )NzDegrees of freedom <= 0ru   rb   )rÈ   r   rz   rP   r:  rô  r…   r5  r_   r_   r`   Ú)test_ddof_equal_to_number_of_observations\  s    zHTestGeometricStandardDeviation.test_ddof_equal_to_number_of_observationsc                 C   s    t j| jd d�}t|| jƒ d S )Nr=   )rP   r:  Úarray_3dr
   rõ  rö  r_   r_   r`   Útest_3d_array`  s    z,TestGeometricStandardDeviation.test_3d_arrayc                 C   s"   t j| jdd�}t|ddgƒ d S )Nrs  r=   g~ßdÀþ@g<ë…È
Šó?)rP   r:  r  r
   rö  r_   r_   r`   Útest_3d_array_axis_type_tupled  s    z<TestGeometricStandardDeviation.test_3d_array_axis_type_tuplec                 C   s:   t j| jdd�}t g d¢g d¢g d¢g¡}t||ƒ d S )Nr   r=   )g¢ÁÄ¶?ˆ@gQ¾”ßÓ«@gµÖŒ÷@gÊ×Ÿ7R@)g%È€‚ª@gÂ–¤òŠe@gv6ÈB5 @gœ ã_·•þ?)gÇÛE£è ý?gÞ©³»ñû?gkÌŠYôú?g%:ŒÔú?©rP   r:  r  rU   r   r
   ©rY   r÷  Úgstd_desiredr_   r_   r`   Útest_3d_array_axis_0h  s    ýz3TestGeometricStandardDeviation.test_3d_array_axis_0c                 C   s4   t j| jdd�}t g d¢g d¢g¡}t||ƒ d S )Nr   r=   )gNÃÊî²ó@g§85@g§�'Ä¥ñþ?gwtœhçâû?)gHnÆaÛXô?gGè¦ô?gBu•ÕÒó?gƒŒ Ešó?r  r  r_   r_   r`   Útest_3d_array_axis_1q  s    þz3TestGeometricStandardDeviation.test_3d_array_axis_1c                 C   s4   t j| jdd�}t g d¢g d¢g¡}t||ƒ d S )Nr   r=   )gtüƒ80ý?g‘ÐÑ–—ó?gæÐÿúò?)gÛ˜]è~ñ?g—mT6¿(ñ?g³	Gòð?r  r  r_   r_   r`   Útest_3d_array_axis_2y  s    þz3TestGeometricStandardDeviation.test_3d_array_axis_2c                 C   s^   t j | jdk| j¡}tj|dd�}tj| jdd�}g d¢g d¢g}t||ƒ t|j|ƒ d S )Nrx   r   r=   r  r’  )	rU   ré  Zmasked_wherer  rP   r:  r
   r   r=  )rY   ré  r÷  r  r=  r_   r_   r`   Útest_masked_3d_array�  s    
z3TestGeometricStandardDeviation.test_masked_3d_arrayN)r‡   rˆ   r‰   rU   r   rô  rõ  rS   r  r°  rø  rù  rü  rý  rþ  rÿ  r   r  r  r  r  r	  r
  r_   r_   r_   r`   ró  9  s"   	ró  c               	   C   s�   t  t  ddd¡t  ddd¡t  ddd¡f¡} d}d	}g d
¢}t| |ƒD ](\}}tt |||¡j|dd| d� qHtt ddd¡jddd� d S )Nr<  rL  r!   rO  gÍÌÌÌÌÌä?rí  çffffffî?rµ  iÂ  )rr   rr   g»¿s ÖÑ g‚ÕG|G{ðg	ÙÉºM>6g>
zªÍtt+g#ÓŒR´M/gF×¸fzâ¤2gšUÁ8u¥5g´ÎíâË8M8gÐ¤)ØBa?g%£ªŸ‡Õ¾?g*+a£5ì?g·øö›Å›?gÚ’Jç|åÅ>rG   zfail forp=%f)r5   Úerr_msgr<  rù   gVèÝ¶3;r4   )rU   rê  rN  r1  r	   rP   Ú	binomtestr¯   )Úpprq  r|   r  rË   r~   r_   r_   r`   Útest_binomtestŠ  s    þÿþr  c                     s„   ddgg d¢g d¢g d¢g d¢g d¢g d¢g d¢g d	¢g d
¢g
} t ddƒD ]4‰ ‡ fdd„t ˆ d ƒD ƒ}t|| ˆ d  dd� qJd S )NrŽ   )r'   rŽ   r'   )r  rŽ   rŽ   r  )rp  rO  rŽ   rO  rp  )rr  ç      Ø?rŽ   rŽ   r  rr  )rs  ç      Ì?ç      æ?rŽ   r  r  rs  )ro  rp  ç      Ý?rŽ   rŽ   r  rp  ro  )	ç      €?ç      ²?ç     €Ò?ç     @ç?rŽ   r  r  r  r  )
ç      p?ç      ¤?ç      Ç?ç     @à?rŽ   rŽ   r  r  r  r  )ç      `?ç      –?ç      ¼?ç      Ö?ç      è?rŽ   r   r  r  r  r  r   rF   c                    s   g | ]}t  |ˆ d ¡j‘qS )r'   )rP   r  r¯   )rf  r6  rü  r_   r`   ri  µ  rj  z#test_binomtest2.<locals>.<listcomp>rE   r?   )rl  r   )r�  rŽ  r_   rü  r`   Útest_binomtest2¡  s    ór!  c                  C   sŽ   dd„ t ddƒD ƒ} t| t t| ƒt¡ƒ t g d¢¡}t g d¢¡}dd„ t ddƒD ƒ}dd„ t ddƒD ƒ}t||d	d
� t||d	d
� d S )Nc              	   S   s4   g | ],}t d dƒD ]}t ||| d| ¡j‘qqS )r   rF   rŽ   ©rl  rP   r  r¯   ©rf  r6  r^  r_   r_   r`   ri  ¼  s   ÿz#test_binomtest3.<locals>.<listcomp>r   rF   )Zr'   grÇqÇá?g     €â?glÞqŠŽäâ?gx0f¥Ñ#ã?g%d)’MOã?g   	oã?gÀ¹ß6‡ã?gÊ:¾X@šã?rO  gàs¦–wå?g    €æ?gR'jMVæ?gEƒÅÇf†æ?g¶F5a§æ?gAéQU¿æ?g'W®æ…Ñæ?gk¼å˜Îßæ?r  gÒ
Å†Bç?g  €�½ç?g€µ$·Üþç?g{dŸ•U'è?gDà:½çBè?gÀ¯wŽæVè?gR0àNfè?gOž‚¸÷qè?r  g[ƒk¦^è?g €T+Ëè?gÊO°‚é?gggªh(é?gî·PÔ-@é?g´ôO°Qé?g×Ç}ö^é?gVÿ7“_ié?r   gäÔþ‡e$é?gþÿùÑ€†é?gó#‰>ºé?g5Íz@Úé?gô:÷ðé?g�fÈÿé?gzPÀºê?g ¼Ý ê?ç     Èè?gg*)·,¸é?g}ãA _ê?g}–æaâAê?gHÛ]×@_ê?g�
y7sê?gÂP‘G¬�ê?g>)\R Œê?gÄjc‚6•ê?çüÿÿÿÿKé?gäoð; ,ê?g!æO0ïê?g�í“õ¬ê?gì¹Ù}eÇê?gôŠ5ñÙê?g?„!A^çê?gNÅ/#Šñê?g›Æ*ƒùê?ç    @·é?gÏéŒñ‰ê?gŠßñÀØê?g—…¢¥3ë?g.1Íë?gdT\1-ë?gt0W5È9ë?g¢ŽºoQCë?gXÔ4ÌÊJë?ç    ê?gÙ
ù€Øê?gf?Cè¤"ë?gä\ã6ÑIë?g´—º4bë?g|Ø$orë?gÍÍWNS~ë?g¸¢ùT‡ë?gXnõcŽë?ç   ˜\ê?gY\ÖÆë?gp ¶^aë?g“X-Kš†ë?g®#c¬–�ë?g��
3­ë?g7é5Q¸ë?gMJ[¿Áë?gP8ýRÂÇë?)Zr'   gw	í%´—Ð?g     ÀÐ?gãS ŒgÐÐ?g²±v^«ØÐ?gÔ*uCiÝÐ?g  ÀaàÐ?gžöŒƒ]âÐ?g¯E9QÁãÐ?rO  g/¡½„öÚ?g     ûÚ?g	x­²&~Û?gÉ#ò´ŸÒÛ?g5üB�Ü?g	¦AÅ'9Ü?gÁ»†pžZÜ?gWV¤$uÜ?r  gqº–Ib‰ß?g  @«Nà?g1Ó÷®Y›à?g°ÒäÑ5Ìà?gOŒ¨îà?gc»-ñá?gk¦Áöøá?g Ü)á?r  glMÊV–á?gÿÿ¢?$â?gâšTÝ*râ?gÅCqRv£â?gÀr¨‹xÅâ?g¢òÏ‰ZÞâ?gE©xàYñâ?gö<ƒÈT ã?r   gJ9Ï½dèâ?g `Ô–™tã?g’T�ÿóÀã?gEáðzñã?gù×Qä?g¬7‰C<*ä?g‘¿æ¢<ä?gÿ~Ä Kä?r$  g¹Ù8ìã?g~È�EŸtä?g¬â¿’¾ä?g€Ð<vûìä?gHEì:Õå?g8ÉZ$å?g†ÙbÂº5å?gvýÒá£Cå?r%  gÍ`Yëw»ä?gA?$ß?å?gÈEÑ=‡å?g„4¸ë³å?gàôÚ3‰Òå?g•{G9Ôèå?gªpåýÉùå?g½âH æ?r&  gúòz6få?gÂ¯ÉøFæå?g–Ø(é+æ?g¶	ÞÍ$Væ?gq^wõ•sæ?g!­‰æ?gXÌNùJ™æ?gK©Ü¦æ?r'  g4ÄPª´õå?g‘<ÍìÃqæ?gdVÕè;´æ?gÓy´Ýæ?g$‘wúæ?gU<vO­ç?gÉMÜXç?g	È™z§*ç?r(  giÀqS°pæ?gªšMMâèæ?g0çV$)ç?g]
yi/Qç?gûê‹lç?gÃö«�l€ç?g‘ß3È†�ç?gÑ¾_‘c›ç?c              	   S   s8   g | ]0}t d dƒD ] }t |d || d| ¡j‘qqS ©r   rF   r   rŽ   r"  r#  r_   r_   r`   ri    s   ÿc              	   S   s8   g | ]0}t d dƒD ] }t |d || d| ¡j‘qqS r)  r"  r#  r_   r_   r`   ri    s   ÿrH   r?   )rl  r   rU   rr  r3  ru  r   r   )r§  Zbinom_testm1Zbinom_testp1Zres4_p1Zres4_m1r_   r_   r`   Útest_binomtest3¹  s    ÿ	(ÿÿr*  c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestTrimc                 C   sr  t  d¡}tt  t |d¡¡t  d¡ƒ tt  t |d¡¡t  d¡ƒ tt  tj|ddd�¡t  dd¡ƒ tt  tj|d	dd�¡t  d
d¡ƒ tt |d¡g ƒ ttj|ddd�g ƒ tt g d¡g ƒ ttjg d	dd�g ƒ tt g d¡g ƒ t  d¡ dd¡}t  dd¡ dd¡}d}tj|dd|d�}tt j||d�|ƒ d}tj|jdd|d�}tt j||d�|jƒ d S )NrF   r<  rE   rL  r%   Úleft)Útailr   çtÑE]tÑ?r   rŽ   r@  r  r"   r    r!   r   )r-  r>   r=   r   )rU   r   r   ÚsortrP   Ztrim1rS   rU  )rY   r»   r  r>   Ztrimmedr_   r_   r`   Ú
test_trim1  s,    

ÿ
ÿzTestTrim.test_trim1c              	   C   s  t  d¡}tt  t |d¡¡t  dd¡ƒ tt  t |d¡¡t  g d¢¡ƒ tt  t t  d¡ dd	¡d¡¡t  d	d
¡ d	d	¡ƒ tt  t t  d¡ d	d¡jd¡¡t  g d¢g d¢g¡ƒ t	t
tjt  d¡ d	d¡jdƒ tt g d¡g ƒ tt g d¡g ƒ tt g d¡g ƒ d S )NrF   r.  r   r$   rL  )r   r   r    r!   r"   r#   r$   r  r"   r    r  rÁ   )r   r$   rC   r  )r   r%   r  rB   r@  r<  )rU   r   r   r/  rP   Ztrimbothr   rS   rU  ry   rz   r·  r_   r_   r`   Útest_trimboth5  s&    
 ÿ ÿÿþÿzTestTrim.test_trimbothc           
      C   sÊ  t  g d¢¡}t  g d¢¡}t  d¡ dd¡|d d …f }t  d¡jdddd�|d d …f }tt |d¡t  g d	¢¡ƒ tt |d¡t  g d
¢¡ƒ t  g d¢¡}t  d¡ dd¡|d d …f }tt |d¡t  g d¢¡ƒ g d¢}tt |d¡dƒ tt g d¢d¡dƒ t j d¡ t jj	ddd�}dD ]6}tj|d|d�}t t  
||d¡d¡}	t||	ƒ �q,tj|dd d�}t | ¡ d¡}	t||	ƒ tttj|dƒ tt g d¡t jƒ tt g d¡t jƒ d S )N)r    r$   r   r   r%   r!   rE   r   r#   r   r"   )r   r!   r   r   r   r    r  r"   r    ÚFr¥  rÁ   )r)   r/   g      -@g     €4@r-  )r   r   r   r   )r‚   rm   rÀ  r)  r.  g      ,@)r#   rF   rG   rB   rx   r"   r&  r   r!   r   r“  rE   rN   r%   r”  r  rÒ  r  r   rC   r    rH   r$   r   rD   )r!   r    r   r   r   r   r)   r“  r  )r!   r"   r    r#   rû   )r   r   r   r   rK   r=   r   r�  rr   )rU   r   r   rS   r   rP   Z	trim_meanr  rR  r  r€  rè  ry   rz   rV   )
rY   r»   Úidxr¨  r©  Zidx4Za4r>   rŽ  r�  r_   r_   r`   Útest_trim_meanG  s<    "ÿÿÿ
zTestTrim.test_trim_meanN)r‡   rˆ   r‰   r0  r1  r4  r_   r_   r_   r`   r+    s   r+  c                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚTestSigmaClipc                 C   sœ   t  t  ddd¡t  ddd¡f¡}d}t |¡\}}}t| ¡ |kƒ t| ¡ |k ƒ t|| 	¡ || 
¡   ƒ t|| 	¡ || 
¡   ƒ t|j|jƒ d S )NrÃ  rJ   é   r   r  r!   r    ©rU   rê  rN  rP   Ú	sigmaclipr   ÚminÚmaxr   rT   rh   r…   ©rY   r»   Úfactrß  r4  Zuppr_   r_   r`   Útest_sigmaclip1o  s    "zTestSigmaClip.test_sigmaclip1c                 C   sª   t  t  ddd¡t  ddd¡f¡}d}t |||¡\}}}t| ¡ |kƒ t| ¡ |k ƒ t|| 	¡ || 
¡   ƒ t|| 	¡ || 
¡   ƒ t|jdƒ t|jd	ƒ d S )
NrÃ  rJ   r6  r   r  r!   r(   r    é$   r7  r;  r_   r_   r`   Útest_sigmaclip2y  s    "zTestSigmaClip.test_sigmaclip2c                 C   s¦   t  t  ddd¡t  ddd¡f¡}d}t |||¡\}}}t| ¡ |kƒ t| ¡ |k ƒ t|| 	¡ || 
¡   ƒ t|| 	¡ || 
¡   ƒ t|t  ddd¡ƒ d S )NrÃ  rJ   rF   éœÿÿÿéÎÿÿÿr   çÍÌÌÌÌÌü?)rU   rê  rN  rP   r8  r   r9  r:  r   rT   rh   r;  r_   r_   r`   Útest_sigmaclip3„  s    ÿzTestSigmaClip.test_sigmaclip3c                 C   sF   t  t  ddd¡t  ddd¡f¡}d}t |||¡}d}t||ƒ d S )	NrÃ  rJ   rF   r@  rA  r   rB  )Zclippedr˜  r™  )rU   rê  rN  rP   r8  r   )rY   r»   r<  r~   r²   r_   r_   r`   Ú test_sigmaclip_result_attributes�  s    ÿz.TestSigmaClip.test_sigmaclip_result_attributesc                 C   s"   t  d¡}tt |¡d |ƒ d S )NrE   r   )rU   rr  r   rP   r8  rX  r_   r_   r`   Útest_std_zero—  s    
zTestSigmaClip.test_std_zeroN)r‡   rˆ   r‰   r=  r?  rC  rD  rE  r_   r_   r_   r`   r5  n  s
   
r5  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 )ÚTestAlexanderGovernc           
      C   sà   g d¢g d¢g d¢g d¢g}t j|t jd�}t j|t jd�}t j|t jd�}t j|t jd�}tj|Ž }tj|Ž }tj|Ž }tj|Ž }	|j|j  krª|j  krª|	jks°n J ‚|j	|j	  krÖ|j	  krÖ|	j	ksÜn J ‚d S )N)	rH   rH   rH   rH   rH   rH   rH   rG   rG   )	rC   rH   rG   rG   rG   rG   rG   rF   rF   )	rC   rC   rH   rH   rH   rH   rH   rG   rG   )	r  rC   rH   rH   rH   rG   rG   rG   rF   r;   )
rU   r   r+  r¦  rì  r   rP   Úalexandergovernr¯   r°   )
rY   rù  Z
args_int16Z
args_int32Z
args_uint8Zargs_float64Z	res_int16Z	res_int32Z	res_unit8Zres_float64r_   r_   r`   Útest_compare_dtypesž  s.    ý



ÿÿÿÿz'TestAlexanderGovern.test_compare_dtypesc                 C   sþ   t tdd��  t ddgg ¡ W d   ƒ n1 s20    Y  t tdd��  t ddgd¡ W d   ƒ n1 sn0    Y  t tdd��" t ddgdg¡ W d   ƒ n1 s¬0    Y  t tdd��( t ddgtjtjg¡ W d   ƒ n1 sð0    Y  d S )Nz+Input sample size must be greater than one.ru   r   r   zInput samples must be finite.)ry   rz   rP   rG  rU   r  r5  r_   r_   r`   Útest_bad_inputs²  s    ..0z#TestAlexanderGovern.test_bad_inputsc                 C   sB   g d¢}g d¢}g d¢}t  |||¡}t|jdƒ t|jdƒ dS )a„  
        Data generated in R with
        > set.seed(1)
        > library("onewaytests")
        > library("tibble")
        > y <- c(rnorm(40, sd=10),
        +        rnorm(30, sd=15),
        +        rnorm(20, sd=20))
        > x <- c(rep("one", times=40),
        +        rep("two", times=30),
        +        rep("eight", times=20))
        > x <- factor(x)
        > ag.test(y ~ x, tibble(y,x))

        Alexander-Govern Test (alpha = 0.05)
        -------------------------------------------------------------
        data : y and x

        statistic  : 1.359941
        parameter  : 2
        p.value    : 0.5066321

        Result     : Difference is not statistically significant.
        -------------------------------------------------------------
        Example adapted from:
        https://eval-serv2.metpsy.uni-jena.de/wiki-metheval-hp/index.php/R_FUN_Alexander-Govern

        )(g5·ßãÀgÈÊÒbý?gl†"k¶ Àg†^ösÖç/@güûé´Q\
@gÞÆRÌh ÀgIäF@gpZ>êqˆ@gßï7D @gÉ-ÑªZnÀgç(ÐQ<.@gºO¬Ný/@g	Oè€ÙÀg�ÒÒ·¡%6Àg•­ùs¥&@g‘w)ìÁÜ¿g78ž´9¹Ä¿g€z�ÿpà"@g‘z§l @g57ó­ŒÁ@g>m@*a"@g–,ZbI@gX°9
]Üç?gÕÀ‡½ä3Àg”1Ë@g÷®Íûöá¿g"ÚJbíø¿gy:‹�@j-Àgˆâ2®A Àg£à;¹¸·@gL97vp,+@gÔîšp/rð¿gøÎ"½ƒ@gfT|µ7á¿g^v˜€‹Š+ÀgÙ˜Y‹™Àg0/šé‹Àg›ŒÜôúâ¿güÑlA! &@gÝoë†@)g!‰_5*¾Àgq‚TEgÀgŒ1ÌÀ­è$@g	´³a,³ @gö·ÂË¤©$Àg´ë�9%ÀgZµ›úß@gÖÉT6U'@gž‡S �öú¿g‡6aGèn*@g�O¿èâ@gåëÙ\\"Àgø^±4™w@g¥Áð0Àgrû¥žÏ~5@gDôP¼´=@gÙ¿Ô™…Àg:…Ã4ôR/ÀgO¢x]r!@gÅUŸà4 Àg°ta)B@g,GÐÀÏÕâ¿g³Ä2±$@gD%­ÏáÚ?gˆI,—VL&Àg·’³§@gÕÌÑ‡
;Àg–˜»û5@gWÀòJñc@g°Y•jK@@)g­j³7#@g<ØÌøÙe,Àg¢ù}Öm(@gŒ©Ÿr”®2Àg#Ð^š9Àgr/§£ÑP@gÜ:RO»!Àg'¬Ø9£–?g6F÷�
Ê÷?gÊcÊ±”'Àgt‡„ö*¿&Àgšìƒê ÀgÜ~*0Î�7@gÿWz©x>ÀgëIKÂ'@gê?œ×Ò¢@g°²ý7C5@g;C>Ï¯UÀgµŸ×7ü™@g)n}è.^@g¹FQÂõ?gsýdlT6à?N©rP   rG  r
   r°   r¯   )rY   ÚoneÚtwoÚeightÚsolnr_   r_   r`   Útest_compare_rÃ  s    z"TestAlexanderGovern.test_compare_rc                 C   sb   g d¢}g d¢}g d¢}t  |||¡}t|jddd� t|jddd� t|jd	ƒ t|jd
ƒ dS )zØ
        Data taken from 'The Modification and Evaluation of the
        Alexander-Govern Test in Terms of Power' by Kingsley Ochuko, T.,
        Abdullah, S., Binti Zain, Z., & Soaad Syed Yahaya, S. (2015).
        )g{®Gá&~@gö(\�ÂE~@g=
×£p�~@gfffffò~@g¤p=
×ó~@g×£p=
k@gR¸…ë‰@g¸…ëQ2€@gÍÌÌÌÌ8€@gÍÌÌÌÌ`€@g)\�Âõ`€@g=
×£p™€@g�Âõ(\#�@gÍÌÌÌÌà�@g=
×£pE‚@g…ëQ¸ƒ@g
×£p=ƒ@g×£p=
Õ„@g33333#…@)g=
×£pùt@g{®Gá&u@gq=
×£v@g¸…ëQDy@g     X{@g\�Âõ(P}@gš™™™™]~@gÍÌÌÌÌt~@gáz®GÑ~@g)\�Âõä~@gš™™™™1@gáz®G³‹@)g®Gáz8€@g     „€@g¤p=
×‘€@g
×£p=À€@g®GázÔ€@gq=
×£Ö€@gR¸…ëi�@g{®Gát�@gš™™™™w�@g=
×£p«�@g…ëQ¸S‚@gìQ¸…•‚@gö(\�Â©ƒ@gìQ¸…-„@g…ëQ¸ž…@g]ÜFxK@r   r¶   g R›8¹ß±?rÈ  g.Ui‹kL@göç&Z‡Ý±?NrJ  )rY   ZyoungÚmiddleÚoldrN  r_   r_   r`   Útest_compare_scholar  s     z(TestAlexanderGovern.test_compare_scholarc                 C   sX   g d¢}g d¢}t  ||¡}t|jddd� t|jddd� t|jdƒ t|jdƒ d	S )
aA  
        Data taken from 'Robustness And Comparative Power Of WelchAspin,
        Alexander-Govern And Yuen Tests Under Non-Normality And Variance
        Heteroscedasticity', by Ayed A. Almoied. 2017. Page 34-37.
        https://digitalcommons.wayne.edu/cgi/viewcontent.cgi?article=2775&context=oa_dissertations
        )g›¬QÑhü¿gM„O¯”ö¿gYÝê9æ¿gÀnÝÍSá¿g„dÈ¿gŠ}"O²¿gÐ¸p $¨?gë8~¨4ª?g
pÃ?g•�Zº‚Å?gá)äJ=Û?g·´÷XÝ?gpê”G·ã?gá›¦Ï¸æ?gù†Âgëàê?gýh8enë?g¹§«»í?guw�ùgï?gbÀ’«Xüï?gŸ9ëSŽIú?)g°�N]ù¬÷¿g	ŠcîZô¿gAJ˜ií¿gMg'ƒ£äé¿gãkÏ,	Pè¿gÉ<÷ç¿gÎˆÒÞà×¿g%zÅrKÕ¿gøü0BxÒ¿gëÅPN´«¸¿g½:Ç€ìõ¶¿gv‰ê­�­’¿gê?k~ü¥Ð?gIò\ß‡ƒÒ?gŠ­ i‰•à?g†<‚)Ûå?g�0Xrì?g¦
F%uÂò?gs�FZ*oõ?g£7ün:ù?gñ[z4Õæ?rÈ  r¶   gO²žZ}Ù?g¦9Ã$Õæ?gê6MDd}Ù?NrJ  )rY   rŒ  r�  rN  r_   r_   r`   Útest_compare_scholar37  s    z)TestAlexanderGovern.test_compare_scholar3c                 C   s<   g d¢dt jgg}tj|Ž }t|jt jƒ t|jt jƒ d S )NrÝ   r   ©rU   rV   rP   rG  r   r¯   r°   )rY   rù  r~   r_   r_   r`   Útest_nan_policy_propogatei  s    
z-TestAlexanderGovern.test_nan_policy_propogatec                 C   sR   g d¢dt jgg}ttdd��  tj|ddiŽ W d   ƒ n1 sD0    Y  d S )NrÝ   r   rØ  ru   rq   rs   )rU   rV   ry   rz   rP   rG  ©rY   rù  r_   r_   r`   Útest_nan_policy_raisep  s    z)TestAlexanderGovern.test_nan_policy_raisec                 C   sh   dddt jdgdt jddgg}g d¢g d¢g}tj|d	d
iŽ}tj|Ž }t|j|jƒ t|j|jƒ d S )Nr   r   r   r    r”  r  rÝ   )r   r”  r  rq   ro   rT  )rY   Zargs_nanZargs_no_nanZres_nanZ
res_no_nanr_   r_   r`   Útest_nan_policy_omitu  s    
z(TestAlexanderGovern.test_nan_policy_omitc                 C   sh   d}t jtj|d��@ t g d¢g d¢¡}t|jtjƒ t|j	tjƒ W d   ƒ n1 sZ0    Y  d S )Nz9An input array is constant; the statistic is not defined.ru   rÅ   rÇ   )
rÈ   rÉ   rP   rÊ   rG  r   r°   rU   rV   r¯   )rY   r}   r~   r_   r_   r`   rÌ   }  s    
ÿz'TestAlexanderGovern.test_constant_inputN)r‡   rˆ   r‰   rH  rI  rO  rR  rS  rU  rW  rX  rÌ   r_   r_   r_   r`   rF  �  s   B22rF  c                	   @   s  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e g d¢¡e g d¢¡ejdffe g d¢¡e g d¢¡ejejffg¡dd„ ƒZe	j
 dg d¢¡dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Ze	j
 dd g d!¢fg¡d"d#„ ƒZd$d%„ Zd&d'„ Zd(S ))ÚTestFOneWayc                 C   s0   t  ddgddg¡\}}t|dƒ t|dƒ d S )Nr   r   rr   rŽ   ©rP   Úf_onewayr   ©rY   r2  rË   r_   r_   r`   Útest_trivial‰  s    
zTestFOneWay.test_trivialc                 C   s>   t  ddgddg¡\}}t|dƒ t|dt d¡ dd� d S )	Nr   r   r    rI  r   r'   r[  rà   )rP   r[  r   r
   rU   r„   r\  r_   r_   r`   rÃ   �  s    
zTestFOneWay.test_basicc                 C   s2   t  dgdgg d¢¡\}}t|dƒ t|dƒ d S )Nr   r¶  r�  rO  rZ  r\  r_   r_   r`   Útest_known_exact–  s    
zTestFOneWay.test_known_exactc                 C   sJ   t jddgt jd�}t jddgt jd�}t ||¡\}}t|ddd� d S )	Né�  é  r;   é  é  gÞüÅ¸Èè?r[  rà   )rU   r   Úuint16rP   r[  r
   )rY   r»   rÂ   r2  rË   r_   r_   r`   Útest_large_integer_array   s    z$TestFOneWay.test_large_integer_arrayc                 C   sF   t jddgt jd�}t jddgt jd�}t ||¡}d}t||ƒ d S )Nr_  r`  r;   ra  rb  rÖ  )rU   r   rc  rP   r[  r   )rY   r»   rÂ   r~   r²   r_   r_   r`   Útest_result_attributes¨  s
    z"TestFOneWay.test_result_attributesc              	      s  g d¢}|D ]ö}d}t j t j t j t¡d|¡¡}t|ƒ�}| ¡  d¡}W d   ƒ n1 s`0    Y  dd„ |dd… D ƒ}t	j
|d	d
�}|j\‰‰ ˆ t¡‰t	 ˆ¡}	t|d d ƒ}‡ ‡fdd„|	D ƒ}
tj|
Ž }d}||v rêd}t|d ||d| d� qd S )N)z
SiRstv.datz
SmLs01.datz
SmLs02.datz
SmLs03.datzAtmWtAg.datz
SmLs04.datz
SmLs05.datz
SmLs06.datú
SmLs07.datú
SmLs08.datú
SmLs09.datrë   zdata/nist_anovaÚ
c                 S   s   g | ]}|  ¡ r| ¡ ‘qS r_   )ÚstripÚsplit)rf  Úliner_   r_   r`   ri  ¼  s   ÿz)TestFOneWay.test_nist.<locals>.<listcomp>r>  r)  rƒ  )Zskiprowsr   rK   c                    s   g | ]}ˆ ˆ|k ‘qS r_   r_   re  ru  r_   r`   ri  Ä  rj  )rf  rg  rh  rÈ  zFailing testcase: %s)rá   r  )ÚosÚpathÚabspathÚjoinÚdirnameÚ__file__ÚopenÚreadrk  rU   ZloadtxtrU  r¥  ru  Úuniquer–  rP   r[  r
   )rY   Ú	filenamesZ	test_caserá   Úfnamerû  ÚcontentZ	certifiedZdatafZcatyZxlistr~   Zhard_tcr_   ru  r`   Ú	test_nist¯  s,    ÿ
,



ÿzTestFOneWay.test_nistza, b, expected)rð  rð  rð  rÎ  r   c                 C   sX   d}t jtj|d��0 t ||¡\}}|s6J ||kƒ‚W d   ƒ n1 sJ0    Y  d S )Nú%Each of the input arrays is constant;ru   )rÈ   rÉ   rP   rÊ   r[  )rY   r»   rÂ   r¨  r}   rû  rË   r_   r_   r`   rÌ   Ï  s    zTestFOneWay.test_constant_inputr>   )rt  rK   r   r   c                 C   sÞ  t  g d¢g d¢g d¢g d¢g d¢g¡}t  g d¢g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g¡}t  g d¢g d¢g d¢g d¢g¡}|dv r¤|j}|j}|j}d}nd}d}tjtj|d��& tj||||d�\}}W d   ƒ n1 sè0    Y  dD ]X}	t t  ||	|¡t  ||	|¡t  ||	|¡¡\}
}t	||	 |
dd� t	||	 |dd� qödD ]„}	tjtj|d��\ t t  ||	|¡t  ||	|¡t  ||	|¡¡\}
}t
||	 |
ƒ t
||	 |ƒ W d   ƒ n1 �sÌ0    Y  �qTd 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   r   r!   r   )r$   r   r!   r   )r   r   r!   r   )r    r   r    r   )r    r   r    r   )r!   r    r    r   rÓ   r   r   rz  ru   r=   ri  r[  rà   r4  )rU   r   rU  rÈ   rÉ   rP   rÊ   r[  Ztaker
   r   )rY   r>   r»   rÂ   rß  Z	take_axisrÄ  rû  rË   rh  ÚfjZpjr_   r_   r`   Útest_2d_inputsÚ  sX    
ü
ù
ý4þþzTestFOneWay.test_2d_inputsc           
   
   C   s  dt  dd¡ ddd¡ }dt  dd¡ dd	d¡ }t  dt  dd
¡ ddd¡ ¡}tj|||dd�\}}|jdksxJ ‚|jdks†J ‚t|jd ƒD ]x}t|jd ƒD ]d}t ||d d …|f ||d d …|f ||d d …|f ¡\}}	t||||f ƒ t|	|||f ƒ q¦q”d S )Nr   rŽ   é�   r    r!   r#   r   éá   r$   éq   r=   )r    r#   r   )	rU   r   rS   ÚcosrP   r[  rT  rl  r
   )
rY   r»   rÂ   rß  rû  rË   rg  rh  ZfijZpijr_   r_   r`   Útest_3d_inputs
  s     <zTestFOneWay.test_3d_inputsc                 C   s`   d}t jtj|d��8 t g d¢g g d¢¡}t|tjtjfƒ W d   ƒ n1 sR0    Y  d S )Núat least one input has length 0ru   ré   rÁ  ©rÈ   rÉ   rP   ÚDegenerateDataWarningr[  r   rU   rV   ©rY   r}   rå   r_   r_   r`   Útest_length0_1d_error  s    z!TestFOneWay.test_length0_1d_errorc           	      C   sž   d}t jtj|d��v d}t d|f¡}t d|f¡}t d|f¡}t |||¡\}}tj|ftjd�}t	||ƒ t	||ƒ W d   ƒ n1 s�0    Y  d S )Nr‚  ru   r   r    r   r!   rW  )
rÈ   rÉ   rP   r„  rU   rr  r[  rf   rV   r   )	rY   r}   Zncolsr»   rÂ   rß  rû  rË   Znansr_   r_   r`   Útest_length0_2d_error"  s    
z!TestFOneWay.test_length0_2d_errorc                 C   sb   d}t jtj|d��: t dgdgdgdg¡}t|tjtjfƒ W d   ƒ n1 sT0    Y  d S )Nzall input arrays have length 1.ru   rE   rF   rG   rH   rƒ  r…  r_   r_   r`   Útest_all_length_one.  s    zTestFOneWay.test_all_length_onerù  r_   ré   c                 C   s6   t tƒ� tj|Ž  W d   ƒ n1 s(0    Y  d S rd  )ry   rí  rP   r[  rV  r_   r_   r`   Útest_too_few_inputs4  s    
zTestFOneWay.test_too_few_inputsc                 C   sP   t  d¡}t  d¡}ttƒ�  tj||dd� W d   ƒ n1 sB0    Y  d S )Nr¼  ©r!   r    r   r=   )rU   rr  ry   r   rP   r[  ©rY   r»   rÂ   r_   r_   r`   Útest_axis_error9  s    


zTestFOneWay.test_axis_errorc                 C   sP   t  d¡}t  d¡}ttƒ�  tj||dd� W d   ƒ n1 sB0    Y  d S )Nr¼  rŠ  r   r=   )rU   rr  ry   rz   rP   r[  r‹  r_   r_   r`   Útest_bad_shapes?  s    


zTestFOneWay.test_bad_shapesN)r‡   rˆ   r‰   r]  rÃ   r^  rd  re  ry  rÈ   r  r  rU   r   r  rV   rÌ   r|  r�  r†  r‡  rˆ  r‰  rŒ  r�  r_   r_   r_   r`   rY  ‡  s*   
 "$þ

/
rY  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 )ÚTestKruskalc                 C   s|   dg}dg}t  ||¡\}}t|dƒ t|t jj |d¡ƒ t  t |¡t |¡¡\}}t|dƒ t|t jj |d¡ƒ d S )Nr   r   rŽ   )	rP   Úkruskalr   r	   r&  r  r'  rU   r   ©rY   r|   rZ   ÚhrË   r_   r_   r`   Útest_simpleG  s    

zTestKruskal.test_simplec                 C   sˆ   g d¢}g d¢}t  ||¡\}}t|ddd� t|t jj dd¡ƒ t  t |¡t |¡¡\}}t|ddd� t|t jj dd¡ƒ d S )Nr�   ©r   r    r"   r$   rE   r.  rE   r4   r   )rP   r�  r	   r&  r  r'  rU   r   r�  r_   r_   r`   rÃ   Q  s    zTestKruskal.test_basicc                 C   s<   dg}ddg}d}d}|| }t  ||¡\}}t||ƒ d S )Nr   r   r  rÂ  )rP   r�  r   ©rY   r|   rZ   Úh_uncorrrr  r¨  r‘  rË   r_   r_   r`   Útest_simple_tie[  s    zTestKruskal.test_simple_tiec                 C   sJ   g d¢}g d¢}d}dt dƒd  }|| }t ||¡\}}t||ƒ d S )N)r   r   r   r   )r   r   r   r   r´   r   é�   éø  )r–  rP   r�  r	   r”  r_   r_   r`   Útest_another_tief  s    zTestKruskal.test_another_tiec           	      C   sj   g d¢}g d¢}ddg}d}dt dƒd  }|| }t |||¡\}}t||ƒ t|tjj |d¡ƒ d S )NrÄ  rÂ  r   r3   r   r—  r˜  )r–  rP   r�  r	   r&  r  r'  )	rY   r|   rZ   rð  r•  rr  r¨  r‘  rË   r_   r_   r`   Útest_three_groupso  s    
zTestKruskal.test_three_groupsc                 C   s4   g d¢}g d¢}g }t t |||¡tjtjfƒ d S )NrÄ  rÂ  )r   rP   r�  rU   rV   rw  r_   r_   r`   rË  {  s    zTestKruskal.test_emptyc                 C   s.   g d¢}g d¢}t  ||¡}d}t||ƒ d S )Nr�   r“  rÖ  )rP   r�  r   )rY   r|   rZ   r~   r²   r_   r_   r`   Útest_kruskal_result_attributes‚  s
    z*TestKruskal.test_kruskal_result_attributesc                 C   sp   t  d¡}t j|d< tt ||¡t jt jfƒ ttj||dd�dƒ tttj||dd� tttj||dd� d S )Nrm   r%   ro   rp   r  rs   rt   )	rU   r   rV   r   rP   r�  r   ry   rz   rX  r_   r_   r`   rZ  ‰  s    

zTestKruskal.test_nan_policyc                 C   sB   d}t j |¡}t j |¡d }t ||¡\}}d}t||ƒ d S )Nry  r<  r   )rU   r  rS  rP   r�  r	   )rY   rq  r|   rZ   r‘  rË   r¨  r_   r_   r`   Útest_large_no_samples‘  s    z!TestKruskal.test_large_no_samplesN)r‡   rˆ   r‰   r’  rÃ   r–  r™  rš  rË  r›  rZ  rœ  r_   r_   r_   r`   rŽ  F  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	dd„ Z
dd„ Zg d¢Zej dg d¢¡ej de¡dd„ ƒƒZej de¡dd„ ƒZdS )ÚTestCombinePvaluesc                 C   s(   t jg d¢dd�\}}t|ddd� d S )N©rÿ   rL  r?  rº  r	  gùf›Ó–?r    r4   ©rP   Úcombine_pvaluesr	   )rY   ZxsqrË   r_   r_   r`   Útest_fisher�  s    zTestCombinePvalues.test_fisherc                 C   s(   t jg d¢dd�\}}t|ddd� d S )Nrž  Ústoufferr	  ç¹S:Xÿç�?r    r4   rŸ  ©rY   ÚZrË   r_   r_   r`   Útest_stouffer¢  s    z TestCombinePvalues.test_stoufferc                 C   s(   t jg d¢dd�\}}t|ddd� d S )N)r'   r'   r'   r¢  r	  r'   r    r4   rŸ  r¤  r_   r_   r`   Útest_stouffer2¦  s    z!TestCombinePvalues.test_stouffer2c                 C   s0   t jg d¢dt d¡d�\}}t|ddd� d S )Nrž  r¢  r   ©rõ   r   r£  r    r4   )rP   r   rU   rr  r	   r¤  r_   r_   r`   Útest_weighted_stoufferª  s    ÿ
z)TestCombinePvalues.test_weighted_stoufferc                 C   s0   t jg d¢dt d¡d�\}}t|ddd� d S )Nrž  r¢  )r   r    r%   r¨  g46<½Â?r    r4   )rP   r   rU   r   r	   r¤  r_   r_   r`   Útest_weighted_stouffer2¯  s    ÿ
z*TestCombinePvalues.test_weighted_stouffer2c                 C   s(   t jg d¢dd�\}}t|ddd� d S )Nrž  r"  r	  gE»
)?©–?r    r4   rŸ  r¤  r_   r_   r`   Útest_pearson´  s    zTestCombinePvalues.test_pearsonc                 C   s(   t jg d¢dd�\}}t|ddd� d S )Nrž  Útippettr	  gïÉÃB­iž?r    r4   rŸ  r¤  r_   r_   r`   Útest_tippett¸  s    zTestCombinePvalues.test_tippettc                 C   s(   t jg d¢dd�\}}t|ddd� d S )N)r<  r<  r<  Úmudholkar_georger	  g&¶Øí“?r    r4   rŸ  r¤  r_   r_   r`   Útest_mudholkar_george¼  s    z(TestCombinePvalues.test_mudholkar_georgec                 C   s\   t jg d¢dd�\}}t jg d¢dd�\}}t jg d¢dd�\}}td||  |dd� d S )	Nrž  r®  r	  rº  r"  r'   r    r4   rŸ  )rY   r¥  rË   ZZ_fZp_fZZ_pZp_pr_   r_   r`   Ú2test_mudholkar_george_equal_fisher_pearson_averageÀ  s    zETestCombinePvalues.test_mudholkar_george_equal_fisher_pearson_average)rº  r"  r¬  r¢  r®  rá  )ÚsinglerL  r  rõ   c                    sÈ   d\}}t j d¡}|dkrNt  ||f| |¡¡}t  dd|¡|d d …df< nL|dkrtt  ||ft  dd|¡¡j}n&|dkršt j|jdd	||fd
�dd�}‡ fdd„|D ƒ}t  t  	|¡dk¡sÄJ ‚d S )N)rE   r#   l	   «TrU™(´	Ë"b¤-•=Ñ r±  r<  r>  r   rL  r  r   rû   r=   c                    s   g | ]}t j|ˆ d �d ‘qS )r	  r   )rP   r   )rf  r  r	  r_   r`   ri  Û  s   ÿz8TestCombinePvalues.test_monotonicity.<locals>.<listcomp>)
rU   r  r  rf   rN  rU  r/  rá  rL  Údiff)rY   rá  rõ   ro  rq  r  ZpvaluessZcombined_pvaluesr_   r	  r`   Útest_monotonicityÈ  s    
þz$TestCombinePvalues.test_monotonicityc                 C   s(   t jg d¢|d�}t|j|jf|ƒ d S )Nrž  r	  )rP   r   r   r°   r¯   )rY   rõ   r~   r_   r_   r`   rE  á  s    zTestCombinePvalues.test_resultN)r‡   rˆ   r‰   r¡  r¦  r§  r©  rª  r«  r­  r¯  r°  r  rÈ   r  r  r³  rE  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S )ÚTestCdfDistanceValidationzg
    Test that _cdf_distance() (via wasserstein_distance()) raises ValueErrors
    for bad inputs.
    c                 C   s<   t ttjdgdgdgddgƒ t ttjdgdgddgƒ d S )Nr   r   r    r   r   ©ry   rz   rP   Úwasserstein_distancer5  r_   r_   r`   Ú&test_distinct_value_and_weight_lengthsí  s    ÿz@TestCdfDistanceValidation.test_distinct_value_and_weight_lengthsc                 C   s@   t ttjddgdgddgƒ t ttjddgdgddgdgƒ d S )Nr   r   r   r   rµ  r5  r_   r_   r`   Útest_zero_weightô  s    ÿÿz*TestCdfDistanceValidation.test_zero_weightc                 C   s(   t ttjddgddgddgddgƒ d S )Nr   r   r   r   rK   rµ  r5  r_   r_   r`   Útest_negative_weightsü  s    ÿz/TestCdfDistanceValidation.test_negative_weightsc                 C   s*   t ttjg ddgƒ t ttjdgg ƒ d S rä  rµ  r5  r_   r_   r`   Útest_empty_distribution  s    z1TestCdfDistanceValidation.test_empty_distributionc                 C   s,   t ttjg d¢ddgdtjdgddgƒ d S )NrN  r   )ry   rz   rP   r¶  rU   r  r5  r_   r_   r`   Útest_inf_weight  s    ÿz)TestCdfDistanceValidation.test_inf_weightN)	r‡   rˆ   r‰   r  r·  r¸  r¹  rº  r»  r_   r_   r_   r`   r´  ç  s   r´  c                   @   sN  e Zd ZdZdd„ Zej dd¡ej dd¡ej dd	¡d
d„ ƒƒƒZej dd¡ej dd¡ej dd¡dd„ ƒƒƒZ	ej dd¡ej dd¡ej dd¡dd„ ƒƒƒZ
dd„ Zej dd¡ej dd¡ej dd¡dd„ ƒƒƒZej dd¡ej dd¡ej dd¡dd „ ƒƒƒZd!d"„ Zej d#g d$¢¡ej d%g d$¢¡d&d'„ ƒƒZd(S ))ÚTestWassersteinDistanceNDz8 Tests for wasserstein_distance_nd() output values.
    c                 C   s^   g d¢}g d¢}t  ||¡}t g d¢¡}t g d¢¡}t || ¡t |¡ }t||ƒ d S )N)rç  rç  rç  rç  rç  rç  rç  rç  rç  rç  )r    r   ©r"   r   r½  )ry  ry  r}  r}  r}  rý  rý  rý  rý  rý  rý  rý  )r#   r   )rI  r´   r3   rŽ   rŽ   rŽ   )rŽ   g¨ô—›wã@rH  gÍ;fž ö?rŽ   rŽ   )rP   Úwasserstein_distance_ndrU   r   rZ  r
   )rY   r5  r6  r~   ZflowÚdistr  r_   r_   r`   Útest_published_values  s    z/TestWassersteinDistanceND.test_published_valuesÚn_value)r    r  rü  rÚ  )r   r    r#   Úmax_repeats)r!   rE   c                 C   s´   t j d¡}|jd||td�}|j||fd�}t j||dd�}| t  |¡¡}t  t  t|ƒ¡|¡}	t j	|	|d�}
| 
t|ƒ¡}|| ||  }}t |||
|¡}t|ddd	� d S )
Nl   ½na{ÇF.a¹P	 r   )r…   r<   rû   r   r=   rí  rµ   r¶   )rU   r  r  Úintegersru  r¶  rZ  r   r3  Zbincountr÷   rP   r¾  r
   )rY   rÚ  rÁ  rÂ  r  ZrepeatsÚu_valuesÚv_valuesÚ	v_weightsZrange_repeatÚ	u_weightsr7  r~   r_   r_   r`   Útest_same_distribution_nD$  s    z3TestWassersteinDistanceND.test_same_distribution_nDÚnu)r$   r%   é&   Únv)r$   rG   rN   )r   r!   rÒ  c                 C   sz   t j d¡}|j||fd�}t  ||f¡}|j|d�}|j|d�}t jt jj|dd�|d�}	t ||||¡}
t	|
|	ƒ d S )Nì   }·&�=„:! rû   r   r=   rí  )
rU   r  r  r•  rî  r·  rä  rP   r¾  r
   )rY   rÉ  rË  rÚ  r  rÄ  rÅ  rÇ  rÆ  r  r~   r_   r_   r`   Útest_collapse_nD8  s    z*TestWassersteinDistanceND.test_collapse_nD)r$   rx   rD  )r   r   r"   c                 C   sÀ   t j d¡}|j||fd�}|j||fd�}|j|d�}|j|d�}t ||||¡}	|jd|dd�\}
}|j||fd�}t j||
|dd�}t j||
t  |¡dd�}t ||||¡}t||	ƒ d S )NrÌ  rû   r   r   r=   )	rU   r  r  rP   r¾  rÃ  Úinsertr•  r
   )rY   rÉ  rË  rÚ  r  rÄ  rÅ  rÇ  rÆ  r  Úadd_rowZnrowsÚ	add_valuer~   r_   r_   r`   Útest_zero_weight_nDH  s    z-TestWassersteinDistanceND.test_zero_weight_nDc                 C   s®   ddgddggt jt j ggddg  }}}t |||¡}t|t jƒ t jdd��H t jt jggt jt j gg }}t ||¡}t|t jƒ W d   ƒ n1 s 0    Y  d S )Nr   r   r‹  rŒ  )rU   r  rP   r¾  r   rŽ  rV   )rY   ZuvÚvvZuwZdistancer_   r_   r`   Útest_inf_values[  s    , z)TestWassersteinDistanceND.test_inf_valuesrH  )r   r   r!   c                 C   sª   t j d¡}|j||fd�}|j||fd�}|j|d�}|j|d�}t ||||¡}	| d|¡}
| ¡ }t j||
|dd�}t j||
|dd�}t ||||¡}t||	ƒ d S )Nl   å¶L€qÏ/ rû   r   r   r=   )rU   r  r  rP   r¾  rÃ  rÎ  r
   )rY   rÉ  rË  rÚ  r  rÄ  rÅ  rÇ  rÆ  r  Zadd_dimrÐ  r~   r_   r_   r`   Útest_multi_dim_nDf  s    z+TestWassersteinDistanceND.test_multi_dim_nD)r#   rH   r”  )r   r    r#   c                 C   s¤   t j d¡}|j||fd�}|j||fd�}|j|d�}|j|d�}t ||||¡}	t |¡}
|
j|d�}|j|d�}t || | || | ||¡}t||	ƒ d S )Nl   ØuÎAh~rû   rü   )rU   r  r  rP   r¾  Zortho_grouprþ   r
   )rY   rÉ  rË  rÚ  r  rÄ  rÅ  rÇ  rÆ  r  r¿  Z	transformÚshiftr~   r_   r_   r`   Útest_orthogonal_nDz  s    

þz,TestWassersteinDistanceND.test_orthogonal_nDc                 C   s  t j d¡}tjtdd��4 |jdd�}|jdd�}t ||¡}W d   ƒ n1 sT0    Y  tjtdd��4 |jdd�}|jd	d�}t ||¡}W d   ƒ n1 s¦0    Y  tjtd
d��4 |jdd�}|jdd�}t ||¡}W d   ƒ n1 sø0    Y  d S )Nl   e36^[YŸ{lz Invalid input values. The inputsru   )r    rE   r  rû   )r"   r   r#   z Invalid input values. Dimensions)r  )r   r  z(Invalid input values. If two-dimensional)r   rE   r~  )rU   r  r  rÈ   r   rz   rP   r¾  )rY   r  rÄ  rÅ  r0  r_   r_   r`   Útest_error_code�  s    **ÿz)TestWassersteinDistanceND.test_error_codeÚu_size)r   rE   r9  Úv_sizec                 C   sÔ   t j d¡}|j|dfd�}|j|dfd�}| ¡ }| ¡ }t ||¡}t ||¡}	t ||¡}
t|	|ƒ t|
|ƒ |j|d�}|j|d�}t ||||¡}t ||||¡}	t ||||¡}
t|	|ƒ t|
|ƒ d S )Nl   Ku@* r   rû   )rU   r  r  rè  rP   r¶  r¾  r
   )rY   rØ  rÙ  r  rÄ  rÅ  Zu_values_flatZv_values_flatZd1Zd2Zd3rÇ  rÆ  r_   r_   r`   Útest_optimization_vs_analyticalŸ  s.    

ÿÿÿ
z9TestWassersteinDistanceND.test_optimization_vs_analyticalN)r‡   rˆ   r‰   r  rÀ  rÈ   r  r  rÈ  rÍ  rÑ  rÓ  rÔ  rÖ  r×  rÚ  r_   r_   r_   r`   r¼    s6   r¼  c                   @   sH   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S )ÚTestWassersteinDistancez5 Tests for wasserstein_distance() output values.
    c                 C   s„   t t ddgdgddgdg¡dƒ t t ddgdgddgdg¡dƒ t t ddgdgddgdg¡dƒ t t g d¢g d¢¡dƒ d S )	Nr   r   r'   r   r  r   r(  ré   ©r
   rP   r¶  r5  r_   r_   r`   r’  À  s&    þÿþÿþÿþz#TestWassersteinDistance.test_simplec                 C   sD   t t g d¢g d¢¡dƒ t t g d¢ddgg d¢ddg¡dƒ d S ©	Nré   r  r   )r   r   r   r    r    r   rÌ  r   )r   rP   r¶  r5  r_   r_   r`   Útest_same_distributionÐ  s    ÿýz.TestWassersteinDistance.test_same_distributionc                 C   sp   t t dgdg¡dƒ t t dgdg¡dƒ t t g d¢g d¢¡dƒ t t g d¢g d	¢g d
¢g d¢¡dƒ d S )Nr   r   r¥  r!   rE   r«  )rF   rG   rH   rC   r  )r+   gÍÌÌÌÌÌ@r”  )r’  r#   rœ  )r   r   r   )r   r   r   r)   rÜ  r5  r_   r_   r`   Ú
test_shiftÙ  s    þÿýz"TestWassersteinDistance.test_shiftc              	   C   sF   t t g d¢g d¢g d¢g d¢¡t g d¢g d¢g d¢g 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Ü  r5  r_   r_   r`   Útest_combine_weightsæ  s    þÿüz,TestWassersteinDistance.test_combine_weightsc                 C   s|   t  ddd¡}t  |¡}tt ||¡t  t  |¡¡ƒ t  t|ƒ¡}|d d d… }tt ||||¡t j	t  |¡|d�ƒ d S )Nr]  r=  r?  rK   rí  )
rU   r   r@  r
   rP   r¶  rT   r¼  r3  rî  )rY   r5  r6  rÇ  rÆ  r_   r_   r`   Útest_collapseð  s    

þþz%TestWassersteinDistance.test_collapsec              	   C   sF   t t g d¢ddgg d¢ddg¡t ddgddgddgddg¡ƒ d S ©N)r   r   rx  r   r1  r   rÜ  r5  r_   r_   r`   r¸     s    ÿýz(TestWassersteinDistance.test_zero_weightc                 C   sÀ   t t ddtjgddg¡tjƒ t t ddtjgtj dg¡tjƒ t t dtj tjgddg¡tjƒ tƒ �>}| td¡ t t ddtjgtjdg¡tjƒ W d   ƒ n1 s²0    Y  d S ©Nr   r   rn   )	r   rP   r¶  rU   r  r   rW   rX   rV   ©rY   r^   r_   r_   r`   rÓ    s$    þþþþz'TestWassersteinDistance.test_inf_valuesN)r‡   rˆ   r‰   r  r’  rÞ  rß  râ  rã  r¸  rÓ  r_   r_   r_   r`   rÛ  ¼  s   	
rÛ  c                   @   s@   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S )ÚTestEnergyDistancez0 Tests for energy_distance() output values.
    c                 C   s¢   t t ddgdgddgdg¡t d¡d ƒ t t ddgdgddgdg¡t d¡d ƒ t t ddgdgddgdg¡dƒ t t g d¢g d	¢¡t d¡d
 ƒ d S )Nr   r   r   r'   r   r  rŽ   r(  ré   g3�E§yâ?©r   rP   Úenergy_distancerU   r„   r5  r_   r_   r`   r’    s$    þÿþÿþþzTestEnergyDistance.test_simplec                 C   sD   t t g d¢g d¢¡dƒ t t g d¢ddgg d¢ddg¡dƒ d S rÝ  )r   rP   ré  r5  r_   r_   r`   rÞ  .  s
    þz)TestEnergyDistance.test_same_distributionc                 C   s@   t t dgdg¡t d¡ƒ t t dgdg¡t d¡d ƒ d S )Nr   r   r   r¥  r!   gS[Ú:XL	@rè  r5  r_   r_   r`   rß  6  s
    þzTestEnergyDistance.test_shiftc              	   C   sF   t t g d¢g d¢g d¢g d¢¡t g d¢g d¢g d¢g d¢¡ƒ d S rà  ©r   rP   ré  r5  r_   r_   r`   râ  >  s    ÿýz'TestEnergyDistance.test_combine_weightsc              	   C   sF   t t g d¢ddgg d¢ddg¡t ddgddgddgddg¡ƒ d S rä  rê  r5  r_   r_   r`   r¸  F  s    þz#TestEnergyDistance.test_zero_weightc                 C   sÀ   t t ddtjgddg¡tjƒ t t ddtjgtj dg¡tjƒ t t dtj tjgddg¡tjƒ tƒ �>}| td¡ t t ddtjgtjdg¡tjƒ W d   ƒ n1 s²0    Y  d S rå  )	r   rP   ré  rU   r  r   rW   rX   rV   ræ  r_   r_   r`   rÓ  L  s     þþþz"TestEnergyDistance.test_inf_valuesN)
r‡   rˆ   r‰   r  r’  rÞ  rß  râ  r¸  rÓ  r_   r_   r_   r`   rç    s   rç  c                   @   s€   e Zd Zg d¢Zg 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S )ÚTestBrunnerMunzel)r   r   r   r   r   r   r   r   r   r   r   r    r   r   ©r   r   r    r   r   r   r   r   r   r!   r    rH   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Û   r4   ç|	&�ˆ	@ç|	&�ˆ	Àg°¿Ò�G³g?g@-p¸Lèï?)rP   ÚbrunnermunzelrQ   r„  r	   r5   r   r…  r_   r_   r`   Útest_brunnermunzel_one_sidedc  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Þ   r4   rí  rî  ç ÀÒ�G³w?©rP   rï  rQ   r„  r	   r5   r‹  r_   r_   r`   Útest_brunnermunzel_two_sidedz  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 )Nr4   rí  rî  rñ  rò  r‹  r_   r_   r`   Útest_brunnermunzel_default‡  s    ÿÿÿz,TestBrunnerMunzel.test_brunnermunzel_defaultc                 C   s6   d}d}d}t |dvƒ tttj| j| j|||ƒ d S )NrÊ  rå  rb  rë  ©r   ry   rz   rP   rï  rQ   r„  ©rY   rß   Údistributionrq   r_   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 )Nr  ©r÷  r4   rí  rî  g œ"H°ë[?rò  r‹  r_   r_   r`   Ú$test_brunnermunzel_distribution_norm¡  s    ÿÿÿz6TestBrunnerMunzel.test_brunnermunzel_distribution_normc                 C   s6   d}d}d}t |dvƒ tttj| j| j|||ƒ d S )Nr×   rÊ  rb  )rå  r  rõ  rö  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jƒ t|tjƒ t|tjƒ t|tjƒ t|tjƒ t|tjƒ d S rd  )rP   rï  rQ   r„  r   rU   rV   )rY   r†  r8  r‡  rI  rˆ  rJ  r_   r_   r`   Útest_brunnermunzel_empty_imput¹  s    z0TestBrunnerMunzel.test_brunnermunzel_empty_imputc                 C   sˆ   ddddddddddddddt jg}g d¢}tj||dd�\}}tj||dd�\}}t|t jƒ t|t jƒ t|t jƒ t|t jƒ d S )Nr   r   r    rì  rb  rp   )rU   rV   rP   rï  r   ©rY   rQ   r„  r†  r8  r‡  rI  r_   r_   r`   Ú&test_brunnermunzel_nan_input_propagateÅ  s    $z8TestBrunnerMunzel.test_brunnermunzel_nan_input_propagatec                 C   sh   ddddddddddddddt jg}g d¢}d}d}d}tttj|||||ƒ tttj|||||ƒ d S )Nr   r   r    rì  r×   rå  rs   )rU   rV   ry   rz   rP   rï  )rY   rQ   r„  rß   r÷  rq   r_   r_   r`   Ú"test_brunnermunzel_nan_input_raiseÐ  s*    $úúz4TestBrunnerMunzel.test_brunnermunzel_nan_input_raisec                 C   s˜   ddddddddddddddt jg}g d¢}tj||dd�\}}tj||dd�\}}t||| jd� t|d| jd� t|d	| jd� t|d
| jd� d S )Nr   r   r    rì  ro   rp   r4   rí  rî  rñ  )rU   rV   rP   rï  r	   r5   rý  r_   r_   r`   Ú!test_brunnermunzel_nan_input_omitæ  s    $ÿÿÿz3TestBrunnerMunzel.test_brunnermunzel_nan_input_omitc                 C   sV   g d¢}g d¢}d}t jt|d��  tj||dd� W d  ƒ n1 sH0    Y  dS )z| tests that a warning is emitted when p is nan
        p-value with t-distributions can be nan (0/0) (see gh-15843)
        ré   r  zDp-value cannot be estimated|divide by zero|invalid value encounteredru   rå  rù  N)rÈ   rÉ   rX   rP   rï  r�  r_   r_   r`   Útest_brunnermunzel_return_nanô  s
    z/TestBrunnerMunzel.test_brunnermunzel_return_nanc                 C   s`   g d¢}g d¢}t jtdd��$ tj||dd�\}}W d  ƒ n1 sH0    Y  t|dƒ dS )	zo tests that a p is 0 for datasets that cause p->nan
        when t-distribution is used (see gh-15843)
        ré   r  zdivide by zeroru   r  rù  Nr   )rÈ   rÉ   rX   rP   rï  r   )rY   r|   rZ   r0  rË   r_   r_   r`   Útest_brunnermunzel_normal_distÿ  s
    2z0TestBrunnerMunzel.test_brunnermunzel_normal_distN)r‡   rˆ   r‰   rQ   r„  r5   rð  ró  rô  rø  rú  rû  rü  rþ  rÿ  r   r  r  r_   r_   r_   r`   rë  ]  s   rë  c                   @   s   e Zd ZdZdd„ ZdS )ÚTestRatioUniformsz{ Tests for rvs_ratio_uniforms are in test_sampling.py,
    as rvs_ratio_uniforms is deprecated and moved to stats.sampling c              	   C   s®   t jj}t |t d¡ƒ¡t d¡ }t |dƒ¡}t jj||| |dd�}| d¡}d}tj	t
|d��( t j||| |ddd�}W d   ƒ n1 s–0    Y  t||ƒ d S )	Nr   r   i90  )ÚumaxZvminZvmaxrý   rE   zEPlease use `RatioUniforms` from the `scipy.stats.sampling` namespace.ru   rf  )rP   rä  ZpdfrU   r„   ZsamplingZRatioUniformsrþ   rÈ   rÉ   ÚDeprecationWarningZrvs_ratio_uniformsr   )rY   rû  r6  r  Úgenr÷  Zdeprecation_msgrø  r_   r_   r`   Útest_consistency  s    ÿ
ÿ$z"TestRatioUniforms.test_consistencyN)r‡   rˆ   r‰   r  r  r_   r_   r_   r`   r    s   r  c                   @   sb   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Ze	j
 dddg¡dd„ ƒZdd„ Zdd„ ZdS )ÚTestMGCErrorWarningsz1 Tests errors and warnings derived from MGC.
    c                 C   s8   t  d¡}dgd }tttj||ƒ tttj||ƒ d S )Nr  r!   ©rU   r   ry   rz   rP   Úmultiscale_graphcorrrî   r_   r_   r`   Útest_error_notndarray   s    

z*TestMGCErrorWarnings.test_error_notndarrayc                 C   s2   t  d¡ dd¡}| dd¡}tttj||ƒ d S )Nrù   r  r    rE   )rU   r   rS   ry   rz   rP   r
  rî   r_   r_   r`   Útest_error_shape'  s    z%TestMGCErrorWarnings.test_error_shapec                 C   s(   t  d¡}t  d¡}tttj||ƒ d S )Nr   r	  rî   r_   r_   r`   Útest_error_lowsamples-  s    

z*TestMGCErrorWarnings.test_error_lowsamplesc                 C   sF   t jdtd�}t j|d< tttj||ƒ t  d¡}tttj||ƒ d S )Nr  r;   r   )rU   r   r–  rV   ry   rz   rP   r
  rî   r_   r_   r`   Útest_error_nans3  s
    

z$TestMGCErrorWarnings.test_error_nansc                 C   s&   t  d¡}d}tttj|||d� d S )Nr  r   )Úcompute_distancer	  )rY   r|   r  r_   r_   r`   Útest_error_wrongdisttype<  s
    
ÿz-TestMGCErrorWarnings.test_error_wrongdisttyper�  rK   Ú1c                 C   s"   t  d¡}tttj|||d� d S )Nr  ©r�  r	  )rY   r�  r|   r_   r_   r`   Útest_error_repsC  s    
z$TestMGCErrorWarnings.test_error_repsc                 C   s&   t  d¡}d}tttj|||d� d S )Nr  rù   r  )rU   r   r   rX   rP   r
  )rY   r|   r�  r_   r_   r`   Útest_warns_repsL  s    
z$TestMGCErrorWarnings.test_warns_repsc                 C   s.   t  d¡}t  d¡t j }tttj||ƒ d S )Nr  )rU   r   rr  r  ry   rz   rP   r
  rî   r_   r_   r`   Útest_error_inftyR  s    
z%TestMGCErrorWarnings.test_error_inftyN)r‡   rˆ   r‰   r  r  r  r  r  r  rÈ   r  r  r  r  r  r_   r_   r_   r`   r    s   	þ
r  c                   @   s¾   e Zd ZdZddd„Zejjej dg d¢¡d	d
„ ƒƒZ	ejjej dddg¡dd„ ƒƒZ
ejjdd„ ƒZejjdd„ ƒZejjdd„ ƒZejjdd„ ƒZejjdd„ ƒZejjdd„ ƒZdS )ÚTestMGCStatz) Test validity of MGC test statistic
    rù   r   Ú c                 C   st  |dkr<t jjdd|dfd�}|dt jj|jdfd�  }nú|dkr¢t  t jjdd|dfd�¡}|t  t j| ¡ }|t  t j| ¡ d	t jj|jdfd�  }n”|d
k�r.t jj	dd|dfd�}t jj	dd|dfd�}t jj
dd|dfd�}	t jj
dd|dfd�}
|d d|	  d }|d d|
  d }ntdƒ‚|dk�rlt jj	dd||d fd�}t j||fdd�}||fS )Nrk  rK   r   rû   r?  Ú	nonlinearr   r!   r€  Úindependencer'   )rË   r…   r   r   z3sim_type must be linear, nonlinear, or independencer=   )rU   r  rá  Zrandom_sampler…   r   r€  ÚpirO  r  Úbinomialrz   rê  )rY   ÚsampsÚdimsÚsim_typer|   rZ   Zunifr5  r6  Zu_2Zv_2Z
dims_noiser_   r_   r`   Ú_simulations\  s*    ÿ

zTestMGCStat._simulationszsim_type, obs_stat, obs_pvalue))rk  rP  r   )r  çw¾Ÿ/ÝÄ?r   )r  gUÁ¨¤N@ƒ¿gö(\�Âõè?c           	      C   sR   t j d¡ | jdd|d�\}}t ||¡\}}}t||dd� t||dd� d S )Nr«  rù   r   ©r  r  r  r4   ©rU   r  rR  r  rP   r
  r	   ©	rY   r  Zobs_statZ
obs_pvaluer|   rZ   r)  r¯   r0  r_   r_   r`   Ú	test_oned~  s
    zTestMGCStat.test_oned)rk  gZd;ßO�Ç?r   )r  gÛù~j¼t“?gÁÊ¡E¶ó½?c           	      C   sR   t j d¡ | jdd|d�\}}t ||¡\}}}t||dd� t||dd� d S )Nr«  rù   r!   r!  r   r4   r"  r#  r_   r_   r`   Ú
test_fived�  s
    zTestMGCStat.test_fivedc                 C   s¦   t j d¡ t jjdddd�}t jjdddd�}t ||¡\}}}t|d	dd
� t|ddd
� t jjdddd�}tj||dd�\}}}t|d	dd
� t|ddd
� d S )Nr«  rù   r'   )rù   r!   rû   r   r   )r…  r!   rŽ   r4   r   T)Z
is_twosamp)rU   r  rR  r  r  rP   r
  r	   ©rY   r|   rZ   r)  r¯   r0  r_   r_   r`   Útest_twosampŸ  s    zTestMGCStat.test_twosampc                 C   sV   t j d¡ | jdddd�\}}tj||dd�\}}}t|ddd	� t|d
dd	� d S )Nr«  rù   r   rk  r!  r   )ÚworkersrP  r4   r   r"  r&  r_   r_   r`   Útest_workers´  s
    zTestMGCStat.test_workersc                 C   sJ   | j dddd�\}}tj||dd�\}}}t|ddd� t|ddd� d S )	Nrù   r   rk  r!  rü   rP  r4   r   )r  rP   r
  r	   r&  r_   r_   r`   Útest_random_stateÀ  s    zTestMGCStat.test_random_statec                 C   st   t j d¡ | jdddd�\}}t||dd�}t||dd�}tj||d dd�\}}}t|d	dd
� t|ddd
� d S )Nr«  rù   r   r  r!  Z	euclidean)Zmetric)r  rý   r   r4   r   )rU   r  rR  r  r   rP   r
  r	   )rY   r|   rZ   ZdistxZdistyZ	stat_distZpvalue_distr0  r_   r_   r`   Útest_dist_permÊ  s    þzTestMGCStat.test_dist_permc                 C   sD   t j d¡ | jdddd�\}}tj||dd�\}}}t|dƒ d S )Nr«  rù   r   rk  r!  rü   rä  )rU   r  rR  r  rP   r
  r
   )rY   r|   rZ   r0  r¯   r_   r_   r`   Útest_pvalue_literatureØ  s    z"TestMGCStat.test_pvalue_literaturec                 C   sB   t j d¡ | jdddd�\}}tj||dd�}t|j|jƒ d S )Nr«  rù   r   rk  r!  rü   )	rU   r  rR  r  rP   r
  r   r)  r°   rh  r_   r_   r`   Ú
test_aliasã  s    zTestMGCStat.test_aliasN)rù   r   r  )r‡   rˆ   r‰   r  r  rÈ   r  rF  r  r$  r%  r  r'  r)  r*  r+  r,  r-  r_   r_   r_   r`   r  Y  s.   
"þ


	


r  c                   @   sÀ   e Zd ZdZdd„ Zej dg d¢g d¢ddej	 d	d
gdddej	dgg¡dd„ ƒZ
ej dg d¢g d¢g¡dd„ ƒZej dddg¡ej dd
dg¡ej dddg¡dd„ ƒƒƒZdd„ ZdS ) ÚTestQuantileTestzb Test the non-parametric quantile test,
    including the computation of confidence intervals
    c                 C   sÔ  g d¢}d}t jt|d�� t |g¡ W d   ƒ n1 s<0    Y  d}t jt|d��" tj|ddgd� W d   ƒ n1 s€0    Y  d}t jt|d��" tj|d	d
gd� W d   ƒ n1 sÄ0    Y  t jt|d�� tj|dd� W d   ƒ n1 �s0    Y  t jt|d�� tj|dd� W d   ƒ n1 �s@0    Y  d}t jt|d�� tj|dd� W d   ƒ n1 �s‚0    Y  d}t jt|d��  t |¡ d¡ W d   ƒ n1 �sÆ0    Y  d S )Nré   z/`x` must be a one-dimensional array of numbers.ru   z`q` must be a scalar.r   r   )r‚  z-`p` must be a float strictly between 0 and 1.r'   rÂ  rê  r  z`alternative` must be one of...z	one-sidedrÞ   rñ  )rÈ   r   rz   rP   Úquantile_testrÔ   )rY   r|   rò   r_   r_   r`   Útest_quantile_test_ivó  s(    *00...z&TestQuantileTest.test_quantile_test_ivzp, alpha, lb, ub, alternative)r?  r  gŽ¬XžÝŠó?g²¼èœ¶¡÷?r×   )r'   r>  g-tA÷ìø?gPòçô"Ýü?r×   r  r  gô{ØËgAö?rÙ   r‡  r>  gøÜg´�ï @rÛ   c                 C   s@   t  t  ddd¡¡}tj|||d�}t| |¡||gdd� d S )Nr   rÄ  rÿ   )rË   rß   rµ   rà   )rU   rB  r   rP   r/  r
   rÔ   )rY   rË   ró  ZlbZubrß   r|   r~   r_   r_   r`   Útest_R_ci_quantile   s    z#TestQuantileTest.test_R_ci_quantilezq, p, alternative, ref)rŸ  r?  r×   gÍ¯ÚIð	�?)rB  r'   r×   gÉ�Q%e¼?c                 C   s:   t  t  ddd¡¡}tj||||d�}t|j|dd� d S )Nr   rÄ  rÿ   ©r‚  rË   rß   r&   rà   )rU   rB  r   rP   r/  r
   r¯   )rY   r‚  rË   rß   r  r|   r~   r_   r_   r`   Útest_R_pvalue"   s    zTestQuantileTest.test_R_pvaluer1  Ú
continuousZdiscreterß   ró  c                 C   s  t dt|ƒ t|ƒ | ƒ}tj |¡}|dkrN|jdd�\}}|jdd�}n$|jdddd�}| ¡ }| dd¡}tj||||d�}	|	j|d	�}
|d
kr¤||
j	k}n
||
j
k}|| D ](}tj||||d�}	|	jd| ks¶J ‚q¶||  D ](}tj||||d�}	|	jd| k sêJ ‚qêd S )Nr#   r4  r   rû   rù   r   rF   r2  rî  rÙ   )ru  r3  rU   r  r  rÃ  rP   r/  rÔ   r5  r4  r¯   )rY   r1  rß   ró  rR  r  rË   r‚  rþ   r~   ræ   Zi_insider|   r_   r_   r`   Útest_pval_ci_match1   s&    
z#TestQuantileTest.test_pval_ci_matchc                 C   s~   g d¢}d}t j|dddd�}t|j|dd� d	gd
 dgd  }t jddd�jd
d�}t j|dddd�}t|j|dd� d S )N)é½   éé   éÃ   é    éÔ   é°   éç   é¹   éÇ   éÕ   éÊ   éÁ   rW  é¦   éø   geâX·¡?rA  rÂ  r×   r2  rÈ  rà   é;   r$   rA   éh   r'   ép   )rË   rq  rü  rƒ  rÛ   r%  r¶   )rP   r/  r
   r¯   r   Zpmf)rY   r|   Zpvalue_expectedr~   r_   r_   r`   Útest_match_conover_examplesZ   s    
z,TestQuantileTest.test_match_conover_examplesN)r‡   rˆ   r‰   r  r0  rÈ   r  r  rU   r  r1  r3  r5  rG  r_   r_   r_   r`   r.  î  s.   ýþ
ÿþ

&r.  c                    @   sÆ  e Zd Zej d¡ ej dd¡Zej dd¡Zdddd	efd
ddd	efdddd	g d¢g d¢g d¢gfddddg d¢g d¢g d¢gfddddg d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢gfddddg d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d ¢g d!¢g d!¢g d!¢g d!¢g d!¢g d!¢g d!¢gfd"d#ddg d$¢g d$¢g d%¢gfd&d'ddg d(¢g d(¢g d(¢g d(¢g d(¢g d(¢g d)¢g d*¢g d*¢g d*¢g
fd+d,ddg d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d ¢g d!¢g d!¢g d!¢g d!¢g d!¢g d!¢gfd-d.ddg d/¢g d/¢g d0¢g d1¢gfd2d3ddg d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d ¢g d!¢gfgZ	e
j d4e	¡d5d6„ ƒZd7d8ddg d9¢g d:¢gfd;d<ddg d9¢g d9¢g d9¢g d=¢g d>¢gfd?d@ddg dA¢g dA¢g dA¢g dA¢g dA¢g dA¢g dA¢g dA¢g dA¢g dB¢g dC¢g dC¢g dC¢g dC¢g dC¢gfgZe
j d4e	¡e
j ¡ dDdE„ ƒƒZdFdG„ ZdHdI„ ZdJdK„ ZdLS )MÚTestPageTrendTestr   r   r  rE   é   i2  g:hÓÑžßØ?Fr  iô¿  gsœ´°H•�?i,0  gYµ–Ù@¶è?)re  rc  éI   rü  rc  é`   r=  rD  rh  r>  ra  é1   r`  é+   r
  rc  r:  r:  rf  r  rA   r  r…  r  r<  )éD   r-  rƒ  é"   r   r  éA   éX   rB   r`  r)  r6  r6  éC   éE   r(  r=  r  r>  éW   r
  rM  r<  rK  rM  )r`  rH   éU   rü  éO   rG   é\   éV   rB   é@   rx   rY  rN  rN   rx   éY   rx  rM  rM  r>  é6   rH   éB   r×  r–  i
  gXYþ›?r  )r(   rH  gš™™™™™ @r!   r”  rF   )r!   r    r*   rE   r  rB   )rQ  r“  rE   rG   rC   r  iL  gs¾¬®Ëœî?T)r    r   r   r   )r   r    r   r   rÝ   éñ   gÄžªºƒÊî?)r   r   r   r  ré   éÅ   g£>K=Èî?)r"   r!   r    r   r   r   )r   r   r    r!   r   r"   i§  gÓqÅá€°î?)r!   r    r   r   r   )r    r   r   r   r!   r«  éÙ   gaŽ¹·�ï?i‹  g“;¸º�ºï?)r#   r"   r!   r    r   r   r   )r"   r!   r#   r    r   r   r   rû  éu   g°[^6þï?zL, p, ranked, method, datac                 C   sD   t j d¡ tj|||d�}t||jƒ t||jƒ t||j	ƒ d S ©Nrð  )Úrankedrõ   ©
rU   r  rR  rP   Úpage_trend_testr   r°   r
   r¯   rõ   ©rY   ÚLrË   rb  rõ   rß  r~   r_   r_   r`   Útest_accuracy¸   s
    zTestPageTrendTest.test_accuracyi  g-lp¦Wî?)
rE   r%   r$   r#   r"   r!   r    r   r   r   )
r   r$   r    r#   r"   r!   r%   r   r   rE   i*  ghÑÕâ[úï?)
r%   r   r$   r#   r"   r!   r    r   rE   r   r   iî  g&]àŽ2µï?)r$   r#   r"   r!   r    r   r   r   )r   r   r!   r"   r    r#   r   r$   r  c                 C   sD   t j d¡ tj|||d�}t||jƒ t||jƒ t||j	ƒ d S ra  rc  re  r_   r_   r`   Útest_accuracy2Õ   s
    z TestPageTrendTest.test_accuracy2c                 C   sà   t j d¡ d\}}t  d|d ¡}t j t  |¡¡}t j ||¡}tj|dd�}t |¡}tj|dd�}tj|dd�}	tj||d�}
tj|d d …|f || d�}t	|j
|j
ƒ t	|j
|	j
ƒ t	|j
|
j
ƒ t	|j
|j
ƒ d S )	Nrð  )rE   r  r   r=   T©rb  F)Úpredicted_ranks)rU   r  rR  r   r÷   r\  rP   Zrankdatard  r   r°   )rY   ro  rq  rj  Úpermrß  ZranksrŽ  r�  r§  Zres4Zres5r_   r_   r`   Útest_optionsÞ   s"    
ÿzTestPageTrendTest.test_optionsc                 C   s¬   t j d¡ g d¢g d¢g d¢g d¢g d¢g d¢g}t  |¡j}t  dd	¡}tj|d
|dd�}t|j	dƒ t
|jddd� tj|d
|dd�}t|j	dƒ t
|jddd� d S )Nrð  )rÈ  r`  éo   )rb  rj  ék   )ég   é…   éy   )r[  rC  r—  )r;  é¡   éÉ   )é’   r¸  ét   r   r#   Fr  )rb  rj  rõ   i  gyé&1¬l?r    r?   r  gHPüs×b?)rU   r  rR  r   rU  r   rP   rd  r   r°   r   r¯   )rY   rß  rj  r~   r_   r_   r`   Útest_Ames_assayð   s$    ÿþþz!TestPageTrendTest.test_Ames_assayc                 C   s  t tdd�� t d ¡ W d   ƒ n1 s,0    Y  t tdd�� t g ¡ W d   ƒ n1 sb0    Y  t tdd�� t ddg¡ W d   ƒ n1 sœ0    Y  t tdd��  t dggg¡ W d   ƒ n1 sØ0    Y  t tdd��$ t tj dd¡¡ W d   ƒ n1 �s0    Y  t tdd��$ t tj dd¡¡ W d   ƒ n1 �s\0    Y  d}t t|d��. tjg d¢g d¢gg d	¢d
� W d   ƒ n1 �s¬0    Y  t t|d��. tjg d¢g d¢gg d¢d
� W d   ƒ n1 �sø0    Y  t t|d��. tjg d¢g d¢gg d¢d
� W d   ƒ n1 �sD0    Y  t t|d��* tjg d¢g d¢gdd
� W d   ƒ n1 �sŒ0    Y  t tdd��( t g d¢g d¢gd¡ W d   ƒ n1 �sÒ0    Y  t tdd��( t g d¢g d¢gd¡ W d   ƒ n1 �s0    Y  t tdd��. tjg d¢ddtjggdd� W d   ƒ n1 �sd0    Y  t tdd��* tjg d¢g d¢gdd� W d   ƒ n1 �s¬0    Y  t tdd��* tjg d¢g d¢gdd� W d   ƒ n1 �sô0    Y  d S )Nz`data` must be a 2d array.ru   r   r   zPage's L is only appropriater   z+`predicted_ranks` must include each integerré   r(  )rß  rj  )rn  r   r   )r   r   r   r   r�  z`data` is not properly ranked)r   r   r   Trá  z`data` contains NaNsFri  z`method` must be inZekki)rß  rõ   z`ranked` must be boolean.)rß  rb  )	ry   rz   rP   rd  rU   r  r\  rV   rí  rÆ  r_   r_   r`   rt  !  sZ    ((,.44ÿ&ÿ&ÿ&ÿ&88ÿ&ÿ&ÿz'TestPageTrendTest.test_input_validationN)r‡   rˆ   r‰   rU   r  rR  r\  Z	data_3_25Z
data_10_26ÚtsrÈ   r  r  rg  Zts2rF  rh  rl  rv  rt  r_   r_   r_   r`   rH  y   s´   üÿþÿýÿ$$$ýÿÿýÿ$$$ýÿÿÿ$ÿÿÙ,
ÿÿþÿùÿørH  iv¡È5z	fun, argsc                 C   sz   | |ddiŽ}| |ddiŽ}t ||ƒ | j› d�}tjtt |¡d��  | |dddœŽ W d   ƒ n1 sl0    Y  d S )Nrõ   r  rÎ  z#() got multiple values for argumentru   )rõ   rÎ  )r   r‡   rÈ   r   rí  ÚreÚescape)rð  rù  r~   r�  Úerrr_   r_   r`   Útest_rename_mode_method<!  s    
r{  c                   @   sr   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zej 	d	g d
¢¡ej 	dddg¡dd„ ƒƒZ
ej 	dddg¡dd„ ƒZdS )ÚTestExpectilec                 C   s6   t j d¡}|jdd�}ttj|dd�t  |¡ƒ d S )Nrð  r  rû   r'   ©ró  )rU   r  r  r
   rP   Ú	expectilerT   ©rY   r  r|   r_   r_   r`   Útest_same_as_meanN!  s    zTestExpectile.test_same_as_meanc                 C   s6   t j d¡}|jdd�}ttj|dd�t  |¡ƒ d S )Nrð  r  rû   r   r}  )rU   r  r  r
   rP   r~  Zaminr  r_   r_   r`   Útest_minimumS!  s    zTestExpectile.test_minimumc                 C   s6   t j d¡}|jdd�}ttj|dd�t  |¡ƒ d S )Nrð  r  rû   r   r}  )rU   r  r  r
   rP   r~  Zamaxr  r_   r_   r`   Útest_maximumX!  s    zTestExpectile.test_maximumc           	         sj   t j d¡}dd„ ‰ ‡ fdd„}d}| |¡}| ¡ }| |¡}tj|||d�}||||ƒ}t||ƒ d S )Nl   bÊ@©lN c                 S   s8   t j||d�}d| ||| k< t  || ||  d  ¡S )NrW  r   r   )rU   rY  rZ  )r5  r»   ró  r   r7  r_   r_   r`   rð  d!  s    z'TestExpectile.test_weights.<locals>.func                    s,   t  | ¡t  | ¡f}tjˆ || ||fd�jS )N)Úbracketrù  )rU   r9  r:  r   Zminimize_scalarr|   )r»   ró  r   rƒ  ©rð  r_   r`   Ú
expectile2i!  s    ÿz.TestExpectile.test_weights.<locals>.expectile2rE   rí  )rU   r  r  rP   r~  r
   )	rY   r  r…  rq  r»   ró  r   r~   r  r_   r„  r`   Útest_weights]!  s    

zTestExpectile.test_weightsró  )rL  g¢¹ÿÿÿÿß?r'   g/#    à?r‡  rq  r  r¿  c              	   C   sæ  t j d¡}|j|d�}dD ]"}ttjt j||d�|d�|ƒ q| ¡ }ttj|| |d�tj||d�| ƒ ttj|| |d�tj||d�| ƒ ttj|| |d�|tj||d� ƒ |j	|dd�}|dkrÚd	d
„ }n|dkrìdd
„ }ndd
„ }|tjt j
||  |d�tj||d�tj||d� ƒ |j|dd�}tj||d�tj||d�k�sZJ ‚|j	|dd�}dD ]N}|tjd| | ||  |d�d| tj||d� |tj||d�  ƒ �qlttj| |d�tj|d| d� ƒ dS )u²  
        See Section 6 of
        I. Steinwart, C. Pasin, R.C. Williamson & S. Zhang (2014).
        "Elicitation and Identification of Properties". COLT.
        http://proceedings.mlr.press/v35/steinwart14.html

        and

        Propositions 5, 6, 7 of
        F. Bellini, B. Klar, and A. MÃ¼ller and E. Rosazza Gianin (2013).
        "Generalized Quantiles as Risk Measures"
        http://doi.org/10.2139/ssrn.2225751
        rð  rû   )r¥  r   r'   )rT  rX  r}  rE   r   r'   c                 S   s   t | |ƒ d S rd  )r
   ©r»   rÂ   r_   r_   r`   Ú	assert_op°!  s    z:TestExpectile.test_expectile_properties.<locals>.assert_opc                 S   s   | |k sJ ‚d S rd  r_   r‡  r_   r_   r`   rˆ  ´!  s    c                 S   s   | |ksJ ‚d S rd  r_   r‡  r_   r_   r`   rˆ  ¸!  s    r!   )r<  r'   r‡  r   N)rU   r  r  r  r
   rP   r~  rf   ZexponentialZlogisticr(  )rY   ró  rq  r  r|   rß  rZ   rˆ  r_   r_   r`   Útest_expectile_propertiesw!  s^    þþþþ

ÿþ
ÿÿþþz'TestExpectile.test_expectile_propertiesc                 C   sˆ   t j d¡}|jd|d�}g }t  dt  d¡d¡}t jd|d|d d	d	…  df D ]}| tj	||d
�¡ qRt  
t  |¡dk¡s„J ‚d S )Nrð  r   )r»   r…   rd  r'   rù   r   r   rK   r}  )rU   r  r  ZparetoZlogspaceÚlog10r(  rA  rP   r~  rL  r²  )rY   rq  r  r|   Ze_listZ	alpha_seqró  r_   r_   r`   Útest_monotonicity_in_alphaÜ!  s    $z(TestExpectile.test_monotonicity_in_alphaN)r‡   rˆ   r‰   r€  r�  r‚  r†  rÈ   r  r  r‰  r‹  r_   r_   r_   r`   r|  M!  s   ÿar|  )r   )NNrë   N)NNrë   N)NNrë   N)Çr  rm  rx  rŒ  Úcollectionsr   Ú	itertoolsr   Zhypothesis.extra.numpyÚextraÚnumpyrË  rÐ  rÍ  Znumpy.testingr   r   r   r   r   r	   r
   r   r   r   rÈ   r   ry   Znumpy.ma.testutilsré  Z	testutilsrF  r   r   r   r   r   rU   Zscipy.statsrP   Zscipy.stats.mstatsrT  Zscipy.stats._mstats_basicZ_mstats_basicrò  Zscipy.stats._ksstatsr   Zscipy.special._testutilsr   Zscipy.specialr   Zscipyr   Zcommon_testsr   Zscipy.spatial.distancer   Zscipy.stats._axis_nan_policyr   r§  r   Zscipy._lib._utilr   r–  rQ   rJ  r“   r•   r—   r™   r›   r0   r‹   r  rG  rª  rï  rô  rù  rú  rÿ  r   r,  r.  r1  r9  r:  rA  rš  r¡  r£  r¤  r  rú  rÌ  rü  r  rC  rf  rg  r’  rÑ  Z	compositerÒ  rÓ  rø  ZPowerDivCaser8  r/  rU  r:  r  r@  r  rì  r¦  rC  rH  rJ  rU  rV  rh  r€  rÆ  rÊ  rÎ  rû  rÒ  r×  rØ  rÙ  r»  rÙ  rÝ  râ  rã  r  r  r+  r8  r;  r<  r=  r>  r@  rA  rE  rF  rG  rK  rL  rM  rn  ro  ru  r  r€  r�  r—  rž  r£  r¥  r§  r¨  rÔ  râ  ró  r  r!  r*  r+  r5  rF  rY  rŽ  r�  r´  r¼  rÛ  rç  rë  r  r  r  r.  rH  r  r  r  r|   rZ   Zwilcoxonr_  rä  r`  r�  rZ  r{  r|  r_   r_   r_   r`   Ú<module>   sì  0ÿÿ %  D '    L [
 WZ

)  "u
 ] t? i  
ssÿü,,üüÿëþû	ûï -
K-7%_  &rÿÿ

ÿÿ

} xI Emÿÿ
Jcq8~+ ÿ
 ÿ
 ÿ
codQ^W/ k @UL& 0^C /<   ?



ýÿ