o
    Ö­jýA ã                   @   sà  d dl Z d dlZd dlmZmZmZ d dlmZ d dl	m
Z
 d dlmZmZ d dlmZmZ d dlmZmZ d dlmZ d d	lmZmZmZmZ d dlm  mZ d
d„ Ze j dg d¢¡e j dg d¢¡dd„ ƒƒZ e j dg d¢¡dd„ ƒZ!e j dg d¢¡e j dg d¢¡e j dddg¡dd„ ƒƒƒZ"e jj#e j $d¡e j dg d¢¡dd„ ƒƒƒZ%ddddœZ&e j de& '¡ ¡d d!„ ƒZ(d"d#d#dœZ)d$d%„ Z*d&d'„ Z+e jj#e j de) '¡ ¡d(d)„ ƒƒZ,d*d+d,œZ-e jj#e j de- '¡ ¡d-d.„ ƒƒZ.e j dd/d0g¡e j dd d1g¡d2d3„ ƒƒZ/e j $d4¡e j dg d¢¡e j dd d1g¡d5d6„ ƒƒƒZ0e j dg d¢¡d7d8„ ƒZ1e j dg d¢¡d9d:„ ƒZ2d;d<„ Z3e j d=d d>g¡d?d@„ ƒZ4e j $dA¡e j dg d¢¡dBdC„ ƒƒZ5dDdE„ Z6e j dFdGdHg¡dIdJ„ ƒZ7e j dKg dL¢¡e j dg d¢¡dMdN„ ƒƒZ8dOdP„ Z9e j dg d¢¡dQdR„ ƒZ:e jj#e j dg d¢¡dSdT„ ƒƒZ;e jj#e j <dU¡dVdW„ ƒƒZ=dXdY„ Z>G dZd[„ d[ƒZ?G d\d]„ d]ƒZ@G d^d_„ d_ƒZAd`da„ ZBe j dbg dc¢¡ddde„ ƒZCG dfdg„ dgƒZDdS )hé    N)Úassert_allcloseÚassert_equalÚsuppress_warnings)Úarray_api_compatible)Úrng_integers)Úarray_namespaceÚis_numpy)Úxp_assert_closeÚxp_assert_equal)ÚstatsÚspecial)Úroot)Ú	bootstrapÚmonte_carlo_testÚpermutation_testÚpowerc                  C   s<  d} t jt| d�� tdtjƒ W d   ƒ n1 sw   Y  d} t jt| d�� ttƒ tjƒ W d   ƒ n1 s:w   Y  d} t jt| d�� tg d¢dgftjƒ W d   ƒ n1 s^w   Y  d} t jt| d�� tg d¢g d¢ftjd	d
� W d   ƒ n1 s…w   Y  d} t jt| d�� tdtjdd� W d   ƒ n1 s¦w   Y  d} t jt| d�� tg d¢ftjdd� W d   ƒ n1 sÊw   Y  d} t jt| d�� tg d¢ftjdd� W d   ƒ n1 sîw   Y  d} t jt| d�� tg d¢ftjdd� W d   ƒ n	1 �sw   Y  d} t jt| d�� tg d¢ftjdd� W d   ƒ n	1 �s8w   Y  d} t jt| d�� tg d¢ftjdd� W d   ƒ n	1 �s]w   Y  d} t jt| d�� tg d¢ftjdd� W d   ƒ n	1 �s‚w   Y  d} t jt| d�� tg d¢ftjdd� W d   ƒ n	1 �s§w   Y  d} t jt| d�� tg d¢ftjdd� W d   ƒ n	1 �sÌw   Y  d} t jt| d�� tg d¢ftjd d� W d   ƒ n	1 �sñw   Y  d!} t jt| d�� tg d¢ftjd"d#� W d   ƒ d S 1 �sw   Y  d S )$Nz%`data` must be a sequence of samples.©Úmatché   z(`data` must contain at least one sample.z>each sample in `data` must contain two or more observations...©r   é   é   z=When `paired is True`, all samples must have the same length ©r   r   r   é   T)Úpairedú0`vectorized` must be `True`, `False`, or `None`.Úekki©Ú
vectorizedú`axis` must be an integer.ç      ø?©Úaxisz!could not convert string to floatÚni)Úconfidence_levelz-`n_resamples` must be a non-negative integer.éüÿÿ©Ún_resamplesç     D�@ú+`batch` must be a positive integer or None.©Úbatchz`method` must be in©Úmethodz?`bootstrap_result` must have attribute `bootstrap_distribution'é
   )Úbootstrap_resultz5Either `bootstrap_result.bootstrap_distribution.size`r   ú,SeedSequence expects int or sequence of intsÚherring©Úrng)ÚpytestÚraisesÚ
ValueErrorr   ÚnpÚmeanÚtupleÚ	TypeError)Úmessage© r<   ú^/var/www/html/CropPilot/venv/lib/python3.10/site-packages/scipy/stats/tests/test_resampling.pyÚtest_bootstrap_iv   sx   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ$ÿr>   r-   )ÚbasicÚ
percentileÚBCar"   ©r   r   r   c              	   C   s�   t j d¡ t j ddd¡}t|ft jd | d|dd�}t j d¡ t|ft jd| |dd�}t|jj|jjƒ t|jj	|jj	ƒ t|j
|j
ƒ d S )Nr   r.   é   é   éd   )r+   r-   Úrandom_stater"   r'   )r+   r-   r"   r'   )r7   ÚrandomÚseedÚrandr   r8   r   Úconfidence_intervalÚlowÚhighÚstandard_error)r-   r"   ÚxÚres1Úres2r<   r<   r=   Útest_bootstrap_batchP   s   ÿÿrQ   c                    s–   t j d¡ d}t j |¡‰t j |¡‰ddd„‰ d‡ ‡‡fdd„	}t  tˆƒ¡}t|f|dd�}tˆˆfˆ d	dd
�}t|j|jƒ t|j	|j	ƒ d S )Nr   rE   éÿÿÿÿc                 S   s   | | d j |d�S )Nr   r!   ©r8   ©rN   Úyr"   r<   r<   r=   Úmy_statistick   ó   z+test_bootstrap_paired.<locals>.my_statisticc                    s   ˆ|  }ˆ|  }ˆ ||ƒ}|S ©Nr<   )Úir"   ÚaÚbÚres©rV   rN   rU   r<   r=   Úmy_paired_statisticn   s   
z2test_bootstrap_paired.<locals>.my_paired_statisticr2   T)r   r3   ©rR   )
r7   rG   rH   rI   ÚarangeÚlenr   r   rJ   rM   )r-   Únr^   rY   rO   rP   r<   r]   r=   Útest_bootstrap_pairedc   s   
rc   r   TFc              	   C   sR  t j d¡ d
dd„}d}|| }t j |¡}t j |¡}t j |¡}t|||f||| dddd�}	|	jj|	jjd ks=J ‚g d	¢}
||
|< t  | 	|
¡|¡}t  | 	|
¡|¡}t  | 	|
¡|¡}t|||f||| d|dd�}t
|jj|	jjƒ t
|jj|	jjƒ t
|j|	jƒ t|ƒ}| |¡ t|jjj|ƒ t|jjj|ƒ t|jj|ƒ d S )Nr   rR   c                 S   s$   | j |d�|j |d� |j |d� S ©Nr!   rS   )rN   rU   Úzr"   r<   r<   r=   rV   ‡   s   $z/test_bootstrap_vectorized.<locals>.my_statistic)r.   rC   rD   rE   )r   r-   r3   r"   r'   )rE   )r   r   r   r_   )r7   rG   rH   rI   r   Úbootstrap_distributionÚshaperM   Úbroadcast_toÚreshaper   rJ   rK   rL   ÚlistÚpopr   )r-   r"   r   rV   rg   Ú	n_samplesrN   rU   re   rO   ri   rP   Úresult_shaper<   r<   r=   Útest_bootstrap_vectorized}   sB   
ÿ
ÿÿÿÿ
rn   z#MemoryError with BCa observed in CIc           	      C   s4  t j d¡}tjjddd|d�}d}tjt|ƒd t  |¡t 	|¡d�}|j
|d	�}| ¡ }t|ft jd| |d
�}tdi |¤d|i¤Ž}t|j|dd� t|j|dd� | td|d�¡ tdi |¤|ddœ¤Ž}t|jj| |¡dd� | td|d�¡ tdi |¤|ddœ¤Ž}t|jj| d| ¡dd� d S )Nl   –)ICbX  é   r   éˆ  )ÚlocÚscaleÚsizerF   çffffffî?r   )Údfrq   rr   )Ú
confidence)ÚdataÚ	statisticr'   r-   r3   r$   gü©ñÒMb@?©Úrtolga2U0*©3?©Úatolr   ©r'   r/   Úless©r$   ÚalternativeÚgreaterr<   )r7   rG   Údefault_rngr   ÚnormÚrvsÚtra   r8   ÚsemÚintervalÚstdÚdictr   r   rJ   rM   ÚupdaterL   ÚppfrK   )	r-   r3   rw   ÚalphaÚdistÚexpected_intervalÚexpected_seÚconfigr\   r<   r<   r=   Útest_bootstrap_against_theory«   s$   $ÿ r‘   )g…ëQ¸Å7@gHáz®ÇS@)g\�Âõ(Ü<@g=
×£pU@)gHáz®'@@gìQ¸…ÛV@zmethod, expectedc                 C   s8   t  g d¢¡}t|ft jd| dd�}t|j|dd� d S )N)r.   rD   ç      )@r’   gÍÌÌÌÌÌ+@é   é   é   é   é"   é2   éQ   éY   éy   é†   éÕ   i@B r   )r'   r-   r3   g{®Gázt?ry   )r7   Úarrayr   r8   r   rJ   )r-   ÚexpectedrN   r\   r<   r<   r=   Útest_bootstrap_against_RË   s
   ÿr    iô  iø  c                  C   sð   g d¢} g d¢}dd„ }t j d¡}tj| |f|dd|d�}tj| |f|d	d|d�}tj| |f|d
d|d�}t  |j¡}t  |j¡}t  |j¡}	d}
||
 t|
ƒ }||
 t|
ƒ }|	|
 t|
ƒ }|dk shJ ‚|dksnJ ‚t|ƒdk svJ ‚d S )N)g’‘ÛbFè?gžpÀø³éâ?g—ò|ÂHÜ¿gxy[e}u×¿g*gÖï_Ö?ggiŸ·6ö¿gŒÎ2Žè?)gü´ÝFû–ö?gý÷àµKÛß?gØÕ&F}/µ?gŸ±« ÔÎ?g¦Ë(·iC¢?g}¿$×¥à?g »ØhuÔ?gfjŽƒ}!õ?c                 S   ó$   t j| |d�}t j||d�}|| S rd   )r   Úskew)rN   rU   r"   Ús1Ús2r<   r<   r=   rx   õ   ó   z1test_multisample_BCa_against_R.<locals>.statisticl   tgßy4r?   rE   )r-   r+   r3   r@   Úbcag1™*•Ôø¿g333333Ã¿g333333Ã?ç¸…ëQ¸ž?)r7   rG   r‚   r   r   r8   rJ   Úabs)rN   rU   rx   r3   Ú	res_basicÚres_percentÚres_bcaÚ	mid_basicÚmid_percentÚmid_bcaÚ	mid_wbootÚ
diff_basicÚdiff_percentÚdiff_bcar<   r<   r=   Útest_multisample_BCa_against_Rè   s.   ÿÿÿr³   c                  C   st   t  g d¢¡} t  g d¢¡}d
dd„}|| g}t ||¡}d}d}|j}d}t ||||||¡\}	}	}
t|
d	ƒ d S )N)	r.   é   é   é(   é.   r˜   é4   éh   é’   )é   r–   é&   é^   éc   é�   éÅ   r   c                 S   ó   t j| |d�t j||d� S rd   ©r7   r8   )re   rU   r"   r<   r<   r=   rx   ,  ó   z:test_BCa_acceleration_against_reference.<locals>.statisticrR   rt   rE   gÄËe{‹†?©r   )r7   rž   r   r   rf   Ú_resamplingÚ_bca_intervalr   )rU   re   rx   rw   r\   r"   rŒ   Útheta_hat_br+   Ú_Úa_hatr<   r<   r=   Ú'test_BCa_acceleration_against_reference"  s   

ÿrÊ   c              	   C   s¬   t j d¡ d}d}d}tjddd�}| ¡ }d}|j||fd	�}t|ft j||d
| dd�}	|	j}
t  	|
d |k ||
d k @ ¡}||ksFJ ‚t 
|||¡j}|dksTJ ‚d S )Nr   rE   éç  çÍÌÌÌÌÌì?ro   r   ©rq   rr   iÐ  ©rs   r˜   rR   ©rx   r$   r'   r+   r-   r"   çš™™™™™¹?©r7   rG   rH   r   rƒ   r8   r„   r   rJ   ÚsumÚ	binomtestÚpvalue)r-   rŸ   rb   r'   r$   r�   Ú	stat_trueÚn_replicationsrw   r\   ÚciÚci_contains_truerÔ   r<   r<   r=   Ú#test_bootstrap_against_itself_1samp;  s2   úÿÿrÙ   i|  iz  )r?   r@   c              	   C   sà   t j d¡ d}d}d}d}ddd„}tjdd	d
�}tjdd	d
�}| ¡ | ¡  }	d}
|j|
|fd�}|j|
|fd�}t||f|||d| dd�}|j}t  	|d |	k |	|d	 k @ ¡}||ks`J ‚t 
||
|¡j}|dksnJ ‚d S )Nr   rE   éx   rË   rÌ   rR   c                 S   r¡   rd   rÂ   )Údata1Údata2r"   Úmean1Úmean2r<   r<   r=   Úmy_statw  r¥   z4test_bootstrap_against_itself_2samp.<locals>.my_statr   rÍ   rÐ   éè  rÎ   r˜   rÏ   r_   rÑ   )r-   rŸ   Ún1Ún2r'   r$   rß   Údist1Údist2rÕ   rÖ   rÛ   rÜ   r\   r×   rØ   rÔ   r<   r<   r=   Ú#test_bootstrap_against_itself_2sampg  s:   
úÿÿrå   r?   r@   r   c              	      s¨   ddœdd„‰ ‡ fdd„}t j d¡ t j dd¡}t j dd¡}t j dd¡}t|||fˆ d	|d
| dd�}t|||f|d|d
| dd�}t|j|jƒ t|j|jƒ d S )Nr   r!   c                    ó   t ‡ fdd„|D ƒƒS )Nc                 3   ó   � | ]}|  ˆ ¡V  qd S rX   rS   ©Ú.0Úsampler!   r<   r=   Ú	<genexpr>�  ó   € zEtest_bootstrap_vectorized_3samp.<locals>.statistic.<locals>.<genexpr>©rÒ   ©r"   rw   r<   r!   r=   rx   ›  ó   z2test_bootstrap_vectorized_3samp.<locals>.statisticc                     ó&   | D ]	}|j dksJ ‚qˆ | ddiŽS ©Nr   r"   r   ©Úndim©rw   rê   ©rx   r<   r=   Ústatistic_1dŸ  ó   z5test_bootstrap_vectorized_3samp.<locals>.statistic_1dr   ro   TrE   )r   r"   r'   r-   r3   F©r7   rG   rH   rI   r   r   rJ   rM   )r-   r"   rö   rN   rU   re   rO   rP   r<   rõ   r=   Útest_bootstrap_vectorized_3samp˜  s   ÿÿrù   z'Failure is not concerning; see gh-14107c              
      s„   ddd„‰ ‡ fdd„}t j d¡ t j dd¡}t|fˆ d|d	d | dd
�}t|f|d|d	d| dd
�}t|j|jƒ t|j|jƒ d S )Nr   c                 S   s   | j |d�S rd   rS   ©rN   r"   r<   r<   r=   rx   µ  s   z2test_bootstrap_vectorized_1samp.<locals>.statisticc                    s   | j dksJ ‚ˆ | dd�S ©Nr   r   r!   rò   ©rN   rõ   r<   r=   rö   ¹  s   z5test_bootstrap_vectorized_1samp.<locals>.statistic_1dr   ro   TrE   )r   r"   r'   r+   r-   r3   Fr.   rÄ   rø   )r-   r"   rö   rN   rO   rP   r<   rõ   r=   Útest_bootstrap_vectorized_1samp±  s   
þþrý   c              	   C   sÈ   ddg }| dkrMt jdd��5 d}tjtj|d�� t|gt j| d�}t|j	t j
t j
fƒ W d   ƒ n1 s8w   Y  W d   ƒ n1 sGw   Y  nt|gt j| d�}t|j	d	ƒ t|jd
ƒ d S )Né#   ç     ˆÃ@rA   Úignore)Úinvalidz0The BCa confidence interval cannot be calculatedr   r,   )rÿ   rÿ   r   )r7   Úerrstater4   Úwarnsr   ÚDegenerateDataWarningr   r8   r   rJ   ÚnanrM   )r-   rw   Úmsgr\   r<   r<   r=   Útest_bootstrap_degenerateÊ  s   
þ€þ€r  c                 C   sš   t j d¡}tjddd�}|jd|d�}|f}t|tj| dt j d¡d�}t|tj| dt j d¡d	d
�}t|j	|j	ƒ t|j
|j
ƒ t|j
t jƒsKJ ‚d S )Nl   E<1

 r   r   rÍ   rE   ©rs   rF   i[%  ©r-   r'   r3   F)r-   r'   r3   r   )r7   rG   r‚   r   rƒ   r„   r   r¢   r   rJ   rM   Ú
isinstanceÚfloat64)r-   r3   r�   rw   r\   Úrefr<   r<   r=   Útest_bootstrap_gh15678Ù  s   
ÿÿr  c                  C   s´   t j d¡} tjddd�}|jd| d�}t  |¡}|f}t|t jddt j d¡d	�}||jj	ks2J ‚tt  
|¡ t jddt j d¡d	�}t|jj	 |jjƒ t|jj |jj	ƒ d S )
Nl   n!|'x`5 r   r   rÍ   rE   r  rA   if  r	  )r7   rG   r‚   r   rƒ   r„   Úminr   rJ   rK   rž   Úmaxr   rL   )r3   r�   rw   Útrue_minr\   rP   r<   r<   r=   Útest_bootstrap_minë  s$   

ÿ
ÿ
ÿ
ÿr  Úadditional_resamplesrà   c              	   C   s¸   t j d¡}|jdd�}d}| }||  }t j d¡}tj|ft j||ddd�}tj|ft j||d	d
|d�}t j d¡}tj|ft j||d	d
d�}t|j|jdd� t|j|jdd� d S )Nl    ]ƒ4’Mþ rE   rÎ   rà   l   Émdpi4ð rt   r@   )r'   r3   r$   r-   rÌ   rA   )r'   r3   r$   r-   r/   ç›+¡†›„=ry   )	r7   rG   r‚   r   r   r8   r   rM   rJ   )r  r3   rN   rá   râ   Ún3r\   r  r<   r<   r=   Útest_re_bootstrapþ  s*   ÿþÿ

ÿr  zSensible to machine precisionc                 C   s6  t j d¡}tjddd�}|jd|d�f}t|t j|dd�}tjdi |¤d	d
i¤Ž}| 	td|d�¡ tjdi |¤dddœ¤Ž}tjdi |¤dddœ¤Ž}t
|jj|jjdd� t
|jj|jjdd� t  |jj¡slJ ‚t  |jj¡suJ ‚tjtdd�� tjdi |¤ddi¤Ž W d   ƒ d S 1 s”w   Y  d S )Nl   @Q´ixt r   r   rÍ   rE   r  rR   )rw   rx   r3   r"   r$   rÌ   r   r}   rt   r~   r   r�   r  ry   z`alternative` must be one ofr   r€   z	ekki-ekkir<   )r7   rG   r‚   r   rƒ   r„   r‰   rˆ   r   rŠ   r   rJ   rL   rK   ÚisneginfÚisposinfr4   r5   r6   )r-   r3   r�   rw   r�   r…   ÚlÚgr<   r<   r=   Útest_bootstrap_alternative  s&   ÿÿ"ÿr  c                  C   sž   d} t j d¡ t jj| Ž }tt |¡ƒ}t| d ƒD ]}|d|d d …f }t j||dd�}t  	||¡s6J ‚qt j
ttj|dd�ƒdd�}t  	||¡sMJ ‚d S )	N©r   r   ro   é   r   rR   .r!   r   r*   éþÿÿÿ)r7   rG   rH   rI   ÚnextrÅ   Ú_jackknife_resampleÚrangeÚdeleteÚarray_equalÚconcatenaterj   )rg   rN   rU   rY   ÚslcrŸ   Úy2r<   r<   r=   Útest_jackknife_resample1  s   ÿr&  Úrng_nameÚRandomStater‚   c                 C   s¼   t tj| d ƒ}|d u rt | › d�¡ |dƒ}|dƒ}d}d}tj d¡ tjj|Ž }tj|||d�}t	|ƒD ]$}|d|d d …f }	t
|d|d |d ƒ}
|d|
f }t |	|¡s[J ‚q7d S )Nz not available.r   r.   r  r2   .rR   )Úgetattrr7   rG   r4   ÚskiprH   rI   rÅ   Ú_bootstrap_resampler   r   r"  )r'  r3   Úrng1Úrng2r'   rg   rN   rU   rY   r$  ÚjsrŸ   r<   r<   r=   Útest_bootstrap_resampleD  s    ør/  Úscore)r   ç      à?r   c                 C   sV   d}t j d¡ t jj|Ž }tj|| dd�}dd„ }||| dd�d }t||dƒ d S )	N)r.   é   é   r   rR   r!   c                 S   s   t  tj|| |¡S rX   )r7   Úapply_along_axisr   Úpercentileofscore)rZ   r0  r"   r<   r<   r=   Úvectorized_posf  ó   z0test_percentile_of_score.<locals>.vectorized_posrE   çVçž¯Ò<)r7   rG   rH   rI   rÅ   Ú_percentile_of_scorer   )r0  r"   rg   rN   Úpr6  Úp2r<   r<   r=   Útest_percentile_of_score^  s   r<  c                  C   s‚   d} t j d¡ t jj| Ž }t jj| d d… Ž d }t ||¡}t| d ƒD ]}|| }t j|| || dd�}t||dƒ q&d S )N)r.   r2  r   rR   rE   r!   r8  )	r7   rG   rH   rI   rÅ   Ú_percentile_along_axisr   r@   r   )rg   rN   ÚqrU   rY   r\   rŸ   r<   r<   r=   Útest_percentile_along_axisn  s   ýr?  c                    sˆ   dd„ ‰ ‡ fdd„}t  |¡}tj d¡ tj ddd¡}tj dd	d¡}tj d	dd¡}ˆ |||| d
�}||||| d
�}t||ƒ d S )Nc                    ræ   )Nc                 3   rç   rX   rS   rè   r!   r<   r=   rë   …  rì   z>test_vectorize_statistic.<locals>.statistic.<locals>.<genexpr>rí   rî   r<   r!   r=   rx   ƒ  rï   z+test_vectorize_statistic.<locals>.statisticc                     rð   rñ   rò   rô   rõ   r<   r=   rö   ‡  r÷   z.test_vectorize_statistic.<locals>.statistic_1dr   r   ro   r  r   r!   )rÅ   Ú_vectorize_statisticr7   rG   rH   rI   r   )r"   rö   Ú
statistic2rN   rU   re   rO   rP   r<   rõ   r=   Útest_vectorize_statistic  s   
rB  c                 C   sÔ   t j d¡}d}tjj|d|dœŽ}dd„ }t|f|| ddd	d
�}t j|jj	j
|k |jjj
|k@ dd�}t  |dk¡s=J ‚t  |dk¡sFJ ‚|jj	jdksOJ ‚|jjjdksXJ ‚|jjdks`J ‚|jjdkshJ ‚d S )Nl   s:â )r   r1  )rE   rE   r  c                 S   s"   t  t  | |¡t j| |dd�g¡S )Nr   )Úddof)r7   Úasarrayr8   rˆ   )rw   r"   r<   r<   r=   rx   ©  s   ÿz/test_vector_valued_statistic.<locals>.statisticrR   é'  éÈ   )r-   r"   r'   r+   r   r!   éZ   rE   ©r   rE   )r   rE   rE  )r7   rG   r‚   r   rƒ   r„   r   rÒ   rJ   rK   ÚTrL   Úallrg   rM   rf   )r-   r3   Úparamsrê   rx   r\   Úcountsr<   r<   r=   Útest_vector_valued_statisticš  s$   ÿÿþrM  zignore::RuntimeWarningc                     s²   t j d¡} dd„ ‰ ‡ fdd„‰‡fdd„}g d¢g d	¢g d
¢g d¢g d¢g}t  |¡j}t||| dd�}t|ˆ| dd�}t|jjd |jjdd� t|jj	d |jj	dd� d S )Nl   \˜QÁc                 S   sZ   |   |¡}|  |¡}| |d  ||d     |¡}d| |  |¡| |¡ || d   S )N).Nr   )r8   Úvar)rN   rU   r"   ÚxmÚymÚcovr<   r<   r=   ÚconcordanceÄ  s   

(z9test_vector_valued_statistic_gh17715.<locals>.concordancec                    s"   | | }| | }t  ˆ |||ƒ¡S rX   )r7   Ú
nan_to_num)ÚtpÚtnÚfpÚfnr"   ÚactualrŸ   )rR  r<   r=   rx   Ê  s   z7test_vector_valued_statistic_gh17715.<locals>.statisticc                    s   ˆ g |¢| ‘R Ž t jdf S )N.)r7   Únewaxis©r"   Úargsrõ   r<   r=   Ústatistic_extradimÏ  rÃ   z@test_vector_valued_statistic_gh17715.<locals>.statistic_extradim)r   r   r   r   )r   r   r   r   )r   r  r   r   )r   r  r   r   )r   é   r   r   T)r3   r   r   r8  r{   )
r7   rG   r‚   rž   rI  r   r   rJ   rK   rL   )r3   r\  rw   r\   r  r<   )rR  rx   r=   Ú$test_vector_valued_statistic_gh17715»  s&   üÿ
ÿr^  c                  C   sH  t j d¡} |  d¡}|  d¡}dd„ }t ||f|¡ tj|j|jf|dd� d}tjt|d	�� t ||d d
…df f|¡ W d   ƒ n1 sJw   Y  tjt|d	�� t ||d d
…dd…f f|¡ W d   ƒ n1 sqw   Y  tjt|d	�� tj|j|jdd…d d
…f f|dd� W d   ƒ d S 1 s�w   Y  d S )Ni²äF|)r.   r   )rC   r   c                 S   ó   t j| ||d�jS rd   ©r   Ú	ttest_indrx   rT   r<   r<   r=   rx   å  r7  z test_gh_20850.<locals>.statisticr   r!   z-Ignoring the dimension specified by `axis`...r   r.   r   )	r7   rG   r‚   r   r   rI  r4   r  ÚFutureWarning)r3   rN   rU   rx   r;   r<   r<   r=   Útest_gh_20850á  s    

ÿ"ÿ*"ÿrc  c                
   @   s´  e Zd ZdZdefdd„Zdd„ Zedd„ ƒZed	d
„ ƒZ	e
jjedd„ ƒƒZee
j deddƒ¡dd„ ƒƒZee
j dd¡dd„ ƒƒZe
jje
j dd¡e
j de ddd¡¡dd„ ƒƒƒZe
j dejejf¡e
j dd¡e
j de dd d¡¡d!d"„ ƒƒƒZe
j de dd¡¡d#d$„ ƒZe
jje
j de ddd¡¡d%d&„ ƒƒZe
jje
j d'd(¡e
j d)edƒ¡d*d+„ ƒƒƒZd,d-„ Zd.d/„ Zd0d1„ Ze
j  d ¡e
j !d2¡d3d4„ ƒƒZ"dS )5ÚTestMonteCarloHypothesisTestçš™™™™™™?Nc                    s   ‡ ‡‡‡fdd„S )Nc                     s   ˆj ˆ| dˆi|¤Žˆ d�S )NrF   ©Údtype)rD  )r[  Úkwds©rg  ÚrsÚrvs_inÚxpr<   r=   Ú<lambda>ü  s    ÿz6TestMonteCarloHypothesisTest.get_rvs.<locals>.<lambda>r<   )Úselfrk  rj  rg  rl  r<   ri  r=   Úget_rvsû  r7  z$TestMonteCarloHypothesisTest.get_rvsc                    s   ‡ fdd„}|S )Nc                    s8   ˆ j | |d�}ˆ j| |dd�}| j| }||| d  S )Nr!   r   )r"   Ú
correctionr1  )r8   rN  rg   )rN   r"   ÚmÚvrb   ©rl  r<   r=   rx      s   
z=TestMonteCarloHypothesisTest.get_statistic.<locals>.statisticr<   )rn  rl  rx   r<   rs  r=   Úget_statisticÿ  s   z*TestMonteCarloHypothesisTest.get_statisticc              
      s  ˆ   g d¢¡}d%‡ fdd„	}d}ˆ  d¡ˆ  d¡f}tjjtjjf}tjt|d�� t||dd	„ d
d� W d   ƒ n1 s>w   Y  d}tjt|d�� t|tjj|dd� W d   ƒ n1 saw   Y  d}tjt|d�� t|tjj|dd� W d   ƒ n1 s„w   Y  d}tjt	|d�� t|d |ƒ W d   ƒ n1 s£w   Y  tjt	|d�� ˆ   ddgddgg¡}t|dd	„ d g|ƒ W d   ƒ n1 sÏw   Y  d}tjt|d�� ˆ   g d¢g¡}t|dd	„ dd	„ g|ƒ W d   ƒ n1 süw   Y  d}tjt	|d�� t|tjjd ƒ W d   ƒ n	1 �sw   Y  d}tjt|d�� t|tjj|dd� W d   ƒ n	1 �sBw   Y  d}tjt|d�� t|tjj|dd� W d   ƒ n	1 �sfw   Y  d}tjt|d�� t|tjj|dd� W d   ƒ n	1 �sŠw   Y  d}tjt|d�� t|tjj|dd� W d   ƒ n	1 �s®w   Y  d}tjt|d�� t|tjj|d d!� W d   ƒ n	1 �sÒw   Y  d"}‡ fd#d$„}z
t||ˆ j
ƒ W d S  t�y } zt|ƒ |¡�süJ ‚W Y d }~d S d }~ww )&N©ç      ð?ç       @ç      @c                    s   ˆ j | |d�S rd   rS   rú   rs  r<   r=   Ústat  ó   z@TestMonteCarloHypothesisTest.test_input_validation.<locals>.statz/Array shapes are incompatible for broadcasting.©r   ro   )r   ro   r   c                 S   s   dS ©Nr   r<   rT   r<   r<   r=   rm    ó    zDTestMonteCarloHypothesisTest.test_input_validation.<locals>.<lambda>rR   r!   r   r    r   r   ú0`rvs` must be callable or sequence of callables.rv  rw  rx  g      @c                 S   ó   | S rX   r<   rü   r<   r<   r=   rm  #  r}  úIf `rvs` is a sequence...c                 S   r  rX   r<   rü   r<   r<   r=   rm  (  r}  z`statistic` must be callable.ú)`n_resamples` must be a positive integer.r%   r&   r(   r)   r*   ú`alternative` must be in...r   ©r€   z!Signature inspection of statisticc                    s   ˆ   tjj| d�¡S )NrÎ   )rD  r   rƒ   r„   rÎ   rs  r<   r=   r„   D  rW   z?TestMonteCarloHypothesisTest.test_input_validation.<locals>.rvsrX   )rD  Úzerosr   rƒ   r„   r4   r5   r6   r   r:   r8   ÚstrÚ
startswith)rn  rl  rw   ry  r;   Útempr„   Úer<   rs  r=   Útest_input_validation  sz   ÿÿÿÿþþÿÿÿÿÿÿ"€ÿz2TestMonteCarloHypothesisTest.test_input_validationc                    sÂ   ‡ fdd„}d}ˆ   g d¢¡}tˆ ƒrt|tjj|ƒ d S tjt|d�� t|tjj|ƒ W d   ƒ n1 s7w   Y  tjt|d�� t|tjjˆ j	dd� W d   ƒ d S 1 sZw   Y  d S )Nc                    s
   ˆ   | ¡S rX   rS   rü   rs  r<   r=   Únon_vectorized_statisticM  s   
zWTestMonteCarloHypothesisTest.test_input_validation_xp.<locals>.non_vectorized_statisticz!`statistic` must be vectorized...ru  r   Fr   )
rD  r   r   r   rƒ   r„   r4   r5   r6   r8   )rn  rl  rŠ  r;   rê   r<   rs  r=   Útest_input_validation_xpK  s   ÿ"ÿz5TestMonteCarloHypothesisTest.test_input_validation_xpc                    sV  t j d¡}| |jdd�¡}t|ƒ‰‡ ‡‡fdd„‰dˆ_dˆ_|ˆddd	œ}ˆ jt	j
jt j d
¡|d�|d< tdddi|¤Ž}tˆjdƒ tˆjdƒ ˆ jt	j
jt j d
¡|d�|d< dˆ_tdddi|¤Ž}tˆjdƒ tˆjdƒ ˆ jt	j
jt j d
¡|d�|d< dˆ_tdi |¤Ž}tˆjdƒ tˆjdƒ t|j|jƒ t|j|jƒ d S )Nì   á)�p r.   rÎ   c                    sF   | j dkrdn| jd }t|ˆjƒˆ_ˆ jd7  _ˆ  ˆ¡| |d�S rû   )ró   rg   r  Ú
batch_sizeÚcounterrt  ©rN   r"   r�  ©rn  rx   Úxp_testr<   r=   rx   d  s   z:TestMonteCarloHypothesisTest.test_batch.<locals>.statisticr   rà   T)rê   rx   r'   r   iç rs  r„   r+   r   éé  r˜   r”   r   r<   )r7   rG   r‚   rD  Ústandard_normalr   rŽ  r�  ro  r   rƒ   r„   r   r   r
   rÔ   )rn  rl  r3   rN   rh  rO   rP   Úres3r<   r�  r=   Ú
test_batch[  s2   ÿ   z'TestMonteCarloHypothesisTest.test_batchr"   éýÿÿÿr   c                 C   sú   t j d¡}g d¢}d||< | d¡j}dt|ƒv rdnd}tt |ƒ}t||ƒ}|j||d�}	tj	|	d	|d
�}
|j|	|d�}	t
|	ƒ}|  |¡}| jtjj|||d�}t|	||dd|d�}|j|
j|d�}|j|
j|d�}t|j|ƒ t|j|| jd� d S )Niòt$ ©r   r   r   rE   rv  Ú64Úfloat32r  )rs   rg  ç        )Úpopmeanr"   rf  )rg  rl  Ti N  )r   r'   r"   r{   )r7   rG   r‚   rD  rg  r…  r)  r“  r   Úttest_1sampr   rt  ro  rƒ   r„   r   rx   rÔ   r	   r|   )rn  r"   rl  r3   rs   Údtype_defaultÚ	dtype_strÚdtype_nprg  rN   rŸ   r‘  rx   r„   r\   Úref_statisticÚ
ref_pvaluer<   r<   r=   Útest_axis_dtypeƒ  s(   



ÿz,TestMonteCarloHypothesisTest.test_axis_dtyper€   )ú	two-sidedr~   r�   c           
      C   sš   t j d¡}|jdd�}tj|d|d�}| |¡}t|ƒ}|  |¡}| j	tj
j||d�}t||||d�}	t|	j| |j¡ƒ t|	j| |j¡| jd� d S )Né)Üêr3  rÎ   rš  rƒ  rs  r{   )r7   rG   r‚   r“  r   rœ  rD  r   rt  ro  rƒ   r„   r   r	   rx   rÔ   r|   )
rn  r€   rl  r3   rN   r  r‘  rx   r„   r\   r<   r<   r=   Útest_alternative¦  s   

z-TestMonteCarloHypothesisTest.test_alternative)r~   r�   rZ   g      à¿r1  ro   c           	         s¸   t j d¡}tjj|d|d�}tj|tjjˆ d�}‡ fdd„}|  	tjj|¡}t
|||ddˆ d	�}t|j|jƒ ˆ d
krHt|j|j| jd� d S ˆ dkrZtd|j |j| jd� d S d S )Nr¤  r3  ©rZ   rs   rF   rƒ  c                    s   t j| t jjdˆ d�jS ©NÚasymp)Úmoder€   )r   Úks_1samprƒ   Úcdfrx   rü   rƒ  r<   r=   Ústatistic1dÆ  s
   ÿÿzGTestMonteCarloHypothesisTest.test_against_ks_1samp.<locals>.statistic1drà   F©r'   r   r€   r�   r{   r~   r   )r7   rG   r‚   r   Úskewnormr„   rª  rƒ   r«  ro  r   r   rx   rÔ   r|   )	rn  r€   rZ   r3   rN   rŸ   r¬  Únorm_rvsr\   r<   rƒ  r=   Útest_against_ks_1samp¼  s   þÿz2TestMonteCarloHypothesisTest.test_against_ks_1sampÚhypotest©r~   r�   r£  r  r   c           
         s~   t j d¡}tjj|d|d�}ˆ ||d�}‡ fdd„}|  tjj|¡}t|||d|d�}	t	|	j
|j
ƒ t	|	j|j| jd	� d S )
Ni	é–   r¦  rƒ  c                    s   ˆ | |d�j S rd   rõ   rú   ©r±  r<   r=   rx   ß  rz  zLTestMonteCarloHypothesisTest.test_against_normality_tests.<locals>.statisticT©r   r€   r{   )r7   rG   r‚   r   r®  r„   ro  rƒ   r   r   rx   rÔ   r|   )
rn  r±  r€   rZ   r3   rN   rŸ   rx   r¯  r\   r<   r´  r=   Útest_against_normality_testsÕ  s   
ÿz9TestMonteCarloHypothesisTest.test_against_normality_testsc                 C   sx   t j d¡}tjj|d|d�}t |¡}dd„ }|  tjj|¡}t	|||ddd�}t
|j|jƒ t
|j|j| jd	� d S )
Ni!M¼ r³  r¦  c                 S   s   t j| |d�jS rd   )r   Ú
normaltestrx   rú   r<   r<   r=   rx   ñ  ó   zGTestMonteCarloHypothesisTest.test_against_normaltest.<locals>.statisticTr�   rµ  r{   )r7   rG   r‚   r   r®  r„   r·  ro  rƒ   r   r   rx   rÔ   r|   )rn  rZ   r3   rN   rŸ   rx   r¯  r\   r<   r<   r=   Útest_against_normaltesté  s   

ÿz4TestMonteCarloHypothesisTest.test_against_normaltestc                 C   s€   t j d¡}tjj|d|d�}t |tjj¡}dd„ }|  	tjj|¡}t
|||dddd	�}t|j|jƒ t|j|j| jd
� d S )Niåÿr3  r¦  c                 S   s   t  | t jj¡jS rX   )r   Úcramervonmisesrƒ   r«  rx   rü   r<   r<   r=   r¬    r7  zMTestMonteCarloHypothesisTest.test_against_cramervonmises.<locals>.statistic1drà   Fr�   r­  r{   )r7   rG   r‚   r   r®  r„   rº  rƒ   r«  ro  r   r   rx   rÔ   r|   )rn  rZ   r3   rN   rŸ   r¬  r¯  r\   r<   r<   r=   Útest_against_cramervonmisesû  s   þz8TestMonteCarloHypothesisTest.test_against_cramervonmisesÚ	dist_name)rƒ   ÚlogisticrY   c              	      s&  ‡ ‡fdd„}t ƒ �}| t¡ t|dd�}W d   ƒ n1 s w   Y  |js*J ‚|jd }tj d¡}t	j
j|d|d�}t	 |ˆ ¡}	|	j}
|	jˆ d }‡ fdd	„}|  tt	ˆ ƒj|¡}t ƒ �}| t¡ t|||d
ddd�}W d   ƒ n1 s{w   Y  t|j|
ƒ t|j|d| j d� d S )Nc                    s:   t j d¡}tjj| d|d�}t |ˆ ¡}|j|jˆ  S )Né«x€rE   r  )	r7   rG   r‚   r   Útukeylambdar„   Úandersonrx   Úcritical_values)rZ   r3   rN   rŸ   ©r¼  rY   r<   r=   Úfun  s   z?TestMonteCarloHypothesisTest.test_against_anderson.<locals>.funr   )Úx0r¾  rE   r  c                    ó   t  | ˆ ¡jS rX   )r   rÀ  rx   rü   )r¼  r<   r=   r¬  /  rz  zGTestMonteCarloHypothesisTest.test_against_anderson.<locals>.statistic1drà   Fr�   r­  r   r{   )r   ÚfilterÚRuntimeWarningr   ÚsuccessrN   r7   rG   r‚   r   r¿  r„   rÀ  rx   Úsignificance_levelro  r)  r   r   rÔ   r|   )rn  r¼  rY   rÃ  ÚsupÚsolrZ   r3   rN   rŸ   Úexpected_statÚ
expected_pr¬  Údist_rvsr\   r<   rÂ  r=   Útest_against_anderson  s.   
þ


þþz2TestMonteCarloHypothesisTest.test_against_andersonc                 C   s>   t j d¡}t  d¡}t||jt jddd�}|jdksJ ‚d S )Nl   IL‘~QH(s rE   Tr~   rµ  g-Cëâ6?)r7   rG   r‚   r„  r   r8   rÔ   )rn  r3   rN   r\   r<   r<   r=   Útest_p_never_zero<  s   
ÿz.TestMonteCarloHypothesisTest.test_p_never_zeroc                 C   sˆ   t j d¡}|jdd�|jdd�f}|j|jf}dd„ }tj|||dd�}tj|d	 |d
 gdd�}t|j|jƒ t|j	|j	dd� d S )Nì   ‰F:f¡mPr{  rÎ   é   c                 S   r_  rd   r`  rT   r<   r<   r=   rx   J  r7  zFTestMonteCarloHypothesisTest.test_against_ttest_ind.<locals>.statisticrR   r!   r   r   ç{®Gáz”?ry   )
r7   rG   r‚   Únormalr   r   ra  r   rx   rÔ   ©rn  r3   rw   r„   rx   r\   r  r<   r<   r=   Útest_against_ttest_indE  s   z3TestMonteCarloHypothesisTest.test_against_ttest_indc                 C   sœ   t j d¡}|jdd�|jdd�|jdd�|jdd�f}|j|j|j|jf}dd„ }tj|||d	d
d�}tj|dd	iŽ}t|j|jƒ t|j	|j	dd� d S )NrÑ  rH  rÎ   )r   ée   )r   éf   )r   ég   c                 W   s   t j|d| iŽjS )Nr"   )r   Úf_onewayrx   rZ  r<   r<   r=   rx   Y  r7  zETestMonteCarloHypothesisTest.test_against_f_oneway.<locals>.statisticrR   r�   ©r"   r€   r"   ç{®Gáz„?r{   )
r7   rG   r‚   rÔ  r   r   rÚ  r   rx   rÔ   rÕ  r<   r<   r=   Útest_against_f_onewayR  s   ÿÿz2TestMonteCarloHypothesisTest.test_against_f_onewayz2Statistic may not depend on sample order on 32-bitc                    sŒ   t j d¡‰ d}‡ fdd„}|dƒ}tj||t jd|d�}t  |j|jk¡}t  |j|jd k¡}||ks7J ‚|j	|d	 |d	  ksDJ ‚d S )
Nl    UÕ5<H rE  c                    s   dt jdd�j| ˆ d� S )Nrv  gZd;ßOÕ?)r:  r  )r   Ú	bernoullir„   rÎ   r2   r<   r=   r„   k  s   zITestMonteCarloHypothesisTest.test_finite_precision_statistic.<locals>.rvsrE   r~   )r€   r'   g     ð?r   )
r7   rG   r‚   r   r   rN  rÒ   Únull_distributionrx   rÔ   )rn  r'   r„   rN   r\   Úc0Úc1r<   r2   r=   Útest_finite_precision_statisticc  s   ÿz<TestMonteCarloHypothesisTest.test_finite_precision_statistic)#Ú__name__Ú
__module__Ú__qualname__r|   r7   ro  rt  r   r‰  r‹  r4   ÚmarkÚxslowr•  Úparametrizer   r¢  r¥  ÚslowÚlinspacer°  r   ÚskewtestÚkurtosistestr¶  r`   r¹  r»  rÏ  rÐ  rÖ  rÝ  Ú	fail_slowÚxfail_on_32bitrâ  r<   r<   r<   r=   rd  ø  sP    	
B
&!
*	

rd  c                   @   sD   e Zd Zdd„ Zejjdd„ ƒZejjdd„ ƒZdd„ Z	d	d
„ Z
dS )Ú	TestPowerc              	   C   s  t j d¡}tj}|j|jf}d}d}tjt|d�� t	|||dd� W d   ƒ n1 s-w   Y  d}tjt
|d�� t	|d |ƒ W d   ƒ n1 sLw   Y  tjt
|d�� t	||jdf|ƒ W d   ƒ n1 slw   Y  d	}tjt|d�� t	||jf|ƒ W d   ƒ n1 s�w   Y  tjt|d�� t	||d
ƒ W d   ƒ n1 sªw   Y  d}tjt|d�� t	|||dd� W d   ƒ n1 sËw   Y  tjt|d�� t	|||t  dd¡d� W d   ƒ n1 sîw   Y  d}tjt
|d�� t	|||dd� W d   ƒ n	1 �sw   Y  d}tjt|d�� t	||ddgg d¢fƒ W d   ƒ n	1 �s6w   Y  tjt|d�� t	||ddgddgfdg d¢id� W d   ƒ n	1 �s`w   Y  d}tjt
|d�� t	d ||ƒ W d   ƒ n	1 �s€w   Y  d}tjt|d�� t	|||dd� W d   ƒ n	1 �s¢w   Y  tjt|d�� t	|||dd� W d   ƒ n	1 �sÂw   Y  d}tjt|d�� t	|||dd � W d   ƒ n	1 �säw   Y  tjt|d�� t	|||dd � W d   ƒ d S 1 �sw   Y  d S )!Nl   yB0Æ æ1 )r.   rD   r   r   r    r   r~  r   r€  )r.   z3`significance` must contain floats between 0 and 1.r   ©ÚsignificancerR   r   z`kwargs` must be a dictionaryr   )Úkwargsz+shape mismatch: objects cannot be broadcastr.   rC   )rD   é   é   rD   ró  rN   z`test` must be callablez(`n_resamples` must be a positive integeriöÿÿÿr&   g      %@z"`batch` must be a positive integerr*   )r7   rG   r‚   r   ra  rÔ  r4   r5   r6   r   r:   rê  )rn  r3   Útestr„   Ún_observationsr;   r<   r<   r=   r‰  y  st   ÿÿÿÿÿÿÿÿÿ&ÿÿÿÿÿ$ÿzTestPower.test_input_validationc                    s  t j d¡}‡ fdd„‰ dˆ _dˆ _tˆ ddd�}t j d¡}tdi |¤|jdd	œ¤Ž}tˆ jdƒ tˆ jdƒ t j d¡}dˆ _tdi |¤|jd
d	œ¤Ž}tˆ jdƒ tˆ jd
ƒ t j d¡}dˆ _tdi |¤|jdd	œ¤Ž}tˆ jdƒ tˆ jdƒ t|j|jƒ t|j|jƒ d S )NrŒ  c                    sD   | j dkrdnt| ƒ}t|ˆ jƒˆ _ˆ  jd7  _tj| d|d�jS rû   )ró   ra   r  r�  rŽ  r   rœ  rÔ   r�  ©rõ  r<   r=   rõ  ·  s   z"TestPower.test_batch.<locals>.testr   r.   rà   )rõ  rö  r'   r   )r„   r+   r˜   r2  r<   )	r7   rG   r‚   rŽ  r�  r‰   r   rÔ  r   )rn  r3   rh  rO   rP   r”  r<   r÷  r=   r•  ±  s*   zTestPower.test_batchc              
      sú   t j d¡}t  ddg¡‰d‡fdd„	}t  g d¢¡d d …t jf }dg d	¢i}t  g d
¢¡}tj||j|||d�}g }|D ]+}|D ]&}	|d D ]‰ ˆD ]‰d‡ ‡fdd„	}
tj|
|j|	|d�}| 	|j¡ qLqHqBq>t  
||jj¡}t|j|ddd� d S )Nl   x7'À\r   çš™™™™™É?rR   c                    s.   t  ˆ ttd| jd ƒƒ¡}tj| |||d�S )Nr   )r€   r"   )r7   Úexpand_dimsr9   r   ró   r   rœ  )rN   r€   r"   Úpopmeans_expanded)Úpopmeansr<   r=   rõ  Ü  s   
ÿz*TestPower.test_vectorization.<locals>.test)r.   r“   r2  r˜   rE   r€   r²  )rÜ  re  çš™™™™™©?rÐ   ©rñ  rò  c                    s   t j| ˆ|ˆ d�S )NrÛ  )r   rœ  rú   )Úalternative_iÚ	popmean_ir<   r=   Útest2ñ  s   
ÿz+TestPower.test_vectorization.<locals>.test2rð  rÓ  rÜ  )rz   r|   r_   )r7   rG   r‚   rž   rD  rY  r   r   rÔ  Úappendri   rg   r   )rn  r3   rõ  Únxrò  rñ  r\   r  Úsignificance_iÚnx_ir   Útmpr<   )rþ  rÿ  rû  r=   Útest_vectorizationÕ  s0   ÿÿùÿÿ
zTestPower.test_vectorizationc                 C   s€   t j d¡}tj}|jdddd�}|j|jf}t  g d¢¡}tj||||d�}t  	|d d …t j
f |jj¡}t|j|dd	� d S )
Nì   ¸&(ƒ r.   rE   )r   r.   rÎ   )rÜ  rü  rÐ   rð  rÜ  r{   )r7   rG   r‚   r   ra  ÚintegersrÔ  rD  r   rh   rY  rg   r   )rn  r3   rõ  rö  r„   rñ  r\   r<   r<   r=   Útest_ttest_ind_nullý  s   zTestPower.test_ttest_ind_nullc                 C   sx   t j d¡}g d¢g d¢gg d¢g d¢gg}dg d¢i}dgd	gg}d
dg}tjtj|j|||d�}t|j|d
d� d S )Nr  )gêvö•é‰?g]¤ÔNbJº?g6;”™¹ÝÙ?)gOt]øÁù�?g7gLÚ·Ó?g¬0DÒ—ë?)g�§ðVL[®?g—Ô;¢cÃÒ?gÃ.H&óæ?)gìê#*3)²?g“ºl�kâ?g5i� ûî?r›  )rÐ   r1  rÌ   r.   r2  rÜ  rü  rý  r{   )r7   rG   r‚   r   r   rœ  rÔ  r   )rn  r3   r  rò  rö  rñ  r\   r<   r<   r=   Útest_ttest_1samp_power
  s   ÿÿþÿz TestPower.test_ttest_1samp_powerN)rã  rä  rå  r‰  r4   ræ  ré  r•  r  r	  r
  r<   r<   r<   r=   rï  x  s    8
#
'rï  c                   @   s¦  e Zd ZdZdd„ Zdd„ Zej de	j
je	j
jg¡ej dg d¢¡d	d
„ ƒƒZej de	j
je	j
jg¡ej dde d¡d fdde dd¡fg¡dd„ ƒƒZdd„ Zej ¡ dd„ ƒZdd„ Zej dd¡dd„ ƒZej dd¡dd„ ƒZej dd¡d d!„ ƒZd"d#„ Zej ¡ ej d$d%¡d&d'„ ƒƒZejjej dd¡d(d)„ ƒƒZej dd¡d*d+„ ƒZd,d-„ Zej dd¡d.d/„ ƒZej ¡ ej d$d0¡d1d2„ ƒƒZ g d3¢g d4¢d5d6d7d8d9d:d;œZ!g d<¢g d=¢d>d?d@dAdBdCd;œZ"ej ¡ ej dDe!e"f¡dEdF„ ƒƒZ#ejjej dGdH¡dIdJ„ ƒƒZ$ej dKdL¡dMdN„ ƒZ%e&dOƒdg fe&dƒdg dP¢g dQ¢gfe&dRƒdg dP¢g dQ¢ddSggfgZ'ej dTe'¡dUdV„ ƒZ(ej )d¡dWdX„ ƒZ*dYS )ZÚTestPermutationTestr  c                 C   s   t j d¡| _d S )Nl   áF )r7   rG   r‚   r3   )rn  r<   r<   r=   Úsetup_method$  r7  z TestPermutationTest.setup_methodc                 C   s~  dd„ }d}t jt|d�� tg d¢dgf|ƒ W d   ƒ n1 s"w   Y  d}t jt|d�� td|ƒ W d   ƒ n1 s@w   Y  t jt|d�� td|ƒ W d   ƒ n1 s\w   Y  d	}t jt|d�� tg d¢g d¢f|d
d� W d   ƒ n1 s‚w   Y  d}t jt|d�� tg d¢g d¢f|dd� W d   ƒ n1 s¨w   Y  d}t jt|d�� tg d¢g d¢f|d
d� W d   ƒ n1 sÎw   Y  d}t jt|d�� tg d¢g d¢f|dd� W d   ƒ n1 sôw   Y  d}t jt|d�� tg d¢g d¢f|dd� W d   ƒ n	1 �sw   Y  d}t jt|d�� tg d¢g d¢f|dd� W d   ƒ n	1 �sBw   Y  d}t jt|d�� tg d¢g d¢f|dd� W d   ƒ n	1 �siw   Y  d}t jt|d�� tg d¢g d¢f|dd� W d   ƒ n	1 �s�w   Y  d}t jt|d�� tg d¢g d¢f|dd� W d   ƒ d S 1 �s¸w   Y  d S )Nc                 S   s   t  | |f|¡jS rX   r`  rT   r<   r<   r=   ry  +  r7  z:TestPermutationTest.test_permutation_test_iv.<locals>.statz2each sample in `data` must contain two or more ...r   r   r   z6`data` must be a tuple containing at least two samples)r   r   r    r!   z `permutation_type` must be in...r   )Úpermutation_typer   r   r�  r%   r&   r(   r)   r*   r‚  rƒ  r0   r1   r2   )r4   r5   r6   r   r:   )rn  ry  r;   r<   r<   r=   Útest_permutation_test_iv)  sd   ÿÿÿÿÿÿÿÿÿÿÿÿ$ÿz,TestPermutationTest.test_permutation_test_ivrF   r  )ÚpairingsÚsamplesÚindependentc           	         s  | j  d¡}| j  d¡}‡ fdd„‰ dˆ _dˆ _d|ddœ}tj||fˆ fd|dƒd	œ|¤Ž}tˆ jd
ƒ tˆ jdƒ dˆ _tj||fˆ fd|dƒd	œ|¤Ž}tˆ jdƒ tˆ jdƒ dˆ _tj||fˆ fd|dƒd	œ|¤Ž}tˆ jdƒ tˆ jdƒ t|j|jƒ t|j|jƒ d S )Nr.   c                    sN   | j dkrdnt| ƒ}t|ˆ jƒˆ _ˆ  jd7  _tj| |d�tj||d� S ©Nr   r!   )ró   ra   r  r�  rŽ  r7   r8   )rN   rU   r"   r�  rõ   r<   r=   rx   i  s   z1TestPermutationTest.test_batch.<locals>.statisticr   rà   T)r'   r  r   r   )r+   rF   r’  r˜   r”   r   )r3   rG   rŽ  r�  r   r   r   rÔ   )	rn  r  rF   rN   rU   rh  rO   rP   r”  r<   rõ   r=   r•  _  sB   ÿÿÿÿÿÿÿzTestPermutationTest.test_batchzpermutation_type, exact_sizer  r   r   )r  r]  r  r  c           	      C   s„   | j  d¡}| j  d¡}dd„ }|ddœ}tj||f|fd|dƒdœ|¤Ž}t|jjdƒ tj||f|fi |¤Ž}t|jj|ƒ d S )Nr   c                 S   rÁ   rd   rÂ   rT   r<   r<   r=   rx   ”  rÃ   z8TestPermutationTest.test_permutations.<locals>.statisticT)r  r   r   )r'   rF   )r3   rG   r   r   r   rß  rs   )	rn  r  Ú
exact_sizerF   rN   rU   rx   rh  r\   r<   r<   r=   Útest_permutationsˆ  s   	ÿÿÿz%TestPermutationTest.test_permutationsc                 C   sº   d\}}d\}}}t  || |¡|ksJ ‚tjj|d�}tjj|d�}||f}dd„ }	ddd||d	œ}
t||	fd
|i|
¤Ž}t||	fd
tji|
¤Ž}|j|jksRJ ‚t	|j
|j
dd� d S )N)r~   r   )r]  é	   iÀ]  rÎ   c                 S   rÁ   rd   rÂ   rT   r<   r<   r=   rx   µ  rÃ   zNTestPermutationTest.test_randomized_test_against_exact_both.<locals>.statisticTr  rE   ©r   r  r+   r€   r3   r'   rÜ  r{   )r   Úbinomr   rƒ   r„   r   r7   Úinfrx   r   rÔ   ©rn  r€   r3   r  ÚnyÚpermutationsrN   rU   rw   rx   rh  r\   rP   r<   r<   r=   Ú'test_randomized_test_against_exact_both¨  s    
ÿÿz;TestPermutationTest.test_randomized_test_against_exact_bothc                 C   s²   d\}}d\}}}d| |ksJ ‚t jj|d�}t jj|d�}||f}dd„ }	ddd	||d
œ}
t||	fd|i|
¤Ž}t||	fdtji|
¤Ž}|j|jksNJ ‚t|j|jdd� d S )N)r�   N)r“   r“   i }  r   rÎ   c                 S   s   t j| | |d�S rd   rÂ   rT   r<   r<   r=   rx   Ï  r7  zQTestPermutationTest.test_randomized_test_against_exact_samples.<locals>.statisticTr  rE   r  r'   rÜ  r{   )	r   rƒ   r„   r   r7   r  rx   r   rÔ   r  r<   r<   r=   Ú*test_randomized_test_against_exact_samplesÁ  s    
ÿÿz>TestPermutationTest.test_randomized_test_against_exact_samplesc                    sÄ   d| j }}d\}}}t |¡|ksJ ‚tjj|d�}tjj|d�‰ |g}‡ fdd„}t |¡}	ddd||d	œ}
t||	fd
|i|
¤Ž}t||	fd
t	j
i|
¤Ž}|j|jksWJ ‚t|j|jdd� d S )Nr£  )r]  r]  i@œ  rÎ   c                    s   t  | ˆ ¡d S ©Nr   ©r   Úpearsonrrü   ©rU   r<   r=   r¬  è  r¸  zTTestPermutationTest.test_randomized_test_against_exact_pairings.<locals>.statistic1dTr  rE   r  r'   rÜ  r{   )r3   r   Ú	factorialr   rƒ   r„   rÅ   r@  r   r7   r  rx   r   rÔ   )rn  r€   r3   r  r  r  rN   rw   r¬  rx   rh  r\   rP   r<   r!  r=   Ú+test_randomized_test_against_exact_pairingsÛ  s"   

ÿÿz?TestPermutationTest.test_randomized_test_against_exact_pairingsr€   r²  c                    s†   | j jddd�}| j jdddd�}tj||ˆ dd�}‡ fd	d
„}t||f|tjd| j d�}t|j|j| j	d� t|j
|j
| j	d� d S )Nr   r   ©rs   rr   ro   r   )rs   rq   rr   Úexact)r€   r©  c                    s   t j| |dˆ d�jS r§  )r   Úks_2samprx   ©rN   rU   rƒ  r<   r=   r¬     s
   
ÿÿz>TestPermutationTest.test_against_ks_2samp.<locals>.statistic1dr�   ©r'   r€   r3   ry   )r3   rÔ  r   r&  r   r7   r  r   rx   rz   rÔ   )rn  r€   rN   rU   rŸ   r¬  r\   r<   rƒ  r=   Útest_against_ks_2sampø  s   ÿz)TestPermutationTest.test_against_ks_2sampc           	      C   s’   | j jddd�}| j jddd�}dddd	œ}|| }tj|||d
�}dd„ }t||f|tj|| j d�}t|j|j| j	d� t|j
|j
| j	d� d S )Nr   r   r$  ro   r   r�   r~   r£  r²  rƒ  c                 S   ó   t  | |¡jS rX   ©r   Úansarirx   r'  r<   r<   r=   r¬    rz  z<TestPermutationTest.test_against_ansari.<locals>.statistic1dr(  ry   )r3   rÔ  r   r,  r   r7   r  r   rx   rz   rÔ   )	rn  r€   rN   rU   Úalternative_correspondenceÚalternative_scipyrŸ   r¬  r\   r<   r<   r=   Útest_against_ansari  s   þÿz'TestPermutationTest.test_against_ansaric              	   C   sŒ   t jjdd| jd�}t jjdd| jd�}t j||d|d�}dd„ }t||f|d	tj|d| jd
�}t|j	|j	| j
d� t|j|j| j
d� d S )N)r   ro   r   r   ©rs   rq   rF   rü  r   rÛ  c                 S   r_  rd   )r   Úmannwhitneyurx   rT   r<   r<   r=   rx   *  r7  z@TestPermutationTest.test_against_mannwhitneyu.<locals>.statisticT)r   r'   r€   r"   r3   ry   )r   Úuniformr„   r3   r1  r   r7   r  r   rx   rz   rÔ   )rn  r€   rN   rU   rŸ   rx   r\   r<   r<   r=   Útest_against_mannwhitneyu"  s   þz-TestPermutationTest.test_against_mannwhitneyuc                 C   sˆ   t jjdd| jd�}t jjddd| jd�}t j||dd�}d	d
„ }t||f|tjd| jd�}t|j	|j	| j
d� t|j|j| j
d� d S )Nr   r   )rs   rr   rF   ro   r   )rs   rq   rr   rF   r%  r,   c                 S   ó   t j| |dd�jS ©NÚ
asymptoticr,   )r   Úcramervonmises_2samprx   r'  r<   r<   r=   r¬  ;  ó
   ÿÿz9TestPermutationTest.test_against_cvm.<locals>.statistic1dr�   r(  ry   )r   rƒ   r„   r3   r7  r   r7   r  r   rx   rz   rÔ   )rn  rN   rU   rŸ   r¬  r\   r<   r<   r=   Útest_against_cvm4  s   ÿz$TestPermutationTest.test_against_cvmr"   )rR   r   c                 C   s.  t j d¡}|jdd�}|jdd�}|jdd�}|||f}dd„ }dd	„ }t |¡}	t |¡}
t  |d
¡}t  |d¡}t  |d¡}|	||||d�}|
||||d�}d|dd| jdœ}t||fdt ji|¤Ž}t||fddi|¤Ž}t	|j
|| jd� t	|j
|j
| jd� t	|j|dd� t	|j|jdd� d S )Nl   Y}y!üdàh r   rÎ   )r   r   r   )r   r   r   c                  W   ó   t j| Ž jS rX   )r   Úkruskalrx   ©rw   r<   r<   r=   r¬  X  ó   zITestPermutationTest.test_vectorized_nsamp_ptype_both.<locals>.statistic1dc                  W   r:  rX   )r   r;  rÔ   r<  r<   r<   r=   Úpvalue1d[  r=  zFTestPermutationTest.test_vectorized_nsamp_ptype_both.<locals>.pvalue1d)r   r   r   )r   r   r   r—  r!   Fr�   r  ©r   r"   r€   r  r3   r'   rà   ry   g¸…ëQ¸®?r{   r§   )r7   rG   r‚   rÅ   r@  rh   r3   r   r  r   rx   rz   rÔ   )rn  r"   r3   rN   rU   re   rw   r¬  r>  rx   rÔ   Úx2r%  Úz2Úexpected_statisticÚexpected_pvaluerh  r\   rP   r<   r<   r=   Ú test_vectorized_nsamp_ptype_bothF  s.   


ÿz4TestPermutationTest.test_vectorized_nsamp_ptype_bothc                    s  t jjdd| jd�}t jjdd| jd�}dd„ }dd„ }‡ fd	d
„}t |¡}|||dd�}|d }	|d }
ddˆ d| jtjdœ}t|| f|fi |¤Ž}t||f|fi |¤Ž}t	|j
|j
| jd� ˆ dkrot	|j
|	| jd� t	|j|
| jd� t	|j|j| jd� d S )N)r   r  r   r   r0  rü  c                 S   s   t j| dd�jS ©Nr~   rƒ  ©r   Úwilcoxonrx   )re   r<   r<   r=   Ústatistic_1samp_1d  s   zETestPermutationTest.test_against_wilcoxon.<locals>.statistic_1samp_1dc                 S   r4  rE  rF  r'  r<   r<   r=   Ústatistic_2samp_1dƒ  r7  zETestPermutationTest.test_against_wilcoxon.<locals>.statistic_2samp_1dc                    s   t j| |ˆ d�S )Nrƒ  )r   rG  r'  rƒ  r<   r=   Útest_1d†  r¸  z:TestPermutationTest.test_against_wilcoxon.<locals>.test_1dr   r!   Fr  )r   r"   r€   r  r3   r'   ry   r£  )r   r2  r„   r3   rÅ   r@  r7   r  r   r   rx   rz   rÔ   )rn  r€   rN   rU   rH  rI  rJ  rõ  rŸ   rÌ  rÍ  rh  rO   rP   r<   rƒ  r=   Útest_against_wilcoxonv  s(   
þz)TestPermutationTest.test_against_wilcoxonc           	   	   C   s„   | j jdddd�}d||dk< ddd„}||ƒdd}}}tj||||d	�}tj|f|d
dtj| j |d�}t|j|j| j	d� d S )Nr   r   r.   rÎ   rR   c                 S   s   t j| dk|d�S )Nr   r!   ©r7   rÒ   rú   r<   r<   r=   rx   ¦  r7  z=TestPermutationTest.test_against_binomtest.<locals>.statisticr1  rƒ  Tr  )r   r  r'   r3   r€   ry   rÄ   )
r3   r  r   rÓ   r   r7   r  r   rÔ   rz   )	rn  r€   rN   rx   Úkrb   r:  rŸ   r\   r<   r<   r=   Útest_against_binomtest�  s   
ýz*TestPermutationTest.test_against_binomtestc                    s€   | j jdd�}|| j jdd� ‰ tj|ˆ dd�}‡ fdd„}t|f|dtj| j d�}t|j|j| j	d	� t|j
|j
| j	d	� d S )
Nr  rÎ   r%  r,   c                    s   t j| ˆ dd�jS r5  )r   Ú
kendalltaurx   rü   r!  r<   r=   r¬  »  r7  z@TestPermutationTest.test_against_kendalltau.<locals>.statistic1dr  )r  r'   r3   ry   )r3   rÔ  r   rO  r   r7   r  r   rx   rz   rÔ   )rn  rN   rŸ   r¬  r\   r<   r!  r=   Útest_against_kendalltau´  s   
ÿz+TestPermutationTest.test_against_kendalltauc                    s”   ‡ fdd„}t j d¡}| d¡dk t¡}| d¡d|  dk t¡‰ tj |ˆ ¡d }t|f|dt j	||d	�}tj
||d
�}t|j|d ƒ d S )Nc                    s   t  | dkˆ dk@ ¡S r|  rL  rü   r!  r<   r=   rx   È  s   z@TestPermutationTest.test_against_fisher_exact.<locals>.statisticl   	ý(yM4 rÒ  g333333ã?g      Ð?r   r  )r  r'   r€   r3   rƒ  )r7   rG   r‚   ÚastypeÚfloatr   ÚcontingencyÚcrosstabr   r  Úfisher_exactr   rÔ   )rn  r€   rx   r3   rN   Útabr\   rP   r<   r!  r=   Útest_against_fisher_exactÅ  s   
þz-TestPermutationTest.test_against_fisher_exact)r  r   c                 C   s>  | j jdd�}| j jdd�}| j jdd�}tj||d�}tj||d�}tj||d�}|d }|||f}dd„ }d	d
„ }t |¡}t |¡}	|tj|Ž d|iŽ}
|	tj|Ž d|iŽ}d|ddddœ}t||fdtj	i|¤Ž}t||fddi|¤Ž}t
|j|
| jd� t
|j|j| jd� t
|j|| jd� t
|j|jdd� d S )N)r   r   r   rÎ   )r   r   r   )r   r   r   r!   r   c                  W   ó   t j| ddd�jS )NTr6  ©Úrankedr-   )r   Úpage_trend_testrx   r<  r<   r<   r=   r¬  ê  r8  zLTestPermutationTest.test_vectorized_nsamp_ptype_samples.<locals>.statistic1dc                  W   rX  )NTr%  rY  )r   r[  rÔ   r<  r<   r<   r=   r>  î  r8  zITestPermutationTest.test_vectorized_nsamp_ptype_samples.<locals>.pvalue1dr"   Fr�   r  r?  r'   rp   ry   r§   r{   )r3   rG   r   ÚrankdatarÅ   r@  r7   Úbroadcast_arraysr   r  r   rx   rz   rÔ   )rn  r"   rN   rU   re   rw   r¬  r>  rx   rÔ   rB  rC  rh  r\   rP   r<   r<   r=   Ú#test_vectorized_nsamp_ptype_samplesØ  s.   	


ÿz7TestPermutationTest.test_vectorized_nsamp_ptype_samplesr   )r    r   g      @rø  gš™™™™™Ù?gä&ý_ñÕ?g      @gd~�$I"@glâuý‚ö?)rN   rU   Úexpected_lessÚexpected_2sidedÚexpected_Pr_gte_S_meanrB  Úexpected_avgÚexpected_std)éo   ék   rE   r¾   rØ  éj   ém   él   )	re  rh  rf  éb   éi   rÙ  én   rj  r¹   gðdòð×éÃ?gðdòð×éÓ?gYoã5 Ó?g     @@@g{¼�C@gDmFA°@Úcasec                 C   sT  |d }|d }|d }|d }|d }|d }|d }|d }	d	d
„ }
t j ¡ �$}| td¡ t||f|
t jdd�}t||f|
t jdd�}W d  ƒ n1 sPw   Y  t|j|| j	d� t|j
|dd� t|j
|dd� t|j ¡ |dd� t|j ¡ |	dd� |j}|j ¡ }t|jƒ}t  t  |j| ¡t  || ¡k¡| }t||ƒ dS )aÎ  
        Results above from SAS PROC NPAR1WAY, e.g.

        DATA myData;
        INPUT X Y;
        CARDS;
        1 1
        1 2
        1 3
        1 4
        2 1.5
        2 2
        2 2.5
        ods graphics on;
        proc npar1way AB data=myData;
            class X;
            EXACT;
        run;
        ods graphics off;

        Note: SAS provides Pr >= |S-Mean|, which is different from our
        definition of a two-sided p-value.

        rN   rU   rB  r_  r`  ra  rb  rc  c                 S   r*  rX   r+  r'  r<   r<   r=   r¬  9  rz  z7TestPermutationTest.test_with_ties.<locals>.statistic1dz$Ties preclude use of exact statisticr~   )r'   r€   r£  Nry   g»½×Ùß|Û=r{   g�íµ ÷Æ°>)r7   Útestingr   rÆ  ÚUserWarningr   r  r   rx   rz   rÔ   rß  r8   rˆ   ra   rÒ   r¨   )rn  rl  rN   rU   rB  r_  r`  ra  rb  rc  r¬  rÊ  r\   rP   ÚSr8   rb   ÚPr_gte_S_meanr<   r<   r=   Útest_with_ties  s@   ÿÿü

ÿÿz"TestPermutationTest.test_with_tieszalternative, expected_pvalue))r~   gåï?)r�   gš¥Oú¤Oª?)r£  g<«Oú¤Oº?c                    s\   g d¢}g d¢‰ d}‡ fdd„}t |f|dtj|d�}t|j|| jd� t|j|d	d
� dS )aU  
        Results above from R cor.test, e.g.

        options(digits=16)
        x <- c(1.76405235, 0.40015721, 0.97873798,
               2.2408932, 1.86755799, -0.97727788)
        y <- c(2.71414076, 0.2488, 0.87551913,
               2.6514917, 2.01160156, 0.47699563)
        cor.test(x, y, method = "spearm", alternative = "t")
        )g@éúôŽ9ü?gÅY�ü,œÙ?gÐîOÒQï?g[¡þiYí@g˜ï¦|„áý?géˆ¶BÜEï¿)gQ†Gn�¶@g›UŸ«­ØÏ?gzêË±@ì?gmìÈGA6@gºB�Â @g¬ÕË­‡Þ?gùŠ¯øŠ¯è?c                    rÅ  rX   )r   Ú	spearmanrrx   rü   r!  r<   r=   r¬  k  rz  zDTestPermutationTest.test_against_spearmanr_in_R.<locals>.statistic1dr  )r  r'   r€   ry   g‚vIhÂ%<=r{   N)r   r7   r  r   rx   rz   rÔ   )rn  r€   rC  rN   rB  r¬  r\   r<   r!  r=   Útest_against_spearmanr_in_RQ  s   
ÿz/TestPermutationTest.test_against_spearmanr_in_Rr+   )rR   r   c                 C   sH   t jtdd�� tt g d¢|¡ƒ W d   ƒ d S 1 sw   Y  d S )Nz`batch` must be positive.r   r   )r4   r5   r6   rj   rÅ   Ú_batch_generator)rn  r+   r<   r<   r=   Útest_batch_generator_ivt  s   "ÿz+TestPermutationTest.test_batch_generator_ivr   rB   )r   r   ro   r]  rÒ  ziterable, batch, expectedc                 C   s    t t ||¡ƒ}||ksJ ‚d S rX   )rj   rÅ   rt  )rn  Úiterabler+   rŸ   Úgotr<   r<   r=   Útest_batch_generator}  s   z(TestPermutationTest.test_batch_generatorc           	      C   s‚   g d¢}g d¢}dd„ }t j||f|ddd�}|j|j|j}}}dt ||d	 k¡ t|ƒ }||  kr<d
ks?J ‚ J ‚d S )N)r   r   r   r   )r   r   r  r]  c                 S   s   t  | |¡d S r  r  r'  r<   r<   r=   rx   ‹  r¸  zFTestPermutationTest.test_finite_precision_statistic.<locals>.statisticFr  )r   r  r   r  gUUUUUUÕ?)r   r   rx   rÔ   rß  r7   rÒ   ra   )	rn  rN   rU   rx   r\   ÚrrÔ   ÚnullÚ	correct_pr<   r<   r=   râ  ƒ  s   ÿ z3TestPermutationTest.test_finite_precision_statisticN)+rã  rä  rå  rz   r  r  r4   ræ  rè  r7   rG   r(  r‚   r•  r   r"  r  r  r  ré  r  r#  r)  r/  r3  r9  rç  rD  rK  rN  rP  rW  r^  Ú
tie_case_1Ú
tie_case_2rq  rs  ru  r   Úbatch_generator_casesrx  rí  râ  r<   r<   r<   r=   r     s¢    6ÿÿ%ÿþÿ



.%

+ûú<ÿ
þÿ

r  c                     sª   t jg d¢td�‰ t  ˆ ¡} tƒ }d}t ˆ ¡D ]}|d7 }t  || d d… ¡}| t	dd„ |D ƒƒ¡ qt  
‡ fdd„ttˆ ƒd ƒD ƒ¡}t||ƒ tt|ƒ|ƒ d S )	N)r   r   r   rf  r   r   rR   c                 S   s   g | ]}t |ƒ‘qS r<   )Ú	frozenset©ré   rY   r<   r<   r=   Ú
<listcomp>¨  s    z4test_all_partitions_concatenated.<locals>.<listcomp>c              	      s4   g | ]}t  tˆ |d … ƒtˆ |d d … ƒ¡‘qS r|  )r   r  rÒ   r€  ©rb   r<   r=   r�  ª  s    ,ÿ)r7   rž   ÚintÚcumsumÚsetrÅ   Ú_all_partitions_concatenatedÚsplitÚaddr9   Úprodr   ra   r   )ÚncÚall_partitionsrŽ  Úpartition_concatenatedÚpartitioningrŸ   r<   r‚  r=   Ú test_all_partitions_concatenatedœ  s   
ÿ
rŽ  Úfun_name©r   r   r   c                    sÖ   t j d¡‰ ˆ jdd�‰‡ fdd„}ˆfˆ ddœˆfˆ dd	œˆ|d
œdœ}ddi}tt| ƒ}||  }| |¡ ‡fdd„}|d|d dœ|¤Ž |d|ddœ|¤Ž dd„ }|d|d dœ|¤Ž |d|ddœ|¤Ž d S )Nl   àr³:½ r.   rÎ   c                    s   t jj| ˆ d�S )Nr  )r   rƒ   r„   rÎ   r2   r<   r=   r„   ¹  r¸  z&test_parameter_vectorized.<locals>.rvsr@   )rw   r3   r-   r  )rw   r3   r  )rê   r„   r�  r'   rE   c                    s(   | j dkst | ˆ ¡sJ ‚tj| |d�S r  )ró   r7   r"  r8   rú   )rê   r<   r=   rx   Ç  s   z,test_parameter_vectorized.<locals>.statistic)rx   r   Tc                 S   s   | j dksJ ‚t | ¡S r|  )ró   r7   r8   rü   r<   r<   r=   rx   Í  s   
Fr<   )r7   rG   r‚   r)  r   rŠ   )r�  r„   Úfun_optionsÚcommon_optionsrÃ  Úoptionsrx   r<   )r3   rê   r=   Útest_parameter_vectorized±  s*   ÿÿü

r”  c                   @   s   e Zd Zdd„ ZdS )ÚTestMonteCarloMethodc                 C   sT   d}t j d¡}tjt|d�� tj|j|d� W d   ƒ d S 1 s#w   Y  d S )Nz.Use of `rvs` and `rng` are mutually exclusive.iÉÉr   )r„   r3   )r7   rG   r‚   r4   r5   r6   r   ÚMonteCarloMethod)rn  r;   r3   r<   r<   r=   Útest_rvs_and_random_stateÕ  s
   "ÿz.TestMonteCarloMethod.test_rvs_and_random_stateN)rã  rä  rå  r—  r<   r<   r<   r=   r•  Ô  s    r•  )Er4   Únumpyr7   Únumpy.testingr   r   r   Úscipy.conftestr   Úscipy._lib._utilr   Úscipy._lib._array_apir   r   Úscipy._lib._array_api_no_0dr	   r
   Úscipyr   r   Úscipy.optimizer   Úscipy.statsr   r   r   r   Úscipy.stats._resamplingrÅ   r>   ræ  rè  rQ   rc   rn   ré  rî  r‘   Útests_RÚitemsr    Útests_against_itself_1sampr³   rÊ   rÙ   Útests_against_itself_2samprå   rù   rý   r  r  r  r  r  r&  r/  r<  r?  rB  rM  Úfilterwarningsr^  rc  rd  rï  r  rŽ  r”  r•  r<   r<   r<   r=   Ú<module>   sÊ    ?
+
þ
þ:ÿ%ÿÿ.







$    )     ÿ
!