U
    »mœd#º ã                ž  @   sö  d dl Z d dlZd dlZd dlmZ d dlmZmZm	Z	m
Z
mZmZmZmZ d dlZd dlmZ d dlZd dlmZ d dlmZ d dlmZ dd	lmZ d
dlmZmZ d dlmZ d dlm Z  e!e ƒZ z&d dl"Z"de"j#d< d dl$m%Z& dZ'W n e(k
�r   dZ'Y nX ddddddddddg
Z)ddddddddddg
Z*ddddddddddg
Z+d dddddddddg
Z,ddd!d"dd#ddd$dg
Z-d%d&d%dddddd'dg
Z.d"d(dd)ddd*d+ddg
Z/ddddddddddg
Z0dddddd(d(dddg
Z1ddd#dddddd(dg
Z2d,d-„ Z3G d.d/„ d/ƒZ4G d0d1„ d1ƒZ5G d2d3„ d3ƒZ6G d4d5„ d5ƒZ7G d6d7„ d7ƒZ8G d8d9„ d9ƒZ9G d:d;„ d;ƒZ:G d<d=„ d=ƒZ;G d>d?„ d?ƒZ<G d@dA„ dAƒZ=G dBdC„ dCƒZ>dDdE„ Z?G dFdG„ dGƒZ@G dHdI„ dIƒZAG dJdK„ dKƒZBG dLdM„ dMƒZCG dNdO„ dOƒZDG dPdQ„ dQƒZEG dRdS„ dSƒZFG dTdU„ dUƒZGdVdWdXdYdZd[d\d]d^d_d`dadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzd{d|d}d~dd€d�d‚dƒd„d…d†d‡dˆd‰dŠd‹dŒd�dŽd�d�d‘d’d“d”d•d–d—d˜d™dšd›dœd�dždŸd d¡d¢d£d¤d¥d¦d§d¨d©dªd«d¬d­d®d¯d°d±d²d³d´dµd¶d·d¸d¹dºd»d¼d½d¾d¿dÀdÁdÂdÃdÄdÅdÆdÇdÈdÉdÊdËdÌdÍdÎdÏdÐdÑdÒdÓdÔdÕdÖd×dØdÙdÚdÛdÜdÝdÞdßdàdádâdãdädådædçdèdédêdëdìdídîdïdðdñdòdódôdõdöd÷dødùdúdûdüdýdþdÿ�d �d�d�d�d�d�d�d�d�d	�d
�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d�d �d!�d"�d#�d$�d%�d&�d'�d(�d)�d*�d+�d,�d-�d.�d/�d0�d1�d2�d3�d4�d5�d6�d7�d8�d9�d:�d;�d<�d=�d>�d?�d@�dA�dB�dC�dD�dE�dF�dG�dH�dI�dJ�dK�dL�dM�dN�dO�dP�dQ�dR�dS�dT�dU�dV�dW�dX�dY�dZ�d[�d\�d]�d^�d_�d`�da�db�dc�dd�de�df�dg�dh�di�dj�dk�dl�dm�dn�do�dp�dq�dr�ds�dt�du�dv�dw�dx�dy�dz�d{�d|�d}�d~�d�d€�d��d‚�dƒ�d„�d…�d†�d‡�dˆ�d‰�dŠ�d‹�dŒ�d��dŽ�d��d��d‘�d’�d“�d”�d•�d–�d—�d˜�d™�dš�d›�dœ�d��dž�dŸ�d �d¡�d¢�d£�d¤�d¥�d¦�d§�d¨�d©�dª�d«�d¬�d­�d®�d¯�d°�d±�d²�d³�d´�dµ�d¶�d·�d¸�d¹�dº�d»�d¼�d½�d¾�d¿�dÀ�dÁ�dÂ�dÃ�dÄ�dÅ�dÆ�dÇ�dÈ�dÉ�dÊ�dË�dÌ�dÍ�dÎ�dÏ�dÐ�dÑ�dÒ�dÓ�dÔ�dÕ�dÖ�d×�dØ�dÙ�dÚ�dÛ�dÜ�dÝ�dÞ�dß�dà�dá�dâ�dã�dä�då�dæ�dç�dè�dé�dê�dë�dì�dí�dî�dï�dð�dñ�dò�dó�gžZHG �dô�dõ„ �dõƒZIG �dö�d÷„ �d÷ƒZJG �dø�dù„ �dùƒZKG �dú�dû„ �dûƒZLG �dü�dý„ �dýƒZMG �dþ�dÿ„ �dÿƒZNG �d �d„ �dƒZOG �d�d„ �dƒZPG �d�d„ �dƒZQdS (  é    N)ÚRandomState)Úassert_array_equalÚassert_almost_equalÚassert_array_lessÚassert_array_almost_equalÚassert_Úassert_allcloseÚassert_equalÚsuppress_warnings)Úraises)Úoptimize)Ústats)Ú
_abw_stateé   )Úcheck_named_resultsé   )Ú_get_wilcoxon_distrÚ_get_wilcoxon_distr2)Ú_binary_search_for_binom_tst)ÚdistcontZAggÚbackendTFgj¼t“ð?ç¬Zd;ßï?gV-²�ïï?ç      ð?gX9´Èv¾ï?g-²�ï§Æï?gÕxé&1ð?ç+‡ÙÎ÷ï?g+‡ÙÎï?g�•C‹lçï?gV-²�ï?gƒÀÊ¡E¶ï?g/Ý$�•ï?g×£p=
×ï?g®Gázð?g�•C‹lï?ç®Gáz®ï?g°rh‘í|ï?g\�Âõ(\ï?g¾Ÿ/Ý$ð?gh‘í|?5ð?g1¬Zdï?gªñÒMbð?gj¼t“ð?g}?5^ºIð?g)\�Âõ(ð?c                  O   s   t  tjj| |Ž¡S ©N)ÚnpÚlogr   ÚgammaÚrvs)ÚargsÚkwargs© r"   úY/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/scipy/stats/tests/test_morestats.pyÚ_old_loggamma_rvs5   s    r$   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestBayes_mvsc                 C   s~   dddddddg}t  |¡\}}}t|jdƒ t|jdd	d
� t|jdƒ t|jddd
� t|jddd� t|jdd	d
� d S )Né   é	   é   é   é   é   ç      "@©g4`±H#j@gæO§[îÊ%@ç›+¡†›„=©Úrtolç      $@©g¹‡aîi	@gÕÃ×Ó‡u8@ç•Ö&è.>ç_ç´«Ç@é   ©Údecimal©gYÞðƒs„ü?g–¡ì1OÈ@)r   Ú	bayes_mvsr   Ú	statisticr   Úminmax©ÚselfÚdataÚmeanÚvarÚstdr"   r"   r#   Ú
test_basic:   s    ÿÿÿzTestBayes_mvs.test_basicc                 C   s   t ttjg ƒ d S r   )Úassert_raisesÚ
ValueErrorr   r9   ©r=   r"   r"   r#   Útest_empty_inputL   s    zTestBayes_mvs.test_empty_inputc                 C   s0   t  d¡}d}t |¡}|D ]}t||ƒ qd S )Né   )r:   r;   )r   Úaranger   r9   r   )r=   ÚxÚ
attributesÚresÚir"   r"   r#   Útest_result_attributesO   s
    

z$TestBayes_mvs.test_result_attributesN)Ú__name__Ú
__module__Ú__qualname__rB   rF   rM   r"   r"   r"   r#   r%   9   s   r%   c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestMvsdistc                 C   s�   dddddddg}t  |¡\}}}t| ¡ dƒ t| d¡d	d
d� t| ¡ dƒ t| d¡ddd� t| ¡ ddd� t| d¡dd
d� d S )Nr&   r'   r(   r)   r*   r+   r,   gÍÌÌÌÌÌì?r-   r.   r/   r1   r2   r3   r4   r5   r6   r8   )r   Úmvsdistr   r?   r   Úintervalr<   r"   r"   r#   rB   Y   s    ÿÿÿzTestMvsdist.test_basicc                 C   s   t ttjg ƒ d S r   ©rC   rD   r   rR   rE   r"   r"   r#   rF   h   s    zTestMvsdist.test_empty_inputc                 C   s   dg}t ttj|ƒ d S ©Nr   rT   ©r=   r>   r"   r"   r#   Útest_bad_argk   s    zTestMvsdist.test_bad_argc              	   C   s\   t  ¡ �J t  dt¡ dd„ t dddg¡D ƒ dd„ t ddddd	g¡D ƒ W 5 Q R X d S )
NÚerrorc                 S   s   g | ]}|  ¡ ‘qS r"   ©r?   ©Ú.0rI   r"   r"   r#   Ú
<listcomp>u   s     z*TestMvsdist.test_warns.<locals>.<listcomp>r   r   é   c                 S   s   g | ]}|  ¡ ‘qS r"   rY   rZ   r"   r"   r#   r\   v   s     é   é   )ÚwarningsÚcatch_warningsÚsimplefilterÚRuntimeWarningr   rR   rE   r"   r"   r#   Ú
test_warnsp   s    
zTestMvsdist.test_warnsN)rN   rO   rP   rB   rF   rW   rd   r"   r"   r"   r#   rQ   X   s   rQ   c                   @   sD   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dS )ÚTestShapiroc           
      C   sþ  ddddddddd	d
ddddddddddg}t  |¡\}}t  |¡}t|ddd� t|jddd� t|ddd� t|jddd� dddddddd d!d"d#d$dd%d&d'd(d)d*d+g}t  |¡\}}t  |¡}t|d,dd� t|jd,dd� t|d-d.d� t|jd-d.d� t jjd/d.d0d1d2�}t  |¡\}}t  |¡}t|d3dd� t|jd3dd� t|d4d.d� t|jd4d.d� d5d6d7d8d9d:d;d<d=d>d?d@dAdBd'dCdDdEdFdGdHdIdJdKdLg}dM}dN}	t  |¡\}}t  |¡}t||dOd� t|j|dOd� t||	d/d� t|j|	d/d� d S )PNç)\�Âõ(¼?ç{®Gáz@çq=
×£p@çHáz®G$@çÍÌÌÌÌÌ@ç…ëQ¸	@çq=
×£pÝ?ç¸…ëQ¸@çáz®GáÊ?ç      @ç¸…ëQ¸æ?çR¸…ëQø?çìQ¸…ë	@çÃõ(\�Âí?çáz®GáÚ?çáz®Gá@ç�Âõ(\#@ç333333@ç®GázÞ?ç¤p=
×£@ç   À¬Ðì?r&   r6   ç   €ÉŒ¥?çÃõ(\�Âõ?ç=
×£p=ò?ç\�Âõ(\@çffffff@ç\�Âõ(\÷?çö(\�Âõð?ç®Gáz@çÃõ(\�Âñ¿ç×£p=
×@çš™™™™™ñ?ç)\�Âõ(ì?çR¸…ëQà¿ç¤p=
×£à?çÍÌÌÌÌÌ@ç
×£p=
û?ç{®Gáz´?ç\�Âõ(\@ç{®Gáz@çìQ¸…ë@çIddY°î?çDioð…Éà?r]   r_   éd   iNa¼ ©ÚlocÚscaleÚsizeÚrandom_stateg   àáEï?g   àOÙ´?g˜nƒÀÊÁ?gj¼t“Ä?gffffffÆ?gü©ñÒMbÐ?gj¼t“Ö?g;ßO�—nÚ?gj¼t“à?gX9´Èvâ?gÙÎ÷Sã¥ã?gö(\�Âõä?gºI+‡î?gƒÀÊ¡Eö?g¶óýÔxéø?g‘í|?5^ú?g�•C‹lçÿ?g1¬Zd@gÙÎ÷Sã¥@gö(\�Âõ	@g®Gáz@gÅ °rh‘@gÑ"Ûù~j@gìQ¸…ë@g¼t“V@gÁÊ¡E¶³ @ghyÜ�µê?gÅä0óM?r^   )r   Úshapiror   r:   ÚpvalueÚnormr   )
r=   Úx1ÚwÚpwÚshapiro_testÚx2Zx3Zx4Z
W_expectedZ
p_expectedr"   r"   r#   rB   z   s”               þ
          þ

              þ
zTestShapiro.test_basicc                 C   s  ddddddddd	d
g
ddddddddddg
g}t  |¡\}}t  |¡}t|ddd� t|jddd� t|ddd� t|jddd� dddddddd d!d"g
d#d$dd%d&d'd(d)d*d+g
g}t  |¡\}}t  |¡}t|d,dd� t|jd,dd� t|d-d.d� t|jd-d.d� d S )/Nrf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r&   r6   r{   r|   r}   r~   r   r€   r�   r‚   rƒ   r„   r…   r†   r‡   rˆ   r‰   rŠ   r‹   rŒ   r�   rŽ   r�   r�   r]   )r   r—   r   r:   r˜   )r=   rš   r›   rœ   r�   rž   r"   r"   r#   Útest_2d¥   sL      ÿ      ÿÿ
 ÿ   ÿÿ
zTestShapiro.test_2dc                 C   s&   t ttjg ƒ t ttjg g g gƒ d S r   ©rC   rD   r   r—   rE   r"   r"   r#   rF   º   s    zTestShapiro.test_empty_inputc                 C   s4   t ttjddgƒ t ttjtjg dggtd�ƒ d S )Nr   r   ©Údtype)rC   rD   r   r—   r   ÚarrayÚobjectrE   r"   r"   r#   Útest_not_enough_values¾   s    z"TestShapiro.test_not_enough_valuesc                 C   s   dg}t ttj|ƒ d S rU   r    ©r=   rI   r"   r"   r#   rW   Â   s    zTestShapiro.test_bad_argc                 C   s`   t  d¡}t j|d< t |¡\}}t |¡}t|t jƒ t|jt jƒ t|dƒ t|jdƒ d S )Nr1   r'   r   )	r   rH   Únanr   r—   r	   r:   r   r˜   )r=   rI   r›   rœ   r�   r"   r"   r#   Útest_nan_inputÇ   s    



zTestShapiro.test_nan_inputc                 C   s4   t  dddg¡\}}t  |¡}d}t||dd� d S )Ni„Þ i = i@¯ )gPƒãq~«ë?g»FªôÑ?çñhãˆµøä>r/   )r   Úboxcoxr—   r   )r=   Z	trans_valÚmaxlogrK   Úrefr"   r"   r#   Útest_gh14462Ò   s    
zTestShapiro.test_gh14462N)
rN   rO   rP   rB   rŸ   rF   r¥   rW   r¨   r­   r"   r"   r"   r#   re   y   s   +re   c                
   @   sh   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dddddg¡dd„ ƒZdS )ÚTestAndersonc                 C   s”   t dƒ}|jdd�}|jdd�}t |¡\}}}t|d d… |ƒ t |¡\}}}t||dd … ƒ t d¡}d|d< t |¡\}}}t|dƒ d S )	NéÒ–Ié2   ©r•   éÿÿÿÿéþÿÿÿé
   r   gˆ¡ÕÉª	@)	r   Ústandard_exponentialÚstandard_normalr   Úandersonr   r   Úonesr   )r=   Úrsrš   rž   ÚAÚcritÚsigÚvr"   r"   r#   Útest_normalå   s    

zTestAnderson.test_normalc              	   C   s‚   t dƒ}|jdd�}|jdd�}t |d¡\}}}t||dd … ƒ tjdd�� t |d¡\}}}W 5 Q R X t||d kƒ d S )	Nr¯   r°   r±   Úexponr³   Úignore)Úallr²   )	r   rµ   r¶   r   r·   r   r   Úerrstater   )r=   r¹   rš   rž   rº   r»   r¼   r"   r"   r#   Ú
test_exponü   s    zTestAnderson.test_exponc              	   C   s¤   t  d¡}d|d< t |d¡\}}}t|ƒ}tj |¡\}}tj |||¡}tj |||¡}	t  	d|d ¡}
| t  
d|
 d ||	d d d…   ¡ }t||ƒ d S )Nr‘   ç        r   Úgumbelr   r   r²   )r   r¸   r   r·   ÚlenÚgumbel_lÚfitÚlogcdfÚlogsfrH   r?   r   )r=   r½   Za2r»   r¼   ÚnZxbarÚsrÉ   rÊ   rL   Zexpected_a2r"   r"   r#   Útest_gumbel  s    
*zTestAnderson.test_gumbelc                 C   s   t ttjdgdd� d S ©Nr   Úplate_of_shrimp©Údist)rC   rD   r   r·   rE   r"   r"   r#   rW     s    zTestAnderson.test_bad_argc                 C   s0   t dƒ}|jdd�}t |¡}d}t||ƒ d S )Nr¯   r°   r±   ©r:   Zcritical_valuesÚsignificance_level)r   rµ   r   r·   r   )r=   r¹   rI   rK   rJ   r"   r"   r#   rM     s
    
z#TestAnderson.test_result_attributesc           	      C   sF   t dƒ}|jdd�}t |d¡\}}}t |d¡\}}}t||ƒ d S )Nr¯   r‘   r±   rÅ   rÇ   )r   rÅ   r   r·   r   )	r=   r¹   rI   ÚA1Úcrit1Úsig1ÚA2Úcrit2Úsig2r"   r"   r#   Útest_gumbel_l   s
    zTestAnderson.test_gumbel_lc           
      C   sp   t dƒ}|jdd�}t d¡}d|d< t |d¡\}}}t |d¡\}}}	t||dd … ƒ t||d kƒ d S )	Nr¯   r‘   r±   r   r   Úgumbel_rr³   r²   )r   rÅ   r   r¸   r   r·   r   r   )
r=   r¹   rš   rž   rÔ   rÕ   rÖ   r×   rØ   rÙ   r"   r"   r#   Útest_gumbel_r*  s    
zTestAnderson.test_gumbel_rÚdistnamer™   r¿   rÇ   Úextreme1rÅ   rÛ   Zlogisticc                 C   s\   t j d¡}|dkrdn|}tt|ƒ}t| }|j|d|dœŽ}t ||¡}|jj	sXt
‚d S )Nl   'DaÞh¶$>   rÅ   rÞ   rÇ   éè  ©r•   r–   )r   ÚrandomÚdefault_rngÚgetattrr   r   r   r·   Z
fit_resultÚsuccessÚAssertionError)r=   rÝ   ÚrngZreal_distnamerÑ   ÚparamsrI   rK   r"   r"   r#   Útest_anderson_fit_params9  s    ÿ
z%TestAnderson.test_anderson_fit_paramsN)rN   rO   rP   r¾   rÃ   rÍ   rW   rM   rÚ   rÜ   ÚpytestÚmarkÚparametrizerè   r"   r"   r"   r#   r®   ä   s   

  ÿÿr®   c                   @   sT   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ ZdS )ÚTestAndersonKSampc              
   C   sº   ddddddddg}t  d	d
ddddddg¡}t  ddddddddg¡}t  ddddddddg¡}tj||||fdd�\}}}t|d d!ƒ td"d#d$d%d&g|d'd(… d)ƒ t|d*d+d,� d S )-Nçš™™™™YC@ç     ÀD@çfffffæE@ç     @F@ç     ÀF@ç      G@çš™™™™ÙG@ç      M@çš™™™™™C@çfffff¦C@çš™™™™ÙC@ç33333³D@çfffffæD@ç33333sE@çfffff¦E@çfffffæF@ç      A@ç     €A@ç     €C@ç      D@ç     €E@ç      F@ç     €F@çffffffA@ç33333³A@çš™™™™™B@çfffffæB@çš™™™™™D@çffffffE@F©Zmidrankg²�ï§ÆË@r]   ç�•C‹lçß?çvqà-õ?ç,Ôšæ§þ?ç‹lçû©ñ@çò°Pkš÷	@r   r_   r^   gŒJê4a?çü©ñÒMb0?©Úatol©r   r£   r   Úanderson_ksampr   r   r   ©r=   Út1Út2Út3Út4ÚTkÚtmÚpr"   r"   r#   Útest_example1aI  s    
 ÿz TestAndersonKSamp.test_example1ac              
   C   sÀ   t  ddddddddg¡}t  d	d
ddddddg¡}t  ddddddddg¡}t  ddddddddg¡}tj||||fdd�\}}}t|d d!ƒ td"d#d$d%d&g|d'd(… d)ƒ t|d*d+d,� d S )-Nrí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   rý   rþ   rÿ   r   r  r  r  r  r  r  r  r  r	  Tr
  gìQ¸…ë@r]   r  r  r  r  r  r   r_   r^   gü©ñÒMb`?r  r  r  r  r"   r"   r#   Útest_example1bZ  s    
 ÿz TestAndersonKSamp.test_example1bc                 C   s>  ddddddg}ddd	d
dddddddddg}ddddddddddg
}ddddd d!dd"d#d$d%d&d'd(ddd)d*d+d,d-d'd.dg}d/d0d1d2d0g}d3dd4dd5d6d1d7dd8d(d9g}d:d;d#d<d=d>d?d@dAdBdg}d.dCdDddEddd?dFdGd@d7dHd$dId6dEdJdKddGdJddJdLddMdLdNdOg}dPdQdJdRdSddTdUdVdWdMdLdXdYdZd[dd\d]d^d_d`ddaddbd"g}	dcd'dddedd_dKddfdgd%dhd]dIdIdddidjdPdkd.dldg}
dmdd6dndodKd<dpdqg	}dcdrdIdsdtd6g}duddddvdIdwdxdydzdKd/g}ddd{ddd[d|dd(d}d~d9ddzdd dg}t j|||||||||	|
||||fd€d��\}}}t|d‚dKƒ tdƒd„d…d†d‡g|dˆdI… dRƒ t|d‰dŠd‹� d S )ŒNéÂ   rG   é)   é   é!   éµ   é�  r5   é:   é%   r‘   éA   r'   é©   é¿  é¸   é$   éÉ   év   é"   é   é   éC   é9   é>   r)   é   éZ   r´   é<   éº   é=   é1   é   é8   é   éO   éT   é,   é;   é   éœ   é6  éL   é   é   é‚   éÐ   éF   ée   éJ   é0   éö  r(   é   é‚  é   é7   é@  éh   éÜ   éï   é/   éö   é°   é¶   é  éW   éx   éá   éG   é*   r_   é   r]   é   r   é4   é_   éa   é3   r^   é�   éŽ   éD   éM   éP   éj   éÎ   éR   é6   éØ   é.   éo   é'   é?   é¿   é£   r°   éf   éH   éÅ   é¼   éX   é‹   éÒ   é   r+   ég  é  é[  r   é¶  éþ   é  é#   éç  éb   éU   é[   é+   éæ   éÑ   é    é†   é˜   éB   Fr
  gçû©ñÒM
@ç^ºI+ã?ç—ÿ�~û:õ?çÃÓ+eâü?çéH.ÿ!ý@çcîZB>h@r   ç	ž^)Ëp?r  r  ©r   r  r   r   r   ©r=   r  r  r  r  Zt5Zt6Zt7Zt8Zt9Zt10Zt11Zt12Zt13Zt14r  r  r  r"   r"   r#   Útest_example2aj  s¢            ÿ              ÿ           ÿ        ÿ ÿ     ÿþ
 ÿz TestAndersonKSamp.test_example2ac                 C   s>  ddddddg}ddd	d
dddddddddg}ddddddddddg
}ddddd d!dd"d#d$d%d&d'd(ddd)d*d+d,d-d'd.dg}d/d0d1d2d0g}d3dd4dd5d6d1d7dd8d(d9g}d:d;d#d<d=d>d?d@dAdBdg}d.dCdDddEddd?dFdGd@d7dHd$dId6dEdJdKddGdJddJdLddMdLdNdOg}dPdQdJdRdSddTdUdVdWdMdLdXdYdZd[dd\d]d^d_d`ddaddbd"g}	dcd'dddedd_dKddfdgd%dhd]dIdIdddidjdPdkd.dldg}
dmdd6dndodKd<dpdqg	}dcdrdIdsdtd6g}duddddvdIdwdxdydzdKd/g}ddd{ddd[d|dd(d}d~d9ddzdd dg}t j|||||||||	|
||||fd€d��\}}}t|d‚dKƒ tdƒd„d…d†d‡g|dˆdI… dRƒ t|d‰dŠd‹� d S )ŒNr  rG   r   r!  r"  r#  r$  r5   r%  r&  r‘   r'  r'   r(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r3  r)   r4  r5  r´   r6  r7  r8  r9  r:  r;  r<  r=  r>  r?  r@  rA  rB  rC  rD  rE  rF  rG  rH  rI  rJ  rK  rL  rM  r(   rN  rO  rP  rQ  rR  rS  rT  rU  rV  rW  rX  rY  rZ  r[  r\  r]  r^  r_  r_   r`  r]   ra  r   rb  rc  rd  re  r^   rf  rg  rh  ri  rj  rk  rl  rm  rn  ro  rp  rq  rr  rs  rt  ru  r°   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�  Tr
  g'1¬Z
@r�  r‘  r’  r“  r”  r   r•  r  r  r–  r—  r"   r"   r#   Útest_example2bŠ  s¢            ÿ              ÿ           ÿ        ÿ ÿ     ÿþ
 ÿz TestAndersonKSamp.test_example2bc              	   C   s.  t  ddd¡}tƒ �0}|jtdd� tj||d gdd�\}}}W 5 Q R X t|dd	ƒ t|d
ƒ tƒ �,}|jtdd� t ||d g¡\}}}W 5 Q R X t|dd	ƒ t|d
ƒ tƒ �0}|jtdd� tj||d gdd�\}}}W 5 Q R X t|ddƒ t|dƒ tƒ �,}|jtdd� t ||d g¡\}}}W 5 Q R X t|ddƒ t|dƒ tj||d gdd�\}}}t|ddƒ t	|dddd� t ||d g¡\}}}t|ddƒ t	|dddd� tj||d gdd�\}}}t|ddƒ t	|dddd� tj||d gdd�\}}}t|d dƒ t	|d!d"dd� d S )#Nr   r‘   zp-value floored©Úmessageg     @D@Fr
  g=
×£p�D@r]   çü©ñÒMbP?g®GázžD@zp-value cappedç      à?g?ÆÜµ„ô¿r^   ç      Ð?g?ÆÜµô¿ç      @gÿ!ýöuà÷?g×£p=
×³?g{®Gázt?r   ©r  r0   r&   gÄB­iÞqä?gùé·¯Ç?ç      '@g£’:M@g46<½Rv?gü©ñÒMb@?g      +@g6«>W[1@g¾¤1ZGUS?ç-Cëâ6?)
r   Úlinspacer
   ÚfilterÚUserWarningr   r  r   r	   r   )r=   rš   ÚsuprÌ   Ú_r  r"   r"   r#   Útest_R_kSamplesª  sB    !&
"
&
"
z!TestAndersonKSamp.test_R_kSamplesc                 C   s   t ttjt d¡ƒ d S ©Nr_   ©rC   rD   r   r  r   r¸   rE   r"   r"   r#   Útest_not_enough_samplesú  s    z)TestAndersonKSamp.test_not_enough_samplesc                 C   s"   t ttjt d¡t d¡fƒ d S r©  rª  rE   r"   r"   r#   Útest_no_distinct_observationsý  s    ÿz/TestAndersonKSamp.test_no_distinct_observationsc                 C   s   t ttjt d¡g fƒ d S r©  rª  rE   r"   r"   r#   Útest_empty_sample  s    z#TestAndersonKSamp.test_empty_samplec              
   C   s`   ddddddddg}t  d	d
ddddddg¡}tj||fdd�}d}t||ƒ t|j|jƒ d S )Nrí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r÷   rø   rù   rú   rû   rü   Fr
  rÒ   )r   r£   r   r  r   r	   rÓ   r˜   )r=   r  r  rK   rJ   r"   r"   r#   rM     s    
z(TestAndersonKSamp.test_result_attributesN)rN   rO   rP   r  r  r˜  r™  r¨  r«  r¬  r­  rM   r"   r"   r"   r#   rì   H  s     Prì   c                   @   sþ   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	e
j dddddgddddgddfddddgddddgddfdddgdddddgddfdddgdddddgddfdddddgdddgddfdddddgdddgddfg¡dd„ ƒZdd „ Zd!S )"Ú
TestAnsaric              	   C   sl   dddddg}ddddddddg}t ƒ �"}| td¡ t ||¡\}}W 5 Q R X t|ddƒ t|d	dƒ d S )
Nr   r   r]   r^   r&   ú%Ties preclude use of exact statistic.g     €7@r`  g8è#¾oGÁ?)r
   r¤  r¥  r   Úansarir   )r=   rI   Úyr¦  ÚWÚpvalr"   r"   r#   Ú
test_small  s    zTestAnsari.test_smallc              	   C   s^   t  d¡}t  d¡}tƒ �"}| td¡ t ||¡\}}W 5 Q R X t|ddƒ t|ddƒ d S )N)rq  ék   r‘   éc   rv  rk  ém   él   rS  r¶  rJ  é`   rd  rv  rµ  éq   ét   rº  én   r†  )rµ  r¸  rk  r†  éi   ég   r¼  r½  rS  r‘   r¹  r¸  r¾  rS  ér   r¿  rº  r¸  rk  r¶  r¯  g     0g@r`  g˜|¶´:Ç?)r   r£   r
   r¤  r¥  r   r°  r   )r=   ZramsayZparekhr¦  r²  r³  r"   r"   r#   Útest_approx  s    

zTestAnsari.test_approxc              	   C   s@   t  ddddgddddd	d
g¡\}}t|ddƒ t|ddƒ d S )Nr   r   r]   r^   rG   r_   r<  r*   r´   r(   r1   r`  gá?r)   )r   r°  r   )r=   r²  r³  r"   r"   r#   Ú
test_exact)  s    $zTestAnsari.test_exactc                 C   s(   t ttjg dgƒ t ttjdgg ƒ d S rU   ©rC   rD   r   r°  rE   r"   r"   r#   rW   .  s    zTestAnsari.test_bad_argc              	   C   s^   dddddg}ddddddddg}t ƒ �}| td¡ t ||¡}W 5 Q R X d}t||ƒ d S )Nr   r   r]   r^   r&   r¯  ©r:   r˜   )r
   r¤  r¥  r   r°  r   )r=   rI   r±  r¦  rK   rJ   r"   r"   r#   rM   2  s    z!TestAnsari.test_result_attributesc              	   C   sH   ddddg}ddddg}d	}t t|d
�� tj||dd� W 5 Q R X d S )Nr   r   r]   r^   r_   r&   r)   r*   z!'alternative' must be 'two-sided'©ÚmatchÚfoo©ÚalternativerÂ  )r=   rš   rž   rÅ  r"   r"   r#   Útest_bad_alternative;  s
    zTestAnsari.test_bad_alternativec           
      C   s  dddddddg}dd	d
dddg}t  ||¡\}}t j||dd�j}t j||dd�j}|dksbt‚|dk snt‚t |t|ƒt|ƒ¡}t|| d| dd� t||d dd� t|d| |d  dd� t j||dd�j}t j||dd�j}	|dk söt‚|	dk�st‚d S )Néûÿÿÿr   r_   r´   rG   r<  rA  rŸ  g      !@ç      #@g      %@r¡  g      )@ÚlessrÇ  Úgreaterçffffffî?çš™™™™™©?çê-�™—q=r  r   )r   r°  r˜   rå   r   ÚpmfrÆ   r   )
r=   rš   rž   r:   r³  Úpval_lÚpval_gZprobZpval_l_reverseZpval_g_reverser"   r"   r#   Útest_alternative_exactC  s    z!TestAnsari.test_alternative_exactzx, y, alternative, expectedr   r   r]   r^   r_   r&   r)   r*   rÌ  gÓ@ÔAä?rÍ  g£G’$I’ì?g”%I’$IÒ?c                 C   s$   t j|||d�j}t||dd� d S )NrÇ  rÐ  r  )r   r°  r˜   r   )r=   rI   r±  rÈ  Úexpectedr³  r"   r"   r#   Útest_alternative_exact_with_R^  s    z(TestAnsari.test_alternative_exact_with_Rc                 C   sî   t jjddddd�}t jjddddd�}t j||dd�j}t j||d	d�j}t|d
dd� t|ddd� t jjddddd�}t jjddddd�}t  ||¡j}t j||dd�j}t j||d	d�j}t||d dd� t|d|d  dd� d S )Nr   r_   r‘   é{   rà   r   rÌ  rÇ  rÍ  r   rÐ  r  rÄ   r6  g      ø?r   )r   r™   r   r°  r˜   r   )r=   rš   rž   rÒ  rÓ  r³  r"   r"   r#   Útest_alternative_approx}  s    z"TestAnsari.test_alternative_approxN)rN   rO   rP   r´  rÀ  rÁ  rW   rM   rÉ  rÔ  ré   rê   rë   rÖ  rØ  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 )ÚTestBartlettc              
   C   sB   t ttttttttt	g
}t
j|Ž \}}t|ddƒ t|ddƒ d S )NgzU@ /É4@r)   gG¨–í‹?)Úg1Úg2Úg3Úg4Úg5Úg6Úg7Úg8Úg9Úg10r   Úbartlettr   )r=   r    ÚTr³  r"   r"   r#   Ú	test_data•  s    zTestBartlett.test_datac                 C   s   t ttjdgƒ d S rU   )rC   rD   r   rä  rE   r"   r"   r#   rW   œ  s    zTestBartlett.test_bad_argc              
   C   s4   t ttttttttt	g
}t
j|Ž }d}t||ƒ d S ©NrÃ  )rÚ  rÛ  rÜ  rÝ  rÞ  rß  rà  rá  râ  rã  r   rä  r   ©r=   r    rK   rJ   r"   r"   r#   rM      s    
z#TestBartlett.test_result_attributesc                 C   s6   t ttttttttt	g f}t
tjtjftj|Ž ƒ d S r   )rÚ  rÛ  rÜ  rÝ  rÞ  rß  rà  rá  râ  rã  r	   r   r§   r   rä  )r=   r    r"   r"   r#   Útest_empty_arg¦  s    zTestBartlett.test_empty_argc                 C   s*   t  ddgddgg¡}tttjt|ƒ d S ©Nr   r   r]   r^   )r   r£   rC   rD   r   rä  rÚ  r¦   r"   r"   r#   Útest_1d_input«  s    zTestBartlett.test_1d_inputN)rN   rO   rP   ræ  rW   rM   ré  rë  r"   r"   r"   r#   rÙ  “  s
   rÙ  c                   @   sT   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ ZdS )Ú
TestLevenec              
   C   sB   t ttttttttt	g
}t
j|Ž \}}t|ddƒ t|ddƒ d S )Ngª´ÑYpKû?r)   gþI–{€]¹?)rÚ  rÛ  rÜ  rÝ  rÞ  rß  rà  rá  râ  rã  r   Úlevener   )r=   r    r²  r³  r"   r"   r#   ræ  ²  s    zTestLevene.test_datac                 C   sF   t jtttdd�\}}t jtttddd�\}}t||ƒ t||ƒ d S )Nr?   ©ÚcenterÚtrimmedrÄ   ©rï  Zproportiontocut)r   rí  rÚ  rÛ  rÜ  r   )r=   ÚW1Úpval1ÚW2Úpval2r"   r"   r#   Útest_trimmed1¹  s    ÿ

zTestLevene.test_trimmed1c           
      C   s²   ddddddddg}d	dd
dddddg}t j d¡ t j |¡}tj||ddd�\}}tj||ddd�\}}tj|dd… |dd… dd�\}}	t||ƒ t||ƒ t||	ƒ d S )Nç333333ó?ç       @ç      @ç      @ç      @ç      @ç      @ç      Y@rÄ   ç      @ç      @ç      @ç      i@éÒ  rð  ç      À?rñ  r   r²   r?   rî  )r   rá   ÚseedÚpermutationr   rí  r   )
r=   rI   r±  rž   ZW0Zpval0rò  ró  rô  rõ  r"   r"   r#   Útest_trimmed2Â  s    
ÿ

ÿ
$

zTestLevene.test_trimmed2c                 C   sn   t  ddd¡}t j d¡ t j |¡}|d }tj||dd�\}}tj||dd�\}}t||ƒ t||ƒ d S )	Nr²   r   rN  r  r]   r?   rî  Úmedian)r   r£  rá   r  r  r   rí  r   )r=   rI   rž   r±  rò  ró  rô  rõ  r"   r"   r#   Útest_equal_mean_medianÔ  s    
z!TestLevene.test_equal_mean_medianc                 C   s&   t  ddd¡}tttj||dd� d S ©Nr²   r   rN  çš™™™™™¹?)Zportiontocut)r   r£  rC   Ú	TypeErrorr   rí  r¦   r"   r"   r#   Útest_bad_keywordÞ  s    zTestLevene.test_bad_keywordc                 C   s&   t  ddd¡}tttj||dd� d S ©Nr²   r   rN  Ztrimrî  )r   r£  rC   rD   r   rí  r¦   r"   r"   r#   Útest_bad_center_valueâ  s    z TestLevene.test_bad_center_valuec                 C   s   t ttjdgƒ d S rU   )rC   rD   r   rí  rE   r"   r"   r#   Útest_too_few_argsæ  s    zTestLevene.test_too_few_argsc              
   C   s4   t ttttttttt	g
}t
j|Ž }d}t||ƒ d S rç  )rÚ  rÛ  rÜ  rÝ  rÞ  rß  rà  rá  râ  rã  r   rí  r   rè  r"   r"   r#   rM   é  s    
z!TestLevene.test_result_attributesc                 C   s*   t  ddgddgg¡}tttjt|ƒ d S rê  )r   r£   rC   rD   r   rí  rÚ  r¦   r"   r"   r#   rë  ð  s    zTestLevene.test_1d_inputN)rN   rO   rP   ræ  rö  r  r	  r  r  r  rM   rë  r"   r"   r"   r#   rì  °  s   	
rì  c                   @   sd   e Zd ZdZeddd„ƒZdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
ejjejdkdd�dd„ ƒZdS )ÚTestBinomTestPzU
    Tests for stats.binomtest as a replacement for deprecated stats.binom_test.
    Nr�  ú	two-sidedc                 C   s�   t  | ¡ t j¡} t| ƒdkr8| d | d  }| d } n@t| ƒdkrp| d } |d ks\|| k rdtdƒ‚t  |¡}ntdƒ‚tj| |||d�}|jS )Nr   r   r   zn must be >= xzIncorrect length for x.©r  rÈ  )	r   Z
atleast_1dZastypeÚint_rÆ   rD   r   Ú	binomtestr˜   )rI   rË   r  rÈ  Úresultr"   r"   r#   Úbinom_test_funcù  s    
zTestBinomTestP.binom_test_funcc                 C   sR   |   dd¡}t|ddƒ |   dd¡}t|ddƒ | j dd	gd
d�}t|ddƒ d S )Nr‘   éú   gòæ-û"Û^?r`  r,  i•  g`¡½žwí?iª  éó   ç      è?©r  g¬×à½zØ?©r  r   )r=   r³  r"   r"   r#   ræ    s    zTestBinomTestP.test_datac                 C   s   t t| jdddgƒ d S ©Nr   r   r]   ©rC   rD   r  rE   r"   r"   r#   Útest_bad_len_x  s    zTestBinomTestP.test_bad_len_xc                 C   s(   t t| jdgƒ t t| jdgdd� d S )Nr‘   r°   ©rË   r  rE   r"   r"   r#   Ú
test_bad_n  s    zTestBinomTestP.test_bad_nc                 C   s   t t| jddgdd� d S )Nr°   rø  r  r  rE   r"   r"   r#   Ú
test_bad_p  s
      ÿzTestBinomTestP.test_bad_pc                 C   sX   | j ddddd�}t|dƒ | j ddddd�}t|dƒ | j dddd	d�}t|d
ƒ d S )Nre  éë   gUUUUUUÅ?rÌ  r  g-$ËÇºlï?rÍ  gs0ê,j.›?r  gÛJfJ"f¦?r  ©r=   rK   r"   r"   r#   Útest_alternatives"  s    

z TestBinomTestP.test_alternativesl        z32-bit does not overflow©Úreasonc                 C   s   t t| jddtjjd� d S )Nrû  r&   r  )rC   ÚOverflowErrorr  ÚsysÚ
float_infoÚminrE   r"   r"   r#   Útest_boost_overflow_raises,  s    z)TestBinomTestP.test_boost_overflow_raises)Nr�  r  )rN   rO   rP   Ú__doc__Ústaticmethodr  ræ  r  r!  r"  r%  ré   rê   Úskipifr)  Úmaxsizer,  r"   r"   r"   r#   r  õ  s   
r  c                    @   sH  e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zej	 
d
dddg¡dd„ ƒZej	 
d
dddg¡dd„ ƒZej	 
ddddg¡dd„ ƒZej	 
ddddg¡dd „ ƒZej	 
d!d"d#d$d%d&d'gd"d#d$d(d)d*gd"d#d+d%d,d-gd"d#d+d(d.d/gd"d0d$d%d1d2gd"d0d$d(d1d3gd"d0d+d%d1d4gd"d0d+d(d1d5gd"d6d$d%d7d8gd"d6d$d(d9d8gd"d6d+d%d:d8gd"d6d+d(d;d8gd<d#d$d%d1d=gd<d#d+d%d1d>gd<d0d$d%d1d?gd<d0d+d%d1d@gd<d6d$d%d1d8gd<d6d+d%d1d8gdAd#d$d%dBd8gdAd#d+d%dCd8gdAd0d$d%d1d8gdAd0d+d%d1d8gdAd6d$d%dDd8gdAd6d+d%dEd8gg¡dFdG„ ƒZdHdI„ Zej	 
dJdKdLg¡dMdN„ ƒZdOdP„ ZdQdR„ ZdSdT„ ZdUdV„ ZdWS )XÚTestBinomTestzTests for stats.binomtest.c                 C   s€   d}t  ddd¡}t|jd|d� t  ddd¡}t|jd|d� t  d	dd¡}t|jd
|d� t  ddd¡}t|jddd� d S )Nç»½×Ùß|Û=iÿÎ™ i@o@ç¸…ëQ¸Þ?r   r/   iöÎ™ gX7àÉàäï?i	Ï™ gÊç=¦»çï?iÏ™ gÁ‡ybwÏï?r3   ©r   r  r   r˜   ©r=   r0   rK   r"   r"   r#   Útest_two_sided_pvalues19  s    z%TestBinomTest.test_two_sided_pvalues1c                 C   sÜ   d}t jdddd�}t|jd|d� t  ddd¡}t|jd	|d� t  d
dd¡}t|jd|d� t  ddd¡}t|jd|d� t  ddd¡}t|jd|d� t  ddd¡}t|jd|d� t  ddd¡}t|jd|d� d S )Nr2  r'   rN  r3  ©rË   r  gXžóý-hå?r/   r^   g‹ã¤¶y«€?r`  g	™ÐyÚ}ê?r)   g+¯“°¸,É?r]   r´   r�  g      Ö?r   gš™™™™™Ù?g{®GázÄ?g333333Ó?gÀìž<,Ôâ?r4  r5  r"   r"   r#   Útest_two_sided_pvalues2G  s    z%TestBinomTest.test_two_sided_pvalues2c                 C   s¼   d}t  ddd¡}t|jd|d� t  ddd	¡}t|jd|d� t  d
dd¡}t|jd|d� t  ddd¡}t|jd|d� t  dd
d¡}t|jd|d� t  ddd¡}t|jd|d� d S )Nr2  iä  iÇ  r�  r   r/   r]   rV  gAL® &W°?r+   rp  g!YÈBÒ?rG   r?  gÑE]tÑÕ?r)   r&   r`  r4  r5  r"   r"   r#   Útest_edge_casesX  s    zTestBinomTest.test_edge_casesc                    s,  d‰ d‰d}t  t  ˆˆ  ¡ˆ d ¡}tj |ˆ ˆ¡}t jtj |ˆ ˆ¡|kdd�}t‡ ‡fdd„| t  ˆˆ  ¡ˆ ƒ}ˆ | t|tj |ˆ ˆ¡kƒ }t	||d	d
� d}t  t  
ˆˆ  ¡d ¡}tj |ˆ ˆ¡}t jtj |ˆ ˆ¡|kdd�}t‡ ‡fdd„|dt  
ˆˆ  ¡ƒ}|d }t	||d	d
� d S )Nr´   r�  r]   r   r   ©Úaxisc                    s   t j | ˆ ˆ¡ S r   ©r   ÚbinomrÑ  ©rš   r7  r"   r#   Ú<lambda>t  s    z>TestBinomTest.test_binary_srch_for_binom_tst.<locals>.<lambda>r3   r/   r)   c                    s   t j | ˆ ˆ¡S r   r<  r>  r7  r"   r#   r?  €  s    )r   rH   Úceilr   r=  rÑ  Úsumr   Úintr   Úfloor)r=   ÚkrL   ÚdÚy1ZixÚy2r"   r7  r#   Útest_binary_srch_for_binom_tstg  s0      þ   þz,TestBinomTest.test_binary_srch_for_binom_tstz"alternative, pval, ci_low, ci_high)rÌ  gò$WåÃ?rÄ   gå±¦½Ñ?)rÍ  g}ô™¥Ðì?gí�GI~Á?r   )r  g°}¬G‡Ó?g¨>Ç?6À?g4—MõŒ­Ò?c                 C   sX   t jddd|d�}t|j|dd� t|jdƒ |jdd	�}t|j|jf||fdd� d S )
Nr<  r‘   rž  ©rË   r  rÈ  rÐ  r/   çš™™™™™É?rÎ  ©Úconfidence_level©	r   r  r   r˜   r	   r:   Úproportion_ciÚlowÚhigh©r=   rÈ  r³  Úci_lowÚci_highrK   Úcir"   r"   r#   Útest_confidence_intervals1‡  s
    z(TestBinomTest.test_confidence_intervals1)rÌ  ga&Ø+w?rÄ   gç€nyöÇ?)rÍ  g5!Rxõï?gƒ�³5—%‚?r   )r  g­~thˆ?gSu¥R&|?g|KnGòÉ?c                 C   sX   t jddd|d�}t|j|dd� t|jdƒ |jdd	�}t|j|jf||fdd� d S )
Nr]   r°   rJ  rI  ç�íµ ÷Æ°>r/   g¸…ëQ¸®?r   rK  rM  rQ  r"   r"   r#   Útest_confidence_intervals2–  s
    z(TestBinomTest.test_confidence_intervals2zalternative, pval, ci_high)rÌ  g–Â‹×Õ¬?gÍƒA‘Ð?)rÍ  r   r   )r  gßEùow³?g;KÚžj¾Ó?c                 C   sN   t jddd|d�}t|j|dd� |jdd�}t|jd	ƒ t|j|dd� d S )
Nr   r´   rž  r  rV  r/   rÎ  rK  rÄ   )r   r  r   r˜   rN  r	   rO  rP  )r=   rÈ  r³  rS  rK   rT  r"   r"   r#   Ú!test_confidence_interval_exact_k0¥  s
    z/TestBinomTest.test_confidence_interval_exact_k0zalternative, pval, ci_low)rÌ  r   rÄ   )rÍ  ç6œÃöÿÿ¯>g@>}_·ç?)r  rY  gcÚ’°Ê æ?c                 C   sN   t jddd|d�}t|j|dd� |jdd�}t|jdƒ t|j|dd� d S )	Nr´   rž  r  rV  r/   rÎ  rK  r   )r   r  r   r˜   rN  r	   rP  rO  )r=   rÈ  r³  rR  rK   rT  r"   r"   r#   Ú%test_confidence_interval_exact_k_is_n²  s
    z3TestBinomTest.test_confidence_interval_exact_k_is_nz+k, alternative, corr, conf, ci_low, ci_highr]   r  TrÎ  g`•ÿ¸´?gâ‚¾º®ä?r   grtð§!®?gŽŠ¤‚/ñæ?FgVKì5˜»?g5d—˜Mã?gšXCVu^´?g*Ïr�[Âå?rÌ  rÄ   g›P-ÇÐVã?g^'š¬öæ?gS5‹a˜Ýá?g©ì°Òä?rÍ  g!Õ‡`â°¸?r   g¿ÿ$x"±?gœWÐ~=À?g	¶¾Lù¶?r   g¨X�ÁåÖ?gÊNäîÃÑ?g/­<7#9Ò?gAðøö®AË?r´   g¬Ó7�ùä?g›Ø�ˆsç?gh©adnãæ?gðÃAB”/é?c           
      C   sL   t j|dd|d�}|rd}nd}|j||d�}	t|	j|	jf||fdd� d S )	Nr´   r  rI  ZwilsonccZwilson)rL  ÚmethodrV  r/   )r   r  rN  r   rO  rP  )
r=   rD  rÈ  ZcorrÚconfrR  rS  rK   r[  rT  r"   r"   r#   Útest_ci_wilson_method¿  s    z#TestBinomTest.test_ci_wilson_methodc                 C   s*   t  ddd¡}t|jdƒ t|jdƒ d S )Nr^   ra  rž  r   )r   r  r	   r:   r˜   r$  r"   r"   r#   Ú&test_estimate_equals_hypothesized_propæ  s    z4TestBinomTest.test_estimate_equals_hypothesized_propzk, n)r   r   )r²   r   c              	   C   s*   t jtdd�� t ||¡ W 5 Q R X d S )Nz must be an integer not less thanrÄ  ©ré   r   rD   r   r  )r=   rD  rË   r"   r"   r#   Útest_invalid_k_nî  s    ÿzTestBinomTest.test_invalid_k_nc              	   C   s,   t jtdd�� t ddd¡ W 5 Q R X d S )Nzk must not be greater than nrÄ  r`  r´   rž  r_  rE   r"   r"   r#   Útest_invalid_k_too_bigô  s    ÿz$TestBinomTest.test_invalid_k_too_bigc              	   C   s:   t jdddd�}tjtdd�� |jdd� W 5 Q R X d S )	Nr]   r´   r  r7  zmust be in the intervalrÄ  r²   rK  ©r   r  ré   r   rD   rN  r$  r"   r"   r#   Útest_invalid_confidence_levelù  s    z+TestBinomTest.test_invalid_confidence_levelc              	   C   s:   t jdddd�}tjtdd�� |jdd� W 5 Q R X d S )	Nr]   r´   r  r7  zmethod must berÄ  zplate of shrimp©r[  rb  r$  r"   r"   r#   Útest_invalid_ci_methodþ  s    z$TestBinomTest.test_invalid_ci_methodc                 C   s"   t jdddd�}t|j|jƒ d S )Nr]   r´   r  r7  )r   r  r	   Zproportion_estimater:   r$  r"   r"   r#   Ú
test_alias  s    zTestBinomTest.test_aliasN)rN   rO   rP   r-  r6  r8  r9  rH  ré   rê   rë   rU  rW  rX  rZ  r]  r^  r`  ra  rc  re  rf  r"   r"   r"   r#   r1  2  sŠ    üÿ
üÿ
þÿ
	þÿ
	çþ


r1  c                   @   sD   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dS )ÚTestFlignerc                 C   s&   t  d¡}tt ||d ¡ddƒ d S )Nr_   r   )gîn�“fÓ	@g‚¸Dq‡²?r`  )r   rH   r   r   Úfligner)r=   rš   r"   r"   r#   ræ  
  s
    
þzTestFligner.test_datac           	         sv   t j d¡‰ ‡ fdd„}|tƒ}|tƒ}|tƒ}tj|||dd�\}}tj|||ddd�\}}t||ƒ t||ƒ d S )	Nr×  c                    s    t  | ¡dˆ  t| ƒ¡   ¡ S )Nr2  )r   ÚasarrayÚrandnrÆ   Útolist)Úg©r¹   r"   r#   r?    ó    z+TestFligner.test_trimmed1.<locals>.<lambda>r?   rî  rð  rÄ   rñ  )	r   rá   r   rÚ  rÛ  rÜ  r   rh  r   )	r=   Z_perturbZg1_Zg2_Zg3_ÚXsq1ró  ÚXsq2rõ  r"   rm  r#   rö    s    ÿ

zTestFligner.test_trimmed1c                 C   sz   ddddddddg}d	dd
dddddg}t j||ddd�\}}t j|dd… |dd… dd�\}}t||ƒ t||ƒ d S )Nr÷  rø  rù  rú  rû  rü  rý  rþ  rÄ   rÿ  r   r  r  rð  r  rñ  r   r²   r?   rî  )r   rh  r   )r=   rI   r±  ro  ró  rp  rõ  r"   r"   r#   r  !  s    
ÿ
$
zTestFligner.test_trimmed2c                 C   s&   t  ddd¡}tttj||dd� d S r
  )r   r£  rC   r  r   rh  r¦   r"   r"   r#   r  ;  s    zTestFligner.test_bad_keywordc                 C   s&   t  ddd¡}tttj||dd� d S r  )r   r£  rC   rD   r   rh  r¦   r"   r"   r#   r  ?  s    z!TestFligner.test_bad_center_valuec                 C   s   t ttjdgƒ d S rU   )rC   rD   r   rh  rE   r"   r"   r#   Útest_bad_num_argsC  s    zTestFligner.test_bad_num_argsc                 C   s.   t  d¡}tt jt jft ||d g ¡ƒ d S )Nr_   r   )r   rH   r	   r§   r   rh  r¦   r"   r"   r#   ré  G  s    
zTestFligner.test_empty_argN)
rN   rO   rP   ræ  rö  r  r  r  rq  ré  r"   r"   r"   r#   rg    s   rg  c                  c   sÆ   dddg} dddg}t |ƒD ]¤\}}tj |¡}| d¡}|jdd	d
d�}|jdd
d
d�}t||ƒD ],\}}	t|d ||	 ƒD ]}
|| ||
< q~qd| |¡ t |d¡\}}||df| | ˜V  qd S )N)g]YÐÀîCü¿gQÃÌÎÈÉ£?)gƒmÏe�5æ¿gÏµôÅÜ5Ï?)g€›;jò¿gàÌHø¿?iFÞei»HcMi%Ø:r‘   r   r¶  r_   )rO  rP  r•   r   r   rÌ  )	Ú	enumerater   rá   râ   ZintegersÚzipÚrangeÚshuffleÚsplit)Zexpected_resultsZseedsÚsir  ræ   ZxyZtie_indZnum_ties_per_indrL   rË   ÚjrI   r±  r"   r"   r#   Úmood_cases_with_tiesL  s     þ


ry  c                   @   sŒ   e Zd Zej deƒ ¡dd„ ƒZej d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ej ddddg¡dd„ ƒZdS )ÚTestMoodz$x,y,alternative,stat_expect,p_expectc                 C   s4   t j|||d�\}}t||dd� t||dd� dS )am  
        Example code used to generate SAS output:
        DATA myData;
        INPUT X Y;
        CARDS;
        1 0
        1 1
        1 2
        1 3
        1 4
        2 0
        2 1
        2 4
        2 9
        2 16
        ods graphics on;
        proc npar1way mood data=myData ;
           class X;
            ods output  MoodTest=mt;
        proc contents data=mt;
        proc print data=mt;
          format     Prob1 17.16 Prob2 17.16 Statistic 17.16 Z 17.16 ;
            title "Mood Two-Sample Test";
        proc print data=myData;
            title "Data for above results";
          run;
        rÇ  g¼‰Ø—²Òœ<r  N©r   Úmoodr   )r=   rI   r±  rÈ  Zstat_expectZp_expectr:   r˜   r"   r"   r#   Útest_against_SASd  s    zTestMood.test_against_SASzalternative, expected)r  )ç3oX«Qð?g¯pµüL²Ó?)rÌ  )r~  gÔ£ÒÀlë?)rÍ  )r~  g¯pµüL²Ã?c                 C   sv   ddddddddd	dd
dddddddddg}ddddddddd	ddddd	ddddddg}t j|||d�}t||ƒ d S )Nrq  rµ  r‘   r¶  rv  rk  r·  r¸  rS  rJ  r¹  rd  rº  r»  r¼  r†  r½  r¾  r¿  rÇ  r{  )r=   rÈ  rÕ  rI   r±  rK   r"   r"   r#   Útest_against_SAS_2†  s4    	         ÿ         ÿzTestMood.test_against_SAS_2c                 C   s`   t j d¡ t j dd¡}t j dd¡}t ||¡\}}t ||¡\}}t||g| |gƒ d S )Nr  r´   r   rG   )r   rá   r  rj  r   r|  r   )r=   rš   rž   Zz1Úp1Zz2Úp2r"   r"   r#   Útest_mood_order_of_args–  s    z TestMood.test_mood_order_of_argsc                 C   sª   ddddddddd	d
ddddddddddg}dddddddddddd d!d"d#d$d%d&d'd(d)d*d+d,d-d.d/d0d1d2g}t  |¡}t  |¡}d3|_d4|_ttj||d d5�d6d7gƒ d S )8Ngóø²Üèä¿gýÎÔÛŸ�Ç?gyå<7x½ê¿g1å‘)E†ù?g9cîÃ§Õ?gû
¦éFAê¿g<=ÓŸ	2ß?gŠ{Ë![ ç?gó_Ílâ?g‹Ú»{‹Ó¿gõGSsA0ø?g“½1óØ?gÖ í3áã¿gÚ“´·ÀgLñú�·ÿñ?g®_lº‰§¿gý,*.”�¿gË�5ÿç3î?gvN÷«qGê?gÆÅõW=ã?gdó¡"†³ì¿gº `Y#©Ç?gè^Š�Ðgù?géN‘Íò¿góBÕa‹´¿gp5_Û%óÀ?gú¨(­�§æ?gvï]Ãl®Î¿gõ¾gÀÿ?gî×ÅÃÁ¿g¬ró6ÊºÚ?gÃÕþÌ„jï?g£„K³ë!Ù¿gà”êï{¢ð¿g£&¨ƒ„ü?g*hÉÉ}Àg†¥Z‡ì?gˆy´BU¢?g .ÒÛ‹4ð?g´¬|w;ªÛ?g†&ckÿ¹ @gRñ�jå2ó¿g‰}+w(où?g­¾æÌ@Fÿ?gº}Þ_¢9t?g Œ=�Àg	ÊS‹Þ?gxß(ã¿gg7¬ºYé?g²{ih‰Ò?)r´   r   )rG   r   r:  gç4¼õ¿g^ø}©E	È?)r   r£   Úshaper   r   r|  )r=   rš   rž   r"   r"   r#   Útest_mood_with_axis_none   sn               ú                  ÷

ÿz!TestMood.test_mood_with_axis_nonec              
   C   sì   d}t j d¡ t j d|¡}t j d|¡}t ||¡\}}t|ƒD ]:}t|| || gt |d d …|f |d d …|f ¡ƒ qD| ¡ }| ¡ }tj||dd�\}}t|ƒD ]:}t|| || gt ||d d …f ||d d …f ¡ƒ q¬d S )Nr_   r  r´   rG   r   r:  )	r   rá   r  rj  r   r|  rt  r   Z	transpose)r=   Únyrš   rž   Ú	z_vectestÚpval_vectestrx  rL   r"   r"   r#   Útest_mood_2d¼  s     "ÿ"ÿzTestMood.test_mood_2dc              	   C   s@  d}t j d¡ t jj|Ž }t jj|Ž }tdƒD �]}tj|||d�\}}ddgddgddgf}t||| d  ƒD ]Ä}t||| d  ƒD ]ª}	|dkr¾|d d …||	f }
|d d …||	f }nR|dkrì||d d …|	f }
||d d …|	f }n$|||	d d …f }
|||	d d …f }t|||	f |||	f gt |
|¡ƒ qŒqtq0d S )N)r´   r_   r&   r  r]   r:  r   r   r   )r   rá   r  rj  rt  r   r|  r   )r=   rƒ  rš   rž   r;  r†  r‡  Zaxes_idxrL   rx  Zslice1Zslice2r"   r"   r#   Útest_mood_3dÓ  s,    
ÿ
þzTestMood.test_mood_3dc                 C   s   t ttjdgg ƒ d S rU   )rC   rD   r   r|  rE   r"   r"   r#   Útest_mood_bad_argï  s    zTestMood.test_mood_bad_argc           	   	   C   sÞ   t j d¡ tjjddd�}tjjddd�}tj||dd�\}}tj||dd�\}}tj||d	d�\}}||  kr||ks‚n t‚t|dd
d� t||d ƒ t|d|d  ƒ t	j
tdd�� tj||dd� W 5 Q R X d S )Nr   r  r‘   )r”   r•   g      ô?r  rÇ  rÌ  rÍ  çH¯¼šò×z>r  r   r   zalternative must be...rÄ  z	ekki-ekki)r   rá   r  r   r™   r   r|  rå   r   ré   r   rD   )	r=   rI   r±  Zstat1r€  Zstat2r�  Zstat3Zp3r"   r"   r#   Útest_mood_alternativeô  s    zTestMood.test_mood_alternativerÈ  r  rÌ  rÍ  c                 C   sF   t j d¡}| d¡}| d¡}tj|||d�}t|j|jf|ƒ d S )Nl	   ¶„hTt üfïU˜6H~Ç )r´   r   )rG   r   rÇ  )	r   rá   râ   r¶   r   r|  r	   r:   r˜   )r=   rÈ  ræ   rš   rž   rK   r"   r"   r#   Útest_result  s
    

zTestMood.test_resultN)rN   rO   rP   ré   rê   rë   ry  r}  r  r‚  r„  rˆ  r‰  rŠ  rŒ  r�  r"   r"   r"   r#   rz  c  s&   ÿ
 üÿ
	
rz  c                   @   sV   e Zd Zdd„ Zdd„ Zdd„ Zejje	 dd�d	d
„ ƒZ
dd„ Zdd„ Zdd„ ZdS )ÚTestProbplotc                 C   s’   t jjddd�}t j|dd�\}}dddd	d
dddddddddddddddg}t|t |¡ƒ t||ƒ t j|dd�\}}dddg}t||ƒ d S )Nr<  é90  rà   F©rÈ   g§ÛÈ+Æ/ý¿g…YËð3ö¿g´Ît†äñ¿gÖ5Zô0í¿gF¬jî�¦ç¿gª!Ö2¾â¿gsR�†ð{Ü¿gø7µàÔ¿g>­h”ªÄÇ¿gcØzéš‡¯¿gcØzéš‡¯?g>­h”ªÄÇ?gø7µàÔ?gsR�†ð{Ü?gª!Ö2¾â?gF¬jî�¦ç?gÖ5Zô0í?g´Ît†äñ?g…YËð3ö?g§ÛÈ+Æ/ý?TgÆ�VúžÛð?g·ŸçªÔÔ?g Ã é˜ï?)r   r™   r   Úprobplotr   r   Úsort)r=   rI   ÚosmÚosrZosm_expectedrK   Zres_fitZres_fit_expectedr"   r"   r#   rB     s2                ü

zTestProbplot.test_basicc           
      C   sŒ   t jjddd�}t j|d dd�\}}t j|ddd�\}}t j|ddd�\}}t||ƒ t||ƒ t||ƒ t||ƒ t j|ddd�\}}	d S )Nr‘   i@â rà   F©ÚsparamsrÈ   r   r"   )r   r™   r   r‘  r   )
r=   rI   Úosm1Úosr1Úosm2Úosr2Zosm3Zosr3r“  r”  r"   r"   r#   Útest_sparams_keyword!  s    



z!TestProbplot.test_sparams_keywordc                 C   sÆ   t jjddd�}t j|dddd�\}}t j|dt jdd�\}}t||ƒ t||ƒ ttt j|dd	� ttt j|g d	� G d
d„ dƒ}t j|ddd�\}}t j||ƒ dd�\}}t||ƒ t||ƒ d S )Nr<  r�  rà   FÚt)r]   )rÈ   rÑ   r–  zwrong-dist-namerÐ   c                   @   s   e Zd ZdZdd„ ZdS )z3TestProbplot.test_dist_keyword.<locals>.custom_distz6Some class that looks just enough like a distribution.c                 S   s   t jj|dd�S )Nr   )r“   )r   r™   Úppf)r=   Úqr"   r"   r#   r�  ;  s    z7TestProbplot.test_dist_keyword.<locals>.custom_dist.ppfN)rN   rO   rP   r-  r�  r"   r"   r"   r#   Úcustom_dist9  s   rŸ  )r   r•  )rÑ   rÈ   )	r   r™   r   r‘  rœ  r   rC   rD   ÚAttributeError)r=   rI   r—  r˜  r™  rš  rŸ  r"   r"   r#   Útest_dist_keyword/  s    


zTestProbplot.test_dist_keywordúno matplotlibr&  c           
      C   s  t  ¡ }| d¡ tjjdddd�}tj|t d�\}}t  ¡  tj|d d�\}}tj|dt d�}t  ¡  tj|dd d�}tt	|ƒt	|ƒ  ko°t	|ƒ  ko°t	|ƒ  ko°d	kn  ƒ t
||ƒ t
||ƒ t
||ƒ t
||ƒ t  ¡ }| d¡}	tj|d|	d� t  ¡  d S )
Nrq  r]   r‘   é±Ët rà   ©ÚplotF)rÈ   r¥  r   )ÚpltÚfigureÚadd_subplotr   rœ  r   r‘  Úcloser   rÆ   r   )
r=   ÚfigrI   Zres1Zfitres1Zres2Zfitres2Zres3Zres4Úaxr"   r"   r#   Útest_plot_kwargC  s$    
@




zTestProbplot.test_plot_kwargc                 C   s   t ttjdgdd� d S rÎ   )rC   rD   r   r‘  rE   r"   r"   r#   Útest_probplot_bad_args\  s    z#TestProbplot.test_probplot_bad_argsc                 C   sZ   t tjg dd�t g ¡t g ¡fƒ t tjg dd�t g ¡t g ¡ftjtjdffƒ d S )NFr�  TrÄ   )r	   r   r‘  r   r£   r§   rE   r"   r"   r#   Ú
test_empty`  s    ÿÿÿzTestProbplot.test_emptyc              	   C   sT   t jdd��> ttjdgdd�t  dg¡t  dg¡ft jt jdffƒ W 5 Q R X d S )NrÀ   )Úinvalidr   Tr�  rÄ   )r   rÂ   r	   r   r‘  r£   r§   rE   r"   r"   r#   Útest_array_of_size_oneg  s    ÿÿz#TestProbplot.test_array_of_size_oneN)rN   rO   rP   rB   r›  r¡  ré   rê   r/  Úhave_matplotlibr¬  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ej ddddgdddddgdddddd d!d"gg¡d#d$„ ƒZd%d&„ Zd'S )(ÚTestWilcoxonc                 C   sh   t ttjdgddgƒ t ttjddgddgdƒ t ttjddgddgdd� t ttjdgd dd� d S )Nr   r   ÚdummyrÇ  r´   Zxyz©Úmode)rC   rD   r   ÚwilcoxonrE   r"   r"   r#   Útest_wilcoxon_bad_argo  s    ÿz"TestWilcoxon.test_wilcoxon_bad_argc                 C   sR   t  d¡}tttj||ddd� tttj||ddd� ttj||ddd�dƒ d S )Nr<  ÚwilcoxÚapproxr´  ÚprattÚzsplit)g     @Z@r   )r   rH   rC   rD   r   r¶  r	   r¦   r"   r"   r#   Útest_zero_diffx  s    
ÿÿÿzTestWilcoxon.test_zero_diffc              	   C   sX   ddddg}ddddg}t ƒ �&}|jtdd� tj||dd	d
�}W 5 Q R X t|dƒ d S )Nr   r   r]   r^   r_   úSample size too smallrš  rº  r¹  ©Zzero_methodrµ  )rÄ   g²|»ÐNÔ?)r
   r¤  r¥  r   r¶  r   )r=   rI   r±  r¦  rK   r"   r"   r#   Ú
test_prattƒ  s    zTestWilcoxon.test_prattc                 C   sN   dddddddddddg}t j|ddd�}t j|d	dd�}t j|d
dd�}d S )Nr   r   r]   r   r²   rº  r¹  r¾  r»  r¸  )r   r¶  )r=   Zarrr§  r"   r"   r#   Útest_wilcoxon_arg_type�  s    z#TestWilcoxon.test_wilcoxon_arg_typec                 C   sh  dddddddddg	}t ddƒ}t d	d
„ t||ƒD ƒ¡}t |j¡}tj||ddd�\}}t|dƒ t|dƒ tj||ddd�\}}t|dƒ t|dƒ tj||ddd�\}}t|dƒ t|dƒ t 	ddddddddddd d!g¡}t 	d"d#d$d%d!d&d'dd(dd)d*g¡}tj||d+dd,�\}}t
|d-ƒ t|d.d/d0� tj||d1dd,�\}}t
|d-ƒ t|d2d/d0� d S )3Nr   r^   ra  rG   r*   r_   r   éüÿÿÿc                 S   s   g | ]\}}|g| ‘qS r"   r"   )r[   Úur½   r"   r"   r#   r\   ™  s     z7TestWilcoxon.test_accuracy_wilcoxon.<locals>.<listcomp>rº  r¹  r´  i§  g.½žÆýi?r»  i¹  gFYvø]Uj?r¸  iG  g%çâ^ Ez?r\  r¿  r#  ry  é´   é’   éy   rt  é„   rº  é   ép   é…   é�   éw   é½   éÇ   éÆ   és   rg  é»   F©Ú
correctionrµ  r.  g^·­Ò‚<æ?rV  r/   Tg:¤b­+ç?)rt  r   Zconcatenaters  Úzerosr•   r   r¶  r   r£   r	   )r=   ÚfreqÚnumsrI   r±  rå  r  r"   r"   r#   Útest_accuracy_wilcoxon–  s*    






""

z#TestWilcoxon.test_accuracy_wilcoxonc                 C   sh   t  ddddddddd	d
ddg¡}t  dddddddd
ddddg¡}tj||ddd�}d}t||ƒ d S )Nr\  r¿  r#  ry  rÃ  rÄ  rÅ  rt  rÆ  rº  rÇ  rÈ  rÉ  rÊ  rË  rÌ  rÍ  rÎ  rÏ  rg  rÐ  Fr¹  rÑ  rÃ  )r   r£   r   r¶  r   )r=   rI   r±  rK   rJ   r"   r"   r#   Útest_wilcoxon_result_attributes³  s
    ""z,TestWilcoxon.test_wilcoxon_result_attributesc                 C   sŒ   t j d¡}| d¡| d¡ }}tj||dd�}tj |jd ¡}t|j	|ƒ tj||dd�}t
|dƒrnt‚t ||¡}t
|dƒrˆt‚d S )Nl   ”	m$S rG   r¹  r´  r   ÚexactÚ
zstatistic)r   rá   râ   r   r¶  r™   r�  r˜   r   rÙ  Úhasattrrå   )r=   ræ   rI   r±  rK   r¬   r"   r"   r#   Útest_wilcoxon_has_zstatisticº  s    z)TestWilcoxon.test_wilcoxon_has_zstatisticc                 C   sn   t jdgd dd�\}}d}t|dƒ t||dd� t jdgd d	dd
�\}}d}t|dƒ t||dd� d S )Nr  r´   r¹  r´  g4I™Å¥Y?r   rV  r/   TrÑ  gcÐÅ2_?)r   r¶  r	   r   )r=   Ústatr  Z
expected_pr"   r"   r#   Útest_wilcoxon_tieÈ  s    	

zTestWilcoxon.test_wilcoxon_tiec              
   C   sp  ddddddddddg
}dddddd	d
dddg
}t ƒ �*}|jtdd� tj||ddd�\}}W 5 Q R X t|dƒ t|ddd� t ƒ �,}|jtdd� tj||dddd�\}}W 5 Q R X t|dƒ t|ddd� t ƒ �*}|jtdd� tj||ddd�\}}W 5 Q R X t|dƒ t|ddd� t ƒ �,}|jtdd� tj||dddd�\}}W 5 Q R X t|dƒ t|ddd� d S )Né}   rÏ  rG  éŒ   é‡   r¼  éz   r\  é|   r×  é‰   é‘   r½  rš  rÌ  r¹  ©rÈ  rµ  rP  g´…13}€æ?r&   r6   T)rÈ  rÒ  rµ  g7¥a�Ï%ç?rÍ  g˜ôœ™ÿÒ?gÔÚ�oJTÔ?)r
   r¤  r¥  r   r¶  r	   r   )r=   rI   r±  r¦  r›   r  r"   r"   r#   Útest_onesidedÛ  s4    	 
ÿ
 
ÿ
zTestWilcoxon.test_onesidedc                 C   sZ   t ddƒD ]J}t|ƒ}t|ƒ}t||d  d d t|ƒƒ tt|ƒdƒ t||ƒ q
d S )Nr   re  r   )rt  r   r   r	   rÆ   rA  r   )r=   rË   Zpmf1Zpmf2r"   r"   r#   Útest_exact_basic  s    zTestWilcoxon.test_exact_basicc                 C   s6  t  ddddddddd	d
g
¡}t  ddddddddddg
¡}tj||ddd�\}}t|ddd� tj||ddd�\}}t|ddd� tj||ddd�\}}t|ddd� t  dd ¡d! }t  d dd"¡}tj||ddd�\}}t|d#dd� tj||ddd�\}}t|d$dd� tj||ddd�\}}t|d%dd� d S )&Ngö(\�Âõü?g=
×£p=ê?gö(\�Âõø?g¸…ëQ¸Þ¿gìQ¸…ëé?g{®Gázô?g¤p=
×£ð¿gq=
×£pÍ?g      è¿gìQ¸…ëÁ?rp   gÍÌÌÌÌÌä?gš™™™™™É¿g333333ë?çš™™™™™ñ¿gÍÌÌÌÌÌÜ¿gáz®Gáê¿g¸…ëQ¸Î¿gÃõ(\�Âå¿gR¸…ëQè¿r  rØ  rå  gÖ”¿Ö  »?r&   r6   rÌ  gYJùÿ§î?rÍ  gÄó*  «?r   r<  r�  r²   gñ«(ØÒë?gñ«(ØÒÛ?g×üSþ‹â?)r   r£   r   r¶  r   rH   )r=   rI   r±  r§  r  r"   r"   r#   Útest_exact_pval	  s,     ÿ ÿzTestWilcoxon.test_exact_pvalrI   r²   r³   r]   r   éýÿÿÿrÁ  r_   rÊ  iúÿÿÿr)   r*   c                 C   s@   t  |¡\}}t |¡}||dk  ¡ }t||ƒ t|dƒ d S ©Nr   r   )r   r¶  r   r£   rA  r	   )r=   rI   r›   r  Zwtruer"   r"   r#   Útest_exact_p_1%  s
    

zTestWilcoxon.test_exact_p_1c              	   C   s¸   t  dd¡d }t  ddd¡}tt ||¡tj||dd�ƒ t  dd¡}tƒ �"}|jtdd	� t |¡\}}W 5 Q R X ttj|d
d�||fƒ t  dd¡}tt |¡tj|d
d�ƒ d S )Nr   rA  r�  r²   rØ  r´  r+   zExact p-value calculationrš  r¹  r   rb  )r   rH   r	   r   r¶  r
   r¤  r¥  )r=   rI   r±  rE  r¦  r›   r  r"   r"   r#   Ú	test_auto/  s    ÿzTestWilcoxon.test_autoN)rN   rO   rP   r·  r¼  r¿  rÀ  rÖ  r×  rÛ  rÝ  ræ  rç  ré  ré   rê   rë   rì  rí  r"   r"   r"   r#   r²  n  s"   	
	&þ
r²  c                   @   s,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
Ú	TestKstatc                    s�   t j d¡ t j d¡‰ ‡ fdd„dD ƒ}dddd	g}t||d
d� tjˆ dd�}tjˆ dd�}tjˆ dd�}t|||f|d d… ddd� d S )Ni•}  r�  c                    s   g | ]}t  ˆ |¡‘qS r"   )r   Úkstat)r[   rË   ©r>   r"   r#   r\   F  s     z>TestKstat.test_moments_normal_distribution.<locals>.<listcomp>)r   r   r]   r^   g•H¢—Q,‡?glZ)rIð?g88è}©À­?gc®æJN³?r¢  r/   r   )Úmomentr   r]   r²   g{®Gáz”?ç{®Gáz„?r   )r   rá   r  rj  r   r   rñ  )r=   ZmomentsrÕ  Úm1Úm2Zm3r"   rð  r#   Ú test_moments_normal_distributionC  s    z*TestKstat.test_moments_normal_distributionc                 C   s   t ttjg ƒ d S r   )rC   rD   r   rï  rE   r"   r"   r#   rF   Q  s    zTestKstat.test_empty_inputc                 C   s*   t  d¡}t j|d< tt |¡t jƒ d S ©Nr1   r&   ©r   rH   r§   r	   r   rï  rV   r"   r"   r#   r¨   T  s    

zTestKstat.test_nan_inputc                 C   s*   t  d¡}dD ]}tttj||d� qd S )Nr´   )r   g/Ý$@r   )r   rH   rC   rD   r   rï  ©r=   r>   rË   r"   r"   r#   Útest_kstat_bad_argZ  s    
zTestKstat.test_kstat_bad_argN)rN   rO   rP   rõ  rF   r¨   rù  r"   r"   r"   r#   rî  B  s   rî  c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestKstatVarc                 C   s   t ttjg ƒ d S r   ©rC   rD   r   ZkstatvarrE   r"   r"   r#   rF   b  s    zTestKstatVar.test_empty_inputc                 C   s*   t  d¡}t j|d< tt |¡t jƒ d S rö  r÷  rV   r"   r"   r#   r¨   e  s    

zTestKstatVar.test_nan_inputc                 C   s    dg}d}t ttj||d� d S )Nr   r´   r   rû  rø  r"   r"   r#   rW   k  s    zTestKstatVar.test_bad_argN)rN   rO   rP   rF   r¨   rW   r"   r"   r"   r#   rú  a  s   rú  c                   @   sN   e Zd Zdd„ Zdd„ Zdd„ Zejje	 dd�d	d
„ ƒZ
dd„ Zdd„ ZdS )ÚTestPpccPlotc                 C   s   t dddd�d | _d S ©Nr_   éô  r£  rà   ©r$   rI   rE   r"   r"   r#   Úsetup_methods  s    zTestPpccPlot.setup_methodc                 C   sN   d}t j| jdd|d�\}}ddddd	g}t|tjdd|d
�ƒ t||ƒ d S )Nr_   éöÿÿÿr´   ©ÚNgË9%Þ	Ë?gx½Mâ _Ë?g";9øšï?gÌÂ®X‰Zï?gŸ�Ôíí?©Únum)r   Ú	ppcc_plotrI   r   r   r£  )r=   r  ÚsvalsÚppccÚppcc_expectedr"   r"   r#   rB   v  s    ÿzTestPpccPlot.test_basicc                 C   s‚   t j| jdddd�\}}t j| jddt jd�\}}t||dd� t||dd� t  | jdd¡\}}t||dd� t||dd� d S )Nr  r´   ÚtukeylambdarÐ   g#B’¡œÇ;r/   )r   r  rI   r
  r   )r=   Zsvals1Zppcc1Zsvals2Zppcc2Zsvals3Zppcc3r"   r"   r#   Ú	test_dist~  s    ÿ
zTestPpccPlot.test_distr¢  r&  c                 C   sZ   t  ¡ }| d¡}tj| jddt d� | |¡ | d¡}tj| jdd|d� t  ¡  d S ©Nrq  iìÿÿÿr<  r¤  )r¦  r§  r¨  r   r  rI   Údelaxesr©  ©r=   rª  r«  r"   r"   r#   r¬  Š  s    


zTestPpccPlot.test_plot_kwargc                 C   s4   t ttj| jddƒ t ttjdddgdddd� d S )Nr   r   r   r]   rÏ   rÐ   )rC   rD   r   r  rI   rE   r"   r"   r#   Útest_invalid_inputs—  s    ÿz TestPpccPlot.test_invalid_inputsc                 C   s@   t  g dd¡\}}t|tjdddd�ƒ t|tjdtd�ƒ d S )Nr   r   rj  r  r¡   )r   r  r   r   r£  rÓ  Úfloat)r=   r  r  r"   r"   r#   r®  Ÿ  s    zTestPpccPlot.test_emptyN)rN   rO   rP   r   rB   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	S )
ÚTestPpccMaxc                 C   s   dg}t ttj|dd� d S rÎ   )rC   rD   r   Úppcc_maxrV   r"   r"   r#   Útest_ppcc_max_bad_arg©  s    z!TestPpccMax.test_ppcc_max_bad_argc                 C   s2   t jjdddddd�d }tt  |¡dd	d
� d S )Nçffffffæ¿r   r�  é'  é‡Ö r’   ç     ˆÃ@çº{öÉæ¿r)   r6   )r   r
  r   r   r  r¦   r"   r"   r#   Útest_ppcc_max_basic®  s    ÿÿzTestPpccMax.test_ppcc_max_basicc                 C   sp   t jjdddddd�d }t j|dd	�}t j|t jd	�}t|d
dd� t|d
dd� t  |¡}t|d
dd� d S )Nr  r   r�  r  r  r’   r  r
  rÐ   r  r_   r6   )r   r
  r   r  r   )r=   rI   Zmax1Zmax2Zmax3r"   r"   r#   r  ³  s    ÿÿ
zTestPpccMax.test_distc                 C   s`   t jjdddddd�d }ttt j|dd	� tt j|d
d	�ddd� tt j|dd	�ddd� d S )Nr  r   r�  r  r  r’   r  )rÄ   r   r�  )Úbrack)r   r   r  r)   r6   )r³   r   )r   r
  r   rC   rD   r  r   r¦   r"   r"   r#   Ú
test_brackÁ  s    ÿÿ ÿ ÿzTestPpccMax.test_brackN)rN   rO   rP   r  r  r  r  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 )ÚTestBoxcox_llfc                 C   sT   t jjdddd�}d}t  ||¡}|j d t t | ¡ d ¡¡ }t	||ƒ d S )Nr  r´   é1Ô  ©r•   r“   r–   r   rø  r   )
r   r™   r   Ú
boxcox_llfr•   r   r   rA  rA   r   )r=   rI   ÚlmbdaÚllfZllf_expectedr"   r"   r#   rB   Ï  s
    $zTestBoxcox_llf.test_basicc                 C   sD   t jjdddd�}d}t  ||¡}t  |t|ƒ¡}t||dd� d S ©Nr‘   r´   r  r  r   rÐ  r/   )r   r™   r   r  Úlistr   ©r=   rI   r   r!  Zllf2r"   r"   r#   Útest_array_likeÖ  s
    zTestBoxcox_llf.test_array_likec                 C   sP   t jjdddd�}d}t  ||¡}t  |t ||g¡j¡}t||g|dd� d S r"  )r   r™   r   r  r   Úvstackrå  r   r$  r"   r"   r#   Útest_2d_inputÝ  s
    zTestBoxcox_llf.test_2d_inputc                 C   s   t t t dg ¡¡ƒ d S rU   )r   r   Úisnanr   r  rE   r"   r"   r#   r®  ç  s    zTestBoxcox_llf.test_emptyc                 C   s&   ddddg}t  d|¡}t|dƒ d S )Ng     Àh@g      m@g     €x@iøÿÿÿg#:¹xð1À)r   r  r   )r=   r>   r!  r"   r"   r#   Útest_gh_6873ê  s    zTestBoxcox_llf.test_gh_6873N)rN   rO   rP   rB   r%  r'  r®  r)  r"   r"   r"   r#   r  Í  s
   
r  iU>  iÏµ iÁÜ i_Ü
 i7¤ i¶° isË ivÐ  i+œ iŒ* i-q ir: i�  iÿ· i� iä iÆ_ i4�  iëÎ iD×  i— iÊ, iEý i\÷  i¿ i¨| ig¢  iM iÓ¢ i[÷  i!ž i if6 iP� iî i i‘I i/� iF& iö i÷ i×`# iþ iáú  i€& i iÁâ i”Q i´a iö�
 iXZ iw´  i_• i“m  iD i˜- iBÊ  i:C i®¼	 iŽ' i³  i % iËx ià  iz_ i�‰Q i!# i�= ié  ix iþ
 iU7 i_ i1k iW9 i&³ ix€ i¯I išë  iT± i
» iÃÁ iôñ  irv im� iÍŸ  ió² iO¨ ivå i)® i¦P i4¤ i= iiû  i¶U i°Å i� ig> ix	 i` iˆ| iž0 i¹` iM	 i‹ ' ié[ i8 iú  i3[ iãÀ  i)û i`N i
‘	 i�Ô  iµ[ i:ÿ+ ipž i	% i
²  iœV i[$ iX‡  i_Ž ibë ieZ i�Ù i`?	 itŒ iâÈ  i¡È iÔE i� iT iy¸ i¾ã imv i< iîZ iï¦! iÌó i(³  ir
 iþÆ iÎ÷ iÉª i|— iùš i> ii÷  i™ i* i‘# ix iè´ i& iá° i#È i1g iëP iã) iÛ† iÌ{% i¯? iÛ½ iÐ| iô i…& iƒí- iÆ°) i+c i7›  iQ i	o i“& i|_ iüy
 i6 iª�  i¥Ç i�Ø i:J i#j i8Ï i�š  i%±  i i%W i(¥ i`‚ i:À� ina  iáü  iš¿ i­% i$ i4ô iA´( i÷q  iºÛ  iÒ" i¹y iÒXZ içÊ izr iÆÒ i´$ i;“ is¹ igY i¿ê i‚7 iüp	 ipÚ iL6" i•DH iÐæ i!3 i­ iIÒ( i|†C iÑˆ i£Ó iˆm  iS i›¾  i{8 iŽË  i¢ i¬û iËP i2L i·Ì( i@ is” iuœ i2 i_Ù iêj i)m igŒZ i¾_ iu¶	 iÎ9 ikÙ  i'; iç iiË iKÀ iÜƒ i¥• i= ivÂ i=š i„ ia  irÀ  iöÑ ií° i}W i*†  i¼À  iëJ i iãœ  i2·  iŸUF iNj	 iV," i¡p iAÎ i%Ö iº’ ivø9 iI©5 i¶Ó  i¬T- i—  i8~ i?e` i1Š iVã  i/X i= iØ4 iý iØ­ i^Â i¤è i/Ç ig i( iæ i|B; iëp iî icë iE' i²E i$
 iç iè{ ißk i:Ð iãI iA_ i¼§ iP ioP  i6_ iÉ iÜ² iO	 iA7 iL€  iúA iïÁ iVß  iwm iê iZh i|‹V iÔ‡C iwª i&à i~ iŒ� i'Þ  i!´  iÞ i²´
 iË} i¹e i3 iúø i¯é i_ñ ií”  i@µ) iÂž  iV­ iiñ iFŸ i›—? i×&
 i"Y iÍw i¶²  i÷H iS ird i©b i@Å i�K iA‹; iz| id+ i”ƒ	 iÇ
8 i"Ø  iä	 iO i®_ i$žl i!9 ii iýT iuL iQ'% iqp iC¹ i]K@ i Å! iÖ i“û  iIp| i¤½ i?	B i‚ iö io«0 i¦ò i
Æ
 iÈâ  iá5% i«ñ iñš i‰* i¿ iŸ iv0 iéÊ* iÐ* iw i„  ive i$ i‰Ù i-­ iD~ i-à iûÕ i,4 iÇb iõá  iž iP0 i)¯ iëm i�	 iÎR iÀQ i
Ö i€ù iÝ 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dddg¡dd„ ƒZdd„ Ze	j
 ddddg¡dd„ ƒZdd„ ZdS )Ú
TestBoxcoxc                 C   s´   t dddd�d }tj|dd�}t||d ƒ tj|dd�}t|dd|  ƒ tj|dd�}t|t |¡ƒ tjt|ƒdd�}t|t |¡ƒ t t d	¡d
¡}t|t 	d	¡ƒ d S )Nr_   r°   r�  rà   r   ©r   r²   r   r´   r   )
r$   r   rª   r   r   r   r#  r¸   r	   rÓ  )r=   rI   Úxtr"   r"   r#   Útest_fixed_lmbda)  s    zTestBoxcox.test_fixed_lmbdac                 C   sL   d}t jjdddd�}|| d |  }t  |¡\}}t|d| dd	� d S )
Ng      @r´   iPÃ  iÝ  )r“   r•   r–   r   r²   r   r6   )r   r™   r   rª   r   )r=   r   rI   Úx_invr,  r«   r"   r"   r#   Útest_lmbda_None;  s
    zTestBoxcox.test_lmbda_Nonec                 C   s¼   t j d¡}tdd|d�d }tj|dd�\}}}t|ddgƒ tj|d	d�\}}}t|d
dgƒ tdd|d�d }tj|dd�\}}}t|ddgƒ tj|dd�\}}}t|ddgƒ d S )Nr  r_   r°   rà   r  )Úalphag¸x�ë—@gvö[%Ž@rÏ  gxË‰EÌkó?g8B¹hk @r)   rþ  rG   rœ  g›ÌÓ\‡Ù?gxèÃÌ¡Ï&@r   gÓÑ7Š(U@g¿p:sY@)r   rá   r   r$   r   rª   r   )r=   ræ   rI   r§  rS   r"   r"   r#   Ú
test_alphaE  s    zTestBoxcox.test_alphac                 C   sR   t  ddg¡}tttj|ƒ tttjt  dg¡ƒ tttjt  dgdgg¡ƒ d S )Nr²   r   r   )r   r£   rC   rD   r   rª   r¦   r"   r"   r#   Útest_boxcox_bad_argV  s    zTestBoxcox.test_boxcox_bad_argc                 C   s   t t g ¡jdkƒ d S ©N)r   )r   r   rª   rƒ  rE   r"   r"   r#   r®  _  s    zTestBoxcox.test_emptyc                 C   s    t  t¡\}}t|ddd� d S )NgsHj¡drª¿r©   r/   )r   rª   Ú_boxcox_datar   )r=   r±  Zlamr"   r"   r#   r)  b  s    zTestBoxcox.test_gh_6873Úbounds©r²   r   ©r…   r   ©r³   rè  c                    sF   ‡ fdd„}t jtd |d�\}}ˆ d |  k r<ˆ d k sBn t‚d S )Nc                    s   t j| ˆ dd�S ©NÚbounded)r5  r[  ©r   Úminimize_scalar©Úfun©r5  r"   r#   Ú	optimizerm  s    ÿzBTestBoxcox.test_bounded_optimizer_within_bounds.<locals>.optimizer©r   r@  r   r   )r   rª   r4  rå   )r=   r5  r@  r§  r   r"   r?  r#   Ú$test_bounded_optimizer_within_boundsj  s    z/TestBoxcox.test_bounded_optimizer_within_boundsc                    sj   t jtd d�\}}|d |d f‰ ddi‰‡ ‡fdd„}t jtd |d�\}}||ksXt‚t|ˆ d	 ƒ d S )
Nr+  r  r   ZxatolrÐ  c                    s   t j| ˆ dˆd�S )Nr:  )r5  r[  Úoptionsr;  r=  ©r5  rC  r"   r#   r@    s     ÿzPTestBoxcox.test_bounded_optimizer_against_unbounded_optimizer.<locals>.optimizerrA  r   )r   rª   r4  rå   r   )r=   r§  r   r@  Zlmbda_boundedr"   rD  r#   Ú2test_bounded_optimizer_against_unbounded_optimizert  s    ÿ
z=TestBoxcox.test_bounded_optimizer_against_unbounded_optimizerr@  Ústr)r   r   r  c              	   C   s.   t jtdd�� tjtd |d� W 5 Q R X d S )Nz`optimizer` must be a callablerÄ  rA  ©ré   r   rD   r   rª   r4  ©r=   r@  r"   r"   r#   Ú$test_bad_optimizer_type_raises_error‰  s    z/TestBoxcox.test_bad_optimizer_type_raises_errorc              	   C   s:   dd„ }d}t jt|d�� tjtd |d� W 5 Q R X d S )Nc                 S   s   dS rU   r"   r=  r"   r"   r#   r@  ”  s    zCTestBoxcox.test_bad_optimizer_value_raises_error.<locals>.optimizerz;`optimizer` must return an object containing the optimal...rÄ  rA  rG  )r=   r@  r›  r"   r"   r#   Ú%test_bad_optimizer_value_raises_error�  s    z0TestBoxcox.test_bad_optimizer_value_raises_errorN)rN   rO   rP   r-  r/  r1  r2  r®  r)  ré   rê   rë   rB  rE  rI  rJ  r"   r"   r"   r#   r*  '  s   
	
	
r*  c                   @   sl   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zej 	d	d
ddg¡ej 	ddddg¡dd„ ƒƒZ
dd„ Zdd„ ZdS )ÚTestBoxcoxNormmaxc                 C   s   t dddd�d | _d S ©Nr_   r°   r�  rà   rÿ  rE   r"   r"   r#   r   �  s    zTestBoxcoxNormmax.setup_methodc                 C   s   t  | j¡}t|ddd� d S )Nçm±ßü?rV  r/   ©r   Úboxcox_normmaxrI   r   ©r=   r«   r"   r"   r#   Útest_pearsonr   s    zTestBoxcoxNormmax.test_pearsonrc                 C   s<   t j| jdd�}t|ddd� t  | j¡\}}t||ƒ d S )NÚmlerd  çÐ	¡ƒ.!ü?rV  r/   )r   rO  rI   r   rª   )r=   r«   r§  Zmaxlog_boxcoxr"   r"   r#   Útest_mle¤  s    zTestBoxcoxNormmax.test_mlec                 C   s&   t j| jdd�}t|ddgdd� d S )NrÁ   rd  rM  rS  rV  r/   rN  )r=   Z
maxlog_allr"   r"   r#   Útest_all¬  s    zTestBoxcoxNormmax.test_allr[  rR  ZpearsonrrÁ   r5  r6  r7  r8  c                    sN   ‡ fdd„}t j| j||d�}t ˆ d |k ¡s4t‚t |ˆ d k ¡sJt‚d S )Nc                    s   t j| ˆ dd�S r9  r;  r=  r?  r"   r#   r@  ´  s    ÿzITestBoxcoxNormmax.test_bounded_optimizer_within_bounds.<locals>.optimizer)r[  r@  r   r   )r   rO  rI   r   rÁ   rå   )r=   r[  r5  r@  r«   r"   r?  r#   rB  °  s    
ÿz6TestBoxcoxNormmax.test_bounded_optimizer_within_boundsc                    sv   t  | j¡}t |d¡}t |d |d d¡‰G dd„ dƒ‰ ‡ ‡fdd„}t j| j|d�}||ksft‚t||d	ƒ d S )
Nr_   rò  ié  c                   @   s   e Zd ZdS )z?TestBoxcoxNormmax.test_user_defined_optimizer.<locals>.MyResultN)rN   rO   rP   r"   r"   r"   r#   ÚMyResultÃ  s   rV  c                    s6   g }ˆD ]}|  | |ƒ¡ qˆ ƒ }ˆt |¡ |_|S r   )Úappendr   ZargminrI   )r>  Zobjsr   rK   ©rV  Zlmbda_ranger"   r#   r@  Æ  s    z@TestBoxcoxNormmax.test_user_defined_optimizer.<locals>.optimizer)r@  r©   )r   rO  rI   r   Úroundr£  rå   r   )r=   r   Zlmbda_roundedr@  Zlmbda2r"   rX  r#   Útest_user_defined_optimizer½  s    	z-TestBoxcoxNormmax.test_user_defined_optimizerc              	   C   sH   t j}tj| jd |d� tjtdd�� tj| jd|d� W 5 Q R X d S )N)r  r@  z,`brack` must be None if `optimizer` is givenrÄ  )g       Àrø  )r   r<  r   rO  rI   ré   r   rD   rH  r"   r"   r#   Ú2test_user_defined_optimizer_and_brack_raises_errorÓ  s    
ÿzDTestBoxcoxNormmax.test_user_defined_optimizer_and_brack_raises_errorN)rN   rO   rP   r   rQ  rT  rU  ré   rê   rë   rB  rZ  r[  r"   r"   r"   r#   rK  œ  s   rK  c                   @   sF   e Zd Zdd„ Zdd„ Zejje dd�dd„ ƒZ	d	d
„ Z
dd„ ZdS )ÚTestBoxcoxNormplotc                 C   s   t dddd�d | _d S rý  rÿ  rE   r"   r"   r#   r   å  s    zTestBoxcoxNormplot.setup_methodc                 C   sN   d}t j| jdd|d�\}}ddddd	g}t|tjdd|d
�ƒ t||ƒ d S )Nr_   r  r´   r  g!ÍX4�}â?g¬ÌÎ�iÁê?g·-ã	15ï?gW»ý$ìï?g\Ü±ž{«î?r  )r   Úboxcox_normplotrI   r   r   r£  )r=   r  Zlmbdasr  r	  r"   r"   r#   rB   è  s    ÿzTestBoxcoxNormplot.test_basicr¢  r&  c                 C   sZ   t  ¡ }| d¡}tj| jddt d� | |¡ | d¡}tj| jdd|d� t  ¡  d S r  )r¦  r§  r¨  r   r]  rI   r  r©  r  r"   r"   r#   r¬  ð  s    


z"TestBoxcoxNormplot.test_plot_kwargc                 C   s.   t ttj| jddƒ t ttjddgddƒ d S )Nr   r   r²   )rC   rD   r   r]  rI   rE   r"   r"   r#   r  ý  s    z&TestBoxcoxNormplot.test_invalid_inputsc                 C   s   t t g dd¡jdkƒ d S rë  )r   r   r]  r•   rE   r"   r"   r#   r®    s    zTestBoxcoxNormplot.test_emptyN)rN   rO   rP   r   rB   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S )ÚTestYeojohnson_llfc                 C   sD   t jjdddd�}d}t  ||¡}t  |t|ƒ¡}t||dd� d S )Nr‘   r   r  r  r   rÐ  r/   )r   r™   r   Úyeojohnson_llfr#  r   r$  r"   r"   r#   r%  	  s
    z"TestYeojohnson_llf.test_array_likec                 C   sP   t jjdddd�}d}t  ||¡}t  |t ||g¡j¡}t||g|dd� d S r"  )r   r™   r   r_  r   r&  rå  r   r$  r"   r"   r#   r'    s
    z TestYeojohnson_llf.test_2d_inputc                 C   s   t t t dg ¡¡ƒ d S rU   )r   r   r(  r   r_  rE   r"   r"   r#   r®    s    zTestYeojohnson_llf.test_emptyN)rN   rO   rP   r%  r'  r®  r"   r"   r"   r#   r^    s   r^  c                   @   sŽ   e Zd Zdd„ Zej dddddg¡dd	„ ƒZd
d„ Zdd„ Z	ej de
je
jg¡dd„ ƒZej de
je
je
je
jg¡dd„ ƒZdd„ ZdS )ÚTestYeojohnsonc                 C   sŒ  t j d¡}tdd|d�d }t  |dk¡s0t‚tj|dd�}t||ƒ tj|dd�}t|dd|d   ƒ tj|dd�}t|t  	|d ¡ƒ tj|dd�}t||ƒ tdd|d�d }t  |dk ¡sÊt‚tj|d	d�}t|t  	| d ¡ ƒ tj|dd�}t||ƒ tj|d
d�}t|d| d  d ƒ tdd|d�d	 }t  |dk ¡�rTt‚t  |dk¡�rht‚|dk}tj|dd�}t|| || ƒ tj|dd�}t|| dd|| d   ƒ tj|dd�}t|| t  	|| d ¡ƒ tj|dd�}t|| || ƒ | }tj|d	d�}t|| t  	||  d ¡ ƒ tj|dd�}t|| || ƒ tj|d
d�}t|| d||  d  d ƒ d S )Nr�  r_   r°   rà   r   r   r+  r²   r   r]   )
r   rá   r   r$   rÁ   rå   r   Ú
yeojohnsonr   r   )r=   ræ   rI   r,  ÚposÚnegr"   r"   r#   r-    sL    


 zTestYeojohnson.test_fixed_lmbdar   r   r  r�  r   c                 C   s–   dd„ }d}t j d¡ t jjdd|d�}|||ƒ}t |¡\}}t||dd	� tdt j 	|| ¡| d
d� td| 
¡ dd� td| ¡ dd� d S )Nc                 S   sÒ   t j| j| jd�}| dk}t|ƒt  d¡k rDt  | | ¡d ||< n$t  | | | d d| ¡d ||< t|d ƒt  d¡kr²dt  d|  | |   d dd|  ¡ || < ndt  | |   ¡ || < |S )Nr¡   r   r   r   r   )r   rÓ  rƒ  r¢   ÚabsÚspacingÚexpÚpower)rI   r   r.  rb  r"   r"   r#   Ú_inverse_transformQ  s    $
ÿz:TestYeojohnson.test_lmbda_None.<locals>._inverse_transformi N  r  r   r   )r“   r”   r•   rò  r  r   r6   )r   rá   r  Únormalr   ra  r   r   Úlinalgr™   r?   rA   )r=   r   rh  Z	n_samplesrI   r.  r,  r«   r"   r"   r#   r/  L  s    
zTestYeojohnson.test_lmbda_Nonec                 C   s   t t g ¡jdkƒ d S r3  )r   r   ra  rƒ  rE   r"   r"   r#   r®  q  s    zTestYeojohnson.test_emptyc                 C   sD   t jjdddd�}t  |¡\}}t  t|ƒ¡\}}t||dd� d S )Nr‘   r   r  r  rÐ  r/   )r   r™   r   ra  r#  r   )r=   rI   Zxt1r§  Zxt2r"   r"   r#   r%  t  s    zTestYeojohnson.test_array_liker¢   c              	   C   s:   t jd|d�}d}tjt|d�� t |¡ W 5 Q R X d S )Nr&   r¡   z>Yeo-Johnson transformation is not defined for complex numbers.rÄ  )r   rH   ré   r   rD   r   ra  )r=   r¢   rI   Úerr_msgr"   r"   r#   Útest_input_dtype_complexz  s    z'TestYeojohnson.test_input_dtype_complexc                 C   sZ   t jd|d�}t jdt jd�}t |¡\}}t |¡\}}t||dd� t||dd� d S )Nr*   r¡   r‹  r/   )r   rH   Zfloat64r   ra  r   )r=   r¢   Zx_intZx_floatZxt_intZ	lmbda_intZxt_floatZlmbda_floatr"   r"   r#   Útest_input_dtype_integer‚  s    z'TestYeojohnson.test_input_dtype_integerc                 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g¡}t |¡\}}t |d ¡\}}t||dd� t||dd� d S )NgÃõ(œÚÎHAg®Gá.ñ"Ag    5fAgÃõ(¶ö@Ag   °ÁV”AgHáz¼æuoAg)\�Â¿ý+Agö(\ïö^@Ag    ´íRAg    Åß#Ag\�Âµ¤=Ag
×£ð˜ìNAg¤p=ŠoÝHAg    6bAg{®cï¬sAg)\�tmhAg¸…ëå/BAg   '|•Agö(\wŽipAg    ÝƒhAgìQ¸þlBAg×£p �@Ar   rV  r/   )r   r£   r   ra  rª   r   )r=   rI   Zxt_yeoZlam_yeoZxt_boxZlam_boxr"   r"   r#   Útest_input_high_variance‹  s6                   úz'TestYeojohnson.test_input_high_varianceN)rN   rO   rP   r-  ré   rê   rë   r/  r®  r%  r   Z	complex64Z
complex128rl  Zint8Úuint8Zint16Zint32rm  rn  r"   r"   r"   r#   r`    s   /
$

r`  c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestYeojohnsonNormmaxc                 C   s   t dddd�d | _d S rL  rÿ  rE   r"   r"   r#   r   ›  s    z"TestYeojohnsonNormmax.setup_methodc                 C   s   t  | j¡}t|ddd� d S )Ngß—ª´þ?rV  r/   )r   Úyeojohnson_normmaxrI   r   rP  r"   r"   r#   rT  ž  s    zTestYeojohnsonNormmax.test_mlec                 C   sD   ddddddddd	d
dddddg}t  |¡}tj|ddd�s@t‚d S )Ngffffff@gÍÌÌÌÌÌ Àr   rø  gffffffæ?g333333@rÿ  gffffff@gÍÌÌÌÌÌü?gÍÌÌÌÌÌ@rý  rù  gš™™™™™"@rŸ  g      Àgáz®Gáô?rœ  r  )r   rq  r   Zallcloserå   )r=   rI   r   r"   r"   r#   Útest_darwin_example¢  s     ÿ
z)TestYeojohnsonNormmax.test_darwin_exampleN)rN   rO   rP   r   rT  rr  r"   r"   r"   r#   rp  š  s   rp  c                   @   sZ  e Zd Zej dejdfejdfej	dfg¡dd„ ƒZ
dd„ Zej d	ejejfejejfej	ejfg¡d
d„ ƒZdd„ Zdd„ Zdd„ Zej dejdfejdfej	dfg¡dd„ ƒZej dejejej	g¡dd„ ƒZej dejejej	g¡dd„ ƒZej dejejdddœfejejdddœfej	ejdddœfg¡d d!„ ƒZej dejd"e d#d$d%d&d'd(g¡e d)d*g¡dœfejd+e d,d-d-d.d/d/g¡ejd0 d1  e dd2g¡dœfej	d3e d4d5d5d6d7d7g¡e d8d9g¡dœfg¡d:d;„ ƒZej dejdfejdfej	dfg¡d<d=„ ƒZej dejejej	g¡d>d?„ ƒZej dejejej	g¡d@dA„ ƒZej dBdCdDd1dEdFdGejge dCdDd1dEdFdGejgdHdIdJdKejdLdMgg¡g¡ej dejejej	g¡dNdO„ ƒƒZej dBdCdDd1dEdFdGejge dCdDd1dEdFdGejgdHdIdJdKejdLdMgg¡g¡ej dejejej	g¡dPdQ„ ƒƒZ dRdS„ Z!dTdU„ Z"dVdW„ Z#dXS )YÚTestCircFuncsztest_func,expectedgA:wæÞvÅ?g @¦½pz?gE¶|ï2@c                 C   s0   t  ddddddg¡}t||dd�|d	d
� d S ©Néc  r_   r   r~  r´   é^  éh  ©rP  r‹  r/   ©r   r£   r   ©r=   Ú	test_funcrÕ  rI   r"   r"   r#   Útest_circfuncs²  s    zTestCircFuncs.test_circfuncsc              	   C   sš   t  dddddddg¡}| ¡ }tj|dd	�}t||d
d� |t j d  ¡ }|d }tj|dd	�}t||dd� | 	¡ }tj
|dd	�}t||dd� d S )Nr<  rN  r4  r0  é   g     €4@g3333333@rw  rx  r©   r/   rÃ  rø  r¢  )r   r£   r?   r   Úcircmeanr   Úpir@   ÚcircvarrA   Úcircstd)r=   rI   ÚM1ÚM2ÚV1ÚV2ÚS1ÚS2r"   r"   r#   Útest_circfuncs_smallº  s    z"TestCircFuncs.test_circfuncs_smallztest_func, numpy_funcc                 C   s<   t  dgd dgd  ¡}||ƒ}||ƒ}t||dd� d S )NgË›É¦v9À?r´   g³ÏuÂv9À?r‘   g:Œ0âŽyU>r  ry  )r=   r{  Z
numpy_funcrI   Zcircstatri  r"   r"   r#   Útest_circfuncs_closeË  s    z"TestCircFuncs.test_circfuncs_closec              
      sÚ   t  ddddddgddd	d
ddgddddd	dgg¡‰ tjˆ dd�}tjˆ  ¡ dd�}t||dd� tjˆ ddd�}‡ fdd„tˆ jd ƒD ƒ}t||dd� tjˆ ddd�}‡ fdd„tˆ jd ƒD ƒ}t||dd� d S )Nru  r_   r   r~  r´   rv  é_  r)   r^   é`  r'   é]  ée  r*   éf  éd  rw  rx  r.   r/   r   ©rP  r;  c                    s   g | ]}t jˆ | d d�‘qS ©rw  rx  ©r   r~  ©r[   rL   ©rI   r"   r#   r\   ß  s     z4TestCircFuncs.test_circmean_axis.<locals>.<listcomp>r   c                    s&   g | ]}t jˆ d d …|f dd�‘qS ©Nrw  rx  r’  r“  r”  r"   r#   r\   ã  s     )r   r£   r   r~  Úravelr   rt  rƒ  )r=   r‚  rƒ  r"   r”  r#   Útest_circmean_axisÖ  s    þz TestCircFuncs.test_circmean_axisc              
      sÚ   t  ddddddgddd	d
ddgddddd	dgg¡‰ tjˆ dd�}tjˆ  ¡ dd�}t||dd� tjˆ ddd�}‡ fdd„tˆ jd ƒD ƒ}t||dd� tjˆ ddd�}‡ fdd„tˆ jd ƒD ƒ}t||dd� d S )Nru  r_   r   r~  r´   rv  rŠ  r)   r^   r‹  r'   rŒ  r�  r*   rŽ  r�  rw  rx  ç•dyáý¥=r/   r   r�  c                    s   g | ]}t jˆ | d d�‘qS r‘  ©r   r€  r“  r”  r"   r#   r\   ð  s     z3TestCircFuncs.test_circvar_axis.<locals>.<listcomp>r   c                    s&   g | ]}t jˆ d d …|f dd�‘qS r•  r™  r“  r”  r"   r#   r\   ô  s     )r   r£   r   r€  r–  r   rt  rƒ  )r=   r„  r…  r"   r”  r#   Útest_circvar_axisæ  s    þzTestCircFuncs.test_circvar_axisc              
      sÚ   t  ddddddgddd	d
ddgddddd	dgg¡‰ tjˆ dd�}tjˆ  ¡ dd�}t||dd� tjˆ ddd�}‡ fdd„tˆ jd ƒD ƒ}t||dd� tjˆ ddd�}‡ fdd„tˆ jd ƒD ƒ}t||dd� d S )Nru  r_   r   r~  r´   rv  rŠ  r)   r^   r‹  r'   rŒ  r�  r*   rŽ  r�  rw  rx  r˜  r/   r   r�  c                    s   g | ]}t jˆ | d d�‘qS r‘  ©r   r�  r“  r”  r"   r#   r\   	  s     z3TestCircFuncs.test_circstd_axis.<locals>.<listcomp>r   c                    s&   g | ]}t jˆ d d …|f dd�‘qS r•  r›  r“  r”  r"   r#   r\   	  s     )r   r£   r   r�  r–  r   rt  rƒ  )r=   r†  r‡  r"   r”  r#   Útest_circstd_axis÷  s    þzTestCircFuncs.test_circstd_axisc                 C   s*   ddddddg}t ||dd�|d	d
� d S rt  )r   rz  r"   r"   r#   Útest_circfuncs_array_like	  s    z'TestCircFuncs.test_circfuncs_array_liker{  c                 C   s   t t |g ƒ¡ƒ d S r   )r   r   r(  )r=   r{  r"   r"   r#   r®  	  s    zTestCircFuncs.test_emptyc                 C   s.   ddddddt jg}tt  ||dd�¡ƒ d S )	Nru  r_   r   r~  r´   rv  rw  rx  ©r   r§   r   r(  ©r=   r{  rI   r"   r"   r#   Útest_nan_propagate	  s    z TestCircFuncs.test_nan_propagategÈû£5§:v@gfôPbÒ?rë  geƒe?g€OQõO·v?gˆºÍ#˜q@g×auy­+@c                 C   s°   t  dddddddgdd	d
dddt jgdt jt jt jt jt jt jgg¡}| ¡ D ]Z}||d|d�}|d krztt  |¡ƒ qPt|d || dd� tt  |dd … ¡ ¡ ƒ qPd S )Nru  r_   r   r~  r´   rv  r   rŠ  r)   r^   r‹  r'   rŒ  rw  r�  r   r‹  r/   )r   r£   r§   Úkeysr   r(  r   rÁ   ©r=   r{  rÕ  rI   r;  Úoutr"   r"   r#   Útest_nan_propagate_array	  s    
þz&TestCircFuncs.test_nan_propagate_arraygrßQ¯vv@g     v@rü  rù  g     8v@rË  g     Øu@g5@ïÞvÅ?g2>ŠB¤jv@gÀ»×G2�?gaFÂ+ÿÿ?gò”z»Êÿß?gA áÅ~@g¢²”òÿ¿?rÃ  r   gþÇXÊÒ„?gJPmü$Ã@gš§¥j  @g«ƒ“Ÿ ð?g)h;@g†{á¥ à?gunÁï2@g+Ûf®üa @c                 C   s¶   t  ddddddt jgddd	d
ddt jgt jt jt jt jt jt jt jgg¡}| ¡ D ]\}||dd|d�}|d kr„t||| dd� qTt|d d… || dd� tt  |d ¡ƒ qTd S )Nru  r_   r   r~  r´   rv  rŠ  r)   r^   r‹  r'   rŒ  rw  Úomit)rP  Ú
nan_policyr;  r‹  r/   r²   )r   r£   r§   r¡  r   r   r(  r¢  r"   r"   r#   Útest_nan_omit_array0	  s    þz!TestCircFuncs.test_nan_omit_arrayc                 C   s0   ddddddt jg}t||ddd	�|d
d� d S )Nru  r_   r   r~  r´   rv  rw  r¥  ©rP  r¦  r‹  r/   )r   r§   r   rz  r"   r"   r#   Útest_nan_omitO	  s
     ÿzTestCircFuncs.test_nan_omitc                 C   s2   t jt jt jt jt jg}tt  ||dd�¡ƒ d S )Nr¥  ©r¦  rž  rŸ  r"   r"   r#   Útest_nan_omit_allX	  s    zTestCircFuncs.test_nan_omit_allc                 C   sj   t  t jt jt jt jt jgt jt jt jt jt jgg¡}||ddd�}tt  |¡ ¡ ƒ tt|ƒdkƒ d S )Nr¥  r   )r¦  r;  r   )r   r£   r§   r   r(  rÁ   rÆ   )r=   r{  rI   r£  r"   r"   r#   Útest_nan_omit_all_axis^	  s    ÿz$TestCircFuncs.test_nan_omit_all_axisrI   ru  r_   r~  r´   rv  rŠ  r)   r^   r‹  r'   rŒ  c                 C   s   t t||ddd� d S )Nrw  Úraiser¨  ©rC   rD   rŸ  r"   r"   r#   Útest_nan_raiseg	  s    zTestCircFuncs.test_nan_raisec                 C   s   t t||ddd� d S )Nrw  Úfoobarr¨  r®  rŸ  r"   r"   r#   Útest_bad_nan_policyp	  s    z!TestCircFuncs.test_bad_nan_policyc                 C   s$   d}|}t  |¡}t||dd� d S )Nr   r©   r/   )r   r~  r   )r=   rI   r‚  rƒ  r"   r"   r#   Útest_circmean_scalary	  s    
z"TestCircFuncs.test_circmean_scalarc                 C   s@   t  t ddd¡tjtj ¡}t|tjk ƒ t|tj kƒ d S )Nr   r   r  )r   r~  r   rH   r  r   )r=   Úmr"   r"   r#   Útest_circmean_range	  s    z!TestCircFuncs.test_circmean_rangec                 C   sZ   t jddgdd�}ttj|dd�dƒ ttj|dd�dd	d
� ttj|dd�dd	d
� d S )Né–   r´   ro  r¡   rÃ  rx  g     @e@gLw¶qAòÍ?r‹  r/   g)#p_ê4@)r   r£   r	   r   r~  r   r€  r�  r¦   r"   r"   r#   Útest_circfuncs_uint8†	  s    z"TestCircFuncs.test_circfuncs_uint8N)$rN   rO   rP   ré   rê   rë   r   r~  r€  r�  r|  rˆ  r   r?   r@   rA   r‰  r—  rš  rœ  r�  r®  r   r§   r¤  r£   r  r§  r©  r«  r¬  r¯  r±  r²  r´  r¶  r"   r"   r"   r#   rs  «  sú   þÿ



þÿ
þÿ
ÿ
ÿ
ÿþÿÿúÿ	
ÿýÿ
  ÿþÿüÿ
 þüÿôÿ
þÿ
ÿ
ÿ
ÿÿÿÿÿÿÿÿrs  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ej dddg¡dd„ ƒZdS )ÚTestMedianTestc                 C   s   t ttjdddgƒ d S r  ©rC   rD   r   Úmedian_testrE   r"   r"   r#   Útest_bad_n_samples‘	  s    z!TestMedianTest.test_bad_n_samplesc                 C   s   t ttjg dddgƒ d S r  r¸  rE   r"   r"   r#   r­  •	  s    z TestMedianTest.test_empty_samplec                 C   s,   t ttjddddgdddgddgdd� d S )Nr   r   r   rÀ   ©Ztiesr¸  rE   r"   r"   r#   Útest_empty_when_ties_ignored™	  s    
   ÿz+TestMedianTest.test_empty_when_ties_ignoredc                 C   s@   t ttjdddgdddgƒ t ttjdddgdddgdd� d S )Nr   Úabover»  r¸  rE   r"   r"   r#   Útest_empty_contingency_row¡	  s    ÿz)TestMedianTest.test_empty_contingency_rowc                 C   s"   t ttjdddgddgdd� d S )Nr   r   r]   r^   r_   rÆ  r»  r¸  rE   r"   r"   r#   Útest_bad_ties­	  s    ÿzTestMedianTest.test_bad_tiesc                 C   s"   t ttjdddgddgdd� d S )Nr   r   r]   r^   r_   r°  rª  r¸  rE   r"   r"   r#   r±  ±	  s    z"TestMedianTest.test_bad_nan_policyc                 C   s"   t ttjdddgddgdd� d S )Nr   r   r]   r^   r_   rÆ  )rÆ  )rC   r  r   r¹  rE   r"   r"   r#   r  ´	  s    ÿzTestMedianTest.test_bad_keywordc                 C   s`   dddg}dddg}t  ||¡\}}}}t|dƒ t|ddgddggƒ t|dƒ t|dƒ d S )Nr   r   r]   rø  r   )r   r¹  r	   r   )r=   rI   r±  rÜ  r  ZmedÚtblr"   r"   r#   Útest_simple¸	  s    



zTestMedianTest.test_simplec                 C   sØ   ddddg}ddg}ddd	g}t  |||¡\}}}}t|dƒ t|d
ddgddd
ggƒ t j|||dd�\}}}}t|dƒ t|d
ddgdd
d
ggƒ t j|||dd�\}}}}t|dƒ t|d
ddgdd
d
ggƒ d S )Nr   r   r]   r^   r_   r&   r)   r*   r'   r   rÀ   r»  r½  )r   r¹  r	   )r=   rI   r±  ÚzrÜ  r  r³  rÀ  r"   r"   r#   Útest_ties_optionsÇ	  s    



z TestMedianTest.test_ties_optionsc                 C   s¨   ddt jg}dddg}tj||dd�}tj||dd�\}}}}t|t jt jt jd fƒ t|d	ƒ t|d
ƒ t|dƒ t|t  ddgddgg¡ƒ tttj||dd� d S )Nr   r   r^   r_   r&   Ú	propagaterª  r¥  g     Ô?gØ¥vaÒoâ?rú  r   r­  )	r   r§   r   r¹  r	   r   r£   rC   rD   )r=   rI   r±  Zmt1rÌ   r  r³  rœ  r"   r"   r#   Útest_nan_policy_optionsÛ	  s    



z&TestMedianTest.test_nan_policy_optionsc                 C   s<  dddddg}ddddg}t  ||¡\}}}}t|dƒ t|ddgddggƒ t  |¡\}}}	}
t||ƒ t||ƒ t j||dd	�\}}}}t|dƒ t|ddgddggƒ t j|dd	�\}}}	}
t||ƒ t||ƒ t j||d
d�\}}}}t|dƒ t|ddgddggƒ t j|d
d�\}}}	}
t||ƒ t||ƒ d S )Nr   r   r]   r^   r_   r&   r*   r   )Zlambda_F©rÒ  )r   r¹  r	   Zchi2_contingencyr   )r=   rI   r±  rÜ  r  r³  rÀ  Zexp_statZexp_pZdofÚer"   r"   r#   rB   è	  s(    







zTestMedianTest.test_basicrÒ  FTc                 C   sB   dddg}dddg}t j|||d�}t|j|j|j|jf|ƒ d S )Nr   r   r]   rÆ  )r   r¹  r	   r:   r˜   r  Útable)r=   rÒ  rI   r±  rK   r"   r"   r#   r�  
  s    

zTestMedianTest.test_resultN)rN   rO   rP   rº  r­  r¼  r¾  r¿  r±  r  rÁ  rÃ  rÅ  rB   ré   rê   rë   r�  r"   r"   r"   r#   r·  �	  s   r·  c                   @   sz   e Zd Zdd„ Zej dej d ejd gdfddej gdfg¡dd	„ ƒZ	d
d„ Z
dd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTestDirectionalStatsc                 C   s¼   t  t  ddddddddd	g	¡¡ }t  t  d
ddddddddg	¡¡ }t jt  |¡t  |¡ t  |¡t  |¡ t  |¡fdd�}t |¡}|j}t  	|d¡}t  dddg¡}t
||ƒ d S )Ng33333su@g      O@g33333sB@g      ;@g     pv@gÍÌÌÌÌÌ@g333333I@gš™™™™Yv@r  gfffff†P@gÍÌÌÌÌ,Q@gfffff†Q@gfffff†T@g     àS@g     @R@g33333SQ@gffffffM@g33333³I@r   r:  r^   gðHPüÓ?g&S£’:Á¿g[±¿ìž<î¿)r   Zdeg2radr£   ÚstackÚcosÚsinr   Údirectional_statsÚmean_directionrY  r   )r=   ÚdeclZinclr>   ÚdirstatsÚdirectional_meanZmean_roundedZreference_meanr"   r"   r#   Ú"test_directional_stats_correctness
  s.       ÿ
   ÿ
þý
z7TestDirectionalStats.test_directional_stats_correctnesszangles, refr   r   r   rÄ   c                 C   sL   t |ƒr||ƒ}tjt |¡t |¡gdd�}dt |¡j }t||ƒ d S )Nr   r:  )	Úcallabler   rÊ  rË  rÌ  r   rÍ  Úmean_resultant_lengthr   )r=   Zanglesr¬   r>   rK   r"   r"   r#   Ú'test_directional_stats_2d_special_cases&
  s
    z<TestDirectionalStats.test_directional_stats_2d_special_casesc           
      C   s¦   t j d¡}dt j | d¡ }t jt  |¡t  |¡fdd�}t |¡}|j	}t  
|d |d ¡}|dt j  }t |¡}t||ƒ d|j }t |¡}	t||	ƒ d S )Nl	   }Ã7çQ×hà0P4u&4Mì r   )rß   r   r:  r   )r   rá   râ   r  rÊ  rË  rÌ  r   rÍ  rÎ  Zarctan2r~  r   rÔ  r€  )
r=   ræ   ZtestdataZtestdata_vectorrÐ  rÑ  Zdirectional_mean_angler~  Zdirectional_varZcircular_varr"   r"   r#   Útest_directional_stats_2d1
  s$    ÿþ

ÿ



z.TestDirectionalStats.test_directional_stats_2dc                 C   sr   t  dddgdddgg¡}t  |d¡}t  dddgdddggdddgdddggg¡}tj|dd�}t||jƒ d S )	Nç‘+Pæz¶ë?r�  rÄ   ç      à¿)r   r   r   r   r   r   r:  )r   r£   Ztiler   rÍ  r   rÎ  )r=   r>   Z
full_arrayrÕ  rÐ  r"   r"   r#   Ú test_directional_mean_higher_dimE
  s    ÿÿÿþz5TestDirectionalStats.test_directional_mean_higher_dimc                 C   sR   dddgdddgg}t  |¡}t |¡}t |¡}t|j|jƒ t|j|jƒ d S )Nr×  r�  rÄ   rØ  r   )r   ri  r   rÍ  r   rÎ  rÔ  )r=   r>   Z
data_arrayrK   r¬   r"   r"   r#   Ú)test_directional_stats_list_ndarray_inputR
  s    


ÿz>TestDirectionalStats.test_directional_stats_list_ndarray_inputc              	   C   s<   t  d¡}d}tjtt |¡d�� t |¡ W 5 Q R X d S )N)r_   zIsamples must at least be two-dimensional. Instead samples has shape: (5,)rÄ  )	r   r¸   ré   r   rD   ÚreÚescaper   rÍ  )r=   r>   r›  r"   r"   r#   Útest_directional_stats_1d_error\
  s    
z4TestDirectionalStats.test_directional_stats_1d_errorc                 C   sl   t  dddgdddgg¡}tj|dd�}|t jj|ddd	� }tj|d
d�}t|j|jƒ t|j|jƒ d S )Nr×  r�  rÄ   g‘+Pæz¶û?g      ð¿T)Ú	normalizer²   )r;  ZkeepdimsF)	r   r£   r   rÍ  rj  r™   r   rÎ  rÔ  )r=   r>   rK   Znormalized_datar¬   r"   r"   r#   Ú test_directional_stats_normalized
  s    ÿÿÿÿz5TestDirectionalStats.test_directional_stats_normalizeN)rN   rO   rP   rÒ  ré   rê   rë   r   r  rÕ  rÖ  rÙ  rÚ  rÝ  rß  r"   r"   r"   r#   rÉ  
  s   þ

rÉ  )Rr`   r)  Únumpyr   Znumpy.randomr   Znumpy.testingr   r   r   r   r   r   r	   r
   ré   r   rC   rÛ  Zscipyr   r   Zscipy.stats._morestatsr   Zcommon_testsr   Z
_hypotestsr   r   Zscipy.stats._binomtestr   Zscipy.stats._distr_paramsr   ÚdictZ
matplotlibZrcParamsZmatplotlib.pyplotZpyplotr¦  r±  Ú	ExceptionrÚ  rÛ  rÜ  rÝ  rÞ  rß  rà  rá  râ  rã  r$   r%   rQ   re   r®   rì   r®  rÙ  rì  r  r1  rg  ry  rz  rŽ  r²  rî  rú  rü  r  r  r4  r*  rK  r\  r^  r`  rp  rs  r·  rÉ  r"   r"   r"   r#   Ú<module>   sÈ  (

!kd I E= WD .^ U6%)                                                                                                                                                                                                                                                                                                                                                                               Ñ2uH# e 