o
    Ö­j‡( ã                   @   sº  d dl Z d dlZd dlZd dlmZ d dlZd dlmZ d dl	m
Z
mZmZmZmZmZmZmZ d dlZd dlmZ d dlZd dlmZmZmZ d dlmZmZmZ dd	lmZ d
dl m!Z!m"Z" d dl#m$Z$ d dl%m&Z& d dl'm(Z(m)Z)m*Z*m+Z+ d dl,m-Z- d dl.m/Z/m0Z0 d dl1m2Z2m3Z3m4Z4 ej5j6Z6e7e&ƒZ&zd dl8Z8de8j9d< d dl:m;Z< dZ=W n e>y¶   dZ=Y nw g d¢Z?g d¢Z@g d¢ZAg d¢ZBg d¢ZCg d¢ZDg d¢ZEg d¢ZFg d¢ZGg d¢ZHd 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-ƒZOe-G d.d/„ d/ƒƒZPG d0d1„ d1ƒZQG d2d3„ d3ƒZRG d4d5„ d5ƒZSd6d7„ ZTG d8d9„ d9ƒZUG d:d;„ d;ƒZVG d<d=„ d=ƒZWg d>¢ZXe-G d?d@„ d@ƒƒZYe-G dAdB„ dBƒƒZZG dCdD„ dDƒZ[G dEdF„ dFƒZ\e6dGdHdI�ej5 ]dJ¡e-G dKdL„ dLƒƒƒƒZ^g dM¢Z_G dNdO„ dOƒZ`G dPdQ„ dQƒZaG dRdS„ dSƒZbG dTdU„ dUƒZcG dVdW„ dWƒZdG dXdY„ dYƒZee-G dZd[„ d[ƒƒZfG d\d]„ d]ƒZgG d^d_„ d_ƒZhe-G d`da„ daƒƒZiG dbdc„ dcƒZje-G ddde„ deƒƒZkdS )fé    N)Úpartial)ÚRandomState)Úassert_array_equalÚassert_almost_equalÚassert_array_lessÚassert_array_almost_equalÚassert_Úassert_allcloseÚassert_equalÚsuppress_warnings)Úraises)ÚoptimizeÚstatsÚspecial)Ú
_abw_stateÚ_get_As_weibullÚ_Avals_weibullé   )Úcheck_named_resultsé   )Ú_get_wilcoxon_distrÚ_get_wilcoxon_distr2)Ú_binary_search_for_binom_tst)Údistcont)ÚSmallSampleWarningÚtoo_small_nd_omitÚtoo_small_1d_omitÚtoo_small_1d_not_omit)Úarray_api_compatible)Úarray_namespaceÚis_numpy)Úxp_assert_closeÚxp_assert_equalÚxp_assert_lessÚAggÚbackendTF)
çj¼t“ð?ç¬Zd;ßï?çV-²�ïï?ç      ð?gX9´Èv¾ï?ç-²�ï§Æï?çÕxé&1ð?ç+‡ÙÎ÷ï?ç+‡ÙÎï?r)   )
r(   r&   r)   r+   ç�•C‹lçï?r(   r'   r)   r&   çV-²�ï?)
çƒÀÊ¡E¶ï?g/Ý$�•ï?r.   r,   ç×£p=
×ï?r-   r)   r,   r'   r'   )
g®Gázð?r+   r-   r)   r1   r-   r(   r'   r+   r'   )
r(   r(   g�•C‹lï?ç®Gáz®ï?r+   ç°rh‘í|ï?r'   r*   g\�Âõ(\ï?r'   )
ç¾Ÿ/Ý$ð?gh‘í|?5ð?r4   r.   r/   r+   r1   r(   g1¬Zdï?r'   )
r2   çªñÒMbð?r'   gj¼t“ð?r(   r)   g}?5^ºIð?g)\�Âõ(ð?r'   r+   )
r(   r)   r&   r)   r+   r'   r(   r'   r+   r&   )
r+   r(   r'   r1   r'   r5   r5   r(   r,   r0   )
r0   r1   r3   r-   r.   r.   r0   r(   r5   r.   c                  O   s   t  tjj| i |¤Ž¡S ©N)ÚnpÚlogr   ÚgammaÚrvs)ÚargsÚkwargs© r=   ú]/var/www/html/CropPilot/venv/lib/python3.10/site-packages/scipy/stats/tests/test_morestats.pyÚ_old_loggamma_rvsD   ó   r?   c                   @   ó$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestBayes_mvsc                 C   st   g d¢}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©é   é	   é   é   é   rH   é   ç      "@©gUR¯H#j@gÔV¨[îÊ%@ç�íµ ÷Æ°>©Úrtolç      $@©g¹‡aîi	@gÕÃ×Ó‡u8@ç•Ö&è.>ç_ç´«Ç@é   ©Údecimal©gYÞðƒs„ü?g–¡ì1OÈ@ç›+¡†›„=)r   Ú	bayes_mvsr   Ú	statisticr	   Úminmax©ÚselfÚdataÚmeanÚvarÚstdr=   r=   r>   Ú
test_basicI   s   ÿÿ
ÿzTestBayes_mvs.test_basicc                 C   ó   t ttjg ƒ d S r6   )Úassert_raisesÚ
ValueErrorr   rX   ©r\   r=   r=   r>   Útest_empty_input[   ó   zTestBayes_mvs.test_empty_inputc                 C   s0   t  d¡}d}t |¡}|D ]}t||ƒ qd S )Né   )rY   rZ   )r7   Úaranger   rX   r   )r\   ÚxÚ
attributesÚresÚir=   r=   r>   Útest_result_attributes^   s   

ÿz$TestBayes_mvs.test_result_attributesN)Ú__name__Ú
__module__Ú__qualname__ra   rf   rn   r=   r=   r=   r>   rB   H   s    rB   c                   @   ó,   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	S )
ÚTestMvsdistc                 C   s†   g d¢}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 )NrC   rJ   çÍÌÌÌÌÌì?rK   rW   rM   rO   rP   rQ   rR   rS   rT   rV   )r   Úmvsdistr   r^   r	   Úintervalr[   r=   r=   r>   ra   h   s   ÿÿ
ÿzTestMvsdist.test_basicc                 C   rb   r6   ©rc   rd   r   ru   re   r=   r=   r>   rf   w   rg   zTestMvsdist.test_empty_inputc                 C   s   dg}t ttj|ƒ d S ©Nr   rw   ©r\   r]   r=   r=   r>   Útest_bad_argz   s   zTestMvsdist.test_bad_argc                 C   sj   t  ¡ �' t  dt¡ dd„ t g d¢¡D ƒ dd„ t g d¢¡D ƒ W d   ƒ d S 1 s.w   Y  d S )NÚerrorc                 S   ó   g | ]}|  ¡ ‘qS r=   ©r^   ©Ú.0rj   r=   r=   r>   Ú
<listcomp>„   ó    z*TestMvsdist.test_warns.<locals>.<listcomp>©r   r   é   c                 S   r|   r=   r}   r~   r=   r=   r>   r€   …   r�   ©r   r   rƒ   é   é   )ÚwarningsÚcatch_warningsÚsimplefilterÚRuntimeWarningr   ru   re   r=   r=   r>   Ú
test_warns   s
   
"ýzTestMvsdist.test_warnsN)ro   rp   rq   ra   rf   rz   r‹   r=   r=   r=   r>   rs   g   s
    rs   c                   @   sV   e Zd Zdd„ Zdd„ Zej dg dgddgf¡dd	„ ƒZd
d„ Z	dd„ Z
dd„ ZdS )ÚTestShapiroc           
      C   sˆ  g d¢}t  |¡\}}t  |¡}t|ddd� t|jddd� t|ddd� t|jddd� g d¢}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	ddd�}t  |¡\}}t  |¡}t|ddd� t|jddd� t|dd	d� t|jdd	d� g d¢}d}d}	t  |¡\}}t  |¡}t||dd� t|j|dd� t||	d
d� t|j|	d
d� d S )N)ç)\�Âõ(¼?ç{®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=
×£@ç   À¬Ðì?rD   rT   ç   €ÉŒ¥?)çÃõ(\�Âõ?ç=
×£p=ò?ç\�Âõ(\@çffffff@ç\�Âõ(\÷?çö(\�Âõð?ç®Gáz@çÃõ(\�Âñ¿ç×£p=
×@çš™™™™™ñ?ç)\�Âõ(ì?çR¸…ëQà¿r§   ç¤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^ú?r±   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   rY   ÚpvalueÚnormr:   )
r\   Úx1ÚwÚpwÚshapiro_testÚx2Úx3Úx4Ú
W_expectedÚ
p_expectedr=   r=   r>   ra   ‰   s<   



zTestShapiro.test_basicc                 C   sÌ   g d¢g d¢g}t  |¡\}}t  |¡}t|ddd� t|jddd� t|ddd� t|jddd� g d¢g d¢g}t  |¡\}}t  |¡}t|d	dd� t|jd	dd� t|d
dd� t|jd
dd� d S )N)
r�   rŽ   r�   r�   r‘   r’   r“   r”   r•   r–   )
r—   r˜   r™   rš   r›   rœ   r�   rž   rŸ   r    r¡   rD   rT   r¢   )
r£   r¤   r¥   r¦   r§   r¨   r©   rª   r«   r¬   )
r­   r®   r§   r¯   r°   r±   r²   r³   r´   rµ   r¶   r·   rƒ   )r   r¾   r   rY   r¿   )r\   rÁ   rÂ   rÃ   rÄ   rÅ   r=   r=   r>   Útest_2d´   s$   ÿ
ÿ
zTestShapiro.test_2drj   r   r   c                 C   sZ   t jttd�� t |¡}t|jtj	ƒ t|j
tj	ƒ W d   ƒ d S 1 s&w   Y  d S ©N©Úmatch)ÚpytestÚwarnsr   r   r   r¾   r
   rY   r7   Únanr¿   ©r\   rj   rl   r=   r=   r>   Útest_not_enough_valuesÉ   ó
   
"ýz"TestShapiro.test_not_enough_valuesc                 C   sd   t  d¡}t j|d< t |¡\}}t |¡}t|t jƒ t|jt jƒ t|t jƒ t|jt jƒ d S )NrO   rE   )	r7   ri   rÐ   r   r¾   r
   rY   r   r¿   )r\   rj   rÂ   rÃ   rÄ   r=   r=   r>   Útest_nan_inputÐ   s   


zTestShapiro.test_nan_inputc                 C   s2   t  g d¢¡\}}t  |¡}d}t||dd� d S )N)i„Þ i = i@¯ )gPƒãq~«ë?g»FªôÑ?çñhãˆµøä>rM   )r   Úboxcoxr¾   r	   )r\   Ú	trans_valÚmaxlogrl   Úrefr=   r=   r>   Útest_gh14462Þ   s   
zTestShapiro.test_gh14462c                 C   sN   t  g d¢¡}|jdksJ ‚g d¢}t  |¡}t|jdƒ t|jddd� d S )N)gï9úþB.æ?ç        rÛ   r   )g1èÊè¿gò¡IáêÍÛ¿g0í°!ý?gÄr?ë?gel�Í?rL   rM   )r   r¾   r¿   r	   rY   )r\   rl   rj   r=   r=   r>   Útest_length_3_gh18322ï   s   
z!TestShapiro.test_length_3_gh18322N)ro   rp   rq   ra   rÊ   rÎ   ÚmarkÚparametrizerÒ   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ej dg d¢¡dd„ ƒZ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   r7   Ú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 d   ƒ n1 s<w   Y  t||d kƒ d S )	Nrà   rá   râ   Úexponrä   Úignore©Úallrã   )	r   ræ   rç   r   rè   r   r7   Ú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Û   r   Úgumbelr   r   rã   )r7   ré   r   rè   ÚlenÚgumbel_lÚfitÚlogcdfÚlogsfri   r^   r	   )r\   rî   Úa2rì   rí   ÚnÚxbarÚsrú   rû   rm   Úexpected_a2r=   r=   r>   Útest_gumbel"  s   
*zTestAnderson.test_gumbelc                 C   ó   t ttjdgdd� d S ©Nr   Úplate_of_shrimp©Údist)rc   rd   r   rè   re   r=   r=   r>   rz   2  r@   zTestAnderson.test_bad_argc                 C   s0   t dƒ}|jdd�}t |¡}d}t||ƒ d S )Nrà   rá   râ   ©rY   Úcritical_valuesÚsignificance_level)r   ræ   r   rè   r   )r\   rê   rj   rl   rk   r=   r=   r>   rn   5  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ê   rj   Ú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ö   r7   ré   r   rè   r   r   )
r\   rê   rÁ   rÅ   r
  r  r  r  r  r  r=   r=   r>   Útest_gumbel_rF  s   
zTestAnderson.test_gumbel_rc           
      C   sÆ   t  g d¢¡}t |d¡}|jj\}}}t|||fddd� t|jddd� |j|jd k s0J ‚d	| }t|d
dd� t	d }t	d }||d d ||   }	t  
|j|	k¡sYJ ‚t|j|	dd� d S )N)
éá   é«   éÆ   é½   r  é‡   é¢   r  éu   r  Úweibull_min)g
×£p=
@gáz®GÁX@g…ëQ¸ŽS@çü©ñÒMb`?rM   g¤p=
×£Ð?çü©ñÒMbP?r   r   g›äšäÚ?éýÿÿÿrä   çš™™™™™Ù?g˜™™™™™©?©Úatol)r7   Úarrayr   rè   Ú
fit_resultÚparamsr	   rY   r  r   ró   )
r\   rj   rl   Úmrº   r»   ÚcÚAs40ÚAs45ÚAs_refr=   r=   r>   Útest_weibull_min_case_AU  s   z$TestAnderson.test_weibull_min_case_Ac                 C   sR   t  g d¢¡}d}tjt|d�� t |d¡ W d   ƒ d S 1 s"w   Y  d S )N)éJ   é9   é0   é   éö  rF   éF   é   r-  é‚  é;   é   é™   é   iF  z/Maximum likelihood estimation has converged to rÌ   r  )r7   r!  rÎ   r   rd   r   rè   )r\   rj   Úmessager=   r=   r>   Útest_weibull_min_case_Bh  s
   "ÿz$TestAnderson.test_weibull_min_case_Bc              	   C   sž   t  g d¢¡ }d}d}tjt|d�}tjt|d�}|�) |� t |d¡ W d   ƒ n1 s0w   Y  W d   ƒ d S W d   ƒ d S 1 sHw   Y  d S )N)	r  éK   r+  é¨   ék   rF   é=   é+   r-  z:Critical values of the test statistic are given for the...z;An error occurred while fitting the Weibull distribution...rÌ   r  )	r7   r!  rÎ   rÏ   ÚUserWarningr   rd   r   rè   )r\   rj   ÚwmessageÚemessageÚwcontextÚecontextr=   r=   r>   Útest_weibull_warning_errorp  s   Pÿz'TestAnderson.test_weibull_warning_errorÚdistname)rÀ   rð   rø   Úextreme1rö   r  Úlogisticr  c                 C   s\   t j d¡}|dv rdn|}tt|ƒ}t| }|j|d|dœŽ}t ||¡}|jj	s,J ‚d S )Nl   'DaÞh¶$>   rö   rD  rø   éè  ©r¼   r½   )
r7   ÚrandomÚdefault_rngÚgetattrr   r   r:   rè   r"  Úsuccess)r\   rC  ÚrngÚreal_distnamer  r#  rj   rl   r=   r=   r>   Útest_anderson_fit_params{  s   ÿ
z%TestAnderson.test_anderson_fit_paramsc                 C   s:   d}t td| ƒtd ƒ tj}t td| ƒtd ƒ d S )Nr   rã   r   )r
   r   r   r7   Úinf)r\   r$  r=   r=   r>   Útest_anderson_weibull_As‰  s   z%TestAnderson.test_anderson_weibull_AsN)ro   rp   rq   rï   rõ   r  rz   rn   r  r  r)  r7  rB  rÎ   rÝ   rÞ   rN  rP  r=   r=   r=   r>   rß      s     

ÿ
rß   c                   @   s\   e Zd Zdd„ Zdd„ Zejjdd„ ƒZdd„ Z	d	d
„ Z
dd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTestAndersonKSampc                 C   s„   g d¢}t  g d¢¡}t  g d¢¡}t  g d¢¡}tj||||fdd�\}}}t|ddƒ tg d	¢|d
d… dƒ t|ddd� d S )N©gš™™™™YC@g     ÀD@gfffffæE@g     @F@g     ÀF@g      G@gš™™™™ÙG@g      M@©gš™™™™™C@gfffff¦C@gš™™™™ÙC@g33333³D@gfffffæD@g33333sE@gfffff¦E@gfffffæF@©ç      A@g     €A@g     €C@g      D@ç     €E@rV  ç      F@g     €F@©rU  çffffffA@rY  g33333³A@gš™™™™™B@gfffffæB@gš™™™™™D@gffffffE@F©Úmidrankg²�ï§ÆË@rƒ   ©g�•C‹lçß?gvqà-õ?g,Ôšæ§þ?g‹lçû©ñ@gò°Pkš÷	@r   r†   r…   gŒJê4a?çü©ñÒMb0?r  ©r7   r!  r   Úanderson_ksampr   r   r	   ©r\   Út1Út2Út3Út4ÚTkÚtmÚpr=   r=   r>   Útest_example1a‘  s   ÿz TestAndersonKSamp.test_example1ac                 C   sŠ   t  g d¢¡}t  g d¢¡}t  g d¢¡}t  g d¢¡}tj||||fdd�\}}}t|ddƒ tg d	¢|d
d… dƒ t|ddd� d S )NrR  rS  rT  rX  TrZ  gìQ¸…ë@rƒ   r\  r   r†   r…   r  r]  r  r^  r`  r=   r=   r>   Útest_example1b¢  s   ÿz TestAndersonKSamp.test_example1bc                 C   s,  g d¢}g d¢}g d¢}g d¢}g d¢}g d¢}g d¢}g d¢}g d	¢}	g d
¢}
g d¢}g d¢}g d¢}g d¢}|||||||||	|
||||f}t j|dd�\}}}t|ddƒ tg d¢|dd… dƒ t|ddd� tj d¡}t jd|d�}t j|d|d�}t	|j
|ƒ t	|j|ƒ t|j|dd� d S )N©éÂ   rh   é)   r-  é!   éµ   ©i�  rS   é:   é%   r¸   éA   rE   é©   i¿  é¸   é$   éÉ   év   ©
é"   é   é   r{  éC   r+  é>   rG   é   ry  ©éZ   rå   é<   éº   r;  é1   rS   é   é8   é   éO   éT   é,   r2  r-  rw  é   éœ   i6  éL   r5  r‰  é   r}  ©é‚   éÐ   r/  ée   r�  ©r*  r+  r,  r-  r.  rF   r/  r0  r-  r1  r2  r3  ©é7   i@  r…  éh   éÜ   éï   é/   éö   é°   é¶   rm  ©r�  i  éW   rG   éx   rS   r}  r˜  r  éG   r™  r0  é*   r†  r†   rF   rž  é   rƒ   rS   rŸ  r¡  rS   r¡  é   r€  r   r¢  é4   é_   ©éa   é3   r¡  r…   é�   r{  éŽ   éD   éM   éP   r   r¢  éj   éÎ   éR   é6   rz  éØ   é.   éo   é'   é?   r{  é¿   r{  é£   r„  ©rá   r‰  éf   éH   r~  r´  rƒ   rh   éÅ   é¼   r‡  éX   r²  r†   r†   ru  r~  é‹   éÒ   r¦  é   r�  rI   rS   ©	ég  rE   rF   i  i[  rƒ   r•  r   i¶  ©rá   éþ   r†   i  é#   rF   ©iç  r{  r¸   rG   éb   r†   éU   é[   r<  éæ   rƒ   r�  ©r¹  éÑ   rS   r+  r°  é    r|  r2  é†   é˜   r3  rS   rÊ  éB   r;  ry  FrZ  gçû©ñÒM
@rƒ   ©g^ºI+ã?g—ÿ�~û:õ?gÃÓ+eâü?géH.ÿ!ý@gcîZB>h@r   r†   r…   ç	ž^)Ëp?r]  r  l   Î<ÌIc i'  ©Ún_resamplesrL  )r[  Úmethodga2U0*©C?)r   r_  r   r   r	   r7   rH  rI  ÚPermutationMethodr   rY   r  r¿   )r\   ra  rb  rc  rd  Út5Út6Út7Út8Út9Út10Út11Út12Út13Út14Úsamplesre  rf  rg  rL  rÕ  rl   r=   r=   r>   Útest_example2a²  s6    ÿz TestAndersonKSamp.test_example2ac                 C   sÖ   g d¢}g d¢}g d¢}g d¢}g d¢}g d¢}g d¢}g d¢}g d	¢}	g d
¢}
g d¢}g d¢}g d¢}g d¢}t j|||||||||	|
||||fdd�\}}}t|ddƒ tg d¢|dd… dƒ t|ddd� d S )Nrj  ro  rx  r  rŽ  r’  r“  rœ  r¥  r¸  rÁ  rÃ  rÆ  rË  TrZ  g'1¬Z
@rƒ   rÑ  r   r†   r…   rÒ  r]  r  )r   r_  r   r   r	   )r\   ra  rb  rc  rd  r×  rØ  rÙ  rÚ  rÛ  rÜ  rÝ  rÞ  rß  rà  re  rf  rg  r=   r=   r>   Útest_example2bÙ  s0   ÿþÿz TestAndersonKSamp.test_example2bc                 C   s~  t  ddd¡}tƒ �}|jtdd� tj||d gdd�\}}}W d   ƒ n1 s*w   Y  t|dd	ƒ t|d
ƒ tƒ �}|jtdd� t ||d g¡\}}}W d   ƒ n1 s[w   Y  t|dd	ƒ t|d
ƒ tƒ �}|jtdd� tj||d gdd�\}}}W d   ƒ n1 sŽw   Y  t|ddƒ t|dƒ tƒ �}|jtdd� t ||d g¡\}}}W d   ƒ n1 s¿w   Y  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)r6  g     @D@FrZ  g=
×£p�D@rƒ   r  g®GázžD@zp-value cappedç      à?g?ÆÜµ„ô¿r…   ç      Ð?g?ÆÜµô¿ç      @gÿ!ýöuà÷?g×£p=
×³?ç{®Gázt?r   ©r   rN   rD   gÄB­iÞqä?gùé·¯Ç?ç      '@g£’:M@g46<½Rv?gü©ñÒMb@?g      +@g6«>W[1@g¾¤1ZGUS?ç-Cëâ6?)
r7   Úlinspacer   Úfilterr=  r   r_  r   r
   r	   )r\   rÁ   Úsuprÿ   Ú_rg  r=   r=   r>   Útest_R_kSamplesù  sJ   !þ
þ
þ
þ
z!TestAndersonKSamp.test_R_kSamplesc                 C   s   t ttjt d¡ƒ d S ©Nr†   ©rc   rd   r   r_  r7   ré   re   r=   r=   r>   Útest_not_enough_samplesI  r@   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_observationsL  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_sampleP  ó   z#TestAndersonKSamp.test_empty_samplec                 C   sH   g d¢}t  g d¢¡}tj||fdd�}d}t||ƒ t|j|jƒ d S )NrR  rS  FrZ  r  )r7   r!  r   r_  r   r
   r	  r¿   )r\   ra  rb  rl   rk   r=   r=   r>   rn   S  s   
z(TestAndersonKSamp.test_result_attributesN)ro   rp   rq   rh  ri  rÎ   rÝ   Úxslowrâ  rã  rï  rò  ró  rô  rn   r=   r=   r=   r>   rQ  �  s    
& PrQ  c                   @   sì   e Zd Zdd„ Zdd„ Zdd„ Zej dg dgfdgg fg¡d	d
„ ƒZ	dd„ Z
dd„ Zdd„ Zej dg d¢g d¢ddfg d¢g d¢ddfg d¢g d¢ddfg d¢g d¢ddfg d¢g d¢ddfg d¢g d¢ddfg¡dd„ ƒZdd „ Zd!S )"Ú
TestAnsaric                 C   sn   g d¢}g d¢}t ƒ �}| td¡ t ||¡\}}W d   ƒ n1 s$w   Y  t|ddƒ t|ddƒ d S )N©r   r   rƒ   rƒ   r…   ©rƒ   r   rD   r   rD   r   r…   r   ú%Ties preclude use of exact statistic.g     €7@r¡  g8è#¾oGÁ?)r   rì  r=  r   Úansarir   )r\   rj   Úyrí  ÚWÚpvalr=   r=   r>   Ú
test_smalla  s   þzTestAnsari.test_smallc                 C   sr   t  d¡}t  d¡}tƒ �}| td¡ t ||¡\}}W d   ƒ n1 s&w   Y  t|ddƒ t|ddƒ d S )N©r³  r:  r¸   éc   r¹  r­  ém   él   r•  r  r‘  é`   r¦  r¹  r:  éq   ét   r  én   rÇ  ©r:  r  r­  rÇ  éi   ég   r  r	  r•  r¸   r  r  r
  r•  ér   r  r  r  r­  r  rú  g     0g@r¡  g˜|¶´:Ç?)r7   r!  r   rì  r=  r   rû  r   )r\   ÚramsayÚparekhrí  rý  rþ  r=   r=   r>   Útest_approxj  s   

þzTestAnsari.test_approxc                 C   s4   t  g d¢g d¢¡\}}t|ddƒ t|ddƒ d S )N©r   r   rƒ   r…   )rh   r†   r†  rH   rå   rF   rO   r¡  gá?rG   )r   rû  r   )r\   rý  rþ  r=   r=   r>   Ú
test_exactx  s   zTestAnsari.test_exactr;   r   c                 C   sZ   t jttd�� tj|Ž }t|jtj	ƒ t|j
tj	ƒ W d   ƒ d S 1 s&w   Y  d S rË   )rÎ   rÏ   r   r   r   rû  r
   rY   r7   rÐ   r¿   )r\   r;   rl   r=   r=   r>   rz   }  rÓ   zTestAnsari.test_bad_argc                 C   s`   g d¢}g d¢}t ƒ �}| td¡ t ||¡}W d   ƒ n1 s"w   Y  d}t||ƒ d S )Nrø  rù  rú  ©rY   r¿   )r   rì  r=  r   rû  r   )r\   rj   rü  rí  rl   rk   r=   r=   r>   rn   „  s   þz!TestAnsari.test_result_attributesc                 C   sV   g d¢}g d¢}d}t t|d�� tj||dd� W d   ƒ d S 1 s$w   Y  d S )Nr  ©r†   rD   rG   rH   z!'alternative' must be 'two-sided'rÌ   Úfoo©Úalternative)rc   rd   r   rû  )r\   rÁ   rÅ   rÍ   r=   r=   r>   Útest_bad_alternative�  s   "ÿzTestAnsari.test_bad_alternativec           
      C   sö   g d¢}g d¢}t  ||¡\}}t j||dd�j}t j||dd�j}|dks(J ‚|dk s.J ‚tj |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 ssJ ‚|	dksyJ ‚d S )N)éûÿÿÿr   r†   rå   rh   r†  rŠ  )ræ  g      !@ç      #@g      %@ré  g      )@Úlessr  Úgreaterçffffffî?çš™™™™™©?r   çê-�™—q=r  r   )r   rû  r¿   r   ÚaÚpmfr÷   r	   )
r\   rÁ   rÅ   rY   rþ  Úpval_lÚpval_gÚprobÚpval_l_reverseÚpval_g_reverser=   r=   r>   Útest_alternative_exact•  s   z!TestAnsari.test_alternative_exactzx, y, alternative, expectedr  r  r  gÓ@ÔAä?r  r‚   )r…   r†   rD   rG   rH   g£G’$I’ì?g”%I’$IÒ?r„   )rD   rG   rH   c                 C   s$   t j|||d�j}t||dd� d S )Nr  r  r  )r   rû  r¿   r	   )r\   rj   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¸   é{   rG  r   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_alternative_approxÏ  s   z"TestAnsari.test_alternative_approxN)ro   rp   rq   rÿ  r  r  rÎ   rÝ   rÞ   rz   rn   r  r%  r'  r*  r=   r=   r=   r>   r÷  _  s*    	
	ûû
r÷  c                   @   sR   e Zd Zdd„ Zdd„ Zdd„ Zejjddd	d
�ej 	d¡dd„ ƒƒZ
dd„ ZdS )ÚTestBartlettc              
      s\   t ttttttttt	g
}‡ fdd„|D ƒ}t
j|Ž \}}t|ˆ  d¡ƒ t|ˆ  d¡ƒ d S )Nc                    ó   g | ]}ˆ   |¡‘qS r=   ©Úasarray©r   Úarg©Úxpr=   r>   r€   ê  ó    z*TestBartlett.test_data.<locals>.<listcomp>gzU@ /É4@gG¨–í‹?)Úg1Úg2Úg3Úg4Úg5Úg6Úg7Úg8Úg9Úg10r   Úbartlettr!   r.  )r\   r2  r;   ÚTrþ  r=   r1  r>   Ú	test_dataç  s
   zTestBartlett.test_datac                 C   sJ   d}t jt|d�� t | dg¡¡ W d   ƒ d S 1 sw   Y  d S )Nz-Must enter at least two input sample vectors.rÌ   r)   )rÎ   r   rd   r   r>  r.  )r\   r2  r6  r=   r=   r>   Útest_too_few_argsï  s   "ÿzTestBartlett.test_too_few_argsc              
      sJ   t ttttttttt	g
}‡ fdd„|D ƒ}t
j|Ž }d}t||ˆ d� d S )Nc                    r,  r=   r-  r/  r1  r=   r>   r€   ö  r3  z7TestBartlett.test_result_attributes.<locals>.<listcomp>r  r1  )r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r   r>  r   )r\   r2  r;   rl   rk   r=   r1  r>   rn   ô  s
   
z#TestBartlett.test_result_attributesú	jax.numpyTz8`var` incorrect when `correction > n` (google/jax#21330))Úcpu_onlyÚreasonÚskip_xp_backendsc                    sî   t ttttttttt	g f}‡ fdd„|D ƒ}t
ˆ ƒr7tjttd�� tj|Ž }W d   ƒ n1 s1w   Y  n,tj ¡ �}| td¡ | td¡ | td¡ tj|Ž }W d   ƒ n1 s^w   Y  ˆ  ˆ j¡}t|j|ƒ t|j|ƒ d S )Nc                    r,  r=   r-  r/  r1  r=   r>   r€     r3  z/TestBartlett.test_empty_arg.<locals>.<listcomp>rÌ   úinvalid value encounteredz$var\(\): degrees of freedom is <= 0.z!Degrees of freedom <= 0 for slice)r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r    rÎ   rÏ   r   r   r   r>  r7   Útestingr   rì  rŠ   r=  r.  rÐ   r"   rY   r¿   )r\   r2  r;   rl   rí  ÚNaNr=   r1  r>   Útest_empty_argû  s    ÿ€ûzTestBartlett.test_empty_argc                 C   sb   |j g d¢|jd�}|j g d¢|jd�}|j g d¢|jd�}t |||¡}| |jdk¡s/J ‚d S )N)g333333$@gffffff$@gš™™™™™$@gÍÌÌÌÌÌ$@©Údtype)çÍÌÌÌÌL$@ç     €$@ç33333³$@gfffffæ$@)gš™™™™$@rL  rM  rN  r   )r.  Úfloat32r   r>  ró   rY   )r\   r2  r  Úbr%  rl   r=   r=   r>   Útest_negative_pvalue_gh21152  s
   z)TestBartlett.test_negative_pvalue_gh21152N)ro   rp   rq   r@  rA  rn   rÎ   rÝ   rE  ÚusefixturesrI  rQ  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û?rG   gþI–{€]¹?)r4  r5  r6  r7  r8  r9  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Û   ©rV  Úproportiontocut)r   rT  r4  r5  r6  r   )r\   ÚW1Úpval1ÚW2Úpval2r=   r=   r>   Útest_trimmed1!  s   
ÿ
zTestLevene.test_trimmed1c           
      C   sš   g d¢}g d¢}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©g333333ó?ç       @ç      @ç      @ç      @ç      @ç      @g      Y@©rÛ   ra  ç      @rb  g      @rc  g      @ç      i@éÒ  rW  ç      À?rX  r   rã   r^   rU  )r7   rH  ÚseedÚpermutationr   rT  r   )
r\   rj   rü  rÅ   ÚW0Úpval0rZ  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   r0  ri  rƒ   r^   rU  Úmedian)r7   rë  rH  rk  rl  r   rT  r   )r\   rj   rÅ   rü  rZ  r[  r\  r]  r=   r=   r>   Útest_equal_mean_median<  s   
z!TestLevene.test_equal_mean_medianc                 C   ó&   t  ddd¡}tttj||dd� d S ©Nrã   r   r0  çš™™™™™¹?)Úportiontocut)r7   rë  rc   Ú	TypeErrorr   rT  ©r\   rj   r=   r=   r>   Útest_bad_keywordF  ó   zTestLevene.test_bad_keywordc                 C   rr  ©Nrã   r   r0  ÚtrimrU  )r7   rë  rc   rd   r   rT  rw  r=   r=   r>   Útest_bad_center_valueJ  ry  z TestLevene.test_bad_center_valuec                 C   ó   t ttjdgƒ d S rx   )rc   rd   r   rT  re   r=   r=   r>   rA  N  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 )Nr  )r4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r   rT  r   )r\   r;   rl   rk   r=   r=   r>   rn   Q  s   
z!TestLevene.test_result_attributesc                 C   s*   t  ddgddgg¡}tttjt|ƒ d S )Nr   r   rƒ   r…   )r7   r!  rc   rd   r   rT  r4  rw  r=   r=   r>   Útest_1d_inputX  s   zTestLevene.test_1d_inputN)ro   rp   rq   r@  r^  ro  rq  rx  r|  rA  rn   r~  r=   r=   r=   r>   rS    s    	
rS  c                   @   s¶  e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zej	 
d
g d¢¡dd„ ƒZej	 
d
g d¢¡dd„ ƒZej	 
dg d¢¡dd„ ƒZej	 
dg d¢¡dd„ ƒZej	 
dg d¢g d¢g d¢g d¢g d¢g d¢g d ¢g d!¢g d"¢g d#¢g d$¢g d%¢g d&¢g d'¢g d(¢g d)¢g d*¢g d+¢g d,¢g d-¢g d.¢g d/¢g d0¢g d1¢g¡d2d3„ ƒZd4d5„ Zej	 
d6d7d8g¡d9d:„ ƒZd;d<„ Zd=d>„ Zd?d@„ ZdAdB„ ZdCdD„ ZdEdF„ ZdGdH„ Zej	jejdIkdJdK�dLdM„ ƒZdNS )OÚ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)   rM   iöÎ™ gX7àÉàäï?i	Ï™ gÊç=¦»çï?iÏ™ gÁ‡ybwÏï?rQ   ©r   Ú	binomtestr	   r¿   ©r\   rN   rl   r=   r=   r>   Útest_two_sided_pvalues1d  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 )Nr€  rE   r0  r�  ©rý   rg  gXžóý-hå?rM   r…   g‹ã¤¶y«€?r¡  g	™ÐyÚ}ê?rG   g+¯“°¸,É?rƒ   rå   rä  g      Ö?r   r  g{®GázÄ?g333333Ó?gÀìž<,Ôâ?r‚  r„  r=   r=   r>   Útest_two_sided_pvalues2r  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 )Nr€  iä  iÇ  rä  r   rM   rƒ   r˜  gAL® &W°?rI   r²  g!YÈBÒ?rh   r‰  gÑE]tÑÕ?rG   rD   r¡  r‚  r„  r=   r=   r>   Útest_edge_casesƒ  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 r6   ©r   Úbinomr  ©rÁ   r†  r=   r>   Ú<lambda>Ÿ  rg   z>TestBinomTest.test_binary_srch_for_binom_tst.<locals>.<lambda>rQ   rM   rG   c                    s   t j | ˆ ˆ¡S r6   r‹  r�  r†  r=   r>   rŽ  «  ó   )r7   ri   Úceilr   rŒ  r  Úsumr   Úintr	   Úfloor)r\   Úkrm   ÚdÚy1ÚixÚy2r=   r†  r>   Útest_binary_srch_for_binom_tst’  s(   þ þz,TestBinomTest.test_binary_srch_for_binom_tstz"alternative, pval, ci_low, ci_high))r  gò$WåÃ?rÛ   gå±¦½Ñ?)r  g}ô™¥Ðì?gí�GI~Á?r)   )ú	two-sidedg°}¬G‡Ó?g¨>Ç?6À?g4—MõŒ­Ò?c                 C   óX   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ý   rg  r  r  rM   çš™™™™™É?r  ©Úconfidence_level©	r   rƒ  r	   r¿   r
   rY   Úproportion_ciÚlowÚhigh©r\   r  rþ  Úci_lowÚci_highrl   Úcir=   r=   r>   Útest_confidence_intervals1²  ó
   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   r›  )
Nrƒ   rá   r�  rœ  rL   rM   g¸…ëQ¸®?r2   rž  r   r¤  r=   r=   r>   Útest_confidence_intervals2Á  r©  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å  ©rg  r  rL   rM   r  rž  rÛ   )r   rƒ  r	   r¿   r¡  r
   r¢  r£  )r\   r  rþ  r¦  rl   r§  r=   r=   r>   Ú!test_confidence_interval_exact_k0Ð  ó
   z/TestBinomTest.test_confidence_interval_exact_k0zalternative, pval, ci_low))r  r)   rÛ   )r  ç6œÃöÿÿ¯>g@>}_·ç?)rš  r®  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«  rL   rM   r  rž  r)   )r   rƒ  r	   r¿   r¡  r
   r£  r¢  )r\   r  rþ  r¥  rl   r§  r=   r=   r>   Ú%test_confidence_interval_exact_k_is_nÝ  r­  z3TestBinomTest.test_confidence_interval_exact_k_is_nz+k, alternative, corr, conf, ci_low, ci_high)rƒ   rš  Tr  g`•ÿ¸´?gâ‚¾º®ä?)rƒ   rš  Tr2   grtð§!®?gŽŠ¤‚/ñæ?)rƒ   rš  Fr  gVKì5˜»?g5d—˜Mã?)rƒ   rš  Fr2   gšXCVu^´?g*Ïr�[Âå?)rƒ   r  Tr  rÛ   g›P-ÇÐVã?)rƒ   r  Tr2   rÛ   g^'š¬öæ?)rƒ   r  Fr  rÛ   gS5‹a˜Ýá?)rƒ   r  Fr2   rÛ   g©ì°Òä?)rƒ   r  Tr  g!Õ‡`â°¸?r)   )rƒ   r  Tr2   g¿ÿ$x"±?r)   )rƒ   r  Fr  gœWÐ~=À?r)   )rƒ   r  Fr2   g	¶¾Lù¶?r)   )r   rš  Tr  rÛ   g¨X�ÁåÖ?)r   rš  Fr  rÛ   gÊNäîÃÑ?)r   r  Tr  rÛ   g/­<7#9Ò?)r   r  Fr  rÛ   gAðøö®AË?)r   r  Tr  rÛ   r)   )r   r  Fr  rÛ   r)   )rå   rš  Tr  g¬Ó7�ùä?r)   )rå   rš  Fr  g›Ø�ˆsç?r)   )rå   r  Tr  rÛ   r)   )rå   r  Fr  rÛ   r)   )rå   r  Tr  gh©adnãæ?r)   )rå   r  Fr  gðÃAB”/é?r)   c           
      C   sL   t j|dd|d�}|rd}nd}|j||d�}	t|	j|	jf||fdd� d S )	Nrå   rt  rœ  ÚwilsonccÚwilson)rŸ  rÕ  rL   rM   )r   rƒ  r¡  r	   r¢  r£  )
r\   r”  r  ÚcorrÚconfr¥  r¦  rl   rÕ  r§  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…   r¢  rå  r)   )r   rƒ  r
   rY   r¿   ©r\   rl   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 d   ƒ d S 1 sw   Y  d S )Nz must be an integer not less thanrÌ   ©rÎ   r   rd   r   rƒ  )r\   r”  rý   r=   r=   r>   Útest_invalid_k_n  s
   ÿ"þzTestBinomTest.test_invalid_k_nc                 C   sB   t jtdd�� t ddd¡ W d   ƒ d S 1 sw   Y  d S )Nz+k \(11\) must not be greater than n \(10\).rÌ   r¡  rå   rå  r·  re   r=   r=   r>   Útest_invalid_k_too_big  s
   ÿ"þz$TestBinomTest.test_invalid_k_too_bigc                 C   sF   t jtdd�� t ddgdd¡ W d   ƒ d S 1 sw   Y  d S )Nzk must be an integer.rÌ   rå   r¡  r0  rå  )rÎ   r   rv  r   rƒ  re   r=   r=   r>   Útest_invalid_k_wrong_type$  s
   ÿ"þz'TestBinomTest.test_invalid_k_wrong_typec                 C   sŠ   d}t jt|d�� tjdddd� W d   ƒ n1 sw   Y  d}t jt|d�� tjdddd� W d   ƒ d S 1 s>w   Y  d S )	Nzp \(-0.5\) must be in range...rÌ   rá   é–   ç      à¿©rg  zp \(1.5\) must be in range...r)  r·  ©r\   r6  r=   r=   r>   Útest_invalid_p_range)  s   ÿ"ÿz"TestBinomTest.test_invalid_p_rangec                 C   sT   t jdddd�}d}tjt|d�� |jdd� W d   ƒ d S 1 s#w   Y  d S )	Nrƒ   rå   rt  r†  z/confidence_level \(-1\) must be in the intervalrÌ   rã   rž  ©r   rƒ  rÎ   r   rd   r¡  )r\   rl   r6  r=   r=   r>   Útest_invalid_confidence_level1  s
   "ÿz+TestBinomTest.test_invalid_confidence_levelc                 C   sP   t jdddd�}tjtdd�� |jdd� W d   ƒ d S 1 s!w   Y  d S )	Nrƒ   rå   rt  r†  z$method \('plate of shrimp'\) must berÌ   zplate of shrimp©rÕ  rÀ  rµ  r=   r=   r>   Útest_invalid_ci_method7  s   "ÿz$TestBinomTest.test_invalid_ci_methodc                 C   sF   t jtdd�� tjddddd� W d   ƒ d S 1 sw   Y  d S )Nzalternative \('ekki'\) not...rÌ   rƒ   rå   rt  Úekkirœ  r·  re   r=   r=   r>   Útest_invalid_alternative<  s   "ÿz&TestBinomTest.test_invalid_alternativec                 C   s"   t jdddd�}t|j|jƒ d S )Nrƒ   rå   rt  r†  )r   rƒ  r
   Úproportion_estimaterY   rµ  r=   r=   r>   Ú
test_alias@  s   zTestBinomTest.test_aliasl        z32-bit does not overflow©rD  c                 C   sH   t jtdd�� tjddtjjd� W d   ƒ d S 1 sw   Y  d S )NzError in function...rÌ   r†   rD   r½  )rÎ   r   ÚOverflowErrorr   rƒ  ÚsysÚ
float_infoÚminre   r=   r=   r>   Útest_boost_overflow_raisesD  s   "ÿz(TestBinomTest.test_boost_overflow_raisesN)ro   rp   rq   Ú__doc__r…  r‡  rˆ  r™  rÎ   rÝ   rÞ   r¨  rª  r¬  r¯  r´  r¶  r¸  r¹  rº  r¿  rÁ  rÃ  rÅ  rÇ  ÚskipifrÊ  ÚmaxsizerÍ  r=   r=   r=   r>   r  ]  s~     ÿ
ÿ
ÿ
	ÿ
	çþ


r  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¡  )r7   ri   r   r   Úfligner)r\   rÁ   r=   r=   r>   r@  M  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 )Nr€  )r7   r.  Úrandnr÷   Útolist)Úg©rê   r=   r>   Ú_perturbY  s    z+TestFligner.test_trimmed1.<locals>._perturbr^   rU  rW  rÛ   rX  )	r7   rH  r   r4  r5  r6  r   rÒ  r   )	r\   r×  Úg1_Úg2_Úg3_ÚXsq1r[  ÚXsq2r]  r=   rÖ  r>   r^  T  s   
ÿ
zTestFligner.test_trimmed1c                 C   sb   g d¢}g d¢}t j||ddd�\}}t j|dd… |dd… dd	�\}}t||ƒ t||ƒ d S )
Nr_  rf  rW  rj  rX  r   rã   r^   rU  )r   rÒ  r   )r\   rj   rü  rÛ  r[  rÜ  r]  r=   r=   r>   ro  g  s   

ÿ$
zTestFligner.test_trimmed2c                 C   rr  rs  )r7   rë  rc   rv  r   rÒ  rw  r=   r=   r>   rx  �  ry  zTestFligner.test_bad_keywordc                 C   rr  rz  )r7   rë  rc   rd   r   rÒ  rw  r=   r=   r>   r|  …  ry  z!TestFligner.test_bad_center_valuec                 C   r}  rx   )rc   rd   r   rÒ  re   r=   r=   r>   Útest_bad_num_args‰  s   zTestFligner.test_bad_num_argsc                 C   sl   t  d¡}tjttd��  t ||d g ¡}t|j	t j
ƒ t|jt j
ƒ W d   ƒ d S 1 s/w   Y  d S )Nr†   rÌ   r   )r7   ri   rÎ   rÏ   r   r   r   rÒ  r
   rY   rÐ   r¿   rÑ   r=   r=   r>   rI  �  s   
"ýzTestFligner.test_empty_argN)
ro   rp   rq   r@  r^  ro  rx  r|  rÝ  rI  r=   r=   r=   r>   rÑ  K  s    rÑ  c                  c   sÆ   � g d¢} g d¢}t |ƒD ]S\}}tj |¡}| d¡}|jdddd�}|jdddd�}t||ƒD ]\}}	t|d ||	 ƒD ]}
|| ||
< q>q1| |¡ t |d	¡\}}||d
g| | ¢R 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†   )r¢  r£  r¼   r   r   r  )	Ú	enumerater7   rH  rI  ÚintegersÚzipÚrangeÚshuffleÚsplit)Úexpected_resultsÚseedsÚsirk  rL  ÚxyÚtie_indÚnum_ties_per_indrm   rý   Újrj   rü  r=   r=   r>   Úmood_cases_with_ties•  s    €
ÿ
òrë  c                   @   sˆ   e Zd Zej deƒ ¡dd„ ƒZej dg d¢¡dd„ ƒZdd	„ Z	d
d„ Z
dd„ Zdd„ Zdd„ Zdd„ Zej dg d¢¡dd„ ƒZ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\   rj   rü  r  Ústat_expectÚp_expectrY   r¿   r=   r=   r>   Útest_against_SAS®  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   s.   g d¢}g d¢}t j|||d�}t||ƒ d S )Nr   r  r  rí  )r\   r  r&  rj   rü  rl   r=   r=   r>   Útest_against_SAS_2Ð  s   	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 )Nri  rå   r   rh   )r7   rH  rk  rÓ  r   rî  r   )r\   rÁ   rÅ   Úz1Úp1Úz2Úp2r=   r=   r>   Útest_mood_order_of_argsà  s   z TestMood.test_mood_order_of_argsc                 C   sN   g d¢}g d¢}t  |¡}t  |¡}d|_d|_ttj||d d�ddgƒ d S )N)góø²Üèä¿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   )rh   r   r‰  gç4¼õ¿g^ø}©E	È?)r7   r!  Úshaper   r   rî  )r\   rÁ   rÅ   r=   r=   r>   Útest_mood_with_axis_noneê  s   

ÿ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 ¡ƒ q"| ¡ }| ¡ }tj||dd�\}}t|ƒD ]}t|| || gt ||d d …f ||d d …f ¡ƒ qVd S )Nr†   ri  rå   rh   r   r‰  )	r7   rH  rk  rÓ  r   rî  rá  r   Ú	transpose)r\   ÚnyrÁ   rÅ   Ú	z_vectestÚpval_vectestrê  rm   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 ]b}t||| d  ƒD ]U}	|dkr^|d d …||	f }
|d d …||	f }n)|dkru||d d …|	f }
||d d …|	f }n|||	d d …f }
|||	d d …f }t|||	f |||	f gt |
|¡ƒ qEq9qd S )N)rå   r†   rD   ri  rƒ   r‰  r   r   r   )r7   rH  rk  rÓ  rá  r   rî  r   )r\   rù  rÁ   rÅ   rŠ  rý  rþ  Úaxes_idxrm   rê  Úslice1Úslice2r=   r=   r>   Útest_mood_3d  s2   
ÿ
þõÿúzTestMood.test_mood_3dc                 C   s^   t jttd�� t dgg ¡}t|jtj	ƒ t|j
tj	ƒ W d   ƒ d S 1 s(w   Y  d S )NrÌ   r   )rÎ   rÏ   r   r   r   rî  r
   rY   r7   rÐ   r¿   rµ  r=   r=   r>   Útest_mood_bad_arg9  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sBJ ‚ J ‚t|dd
d� t||d ƒ t|d|d  ƒ tj	t
dd�� tj||dd� W d   ƒ d S 1 stw   Y  d S )Nr   ç      è?r¸   )r»   r¼   g      ô?rš  r  r  r  çH¯¼šò×z>r  r   r   z`alternative` must be...rÌ   z	ekki-ekki)r7   rH  rk  r   rÀ   r:   rî  r	   rÎ   r   rd   )	r\   rj   rü  Ústat1rõ  Ústat2r÷  Ústat3Ú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   )rh   r   r  )	r7   rH  rI  rç   r   rî  r
   rY   r¿   )r\   r  rL  rÁ   rÅ   rl   r=   r=   r>   Útest_resultR  s
   

zTestMood.test_resultN)ro   rp   rq   rÎ   rÝ   rÞ   rë  rñ  ró  rø  rú  rÿ  r  r  r  r  r=   r=   r=   r>   rì  ­  s"    ÿ
 ÿ
	
rì  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   sl   t jjddd�}t j|dd�\}}g d¢}t|t |¡ƒ t||ƒ t j|dd�\}}g d¢}t||ƒ d S )	Nr†  é90  rG  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§ÛÈ+Æ/ý?T)gÆ�VúžÛð?g·ŸçªÔÔ?g Ã é˜ï?)r   rÀ   r:   Úprobplotr	   r7   Úsort)r\   rj   ÚosmÚosrÚosm_expectedrl   Úres_fitÚres_fit_expectedr=   r=   r>   ra   ^  s   
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@â rG  F©Úsparamsrù   r   r=   )r   rÀ   r:   r  r	   )
r\   rj   Úosm1Úosr1Úosm2Úosr2Úosm3Úosr3r  r  r=   r=   r>   Útest_sparams_keywordm  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  rG  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!  ‡  r�  z7TestProbplot.test_dist_keyword.<locals>.custom_dist.ppfN)ro   rp   rq   rÎ  r!  r=   r=   r=   r>   Úcustom_dist…  s    r#  )r   r  )r  rù   )	r   rÀ   r:   r  r   r	   rc   rd   ÚAttributeError)r\   rj   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oXt	|ƒ  koXt	|ƒ  koXd	kn  ƒ t
||ƒ t
||ƒ t
||ƒ t
||ƒ t  ¡ }| d¡}	tj|d|	d� t  ¡  d S )
Nr³  rƒ   r¸   é±Ët rG  ©ÚplotF)rù   r)  r   )ÚpltÚfigureÚadd_subplotr   r   r:   r  Úcloser   r÷   r	   )
r\   Úfigrj   Úres1Úfitres1Úres2Úfitres2Úres3Úres4Úaxr=   r=   r>   Útest_plot_kwarg�  s$   
@




zTestProbplot.test_plot_kwargc                 C   r  r  )rc   rd   r   r  re   r=   r=   r>   Útest_probplot_bad_args¨  ó   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  r7   r!  rÐ   re   r=   r=   r>   Ú
test_empty¬  s   ÿÿÿzTestProbplot.test_emptyc                 C   sj   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 d   ƒ d S 1 s.w   Y  d S )Nrñ   ©Úinvalidr   Tr  rÛ   )r7   rô   r
   r   r  r!  rÐ   re   r=   r=   r>   Útest_array_of_size_one³  s   ÿÿ"ÿz#TestProbplot.test_array_of_size_oneN)ro   rp   rq   ra   r  r%  rÎ   rÝ   rÏ  Úhave_matplotlibr6  r7  r9  r<  r=   r=   r=   r>   r  \  s    
r  c                   @   s  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zej dg d¢g d¢g d¢g¡dd„ ƒZdd „ Zejjd!d"„ ƒZej d#g d$¢¡d%d&„ ƒZd'd(„ Zej d)d*d+g¡d,d-„ ƒZej d)d*e ¡ f¡d.d/„ ƒZd0S )1ÚTestWilcoxonc                 C   sR   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å   ÚxyzrÂ  )rc   rd   r   Úwilcoxonre   r=   r=   r>   Útest_wilcoxon_bad_arg»  s
   ÿz"TestWilcoxon.test_wilcoxon_bad_argc                 C   s¦   t  d¡}t jdd��2 tj||ddd�\}}t||fdt jfƒ tj||ddd�\}}t||fdt jfƒ W d   ƒ n1 s@w   Y  ttj||d	dd�d
ƒ d S )Nr†  rñ   r:  ÚwilcoxÚ
asymptoticrÂ  rÛ   ÚprattÚzsplit)g     @Z@r)   )r7   ri   rô   r   rA  r
   rÐ   )r\   rj   rÂ   rg  r=   r=   r>   Útest_zero_diffÃ  s   
üÿzTestWilcoxon.test_zero_diffc                 C   s2   g d¢}g d¢}t j||dddd�}t|dƒ d S )Nr  )r   r   rƒ   r†   rE  rD  F)Úzero_methodrÕ  Ú
correction)rÛ   g²|»ÐNÔ?)r   rA  r	   )r\   rj   rü  rl   r=   r=   r>   Ú
test_prattÐ  s   ÿzTestWilcoxon.test_prattc                 C   s<   g d¢}t j|ddd�}t j|ddd�}t j|ddd�}d S )N)r   r   rƒ   r   rã   rƒ   r   r   r   r   r   rE  rD  )rH  rÕ  rF  rC  )r   rA  )r\   Úarrrî  r=   r=   r>   Útest_wilcoxon_arg_typeÙ  s   z#TestWilcoxon.test_wilcoxon_arg_typec                 C   s8  g d¢}t ddƒ}t dd„ t||ƒD ƒ¡}t |j¡}tj||dddd	�\}}t|d
ƒ t|dƒ tj||dddd	�\}}t|dƒ t|dƒ tj||dddd	�\}}t|dƒ t|dƒ t 	g d¢¡}t 	g d¢¡}tj||ddd�\}}t
|dƒ t|ddd� tj||ddd�\}}t
|dƒ t|ddd� d S )N)	r   r…   r¢  rh   rH   r…   r†   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>rE  rD  F©rÕ  rI  i§  g.½žÆýi?rF  i¹  gFYvø]Uj?rC  iG  g%çâ^ Ez?©rž  r  rn  r¼  é´   é’   éy   r¶  é„   r  é   ép   ©é…   é�   éw   r  rV  éÇ   r  r  és   rS  r©  é»   ©rI  rÕ  ry  g^·­Ò‚<æ?rL   rM   Tg:¤b­+ç?)rá  r7   Úconcatenaterà  Úzerosr¼   r   rA  r	   r!  r
   )r\   ÚfreqÚnumsrj   rü  r?  rg  r=   r=   r>   Útest_accuracy_wilcoxonâ  s6   

ÿ


ÿ


ÿ



z#TestWilcoxon.test_accuracy_wilcoxonc                 C   sŽ   t  g d¢¡}t  g d¢¡}tj||ddd�}tj||ddd�}tj||ddd�}tj||ddd�}||  krB|  krB|ksEJ ‚ J ‚d S )N)rƒ   r†   r�  rG   éó   rp  rÇ  r   rH   r  rE   r¡  )r   rä   r   r�  r   r†   rF   r{  r  rF   é   r3  rC  ÚapproxrÂ  rD  )Úmode)r7   r!  r   rA  )r\   rj   rü  r/  r1  r3  r4  r=   r=   r>   Útest_approx_mode  s   *zTestWilcoxon.test_approx_modec                 C   s@   t  g d¢¡}t  g d¢¡}tj||ddd�}d}t||ƒ d S )NrP  rW  FrD  r^  r  )r7   r!  r   rA  r   )r\   rj   rü  rl   rk   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ƒr7J ‚t ||¡}t
|dƒrDJ ‚d S )Nl   ”	m$S rh   rD  rÂ  r   ÚexactÚ
zstatistic)r7   rH  rI  r   rA  rÀ   r!  r¿   r	   rk  Úhasattr)r\   rL  rj   rü  rl   rÙ   r=   r=   r>   Útest_wilcoxon_has_zstatistic  s   z)TestWilcoxon.test_wilcoxon_has_zstatisticc                 C   sp   t jdgd 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 )Nrt  rå   rD  FrO  g4I™Å¥Y?r   rL   rM   Tr^  gcÐÅ2_?)r   rA  r
   r	   )r\   Ústatrg  Ú
expected_pr=   r=   r>   Útest_wilcoxon_tie"  s   	
ÿ

ÿ
zTestWilcoxon.test_wilcoxon_tiec                 C   sÔ   g d¢}g d¢}t j||dddd�\}}t|dƒ t|dd	d
� t j||dddd�\}}t|dƒ t|dd	d
� t j||dddd�\}}t|dƒ t|dd	d
� t j||dddd�\}}t|dƒ t|dd	d
� d S )N)
é}   r\  r�  éŒ   rr  r\  rr  rq  rr  r  )
r  éz   rq  rž  rr  é|   r(  é‰   r  é‘   r  rD  F)r  rÕ  rI  r3  g´…13}€æ?rD   rT   T)r  rI  rÕ  g7¥a�Ï%ç?r  g˜ôœ™ÿÒ?gÔÚ�oJTÔ?)r   rA  r
   r   )r\   rj   rü  rÂ   rg  r=   r=   r>   Útest_onesided7  s,   	
ÿ

ÿ


ÿ


ÿ
zTestWilcoxon.test_onesidedc                 C   sZ   t ddƒD ]%}t|ƒ}t|ƒ}t||d  d d t|ƒƒ tt|ƒdƒ t||ƒ qd S )Nr   r§  r   )rá  r   r   r
   r÷   r‘  r   )r\   rý   Úpmf1Úpmf2r=   r=   r>   Útest_exact_basicW  s   ûzTestWilcoxon.test_exact_basicc                 C   s  t  g d¢¡}t  g 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� 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 )N)
gö(\�Âõü?g=
×£p=ê?gö(\�Âõø?g¸…ëQ¸Þ¿gìQ¸…ëé?g{®Gázô?g¤p=
×£ð¿gq=
×£pÍ?g      è¿gìQ¸…ëÁ?)
r—   gÍÌÌÌÌÌä?gš™™™™™É¿g333333ë?çš™™™™™ñ¿gÍÌÌÌÌÌÜ¿gáz®Gáê¿g¸…ëQ¸Î¿gÃõ(\�Âå¿gR¸…ëQè¿rš  rj  ©r  rÕ  gÖ”¿Ö  »?rD   rT   r  gYJùÿ§î?r  gÄó*  «?r   r†  rä  rã   gñ«(ØÒë?gñ«(ØÒÛ?g×üSþ‹â?)r7   r!  r   rA  r   ri   )r\   rj   rü  rî  rg  r=   r=   r>   Útest_exact_pval_  s    zTestWilcoxon.test_exact_pvalrj   )rã   rä   rƒ   )rã   r   r  rM  r†   )rã   rä   rƒ   rM  r  iúÿÿÿrG   rH   c                 C   s@   t  |¡\}}t |¡}||dk  ¡ }t||ƒ t|dƒ d S ©Nr   r   )r   rA  r7   r!  r‘  r
   )r\   rj   rÂ   rg  Ú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 ¡ }t  dd¡}t |¡\}}t||ftj||d�ƒ t  d	d
¡}t |¡\}}t||ftj|dd�ƒ d||dk< t |¡\}}t||ftj|dd�ƒ t  dd¡}tt |¡tj|dd�ƒ d S )Nr   rá   rä  rã   rj  rÂ  rä   r†   r  rE   rD  r   r£  )r7   ri   r
   r   rA  rÖ  )r\   rj   rü  Úpmr•  rÂ   rg  r=   r=   r>   Ú	test_auto…  s"   ÿzTestWilcoxon.test_autoc                 C   sL   t  dd¡}t |¡}d}t||ƒ d||dk< t |¡}d}t||ƒ d S )Nr  rH   )g     €;@g     PÙ?r   r   )rÍ  g     0Ø?)r7   ri   r   rA  r
   )r\   r•  rl   rÙ   r=   r=   r>   Útest_auto_permutation_edge_case£  s   


z,TestWilcoxon.test_auto_permutation_edge_caser¼   )rƒ   r†   rå   c                 C   sÜ   t j d¡}|j|d�}tj|t ¡ d�}tj|dd�}t|j|jƒ t|j|jƒ |j|d d�}t j d¡}tjd|d�}tj||d�}t j d¡}tjd|d	�}tj||d�}tt  	|jd
¡|jƒ t|j|jƒ d S )Nl   aQG1X@
râ   rÂ  rj  rå   l   VsÞWõF“r  rÓ  )rÔ  r½   r   )
r7   rH  rI  r   rA  rÖ  r
   rY   r¿   Úround)r\   r¼   rL  rj   rl   rÙ   r�  r=   r=   r>   Útest_permutation_method±  s   z$TestWilcoxon.test_permutation_methodc                 C   sd   t j d¡}|jdd�}t j|d< t |¡}tj|dd�}t||ƒ t|dƒs)J ‚t|dƒr0J ‚d S )Nl   HF )Z )r§  r   râ   )r†   r   rD  rÂ  rk  )	r7   rH  rI  ÚnormalrÐ   r   rA  r	   rl  )r\   rL  rë   rl   rÙ   r=   r=   r>   Ú6test_method_auto_nan_propagate_ND_length_gt_50_gh20591Æ  s   


zCTestWilcoxon.test_method_auto_nan_propagate_ND_length_gt_50_gh20591rÕ  rj  rD  c                 C   sŒ   g d¢}g d¢}t j||d|d�}t j||d|d�}t|ƒt|ƒd  d }t|jƒ|jks0J ‚t||j |jdd	� t|j|jdd	� d S )
N)
r}  rÐ  r;  rª  r*  r}  rª  r}  r”  r2  )
rŸ  rŸ  éE   r;  r8  rŸ  r«  rº  r}  rr  r  r|  r  r   r   çVçž¯Ò<rM   )r   rA  r÷   r’  rY   r	   r¿   )r\   rÕ  Úvar1Úvar2rÙ   rl   Úmax_statisticr=   r=   r>   Útest_symmetry_gh19872_gh20752Ö  s   z*TestWilcoxon.test_symmetry_gh19872_gh20752c                 C   s&   t jt d¡|d�}t|ddgƒ d S )Nr†   rÂ  r   r   )r   rA  r7   r`  r	   )r\   rÕ  rl   r=   r=   r>   Útest_all_zeros_exactã  s   z!TestWilcoxon.test_all_zeros_exactN)ro   rp   rq   rB  rG  rJ  rL  rc  rh  ri  rm  rp  rw  rz  r}  rÎ   rÝ   rÞ   r€  r‚  rö  rƒ  r…  r‡  r�  r   rÖ  rŽ  r=   r=   r=   r>   r>  º  s8    		  þ



r>  )g×£p=
W0@g…ëQ¸…%@g®Gáz®'@gš™™™™+@g33333³/@g3333332@g
×£p=
@gq=
×£p$@g
×£p=
)@g\�Âõ(\-@g®Gáz0@g®Gázn3@g=
×£p= @gffffff&@gfffffæ)@g
×£p=Š-@ç®GázÔ0@gÍÌÌÌÌÌ3@gš™™™™!@g)\�Âõ('@g333333(@g
×£p=
.@r�  g{®Gáú0@gìQ¸…ë3@gq=
×£ð"@g\�Âõ(\'@gR¸…ëÑ*@g33333³.@g\�Âõ(3@c                   @   sX   e Zd Zdd„ Zdd„ Zdd„ Zej ddd	g¡d
d„ ƒZ	ej dg d¢¡dd„ ƒZ
dS )Ú	TestKstatc                    s°   t j d¡ |jt j d¡|jd�‰ | ‡ fdd„dD ƒ¡}|jg d¢ˆ jd�}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  rJ  c                    s   g | ]}t  ˆ |¡‘qS r=   )r   Úkstat)r   rý   ©r]   r=   r>   r€   ù  s    z>TestKstat.test_moments_normal_distribution.<locals>.<listcomp>r  )g•H¢—Q,‡?glZ)rIð?g88è}©À­?gc®æJN³?rê  rM   r   )Úorderr   rƒ   rã   g{®Gáz”?ç{®Gáz„?rè  )
r7   rH  rk  r.  rÓ  Úfloat64rK  r!   r   Úmoment)r\   r2  Úmomentsr&  Úm1Úm2Úm3r=   r’  r>   Ú test_moments_normal_distributionö  s   
ÿ(z*TestKstat.test_moments_normal_distributionc                 C   sš   t |ƒr$tjttd�� t | g ¡¡}W d   ƒ n1 sw   Y  ntj	dd�� t | g ¡¡}W d   ƒ n1 s=w   Y  t
|| |j¡ƒ d S ©NrÌ   rñ   r:  )r    rÎ   rÏ   r   r   r   r‘  r.  r7   rô   r"   rÐ   )r\   r2  rl   r=   r=   r>   rf     s   ÿ€ÿzTestKstat.test_empty_inputc                 C   ó@   |  d¡}| |dk| |j¡|¡}tt |¡| |j¡ƒ d S ©NrO   rD   ©ri   Úwherer.  rÐ   r"   r   r‘  ©r\   r2  r]   r=   r=   r>   rÔ     ó   
zTestKstat.test_nan_inputrý   r   g/Ý$@c                 C   sP   |  d¡}d}tjt|d�� tj||d� W d   ƒ d S 1 s!w   Y  d S )Nrå   z'k-statistics only supported for 1<=n<=4rÌ   ©rý   )ri   rÎ   r   rd   r   r‘  )r\   rý   r2  r]   r6  r=   r=   r>   Útest_kstat_bad_arg  s
   
"ÿzTestKstat.test_kstat_bad_argÚcase))r   gM~±ä,@)r   ç2Ó.êÕL)@)rƒ   gPŸÝ''÷¿)r…   ç È-"bµaÀc                 C   s.   |\}}t  | t¡|¡}t|| |¡ƒ d S r6   )r   r‘  r.  Úx_kstatr!   )r\   r¥  r2  rý   rÙ   rl   r=   r=   r>   Útest_against_R  s   zTestKstat.test_against_RN)ro   rp   rq   r›  rf   rÔ   rÎ   rÝ   rÞ   r¤  r©  r=   r=   r=   r>   r�  ô  s    	
r�  c                   @   sD   e Zd Zdd„ Zdd„ Zeddd�ej d¡d	d
„ ƒƒZ	dd„ Z
dS )ÚTestKstatVarc                 C   s˜   |  g ¡}t|ƒr&tjttd�� t |¡}W d   ƒ n1 s w   Y  ntj	dd�� t |¡}W d   ƒ n1 s<w   Y  t
||  |j¡ƒ d S rœ  )r.  r    rÎ   rÏ   r   r   r   Úkstatvarr7   rô   r"   rÐ   )r\   r2  rj   rl   r=   r=   r>   rf   0  s   
ÿ€ÿzTestKstatVar.test_empty_inputc                 C   r�  rž  rŸ  r¡  r=   r=   r>   rÔ   :  r¢  zTestKstatVar.test_nan_inputTz2input validation of `n` does not depend on backend©Únp_onlyrD  rE  c                 C   sP   dg}d}d}t jt|d�� tj||d� W d   ƒ d S 1 s!w   Y  d S )Nr   rå   zOnly n=1 or n=2 supported.rÌ   r£  )rÎ   r   rd   r   r«  )r\   r]   rý   r6  r=   r=   r>   rz   @  s   "ÿzTestKstatVar.test_bad_argc                 C   sˆ   t tƒ}d}d}t | t¡d¡}|| }t|| |¡ƒ t | t¡d¡}d|d  | |d |  ||d   }t|| |¡ƒ d S )Nr¦  r§  r   r   )r÷   r¨  r   r«  r.  r!   )r\   r2  rý   Úk2Úk4rl   rÙ   r=   r=   r>   Útest_against_R_mathworldK  s   (z%TestKstatVar.test_against_R_mathworldN)ro   rp   rq   rf   rÔ   rE  rÎ   rÝ   rR  rz   r°  r=   r=   r=   r>   rª  .  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   ó   t dddd�d | _d S ©Nr†   éô  r'  rG  ©r?   rj   re   r=   r=   r>   Úsetup_method_  r@   zTestPpccPlot.setup_methodc                 C   óH   d}t j| jdd|d�\}}g d¢}t|tjdd|d�ƒ t||ƒ d S )Nr†   éöÿÿÿrå   ©ÚN)gË9%Þ	Ë?gx½Mâ _Ë?g";9øšï?gÌÂ®X‰Zï?gŸ�Ôíí?©Únum)r   Ú	ppcc_plotrj   r	   r7   rë  )r\   rº  ÚsvalsÚppccÚppcc_expectedr=   r=   r>   ra   b  ó
   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’¡œÇ;rM   )r   r½  rj   rÂ  r	   )r\   Úsvals1Úppcc1Úsvals2Úppcc2Úsvals3Úppcc3r=   r=   r>   Ú	test_distj  s   
ÿzTestPpccPlot.test_distr&  rÈ  c                 C   óZ   t  ¡ }| d¡}tj| jddt d� | |¡ | d¡}tj| jdd|d� t  ¡  d S ©Nr³  iìÿÿÿr†  r(  )r*  r+  r,  r   r½  rj   Údelaxesr-  ©r\   r.  r5  r=   r=   r>   r6  v  ó   


zTestPpccPlot.test_plot_kwargc                 C   s2   t ttj| jddƒ t ttjg d¢dddd� d S )Nr   r   r‚   r  r  )rc   rd   r   r½  rj   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   r¬  r»  rJ  )r   r½  r	   r7   rë  r`  Úfloat)r\   r¾  r¿  r=   r=   r>   r9  ‹  s   zTestPpccPlot.test_emptyN)ro   rp   rq   r¶  ra   rÉ  rÎ   rÝ   rÏ  r=  r6  rÏ  r9  r=   r=   r=   r>   r±  ^  s    
r±  c                   @   rr   )
ÚTestPpccMaxc                 C   s   dg}t ttj|dd� d S r  )rc   rd   r   Úppcc_maxry   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¹   ç     ˆÃ@çº{öÉæ¿rG   rT   )r   rÂ  r:   r   rÒ  rw  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†   rT   )r   rÂ  r:   rÒ  r   )r\   rj   Úmax1Úmax2Ú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Ø  rG   rT   ©rä   r   )r   rÂ  r:   rc   rd   rÒ  r   rw  r=   r=   r>   Ú
test_brack­  s   ÿÿÿ
ÿzTestPpccMax.test_brackN)ro   rp   rq   rÓ  rÙ  rÉ  rà  r=   r=   r=   r>   rÑ  ”  s
    rÑ  rB  z)JAX arrays do not support item assignmentrÈ  rE  c                   @   sZ   e Zd Zej dddg¡dd„ ƒZeddd�d	d
„ ƒZdd„ Z	dd„ Z
dd„ Zdd„ ZdS )ÚTestBoxcox_llfrK  rO  r•  c                 C   sr   t ||ƒ}tjjdddd�}d}t ||j||d�¡}|j d t t 	| 
¡ d ¡¡ }t||j||d�ƒ d S )	NrÕ  rå   é1Ô  ©r¼   rº   r½   r   rJ  r`  r   )rJ  r   rÀ   r:   Ú
boxcox_llfr.  r¼   r7   r8   r‘  r`   r!   )r\   rK  r2  Údtrj   ÚlmbdaÚllfÚllf_expectedr=   r=   r>   ra   ¾  s   
$zTestBoxcox_llf.test_basicTz,array-likes only accepted for NumPy backend.r¬  c                 C   sD   t jjdddd�}d}t  ||¡}t  |t|ƒ¡}t||dd� d S ©Nr¸   rå   râ  rã  r   r  rM   )r   rÀ   r:   rä  Úlistr!   ©r\   r2  rj   ræ  rç  Úllf2r=   r=   r>   Útest_array_likeÇ  s
   zTestBoxcox_llf.test_array_likec                 C   s\   t jjdddd�}d}t  ||¡}t  |t ||g¡j¡}t| ||g¡| |¡dd� d S ré  )	r   rÀ   r:   rä  r7   Úvstackr?  r!   r.  rë  r=   r=   r>   Útest_2d_inputÐ  s
   "zTestBoxcox_llf.test_2d_inputc              
   C   s&   |  | t d| g ¡¡¡¡sJ ‚d S rx   )Úisnanr.  r   rä  )r\   r2  r=   r=   r>   r9  Ú  s   &zTestBoxcox_llf.test_emptyc                 C   s.   |  g d¢¡}t d|¡}t||  d¡ƒ d S )N)g     Àh@ç      m@rñ  g     €x@iøÿÿÿg#:¹xð1À)r.  r   rä  r!   ©r\   r2  r]   rç  r=   r=   r>   Útest_gh_6873Ý  s   zTestBoxcox_llf.test_gh_6873c                 C   s4   |  g d¢¡}t d|¡}t||j d|jd�ƒ d S )N)iÓ  iž  iÍ  iÐ  iÙ  ç:Œ0âŽyE>g‰lÿä¥.ÀrJ  )r.  r   rä  r!   r•  rò  r=   r=   r>   Útest_instability_gh20021å  s   z'TestBoxcox_llf.test_instability_gh20021N)ro   rp   rq   rÎ   rÝ   rÞ   ra   rE  rí  rï  r9  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g d¢¡dd„ ƒZdd„ Ze	j
 dg d¢¡dd„ ƒZdd„ Ze	j
 de g d¢¡e ejddg¡g¡dd„ ƒZe	j
 de g d ¢¡e g d!¢¡e g d"¢¡g¡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  rG  r   ©ræ  rã   r   rå   r   )
r?   r   rÖ   r	   r7   r8   rê  ré   r
   r`  )r\   rj   Ú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   rT   )r   rÀ   r:   rÖ   r   )r\   ræ  rj   Úx_invrø  rØ   r=   r=   r>   Útest_lmbda_None6  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 )Nri  r†   rá   rG  r  )Úalphag¸x�ë—@gvö[%Ž@r  gxË‰EÌkó?g8B¹hk @rG   r´  rh   r  g›ÌÓ\‡Ù?gxèÃÌ¡Ï&@r,   gÓÑ7Š(U@g¿p:sY@)r7   rH  r   r?   r   rÖ   r	   )r\   rL  rj   rî  rv   r=   r=   r>   Ú
test_alpha@  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   )r7   r!  rc   rd   r   rÖ   rw  r=   r=   r>   Útest_boxcox_bad_argQ  s    zTestBoxcox.test_boxcox_bad_argc                 C   ó   t t g ¡jdkƒ d S ©N)r   )r   r   rÖ   rù  re   r=   r=   r>   r9  Z  r@   zTestBoxcox.test_emptyc                 C   s    t  t¡\}}t|ddd� d S )NgsHj¡drª¿rÕ   rM   ©r   rÖ   Ú_boxcox_datar	   )r\   rü  Úlamr=   r=   r>   ró  ]  s   zTestBoxcox.test_gh_6873Úbounds©)rã   r   )r¬   r   )rä   r{  c                    sH   ‡ fdd„}t jtd |d�\}}ˆ d |  k rˆ d k s"J ‚ J ‚d S )Nc                    ó   t j| ˆ dd�S ©NÚbounded)r  rÕ  ©r   Úminimize_scalar©Úfun©r  r=   r>   Ú	optimizerh  ó   ÿzBTestBoxcox.test_bounded_optimizer_within_bounds.<locals>.optimizer©ræ  r  r   r   )r   rÖ   r  )r\   r  r  rî  ræ  r=   r  r>   Ú$test_bounded_optimizer_within_boundse  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s,J ‚t|ˆ d	 ƒ d S )
Nr÷  rt  r   Úxatolr  c                    s   t j| ˆ dˆd�S )Nr  )r  rÕ  Úoptionsr	  r  ©r  r  r=   r>   r  z  s   ÿzPTestBoxcox.test_bounded_optimizer_against_unbounded_optimizer.<locals>.optimizerr  r   r  )r\   rî  ræ  r  Úlmbda_boundedr=   r  r>   Ú2test_bounded_optimizer_against_unbounded_optimizero  s   
ÿz=TestBoxcox.test_bounded_optimizer_against_unbounded_optimizerr  )Ústr©r   r   rt  c                 C   sD   t jtdd�� tjtd |d� W d   ƒ d S 1 sw   Y  d S )Nz`optimizer` must be a callablerÌ   r  ©rÎ   r   rd   r   rÖ   r  ©r\   r  r=   r=   r>   Ú$test_bad_optimizer_type_raises_error„  s   "ÿz/TestBoxcox.test_bad_optimizer_type_raises_errorc                 C   sP   dd„ }d}t jt|d�� tjtd |d� W d   ƒ d S 1 s!w   Y  d S )Nc                 S   s   dS rx   r=   r  r=   r=   r>   r  �  s   zCTestBoxcox.test_bad_optimizer_value_raises_error.<locals>.optimizerz/return an object containing the optimal `lmbda`rÌ   r  r  )r\   r  r6  r=   r=   r>   Ú%test_bad_optimizer_value_raises_errorŠ  s
   "ÿz0TestBoxcox.test_bad_optimizer_value_raises_errorÚbad_x)r   iÖÿÿÿgÍÌÌÌÌÈ@r   r   c                 C   sB   d}t jt|d�� t |¡ W d  ƒ dS 1 sw   Y  dS )zHTest boxcox_normmax raises ValueError if x contains non-positive values.z#only positive, finite, real numbersrÌ   N)rÎ   r   rd   r   Úboxcox_normmax)r\   r  r6  r=   r=   r>   Ú"test_negative_x_value_raises_error–  s   "ÿz-TestBoxcox.test_negative_x_value_raises_errorrj   ©
ç     LŸ@ç     xž@ç     4Ÿ@ç     @Ÿ@ç     dŸ@r%  g     ðž@g     <Ÿ@g     \Ÿ@g     Ÿ@©r!  r"  r#  r$  r%  ©gÑFì„q$jgåSƒç	ç#jgGew™×a$jgVÈB®i$jg[(»>2�$jc                 C   sV   t jtdd�� t |¡\}}t t |¡¡sJ ‚W d   ƒ d S 1 s$w   Y  d S )NúThe optimal lambda isrÌ   )rÎ   rÏ   r=  r   rÖ   r7   ró   Úisfinite)r\   rj   Úxt_bcÚlam_bcr=   r=   r>   Útest_overflowŸ  s   
"þzTestBoxcox.test_overflowN)ro   rp   rq   rù  rû  rý  rþ  r9  ró  rÎ   rÝ   rÞ   r  r  r  r  r7   r!  rÐ   r  r,  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	g d
¢¡ej 	dg d¢¡dd„ ƒƒZ
ejjdd„ ƒZdd„ Zej 	dg d¢g d¢f¡dd„ ƒZdd„ Zej 	dejg d¢ejd�ejg d¢ejd�ejg d¢ejd�ejg d¢ejd�g¡ej 	dg d¢¡ej 	d	dg¡d d!„ ƒƒƒZej 	dg d¢g d¢g¡ej 	d	dg¡d"d#„ ƒƒZd$S )%ÚTestBoxcoxNormmaxc                 C   r²  ©Nr†   rá   r  rG  rµ  re   r=   r=   r>   r¶  ¯  r@   zTestBoxcoxNormmax.setup_methodc                 C   ó   t  | j¡}t|ddd� d S )Nçm±ßü?rL   rM   ©r   r  rj   r	   ©r\   rØ   r=   r=   r>   Útest_pearsonr²  ó   zTestBoxcoxNormmax.test_pearsonrc                 C   s<   t j| jdd�}t|ddd� t  | j¡\}}t||ƒ d S )NÚmlerÂ  çÐ	¡ƒ.!ü?rL   rM   )r   r  rj   r	   rÖ   )r\   rØ   rî  Ú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ó   rÂ  r0  r6  rL   rM   r1  )r\   Ú
maxlog_allr=   r=   r>   Útest_all¾  s   zTestBoxcoxNormmax.test_allrÕ  )r5  Úpearsonrró   r  r  c                    sN   ‡ fdd„}t j| j||d�}t ˆ d |k ¡sJ ‚t |ˆ d k ¡s%J ‚d S )Nc                    r  r  r	  r  r  r=   r>   r  Æ  r  zITestBoxcoxNormmax.test_bounded_optimizer_within_bounds.<locals>.optimizer)rÕ  r  r   r   )r   r  rj   r7   ró   )r\   rÕ  r  r  rØ   r=   r  r>   r  Â  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s3J ‚t||d	ƒ d S )
Nr†   r”  ié  c                   @   s   e Zd ZdS )z?TestBoxcoxNormmax.test_user_defined_optimizer.<locals>.MyResultN)ro   rp   rq   r=   r=   r=   r>   ÚMyResultÖ  s    r<  c                    s6   g }ˆD ]	}|  | |ƒ¡ qˆ ƒ }ˆt |¡ |_|S r6   )Úappendr7   Úargminrj   )r  Úobjsræ  rl   ©r<  Úlmbda_ranger=   r>   r  Ù  s   z@TestBoxcoxNormmax.test_user_defined_optimizer.<locals>.optimizer©r  rÕ   )r   r  rj   r7   r„  rë  r	   )r\   ræ  Úlmbda_roundedr  Úlmbda2r=   r@  r>   Útest_user_defined_optimizerÏ  s   	z-TestBoxcoxNormmax.test_user_defined_optimizerc                 C   s^   t j}tj| jd |d� tjtdd�� tj| jd|d� W d   ƒ d S 1 s(w   Y  d S )N)rÞ  r  z,`brack` must be None if `optimizer` is givenrÌ   )g       Àr`  )r   r
  r   r  rj   rÎ   r   rd   r  r=   r=   r>   Ú2test_user_defined_optimizer_and_brack_raises_erroræ  s   
ÿ"ýzDTestBoxcoxNormmax.test_user_defined_optimizer_and_brack_raises_errorrj   r&  )gŠx©à	 à?gN~Íjh à?g¯Æ{ à?géXkIÃ à?g}¸»9" à?c                 C   s¬   d}t jt|d�� tj|dd�}W d   ƒ n1 sw   Y  t t ||¡¡ 	¡ s-J ‚t 
tj¡jd }|dkr?t |¡nt |¡}t ||¡}t||t |¡ ƒ d S )NzThe optimal lambda is...rÌ   r5  rÂ  rÕ  r   )rÎ   rÏ   r=  r   r  r7   r)  r   rÖ   ró   Úfinfor•  ÚmaxrÌ  r	   Úsign)r\   rj   r6  ræ  ÚymaxÚx_tremeÚ	y_extremer=   r=   r>   r,  ö  s   ÿzTestBoxcoxNormmax.test_overflowc                 C   sD   t jtdd�� tj| jdd� W d   ƒ d S 1 sw   Y  d S )Nz `ymax` must be strictly positiverÌ   rã   )rJ  )rÎ   r   rd   r   r  rj   re   r=   r=   r>   Útest_negative_ymax	  s   "ÿz$TestBoxcoxNormmax.test_negative_ymaxrJ  )gš™™™™	i@g     `h@gffffföh@rh  gÍÌÌÌÌi@)g ÂëþKHÄ9ç ÂëþKH´9rN  rN  rN  rN  rJ  )g    _ BgêŒ 9Y>)FNr5  c                 C   s®   t jtdd��F |d urd|ini }tj|fd|i|¤Ž}t |¡t |¡g}ttt 	||¡ƒƒ}|d u r>t 
|j¡jd }t||dd� W d   ƒ d S 1 sPw   Y  d S )Nr(  rÌ   rJ  rÕ  rÕ  rÕ   rM   )rÎ   rÏ   r=  r   r  r7   rÌ  rH  ÚabsrÖ   rG  rK  r	   )r\   rj   rJ  rÕ  ÚkwargÚlmbrK  Úymax_resr=   r=   r>   Ú'test_user_defined_ymax_input_float64_32	  s   "øz9TestBoxcoxNormmax.test_user_defined_ymax_input_float64_32c                 C   s    t j|t jd�}t j|t jd�}tjtdd�� tj||d� W d   ƒ n1 s)w   Y  tj||d� tj|t j	|d�}tj|t j	|d�}t
||dd� d S )NrJ  r(  rÌ   rÂ  )rJ  rÕ  r”  rM   )r7   r.  rO  r•  rÎ   rÏ   r=  r   r  rO  r	   )r\   rj   rÕ  Úx_32Úx_64Úlmb_32Úlmb_64r=   r=   r>   Útest_user_defined_ymax_inf%	  s   	ÿz,TestBoxcoxNormmax.test_user_defined_ymax_infN)ro   rp   rq   r¶  r3  r8  r:  rÎ   rÝ   rÞ   r  ÚslowrE  rF  r,  rM  r7   r!  r•  rO  rS  rX  r=   r=   r=   r>   r-  ®  sR    
ÿÿ

ÿ
ÿ
ÿ
ÿõür-  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   r²  r³  rµ  re   r=   r=   r>   r¶  =	  r@   zTestBoxcoxNormplot.setup_methodc                 C   r·  )Nr†   r¸  rå   r¹  )g!ÍX4�}â?g¬ÌÎ�iÁê?g·-ã	15ï?gW»ý$ìï?g\Ü±ž{«î?r»  )r   Úboxcox_normplotrj   r	   r7   rë  )r\   rº  Úlmbdasr¿  rÀ  r=   r=   r>   ra   @	  rÁ  zTestBoxcoxNormplot.test_basicr&  rÈ  c                 C   rÊ  rË  )r*  r+  r,  r   r[  rj   rÌ  r-  rÍ  r=   r=   r>   r6  H	  rÎ  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[  rj   re   r=   r=   r>   rÏ  U	  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>   r9  [	  rõ  zTestBoxcoxNormplot.test_emptyN)ro   rp   rq   r¶  ra   rÎ   rÝ   rÏ  r=  r6  rÏ  r9  r=   r=   r=   r>   rZ  <	  s    
rZ  c                   @   rA   )Ú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  rM   )r   rÀ   r:   Úyeojohnson_llfrê  r	   ©r\   rj   ræ  rç  rì  r=   r=   r>   rí  a	  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^  r7   rî  r?  r	   r_  r=   r=   r>   rï  h	  s
   z TestYeojohnson_llf.test_2d_inputc                 C   s   t t t dg ¡¡ƒ d S rx   )r   r7   rð  r   r^  re   r=   r=   r>   r9  o	  s   zTestYeojohnson_llf.test_emptyN)ro   rp   rq   rí  rï  r9  r=   r=   r=   r>   r]  _	  s    r]  c                   @   sâ  e Zd Zdd„ Zej dg d¢¡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ej de
 dedƒdg¡e
 dedƒdg¡e
 dedƒ dg¡e
 dedƒedƒedƒ dg¡g¡dd„ ƒZej de
 g d¢¡e
 g d¢¡e
 g d¢¡g¡dd„ ƒZej de
 g d¢¡e
 g d¢¡g¡ej dg d ¢¡ej d!d"d#g¡d$d%„ ƒƒƒZej de
 g d&¢¡e
 g d'¢¡e
 g d(¢¡g¡ej d!d"d#g¡ej d)d*d+g¡d,d-„ ƒƒƒZd*S ).ÚTestYeojohnsonc                 C   sˆ  t j d¡}tdd|d�d }t  |dk¡sJ ‚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 ¡seJ ‚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 ¡r©J ‚t  |dk¡r²J ‚|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á   rG  r   r   r÷  rã   r   rƒ   )	r7   rH  r   r?   ró   r   Ú
yeojohnsonr	   r8   )r\   rL  rj   rø  ÚposÚnegr=   r=   r>   rù  u	  sL   


 $zTestYeojohnson.test_fixed_lmbdaræ  )r   rt  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 r"t  | | ¡d ||< nt  | | | d d| ¡d ||< t|d ƒt  d¡krZdt  d|  | |   d dd|  ¡ || < |S dt  | |   ¡ || < |S )NrJ  r   r)   r   r   )r7   r`  rù  rK  rO  ÚspacingÚexpÚpower)rj   ræ  rú  rb  r=   r=   r>   Ú_inverse_transform©	  s   $
ÿþz:TestYeojohnson.test_lmbda_None.<locals>._inverse_transformi N  rÖ  r   r   )rº   r»   r¼   r”  r  r   rT   )r7   rH  rk  r†  r   ra  r	   r   ÚlinalgrÀ   r^   r`   )r\   ræ  rg  Ú	n_samplesrj   rú  rø  rØ   r=   r=   r>   rû  ¤	  s   
zTestYeojohnson.test_lmbda_Nonec                 C   rÿ  r   )r   r   ra  rù  re   r=   r=   r>   r9  É	  r@   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  rM   )r   rÀ   r:   ra  rê  r	   )r\   rj   Úxt1rî  Úxt2r=   r=   r>   rí  Ì	  s   zTestYeojohnson.test_array_likerK  c                 C   sP   t jd|d�}d}tjt|d�� t |¡ W d   ƒ d S 1 s!w   Y  d S )NrD   rJ  z>Yeo-Johnson transformation is not defined for complex numbers.rÌ   )r7   ri   rÎ   r   rd   r   ra  )r\   rK  rj   Úerr_msgr=   r=   r>   Útest_input_dtype_complexÒ	  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 )NrH   rJ  r  rM   )r7   ri   r•  r   ra  r	   )r\   rK  Úx_intÚx_floatÚxt_intÚ	lmbda_intÚxt_floatÚlmbda_floatr=   r=   r>   Útest_input_dtype_integerÚ	  s   z'TestYeojohnson.test_input_dtype_integerc                 C   sN   t  g d¢¡}t |¡\}}t |d ¡\}}t||dd� t||dd� d S )N)çÃõ(œÚÎHAç®Gá.ñ"Aç    5fAgÃõ(¶ö@Ag   °ÁV”AgHáz¼æuoAg)\�Â¿ý+Arw  gö(\ïö^@Ag    ´íRArv  g    Åß#Ag\�Âµ¤=Ag
×£ð˜ìNAru  g¤p=ŠoÝHAg    6bAg{®cï¬sAg)\�tmhAg¸…ëå/BAg   '|•Agö(\wŽipAg    ÝƒhAgìQ¸þlBAg×£p �@Ar   rL   rM   )r7   r!  r   ra  rÖ   r	   )r\   rj   Úxt_yeoÚlam_yeoÚxt_boxÚlam_boxr=   r=   r>   Útest_input_high_varianceã	  s
   z'TestYeojohnson.test_input_high_variancerj   r)   rÐ   r`  rO  ç      ð¿c                 C   sB   t jtdd�� t |¡\}}W d   ƒ d S 1 sw   Y  d S )Nz Yeo-Johnson input must be finiterÌ   )rÎ   r   rd   r   ra  )r\   rj   rx  ry  r=   r=   r>   Útest_nonfinite_inputñ	  s   "ÿz#TestYeojohnson.test_nonfinite_inputr   r&  r'  c                 C   sª   dd„ }t jdd��A t |¡\}}tj|d t||d�d�\}}t  t  |¡¡s+J ‚t  t  |¡¡s5J ‚t||dd	� t||d
d	� W d   ƒ d S 1 sNw   Y  d S )Nc                 S   s&   t j| | |dd�}t  ¡ }||_|S )Ng`sáÓbÈO>)Úxtol)r   Ú	fminboundÚOptimizeResultrj   )r  ry  ÚoutÚresultr=   r=   r>   r  
  s   z/TestYeojohnson.test_overflow.<locals>.optimizerÚraiserò   r   )ry  rB  rL   rM   rê  )	r7   rô   r   ra  rÖ   r   r)  r_   r	   )r\   rj   r  rx  ry  rz  r{  r=   r=   r>   r,  û	  s   
ÿ"ùzTestYeojohnson.test_overflowr»   )r   r  g3§¨Õ#öI9gu”?jç/Ê gnµµ¸“FgZb××çtirI  r   rã   c                 C   sŒ   t jdd��6 t || | ¡\}}t  t  || ¡t  |¡k¡s#J ‚t  |¡s*J ‚t  t  |¡¡s4J ‚W d   ƒ d S 1 s?w   Y  d S )Nr„  rò   )r7   rô   r   ra  ró   rI  r)  r_   )r\   rj   r»   rI  rx  ry  r=   r=   r>   Ú#test_overflow_underflow_signed_data
  s   	""üz2TestYeojohnson.test_overflow_underflow_signed_data)r   r   r   rƒ   )r   rã   r   r  )r   r   r   rÞ  Nrß  c           
      C   sÜ   t jdd��^ || }| t j¡}tj||d�}tj||d�}tj||d�}tj||d�}	t  t  |¡t  |¡k¡s<J ‚t  	|¡sCJ ‚t  	t  
|¡¡sMJ ‚||ksSJ ‚t  ||	k¡s\J ‚W d   ƒ d S 1 sgw   Y  d S )Nr„  rò   rÝ  r÷  )r7   rô   Úastyper•  r   Úyeojohnson_normmaxra  ró   rI  r)  r_   )
r\   rj   rI  rÞ  rn  ro  Úlam_yeo_intÚ
xt_yeo_intÚlam_yeo_floatÚxt_yeo_floatr=   r=   r>   Útest_integer_signed_data%
  s   "õz'TestYeojohnson.test_integer_signed_data)ro   rp   rq   rù  rÎ   rÝ   rÞ   rû  r9  rí  r7   Ú	complex64Ú
complex128rm  Úint8Úuint8Úint16Úint32rt  r|  r!  rÐ  r~  r,  r…  rŒ  r=   r=   r=   r>   r`  s	  sN    /
$

 ü
ù
	ýýr`  c                   @   rA   )ÚTestYeojohnsonNormmaxc                 C   r²  r.  rµ  re   r=   r=   r>   r¶  <
  r@   z"TestYeojohnsonNormmax.setup_methodc                 C   r/  )Ngß—ª´þ?rL   rM   )r   r‡  rj   r	   r2  r=   r=   r>   r8  ?
  r4  zTestYeojohnsonNormmax.test_mlec                 C   s*   g d¢}t  |¡}tj|ddd�sJ ‚d S )N)gffffff@gÍÌÌÌÌÌ Àr)   r`  çffffffæ?g333333@rg  gffffff@gÍÌÌÌÌÌü?gÍÌÌÌÌÌ@re  ra  gš™™™™™"@ræ  g      Àgáz®Gáô?r  r  )r   r‡  r7   Úallclose)r\   rj   ræ  r=   r=   r>   Útest_darwin_exampleC
  s   
z)TestYeojohnsonNormmax.test_darwin_exampleN)ro   rp   rq   r¶  r8  r–  r=   r=   r=   r>   r“  ;
  s    r“  c                   @   s’  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ej dejejej	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d„ ƒZeddd�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d#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/S )0ÚTestCircFuncsútest_func,expectedçA:wæÞvÅ?g€ï’“½pz?çE¶|ï2@c                 C   ó*   |  g d¢¡}t||dd�|  |¡ƒ d S )N)g     0v@rc  r`  ç     pv@rO   ç     àu@éh  ©r£  ©r.  r!   ©r\   Ú	test_funcr&  r2  rj   r=   r=   r>   Útest_circfuncsT
  ó   zTestCircFuncs.test_circfuncsc           
      C   s¬   |j g d¢|jd�}| |¡}tj|dd�}t||dd� t|ƒ}|j||j d dd	�}|d
 }tj	|dd�}t||dd� |j
|dd	�}tj|dd�}	t|	|dd� d S )N)r†  r0  r~  r{  é   g     €4@g3333333@rJ  rž  rŸ  rÕ   rM   rQ  r   ©rI  r`  rê  )r.  r•  r^   r   Úcircmeanr!   r   r_   ÚpiÚcircvarr`   Úcircstd)
r\   r2  rj   ÚM1ÚM2Úxp_testÚV1ÚV2ÚS1ÚS2r=   r=   r>   Útest_circfuncs_small\
  s   
z"TestCircFuncs.test_circfuncs_smallztest_func, numpy_funcc                 C   sH   t  dgd dgd  ¡}|| |¡ƒ}| ||ƒ¡}t||dd� d S )NgË›É¦v9À?rå   g³ÏuÂv9À?r¸   g:Œ0âŽyU>r  )r7   r.  r!   )r\   r¢  Ú
numpy_funcr2  rj   Úcircstatr†  r=   r=   r>   Útest_circfuncs_closer
  s   z"TestCircFuncs.test_circfuncs_closeÚcircfuncc                    sÈ   |  g d¢g d¢g d¢g¡‰ˆ ˆdd�}ˆ | ˆd¡dd�}t||  |¡ƒ ˆ ˆddd�}‡ ‡fd	d
„tˆjd ƒD ƒ}t||  |¡ƒ ˆ ˆddd�}‡ ‡fdd
„tˆjd ƒD ƒ}t||  |¡ƒ d S )N)éc  r†   r   rÂ  rå   é^  )é_  rG   r…   é`  rE   é]  )ie  rE   rH   if  r…   g     @v@rž  rŸ  ©rã   r   ©r£  rŠ  c                    s$   g | ]}ˆ ˆ|d d …f dd�‘qS ©Nrž  rŸ  r=   ©r   rm   ©r¶  rj   r=   r>   r€   ‰
  ó   $ z4TestCircFuncs.test_circmean_axis.<locals>.<listcomp>r   c                    s$   g | ]}ˆ ˆd d …|f dd�‘qS r¾  r=   r¿  rÀ  r=   r>   r€   �
  rÁ  )r.  Úreshaper!   rá  rù  )r\   r2  r¶  rl   rÙ   r=   rÀ  r>   Útest_circmean_axis}
  s   
þz TestCircFuncs.test_circmean_axisç @¦½pz?c                 C   r›  )N)r·  r†   r   rÂ  rå   r�  rž  rŸ  r   r¡  r=   r=   r>   Útest_circfuncs_array_like�
  r¤  z'TestCircFuncs.test_circfuncs_array_liker¢  c                 C   s¸   |j }|jg |d�}t|ƒr*tjttd�� ||ƒ}W d   ƒ n1 s$w   Y  n%tj 	¡ �}| 
td¡ | 
td¡ ||ƒ}W d   ƒ n1 sJw   Y  t||j|j|d�ƒ d S )NrJ  rÌ   zMean of empty slicerF  )r•  r.  r    rÎ   rÏ   r   r   r7   rG  r   rì  rŠ   r"   rÐ   )r\   r¢  r2  rK  rj   rl   rí  r=   r=   r>   r9  ˜
  s   
ÿ€
üzTestCircFuncs.test_emptyc              	   C   s8   |  ddddddtjg¡}t||dd�|  |j¡ƒ d S )	Nr·  r†   r   rÂ  rå   r¸  rž  rŸ  )r.  r7   rÐ   r"   )r\   r¢  r2  rj   r=   r=   r>   Útest_nan_propagate¨
  s   z TestCircFuncs.test_nan_propagateÚcupyzcupy/cupy#8391rÈ  gÈû£5§:v@gfôPbÒ?r~  geƒe?g€OQõO·v?gˆºÍ#˜q@g×auy­+@c                 C   s¶   |  g d¢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 ]5}||d	|d
�}|d u r:t||  |j¡ƒ q#t|d |  || ¡ƒ t|dd … | |dd … |j¡ƒ q#d S )N)r·  r†   r   rÂ  rå   r¸  r   r¹  rG   r…   rº  rE   r»  r   rž  r½  r   )r.  r7   rÐ   Úkeysr"   r!   Ú	full_like)r\   r¢  r&  r2  rj   rŠ  r‚  r=   r=   r>   Útest_nan_propagate_array®
  s   
þ&úz&TestCircFuncs.test_nan_propagate_arrayc                 C   s.   |  d¡d }|}t |¡}t||dd� d S )Nr)   r=   rÕ   rM   )r.  r   r§  r!   )r\   r2  rj   r«  r¬  r=   r=   r>   Útest_circmean_scalarÄ
  s   
z"TestCircFuncs.test_circmean_scalarc                 C   sH   t  | ddd¡|j|j ¡}t|| |j¡ƒ t| | |j¡ƒ d S )Nr   r   rt  )r   r§  ri   r¨  r#   r.  )r\   r2  r$  r=   r=   r>   Útest_circmean_rangeÊ
  s   z!TestCircFuncs.test_circmean_rangec                 C   sf   |j ddg|jd�}ttj|dd�|  d¡ƒ ttj|dd�|  d¡ƒ ttj|dd�|  d¡ƒ d S )	Nr»  rå   rJ  rQ  rŸ  g     @e@gLw¶qAòÍ?g)#p_ê4@)r.  r�  r!   r   r§  r©  rª  )r\   r2  rj   r=   r=   r>   Útest_circfuncs_uint8Ñ
  s   z"TestCircFuncs.test_circfuncs_uint8c                 C   s*   t  | dg¡¡}t d|¡dksJ ‚d S )Nr   r)   )r   rª  r.  ÚmathÚcopysign)r\   r2  rü  r=   r=   r>   Útest_circstd_zeroÙ
  s   zTestCircFuncs.test_circstd_zeroc                 C   sœ   |  ddd¡}| | |¡|k¡r| | |¡dk¡sJ ‚|d|j  d|j  |k}| |¡s2J ‚|| }tj|d d …d f dd�}| ||k¡sLJ ‚d S )NrQ   rô  r¸   r)   r   r   r‰  )rë  ró   ÚsinÚcosr¨  Úanyr   r§  )r\   r2  rj   r$  rü  r=   r=   r>   Ú!test_circmean_accuracy_tiny_inputÞ
  s   ,z/TestCircFuncs.test_circmean_accuracy_tiny_inputc                 C   sb   |j d|jd�}t | |¡| |¡¡}|j ||jd�}tj||j|j d�}t	||ddd� d S )Ng  Ø…W4vCrJ  )r£  r¢  r‰  rÛ   )rN   r   )
r.  r•  rÎ  Úatan2rÑ  rÒ  r   r§  r¨  r!   )r\   r2  rj   rü  r&  Úactualr=   r=   r>   Ú!test_circmean_accuracy_huge_inputó
  s
   z/TestCircFuncs.test_circmean_accuracy_huge_inputN)ro   rp   rq   rÎ   rÝ   rÞ   r   r§  r©  rª  r£  r²  r7   r^   r_   r`   rµ  rÃ  rÅ  r9  rÆ  rE  rÐ   rÊ  rË  rÌ  rÍ  rÐ  rÔ  r×  r=   r=   r=   r>   r—  L
  sv    þÿ



þÿ
þ
þÿ
ÿ
ÿ

ÿþÿÿúÿ	r—  c                   @   sê  e Zd Zej dejde 	g d¢¡e 	ddg¡dœfej
de 	g d¢¡ejd	 d
  e 	ddg¡dœfejde 	g d¢¡e 	ddg¡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d„ ƒZej dddd
dd d!ejge 	ddd
dd d!ejgd"d#d$d%ejd&d'gg¡g¡ej dejej
ejg¡d(d)„ ƒƒZej dddd
dd d!ejge 	ddd
dd d!ejgd"d#d$d%ejd&d'gg¡g¡ej dejej
ejg¡d*d+„ ƒƒZd,S )-ÚTestCircFuncsNanPolicyr˜  grßQ¯vv@)g     v@rd  ra  g     8v@r  g     Øu@g5@ïÞvÅ?g2>ŠB¤jv@r~  gÀ»×G2�?)gaFÂ+ÿÿ?çò”z»Êÿß?rÙ  gA áÅ~@ç¢²”òÿ¿?rÚ  rQ  r   rÄ  gþÇXÊÒ„?gJPmü$Ã@)gš§¥j  @ç«ƒ“Ÿ ð?rÛ  g)h;@ç†{á¥ à?rÜ  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 ]M}|d u rB||dd|d�}t||| dd� q*tjttd��& ||dd|d�}t|d d… || dd� t	t  
|d ¡ƒ W d   ƒ n1 srw   Y  q*d S )Nr·  r†   r   rÂ  rå   r¸  r¹  rG   r…   rº  rE   r»  rž  Úomit)r£  Ú
nan_policyrŠ  r  rM   rÌ   rã   )r7   r!  rÐ   rÈ  r	   rÎ   rÏ   r   r   r   rð  )r\   r¢  r&  rj   rŠ  r‚  r=   r=   r>   Útest_nan_omit_array  s   þý€ûz*TestCircFuncsNanPolicy.test_nan_omit_arrayr™  rš  c                 C   s0   ddddddt jg}t||ddd	�|d
d� d S )Nr·  r†   r   rÂ  rå   r¸  rž  rÝ  ©r£  rÞ  r  rM   )r7   rÐ   r	   )r\   r¢  r&  rj   r=   r=   r>   Útest_nan_omit%  s   
ÿz$TestCircFuncsNanPolicy.test_nan_omitr¢  c                 C   sb   t jt jt jt jt jg}tjttd�� tt  ||dd�¡ƒ W d   ƒ d S 1 s*w   Y  d S )NrÌ   rÝ  ©rÞ  )r7   rÐ   rÎ   rÏ   r   r   r   rð  ©r\   r¢  rj   r=   r=   r>   Útest_nan_omit_all.  s   "ÿz(TestCircFuncsNanPolicy.test_nan_omit_allc              	   C   sš   t jttd��< 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ƒ W d   ƒ d S 1 sFw   Y  d S )NrÌ   rÝ  r   )rÞ  rŠ  r   )rÎ   rÏ   r   r   r7   r!  rÐ   r   rð  ró   r÷   )r\   r¢  rj   r‚  r=   r=   r>   Útest_nan_omit_all_axis5  s   ÿ"ûz-TestCircFuncsNanPolicy.test_nan_omit_all_axisrj   r·  r†   rÂ  rå   r¸  r¹  rG   r…   rº  rE   r»  c                 C   ó   t t||ddd� d S )Nrž  r„  rà  ©rc   rd   rã  r=   r=   r>   Útest_nan_raise?  ó   z%TestCircFuncsNanPolicy.test_nan_raisec                 C   ræ  )Nrž  Úfoobarrà  rç  rã  r=   r=   r>   Útest_bad_nan_policyH  ré  z*TestCircFuncsNanPolicy.test_bad_nan_policyN)ro   rp   rq   rÎ   rÝ   rÞ   r   r§  r7   r!  r©  r¨  rª  rß  rá  rä  rå  rÐ   rè  rë  r=   r=   r=   r>   rØ  þ
  s€    ýÿþÿüÿüÿôÿ
þÿ
ÿ
ÿ
ÿÿÿÿÿÿÿÿrØ  c                   @   s~   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zej dddg¡dd„ ƒZdS )ÚTestMedianTestc                 C   s   t ttjg d¢ƒ d S ©Nr‚   ©rc   rd   r   Úmedian_testre   r=   r=   r>   Útest_bad_n_samplesT  s   z!TestMedianTest.test_bad_n_samplesc                 C   s   t ttjg g d¢ƒ d S rí  rî  re   r=   r=   r>   rô  X  r8  z TestMedianTest.test_empty_samplec                 C   s&   t ttjg d¢g d¢ddgdd� d S )N)r   r   r   r   )r   r   r   r   r   rñ   ©Útiesrî  re   r=   r=   r>   Útest_empty_when_ties_ignored\  s   
ÿz+TestMedianTest.test_empty_when_ties_ignoredc                 C   s8   t ttjg d¢g d¢ƒ t ttjg d¢g d¢dd� d S )N)r   r   r   Úaboverñ  rî  re   r=   r=   r>   Útest_empty_contingency_rowd  s   
ÿz)TestMedianTest.test_empty_contingency_rowc                 C   ó    t ttjg d¢ddgdd� d S )Nr‚   r…   r†   r  rñ  rî  re   r=   r=   r>   Útest_bad_tiesp  ó   
ÿzTestMedianTest.test_bad_tiesc                 C   rö  )Nr‚   r…   r†   rê  râ  rî  re   r=   r=   r>   rë  t  rø  z"TestMedianTest.test_bad_nan_policyc                 C   rö  )Nr‚   r…   r†   r  )r  )rc   rv  r   rï  re   r=   r=   r>   rx  x  rø  zTestMedianTest.test_bad_keywordc                 C   s\   g d¢}g d¢}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\   rj   rü  rn  rg  ÚmedÚtblr=   r=   r>   Útest_simple|  s   

zTestMedianTest.test_simplec                 C   sÆ   g d¢}ddg}g d¢}t  |||¡\}}}}t|dƒ t|g d¢g d¢gƒ t j|||dd�\}}}}t|dƒ t|g d¢g d	¢gƒ t j|||d
d�\}}}}t|dƒ t|g d¢g d	¢gƒ d S )Nr  r†   rD   )rG   rH   rE   )r   r   rƒ   )r…   r   r   rñ   rñ  )r…   r   r   rô  )r   r   rƒ   )r   rï  r
   )r\   rj   rü  Úzrn  rg  r$  rú  r=   r=   r>   Útest_ties_options‹  s   


z TestMedianTest.test_ties_optionsc                 C   s¦   ddt jg}g d¢}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†   rD   Ú	propagaterâ  rÝ  g     Ô?gØ¥vaÒoâ?rb  r   r„  )	r7   rÐ   r   rï  r
   r	   r!  rc   rd   )r\   rj   rü  Úmt1rÿ   rg  r$  r   r=   r=   r>   Útest_nan_policy_optionsŸ  s   


z&TestMedianTest.test_nan_policy_optionsc                 C   s2  g d¢}g d¢}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…   rD   rH   r…   r   r   r   )Úlambda_Fr¦  )r   rï  r
   Úchi2_contingencyr	   )r\   rj   rü  rn  rg  r$  rú  Úexp_statÚexp_pÚdofÚer=   r=   r>   ra   ¬  s(   







zTestMedianTest.test_basicrI  FTc                 C   s>   g d¢}g d¢}t j|||d�}t|j|j|j|jf|ƒ d S )Nr‚   r¦  )r   rï  r
   rY   r¿   rp  Útable)r\   rI  rj   rü  rl   r=   r=   r>   r  Ë  s   zTestMedianTest.test_resultN)ro   rp   rq   rð  rô  ró  rõ  r÷  rë  rx  rû  rý  r   ra   rÎ   rÝ   rÞ   r  r=   r=   r=   r>   rì  R  s    rì  c                   @   s˜   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eddd�dd„ ƒZdd„ Zej dddg¡dd„ ƒZdS )ÚTestDirectionalStatsc                 C   sÀ   t  t  g d¢¡¡ }t  t  g d¢¡¡ }t jt  |¡t  |¡ t  |¡t  |¡ t  |¡fdd�}| | ¡ ¡}| | ¡ ¡}| | ¡ ¡}t 	|¡}|j
}| g d¢¡}t||dd� d S )N)	g33333su@g      O@g33333sB@g      ;@rœ  gÍÌÌÌÌÌ@g333333I@gš™™™™Yv@rW  )	gfffff†P@gÍÌÌÌÌ,Q@gfffff†Q@gfffff†T@g     àS@g     @R@g33333SQ@gffffffM@g33333³I@r   r‰  )gðHPüÓ?g&S£’:Á¿g[±¿ìž<î¿rê  r  )r7   Údeg2radr!  ÚstackrÒ  rÑ  r.  rÔ  r   Údirectional_statsÚmean_directionr!   )r\   r2  ÚdeclÚinclr]   ÚdirstatsÚdirectional_meanÚreference_meanr=   r=   r>   Ú"test_directional_stats_correctnessÖ  s   þý
z7TestDirectionalStats.test_directional_stats_correctnesszangles, refr   r)   r   rÛ   c                 C   sP   |  |¡}|  |¡}|j| |¡| |¡gdd�}dt |¡j }t||ƒ d S )Nr   r‰  )r.  r
  rÒ  rÑ  r   r  Úmean_resultant_lengthr!   )r\   ÚanglesrÙ   r2  r]   rl   r=   r=   r>   Ú'test_directional_stats_2d_special_casesì  s
   

z<TestDirectionalStats.test_directional_stats_2d_special_casesc                 C   s´   t j d¡}| d|j | d¡ ¡}|j| |¡| |¡fdd�}t 	|¡}|j
}t|ƒ}| |d |d ¡}|d|j  }t |¡}	t||	ƒ d|j }
t |¡}t|
|ƒ d S )Nl	   }Ã7çQ×hà0P4u&4Mì r   )rF  r   r‰  r   r)   )r7   rH  rI  r.  r¨  r
  rÒ  rÑ  r   r  r  r   rÕ  r§  r!   r  r©  )r\   r2  rL  ÚtestdataÚtestdata_vectorr  r  r­  Údirectional_mean_angler§  Údirectional_varÚcircular_varr=   r=   r>   Útest_directional_stats_2d÷  s&   ÿþ

ÿ



z.TestDirectionalStats.test_directional_stats_2dc                 C   sl   |  g d¢g d¢g¡}|  | |d¡¡}|  g d¢g d¢gg d¢g d¢gg¡}tj|dd�}t|j|ƒ d S )N©ç‘+Pæz¶ë?rä  rÛ   )r  r¼  rÛ   )r   r   r   r   )r)   rÛ   rÛ   r   r‰  )r.  Útiler   r  r!   r  )r\   r2  r]   Ú
full_arrayr&  r  r=   r=   r>   Ú test_directional_mean_higher_dim  s   
ÿ
ÿÿþz5TestDirectionalStats.test_directional_mean_higher_dimTzchecking array-like inputr¬  c                 C   s`   g d¢g d¢g}|j ||jd�}t |¡}t |¡}t|j|  |j¡ƒ t|j|  |j¡ƒ d S )Nr  )r  r¼  r   rJ  )r.  r•  r   r  r!   r  r  )r\   r2  r]   Ú
data_arrayrÙ   rl   r=   r=   r>   Ú)test_directional_stats_list_ndarray_input  s   


ÿ
ÿz>TestDirectionalStats.test_directional_stats_list_ndarray_inputc                 C   sR   |  d¡}d}tjtt |¡d�� t |¡ W d   ƒ d S 1 s"w   Y  d S )N)r†   zIsamples must at least be two-dimensional. Instead samples has shape: (5,)rÌ   )ré   rÎ   r   rd   ÚreÚescaper   r  )r\   r2  r]   r6  r=   r=   r>   Útest_directional_stats_1d_error%  s
   
"ÿz4TestDirectionalStats.test_directional_stats_1d_errorrK  rO  r•  c                 C   s~   t jg d¢g d¢g|d�}tj| |¡dd�}|t jj|ddd� }tj|dd�}t|j| |j¡ƒ t|j	| |j	¡ƒ d S )	Nr  )g‘+Pæz¶û?r}  rÛ   rJ  T)Ú	normalizerã   )rŠ  ÚkeepdimsF)
r7   r!  r   r  r.  rh  rÀ   r!   r  r  )r\   rK  r2  r]   rl   Únormalized_datarÙ   r=   r=   r>   Ú test_directional_stats_normalize-  s    
ÿÿÿ
ÿ
ÿz5TestDirectionalStats.test_directional_stats_normalizeN)ro   rp   rq   r  rÎ   rÝ   rÞ   r7   r¨  r  r  r   rE  r"  r%  r)  r=   r=   r=   r>   r  Ó  s    þ


r  c                   @   sp   e Zd Zdd„ Zdd„ Zej dg d¢dfg d¢d	fg¡d
d„ ƒZdd„ Z	ej dg d¢¡dd„ ƒZ
dd„ ZdS )ÚTestFDRControlc                 C   sŠ  d}t jt|d�� t g d¢¡ W d   ƒ n1 sw   Y  t jt|d�� t g d¢¡ W d   ƒ n1 s9w   Y  t jt|d�� t ddtjg¡ W d   ƒ n1 sYw   Y  d}t jt|d�� tjg d¢d	d
� W d   ƒ n1 s{w   Y  d}t jt|d�� tjg d¢dd� W d   ƒ n1 s�w   Y  t jt|d�� tjg d¢dd� W d   ƒ d S 1 s¾w   Y  d S )Nz.`ps` must include only numbers between 0 and 1rÌ   )rã   rä  r”  )rä  r”  r   rä  r”  zUnrecognized `method` 'YAK')rä  r”  rt   ÚYAKrÂ  z#`axis` must be an integer or `None`r)  r‰  r  )rÎ   r   rd   r   Úfalse_discovery_controlr7   rÐ   r¾  r=   r=   r>   Útest_input_validation?  s*   ÿÿÿÿÿ"ÿz$TestFDRControl.test_input_validationc                 C   s,   g d¢}t  |¡}g d¢}t||dd� d S )N)rç  g;ßO�—n‚?gÛù~j¼t“?gºI+‡–?gé&1¬ª?gB`åÐ"Û¹?g´Èv¾Ÿ×?çøSã¥›ÄØ?)ç;ßO�—n¢?r/  çºI+‡¦?r0  gË¡E¶óý´?gHáz®GÁ?r.  r.  r  r  )r   r,  r	   )r\   Úpsrl   rÙ   r=   r=   r>   Útest_against_TileStatsR  s   
z%TestFDRControl.test_against_TileStatsr¥  )
gÕoìú�‚Ï?gïQ]
Y‡?gªºhD@ð¬?çu?Döƒ±?g÷°n@t´?g=T	[Û’?g=‰!œÃsÆ?r3  r3  g–ˆ	LÐ?Úbh)
gl¾ß¢ç?gqíÀ¤¡?g�.Ûó¡0Å?çR]D±¦É?g§)<GhôÍ?g$Í‚ý•�«?gö2Ý-Ápà?r5  r5  g]:áÝç?Úbyc                 C   sT   |\}}t j d¡}tjjddd|d�}|d |d< tj||d�}t||d	d
� d S )Nì   Çž<£U) r  rä  rå   rG  rG   rƒ   rÂ  rL   r  )r7   rH  rI  r   Ú
loguniformr:   r,  r	   )r\   r¥  rÙ   rÕ  rL  r1  rl   r=   r=   r>   r©  Y  s   zTestFDRControl.test_against_Rc                 C   sJ   t j d¡}tjjddd|d�}tj|d d�}t | ¡ ¡}t||ƒ d S ©Nr7  r  rä  )rƒ   r…   r†   rG  r‰  )	r7   rH  rI  r   r8  r:   r,  Úravelr
   )r\   rL  r1  rl   rÙ   r=   r=   r>   Útest_axis_Nonek  s
   zTestFDRControl.test_axis_NonerŠ  )r   r   rã   c                 C   sL   t j d¡}tjjddd|d�}tj||d�}t  tj||¡}t||ƒ d S r9  )	r7   rH  rI  r   r8  r:   r,  Úapply_along_axisr
   )r\   rŠ  rL  r1  rl   rÙ   r=   r=   r>   Ú	test_axisr  s
   zTestFDRControl.test_axisc                 C   s8   t t dg¡dgƒ t t d¡dƒ t t g ¡g ƒ d S )Nrå  )r   r   r,  re   r=   r=   r>   rˆ  z  s   zTestFDRControl.test_edge_casesN)ro   rp   rq   r-  r2  rÎ   rÝ   rÞ   r©  r;  r=  rˆ  r=   r=   r=   r>   r*  >  s"    þþýÿ

r*  c                   @   sJ   e Zd Zej deji fejddifejddifej	i fg¡dd„ ƒZ
dS )ÚTestCommonAxisr¥  rý   r…   r   c                    sò   |\‰ ‰t j d¡}| | d¡¡‰ˆ ˆfi ˆ¤ddi¤Ž}| ‡ ‡‡fdd„tˆjd ƒD ƒ¡}t||ƒ ˆ ˆfi ˆ¤ddi¤Ž}| ‡ ‡‡fdd„tˆjd ƒD ƒ¡}t||ƒ ˆ ˆfi ˆ¤dd i¤Ž}ˆ | ˆd	¡fi ˆ¤Ž}t||ƒ d S )
Nl   ‰@ms|Y)rD   rG   rŠ  r   c                    s(   g | ]}ˆ ˆd d …|f fi ˆ¤Ž‘qS r6   r=   r¿  ©r  r<   rj   r=   r>   r€   ’  ó   ( z,TestCommonAxis.test_axis.<locals>.<listcomp>r   c                    s(   g | ]}ˆ ˆ|d d …f fi ˆ¤Ž‘qS r6   r=   r¿  r?  r=   r>   r€   –  r@  r¼  )r7   rH  rI  r.  rá  rù  r!   rÂ  )r\   r¥  r2  rL  rl   rÙ   r=   r?  r>   r=  ˆ  s   &
&
zTestCommonAxis.test_axisN)ro   rp   rq   rÎ   rÝ   rÞ   r   Úsemr‘  Ú	variationr=  r=   r=   r=   r>   r>  €  s    ýr>  )lrÎ  r‡   rÊ  Ú	functoolsr   Únumpyr7   Únumpy.randomr   Únumpy.testingr   r   r   r   r   r	   r
   r   rÎ   r   rc   r#  Úscipyr   r   r   Úscipy.stats._morestatsr   r   r   Úcommon_testsr   Ú
_hypotestsr   r   Úscipy.stats._binomtestr   Úscipy.stats._distr_paramsr   Úscipy.stats._axis_nan_policyr   r   r   r   Úscipy.conftestr   Úscipy._lib._array_apir   r    Úscipy._lib._array_api_no_0dr!   r"   r#   rÝ   rE  ÚdictÚ
matplotlibÚrcParamsÚmatplotlib.pyplotÚpyplotr*  r=  Ú	Exceptionr4  r5  r6  r7  r8  r9  r:  r;  r<  r=  r?   rB   rs   rŒ   rß   rQ  r÷  r+  rS  r  rÑ  rë  rì  r  r>  r¨  r�  rª  r±  rÑ  rR  rá  r  rö  r-  rZ  r]  r`  r“  r—  rØ  rì  r  r*  r>  r=   r=   r=   r>   Ú<module>   s¾   (
ÿ!x  P 2E oJ 0^  79/6
%
33  # I 2T jB