o
    Ö­jöO ã                   @   s  d Z ddlZddlZddlZddlmZ ddlmZ ddlm	  m
Z ddlZddlZddlmZmZmZmZmZmZmZmZmZ ddlZddlmZ ddlm  mZ ddl
mZm Z m!Z!m"Z" ddl
Z#ddl$m%Z% ddl&m%  m'Z' ddl(m%  m)Z* ddl+m,Z, dd	l-m.Z. dd
l/m0Z0 ddl1m2Z2 ddl3m4Z4 ddl5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z; ddl<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZC ddlDmEZE ddlFmGZGmHZH ddlImJZJmKZKmLZLmMZMmNZNmOZO ddlPmQZQmRZR ejSjTZT	 eg d¢eUƒZVeg d¢eUƒZWeg d¢eUƒZXeg d¢eUƒZYeg d¢eUƒZZeg d¢eUƒZ[eg d¢eUƒZ\eGeTddd�eTddd�ejS ]d ¡G d!d"„ d"ƒƒƒƒƒZ^G d#d$„ d$ƒZ_eGejS ]d ¡eTd%d&�G d'd(„ d(ƒƒƒƒZ`G d)d*„ d*ƒZaG d+d,„ d,ƒZbG d-d.„ d.ƒZcd/d0„ Zdd1d2„ Zed3d4„ Zfd5d6„ ZgG d7d8„ d8ƒZhd9d:„ Zid;d<„ Zjd=d>„ Zkd?d@„ ZlG dAdB„ dBƒZmG dCdD„ dDƒZndEdF„ ZodGdH„ ZpdIdJ„ ZqG dKdL„ dLƒZrG dMdN„ dNƒZseGG dOdP„ dPƒƒZteGejS ]d ¡eTddQd�G dRdS„ dSƒƒƒƒZuG dTdU„ dUƒZvdVdW„ ZwG dXdY„ dYƒZxG dZd[„ d[ƒZyG d\d]„ d]ƒZzG d^d_„ d_ezƒZ{G d`da„ daezƒZ|ej}j~dbdc„ ƒZejSjTd%ddde�ejS ]d ¡eGG dfdg„ dgƒƒƒƒZ€G dhdi„ diƒZ�edjg dk¢ƒZ‚e‚g dl¢ddddmdndme# ƒdo¡ dpe# ƒdq¡   dndre# ƒds¡ dre# ƒdt¡   dudk�e‚g dl¢g dv¢dddwdndme# ƒds¡ dre# ƒdo¡  dre# ƒdx¡   dndne# ƒdo¡ dye# ƒds¡  dne# ƒdz¡   d{dk�e‚g dl¢drdddmdndme# ƒdo¡ dpe# ƒdq¡   dndre# ƒds¡ dre# ƒdt¡   dudk�e‚g d|¢g d|¢dddddddk�gZ„e‚g ddddddddk�e‚e# g g g g¡j…dddg d}¢g d}¢g d}¢g d}¢dk�e‚e# g g g g¡dddg g g g dk�gZ†eGG d~d„ dƒƒZ‡eGG d€d�„ d�ƒƒZˆeHG d‚dƒ„ dƒƒƒZ‰d„d…„ ZŠG d†d‡„ d‡ƒZ‹G dˆd‰„ d‰ƒZŒG dŠd‹„ d‹ƒZ�dŒd�„ ZŽdŽd�„ Z�d�d‘„ Z�ejS ‘d’e# ’d“¡d”fe# ’d•¡d–fg¡d—d˜„ ƒZ“d™dš„ Z”ejS ‘d›g dœ¢¡d�dž„ ƒZ•ejS ‘dŸe%j–e#  d ¡dffe%j—e#  d ¡e#  d ¡ffg¡d¡d¢„ ƒZ˜�d3dd£œd¤d¥„Z™eGejSjTd%ddde�ejS ]d ¡d¦d§„ ƒƒƒZšd¨d©„ Z›dªd«„ ZœejS �d¬¡G d­d®„ d®ƒƒZžejS �d¬¡G d¯d°„ d°ƒƒZŸG d±d²„ d²ƒZ eGejSjTd%ddde�ejS ]d ¡G d³d´„ d´ƒƒƒƒZ¡dµd¶„ Z¢eGejSjTd%ddde�ejS ]d ¡d·d¸„ ƒƒƒZ£eGejSjTd%ddde�ejS ]d ¡d¹dº„ ƒƒƒZ¤d»d¼„ Z¥eGd½d¾„ ƒZ¦eTd¿dÀd�ejS ]d ¡eGejS ‘d’e# ’d“¡d”fe# ’d•¡d–fg¡dÁdÂ„ ƒƒƒƒZ§eGdÃdÄ„ ƒZ¨eGdÅdÆ„ ƒZ©eGejSjTd%dÇdÈ�ejS ]d ¡dÉdÊ„ ƒƒƒZªeGejSjTd%ddde�ejS ]d ¡dËdÌ„ ƒƒƒZ«eGejSjTd%ddde�ejS ]d ¡dÍdÎ„ ƒƒƒZ¬dÏdÐ„ Z­ejSj®ejSjTd%ddde�ejS ]d ¡eGdÑdÒ„ ƒƒƒƒZ¯ejSjTd%dÓdÈ�ejS ]d ¡eGdÔdÕ„ ƒƒƒZ°ejSjTd%ddde�ejS ]d ¡eGdÖd×„ ƒƒƒZ±G dØdÙ„ dÙƒZ²eGG dÚdÛ„ dÛƒƒZ³G dÜdÝ„ dÝe³ƒZ´G dÞdß„ dße³ƒZµG dàdá„ dáe³ƒZ¶G dâdã„ dãƒZ·eGG dädå„ dåƒƒZ¸G dædç„ dçƒZ¹dèdé„ Zºdêdë„ Z»dddìddíœdîdï„Z¼dðdñ„ Z½dòdó„ Z¾dôdõ„ Z¿eGG död÷„ d÷ƒƒZÀeGG dødù„ dùƒƒZÁeGG dúdû„ dûƒƒZÂG düdý„ dýƒZÃdþdÿ„ ZÄ�d �d„ ZÅ�d�d„ ZÆG �d�d„ �dƒZÇG �d�d„ �dƒZÈG �d�d	„ �d	ƒZÉG �d
�d„ �dƒZÊG �d�d„ �dƒZËeTd%d¿dg�d�d�ejS ]d ¡eGG �d�d„ �dƒƒƒƒZÌG �d�d„ �dƒZÍG �d�d„ �dƒZÎG �d�d„ �dƒZÏG �d�d„ �dƒZÐG �d�d„ �dƒZÑG �d�d„ �dƒZÒG �d�d„ �dƒZÓe#jÔ Õ�d ¡ZÖeÖ Ôd ¡Z×eÖ Ôd ¡ZØejS ‘�d!e%jÙe×ffe%jÚe×e%jÛjÜffe%jÝe×eØffe%jÞe×eØffg¡�d"�d#„ ƒZßG �d$�d%„ �d%ƒZàG �d&�d'„ �d'ƒZáeGG �d(�d)„ �d)ƒƒZâeGejS ]d ¡eTd�d*d�G �d+�d,„ �d,ƒƒƒƒZãeG�d-�d.„ ƒZäejSjT�d/�d0d�ejS ]d ¡eG�d1�d2„ ƒƒƒZådS (4  zü Test functions for stats module

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

    Additional tests by a host of SciPy developers.
é    N)Ú
namedtuple)Úproduct)	Úassert_Úassert_equalÚassert_almost_equalÚassert_array_almost_equalÚassert_array_equalÚassert_approx_equalÚassert_allcloseÚsuppress_warningsÚassert_array_less)Úraises)ÚarrayÚarangeÚfloat32Úpower)Úkolmogn)ÚFuncData)Úbinom)Úoptimizeé   )Úcheck_named_results)Ú_broadcast_concatenateÚSmallSampleWarningÚtoo_small_nd_omitÚtoo_small_nd_not_omitÚtoo_small_1d_omitÚtoo_small_1d_not_omit)Ú_permutation_distribution_tÚ_chk_asarrayÚ_momentÚLinregressResultÚ_xp_meanÚ_xp_varÚ_SimpleChi2)Ú	AxisError)Úarray_api_compatibleÚskip_xp_invalid_arg)Úarray_namespaceÚxp_copyÚis_numpyÚis_torchÚxp_sizeÚSCIPY_ARRAY_API)Úxp_assert_closeÚxp_assert_equal)	r   é   é   é   é   é   é   é   é	   )	r   r   r   r   r   r   r   r   r   )	i÷àõiøàõiùàõiúàõiûàõiüàõiýàõiþàõiÿàõ)	gƒ~®Ïÿÿï?g<âÕÿÿï?gôEkÚÿÿï?g­©Éßÿÿï?ge(åÿÿï?gq†êÿÿï?gÖÔäïÿÿï?g�8Cõÿÿï?gGœ¡úÿÿï?)	g   ¢”mBg   ¢”}Bg  €yïÓ…Bg   ¢”�Bg  @åœ0’Bg  €yïÓ•Bg  ÀBw™Bg   ¢”�Bg   ›ó^ B)	çê-�™—q=gê-�™—�=gßÄAfcŠ=gê-�™—‘=g•dyáý•=gßÄAfcš=gžY¢LÉž=gê-�™—¡=gS§S±ŒÊ£=)	ç      à?ç      ø?ç      @ç      @ç      @ç      @ç      @ç      @ç      !@ú	jax.numpyú"JAX doesn't allow item assignment.©ÚreasonÚarray_api_strictz_`array_api_strict.where` `fillvalue` doesn't accept Python floats. See data-apis/array-api#807.Úskip_xp_backendsc                   @   s~   e Zd Ze ej¡jZdd„ Ze	ddd�dd„ ƒZ
dd	„ Zd
d„ Ze	ddd�dd„ ƒZdd„ Ze	ddd�dd„ ƒZdd„ ZdS )ÚTestTrimmedStatsc           	   	   C   s  |  t ¡ ¡}t |dd¡}t||  d¡ƒ tj|ddd�}tj|d d�}t||ƒ | | d¡d¡}tj|d d	�}t|| |¡ƒ tj|d
d	�}t||j|d
d	�ƒ tj|dd	�}t||j|dd	�ƒ tj|dd d�}t||  d¡ƒ tj|dd
d�}g d¢}t||  |¡ƒ tj|ddd
d�}g d¢}t||  |¡ƒ t	|ƒ}|j
|ddd …f< tj|dd
d�}dddd|j
|j
|j
g}t||  |¡ƒ tj|ddd�}dddd|j
|j
|j
|j
|j
g	}t||  |¡ƒ tj|dddd�}dddd|j
|j
|j
|j
|j
g	}t||  |¡ƒ d S ) N©r0   r6   ©TTç      @)FF©ÚlimitsÚ	inclusive©rM   ç     €O@©r7   r5   ©Úaxisr   r   )r0   é=   )rM   rS   g     €?@)r0   é   )é   ç      '@r7   é
   é   é   é   ©TF)rM   rN   rS   )ç      %@rW   r7   rX   rY   rZ   r[   éÿÿÿÿéýÿÿÿ)r   r[   r5   r=   r>   r?   r2   rX   é   rU   ©FT)ÚasarrayÚXÚtolistÚstatsÚtmeanr.   Úreshaper   Úmeanr)   Únan)	ÚselfÚxpÚxÚyÚy1Úy2Úx_2dÚy_trueÚx_2d_with_nan© rs   úY/var/www/html/CropPilot/venv/lib/python3.10/site-packages/scipy/stats/tests/test_stats.pyÚ
test_tmeanW   sD   
 ÿ zTestTrimmedStats.test_tmeanÚcupyúcupy/cupy#8391rD   c                 C   s2  |  t ¡ ¡}t|ƒ}tj|ddd�}t||  d¡ƒ tj|d d�}t||j|dd�ƒ | | 	d¡d	¡}tj|d d
�}t||j|dd�ƒ tj|dd
�}t|| 
dd¡ƒ tj|dd
�}t|| 
dd¡ƒ tj|dddd�}t|d |  d¡ƒ tj|dddd�}t|d |  d¡ƒ t|d |  |j¡ƒ d S )NrI   rJ   rL   gªªªªªª@rO   r   ©Ú
correctionrP   rQ   rR   r   ©r5   g     øv@)r7   gÒîãªªª@©r   r3   )rM   rS   rN   r;   ©r   r4   g«ªªªªª@)rb   rc   rd   r(   re   Útvarr.   Úvarrg   r   Úfullr/   ri   )rj   rk   rl   Úxp_testrm   rp   rs   rs   rt   Ú	test_tvar…   s$   zTestTrimmedStats.test_tvarc                 C   sZ   |  t ¡ ¡}t|ƒ}t |dd¡}t||  d¡ƒ tj|d d�}t||j|dd�ƒ d S )NrI   rJ   gBÄ†/H@rO   r   rx   )rb   rc   rd   r(   re   Útstdr.   Ústd)rj   rk   rl   r€   rm   rs   rs   rt   Ú	test_tstd¤   s   zTestTrimmedStats.test_tstdc                 C   s&  |  d¡}tt |¡| d¡ƒ ttj|dd�| d¡ƒ ttj|ddd�| d¡ƒ | |d¡}ttj|ddd�| ddg¡ƒ ttj|dd	�| g d
¢¡ƒ ttj|d d	�| d¡ƒ |  d¡}|j|d< tt |¡| |j¡ƒ |  d¡ dd¡}tj|ddd�}t|| tjdddg¡ƒ d S )NrX   r   )Ú
lowerlimitF)r…   rN   r   ©r3   r0   r0   rR   )r   r0   r2   r4   r6   ç      $@r7   é   r2   )r…   rS   r6   rZ   )r   r/   re   Útminrb   rg   ri   Únp)rj   rk   rl   Úresrs   rs   rt   Ú	test_tmin®   s    
ÿ

zTestTrimmedStats.test_tminTz4Only NumPy arrays support scalar input/`nan_policy`.©Únp_onlyrE   c              	   C   óü   t t d¡dƒ t d¡}tj|d< tƒ �_}| td¡ t tj|dd�dƒ d}t	t
|d	�� tj|d
d� W d   ƒ n1 s@w   Y  d}t	t
|d	�� tj|dd� W d   ƒ n1 s_w   Y  W d   ƒ d S W d   ƒ d S 1 sww   Y  d S )Nr2   r‡   r7   úinvalid value*Úomit©Ú
nan_policyç        úThe input contains nan values©ÚmatchÚraiseúnan_policy must be one of...Úfoobar)r   re   r‰   rŠ   r   ri   r   ÚrecordÚRuntimeWarningÚassert_raisesÚ
ValueError©rj   rk   rl   ÚsupÚmsgrs   rs   rt   Útest_tmin_scalar_and_nanpolicyÄ   ó"   

ÿÿù"ùz/TestTrimmedStats.test_tmin_scalar_and_nanpolicyc              	   C   sZ  |  d¡}tt |¡| d¡ƒ ttj|dd�| d¡ƒ ttj|ddd�| d¡ƒ | |d¡}ttj|ddd�| ddg¡ƒ ttj|d	d
�| g d¢¡ƒ ttj|d d
�| d¡ƒ |  d¡}|j|d< tt |¡| |j¡ƒ tƒ �-}| t	d¡ | |  d¡d¡}tj|dd	d�}t|| dddt
jg¡ƒ W d   ƒ d S 1 s¦w   Y  d S )NrX   r7   )Ú
upperlimitF)r¤   rN   r6   r†   r5   r   rR   ©r   r1   r3   r5   r7   r‡   zAll-NaN slice encounteredrˆ   )r2   r2   rY   )r¤   rS   r1   )r   r/   re   Útmaxrb   rg   ri   r   Úfilterrœ   rŠ   )rj   rk   rl   r    r‹   rs   rs   rt   Ú	test_tmaxÕ   s&   
ÿ

"üzTestTrimmedStats.test_tmaxc              	   C   r�   )Nr2   r‡   r4   r�   r‘   r’   ç      "@r•   r–   r˜   r™   rš   )r   re   r¦   rŠ   r   ri   r   r›   rœ   r�   rž   rŸ   rs   rs   rt   Útest_tax_scalar_and_nanpolicyí   r£   z.TestTrimmedStats.test_tax_scalar_and_nanpolicyc                 C   sz   |  t ¡ ¡}t|ƒ}tj|ddd�}|  g d¢¡}t||j|dd�t|ƒd  ƒ ttj|dd	gd
�tj|d d
�ƒ d S )N)r1   r6   ra   rL   )ç      @rK   ç      @ç      @ç       @r   rx   r9   r^   rX   rO   )	rb   rc   rd   r(   re   Útsemr.   rƒ   r,   )rj   rk   rl   r€   rm   Úy_refrs   rs   rt   Ú	test_tsemþ   s    &zTestTrimmedStats.test_tsemN)Ú__name__Ú
__module__Ú__qualname__rŠ   ÚfinfoÚfloat64Ú	precisionÚdprecru   rG   r�   r„   rŒ   r¢   r¨   rª   r±   rs   rs   rs   rt   rH   L   s&    	.ÿ

ÿ
ÿ
rH   c                   @   s¸   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*d+„ Zd,S )-ÚTestPearsonrWilkinsonáE   W.II.D. Compute a correlation matrix on all the variables.

        All the correlations, except for ZERO and MISS, should be exactly 1.
        ZERO and MISS should have undefined or missing correlations with the
        other variables.  The same should go for SPEARMAN correlations, if
        your program has them.
    c                 C   ó"   t  tt¡}|d }t|dƒ d S ©Nr   ç      ð?)re   Úpearsonrrc   r	   ©rj   rm   Úrrs   rs   rt   Útest_pXX  ó   zTestPearsonrWilkinson.test_pXXc                 C   ó"   t  tt¡}|d }t|dƒ d S r¼   )re   r¾   rc   ÚBIGr	   r¿   rs   rs   rt   Ú
test_pXBIG  rÂ   z TestPearsonrWilkinson.test_pXBIGc                 C   rÃ   r¼   )re   r¾   rc   ÚLITTLEr	   r¿   rs   rs   rt   Útest_pXLITTLE  rÂ   z#TestPearsonrWilkinson.test_pXLITTLEc                 C   rÃ   r¼   )re   r¾   rc   ÚHUGEr	   r¿   rs   rs   rt   Útest_pXHUGE   rÂ   z!TestPearsonrWilkinson.test_pXHUGEc                 C   rÃ   r¼   )re   r¾   rc   ÚTINYr	   r¿   rs   rs   rt   Útest_pXTINY%  rÂ   z!TestPearsonrWilkinson.test_pXTINYc                 C   rÃ   r¼   )re   r¾   rc   ÚROUNDr	   r¿   rs   rs   rt   Útest_pXROUND*  rÂ   z"TestPearsonrWilkinson.test_pXROUNDc                 C   r»   r¼   )re   r¾   rÄ   r	   r¿   rs   rs   rt   Útest_pBIGBIG/  rÂ   z"TestPearsonrWilkinson.test_pBIGBIGc                 C   rÃ   r¼   )re   r¾   rÄ   rÆ   r	   r¿   rs   rs   rt   Útest_pBIGLITTLE4  rÂ   z%TestPearsonrWilkinson.test_pBIGLITTLEc                 C   rÃ   r¼   )re   r¾   rÄ   rÈ   r	   r¿   rs   rs   rt   Útest_pBIGHUGE9  rÂ   z#TestPearsonrWilkinson.test_pBIGHUGEc                 C   rÃ   r¼   )re   r¾   rÄ   rÊ   r	   r¿   rs   rs   rt   Útest_pBIGTINY>  rÂ   z#TestPearsonrWilkinson.test_pBIGTINYc                 C   rÃ   r¼   )re   r¾   rÄ   rÌ   r	   r¿   rs   rs   rt   Útest_pBIGROUNDC  rÂ   z$TestPearsonrWilkinson.test_pBIGROUNDc                 C   r»   r¼   )re   r¾   rÆ   r	   r¿   rs   rs   rt   Útest_pLITTLELITTLEH  rÂ   z(TestPearsonrWilkinson.test_pLITTLELITTLEc                 C   rÃ   r¼   )re   r¾   rÆ   rÈ   r	   r¿   rs   rs   rt   Útest_pLITTLEHUGEM  rÂ   z&TestPearsonrWilkinson.test_pLITTLEHUGEc                 C   rÃ   r¼   )re   r¾   rÆ   rÊ   r	   r¿   rs   rs   rt   Útest_pLITTLETINYR  rÂ   z&TestPearsonrWilkinson.test_pLITTLETINYc                 C   rÃ   r¼   )re   r¾   rÆ   rÌ   r	   r¿   rs   rs   rt   Útest_pLITTLEROUNDW  rÂ   z'TestPearsonrWilkinson.test_pLITTLEROUNDc                 C   r»   r¼   )re   r¾   rÈ   r	   r¿   rs   rs   rt   Útest_pHUGEHUGE\  rÂ   z$TestPearsonrWilkinson.test_pHUGEHUGEc                 C   rÃ   r¼   )re   r¾   rÈ   rÊ   r	   r¿   rs   rs   rt   Útest_pHUGETINYa  rÂ   z$TestPearsonrWilkinson.test_pHUGETINYc                 C   rÃ   r¼   )re   r¾   rÈ   rÌ   r	   r¿   rs   rs   rt   Útest_pHUGEROUNDf  rÂ   z%TestPearsonrWilkinson.test_pHUGEROUNDc                 C   r»   r¼   )re   r¾   rÊ   r	   r¿   rs   rs   rt   Útest_pTINYTINYk  rÂ   z$TestPearsonrWilkinson.test_pTINYTINYc                 C   rÃ   r¼   )re   r¾   rÊ   rÌ   r	   r¿   rs   rs   rt   Útest_pTINYROUNDp  rÂ   z%TestPearsonrWilkinson.test_pTINYROUNDc                 C   r»   r¼   )re   r¾   rÌ   r	   r¿   rs   rs   rt   Útest_pROUNDROUNDu  rÂ   z&TestPearsonrWilkinson.test_pROUNDROUNDN)r²   r³   r´   Ú__doc__rÁ   rÅ   rÇ   rÉ   rË   rÍ   rÎ   rÏ   rÐ   rÑ   rÒ   rÓ   rÔ   rÕ   rÖ   r×   rØ   rÙ   rÚ   rÛ   rÜ   rs   rs   rs   rt   r¹     s.    r¹   T)Úcpu_onlyc                   @   sr  e Zd Zedd�dd„ ƒZeddd�dd	„ ƒZeddd�d
d„ ƒZeddd�dd„ ƒZeddd�dd„ ƒZeddd�e	j
 dddg¡dd„ ƒƒZeddd�dd„ ƒZeddd�dd„ ƒZeddd�dd„ ƒZeddd�dd„ ƒZeddd�dd„ ƒZeddd�d d!„ ƒZe	j
jdd�e	j
 d"g d#¢¡d$d%„ ƒƒZeddd�d&d'„ ƒZeddd�d(d)„ ƒZe	j
jdd�d*d+„ ƒZe	j
 d,¡e	j
jdd�e	j
 d-¡e	j
 d.d/¡e	j
 d0d1¡d2d3„ ƒƒƒƒƒZe	j
jdd�e	j
 d.d/¡d4d5„ ƒƒZe	j
jdd�e	j
 d6d7d8g¡d9d:„ ƒƒZe	j
jdd�d;d<„ ƒZd=d>„ Zeddd�d?d@„ ƒZeddd�e	j
 d6g dA¢¡e	j
 d.g d/¢¡dBdC„ ƒƒƒZdDS )EÚTestPearsonrT©rŽ   c                 C   ó,   t  tt¡}d}t||ƒ t|j|jƒ d S ©N©ÚcorrelationÚpvalue)re   r¾   rc   r   r   rä   Ú	statistic©rj   r‹   Ú
attributesrs   rs   rt   Útest_pearsonr_result_attributes  s   
z,TestPearsonr.test_pearsonr_result_attributesrB   ú)JAX arrays do not support item assignmentrD   c              	   C   sV   |  d¡}t ||¡\}}t|| d¡dd� t|| d¡t dt d¡ ¡d� d S )Nç      @r½   çVçž¯Ò<©Úatolr”   r0   ©r   re   r¾   r.   rb   rŠ   ÚsqrtÚspacing©rj   rk   ÚarÀ   Úprobrs   rs   rt   Útest_r_almost_exactly_pos1†  s   
(z'TestPearsonr.test_r_almost_exactly_pos1c              	   C   sX   |  d¡}t || ¡\}}t|| d¡dd� t|| d¡t dt d¡ ¡d� d S )Nrë   ç      ð¿rì   rí   r”   r0   r½   rï   rò   rs   rs   rt   Útest_r_almost_exactly_neg1‘  s   
(z'TestPearsonr.test_r_almost_exactly_neg1c                 C   sP   |  g d¢¡}|  g d¢¡}t ||¡\}}t||  d¡ƒ t||  d¡ƒ d S )N©r^   r   r   )r   r   r1   çªLXèz¶ë?çUUUUUUÕ?)rb   re   r¾   r.   )rj   rk   ró   ÚbrÀ   rô   rs   rs   rt   Ú
test_basicœ  s
   zTestPearsonr.test_basicc                 C   sŠ   d}t jtj|d��1 | g d¢¡}| g d¢¡}t ||¡\}}t|| |j¡ƒ t|| |j¡ƒ W d   ƒ d S 1 s>w   Y  d S )NúAn input array is constantr–   ©çòÒMbXå?rÿ   rÿ   ©ç°rh‘í|¿?çÉv¾Ÿ/Ý?gsh‘í|?é?©ÚpytestÚwarnsre   ÚConstantInputWarningrb   r¾   r.   ri   ©rj   rk   r¡   rl   rm   rÀ   Úprs   rs   rt   Útest_constant_input§  s   "ûz TestPearsonr.test_constant_inputÚdtyper   r¶   c              	   C   s¢   t t|ƒ}t ||ƒ}|jdddtjd|d� g|d�}|jddddtjd|d�  g|d�}d}tjtj|d�� t ||¡ W d   ƒ d S 1 sJw   Y  d S )Nr0   ©r
  r1   r4   z/An input array is nearly constant; the computedr–   )	ÚgetattrrŠ   rb   rñ   r  r  re   ÚNearConstantInputWarningr¾   )rj   rk   r
  Únpdtyperl   rm   r¡   rs   rs   rt   Útest_near_constant_inputµ  s   

"&"ýz%TestPearsonr.test_near_constant_inputc                 C   óh   |j g d¢|jd�}|j g d¢|jd�}t ||¡\}}t||j d|jd�ƒ t||j d|jd�ƒ d S )N)gµ¦yÇ)r?gx‹dè{s?gßnp?g$›«æ9"o?ge œ=:ïk?r  )g†ûãoÈŸûg`Ðÿ
,™ˆg“zó‰ÊÎàgÔ2ól?³g>?°…?'ge‡;üEç?g3RÚÅÂöÄ?©rb   r¶   re   r¾   r.   ©rj   rk   rl   rm   rÀ   r  rs   rs   rt   Útest_very_small_input_valuesÅ  s   
ÿ
ÿz)TestPearsonr.test_very_small_input_valuesc                 C   sl   d|j g d¢|jd� }d|jd|jd� }t ||¡\}}t||j d|jd�ƒ t||j d|jd�ƒ d S )NgÇY)	kŸR)r   r   r   r   r   r   r   r  r5   rù   gÍ—‚~-ˆ?)rb   r¶   r   re   r¾   r.   r  rs   rs   rt   Útest_very_large_input_values×  s
   z)TestPearsonr.test_very_large_input_valuesc                 C   r  )N)g±7øÂ	ˆig¥NÒòûƒ—ig_bÄ4‹�¡igZb××ç¤ir  )gøœDig<'È(Â½œigm–žQŽÅiçZb××çtigá*D¸æ{Ö?g�êÝ£Âä?r  r  rs   rs   rt   Ú!test_extremely_large_input_valuesè  s
   z.TestPearsonr.test_extremely_large_input_valuesrC   c           
      C   st   |  ddg¡}|  ddg¡}t ||¡}|\}}|  d¡}t||ƒ t||ƒ | ¡ \}}	t|| ƒ t|	|ƒ d S )Nr½   ç       @rë   rK   ©rb   re   r¾   r/   Úconfidence_interval©
rj   rk   rl   rm   r‹   rÀ   r  ÚoneÚlowÚhighrs   rs   rt   Útest_length_two_pos1÷  s   


z!TestPearsonr.test_length_two_pos1c           
      C   sv   |  ddg¡}|  ddg¡}t ||¡}|\}}|  d¡}t|| ƒ t||ƒ | ¡ \}}	t|| ƒ t|	|ƒ d S )Nr  r½   rë   rK   r  r  rs   rs   rt   Útest_length_two_neg1  s   

z!TestPearsonr.test_length_two_neg1c                 C   sŠ   d}t jtj|d��1 | ddg¡}| ddg¡}t ||¡\}}t|| |j¡ƒ t|| |j¡ƒ W d   ƒ d S 1 s>w   Y  d S )Nrý   r–   rÿ   r  r  r  r  rs   rs   rt   Útest_length_two_constant_input  s   "ûz+TestPearsonr.test_length_two_constant_inputz$alternative, pval, rlow, rhigh, sign))ú	two-sidedçˆöïÑèÙÔ?gÐmãúê¿g¸“ÆŽúÀï?r   )ÚlessçKôƒË…Éê?r^   gé?ú
Šï?r   )ÚgreaterçÓ.ðÑèÙÄ?gðÕ¤ÑÎ¶å¿r   r   )r!  r"  gÓfÇŽúÀï¿g¡ëlãúê?r^   )r#  r&  rö   gðÕ¤ÑÎ¶å?r^   )r%  r$  gé?ú
Šï¿r½   r^   c           
      C   sl   g d¢}t  g d¢¡| }tj|||d�}t|jd| dd� t|j|dd� | ¡ }	t|	||fdd� d S )N©r   r0   r1   r2   )r   r   r9   r   ©Úalternativegê—“å?r8   ©Úrtolç�íµ ÷Æ°>)rŠ   r   re   r¾   r
   ræ   rå   r  )
rj   r)  ÚpvalÚrlowÚrhighÚsignrl   rm   ÚresultÚcirs   rs   rt   Útest_basic_example)  s   	zTestPearsonr.test_basic_examplec                 C   s\   |  d¡}| }tj||dd�}tj||dd�}t|j| d¡ƒ t|j| d¡dd� d S )	Nr‡   r%  r(  r#  r½   r”   g#B’¡œÇ;rí   )r   re   r¾   r.   rå   rb   )rj   rk   rl   rm   Útest_greaterÚ	test_lessrs   rs   rt   Ú(test_negative_correlation_pvalue_gh17795:  s   
z5TestPearsonr.test_negative_correlation_pvalue_gh17795c           
      C   s~   |  g d¢¡}|  g d¢¡}t ||¡}|\}}|  d¡}t|| ƒ t|d| dd� | ¡ \}}	t|| ƒ t|	|ƒ d S )N©r½   r  rë   )rK   g      Àg      *Àr½   r   çH¯¼šò×z>rí   )rb   re   r¾   r.   r  r/   r  rs   rs   rt   Ú#test_length3_r_exactly_negative_oneD  s   
z0TestPearsonr.test_length3_r_exactly_negative_onec                 C   s„  g d¢}ddg}d}t jt|d�� t ||¡ W d   ƒ n1 s"w   Y  dg}dg}d}t jt|d�� t ||¡ W d   ƒ n1 sGw   Y  g d	¢}g d	¢}d
}t jt|d�� t ||¡ W d   ƒ n1 snw   Y  d}t jt|d�� tjddgddgdd� W d   ƒ n1 s“w   Y  t ddgddg¡}t jt|d�� |jdd� W d   ƒ d S 1 s»w   Y  d S )N©r   r0   r1   r2   r3   z3`x` and `y` must have the same length along `axis`.r–   r   r0   ú(`x` and `y` must have length at least 2.)ù       €      ð¿y       €       Ày       €      Àz+This function does not support complex dataz"`method` must be an instance of...r1   Ú
asymptotic©ÚmethodÚexact)r  r   rž   re   r¾   r  )rj   rl   rm   Úmessager‹   rs   rs   rt   Útest_input_validationT  s4   ÿÿÿÿ"ÿz"TestPearsonr.test_input_validationrX   z-Monte Carlo method needs > a few kB of memoryr)  ©r#  r%  r!  Úmethod_name©ÚpermutationÚmonte_carloÚmonte_carlo2c                 C   s   t j d¡}|dkrdnd}|j|d�}|j|d�}tj|d�tj|jfd d�tjd	d�d
œ}|| }tj||||dd�}	tj|||dd�}
t|	j	|
j	dd� t|	j
|
j
ddd� |dkr~tjd	d�}tj||||dd�}t|j	|	j	ƒ t|j
|	j
ƒ d S d S )Nl   «oƒ#[m»rF  ©r0   éd   )r0   éè  ©Úsize©Úrngr0   ©Úrvsi  rE  r^   )r)  r?  rS   ©r)  rS   rì   r*  ç{®Gáz„?çü©ñÒMbP?©r+  rî   rH  )rŠ   ÚrandomÚdefault_rngÚnormalre   ÚPermutationMethodÚMonteCarloMethodr¾   r
   ræ   rå   r   )rj   rD  r)  rO  rM  rl   rm   Úmethodsr?  r‹   ÚrefÚres2rs   rs   rt   Útest_resampling_pvaluep  s&   

þüz#TestPearsonr.test_resampling_pvaluec           
      C   s¢   t j d¡}|jdd�}|jdd�}tj|||dd�}t j d¡}tj|d�}|j|d�}| ¡ }t||d	d
� t j d¡}tj|d�}|j|d�}	t|	|ƒ d S )Nl   «_ÇY F rI  rL  r^   rR  l   |#(¯AkP©Úrandom_stater>  g¸…ëQ¸Ž?rí   rN  )	rŠ   rV  rW  rX  re   r¾   ÚBootstrapMethodr  r
   )
rj   r)  rO  rl   rm   r‹   r?  Úres_ciÚref_ciÚres_ci2rs   rs   rt   Útest_bootstrap_ciŠ  s   zTestPearsonr.test_bootstrap_cirS   r   r   c                 C   sÎ   t j d¡}d}|jd| d�\}}tj|||d�}| ¡ }|dkr)|j|j}}t|j	d ƒD ]4}	t ||	 ||	 ¡}
|
 ¡ }t
|j|	 |
jƒ t
|j|	 |
jƒ t
|j|	 |jƒ t
|j|	 |jƒ q0d S )Nì   áI.v# ©r7   rX   ©r0   rL  rR   r   )rŠ   rV  rW  rX  re   r¾   r  ÚTÚrangeÚshaper
   ræ   rå   r  r  )rj   rS   rk   rO  rk  rl   rm   r‹   r2  ÚiÚres_iÚci_irs   rs   rt   Útest_axis01Ÿ  s   úzTestPearsonr.test_axis01c           
      C   s‚   t j d¡}d}|jd| d�\}}tj||d d�}| ¡ }t | ¡ | ¡ ¡}| ¡ }	t|j	|j	ƒ t|j
|j
ƒ t||	ƒ d S )Nrf  rg  rh  rL  rR   )rŠ   rV  rW  rX  re   r¾   r  Úravelr
   ræ   rå   )
rj   rk   rO  rk  rl   rm   r‹   r2  r\  Úci_refrs   rs   rt   Útest_axis_None±  s   zTestPearsonr.test_axis_Nonec                 C   s�  |  d¡ }}d}tjt|d�� tj||dd� W d   ƒ n1 s#w   Y  d}tjt|d�� tj||  d¡dd� W d   ƒ n1 sGw   Y  d	}tjt|d�� tj|  d¡|  d¡dd� W d   ƒ n1 snw   Y  d
}tjt|d�� tj||  d¡dd� W d   ƒ n1 s’w   Y  d}t|ƒsÆ| d¡}tjt|d�� tj||t ¡ d� W d   ƒ d S 1 s¿w   Y  d S d S )N)r0   r3   z`axis` must be an integer.r–   r:   rR   z2`x` and `y` must have the same length along `axis`©r0   r   r   r;  z"`x` and `y` must be broadcastable.©r1   r3   z:`method` must be `None` if arguments are not NumPy arrays.rX   r>  )	Úonesr  r   rž   re   r¾   r*   r   rY  )rj   rk   rl   rm   rA  rs   rs   rt   Útest_nd_input_validation¾  s0   ÿÿÿÿ
"ÿþz%TestPearsonr.test_nd_input_validationc                 C   sD  t j d¡}| | d¡¡}| | d¡¡}d}tjtj|d��� t|ƒ}d|d< tj	||dd�}| 
¡ }|j|j|jd�}	t|jd	 |	ƒ t|jd	 |	ƒ t|jd	 |	ƒ t|jd	 |	ƒ | | |jdd … ¡¡rmJ ‚| | |jdd … ¡¡r|J ‚| | |jdd … ¡¡r‹J ‚| | |jdd … ¡¡ršJ ‚W d   ƒ n1 s¤w   Y  d
}tjtj|d�� d|d< tj	||dd� W d   ƒ n1 sÊw   Y  | ddgddgddgddgg¡}| ddgddgddgddgg¡}
| d¡}tj	||
dd�}| 
¡ }t|j| g d¢¡ƒ t|j|ƒ t|j| ƒ t|j|ƒ d S )Nl   •Uç!Jrt  rý   r–   r   )r   .rR   r  r   z!An input array is nearly constantg     ð?©r   r   r0   r½   r2   r^   )r   r^   r^   r½   )rŠ   rV  rW  rb   r  r  re   r  r)   r¾   r  ri   r¶   r/   ræ   rå   r  r  ÚanyÚisnanr  ru  r.   )rj   rk   rO  Úx0Úy0rA  rl   r‹   r2  ri   rm   ru  rs   rs   rt   Útest_nd_special_casesÖ  sB    óþ""
z"TestPearsonr.test_nd_special_cases)r   r   Nc           
      C   s¤   t jdd�\}}tj| |¡| |¡||d�}tj||||d�}t|j| |j¡ƒ t|j| |j¡ƒ | ¡ }| ¡ }	t|j	| |	j	¡ƒ t|j
| |	j
¡ƒ d S )N)r0   rX   rY   rL  ©rS   r)  )rO  rX  re   r¾   rb   r.   ræ   rå   r  r  r  )
rj   rk   rS   r)  rl   rm   r‹   r\  rb  rc  rs   rs   rt   Útest_array_apiý  s   ÿzTestPearsonr.test_array_apiN) r²   r³   r´   rG   ré   rõ   r÷   rü   r	  r  ÚmarkÚparametrizer  r  r  r  r  r  r   r3  r6  r9  rB  Ú	fail_slowÚxfail_on_32bitr^  re  ro  rr  rv  r|  r~  rs   rs   rs   rt   rß   {  s¨    
ÿ
	ÿ
	ÿ
	ÿ
ÿÿ
ÿ
ÿ






ÿ	ÿ
ÿ



ÿ
ÿ
%ÿrß   c                   @   sÐ   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zej	j
d
d„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zej	 dg d¢¡dd„ ƒZdd„ Zej	 d¡ej	 
¡ dd„ ƒƒZej	 d¡ej	 
¡ dd„ ƒƒZej	 ¡ dd „ ƒZd!S )"ÚTestFisherExacta¢  Some tests to show that fisher_exact() works correctly.

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

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

    R:
    > phyper(18999, 99000, 110000, 39000, lower.tail = FALSE)
    [1] 1.701815e-09
    c                 C   s²  t j}|ddgddggƒd }t|ddd� |d	d
gddggƒd }t|ddd� |d
dgdd
ggƒd }t|ddd� |ddgddggƒd }t|ddd� |ddgddggƒd }t|ddd� |ddgddggƒd }t|ddd� |ddgddggƒd }t|ddd� |ddgddggƒd }t|ddd� |ddgdd
ggƒd }t|dƒ |dd
gddggƒd }t|dƒ |d
dgdd
ggƒ}t|d ddd� t|d dƒ d S ) Né¤8  é N  é0u  é@œ  r   gØžY ¦†?r2   ©ÚsignificantrJ  r0   rK  r3   g,Ôšæ§À?r5   r6   gÕ2c‘—?r4   rX   göY
íAÉ?é   é   g_Ð£†¸?rˆ   é   gOÖ^úMÆ?r   g˜ïÖ…a¨?r1   r½   gƒÞgÑEÝ?g’$I’$I²?)re   Úfisher_exactr	   )rj   r�  r‹   rs   rs   rt   rü     s0   

zTestFisherExact.test_basicc                 C   s  ddgddggdfddgddggdfdd	gd
d
ggdfddgddggdfddgddggdfd
dgd
d	ggdfd
dgd
dggdfddgd	dggt jdffddgd	dggdfdd	gddggt jdffdd	gddggdfg}|D ]\}}t t  |¡¡}t jj|d	 |d	 ddd� qmd S )NrJ  r0   rK  r3   )gAnº&	Ð?g“}K
T¦À?r5   r6   )g¦›	7ûµ?gÑÉÀ ‘—?r   rX   )g!çÁç@çjô)íAÉ?rŠ  r‹  )gUþ‰!a¹Õ?gÌKY£†¸?rˆ   rŒ  )g7�úXÙ?g~l²tPÆ?)gFu|Ë?rŽ  r   )r”   gQÆìN^¯?r2   g†a†a¨?©r”   r½   g†a†a¨?r1   rY   T)ÚdecimalÚverbose)rŠ   Úinfre   r�  rb   Útestingr   )rj   ÚtablistÚtableÚres_rr‹   rs   rs   rt   Útest_precise8  s$   õÿþzTestFisherExact.test_precisec                 C   s|   ddgddgg}t  |¡}t|d dƒ ddgdd	gg}t  |¡}t|d d
ƒ ddgddgg}t  |¡}t|d dƒ d S )Nr4   é%   él   éÈ   r   gÑm¤Üt?é   r   éf   gÔÈ,‹×Áë:é^   é0   iù  i\B  gº–N¶¨šQ8©re   r�  r
   ©rj   rl   r‹   rs   rs   rt   Útest_gh4130P  s   


zTestFisherExact.test_gh4130c                 C   s0   ddgddgg}t  |¡}t|d ddd� d S )NiiòX iÝV i¿çW r   r   g¯žÑ§›R£rí   rŸ  r   rs   rs   rt   Útest_gh9231f  s   
zTestFisherExact.test_gh9231c                 C   st   g d¢}t |g d¢ƒD ]\}}t ddgd|gg¡d }t||dd� qt d	d
gddgg¡d }t|ddd� d S )N)g±Æ?‘Î=gNuP½=gËsù­=)éK   éL   éM   i(E  ið  i)  r   r2   rˆ  iPF  i€8 r…  i�_ g^KÈ=›Ñ?)Úzipre   r�  r	   )rj   Úpvalsr-  Únumr‹   rs   rs   rt   Útest_large_numbersm  s   z"TestFisherExact.test_large_numbersc                 C   sH   d}t jt|d�� t t d¡¡ W d   ƒ d S 1 sw   Y  d S )Nz+The input `table` must have two dimensions.r–   r4   )r  r   rž   re   r�  rŠ   r   ©rj   rA  rs   rs   rt   Útest_raisesx  ó   "ÿzTestFisherExact.test_raisesc                 C   sn   ddgddggddgddggddgddggddgddggf}|D ]}t  |¡\}}t|dƒ t|tjƒ q d S )Nr   r3   rX   r½   )re   r�  r   rŠ   ri   )rj   Útablesr•  Ú	oddsratior-  rs   rs   rt   Útest_row_or_col_zero~  s   ý
ýz$TestFisherExact.test_row_or_col_zeroc                 C   s  ddgddggddgddggddgdd	ggd
dgddggddgddggddgddggddgddggddgddggddgddggf	}ddgddgddgddgddgddgddgddgddgf	}t ||ƒD ]&\}}g }| tj|dd�d ¡ | tj|d d�d ¡ t||dd!d"� qcd S )#Nr0   r5   r6   rš  i,  é   rU   r4   i¥  é¾   i   i„  r   r1   r   r2   gIëü[÷’?gq}“!î÷ï?r½   g2½á\„ª&g’ŠQ“pô6g:O‡_»ç?gÚ×Ë añÒ?çš™™™™™¹?çffffffæ?çÍÌÌÌÌÌì?ç333333Ó?çUUUUUUå?rú   r#  r(  r%  r8  )rî   r+  )r¦  Úappendre   r�  r
   )rj   r­  r§  r•  r-  r‹   rs   rs   rt   Útest_less_greaterˆ  s4   ôõüz!TestFisherExact.test_less_greaterc                 C   s   t  ddgddgg¡\}}d S )Nr   r0   r7   i¡")re   r�  )rj   Úoddsrå   rs   rs   rt   Útest_gh3014ª  s   zTestFisherExact.test_gh3014r)  ©r!  r#  r%  c                 C   s:   t  ddgddgg¡}tj||d�}t|j|jf|ƒ d S )Nr„  r…  r†  r‡  r(  )rŠ   r   re   r�  r   ræ   rå   )rj   r)  r•  r‹   rs   rs   rt   Útest_result¯  s   zTestFisherExact.test_resultc                 C   s¦  t j d¡}t  ddgddgg¡}d}tjt|d�� tj|d�}tj	||dd	� W d   ƒ n1 s3w   Y  d
}tjt|d�� tj
|d�}tj	||d� W d   ƒ n1 sYw   Y  d}tjt|d�� tjtjjd�}tj	||d� W d   ƒ n1 s�w   Y  d}tjt|d�� t 	t  d¡¡ W d   ƒ n1 s¢w   Y  t j t 	g d¢g¡d¡ t j t 	dgdgdgg¡d¡ t j t 	t  d¡¡d¡ d S )Nì   9o8�o r0   r5   r6   z4`alternative` must be the default \(None\) unless...r–   rN  r#  ©r?  r)  z6...not recognized; if provided, `method` must be an...r>  z3If the `method` argument of `fisher_exact` is an...rP  z2`table` must have at least one row and one column.©r   r   r:  ©r   r   r   r1   ©r0   r1   )rŠ   rV  rW  rb   r  r   rž   re   rY  r�  ra  rZ  ÚnormrQ  Úzerosr“  r   )rj   rO  r•  rA  r?  rs   rs   rt   Ú$test_input_validation_edge_cases_rxcµ  s0   þþþÿ z4TestFisherExact.test_input_validation_edge_cases_rxcrX   c                 C   sÆ   t j d¡}t  ddgddgg¡}t |¡}|j}t |jdd�|jdd�¡ 	|¡}tj
|d�}tj||d	�}t|j|d
d� t|j|ƒ tj|d�}tj||d	�}t|j|jd
d� t|j|ƒ d S )Nr½  r0   r5   r6   r   rR   r   rN  r>  g{®Gázd?rí   )rŠ   rV  rW  rb   re   r�  rå   Úrandom_tableÚsumÚpmfrZ  r
   r   ræ   rY  )rj   rO  r•  r\  Ú
ref_pvalueÚref_statr?  r‹   rs   rs   rt   Útest_resampling_2x2Ô  s   
"z#TestFisherExact.test_resampling_2x2c                 C   s–   g d¢g d¢g d¢g d¢g d¢g}t  |¡}d}t j d¡}tj|d�}tj||d	�}t|j|d
d� tj	|dd�}tj||d	�}t|j|d
d� d S )N)r   r0   r0   r   r   r   r   )r0   r   r   r0   r1   r   r   )r   r   r   r   r0   r5   r1   )r   r   r0   r   r   r   r   )r   r   r   r   r   r   r   gøk$­Å¤?l   Ý|KrN  r>  gü©ñÒMb@?rí   iŸ† )rO  Ún_resamples)
rŠ   rb   rV  rW  re   rY  r�  r
   rå   rZ  )rj   r•  rÈ  rO  r?  r‹   rs   rs   rt   Útest_resampling_rxcç  s   ü
z#TestFisherExact.test_resampling_rxcc           
   	   C   sœ   t j d¡}tj|d�}tddƒD ]:}tddƒD ]2}tddƒD ]*}tddƒD ]"}t  ||g||gg¡}t |¡}tj||d�}	t|	j	|j	dd� q&qqqd S )	Nr½  rN  r   r1   r2   r>  ç›+¡†›„=rí   )
rŠ   rV  rW  re   rY  rj  rb   r�  r
   rå   )
rj   rO  r?  ró   rû   ÚcÚdr•  r\  r‹   rs   rs   rt   Útest_resampling_exact_2x2  s   
üÿÿÿz)TestFisherExact.test_resampling_exact_2x2N)r²   r³   r´   rÝ   rü   r—  r¡  r¢  r  r  Úslowr©  r«  r¯  r¸  rº  r€  r¼  rÄ  r�  rÊ  rÌ  ÚxslowrÐ  rs   rs   rs   rt   rƒ    s.    


"


rƒ  c                   @   s   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*d+„ Zd,d-„ Zd.d/„ Zd0d1„ Zd2d3„ Zd4d5„ Zd6d7„ Zd8d9„ Zd:d;„ Z d<d=„ Z!d>d?„ Z"d@dA„ Z#dBdC„ Z$dDdE„ Z%dFS )GÚTestCorrSpearmanrrº   c                 C   s"   t  dd¡}tt |¡ ¡ ƒ d S )Nr«   r  )re   Ú	spearmanrr   rŠ   ry  Úall)rj   rm   rs   rs   rt   Útest_scalar  s   zTestCorrSpearmanr.test_scalarc                 C   s0   t ttjg d¢ddgƒ t ttjg d¢dƒ d S )N©r   r0   r   r6   r7   )r�   rž   re   rÔ  ©rj   rs   rs   rt   Útest_uneven_lengths#  s   z%TestCorrSpearmanr.test_uneven_lengthsc                 C   sŒ   t j d¡ t j dd¡}t j dd¡}t ||¡jjdks J ‚tj|j|jdd�j	jdks0J ‚t
ttj||dd� t
ttj|j|jƒ d S )Né„‹ r2   r1   r0   ©r3   r3   r   rR   )rŠ   rV  ÚseedÚrandnre   rÔ  ræ   rk  ri  rå   r�   rž   ©rj   rl   rm   rs   rs   rt   Útest_uneven_2d_shapes'  s    z'TestCorrSpearmanr.test_uneven_2d_shapesc                 C   sz   t j d¡ t j ddd¡}tttj|ƒ tttj||ƒ tttj|d d ƒ ttj||d d�tj| 	¡ | 	¡ dd�ƒ d S )NrÚ  r2   r1   r0   rR   r   )
rŠ   rV  rÜ  rÝ  r�   rž   re   rÔ  r
   Úflatten©rj   rl   rs   rs   rt   Útest_ndim_too_high2  s   ÿz$TestCorrSpearmanr.test_ndim_too_highc                 C   sp   t  d¡}t j|d< tt ||¡t jt jfƒ ttj||dd�dƒ tttj||dd� tttj||dd� d S )Nr‡   r7   r‘   r’   )r½   r”   r˜   rš   )rŠ   r   ri   r   re   rÔ  r�   rž   rá  rs   rs   rt   Útest_nan_policy<  ó   

ÿz!TestCorrSpearmanr.test_nan_policyc                 C   s¸   t j d¡ t j dd¡}d}t j|d d …|f< t j||dd�}tj|dd�\}}t |¡\}}t jt j||dd�|dd�}t jt j||dd�|dd�}t||d	d
� t||d	d
� d S )Nr3   rX   r4   r   rR   r‘   r’   r   rÍ  rí   )	rŠ   rV  rÜ  Úrandri   Údeletere   rÔ  r
   )rj   rl   Úkrm   ÚcorxÚpxÚcoryÚpyrs   rs   rt   Útest_nan_policy_bug_12458E  s   z+TestCorrSpearmanr.test_nan_policy_bug_12458c                    sp   t j d¡ d‰ d}t j ˆ |¡‰t jˆd< t jˆd< tjˆddd�\}}‡ ‡fdd	„tˆ ƒD ƒ}t||ƒ d S )
Nr3   rX   ©r   r   )r1   r^   r   Ú	propagate©rS   r“   c                    s$   g | ]‰ ‡ ‡fd d„t ˆƒD ƒ‘qS )c              	      s2   g | ]}t  ˆ|d d …f ˆˆ d d …f ¡j‘qS ©N)re   rÔ  ræ   ©Ú.0rl  )Újrl   rs   rt   Ú
<listcomp>Z  s   2 zJTestCorrSpearmanr.test_nan_policy_bug_12411.<locals>.<listcomp>.<listcomp>©rj  ©rò  ©Úmrl   ©ró  rt   rô  Z  s    ÿz?TestCorrSpearmanr.test_nan_policy_bug_12411.<locals>.<listcomp>)	rŠ   rV  rÜ  rÝ  ri   re   rÔ  rj  r
   )rj   ÚnÚcorrrå   r‹   rs   r÷  rt   Útest_nan_policy_bug_12411R  s   

ÿz+TestCorrSpearmanr.test_nan_policy_bug_12411c                 C   r»   r¼   )re   rÔ  rc   r	   r¿   rs   rs   rt   Útest_sXX^  rÂ   zTestCorrSpearmanr.test_sXXc                 C   rÃ   r¼   )re   rÔ  rc   rÄ   r	   r¿   rs   rs   rt   Ú
test_sXBIGc  rÂ   zTestCorrSpearmanr.test_sXBIGc                 C   rÃ   r¼   )re   rÔ  rc   rÆ   r	   r¿   rs   rs   rt   Útest_sXLITTLEh  rÂ   zTestCorrSpearmanr.test_sXLITTLEc                 C   rÃ   r¼   )re   rÔ  rc   rÈ   r	   r¿   rs   rs   rt   Útest_sXHUGEm  rÂ   zTestCorrSpearmanr.test_sXHUGEc                 C   rÃ   r¼   )re   rÔ  rc   rÊ   r	   r¿   rs   rs   rt   Útest_sXTINYr  rÂ   zTestCorrSpearmanr.test_sXTINYc                 C   rÃ   r¼   )re   rÔ  rc   rÌ   r	   r¿   rs   rs   rt   Útest_sXROUNDw  rÂ   zTestCorrSpearmanr.test_sXROUNDc                 C   r»   r¼   )re   rÔ  rÄ   r	   r¿   rs   rs   rt   Útest_sBIGBIG|  rÂ   zTestCorrSpearmanr.test_sBIGBIGc                 C   rÃ   r¼   )re   rÔ  rÄ   rÆ   r	   r¿   rs   rs   rt   Útest_sBIGLITTLE�  rÂ   z!TestCorrSpearmanr.test_sBIGLITTLEc                 C   rÃ   r¼   )re   rÔ  rÄ   rÈ   r	   r¿   rs   rs   rt   Útest_sBIGHUGE†  rÂ   zTestCorrSpearmanr.test_sBIGHUGEc                 C   rÃ   r¼   )re   rÔ  rÄ   rÊ   r	   r¿   rs   rs   rt   Útest_sBIGTINY‹  rÂ   zTestCorrSpearmanr.test_sBIGTINYc                 C   rÃ   r¼   )re   rÔ  rÄ   rÌ   r	   r¿   rs   rs   rt   Útest_sBIGROUND�  rÂ   z TestCorrSpearmanr.test_sBIGROUNDc                 C   r»   r¼   )re   rÔ  rÆ   r	   r¿   rs   rs   rt   Útest_sLITTLELITTLE•  rÂ   z$TestCorrSpearmanr.test_sLITTLELITTLEc                 C   rÃ   r¼   )re   rÔ  rÆ   rÈ   r	   r¿   rs   rs   rt   Útest_sLITTLEHUGEš  rÂ   z"TestCorrSpearmanr.test_sLITTLEHUGEc                 C   rÃ   r¼   )re   rÔ  rÆ   rÊ   r	   r¿   rs   rs   rt   Útest_sLITTLETINYŸ  rÂ   z"TestCorrSpearmanr.test_sLITTLETINYc                 C   rÃ   r¼   )re   rÔ  rÆ   rÌ   r	   r¿   rs   rs   rt   Útest_sLITTLEROUND¤  rÂ   z#TestCorrSpearmanr.test_sLITTLEROUNDc                 C   r»   r¼   )re   rÔ  rÈ   r	   r¿   rs   rs   rt   Útest_sHUGEHUGE©  rÂ   z TestCorrSpearmanr.test_sHUGEHUGEc                 C   rÃ   r¼   )re   rÔ  rÈ   rÊ   r	   r¿   rs   rs   rt   Útest_sHUGETINY®  rÂ   z TestCorrSpearmanr.test_sHUGETINYc                 C   rÃ   r¼   )re   rÔ  rÈ   rÌ   r	   r¿   rs   rs   rt   Útest_sHUGEROUND³  rÂ   z!TestCorrSpearmanr.test_sHUGEROUNDc                 C   r»   r¼   )re   rÔ  rÊ   r	   r¿   rs   rs   rt   Útest_sTINYTINY¸  rÂ   z TestCorrSpearmanr.test_sTINYTINYc                 C   rÃ   r¼   )re   rÔ  rÊ   rÌ   r	   r¿   rs   rs   rt   Útest_sTINYROUND½  rÂ   z!TestCorrSpearmanr.test_sTINYROUNDc                 C   r»   r¼   )re   rÔ  rÌ   r	   r¿   rs   rs   rt   Útest_sROUNDROUNDÂ  rÂ   z"TestCorrSpearmanr.test_sROUNDROUNDc                 C   rá   râ   )re   rÔ  rc   r   r   rä   ræ   rç   rs   rs   rt   Ú test_spearmanr_result_attributesÇ  s   
z2TestCorrSpearmanr.test_spearmanr_result_attributesc                 C   s@   g d¢}g d¢}t  ||¡}t  t ||g¡j¡}t||ƒ d S )N©r   r0   r1   r2   r3   r4   )r   r0   r1   r2   r4   r3   )re   rÔ  rŠ   rb   ri  r
   ©rj   Úx1Úx2Úres1r]  rs   rs   rt   Útest_1d_vs_2dÍ  s
   zTestCorrSpearmanr.test_1d_vs_2dc                 C   sf   dD ].}dt jddddg}dddddt jg}tj|||d�}tjt  ||g¡j|d�}t||ƒ qd S )	N)rî  r‘   r   r1   r2   r3   r4   r0   r’   )rŠ   ri   re   rÔ  rb   ri  r
   )rj   r“   r  r  r  r]  rs   rs   rt   Útest_1d_vs_2d_nansÔ  s   ûz$TestCorrSpearmanr.test_1d_vs_2d_nansc                 C   s    t  d¡}| }t  g d¢¡}t  |||g¡j}t |¡}t  g d¢g d¢g d¢g¡}t jdtd�}d|d	d
d	…f< d|d
d	…d	f< t	|j
|ƒ t	|j|ƒ d S )Nr4   )r   r   r0   r1   r3   r2   )r   r^   ç÷3£¼â+î?)r^   r   ç÷3£¼â+î¿)r  r  r   ©r1   r1   r  g+Hs]®s?r0   r   )rŠ   r   r   rb   ri  re   rÔ  rÃ  Úfloatr
   ræ   rå   )rj   r  r  Úx3rl   ÚactualÚexpected_corrÚexpected_pvaluers   rs   rt   Ú
test_3colsÝ  s   


þzTestCorrSpearmanr.test_3colsc              
   C   s¾   t  t jddddddgdt jddd	ddgg d
¢g¡j}t  t jt jt jgt jt jt jgt jt jdgg¡}ttj|dd�j|ƒ tj|dd�j}t|d d |d d |d d fddd� d S )Nrë   r«   rK   çffffff@r¬   çffffff"@çffffff@g333333@çš™™™™™@)r9   r«   çffffff@çffffff@r®   r#  çffffff@r½   rî  r’   r‘   r   r   r0   )gaÑcJÚCÊ?g%Ålnñß?g_0nYt!Þ¿r,  r*  )rŠ   r   ri   ri  r
   re   rÔ  ræ   )rj   rl   rû  r‹   rs   rs   rt   Útest_gh_9103í  s"   þþþÿ"
ÿzTestCorrSpearmanr.test_gh_9103c           
      C   s¦   d}t j d¡ t j |¡}t j |¡dk}|dk}t  |¡}tj||dd�j}t j||< tj||dd�j}| 	t j
¡}tj||dd�j}g d¢}	t|||g|	ƒ d S )NrJ  iH” r³  r9   r‘   r’   )g¬onjµë?ç)Wn%·ë?r+  )rŠ   rV  rÜ  rå  r   re   rÔ  ræ   ri   ÚastypeÚint32r
   )
rj   rú  rl   rø  ró   rû   r  r]  Úres3Úexpectedrs   rs   rt   Útest_gh_8111ü  s   

zTestCorrSpearmanr.test_gh_8111N)&r²   r³   r´   rÝ   rÖ  rÙ  rß  râ  rã  rì  rü  rý  rþ  rÿ  r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r"  r*  r0  rs   rs   rs   rt   rÓ    sH    
		rÓ  c                   @   sž   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zej d d!¡d"d#„ ƒZd$S )%ÚTestCorrSpearmanr2z-Some further tests of the spearmanr function.c                 C   sH   g d¢}g d¢}d}t  ||¡}t|d |d ƒ t|d |d ƒ d S )N©r   r0   r1   r2   r3   ©r3   r4   r5   r6   r5   ©g™hÜ
ÚCê?g€¬R£­¶?r   r   )re   rÔ  r	   ©rj   r  r  r/  r‹   rs   rs   rt   Útest_spearmanr_vs_r  s   z&TestCorrSpearmanr2.test_spearmanr_vs_rc                 C   s   t t g g ¡tjtjfƒ d S rð  )r   re   rÔ  rŠ   ri   rØ  rs   rs   rt   Útest_empty_arrays!  s   z$TestCorrSpearmanr2.test_empty_arraysc                 C   sš   t j d¡ t  t jjdddd�t jjdddd�g¡}ddgddgg}t  t j |¡|¡}d}t 	|d |d ¡}t
|d |d ƒ t
|d |d ƒ d S )	Néz  r   éô  ©ÚlocÚscalerM  r½   rµ  )g‚CzYšWÒ?geÞü™*Ò=r   )rŠ   rV  rÜ  r   rX  ÚdotÚlinalgÚcholeskyre   rÔ  r	   )rj   rl   rû  r/  r‹   rs   rs   rt   Útest_normal_draws$  s   ÿÿz$TestCorrSpearmanr2.test_normal_drawsc                 C   s"   t t g d¢g d¢¡d dƒ d S )N©r   r   r0   r   r½   )r	   re   rÔ  rØ  rs   rs   rt   Útest_corr_10  s   "zTestCorrSpearmanr2.test_corr_1c                 C   óp   t  d¡}t j|d< tt ||¡t jt jfƒ ttj||dd�dƒ tttj||dd� tttj||dd� d S )Nr‡   r7   r‘   r’   )r½   r   r˜   rš   )	rŠ   r   ri   r   re   rÔ  r
   r�   rž   rá  rs   rs   rt   Útest_nan_policies3  rä  z$TestCorrSpearmanr2.test_nan_policiesc                 C   s(   t  d¡}t  d¡}tttj||ƒ d S )Nr‡   ç      4@)rŠ   r   r�   rž   re   rÔ  rÞ  rs   rs   rt   Útest_unequal_lengths<  s   

z'TestCorrSpearmanr2.test_unequal_lengthsc                 C   sT   g d¢}dddt jg}tj||dd�}tj|d d… |d d… dd�}t||ƒ d S )Nr'  r6   r5   r4   r‘   r’   r1   )rŠ   ri   re   rÔ  r   r  rs   rs   rt   Útest_omit_paired_valueA  s
    z)TestCorrSpearmanr2.test_omit_paired_valuec                 C   sš   t tdƒƒ}t tdƒƒ}|d |d |d< |d< |d |d |d< |d< |d |d |d< |d< | tj¡ | d¡ ttj||d	d
�d dƒ d S )NéÐ  r7   r   i²  rX   iå  i³  rë   r‘   r’   gV-²�ïï?)Úlistrj  r·  rŠ   ri   r   re   rÔ  rÞ  rs   rs   rt   Ú#test_gh_issue_6061_windows_overflowH  s   
z6TestCorrSpearmanr2.test_gh_issue_6061_windows_overflowc                 C   sÊ   d}t jtj|d��Q t g d¢g d¢¡\}}t|tjƒ t|tjƒ t g d¢g d¢¡\}}t|tjƒ t|tjƒ t g d¢g d¢¡\}}t|tjƒ t|tjƒ W d   ƒ d S 1 s^w   Y  d S )Nrý   r–   ©r0   r0   r0   ©r0   r   r0   )r  r  re   r  rÔ  r   rŠ   ri   )rj   Úwarn_msgrÀ   r  rs   rs   rt   Ú	test_tie0U  s   "÷zTestCorrSpearmanr2.test_tie0c                 C   sF   g d¢}g d¢}g d¢}g d¢}t  ||¡}t  ||¡}t||ƒ d S )N©r½   r  rë   r«   )r½   r  r  rë   )r½   r;   r;   r«   )re   rÔ  r¾   r   )rj   rl   rm   ÚxrÚyrÚsrÚprrs   rs   rt   Ú	test_tie1c  s   zTestCorrSpearmanr2.test_tie1c                 C   sZ   g d¢}g d¢}ddddt jg}ddddt jg}t ||¡}tj||dd	�}t||ƒ d S )
N)r   r0   r;   r0   )r   r1   r;   r2   r   r0   r;   r1   r2   r‘   r’   )rŠ   ri   re   rÔ  r   )rj   r  rn   r  ro   Úsr1Úsr2rs   rs   rt   Ú	test_tie2p  s   zTestCorrSpearmanr2.test_tie2c                 C   sú   t  g d¢g d¢g¡}t  g d¢g d¢g¡}t  g d¢g d¢g¡}d}tjtj|d��H tj|dd�\}}t|t jƒ t|t jƒ tj|dd�\}}t|t jƒ t|t jƒ tj|dd�\}}t|t jƒ t|t jƒ W d   ƒ d S 1 svw   Y  d S )N©r   r   r   r   r'  rý   r–   r   rR   ©	rŠ   r   r  r  re   r  rÔ  r   ri   )rj   Úz1Úz2Úz3rM  rÀ   r  rs   rs   rt   Útest_ties_axis_1~  s   "÷z#TestCorrSpearmanr2.test_ties_axis_1c                 C   s~   t  g d¢¡}t  g d¢¡}d}tjtj|d�� t ||¡\}}t|t jƒ t|t jƒ W d   ƒ d S 1 s8w   Y  d S )N)
r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   ©
r   g‘NÂ}	„?r   r   g	™ï–Ï/`?gY%uX-±H?gC1štºq1?r   r   gˆ¥*­I?rý   r–   rY  )rj   rl   rm   rM  rÀ   r  rs   rs   rt   Útest_gh_11111Ž  s   "ýz TestCorrSpearmanr2.test_gh_11111c                 C   s4   t  g d¢¡}t  g d¢¡}tttj||dd� d S )N)
r½   r­   r  r½   r½   r½   r½   r½   r½   r½   r^  r0   rR   )rŠ   r   r�   rž   re   rÔ  rÞ  rs   rs   rt   Útest_index_error™  s   z#TestCorrSpearmanr2.test_index_errorc                 C   sÌ   g d¢}g d¢}d}t j||dd�}t|d |d ƒ t|d d|d d  ƒ t j||d	d�}t|d |d ƒ t|d |d d ƒ tjtd
d�� t j||dd� W d   ƒ d S 1 s_w   Y  d S )Nr2  r3  r4  r#  r(  r   r   r0   r%  ú`alternative` must be 'less'...r–   ú	ekki-ekki)re   rÔ  r	   r  r   rž   r5  rs   rs   rt   Útest_alternative   s   "ÿz#TestCorrSpearmanr2.test_alternativer)  r»  c           	      C   sü   g d¢}g d¢}|t jg }|t jg }tt ||¡t jt jfƒ tj||d|d�}tj|||d�}t||ƒ d}tjt|d�� tj||d|d� W d   ƒ n1 sTw   Y  d	}tjt|d�� tj||d
|d� W d   ƒ d S 1 sww   Y  d S )Nr2  r3  r‘   ©r“   r)  r(  r•   r–   r˜   r™   rb  )	rŠ   ri   r   re   rÔ  r
   r  r   rž   )	rj   r)  r  r  Úx1nanÚx2nanÚ
res_actualÚres_expectedrA  rs   rs   rt   Útest_alternative_nan_policy·  s,   
ÿ

ÿÿ
ÿ"ÿz.TestCorrSpearmanr2.test_alternative_nan_policyN)r²   r³   r´   rÝ   r6  r7  r@  rB  rD  rF  rG  rJ  rN  rT  rW  r]  r_  r`  rc  r  r  r€  ri  rs   rs   rs   rt   r1    s&    
	r1  c                  C   sv  d} g d¢}g d¢}d}| D ]}t j|||d�}t|d |d ƒ t|d |d ƒ qg d¢}g d	¢}d}| D ]}t j|||d�}t|d |d ƒ t|d |d ƒ q7g d
¢}g d¢}d}| D ]}t j|||d�}t|d |d ƒ t|d |d ƒ q`g d¢}g d¢}d}| D ]}t j|||d�}t|d |d ƒ t|d |d ƒ q‰t d¡}t d¡}d}| D ]}t j|||d�}t|d |d ƒ t|d |d ƒ q´|d }|d |d< ||d< d}| D ]}t j|||d�}t|d |d ƒ t|d |d ƒ qã|d }|d |d< ||d< d}| D ]}t j|||d�}t|d |d ƒ t|d |d ƒ �qt d¡}t d¡d d d… }d}| D ]}t j|||d�}t|d |d ƒ t|d |d ƒ �qC|d }|d |d< ||d< d}| D ]}t j|||d�}t|d |d ƒ t|d |d ƒ �qs|d }|d |d< ||d< d}| D ]}t j|||d�}t|d |d ƒ t|d |d ƒ �q£tg d¢ƒ}tg d¢ƒ}d}tt j||dd�d |ƒ d}tt j||d d�d |ƒ |d |d< ttt j||d!d"� ttt j||d#d"� ttt j||d$d� g d%¢}g d&¢}d'}t  ||¡}t|d |d ƒ t|d |d ƒ d(}	| D ]}t j|||d�}t||	ƒ t	|j
|jƒ �q5| D ]<}t	t jg d)¢g d)¢|d�tjtjfƒ t	t jg d*¢g d)¢|d�tjtjfƒ t	t jg d)¢g d*¢|d�tjtjfƒ �qOt	t  g g ¡tjtjfƒ tj d+¡ t tjjddd,d-�tjjddd,d-�g¡}d.d/gd/d.gg}
t tj |
¡|¡}d0}t  |d |d ¡}t|d |d ƒ t|d |d ƒ tt jg d1¢g d1¢dd�d d.ƒ tt jg d1¢g d1¢d d�d d2ƒ t d3¡}tj|d4< tt  ||¡tjtjfƒ tt j||d5d6�d7d8d9� tt j||d5d:d;�d<d8d9� ttt j||d=d6� ttt j||d>d6� t d3¡}t d?¡}ttt j||ƒ t  g g ¡\}}t	tj|ƒ t	tj|ƒ t  dgdg¡\}}t	tj|ƒ t	tj|ƒ tjd@tdA�}tj |dB¡}tjd@tdA�}t |dCd … |d dC… f¡}tt t  ||¡d ¡ƒ d S )DN)rû   rÎ  )r3   r0   r   r1   r4   r2   r5   r6   )r3   r0   r4   r1   r   r6   r5   r2   r�  )Úvariantr   r   )	r   r3   r0   r   r1   r4   r2   r5   r6   )	r3   r0   r   r4   r1   r   r6   r5   r2   )r3   r0   r   r1   r4   r2   r5   )r3   r0   r4   r1   r   r5   r2   )g®¶J’$IÂ¿gm¹”K¹è?)r0   r   r1   r4   r2   r5   r6   )r0   r4   r1   r   r6   r5   r2   )gJka†a¨?r½   rX   )r½   ç´žx·O~¢>r0   )g?é“>é“î?çaÆV¥ã×>r3   r4   )g}Ò'}Ò'í?ço‡›…&5ÿ>r^   )rö   rk  )g?é“>é“î¿rl  )g}Ò'}Ò'í¿rm  )
r   r0   r0   r2   r2   r4   r4   r6   r7   r7   )
r   r0   r2   r2   r2   r2   r6   r6   r6   rX   gok¨¤�|ë?rû   gffffffê?rÎ  r@  r>  ÚbananaÚrms©rZ   r0   r   rZ   r0   ©r   r2   r5   r   r   )çgúþÝ}+Þ¿g`=ài€Ò?rã   rK  rL  r8  r9  r:  r½   rµ  )gå\zf±È?gÔ^nŠÅ)ß=rA  g#¬Çqì?r‡   r7   r‘   r’   )r½   g®È/¢ã×>r,  r*  r=  )r“   r?  )r½   g�Îóèíà&?r˜   rš   rE  rH  r  iË  rK  )re   Ú
kendalltaur	   rŠ   r   r   r�   rž   r   r   rä   ræ   ri   rV  rÜ  rX  r=  r>  r?  r   r
   r  ÚmaÚmasked_greaterÚconcatenater   Úisfinite)Úvariantsrl   rm   r/  Útauxr‹   rû   r  r  rè   rû  ÚtauÚp_valuers   rs   rt   Útest_kendalltauß  s,  




ÿ
ÿ
ÿÿÿÿÿ

ÿÿ

r|  c                  C   sœ   t j d¡ tddƒD ]@} g }t| ƒD ]	}||g| 7 }qt|ƒ}t j |¡ t j |¡ t ||¡}t ||¡}t	|d |d ƒ t	|d |d ƒ qd S )Né*   r0   rX   r   r   )
rŠ   rV  rÜ  rj  rI  ÚshuffleÚmstats_basicrs  re   r	   )Úsró   rl  rû   r/  r  rs   rs   rt   Útest_kendalltau_vs_mstats_basic¹  s   õr�  c                  C   sX   g d¢} t jdddg}tj| |dd�}t | dd … |dd … ¡}t|j|jdd� d S )	NrO  ç333333@ç333333@r‘   r’   r   rì   rí   )rŠ   ri   re   rs  r
   ræ   )rl   rm   Úr1Úr2rs   rs   rt   Útest_kendalltau_nan_2nd_argÉ  s
   r†  c                  C   sf   dd l } |  d¡ g d¢}d}| j||d�}| j||d�}t ||¡}t|jdƒ t|jddd	� d S )
Nr   i¡´_ ©r   r0   r1   r2   r3   r4   r5   i@ ©rç  g*í8_2\S?gÃdª`TRß?gü©ñÒMb`?rí   )rV  rÜ  Úchoicesre   rs  r
   ræ   rå   )rV  ÚclassesÚ	n_samplesrl   rm   r‹   rs   rs   rt   Ú test_kendalltau_gh18139_overflowÓ  s   
rŒ  c                   @   sH  e Zd Zdd„ ZdZejejejgZg d¢Zg d¢Z	g d¢Z
g d¢Zg d¢Zg d	¢Zg d
¢Zg d¢Zdd„ Zeeeedgd ƒƒeeeeeƒdgd ƒƒ Zej de¡dd„ ƒZeeeedgd ƒƒeeeeeƒdgd ƒƒ Zej de¡dd„ ƒZeeee	dgd ƒƒeeeee	ƒdgd ƒƒ Zej de¡dd„ ƒZeeee
dgd ƒƒeeeee
ƒdgd ƒƒ Zej de¡dd„ ƒZeeeedgd ƒƒeeeeeƒdgd ƒƒ Zej de¡dd„ ƒZ eeeedgd ƒƒeeeeeƒdgd ƒƒ Z!ej de!¡dd„ ƒZ"eeeedgd ƒƒeeeeeƒdgd ƒƒ Z#ej de#¡dd„ ƒZ$eeeedgd ƒƒeeeeeƒdgd ƒƒ Z%ej de%¡d d!„ ƒZ&eeeedgd ƒƒeeeeeƒdgd ƒƒ Z'ej de'¡d"d#„ ƒZ(eeedgd ƒƒeeedgd ƒƒ Z)ej d$e)¡d%d&„ ƒZ*ej d'd(¡ej d)d*¡d+d,„ ƒƒZ+d-S ).ÚTestKendallTauAlternativec                 C   s„  g d¢}g d¢}t j||dd�}|d dksJ ‚t j||dd�}t|d |d ƒ t|d d|d d  ƒ t j||d	d�}t|d |d ƒ t|d |d d ƒ | ¡  t j||dd�}|d dk sfJ ‚t j||d	d�}t|d |d ƒ t|d d|d d  ƒ t j||dd�}t|d |d ƒ t|d |d d ƒ tjtd
d�� t j||dd� W d   ƒ d S 1 s»w   Y  d S )Nr2  r3  r!  r(  r   r#  r   r0   r%  ra  r–   rb  )re   rs  r   r
   Úreverser  r   rž   r5  rs   rs   rt   Ú&test_kendalltau_alternative_asymptoticæ  s,   "ÿz@TestKendallTauAlternative.test_kendalltau_alternative_asymptotic)r#  r!  r%  )r   r   r9   )r   çýRUUUUÕ?çZUUUUÅ?)g~©ªªªªî?r�  r‘  )çðîîîîâ?r   r’  )çË®[°…á?r   r“  )g­¢¯ÝÌî?gýSÇŒ“¾?gýSÇŒ“®?)g¼:Ÿ
±„Ï?g²3Ÿ
±„ß?g§<t‡'.è?)gN  Aƒï?g‰ÌÉssŸ?gY”ÌÉss�?c           	      C   s@   |rt  |¡ }|d9 }tj||d|d�}||f}t||ƒ d S )Nr^   r@  r¾  )rŠ   rb   re   rs  r
   )	rj   rl   rm   r)  ÚrevÚstat_expectedÚ
p_expectedr‹   rh  rs   rs   rt   Ú
exact_test%  s   z$TestKendallTauAlternative.exact_testFr1   Tzalternative, p_expected, revc                 C   s,   dgdg}}t j}|  ||||||¡ d S )Nr   r0   )rŠ   ri   r—  ©rj   r)  r–  r”  rl   rm   r•  rs   rs   rt   Útest_against_R_n10  s   z+TestKendallTauAlternative.test_against_R_n1c                 C   s.   ddgddg}}d}|   ||||||¡ d S )Nr   r0   r1   r2   gþÿÿÿÿÿï?©r—  r˜  rs   rs   rt   Útest_against_R_n29  ó   z+TestKendallTauAlternative.test_against_R_n2c                 C   s.   g d¢g d¢}}d}|   ||||||¡ d S )Nr:  r   rš  r˜  rs   rs   rt   Útest_against_R_c0B  rœ  z+TestKendallTauAlternative.test_against_R_c0c                 C   ó.   g d¢g d¢}}d}|   ||||||¡ d S )Nr'  )r   r0   r2   r1   gVUUUUUå?rš  r˜  rs   rs   rt   Útest_against_R_c1K  rœ  z+TestKendallTauAlternative.test_against_R_c1c                 C   rž  )Nr2  )r   r3   r2   r0   r1   r   rš  r˜  rs   rs   rt   Útest_against_R_no_correlationU  rœ  z7TestKendallTauAlternative.test_against_R_no_correlationc                 C   rž  )N©r   r0   r1   r2   r3   r4   r5   r6   )r6   r4   r   r1   r0   r3   r2   r5   r   rš  r˜  rs   rs   rt   Útest_against_R_no_correlationb_  rœ  z8TestKendallTauAlternative.test_against_R_no_correlationbc                 C   s,   g d¢}g d¢}d}|   ||||||¡ d S )N)	g333333F@g33333óF@g33333óD@gfffff¦J@gš™™™™YF@gÍÌÌÌÌF@gš™™™™YI@gš™™™™™F@gÍÌÌÌÌN@)	gÍÌÌÌÌÌ@çÍÌÌÌÌÌ@r;   rK   çÍÌÌÌÌÌ@r«   gÍÌÌÌÌÌ@çffffff@r(  gÇqÇqÜ?rš  r˜  rs   rs   rt   Útest_against_R_lt_171h  s   z/TestKendallTauAlternative.test_against_R_lt_171c                 C   ó@   t j d¡ t j d¡}t j d¡}d}|  ||||||¡ d S )Nr   rJ  gUm�*,ÿ§¿©rŠ   rV  rÜ  rå  r—  r˜  rs   rs   rt   Útest_against_R_lt_171bu  ó
   z0TestKendallTauAlternative.test_against_R_lt_171bc                 C   r§  )Nr   éª   gƒHÌÍ4‘¼?r¨  r˜  rs   rs   rt   Útest_against_R_lt_171c�  rª  z0TestKendallTauAlternative.test_against_R_lt_171czalternative, revc                 C   st   t j d¡ t j d¡}t j d¡}tj||d|d�}tj||d|d�}t|d |d ƒ t|d |d dd� d S )	Nr   i�  r@  r¾  r=  r   rT  r*  )rŠ   rV  rÜ  rå  re   rs  r   r
   )rj   r)  r”  rl   rm   Úres0r  rs   rs   rt   Útest_gt_171Œ  s   
ÿ
ÿz%TestKendallTauAlternative.test_gt_171r?  )r@  r=  r)  r»  c           
      C   s  g d¢}g d¢}|t jg }|t jg }tj||||d�}t jt jf}t||ƒ tj||d||d�}tj||||d�}t||ƒ d}	tjt|	d�� tj||d||d� W d   ƒ n1 s^w   Y  d	}	tjt|	d�� tj||d
||d� W d   ƒ d S 1 s‚w   Y  d S )Nr2  ©r3   r4   r5   r6   r7   r¾  r‘   )r“   r?  r)  r•   r–   r˜   r™   rb  )rŠ   ri   re   rs  r
   r  r   rž   )
rj   r?  r)  r  r  re  rf  rg  rh  rA  rs   rs   rt   rã  ˜  s8   ÿ

ÿ
ÿ

ÿÿ
ÿ"ÿz)TestKendallTauAlternative.test_nan_policyN),r²   r³   r´   r�  ÚalternativesrŠ   ri   Úp_n1Úp_n2Úp_c0Úp_c1Úp_no_correlationÚp_no_correlationbÚ
p_n_lt_171Úp_n_lt_171bÚp_n_lt_171cr—  rI  r¦  ÚreversedÚ	case_R_n1r  r  r€  r™  Ú	case_R_n2r›  Ú	case_R_c0r�  Ú	case_R_c1rŸ  Úcase_R_no_corrr   Úcase_no_cor_br¢  Úcase_R_lt_171r¦  Úcase_R_lt_171br©  Úcase_R_lt_171cr¬  Úcase_gt_171r®  rã  rs   rs   rs   rt   r�  å  s”    4ÿ
ÿ
ÿ
ÿ
ÿÿ
ÿÿ
ÿ
ÿÿ
ÿÿ
ÿ
r�  c                  C   s2  g d¢} g d¢}t  | |¡\}}t|dƒ ttj|ƒ t j| |dd�\}}t|dƒ ttj|ƒ t j| |dd„ d	�\}}t|d
ƒ ttj|ƒ t  | |¡}d}t||ƒ t|j|jƒ t j| |d d�\}}t|dƒ ttj|ƒ t j|| d d�\}}t|dƒ ttj|ƒ t j| |d dd�\}}t|dƒ ttj|ƒ t j|| d dd�\}}t|dƒ ttj|ƒ t j| |dd�\}}t|dƒ ttj|ƒ t j| |ddd„ d�\}}t|d
ƒ ttj|ƒ t j|| ddd„ d�\}}t|d
ƒ ttj|ƒ t  tj	| tj
d�|¡\}}t|dƒ t  tj	| tjd�|¡\}}t|dƒ t  tj	| tj
d�tj	|tj
d�¡\}}t|dƒ t  g g ¡\}}ttj|ƒ ttj|ƒ t  dgdg¡\}}ttj|ƒ ttj|ƒ ttt jddgg d¢ƒ ttt jddgddgdgƒ g d¢} ddddtjg}t  | |¡\}}t|dƒ ddtjddg} t  | |¡\}}t|dƒ g d¢} d d!d"d tjg}t  | |¡\}}t|dƒ d#d$tjd#d$g} t  | |¡\}}t|dƒ g d%¢} g d&¢}t  | |¡\}}t|d'ƒ d#d$tjd#tjg} t  | |¡\}}t|d'ƒ tjd!d"tjtjg}t  | |¡\}}t|d'ƒ d S )(Nrp  rq  g‰´•¨s$â¿F)ÚadditivegROêoäçã¿c                 S   ó   dS ©Nr   rs   ©rl   rs   rs   rt   Ú<lambda>Å  ó    z"test_weightedtau.<locals>.<lambda>)Úweigherrr  rã   )Úrankg�‡Äå›Ú¿gÒççnôúæ¿)rÌ  rÅ  g‡ œ@Ú¿g[Ä‘(Îê¿gIŸÚ©nƒà¿Tc                 S   rÆ  rÇ  rs   rÈ  rs   rs   rt   rÉ  à  rÊ  )rÌ  rË  c                 S   rÆ  rÇ  rs   rÈ  rs   rs   rt   rÉ  ã  rÊ  r  r   r   ©r   r   r0   r2   r5   rZ   r0   )ç      (@r  r½   rÎ  r  r½   r«   r­   rÎ  r  )rÎ  r  r½   rÎ  r½   )r½   r«   r­   r½   r½   g„t3ß4+å¿)re   Úweightedtaur	   r   rŠ   ri   r   rä   ræ   rb   r¶   Úint16r�   rž   )rl   rm   rz  r{  r‹   rè   rs   rs   rt   Útest_weightedtau»  s˜   












ÿ






rÑ  c                   C   s6   t  dgdg¡ t  dgdg¡ t  tjgdg¡ d S )Nr   r½   é4   )re   rÏ  rŠ   ri   rs   rs   rs   rt   Útest_segfault_issue_9710  s   rÓ  c                  C   sZ   d} t  | d ¡ t¡}t  | d ¡ t¡}t j|d< tj||ddd�\}}t|dƒ d S )Né¬   r   r^   r@  r‘   )r?  r“   r”   )rŠ   r   r,  r  ri   re   rs  r   )rú  rl   rm   Ú_r-  rs   rs   rt   Útest_kendall_tau_large  s   
rÖ  c               
   C   sÖ   dd„ } dd„ }t j d¡ tddƒD ]U}g }t|ƒD ]	}||g| 7 }qt|ƒ}t j |¡ t j |¡ t jt|ƒt jd�}td	ƒD ]$}d
D ]}| |||||ƒ}	t	 
|||||¡j}
t|	|
ƒ qGt j |¡ qCqd S )Nc                 S   sZ  d } } } }}	t tt| ƒƒtt| ƒƒƒD ]ƒ\}
}|r)|||
 ƒ||| ƒ n|||
 ƒ||| ƒ }||7 }| |
 | | krE||7 }||
 || krQ|	|7 }	| |
 | | k ra||
 || k sq| |
 | | krv||
 || krv||7 }q| |
 | | k r†||
 || ks–| |
 | | krš||
 || k rš||7 }q|| t || ¡ t ||	 ¡ S )Nr   )r   rj  ÚlenrŠ   rð   )rl   rm   rÌ  rË  ÚaddÚtotÚconcÚdiscÚuÚvrl  ró  Úwrs   rs   rt   Úwkq+  s    "ÿ@
@€$z*test_weightedtau_vs_quadratic.<locals>.wkqc                 S   s   d| d  S )Nr½   r   rs   rÈ  rs   rs   rt   rË  ;  ó   z.test_weightedtau_vs_quadratic.<locals>.weigherr}  r1   rX   r  r0   r\   )rŠ   rV  rÜ  rj  rI  r~  r   r×  Úintpre   rÏ  ræ   r	   )rß  rË  r€  ró   rl  rû   rÌ  rÕ  rØ  r/  r  rs   rs   rt   Útest_weightedtau_vs_quadratic)  s&   úörâ  c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚTestFindRepeatsc                 C   sf   g d¢}d}t j|d�� t |¡\}}W d   ƒ n1 sw   Y  t|g d¢ƒ t|g d¢ƒ d S )N)r   r0   r1   r2   r   r0   r1   r2   r   r0   r3   ú+`scipy.stats.find_repeats` is deprecated...r–   r'  )r1   r1   r0   r0   ©r  Údeprecated_callre   Úfind_repeatsr   )rj   ró   rA  r‹   Únumsrs   rs   rt   rü   T  s   ÿzTestFindRepeats.test_basicc              	   C   sh   g d¢g fD ]+}d}t j|d�� t |¡\}}W d   ƒ n1 s"w   Y  t|g ƒ t|g ƒ qd S )N)rX   r‹  é2   é   é(   rä  r–   rå  )rj   ró   rA  ÚrepeatedÚcountsrs   rs   rt   Útest_empty_result\  s   ÿ
ûz!TestFindRepeats.test_empty_resultN)r²   r³   r´   rü   rî  rs   rs   rs   rt   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	e
j d¡dd„ ƒZe
j d¡dd„ ƒZe
j d¡dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd d!„ Zd"d#„ Zd$d%„ Zd&d'„ Zd(d)„ Zd*S )+ÚTestRegressionc                 C   sb   t  d¡ d¡}d}tj|d�� t |¡ W d   ƒ n1 s w   Y  t |d |d ¡ d S )Nr‹  ©r0   rX   zInference of the two sets...r–   r   r   )rŠ   r   rg   r  ræ  re   Ú
linregress©rj   rl   rA  rs   rs   rt   Útest_one_arg_deprecationh  s   ÿz'TestRegression.test_one_arg_deprecationc                 C   s@   t  tt¡}t|jdƒ t|jdƒ t|jdƒ t|jdƒ d S )Niöàõr½   r”   )	re   rñ  rc   rÄ   r   Ú	interceptÚrvalueÚstderrÚintercept_stderr©rj   r1  rs   rs   rt   Útest_linregressBIGXo  s
   z"TestRegression.test_linregressBIGXc                 C   s@   t  tt¡}t|jdƒ t|jdƒ t|jdƒ t|jdƒ d S )Nr”   r½   )re   rñ  rc   r   rô  rõ  rö  r÷  rø  rs   rs   rt   Útest_regressXXy  s
   zTestRegression.test_regressXXc                 C   s(   t  tt¡}t|jdƒ t|jdƒ d S )Nr”   )re   rñ  rc   ÚZEROr   rô  rõ  rø  rs   rs   rt   Útest_regressZEROXŽ  s   z TestRegression.test_regressZEROXc                 C   sj   t  ddd¡}dt  ddd¡ d }|t  t  ddd¡¡7 }t ||¡}t}tt||ƒƒ t|j	dƒ d S )Nr   rJ  çš™™™™™É?rX   r‹  ç©·4_Q c?)
rŠ   ÚlinspaceÚsinre   rñ  r!   r   Ú
isinstancer   rö  )rj   rl   rm   r1  Úlrrs   rs   rt   Útest_regress_simple—  s   z"TestRegression.test_regress_simplec                 C   sø   t  ddd¡}dt  ddd¡ d }|t  t  ddd¡¡7 }tjtdd�� tj||dd	� W d   ƒ n1 s8w   Y  tj||d
d	�}tj||dd	�}t|j	d|j	d  ƒ tj||dd	�}t|j	|j	d ƒ |j
|j
  krw|j
kszJ ‚ J ‚d S )Nr   rJ  rý  rX   r‹  ra  r–   rb  r(  r!  r#  r   r0   r%  )rŠ   rÿ  r   r  r   rž   re   rñ  r
   rå   rõ  )rj   rl   rm   r  r]  r.  rs   rs   rt   Útest_regress_alternative¢  s   ÿ&z'TestRegression.test_regress_alternativec                 C   sr   g d¢}g d¢}t j||dd�}t|jdƒ t|jdƒ t|jt d¡ƒ t|jdƒ t|j	d	ƒ t|j
d
ƒ d S )N)
é—   é®   éŠ   éº   é€   éˆ   é³   é£   é˜   éƒ   )
é?   éQ   é8   é[   é/   é9   r¤  éH   é>   rž  r!  r(  gØ—§h–å?gŸJK@:CÀgag€“�î?gé¸-‰³>g5Õ’O“ª?g]ØŠE @)re   rñ  r
   Úsloperô  rõ  rŠ   rð   rå   rö  r÷  )rj   rl   rm   r‹   rs   rs   rt   Útest_regress_against_R·  s   z%TestRegression.test_regress_against_Rúignore::DeprecationWarningc                 C   sp   t  ddd¡}dt  ddd¡ d }|t  t  ddd¡¡7 }t  ||f¡}t |¡}t|jdƒ t|jdƒ d S )Nr   rJ  rý  rX   r‹  rþ  ç8Äèê¿Á?)	rŠ   rÿ  r   Úvstackre   rñ  r   rö  r÷  )rj   rl   rm   Úrowsr1  rs   rs   rt   Útest_regress_simple_onearg_rowsÌ  s   
z.TestRegression.test_regress_simple_onearg_rowsc                 C   s€   t  ddd¡}dt  ddd¡ d }|t  t  ddd¡¡7 }t  t  |d¡t  |d¡f¡}t |¡}t|jdƒ t|j	dƒ d S )	Nr   rJ  rý  rX   r‹  r   rþ  r  )
rŠ   rÿ  r   ÚhstackÚexpand_dimsre   rñ  r   rö  r÷  )rj   rl   rm   Úcolumnsr1  rs   rs   rt   Útest_regress_simple_onearg_colsÛ  s   
z.TestRegression.test_regress_simple_onearg_colsc                 C   s   t ttjt d¡ƒ d S )Nr  )r�   rž   re   rñ  rŠ   ru  rØ  rs   rs   rt   Útest_regress_shape_errorè  s   z'TestRegression.test_regress_shape_errorc                 C   sž   t  d¡}t  dd¡}|ddg  d8  < |ddg  d7  < t ||¡}dd	„ }||jd
ƒ ||jdƒ ||jdƒ ||jdƒ ||jdƒ ||j	dƒ d S )NrY   r3   rˆ   r   éþÿÿÿr   r^   c                 S   s   t | |dd�S )NrV   ©r�  )r   ©rl   rm   rs   rs   rt   Ú	assert_aeû  ó   z1TestRegression.test_linregress.<locals>.assert_aer½   rK   gePUÿnï?g.«¶bt>g¢©•Ú½E°?gÊºL7Ø?)
rŠ   r   re   rñ  r  rô  rõ  rå   rö  r÷  )rj   rl   rm   r1  r&  rs   rs   rt   Útest_linregressî  s   
zTestRegression.test_linregressc                 C   sz   d\}}t  |d| |¡}t  d| ||¡}t ||¡}t|jdkƒ t|jdƒ tt  |j¡ ƒ tt  |j	¡ ƒ d S )N)gJ‘rä «11é † r0   r^   )
rŠ   rÿ  re   rñ  r   rõ  r   ry  rö  r÷  )rj   ró   rú  rl   rm   r1  rs   rs   rt   Ú test_regress_simple_negative_cor	  s   z/TestRegression.test_regress_simple_negative_corc                 C   s|   t  ddd¡}dt  ddd¡ d }|t  t  ddd¡¡7 }t ||¡}t}tt||ƒƒ d}t||ƒ dt	|ƒv s<J ‚d S )Nr   rJ  rý  rX   r‹  )r  rô  rõ  rå   rö  r÷  )
rŠ   rÿ  r   re   rñ  r!   r   r  r   Údir)rj   rl   rm   r1  r  rè   rs   rs   rt   Ú!test_linregress_result_attributes	  s   
z0TestRegression.test_linregress_result_attributesc                 C   sJ   t  d¡}t  dd¡}t ||¡}t|jdƒ t|jdƒ t|jdƒ d S )Nr0   r1   r3   r”   )rŠ   r   re   rñ  r   rå   rö  r÷  ©rj   rl   rm   r1  rs   rs   rt   Útest_regress_two_inputs&	  s   
z&TestRegression.test_regress_two_inputsc                 C   sH   t  d¡}t  d¡}t ||¡}t|jdƒ t|jdƒ t|jdƒ d S )Nr0   r½   r”   )	rŠ   r   ru  re   rñ  r   rå   rö  r÷  r-  rs   rs   rt   Ú'test_regress_two_inputs_horizontal_line3	  s   

z6TestRegression.test_regress_two_inputs_horizontal_linec                 C   sl   g d¢}g d¢}t  ||¡}t|jdƒ t|jdƒ t|jd dƒ t|jdƒ t|jdƒ t|jd	ƒ d S )
N)$rý  gfffffu@gÍÌÌÌÌŒ]@gÍÌÌÌÌ¤‹@ç333333$@g     Pl@gfffffÒ„@gfffff"�@gš™™™™	|@g     Hˆ@gš™™™™q�@çš™™™™™Ù?ç333333ã?g     <ˆ@g33333×„@g      u@g     ø{@g333333'@g     `�@ç33333ƒl@gfffff�@gÍÌÌÌÌ¼‹@gÍÌÌÌÌ^@rµ  rµ  gffffff�@gš™™™™1u@gš™™™™¹‹@g     8�@g     Xˆ@g333333&@g33333“]@gfffff¦l@gÍÌÌÌÌè„@çfffff|@r9   )$r²  gÍÌÌÌÌ,u@gfffff†]@ç     À‹@r$  r3  g     ä„@ç     4�@gš™™™™|@ç33333Wˆ@gš™™™™y�@rµ  r²  gÍÌÌÌÌPˆ@gfffffæ„@çÍÌÌÌÌ4u@r4  gš™™™™™%@gš™™™™m�@gš™™™™‰l@g     0�@gfffffÆ‹@gfffffæ]@rµ  r2  gÍÌÌÌÌl�@r8  r5  r6  r7  gffffff$@gffffff]@gÍÌÌÌÌœl@g33333ã„@g33333|@rý  gîµ¥«ð?g!¶·æÉÐ¿r0   gpÍXâòÿï?r”   gŠh-hË*<?g›gçüÌÍ?)	re   rñ  r   r  rô  rõ  rå   rö  r÷  r-  rs   rs   rt   Útest_nist_norris@	  s   zTestRegression.test_nist_norrisc                 C   sz   t  ddd¡}dt  ddd¡ d }|t  t  ddd¡¡7 }t ||¡}t  ||d¡}t|j|d ƒ t|j|d ƒ d S )Nr   rJ  rý  rX   r‹  r   )	rŠ   rÿ  r   re   rñ  Úpolyfitr   r  rô  )rj   rl   rm   r1  Úpolyrs   rs   rt   Útest_compare_to_polyfit[	  s   z&TestRegression.test_compare_to_polyfitc                 C   s   t ttjg g ƒ d S rð  )r�   rž   re   rñ  rØ  rs   rs   rt   Útest_empty_inputg	  ó   zTestRegression.test_empty_inputc                 C   s‚   t  d¡}t j|d< t jdd�� t ||¡}W d   ƒ n1 s!w   Y  t}tt||ƒƒ t	|t jfd ƒ t
|jt jƒ d S )Nr‡   r7   Úignore©Úinvalidr3   )rŠ   r   ri   Úerrstatere   rñ  r!   r   r  r   r   r÷  )rj   rl   r1  r  rs   rs   rt   Útest_nan_inputj	  s   

ÿzTestRegression.test_nan_inputc                 C   sX   t  d¡}t j d¡}d}tt|d�� t ||¡ W d   ƒ d S 1 s%w   Y  d S )NrX   z$Cannot calculate a linear regressionr–   )rŠ   rÃ  rV  r�   rž   re   rñ  ©rj   rl   rm   r¡   rs   rs   rt   Útest_identical_xw	  s   
"ÿzTestRegression.test_identical_xN)r²   r³   r´   ró  rù  rú  rü  r  r  r  r  r  Úfilterwarningsr  r!  r"  r(  r*  r,  r.  r/  r9  r<  r=  rC  rE  rs   rs   rs   rt   rï  f  s0    
	





rï  c                  C   sD  t  g d¢¡\} }}}t| dƒ t|dƒ d}tjt|d�� t jg d¢dd� W d   ƒ n1 s2w   Y  t jg d¢dd�\} }}}t| dƒ t|dƒ g d	¢}g d
¢}t j||ddd�\} }}}t| dƒ t|dƒ t|ddd� t|ddd� t j||ddd�\} }}}t| dƒ t|dƒ t|ddd� t|ddd� d S )N©r   r   r   r9   zHmethod must be either 'joint' or 'separate'.'joint_separate' is invalid.r–   Újoint_separater>  Újointr”   )r   r0   r1   r2   rX   rZ   é   )r7   rŠ  é   r‹  é-   é7   éN   gìQ¸…ë±?Úseparater2   r«   g…ëQ¸…@r0   r$  g®Gáz®@r¬   )re   Útheilslopesr   r  r   rž   )r  rô  ÚlowerÚupperr¡   rl   rm   rs   rs   rt   Útest_theilslopes	  s8   

ÿ
ÿ


ÿ


ÿ

rS  c                  C   sx   g d¢} t j| dd�\}}}}t|t g d¢¡ƒ t j| ddd�\}}}}t|dkƒ d}t j| ddd�}t||ƒ d S )	N©r   r2   r0   r   r1   r   r2   ©Únumbins)rë   r«   rK   r¬   )r:   r3   )rV  Údefaultreallimitsr1   )Úcumcountr…   ÚbinsizeÚextrapoints)re   Úcumfreqr   rŠ   r   r   r   )rl   ÚcumfreqsÚlowlimrY  rZ  rè   r‹   rs   rs   rt   Útest_cumfreq¡	  s   ÿr^  c                  C   sz   t  g d¢¡} tj| dd�\}}}}t|tg d¢ƒƒ d}tj| dd�}t||ƒ tjg d¢dd�\}}}}t||ƒ d S )NrT  r2   rU  )r9   çKÚ}\UUÅ?r_  r_  )Ú	frequencyr…   rY  rZ  )rŠ   r   re   Úrelfreqr   r   )ró   Úrelfreqsr]  rY  rZ  rè   r‹   Ú	relfreqs2rs   rs   rt   Útest_relfreq¯	  s   
ÿ

ÿrd  c                   @   sL   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dS )ÚTestScoreatpercentilec                 C   s"   g d¢| _ g d¢| _g d¢| _d S )N)r1   r2   r3   rX   r_   éûÿÿÿr4   )r1   éúÿÿÿr#  r6   r5   r2   r0   r   )rë   r2   r3   rX   r_   rf  rg  r­   )Úa1Úa2Úa3rØ  rs   rs   rt   Úsetup_methodÁ	  s   

z"TestScoreatpercentile.setup_methodc                 C   sF   t dƒd }tt |d¡dƒ tt |d¡dƒ tt |d¡dƒ d S )	Nr6   r9   r   r”   rJ  r<   ré  ç      ü?)r   r   re   Úscoreatpercentilerá  rs   rs   rt   rü   Æ	  s   z TestScoreatpercentile.test_basicc                 C   s(  t j}t|ttdƒƒdƒdƒ t|ttdƒƒddƒdƒ t|ttdƒƒddd�dƒ t|t g d¢¡dd	ƒd
ƒ t|t g d¢¡ddƒdƒ t|ttdƒƒddd�dƒ t|ttdƒƒdddd�dƒ t|ttdƒƒdddd�dƒ t|t g d¢¡dd	dd�d
ƒ t|t g d¢¡dddd�dƒ d S )NrX   ré  r=   ©r0   r5   rJ  ©r   r6   )Úlimit©r   rX   rJ  ©rX   rJ  rM  ©r   rX   r>   Úfraction©Úinterpolation_method©rp  rv  ©re   rm  r   rI  rj  rŠ   r   ©rj   Úscoreatpercrs   rs   rt   Útest_fractionÌ	  s:   ÿÿþÿþÿþÿþz#TestScoreatpercentile.test_fractionc                 C   s:  t j}t|ttdƒƒddd�dƒ t|ttdƒƒddd�dƒ t|ttdƒƒdddd�dƒ t|ttdƒƒdddd	�dƒ t|ttd
ƒƒdddd�dƒ t|ttd
ƒƒdddd�dƒ t|t g d¢¡dddd�dƒ t|t g d¢¡dddd	�d
ƒ t|t g d¢¡dddd�dƒ t|t g d¢¡dddd	�dƒ d S )NrX   ré  rQ  ru  r2   Úhigherr3   rn  rw  rJ  ro  rq  rr  rs  r   rx  ry  rs   rs   rt   Útest_lower_higheræ	  sf   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿz'TestScoreatpercentile.test_lower_higherc                 C   s´   t dƒd }t g d¢¡}t |g d¢¡}t||ƒ tt|tjƒƒ tt |t g d¢¡¡|ƒ tjt  d¡ 	d¡t g d¢¡dd	�}tg d
¢g d¢g d¢g d¢gƒ}t||ƒ d S )Nr6   r9   )r   r<   rl  )r   rJ  ré  rZ   ©r1   r2   )r   r   rJ  rJ  r   rR   )r   r2   r6   )ç¸…ëQ¸ž?g…ëQ¸@g�Âõ(\ @©r1   r5   rY   )
r   rŠ   r   re   rm  r
   r   r  Úndarrayrg   )rj   rl   r/  r‹   r]  Ú	expected2rs   rs   rt   Útest_sequence_perÿ	  s"   
ÿÿýz'TestScoreatpercentile.test_sequence_perc                 C   sô   t j}tdƒ dd¡}t||dƒg d¢ƒ g d¢g d¢g d¢g}t||dd	d
�|ƒ g d¢g d¢g d¢g}t||ddd
�|ƒ tg d¢g d¢g d¢g d¢g d¢gƒ}t  |d¡}t|jdƒ t|dƒ t j|dd	d
�}t|jdƒ t|g d¢ƒ d S )NrZ   r1   r2   )rŒ  ré  rJ  )g      @r>   ç      &@)r0   r1   r2   r3   ©r2   r3   r4   r5   )r6   r7   rX   rY   r   rR   )ç      è?g      @g     €!@)r:   r>   ç      #@r€  r   ©r   r   r   )r2   r2   r1   ré  rs   r½   ©r1   )re   rm  r   rg   r   r   rk  )rj   rz  rl   Úr0r„  Úscorers   rs   rt   Ú	test_axis
  s&   ü
zTestScoreatpercentile.test_axisc                 C   s@   t ttjddgddd� t ttjdgdƒ t ttjdgdƒ d S )Nr   r0   r  rš   ru  ée   r^   )r�   rž   re   rm  rØ  rs   rs   rt   Útest_exception)
  s
   ÿz$TestScoreatpercentile.test_exceptionc                 C   sT   t t g d¡tjƒ t t t g g g¡d¡tjƒ t t g ddg¡tjtjgƒ d S )Nré  éc   )r   re   rm  rŠ   ri   r   rØ  rs   rs   rt   Ú
test_empty/
  s   "z TestScoreatpercentile.test_emptyN)r²   r³   r´   rk  rü   r{  r}  rƒ  rŒ  rŽ  r�  rs   rs   rs   rt   re  À	  s    re  c                
   @   s:  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zej 	d	e
 d
d¡¡dd„ ƒZdd„ Zdd„ Zej 	dg d¢de
jddddgg d¢de
jddgg¡ej 	dddg¡dd„ ƒƒZej 	d	e
 dd¡¡e
jfdd„ƒZd d!„ Zd"d#„ Zej 	d$d%d&g¡d'd(„ ƒZd)d*„ Zej d+¡ej 	d,e
 d-¡e
 d.¡g¡d/d0„ ƒƒZd1d2„ Zd3S )4ÚTestModec                 C   s`   t jttd�� t g ¡\}}W d   ƒ n1 sw   Y  t|t g ¡ƒ t|t g ¡ƒ d S ©Nr–   )	r  r  r   r   re   Úmoder   rŠ   r   ©rj   Úvalsrí  rs   rs   rt   r�  7
  s
   ÿzTestMode.test_emptyc                 C   s6   t  d¡\}}t|t dg¡ƒ t|t dg¡ƒ d S )Nr«   r   )re   r“  r   rŠ   r   r”  rs   rs   rt   rÖ  =
  s   zTestMode.test_scalarc                 C   s2   g d¢}t  |¡}t|d dƒ t|d dƒ d S )N©r1   r3   r   rX   é   r1   r0   r4   r6   r4   rX   r4   r   r4   r   r1   ©re   r“  r   )rj   Údata1r•  rs   rs   rt   rü   B
  s   
zTestMode.test_basicc              	   C   s$  g d¢}g d¢}g d¢}g d¢}g d¢}t  |||||g¡}tj|d dd�}t|d t  d	gg¡ƒ t|d
 t  dgg¡ƒ tj|ddd�}t|d t  g d¢g¡ƒ t|d
 t  g d¢g¡ƒ tj|d
dd�}t|d t  dgdgdgd	gd	gg¡ƒ t|d
 t  dgdgdgdgdgg¡ƒ d S )N)rX   rX   rê  rë  )rX   rX   rX   rX   )r‹  rX   r‹  r‹  )rê  rê  rê  rê  )rë  rê  rê  rê  T©rS   Úkeepdimsr   rê  r   r6   )rX   rX   rê  rê  )r0   r1   r1   r0   rX   r‹  r0   r2   r1   )rŠ   r   re   r“  r   )rj   r™  Údata2Údata3Údata4Údata5Úarrr•  rs   rs   rt   Ú	test_axesH
  s   (,zTestMode.test_axesrS   éüÿÿÿr   c                 C   sR   t j d¡ t j dddd¡}tj||j| d�}tj||d�}t j ||¡ d S )Né‹é©:rX   rY   rZ   r[   rR   )	rŠ   rV  rÜ  rå  re   r“  Úndimr“  r   )rj   rS   ró   r­  r  rs   rs   rt   Útest_negative_axes_gh_15375\
  s
   z$TestMode.test_negative_axes_gh_15375c                 C   sj   g d¢}g }t  |¡}d}t||ƒ tjttd�� t  |¡}W d   ƒ n1 s)w   Y  t||ƒ d S )Nr–  )r“  Úcountr–   )re   r“  r   r  r  r   r   )rj   r™  rœ  r  rè   Úactual2rs   rs   rt   Útest_mode_result_attributesd
  s   

ÿz$TestMode.test_mode_result_attributesc                 C   st   dt jdddddddddddg}t |¡}t|d	ƒ tj|d
d�}t|d	ƒ tttj|dd� tttj|dd� d S )Nr1   r3   r   rX   r—  r0   r4   r6   )r4   r1   r‘   r’   r˜   rš   )rŠ   ri   re   r“  r   r�   rž   )rj   r™  r  rs   rs   rt   Útest_mode_nann
  s    


zTestMode.test_mode_nanÚdata)r1   r3   r   r   r1   r1   r3   r   )r1   r3   r   r›  FTc                 C   s<   t j|d|d�}|rt|d d dƒ d S t|d dƒ d S )Nr‘   )r“   r›  r   r   r˜  )rj   rª  r›  r1  rs   rs   rt   Útest_smallest_equalx
  s   zTestMode.test_smallest_equalr_   c                 C   sj   t j d¡}|jdd� |¡}tj||dd�}t|jƒ}| 	|¡ t j
 |jj|¡ t j
 |jj|¡ d S )Nr£  ©r1   r2   r3   rL  Frš  )rŠ   rV  rW  Úuniformr,  re   r“  rI  rk  Úpopr“  r   r¦  )rj   rS   r
  rO  ró   r‹   Úreference_shapers   rs   rt   Útest_mode_shape_gh_9955†
  s   

z TestMode.test_mode_shape_gh_9955c                 C   s8   dt jdt jg}t |¡}t  |j¡r|jdksJ ‚d S ©Nr0   r   )rŠ   ri   re   r“  ry  r¦  )rj   ró   r‹   rs   rs   rt   Ú!test_nan_policy_propagate_gh_9815�
  s   
z*TestMode.test_nan_policy_propagate_gh_9815c                 C   sF  t  d¡}tj|ddd�}|jj|jj  krdksJ ‚ J ‚tj|ddd�}|jj|jj  kr6dks9J ‚ J ‚dddt jgddt jdgg}tj|ddd�}t|jddgƒ t|jd	dgƒ tj|ddd�}t|jdgdggƒ t|jd	gdggƒ t  |¡}tj|d dd�}tj| 	¡ dd
�}t||ƒ |jj|jj  kr¥dks¨J ‚ J ‚tj|d dd�}tj| 	¡ dd
�}t
|j 	¡ |j 	¡ ƒ |jjdksÌJ ‚t
|j 	¡ |j 	¡ ƒ |jjdksßJ ‚dt jt jt jdgt jt jt jt jd	gdd	t jddgg}tj|dddd�}t|jg d¢ƒ t|jg d¢ƒ tj|dddd�}t|jdgd	gdggƒ t|jd	gdgd	ggƒ t  |¡}tj|d ddd�}tj| 	¡ ddd�}t||ƒ |jj|jj  k�rcdk�sfJ ‚ J ‚tj|d ddd�}tj| 	¡ ddd�}t
|j 	¡ |j 	¡ ƒ |jjdk�s�J ‚t
|j 	¡ |j 	¡ ƒ |jjdk�s¡J ‚d S )N)r   r0   r1   r   r   Frš  )r   r1   r   T)r   r   r1   r   r1   r0   ©r›  rs   rÀ  r3   r‘   )rS   r›  r“   )r   r0   r3   )r0   r   r0   )r›  r“   )rŠ   rÃ  re   r“  rk  r¦  ri   r   r   rp  r   )rj   ró   r‹   r\  rs   rs   rt   Útest_keepdims—
  sX   
$$

$þ

(zTestMode.test_keepdimsr“   rî  r‘   c                 C   sº   d}t  |¡}t j|d< tj|dd|d�}t|jg d¢ƒ t|jg d¢ƒ t  dt jfd	t j	d
fg¡}t j
d|d�}d}tjt|d�� tj||d� W d   ƒ d S 1 sVw   Y  d S )N)r2   r1   rw  r   F)ró   rS   r›  r“   rX  ©r0   r1   r1   r1   ÚasdfÚqwerr‰  rX   r  z0Argument `a` is not....|An argument has dtype...r–   r’   )rŠ   ru  ri   re   r“  r   r¦  r
  Úuint8r¶   rÃ  r  r   Ú	TypeError)rj   r“   rk  rª  r‹   Úmy_dtypeÚtestrA  rs   rs   rt   Útest_gh16955Ó
  s   

"ÿzTestMode.test_gh16955c                 C   s   t jttd�� t g ¡}W d   ƒ n1 sw   Y  tjdf}t||ƒ t jtt	d�� tjtjgdd�}W d   ƒ n1 sAw   Y  t||ƒ g d¢tjtjtjgg}t jtt
d�� tj|ddd�}W d   ƒ n1 sqw   Y  dtjgd	dgf}t||ƒ tj|dd
d�}dtjgd	dgf}t||ƒ t g g g¡}t jttd�� tj|dd�}W d   ƒ n1 sºw   Y  tjtjgddgf}t||ƒ d S )Nr–   r   r‘   r’   )r‡   rE  rE  r   rï  r‹  r0   rî  r1   rR   )r  r  r   r   re   r“  rŠ   ri   r   r   r   r   r   )rj   r‹   r\  ró   Úzrs   rs   rt   Útest_gh9955å
  s0   ÿ

ÿ
ÿ

ÿzTestMode.test_gh9955zignore::RuntimeWarningr½  rÍ  rA  c                 C   s¢   |j dkr%tjttd�� tj|d dd�}W d   ƒ n1 sw   Y  ntj|d dd�}tj|d dd�}|d j	|d j	  krL|j	  krLdksOJ ‚ J ‚d S )Nr   r–   Trš  r   rˆ  )
rM  r  r  r   r   re   r“  rŠ   rh   rk  )rj   r½  r‹   r\  rs   rs   rt   Útest_gh17214  s   
ÿ€8zTestMode.test_gh17214c                 C   s¤   t rdnd}G dd„ dƒ}tjt|d�� t |t d¡ƒ¡ W d   ƒ n1 s)w   Y  tjt|d�� t tjdtd�¡ W d   ƒ d S 1 sKw   Y  d S )Nz'...only boolean and numerical dtypes...z*Argument `a` is not recognized as numeric.c                   @   s   e Zd Zdd„ Zddd„ZdS )z8TestMode.test_raise_non_numeric_gh18254.<locals>.ArrLikec                 S   s
   || _ d S rð  )Ú_xrá  rs   rs   rt   Ú__init__  s   
zATestMode.test_raise_non_numeric_gh18254.<locals>.ArrLike.__init__Nc                 S   s   | j  t¡S rð  )rÀ  r,  Úobject)rj   r
  Úcopyrs   rs   rt   Ú	__array__  rà  zBTestMode.test_raise_non_numeric_gh18254.<locals>.ArrLike.__array__)NN)r²   r³   r´   rÁ  rÄ  rs   rs   rs   rt   ÚArrLike  s    rÅ  r–   r1   r  )	r-   r  r   r¹  re   r“  rŠ   r   rÂ  )rj   rA  rÅ  rs   rs   rt   Útest_raise_non_numeric_gh18254  s   ÿÿ"ÿz'TestMode.test_raise_non_numeric_gh18254N)r²   r³   r´   r�  rÖ  rü   r¡  r  r  r€  rŠ   r   r¥  r¨  r©  ri   r«  r¶   r°  r²  r´  r¼  r¾  rF  Úemptyr¿  rÆ  rs   rs   rs   rt   r‘  5
  s8    


ü	<

	r‘  c                   @   s<   e Zd Zg d¢ZdZdd„ Zdd„ Zeddd	�d
d„ ƒZdS )ÚTestSEMrO  r«   c                 C   s¬   |  | j¡d }t|ƒr)tjttd�� t |¡}W d   ƒ n1 s#w   Y  n$t	j
 ¡ �}| t¡ | t¡ t |¡}W d   ƒ n1 sHw   Y  | |¡sTJ ‚d S )Nrs   r–   )rb   Úscalar_testcaser*   r  r  r   r   re   ÚsemrŠ   r“  r   r§   ÚUserWarningrœ   ry  )rj   rk   rÉ  rm   r    rs   rs   rt   Útest_sem_scalar$  s   ÿ€

ýzTestSEM.test_sem_scalarc                 C   sž   |  | j¡}t |¡}t||  d¡ƒ t| jƒ}ttj|dd�||d  d  tj|dd�ƒ | d¡}| |dk|  |j¡|¡}t	t |¡|  |j¡ƒ d S )Ngã�ŽËé§ä?r   ©Úddofr0   r9   r‡   r7   )
rb   Útestcasere   rÊ  r.   r×  r   Úwhereri   r/   )rj   rk   rÏ  rm   rú  rl   rs   rs   rt   Útest_sem6  s   

ÿ
zTestSEM.test_semTz(`nan_policy` only supports NumPy backendr�   c                 C   sP   t  d¡}t j|d< ttj|dd�dƒ tttj|dd� tttj|dd� d S )Nr‡   r7   r‘   r’   g¿ÜH=6í?r˜   rš   )rŠ   r   ri   r   re   rÊ  r�   rž   ©rj   rk   rl   rs   rs   rt   Útest_sem_nan_policyB  s
   

zTestSEM.test_sem_nan_policyN)	r²   r³   r´   rÏ  rÉ  rÌ  rÑ  rG   rÓ  rs   rs   rs   rt   rÈ    s    ÿrÈ  zJAX can't do item assignmentc                   @   st  e Zd Zej dg d¢g d¢fg d¢g d¢fg¡dd„ ƒZdd„ Zd	d
„ Zej dddg¡dd„ ƒZ	ej dddg¡dd„ ƒZ
dd„ Zdd„ Zdd„ Zdd„ Zeddd�dd„ ƒZdd „ Zd!d"„ Zd#d$„ Zeddd�d%d&„ ƒZd'd(„ Zd)d*„ Zd+d,„ Zeddd�d-d.„ ƒZej d/e g ¡e d0¡g¡d1d2„ ƒZd3d4„ Zed5d6„ ƒZed7d8„ ƒZ d9d:„ Z!ejjd;d<d�d=d>„ ƒZ"d?S )@ÚTestZmapZscorezx, yrO  r7  )r”   r½   r  rë   r«   c                 C   sV   |  |¡|  |¡}}t||ƒ}|| |¡ |j|dd� }t ||¡}t||ƒ d S )Nr   rx   )rb   r(   rh   rƒ   re   Úzmapr.   )rj   rl   rm   rk   r€   r/  r½  rs   rs   rt   Ú	test_zmapQ  s
   
zTestZmapZscore.test_zmapc           
      C   s¾   t  g d¢g d¢g d¢g¡}d}d}d}tj||dd�}tj||d	d�}| | d
 | d
 dgd|| d
 |g|| d
 || gg}g d¢| | | dgg d¢g}	t||ƒ t||	ƒ d S ©N©r”   r”   r½   r½   )r½   r½   r½   r  )r  r”   r  r”   ç.!	Ž˜ó?ç3�E§yâ?çÍ;fž ö?r   rR   r   r0   r”   ©rö   rö   r½   r½   gªLXèz¶û?)r½   rö   r½   rö   )rŠ   r   re   rÕ  r.   ©
rj   rk   rl   Út1Út2Út3Úz0rZ  Úz0_expectedÚz1_expectedrs   rs   rt   Útest_zmap_axis_  s&   
þþþ
zTestZmapZscore.test_zmap_axisc                 C   s|   |  g d¢g d¢g¡}tj||ddd�}|  g d¢¡d }|  g d¢¡d }t|d	d d …f |ƒ t|dd d …f |ƒ d S ©
NrØ  )r”   r½   r  rë   r   )rS   rÎ  )ç      à¿ræ  r9   r9   g3�E§yâ?)ç      ø¿ræ  r9   r:   g‘4ŠËé§ô?r   )rb   re   rÕ  r.   ©rj   rk   rl   r½  râ  rã  rs   rs   rt   Útest_zmap_ddofv  s   
ÿzTestZmapZscore.test_zmap_ddofrÎ  r   r0   c                 C   sh   |  dddtjg¡}|  dddddtjg¡}tj|||dd�}tj||| |¡  |d	�}t||ƒ d S )
Nr_   r^   r0   éøÿÿÿr5   rZ   r‘   ©rÎ  r“   rÍ  )rb   rŠ   ri   re   rÕ  ry  r.   )rj   rÎ  rk   ÚscoresÚcomparer½  r\  rs   rs   rt   Útest_zmap_nan_policy_omit‚  s
   z(TestZmapZscore.test_zmap_nan_policy_omitc           	   	   C   sø   |  | dd¡d¡}|  | ddd¡d¡}|j|d< |j|d< |j|d	< tj||d
d|d�}tj|dd d …f |dd d …f | |dd d …f ¡  |d�}tj|dd d …f |dd d …f | |dd d …f ¡  |d�}| ||f¡}t||ƒ d S )Nç      Àr©   ©r0   r^   rê  r4   é   )r   r2   r|   rÀ  r‘   r   )r“   rS   rÎ  r   rÍ  )	rg   r   rÿ  ri   re   rÕ  ry  Ústackr.   )	rj   rÎ  rk   rì  rí  r½  r­  r  r/  rs   rs   rt   Ú#test_zmap_nan_policy_omit_with_axisŒ  s   


8ÿ8ÿz2TestZmapZscore.test_zmap_nan_policy_omit_with_axisc                 C   sj   |  g d¢¡}|  ddddd|jg¡}tjtdd�� tj||d	d
� W d   ƒ d S 1 s.w   Y  d S )Nr:  rê  r_   r0   r5   rZ   zinput contains nanr–   r˜   r’   )rb   ri   r  r   rž   re   rÕ  )rj   rk   rì  rí  rs   rs   rt   Útest_zmap_nan_policy_raise›  s
   "ÿz)TestZmapZscore.test_zmap_nan_policy_raisec                 C   s0   t  | g d¢¡¡}g d¢}t|| |¡ƒ d S )Nr'  )gÙòOT\wõ¿gþí¿Å%ŸÜ¿gþí¿Å%ŸÜ?gÙòOT\wõ?)re   Úzscorerb   r.   )rj   rk   rm   Údesiredrs   rs   rt   Útest_zscore¡  s   zTestZmapZscore.test_zscorec           
      C   sÆ   |  g d¢g d¢g d¢g¡}d}d}d}tj|dd�}tj|d	d�}| | d
 | d
 dgd|| d
 |g|| d
 || gg}g d¢| | | dgg d¢g}	t||  |¡ƒ t||  |	¡ƒ d S r×  ©rb   re   rõ  r.   rÝ  rs   rs   rt   Útest_zscore_axis©  s&   
þþþzTestZmapZscore.test_zscore_axisc                 C   sz   |  g d¢g d¢g¡}tj|ddd�}|  g d¢¡d }|  g d¢¡d }t|d	d d …f |ƒ t|dd d …f |ƒ d S rå  rø  rè  rs   rs   rt   Útest_zscore_ddofÀ  s   
ÿzTestZmapZscore.test_zscore_ddofrv   rw   rD   c                 C   s>   |  ddtjddg¡}tj|dd�}t|| |j|j¡ƒ d S )Nr   r0   r2   r3   rî  r’   )rb   rŠ   ri   re   rõ  r/   r   rk  ©rj   rk   rl   r½  rs   rs   rt   Útest_zscore_nan_propagateÌ  s   z(TestZmapZscore.test_zscore_nan_propagatec                 C   sH   |  dd|jddg¡}tj|dd�}|  dd|jd	d
g¡}t||ƒ d S )Nr   r0   r2   r3   r‘   r’   gIHb=ô¿gIHb=ä¿gIHb=ä?gIHb=ô?)rb   ri   re   rõ  r.   )rj   rk   rl   r½  r/  rs   rs   rt   Útest_zscore_nan_omitÒ  s   üz#TestZmapZscore.test_zscore_nan_omitc                 C   sh   |  |jdddddg¡}t|ƒ}tj|ddd�}| |  |jg¡tj|dd … dd	�g¡}t||ƒ d S )
Nr½   rë   rK   r­   r©   r   r‘   rë  rÍ  )rb   ri   r(   re   rõ  Úconcatr.   )rj   rk   rl   r€   r½  r/  rs   rs   rt   Útest_zscore_nan_omit_with_ddofß  s
   *z-TestZmapZscore.test_zscore_nan_omit_with_ddofc                 C   sX   |  dd|jddg¡}tjtdd�� tj|dd� W d   ƒ d S 1 s%w   Y  d S )	Nr   r0   r2   r3   zThe input contains nan...r–   r˜   r’   )rb   ri   r  r   rž   re   rõ  rÒ  rs   rs   rt   Útest_zscore_nan_raiseæ  s   "ÿz$TestZmapZscore.test_zscore_nan_raisec                 C   sb   |  dgd ¡}tjtdd�� t |¡}W d   ƒ n1 sw   Y  t|| |j|j	¡ƒ d S )NgƒÀÊ¡E¶¿r1   úPrecision loss occurred...r–   )
rb   r  r  rœ   re   rõ  r/   r   rk  ri   rû  rs   rs   rt   Útest_zscore_constant_input_1dë  s
   ÿz,TestZmapZscore.test_zscore_constant_input_1dc                 C   sˆ  |  g d¢g d¢g¡}tjtdd�� tj|dd�}W d   ƒ n1 s$w   Y  t||  |jdddg|jdddgg¡ƒ tjtdd�� tj|d	d�}W d   ƒ n1 sVw   Y  t|| 	|  |j|j|j|jg¡t |d	d d …f ¡g¡ƒ tj|d d�}t|| 
t | 
|d
¡¡|j¡ƒ | d¡}tjtdd�� tj|d d�}W d   ƒ n1 s¯w   Y  t|| |j|  |j¡¡ƒ d S )N©r‡   r‡   r‡   r‡   ©r‡   r„  rÎ  ç      *@r  r–   r   rR   rö   r½   r   ©r^   )r1   r4   )rb   r  r  rœ   re   rõ  r.   ri   r/   rò  rg   rk  ru  r   )rj   rk   rl   rá  rZ  r½  rm   rs   rs   rt   Útest_zscore_constant_input_2dò  s,   
ÿÿÿÿ ÿ"
ÿ z,TestZmapZscore.test_zscore_constant_input_2dc                 C   s6  |  g d¢ddd|jgdd|jdgg¡}d}d}tjtdd�� tj|d	d
d�}W d   ƒ n1 s2w   Y  t||  |j| d|jg|jd
d|jg|j||j|jgg¡ƒ tjtdd�� tj|d	dd�}W d   ƒ n1 spw   Y  t||  |j|j|j|jg| d
||jg| d ||j| d gg¡ƒ d S )Nr  r‡   r„  rÎ  rÙ  rÛ  r  r–   r‘   r   ©r“   rS   rö   r½   r   r0   )rb   ri   r  r  rœ   re   rõ  r.   )rj   rk   rl   r€  Ús2rá  rZ  rs   rs   rt   Ú-test_zscore_constant_input_2d_nan_policy_omit  s(   
þÿþÿþz<TestZmapZscore.test_zscore_constant_input_2d_nan_policy_omitc                 C   s^   |  tjtjtjtjgg d¢g¡}tj|ddd�}t||  tjtjtjtjgg d¢g¡ƒ d S )N)r‡   r‡   rÎ  rÎ  r‘   r   r  rÜ  )rb   rŠ   ri   re   rõ  r.   rû  rs   rs   rt   Útest_zscore_2d_all_nan_row  s   ÿÿz)TestZmapZscore.test_zscore_2d_all_nan_rowc                 C   s,   |  d|j¡}tj|dd d�}t||ƒ d S )NrÁ  r‘   r  )r   ri   re   rõ  r/   )rj   rk   rm   r½  rs   rs   rt   Útest_zscore_2d_all_nan"  s   z%TestZmapZscore.test_zscore_2d_all_nanrl   )r1   r   r3   c                 C   s"   |  |¡}t |¡}t||ƒ d S rð  )rb   re   rõ  r/   )rj   rl   rk   r½  rs   rs   rt   Útest_zscore_empty_input)  s   

z&TestZmapZscore.test_zscore_empty_inputc                 C   sf   t  g d¢¡}t | |¡¡}t  |t |¡ ¡t  tj|dd�¡ }t||j|| d¡jd�ƒ d S )Nr'  r   rÍ  r½   r  )	rŠ   rb   re   ÚgzscoreÚlogÚgmeanÚgstdr.   r
  )rj   rk   rl   r½  rö  rs   rs   rt   Útest_gzscore_normal_array/  s   ( z(TestZmapZscore.test_gzscore_normal_arrayc                 C   s†   t  g d¢¡}g d¢}t jj||d�}t |¡}ddt jddg}t jj||d�}t| ¡ | ¡ ƒ t|j	|j	ƒ t
|t jjƒsAJ ‚d S )N)r   r0   r^   r1   r2   )r   r   r   r   r   ©Úmaskg0À’Êjø¿g”¹`óëÈ¿g/‹ÈAö°â?g·(ÒÍ/ò?)rŠ   r   rt  Úmasked_arrayre   r  r’  r
   Ú
compressedr  r  ÚMaskedArray)rj   rk   rl   r  Úmxr½  rö  rs   rs   rt   Útest_gzscore_masked_array5  s   

ÿz(TestZmapZscore.test_gzscore_masked_arrayc                 C   sJ  t j d¡}| d¡}t  |¡}t j ||¡}d|jd< t 	|dd … ¡}t  
t  |¡¡r/J ‚t 	|¡}t|dd … |ƒ tj	|d d�}t|dd … |ƒ |d |dd …< tjtdd�� t 	|¡}W d   ƒ n1 slw   Y  t|dd … t jƒ tjtdd�� tj	|d d�}W d   ƒ n1 s”w   Y  t|dd … t jƒ d S )	Nií_„ rX   Tr   r   rR   r  r–   )rŠ   rV  rW  Ústandard_normalÚ
zeros_likert  r  r  re   rõ  rx  ry  r
   r  r  rœ   r   ri   )rj   rk   rO  rl   r  rm   r\  r‹   rs   rs   rt   Ú$test_zscore_masked_element_0_gh19039B  s(   



ÿÿz3TestZmapZscore.test_zscore_masked_element_0_gh19039c                 C   st   |  d¡}| d¡}| |j |j|jg¡}tjtdd�� t 	||¡}W d   ƒ n1 s.w   Y  t
||ƒ d S )Nr1   r  r–   )r   ru  rb   r’  ri   r  r  rœ   re   rÕ  r/   )rj   rk   rì  rí  r\  r‹   rs   rs   rt   Útest_degenerate_inputZ  s   

ÿz$TestZmapZscore.test_degenerate_inputrF   úneeds array-api#850c                 C   s<   t  | g d¢¡| g d¢¡¡}| g d¢¡}t||ƒ d S )Nr'  )r   ù              ð?r^   r<  )y      ð?        y       @        y      @        y      @        )re   rÕ  rb   r.   )rj   rk   r‹   r\  rs   rs   rt   Útest_complex_gh22404b  s    z#TestZmapZscore.test_complex_gh22404N)#r²   r³   r´   r  r  r€  rÖ  rä  ré  rî  ró  rô  r÷  rù  rú  rG   rü  rý  rÿ  r   r  r  r
  r  r  rŠ   r   rÃ  r  r  r'   r  r  r  r   rs   rs   rs   rt   rÔ  L  sP    ÿþ
	
	









rÔ  c                
   @   s¸   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zej	 
dg d¢¡dd„ ƒZej	 
dde ejddg¡fde ejejdg¡fg¡dd„ ƒZej	 
ddg d¢fdg¡dd„ ƒZdd„ ZdS )ÚTestMedianAbsDeviationc                 C   sR   t  dddddddddddd	d
d
d
ddddddddt jg¡| _t  g d¢¡| _d S )Nçš™™™™™@r‚  r;   çš™™™™™@r¥  ç333333@ç=
×£p=@r£  çö(\�Âõ
@rƒ  r<   r¤  çš™™™™™@ç)\�Âõ(@ç…ëQ¸@)r"  r"  r‚  r‚  r;   r#  r¥  r$  r%  r%  r£  r&  rƒ  rƒ  rƒ  r<   r¤  r'  r'  r'  r'  r(  r)  g33333ó<@)rŠ   r   ri   Údat_nanÚdatrØ  rs   rs   rt   Úsetup_classj  s
   þz"TestMedianAbsDeviation.setup_classc                 C   sN   t tj| jd d�dƒ | j dd¡}tj|dd�}t g d¢¡}t||ƒ d S )NrR   g¸…ëQ¸Ö?r4   r2   r   )g×£p=
×Û?r9   çÍÌÌÌÌÌÜ?r1  )r   re   Úmedian_abs_deviationr+  rg   rŠ   rb   r   )rj   r+  ÚmadÚmad_expectedrs   rs   rt   Útest_median_abs_deviationr  s   ÿz0TestMedianAbsDeviation.test_median_abs_deviationc                 C   s   t j| jdd�}t|dƒ d S )Nr‘   r’   gÃõ(\�ÂÕ?)re   r.  r*  r   )rj   r/  rs   rs   rt   Útest_mad_nan_omitz  ó   z(TestMedianAbsDeviation.test_mad_nan_omitc                 C   sF   t  ddddt jgg d¢g¡}tj|dd�}t|t  t jdg¡ƒ d S )Nr½   r  rë   r«   )r½   r«   rK   r®   r©   r   rR   ©rŠ   r   ri   re   r.  r   )rj   rl   r/  rs   rs   rt   Útest_axis_and_nan~  s
   ÿz(TestMedianAbsDeviation.test_axis_and_nanc              	   C   s8   t  dddddt jt jg¡}tj|dd�}t|dƒ d S )	Nr   r1   r2   r4   r�  r‘   r’   rë   )rŠ   r   ri   r’  re   r.  r   )rj   r½  r/  rs   rs   rt   Útest_nan_policy_omit_with_inf„  s   z4TestMedianAbsDeviation.test_nan_policy_omit_with_infrS   )r   r   r0   Nc                 C   s:   t  d¡}tj||d�}t|t j|j|d�t jd�ƒ d S )N)r1   r   r2   rR   ©Ú
fill_value)rŠ   rÃ  re   r.  r   Ú	full_likerÆ  ri   )rj   rS   rl   r/  rs   rs   rt   Útest_size_zero_with_axis‰  s   
"z/TestMedianAbsDeviation.test_size_zero_with_axisznan_policy, expectedr‘   r:   rî  c              	   C   sZ   t  t jt jt jt jt jt jgddddt jt jgg d¢g¡}tj||dd�}t||ƒ d S )Nr   r3   r1   r4   )r3   r4   r5   r7   r7   rX   r  r4  )rj   r“   r/  rl   r/  rs   rs   rt   Útest_nan_policy_with_axis�  s   þz0TestMedianAbsDeviation.test_nan_policy_with_axiszaxis, expectedr   )r;   r  rÎ  )Nr=   c                 C   sL   t  ddddt jgg d¢g d¢g¡}tj|t jd|d�}t||d	d	d
� d S )Nr   r0   r2   r7   )r   r   r   r   rZ   )éöÿÿÿr<  r<  r‹  r‹  r‘   )Úcenterr“   rS   rì   rU  )rŠ   r   ri   re   r.  rh   r
   )rj   rS   r/  rl   r/  rs   rs   rt   Útest_center_mean_with_nan™  s   þÿz0TestMedianAbsDeviation.test_center_mean_with_nanc                 C   sF   t jtdd�� tjg d¢dd� W d   ƒ d S 1 sw   Y  d S )NÚcallabler–   )r   r0   r1   r3   r�  ©r=  )r  r   r¹  re   r.  rØ  rs   rs   rt   Útest_center_not_callable£  s   "ÿz/TestMedianAbsDeviation.test_center_not_callableN)r²   r³   r´   r,  r1  r2  r5  r6  r  r  r€  r:  rŠ   r   ri   r;  r>  rA  rs   rs   rs   rt   r!  i  s&    
ÿÿ
ÿ
r!  c                 C   s,   t t| ƒ|dƒ | D ]	}t|j|u ƒ q
dS )z¼
    Checks that all of the warnings from a list returned by
    `warnings.catch_all(record=True)` are of the required type and that the list
    contains expected number of warnings.
    znumber of warningsN)r   r×  r   Úcategory)Ú	warn_listÚexpected_typeÚexpected_lenÚwarn_rs   rs   rt   Ú_check_warnings¨  s   ÿrG  c                   @   s„   e Zd Zdd„ Zdd„ Zej dg e 	d¡g¡dd„ ƒZ
d	d
„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTestIQRc                 C   s.   t  d¡d }t j |¡ tt |¡dƒ d S )Nr6   r9   rl  )rŠ   r   rV  r~  r   re   Úiqrrá  rs   rs   rt   rü   µ  s   zTestIQR.test_basicc              	   C   s–   t  d¡}t |¡ t |d ¡ t |d¡ t |d¡ t |d d¡ t |d dd¡ t |d ddd	¡ t |d d
ddd¡ t |d ddddd¡ d S )NrÛ  r   r¿  )rX   éZ   )rê  r‹  r½   )rŒ  r£  r:   rî  )ré  ré  rX  r˜   Úlineargš™™™™™Ù¿r‘   rQ  T)rŠ   ru  re   rI  )rj   rÏ  rs   rs   rt   Útest_apiº  s   

zTestIQR.test_apirl   r   c                 C   sF   t jttd�� tt |¡tjƒ W d   ƒ d S 1 sw   Y  d S r’  )	r  r  r   r   r   re   rI  rŠ   ri   rá  rs   rs   rt   r�  Æ  s   "ÿzTestIQR.test_emptyc                 C   sl  t  d¡}tt |¡dƒ ttj|dd�t  d¡ƒ ttj|dd�t  d¡ƒ ttj|dd	�dƒ ttj|d
d	�dƒ ttj|dd	�dƒ ttj|dd	�dƒ ttj|dd	�dƒ t  d¡t  d¡ }ttj|dd�t  d¡ƒ ttj|dd�t  d¡ƒ ttj|dd�t  dd¡ƒ ttj|dd�t  d¡ƒ ttj|dd�t  dd¡ƒ ttj|dd�t  dd¡ƒ d S )N)r5   r2   r”   r   rR   r2   r   r5   rK  ©ÚinterpolationÚmidpointÚnearestrQ  r|  ©r2   r3   r4   r4   )r3   r4   )r2   r4   r0   )r2   r3   r;   r¿  ©r   r0   r3   rë   ©r   r0   )	rŠ   ru  r   re   rI  r   rÃ  r   r   rÞ  rs   rs   rt   Útest_constantË  s    
 zTestIQR.test_constantc                 C   sL   t  d¡d }tt |d ¡dƒ tt |¡dƒ ttj|dd�dgƒ d S )Nr   r­   r   r”   Tr³  )rŠ   r   r   re   rI  r   rá  rs   rs   rt   Útest_scalarlikeá  s   zTestIQR.test_scalarlikec                 C   s„   t  d¡ d¡}tt |¡dƒ ttj|dd�t  dd¡ƒ ttj|dd�t  d	d
¡ƒ ttj|dd�dƒ ttj|dd�dƒ d S )NrŠ  rt  r­   r   rR   r3   rK   r   r1   r  r¿  rí  )rŠ   r   rg   r   re   rI  r   r   rá  rs   rs   rt   Útest_2Dç  s   zTestIQR.test_2Dc              
   C   s˜  t jjdd�}t  |gd ¡}t |¡}ttj|dd�|ƒ t  |dd¡}ttj|dd�|ƒ | dd	¡}ttj|d
d�|ƒ | dd	¡}ttj|dd�tj|d d�ƒ ttj|dd�tj|dd�ƒ t  	d¡}t j 
|¡ | d¡}ttj|dd�d t |d d …d d …d d …df  ¡ ¡ƒ ttj|dd�d	 t |d d …d d …d	d d …f  ¡ ¡ƒ ttj|dd�d t |d d …d d …dd d …f  ¡ ¡ƒ ttj|dd�d t |dd d …d d …d d …f  ¡ ¡ƒ ttj|dd�d t |dd	d d …d d …f  ¡ ¡ƒ ttj|dd�d t |dd d …d d …d	f  ¡ ¡ƒ ttj|dd�d t |dd d …dd d …f  ¡ ¡ƒ tttj|dd� tttj|dd� d S )N)éG   r—  rL  rX   r¿  rR   r^   r   rs  r   rR  rÍ  ©r   iƒ  ©r1   r3   r5   rY   ©r   r   r1   )r1   r   r¢  r0   )r1   r   r0   ©r1   r0   )r   r#  )r   r1   ©r0   r0   r2   rw  )rŠ   rV  rX  Údstackre   rI  r   ÚmoveaxisÚswapaxesr   r~  rg   rp  r�   r%   rž   )rj   Úorl   ÚqrÏ  rs   rs   rt   rŒ  ï  sR   
ÿÿ

$ÿ$ÿ$ÿ$ÿ ÿ ÿ ÿzTestIQR.test_axisc                 C   s–   t  d¡}tt |¡dƒ ttj|dd�dƒ ttj|dd�dƒ ttj|dd�dƒ tttj|d	d� tttj|t jd
fd� tt	tj|dd� d S )Nr3   r0   )rŒ  g     àU@rN  r;   )g      )@r£  )rX   ré  gš™™™™™ù?)r   r�  rŒ  )r   ré  é<   )
rŠ   r   r   re   rI  r   r�   rž   ri   r¹  rá  rs   rs   rt   Útest_rng  s   
zTestIQR.test_rngc                 C   sl  t  d¡}t  d¡}tt |¡dƒ tt |¡dƒ ttj|dd�dƒ ttj|dd�dƒ ttj|dd�dƒ ttj|ddd	�d
ƒ ttj|dd�dƒ ttj|dd�dƒ ttj|ddd	�dƒ ttj|dd�dƒ ttj|dd�dƒ ttj|dd�dƒ ttj|dd�dƒ ttj|ddd	�dƒ ttj|dd�dƒ dD ]	}tj||d� q¡tttj|dd� d S )Nr3   r2   r0   r:   rK  rM  r|  )rŒ  éP   )rO  rN  r1   rQ  rP  r   rO  r;   )Úinverted_cdfÚaveraged_inverted_cdfÚclosest_observationÚinterpolated_inverted_cdfÚhazenÚweibullÚmedian_unbiasedÚnormal_unbiasedrš   )rŠ   r   r   re   rI  r�   rž   )rj   rl   rm   r?  rs   rs   rt   Útest_interpolation#  s(   

zTestIQR.test_interpolationc                 C   s^  t  d¡}ttj|d dd�jdƒ ttj|ddd�jdƒ ttj|ddd�jdƒ ttj|d	dd�jd
ƒ ttj|ddd�jdƒ ttj|ddd�jdƒ ttj|ddd�jdƒ ttj|d dd�jdƒ ttj|ddd�jdƒ ttj|ddd�jdƒ ttj|d	dd�jdƒ ttj|ddd�jdƒ ttj|ddd�jdƒ ttj|ddd�jdƒ d S )NrY  Frš  rs   r0   )r1   r3   rY   r¿  )r5   rY   )r   r1   )r3   r5   )r   r€  ©r   r   r0   r1   r³  rZ  rz   TrX  )r1   r3   r   rY   )r   r   r5   rY   )r   r3   r5   r   )r1   r   r5   rY   )r   r   r5   r   )rŠ   ru  r   re   rI  rk  rá  rs   rs   rt   r´  E  s   
zTestIQR.test_keepdimsc                 C   s´  t  d¡ d¡}ttj|dd�dƒ ttj|dd�dƒ ttj|dd�dƒ t j|d< tjd	d
��8 t 	d¡ ttj|dd�t jƒ ttj|ddd�ddt jddgƒ ttj|ddd�dt jdgƒ W d   ƒ n1 slw   Y  tjd	d
��3 t 	d¡ ttj|dd�dƒ ttj|ddd�t  
dd¡ƒ ttj|ddd�g d¢ƒ W d   ƒ n1 s­w   Y  tttj|dd� tttj|ddd� tttj|ddd� tttj|dd� d S )Nç      .@rt  rî  r’   r5   r‘   r˜   rS  T©r›   Úalwaysr   rï  r3   r   r0   r@   )r0   r;   r0   Úbarfood)rŠ   r   rg   r   re   rI  ri   ÚwarningsÚcatch_warningsÚsimplefilterr   r�   rž   rá  rs   rs   rt   Útest_nanpolicyX  s6   

ÿÿ
ÿú	
üzTestIQR.test_nanpolicyc                 C   s–  t  d¡ d¡}ttj|dd�dƒ ttj|dd�dƒ ttj|dd�d	ƒ t j|d
< tj	dd��f t 
d¡ ttj|ddd�t jƒ ttj|ddd�t jƒ ttj|ddd�t jƒ ttj|dddd�dt jdgƒ ttj|dddd�t  dt jdg¡d ƒ ttj|dddd�dt jdgƒ W d   ƒ n1 sšw   Y  ttj|ddd�dƒ ttj|ddd�dƒ ttj|ddd�dƒ tttj|dd� d S )Nro  rt  r½   ©r<  r5   rX  g=V^w¥Á@r  r<   rS  Trp  rq  rî  )r<  r“   r   )rS   r<  r“   r0   gF—7‡k•õ?r‘   r@   gŠ¥	I1=@g      @rš   )rŠ   r   rg   r   re   rI  r   ri   rs  rt  ru  r   r�   rž   rá  rs   rs   rt   Ú
test_scalex  s<   

ÿ
ÿÿþ
ÿõÿzTestIQR.test_scaleN)r²   r³   r´   rü   rL  r  r  r€  rŠ   r   r�  rT  rU  rV  rŒ  rc  rm  r´  rv  rx  rs   rs   rs   rt   rH  ³  s    
)" rH  c                	   @   s„  e Zd ZdZg d¢ZdZej d¡ ej 	d¡Z
dddœdd	„Zeej d
ddg¡ej deddƒ¡dd„ ƒƒƒZeej d
ddg¡ej dd¡dd„ ƒƒƒZedd„ ƒZdd„ Zeddd�ej d¡eej dg d¢¡ej dd d!g¡d"d#„ ƒƒƒƒƒZed$d%d�ej d¡ed&d'„ ƒƒƒZed(d)„ ƒZed*d+„ ƒZd,d-„ Zeej d.g d¢¡ej d/g d0¢¡ej d1dd2g¡d3d4„ ƒƒƒƒZdS )5ÚTestMomentsa  
        Comparison numbers are found using R v.1.5.1
        note that length(testcase) = 4
        testmathworks comes from documentation for the
        Statistics Toolbox for Matlab and can be found at both
        https://www.mathworks.com/help/stats/kurtosis.html
        https://www.mathworks.com/help/stats/skewness.html
        Note that both test cases came from here.
    rO  r«   éÒ  r}  N)rk  r
  c                C   sH   t  |¡}|d urt  ||¡}t||ƒ |d u r|j}|j|ks"J ‚d S rð  )rŠ   rb   Úbroadcast_tor   r
  )rj   r  Úexpectrk  r
  rs   rs   rt   Ú_assert_equal«  s   

zTestMoments._assert_equalrM  rX   )rX   r0   zm, crn  )Nr   r   c           	      C   sz   t j d¡}| |j|d�¡}tj|||d�}|d u r"|j|dd�n|}|j|| | dd�|jd  }t	||dd� d S )Nl   ŠrH¯Z rL  r@  r   rR   ç¼‰Ø—²Òœ<rí   )
rŠ   rV  rW  rb   re   Úmomentrh   rÆ  rk  r.   )	rj   rM  rø  rÎ  rk   rO  rl   r‹   r\  rs   rs   rt   Ú test_moment_center_scalar_moment´  s    z,TestMoments.test_moment_center_scalar_momentrÎ  c                    sh   t j d¡}| |j|d�¡‰g d¢}tjˆ|ˆ d�}tˆƒ‰ˆ ‡ ‡‡fdd„|D ƒ¡}t||ƒ d S )Nl   ª%à~.}~= rL  rn  r@  c                    s&   g | ]}t jˆ|ˆ d �ˆjdf ‘qS )r@  .)re   r  Únewaxisrñ  ©rÎ  rl   r€   rs   rt   rô  È  s    ÿz?TestMoments.test_moment_center_array_moment.<locals>.<listcomp>)	rŠ   rV  rW  rb   re   r  r(   rþ  r/   )rj   rM  rÎ  rk   rO  rø  r‹   r\  rs   r‚  rt   Útest_moment_center_array_moment¿  s   ÿz+TestMoments.test_moment_center_array_momentc                    sø  ˆ   | j¡}t ˆ   | j¡¡}t|ˆ   d¡ƒ t |d¡}t|ˆ   d¡ƒ t |d¡}t|ˆ   d¡ƒ t |d¡}t|ˆ   d¡ƒ t |d¡}t|ˆ   d¡ƒ t |d¡}t|ˆ   d	¡ƒ t |g d
¢¡}t|ˆ   g d¢¡ƒ t |d¡}t|ˆ   d¡ƒ d}tjt|d�� t |d¡ W d   ƒ n1 s—w   Y  t |g d¢¡}t|ˆ   g d¢¡ƒ ‡ fdd„}t	ˆ ƒrÕtj
tdd�� |ƒ  W d   ƒ d S 1 sÎw   Y  d S tj ¡ �}| td¡ | td¡ |ƒ  W d   ƒ d S 1 sõw   Y  d S )Nr”   r   r½   r   r0   ç      ô?r1   r2   ç     €@r'  )r   r„  r   r…  z)All elements of `order` must be integral.r–   ç333333ó?)r½   r0   r1   r«   c                     sÎ   t  ˆ  g ¡¡} t| ˆ  ˆ j¡ƒ t  ˆ jg ˆ jd�¡} t| ˆ jˆ jˆ jd�ƒ t jˆ  d¡dd�} t| ˆ  d¡ƒ t jˆ  g g¡dd�} t| ˆ  ˆ jg¡ƒ t jˆ  g g¡ddgdd�} t| ˆ  d¡ƒ d S )	Nr  rí  r   rR   rX  r   ©ÚorderrS   )r0   r   )re   r  rb   r/   ri   r   rÃ  rÇ  )rm   ©rk   rs   rt   Ú
test_casesì  s   z+TestMoments.test_moment.<locals>.test_caseszSee documentation for...zMean of empty slice.zinvalid value)rb   rÏ  re   r  rÉ  r.   r  r   rž   r*   r  r   rŠ   r“  r   r§   rœ   )rj   rk   rÏ  rm   rA  rŠ  r    rs   r‰  rt   Útest_momentÌ  sB   ÿ"ÿ"ýzTestMoments.test_momentc                 C   sd   t  d¡}t j|d< tt |d¡t jƒ ttj|dd�dƒ tttj|dd� tttj|dd� d S )	Nr‡   r7   r0   r‘   r’   r”   r˜   rš   )	rŠ   r   ri   r   re   r  r   r�   rž   rá  rs   rs   rt   rã    s   

zTestMoments.test_nan_policyrv   rw   rD   rG   r
  )r   r¶   Ú
complex128zexpect, orderr¿  rí  c                 C   sè   |dkrt |ƒrt ¡  t||ƒ}|jtj d¡|d�}tj	||d�}t
||j||d�ƒ tj	| |d¡d|d�}t
||jd||d�ƒ tj	| |d	¡d
|d�}t
||jd||d�ƒ tj	| |d	¡d |d�}t
||jd||d�ƒ d S )NrŒ  r3   r  ©rˆ  )r4   r3   r   )rS   rˆ  )r3   r2  r0   )r   r0   r2   r3   rs   )r+   r  Úskipr  rb   rŠ   rV  rå  re   r  r/   r{  r   )rj   r
  r|  rˆ  rk   rl   rm   rs   rs   rt   Útest_constant_moments
  s    
ÿÿz!TestMoments.test_constant_momentsrB   rê   c                 C   sJ   |  | d¡d¡}tj|d< tj|ddd�}t|| dtjg¡dd	� d S )
Nr®   rð  rí  r0   r   rR   r„  rì   rí   )rg   r   rŠ   ri   re   r  r.   rb   )rj   rk   ró   Úmmrs   rs   rt   Útest_moment_propagate_nan"  s   
z%TestMoments.test_moment_propagate_nanc                 C   sL   t jtdd�� tj| g d¢¡g d� W d   ƒ d S 1 sw   Y  d S )Nz1`order` must be a scalar or a non-empty 1D array.r–   r'  r�  )r  r   rž   re   r  rb   ©rj   rk   rs   rs   rt   Útest_moment_empty_order.  s   "þz#TestMoments.test_moment_empty_orderc                 C   s4   |  d¡}tj|dd�}tj|dd�}t||ƒ d S )NrX   r1   )r  r�  )r   re   r  r/   )rj   rk   rl   r‹   r\  rs   rs   rt   Útest_rename_moment_order5  s   
z$TestMoments.test_rename_moment_orderc                 C   s6   | j t | j ¡ }tt |d¡ ¡ t | j d¡ƒ d S )Nr}  )Útestcase_moment_accuracyrŠ   rh   r
   r   re   r  )rj   Ú
tc_no_meanrs   rs   rt   Útest_moment_accuracy>  s   
ÿÿz TestMoments.test_moment_accuracyrˆ  rS   rø   r=  r   c           	      C   sT   t j d¡}|jdd�}tj| |¡|||d�}| t||||d�¡}t||ƒ d S )Nl   ¡hU¯~)r3   r4   r5   rL  )rS   r=  )rh   )rŠ   rV  rW  re   r  rb   r    r.   )	rj   rk   rˆ  rS   r=  rO  rl   r‹   r\  rs   rs   rt   Útest_moment_array_apiF  s
   z!TestMoments.test_moment_array_api)r²   r³   r´   rÝ   rÏ  rÉ  rŠ   rV  rÜ  rå  r•  r}  r&   r  r  r€  r   r€  rƒ  r‹  rã  rG   Úusefixturesr�  r‘  r“  r”  r—  r˜  rs   rs   rs   rt   ry  œ  sP    		

5

ÿ


ry  c                   @   s    e Zd ZdZg d¢Zg d¢ZdS )ÚSkewKurtosisTestr«   rO  )g¤p=
×£ò?gæ?¤ß¾ä?gDúíëÀ9³?gª‚QI�€Ö?g}?5^ºIæ¿N)r²   r³   r´   rÉ  rÏ  Útestmathworksrs   rs   rs   rt   rš  R  s    rš  c                	   @   sþ   e Zd Zeej dejej	g¡dd„ ƒƒZ
eddd�ej d¡edd	„ ƒƒƒZd
d„ Zdd„ Zeddd�ej d¡edd„ ƒƒƒZedd„ ƒZeddd�ej d¡edd„ ƒƒƒZeddd�ej d¡eej dg d¢¡ej dddg¡dd„ ƒƒƒƒƒZdS )ÚTestSkewÚstat_func                 C   sª   |  g ¡}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 sEw   Y  t||  |j¡ƒ d S )Nr–   úMean of empty slicezinvalid value encountered)rb   r*   r  r  r   r   rŠ   r“  r   r§   rœ   r/   ri   )rj   r�  rk   rl   r‹   r    rs   rs   rt   Útest_empty_1dY  s   

ÿ€
üzTestSkew.test_empty_1drB   rê   rD   rG   c                 C   sž   t  | | j¡¡}t|| |j¡ƒ t  | | j¡¡}t|| d¡dd� t j| | j¡dd�}t|| d¡dd� t  | | j¡¡}t|| d¡dd� d S )Ng7l•*ÄÒ¿ç»½×Ùß|Û=rí   r   ©Úbiasg¨õ2Û ùÛ¿r”   )re   Úskewrb   rÉ  r.   ri   r›  rÏ  )rj   rk   rm   rs   rs   rt   Útest_skewnessh  s   zTestSkew.test_skewnessc                 C   sŽ   t  d¡}t j|d< t jdd�� tt |¡t jƒ W d   ƒ n1 s$w   Y  ttj|dd�dƒ tttj|dd� tttj|d	d� d S )
Nr‡   r7   r?  r@  r‘   r’   r”   r˜   rš   )	rŠ   r   ri   rB  r   re   r£  r�   rž   rá  rs   rs   rt   rã  y  s   

ÿzTestSkew.test_nan_policyc                 C   s   t t tdƒ¡dƒ d S )NrX   r”   )r   re   r£  r   rØ  rs   rs   rt   Útest_skewness_scalarƒ  s   zTestSkew.test_skewness_scalarc                 C   st   |  d¡}| |d¡}|j|d< tjdd�� tj|dd�}W d   ƒ n1 s(w   Y  t|| d|jg¡ƒ d S )	Nr®   rð  rí  r?  r@  r   rR   r   )	r   rg   ri   rŠ   rB  re   r£  r/   rb   )rj   rk   ró   r€  rs   rs   rt   Útest_skew_propagate_nan‡  s   

ÿz TestSkew.test_skew_propagate_nanc                 C   s  t jtdd��q | dgd ¡}tt |¡| |j¡ƒ tt |d ¡| |j¡ƒ tt |d ¡| |j¡ƒ ttj|dd�| |j¡ƒ | dgd	 ¡}tt |¡| |j¡ƒ d
| dd¡d  }tt |¡| |j¡ƒ W d   ƒ d S 1 s{w   Y  d S )NúPrecision loss occurredr–   çË9Ÿ•ÏÑ¿rX   g      CFr¡  gš™™™™™,@r5   r½   ç      Àr2   r~  )	r  r  rœ   rb   r/   re   r£  ri   r   ©rj   rk   ró   rs   rs   rt   Útest_skew_constant_value•  s   "õz!TestSkew.test_skew_constant_valuec                 C   sl   t jtdd��% tj d¡}| |jdd�¡}d|d d …df< t |¡ W d   ƒ d S 1 s/w   Y  d S )Nr§  r–   l   :"z` )rJ  rX   rL  ç)\�Âõ(ð?r   )	r  r  rœ   rŠ   rV  rW  rb   re   r£  )rj   rk   rO  ró   rs   rs   rt   Útest_precision_loss_gh15554¥  s   "üz$TestSkew.test_precision_loss_gh15554rS   ©r^   r   r0   Nr¢  FTc           	         sT   t j d¡}ˆ  | d¡¡}‡ fdd„}tj|||d�}||||d�}t||ƒ d S )Nì   f#Ñ"«r¬  c           	         sŽ   |d u rˆ   | d¡} d}t| ƒ}|j| |dd�}|j| | d |d�}|j| |d�}||d  }|sE| j| }||d | d |d	  9 }|S )
Nr  r   Trš  r1   rR   r½   r9   r  )rg   r(   rh   rƒ   rk  )	ró   rS   r¢  r€   rh   Úmu3rƒ   r‹   rú  r‰  rs   rt   Úskewness¿  s   
z-TestSkew.test_vectorization.<locals>.skewness)rS   r¢  )rŠ   rV  rW  rb   re   r£  r.   )	rj   rk   rS   r¢  rO  rl   r±  r‹   r\  rs   r‰  rt   Útest_vectorization³  s   	zTestSkew.test_vectorizationN)r²   r³   r´   r&   r  r  r€  re   r£  ÚkurtosisrŸ  rG   r™  r¤  rã  r¥  r¦  r«  r­  r²  rs   rs   rs   rt   rœ  X  sD    ÿ

ÿ


ÿ

ÿ
rœ  c                
   @   s®   e Zd Zeddd�ej d¡edd„ ƒƒƒZdd„ Z	d	d
„ Z
dd„ Zedd„ ƒZeddd�ej d¡eej dg d¢¡ej dddg¡ej dddg¡dd„ ƒƒƒƒƒƒZdS )ÚTestKurtosisrB   rê   rD   rG   c                 C   sØ   t  | | j¡¡}| |¡sJ ‚t j| | j¡dddd�}t|| d¡ƒ t j| | j¡ddd�}t|| d¡ƒ t  | | j¡dd¡}t|| d¡ƒ | d¡}| 	|dk| |j
¡|¡}tt  |¡| |j
¡ƒ d S )	Nr   r   ©Úfisherr¢  gOß»S@gâx|ïN@g=
×£p=ú?r‡   r6   )re   r³  rb   rÉ  ry  r›  r.   rÏ  r   rÐ  ri   r/   )rj   rk   rm   rl   rs   rs   rt   Útest_kurtosisÕ  s   
zTestKurtosis.test_kurtosisc                 C   sP   t  d¡}t j|d< ttj|dd�dƒ tttj|dd� tttj|dd� d S )Nr‡   r7   r‘   r’   ç®Gáz®ó¿r˜   rš   )rŠ   r   ri   r   re   r³  r�   rž   rá  rs   rs   rt   Útest_kurtosis_nan_policyø  s
   

z%TestKurtosis.test_kurtosis_nan_policyc                 C   s   t tt g d¢¡ƒtjƒ d S )Nr:  )r   Útypere   r³  rŠ   r¶   rØ  rs   rs   rt   Útest_kurtosis_array_scalar   s   z'TestKurtosis.test_kurtosis_array_scalarc                 C   sN   t  d¡ dd¡ t¡}t j|d< tj|ddd�}t jj	|dt jgd	d
� d S )Nr6   r0   r^   rí  r   rî  rï  gÃõ(\�Âõ¿rì   rí   )
rŠ   r   rg   r,  r  ri   re   r³  r“  r
   )rj   ró   rç  rs   rs   rt   Útest_kurtosis_propagate_nan  s   
z(TestKurtosis.test_kurtosis_propagate_nanc                 C   s¶   |  dgd ¡}tjtdd��B | tj|dd�¡sJ ‚| tj|tdƒ dd�¡s,J ‚| tj|tdƒ dd�¡s<J ‚| tj|ddd�¡sIJ ‚W d   ƒ d S 1 sTw   Y  d S )	Nr¨  rX   r§  r–   F)r¶  l           rµ  )rb   r  r  rœ   ry  re   r³  r  rª  rs   rs   rt   Útest_kurtosis_constant_value  s     "üz)TestKurtosis.test_kurtosis_constant_valuerS   r®  r¢  FTr¶  c           
         sX   t j d¡}ˆ  | d¡¡}‡ fdd„}tj||||d�}|||||d�}	t||	ƒ d S )Nr¯  rQ  c           
         s¾   |d u rˆ   | d¡} d}t| ƒ}|j| |dd�}|j| | d |d�}|j| |dd�}|r6||d  d	 }n!| j| }	|	d
 |	d |	d	   |	d
 | |d  d	|	d
    }|r[|S |d	 S )Nr  r   Trš  r2   rR   ©rS   ry   r0   r1   r   )rg   r(   rh   r~   rk  )
ró   rS   r¢  r¶  r€   rh   Úmu4Úmu2r‹   rú  r‰  rs   rt   r³  $  s   
8z1TestKurtosis.test_vectorization.<locals>.kurtosis)rS   r¢  r¶  )rŠ   rV  rW  rb   re   r³  r.   )
rj   rk   rS   r¢  r¶  rO  rl   r³  r‹   r\  rs   r‰  rt   r²    s   
zTestKurtosis.test_vectorizationN)r²   r³   r´   rG   r  r  r™  r&   r·  r¹  r»  r¼  r½  r€  r²  rs   rs   rs   rt   r´  Ó  s*    ÿ
	
	ÿ
r´  c              
   C   sþ   t ddd�}tjddd�}| tjtj||d�ƒ}g }t ¡ �H t d¡ t	t
|jƒƒD ]3}t t¡�$ tj|d|d�}t |d	k¡rOt t |¡¡rO| |¡ W d   ƒ n1 sYw   Y  q+W d   ƒ n1 siw   Y  t |¡ | tj |¡ƒ}||fS )
NF)Ú	allow_nanÚallow_infinityr   r0   )Úmin_dimsÚmin_side)r
  Úelementsrk  Úerrorr‡  r   )ÚdictÚnpstÚarray_shapesÚarraysrŠ   r¶   rs  rt  ru  rj  r×  rk  Ú
contextlibÚsuppressÚ	Exceptionre   r  rÕ  rw  r·  Ú
hypothesisÚassumeÚ
strategiesÚsampled_from)ÚdrawrÅ  rk  rª  Úok_axesrS   r~   rs   rs   rt   Úttest_data_axis_strategy=  s&   


€ý€ÿþ
rÔ  úUses NumPy for pvalue, CI©rÞ   rE   c                   @   sÆ   e Zd Zg d¢Zg d¢ZdZdZdZdZdZ	dZ
d	ZdZed
 Zded
  Zdd„ Zdd„ Zdd„ Zej dg d¢¡dd„ ƒZdd„ Zejjejej dd¡eƒ d�ej dddg¡dd„ ƒƒƒZdS ) ÚTestStudentTest©rö   r”   r½   )r”   r½   r  r”   r½   gMXèz¶û¿gŠ4/ÚÌ?gMXèz¶ÀgFX5tý²?gMXèz¶û?r0   r   c              	   C   sÄ  t ƒ �8}tjddd��! | td¡ t|ƒs| d¡nd}t |d¡\}}W d   ƒ n1 s/w   Y  W d   ƒ n1 s>w   Y  t	|| |j
¡ƒ t	|| |j
¡ƒ t | | j¡d¡\}}t|| | j¡ƒ t|| | j¡ƒ t | | j¡d¡}d}t|||d� t | | j¡d¡\}}t|| | j¡ƒ t|| | j¡ƒ t | | j¡d	¡\}}t|| | j¡ƒ t|| | j¡ƒ t | | j¡d
¡\}}t|| | j¡ƒ t|| | j¡ƒ d S )Nr?  ©rA  Údivideú!Degrees of freedom <= 0 for slicer«   rë   r”   ©ræ   rå   r‰  r½   r  )r   rŠ   rB  r§   rœ   r*   rb   re   Úttest_1sampr/   ri   ÚX1r.   ÚT1_0ÚP1_0r   ÚX2ÚT2_0ÚP2_0ÚT1_1ÚP1_1ÚT1_2ÚP1_2)rj   rk   r    ró   Útr  r‹   rè   rs   rs   rt   Útest_onesampler  s4   ÿü€ zTestStudentTest.test_onesamplec                 C   s  t |ƒs2| ddd|jg¡}d}tjt|d�� tj|ddd� W d   ƒ d S 1 s+w   Y  d S tjj	dd	d
dd�}t
j|d< t
jdd��5 tt |d¡t
jt
jfƒ ttj|ddd�dƒ tttj|ddd� tttj|ddd� W d   ƒ d S 1 sw   Y  d S )Nr½   r  rë   ú%Use of `nan_policy` and `keepdims`...r–   r‘   r’   r3   rX   é3   i§Ìt ©r;  r<  rM  r`  ré  r?  r@  rK   )gÍ„Á^œBú¿g/kCÒüm»?r˜   rš   )r*   rb   ri   r  r   ÚNotImplementedErrorre   rÝ  rÂ  rQ  rŠ   rB  r   r   r�   rž   )rj   rk   rl   rA  rs   rs   rt   Útest_onesample_nan_policy’  s*   
ÿþ
ÿÿ"úz)TestStudentTest.test_onesample_nan_policyc                 C   sÎ   d}t jt|d�� tj| | j¡ddd� W d   ƒ n1 s w   Y  tj| | j¡ddd�\}}t|| | j¡ƒ t|| | j	¡ƒ tj| | j¡ddd�\}}t|| | j
¡ƒ t|| | j	¡ƒ d S )	Nú8`alternative` must be 'less', 'greater', or 'two-sided'.r–   r”   rÆ  r(  r½   r#  r%  )r  r   rž   re   rÝ  rb   rÞ  r.   ÚP1_1_lrä  ÚP1_1_g)rj   rk   rA  rè  r  rs   rs   rt   Útest_1samp_alternative¦  s   ÿz&TestStudentTest.test_1samp_alternativer)  r»  c                 C   sà   t j d¡}d}|j|ddd�}| ¡ }t|ƒr|jn|j}|j||d�}|j||d�}ddgd	t jgt j d
gdœ}t	j
|||d�}	|	jdd�}
t|
j| || d ¡ƒ t|
j| || d ¡ƒ t|	j| |d ¡ƒ d S )Nl   <Ple¦H† rX   r:   r0   ©rM  r;  r<  r  gÃ�Ž]×?g$(ÔØ}w@géS1žèç?gâ¤ù¼›]@©r!  r%  r#  )Úpopmeanr)  ç333333ë?©Úconfidence_levelr   r   )rŠ   rV  rW  rX  r+   r   r¶   rb   r’  re   rÝ  r  r.   r  r  r/   Údf)rj   rk   r)  rO  rú  rl   rõ  r
  r\  r‹   r2  rs   rs   rt   Útest_1samp_ci_1d³  s    
þz TestStudentTest.test_1samp_ci_1dc                 C   sV   t  | d¡d¡}d}tjt|d�� |jdd� W d   ƒ d S 1 s$w   Y  d S )Nr‡   r”   ú4`confidence_level` must be a number between 0 and 1.r–   rX   r÷  )re   rÝ  r   r  r   rž   r  )rj   rk   r‹   rA  rs   rs   rt   Útest_1samp_ci_ivÌ  s
   "ÿz TestStudentTest.test_1samp_ci_ivrì   g÷ÿÿÿÿÿï?)ÚalphaÚ	data_axisr#  r%  c                 C   s¬   |\}}|  |¡}tj|d||d�}|j|d�\}}	|dkr |n|	}
t|ƒ}|j|
|d�}
tj||
||d�}t|jƒ}| |¡ | 	|j d| |j
d�|¡}t|j|ƒ d S )Nr”   rR  r÷  r%  rR   r   r  )rb   re   rÝ  r  r(   r  rI  rk  r®  r{  r¶   r.   rå   )rj   rý  rþ  r)  rk   rª  rS   r‹   ÚlrÜ  rõ  r€   rk  r\  rs   rs   rt   Útest_pvalue_ciÓ  s   
ÿ

zTestStudentTest.test_pvalue_ciN)r²   r³   r´   rÞ  rá  rß  rà  rä  rå  ræ  rç  râ  rã  rð  rñ  ré  rî  rò  r  r  r€  rú  rü  rÒ  rÎ  ÚgivenrÐ  ÚfloatsrÔ  r   rs   rs   rs   rt   r×  \  s2    	 
ÿr×  c                   @   sv  e Zd Zdd„ Zej dg d¢¡dd„ ƒZej dg d¢¡dd	„ ƒZej dg d
¢¡dd„ ƒZ	ej dg d¢¡dd„ ƒZ
ej dg d¢¡dd„ ƒZej dg d
¢¡dd„ ƒZej dg d¢¡dd„ ƒZej ddg d¢fdg d¢fdg d¢fdg d¢fg¡dd„ ƒZej ddg d¢fdg d ¢fdg d!¢fdg d¢fg¡d"d#„ ƒZd$g d%ejfd$ejgd%ejfd$ejgg d&¢ejejejgfd$d%d'gd%d'ejgd(d)ejgfd*d%d'ejgg d&¢g d+¢fd*d%d'gd,d%ejgd,d(ejgfd*ejejgg d&¢ejejejgfgZej d-e¡d.d/„ ƒZd0d%d'd1ejgg d2¢d3fd0g d2¢d%d'd1ejgd3fgZej d4e¡d5d6„ ƒZej d7g d8¢¡d9d:„ ƒZd;S )<ÚTestPercentileOfScorec                 O   s   t j|i |¤ŽS rð  )re   Úpercentileofscore)rj   ÚargsÚkwargsrs   rs   rt   Úfë  ó   zTestPercentileOfScore.fzkind, result))rÌ  rë  )rh   é#   ©Ústrictrê  )Úweakrë  c                 C   ó"   g d¢}t | j|d|d�|ƒ d S )N©
r   r0   r1   r2   r3   r4   r5   r6   r7   rX   r2   ©Úkind©r   r  ©rj   r  r1  ró   rs   rs   rt   Útest_uniqueî  ó   z!TestPercentileOfScore.test_unique))rÌ  rL  )rh   rë  r
  )r  ré  c                 C   r  )N)
r   r0   r1   r2   r2   r3   r4   r5   r6   r7   r2   r  r  r  rs   rs   rt   Útest_multiple2ö  r  z$TestPercentileOfScore.test_multiple2))rÌ  ré  )rh   rL  r
  )r  rb  c                 C   r  )N)
r   r0   r1   r2   r2   r2   r3   r4   r5   r6   r2   r  r  r  rs   rs   rt   Útest_multiple3þ  r  z$TestPercentileOfScore.test_multiple3))rÌ  rê  )rh   rê  r
  )r  rê  c                 C   r  )N)
r   r0   r1   r3   r4   r5   r6   r7   rX   rY   r2   r  r  r  rs   rs   rt   Útest_missing  r  z"TestPercentileOfScore.test_missingc                 C   r  )N©
rX   r‹  rê  rë  ré  rb  éF   rd  rJ  rJ  rë  r  r  r  rs   rs   rt   r©    r  z(TestPercentileOfScore.test_large_numbersc                 C   r  )N)
rX   r‹  rê  rë  rë  rë  ré  rb  r  rd  rë  r  r  r  rs   rs   rt   Útest_large_numbers_multiple3  r  z2TestPercentileOfScore.test_large_numbers_multiple3c                 C   r  )N©
rX   r‹  rê  ré  rb  r  rd  rJ  rJ  én   rë  r  r  r  rs   rs   rt   Útest_large_numbers_missing  r  z0TestPercentileOfScore.test_large_numbers_missingrÌ  )r   rX   rJ  rJ  rh   )r   r3   é_   rJ  r  )r   r   rJ  rJ  r  c                 C   s&   g d¢}t | j|g d¢|d�|ƒ d S )Nr  )r   rX   r  rš  r  r  r  rs   rs   rt   Útest_boundaries&  s   z%TestPercentileOfScore.test_boundaries)r   rX   rJ  )r   r3   r  )r   r   rJ  c              
   C   sD   ddddddddd	t j
 g
}t| j|t j dt j
 g|d
�|ƒ d S )Nr   r0   r1   r2   r3   r4   r5   r6   r7   r  )rŠ   r’  r   r  r  rs   rs   rt   Útest_inf.  s   (zTestPercentileOfScore.test_infrî  r   rÍ  r0   ré  rJ  r‘   )r   ré  rJ  r   zpolicy, a, score, resultc                 C   s   t | j|||d�|ƒ d S )Nr’   r  )rj   Úpolicyró   r‹  r1  rs   rs   rt   Útest_nans_ok>  s   z"TestPercentileOfScore.test_nans_okr˜   r1   r:  r•   zpolicy, a, score, messagec                 C   sB   t t|d�� | j|||d� W d   ƒ d S 1 sw   Y  d S )Nr–   r’   )r�   rž   r  )rj   r!  ró   r‹  rA  rs   rs   rt   Útest_nans_failI  s   "ÿz$TestPercentileOfScore.test_nans_failrk  ))r4   rÁ  ©r0   r   r1   )r0   r   r   r1   c                 C   sB   t  g d¢¡}| |¡}|d }g d¢}t| j||dd�|ƒ d S )N)r   r   r0   r1   r2   r3   rX   r  rÌ  r  )rŠ   r   rg   r   r  )rj   rk  ró   rì  Úresultsrs   rs   rt   Útest_ndN  s
   
zTestPercentileOfScore.test_ndN)r²   r³   r´   r  r  r  r€  r  r  r  r  r©  r  r  r  r   rŠ   ri   Úcasesr"  r#  r&  rs   rs   rs   rt   r  é  sb    









ý



ý
"ú
ÿÿý
r  ÚCase)Úf_obsÚf_exprÎ  rS   Úchi2r  Úmod_logÚcr)r2   r6   rZ   r6   r2   r0   r9   rZ   r:   r6   r  r¶  gfœx­(@)r0   rˆ   rZ   r0   rñ  r«   rˆ   ç      Ð?g‡æÙ{TÉ4@)r1   r3   r5   r7   ©r   r   r   c                   @   sŒ   e Zd Zdd„ Zej de¡ej dg d¢¡dd„ ƒƒZdd	„ Z	d
d„ Z
ej de¡ej dg d¢¡dd„ ƒƒZdd„ Zdd„ Zdd„ ZdS )ÚTestPowerDivergencec                 C   sH  |  d¡j}|j ||d�}|d ur|j ||d�n|}|d u r#t|ƒ}	nt|ƒ}
|d ur1|
 ||¡n|f}|d j| }	tƒ �A}| td¡ t	j
|||||d�\}}t||j ||d�ƒ |dksc|dkrxt	j||||d�\}}t||j ||d�ƒ W d   ƒ n1 s‚w   Y  t  |¡}t	jj ||	d | ¡}t||j ||d�ƒ d S )	Nr½   r  r   rž  ©r)  r*  rÎ  rS   Úlambda_r   Úpearson)r)  r*  rÎ  rS   )rb   r
  r,   r(   Úbroadcast_arraysrk  r   r§   rœ   re   Úpower_divergencer.   Ú	chisquarerŠ   Údistributionsr+  Úsf)rj   r)  r*  rÎ  rS   r2  Úexpected_statrk   r
  Únum_obsr€   rÊ  r    Ústatr  Ú
expected_prs   rs   rt   Úcheck_power_divergencež  s:   
ÿ
þ

ÿ€õ


ÿz*TestPowerDivergence.check_power_divergenceÚcaseÚlambda_stat))Nr+  ©r3  r+  )r   r+  ©úlog-likelihoodr  ©úmod-log-likelihoodr,  ©úcressie-readr-  ©r¶  r-  c              	   C   s4   |\}}t ||ƒ}|  |j|j|j|j|||¡ d S rð  )r  r=  r)  r*  rÎ  rS   ©rj   r>  r?  rk   r2  Úattrr9  rs   rs   rt   rü   ¿  s
   
ÿzTestPowerDivergence.test_basicc              	   C   s  t d }t d }t |j|jf¡}t t |j¡t |j¡ |jf¡}| |¡}|d ur1| |¡n|}| j||ddd|j	|j	g|d� | j||ddd|j
|j
g|d� | j||ddd|j|jg|d� | j||ddd|j|jg|d� | | |j¡d¡}| j|d dd d|j	|d� d S )	Nr   r   r3  r‰  rB  rD  rF  r\  )Úpower_div_1d_casesrŠ   r  r)  Ú	ones_likerh   r*  rb   r=  r+  r  r,  r-  rg   )rj   rk   Úcase0Úcase1r)  r*  Úf_obs_reshapers   rs   rt   rŒ  Ê  s:   ÿ
þþþþ
þzTestPowerDivergence.test_axisc                 C   s0  t d }t d }t |j|jf¡j}t t |j¡t |j¡ |jf¡j}|j|jg}| 	d¡j
}|j	||d�}|j	||d�}|j	||d�}| 	dgdgg¡}tj|||d�\}	}
t|	|ƒ tj|||d d�\}}tj|||d d�\}}t|ƒ}|j||jd d …f ||jd d …f fdd�}t|
|ƒ d S )	Nr   r   r½   r  rÍ  rw  rí  rR   )rJ  rŠ   r  r)  ri  rK  rh   r*  r+  rb   r
  re   r5  r.   r(   rþ  r�  )rj   rk   rL  rM  r)  r*  Úexpected_chi2r
  rÎ  r;  r  Ústat0Úp0Ústat1Úp1r€   r<  rs   rs   rt   Útest_ddof_broadcastingç  s2   ÿÿ
ÿþz*TestPowerDivergence.test_ddof_broadcasting)r@  rA  rC  rE  rG  c              
   C   s^   |\}}t ||ƒ}t ¡ � |  |j|j|j|j|||¡ W d   ƒ d S 1 s(w   Y  d S rð  )r  rs  rt  r=  r)  r*  rÎ  rS   rH  rs   rs   rt   Útest_empty_cases  s   

þ"ÿz$TestPowerDivergence.test_empty_casesc           	      C   sl   t d j}t d j}t d j}t d j}| d¡j}|j||d�}tj||||dd�}d}t	|||d� d S )Nr   r½   r  r3  r1  rÜ  r‰  )
rJ  r)  r*  rÎ  rS   rb   r
  re   r5  r   )	rj   rk   r)  r*  rÎ  rS   r
  r‹   rè   rs   rs   rt   Ú'test_power_divergence_result_attributes  s   




ÿz;TestPowerDivergence.test_power_divergence_result_attributesc                 C   sò   |  ddgddgg¡}|  ddgddgg¡}d}tjt|d	�� tj||  dd
g¡d� W d   ƒ n1 s6w   Y  tjt|d	�� tj||dd� W d   ƒ n1 sUw   Y  tj||d�\}}t||  ddg¡ƒ t||  ddg¡ƒ d S )Nr‡   rE  ç      >@rK   ro  g     €A@g      9@úFor each axis slice...r–   ç      N@©r)  r*  r   )r)  r*  rS   gòÌ‘¶mÛ@g¥ÝÇUUU@g¤j�^4;‘?gè4¨‰€;º?)rb   r  r   rž   re   r5  r.   )rj   rk   r)  r*  rA  r;  r-  rs   rs   rt   Útest_power_divergence_gh_12282'  s   ÿÿz2TestPowerDivergence.test_power_divergence_gh_12282c              	   C   s  |  g d¢¡}d}| d|jd d ¡}| | |¡| | || ¡¡ ¡}| |||  ¡}t|ƒ}| ||jd d …f ||jd d …f f¡j	}|  g d¢¡}	| 
|	d¡}	t|	jd ƒD ],}|	|df |	|df }
}tj|d d …df |d d …df |
d�\}}t||d	d
� q]d S )N)ro  r„  ç      ,@g      1@rK   r„  r‡   r«   r®   r‡   r­   r©   r„  rë   r¬   r½   r½   r«   gñ*k›âqµ¿r½   r   ) g      $Àg    € ñ@rï  g     r@r©  gffffffP@g       ÀgÍÌÌÌÌLD@rç  g      A@rö   g     €=@ræ  g     €:@r”   gš™™™™™8@r9   gffffff7@gq=
×£på?gš™™™™7@r½   g33333³6@r:   gš™™™™™6@r  gfffffæ6@rë   gÍÌÌÌÌÌ8@rK   g     ÀA@r‡   g     Àj@)r^   r0   r   ©r2  g{®Gázt?r*  )rb   r   rk  r  rÆ  Úexpr(   rþ  r�  ri  rg   rj  re   r5  r.   )rj   rk   ÚobsÚbetarl  rý  Úexpected_countsr€   Útable4Útable5r2  r9  r;  r  rs   rs   rt   Ú/test_power_divergence_against_cressie_read_data4  s(   	$ÿÿ 
ÿüzCTestPowerDivergence.test_power_divergence_against_cressie_read_dataN)r²   r³   r´   r=  r  r  r€  rJ  rü   rŒ  rT  Úpower_div_empty_casesrU  rV  r[  rd  rs   rs   rs   rt   r0  ›  s"    !ÿ%ÿr0  c                   @   s6   e Zd Zdd„ Zdd„ Zej dddg¡dd	„ ƒZd
S )ÚTestChisquarec                 C   s\   t tdd�� | ddg¡}| ddg¡}tj||d� W d   ƒ d S 1 s'w   Y  d S )NrX  r–   r‡   rE  rW  rY  rZ  )r�   rž   rb   re   r6  )rj   rk   r)  r*  rs   rs   rt   Útest_chisquare_12282ag  s
   "ýz#TestChisquare.test_chisquare_12282ac           
      C   s¬   t j d¡}d}|jdd|d�}| |¡}| |¡}|j||jd�}tj||ddd	�}|| | 	|¡ }| 
|d
 ¡}t|j|ƒ t|j||jd�ƒ}	t|j|	 |¡ƒ d S )Nl   *m{îm rX   rK  rH  rL  r  r^   F)r)  r*  rÎ  Ú	sum_checkr0   )rŠ   rV  rW  r­  Úpoissonrb   r
  re   r6  rð   rÆ  r.   ræ   r$   rå   r8  )
rj   rk   rO  rú  Úlamrl   r‹   r½  ræ   rá  rs   rs   rt   Útest_chisquare_12282bp  s   

z#TestChisquare.test_chisquare_12282bzn, dtype)rš  r¸  )i@B r-  c           	      C   s†   t ||ƒ}|j|dg|d�}|j|d |d g|d�}t ||¡}|\}}t||j|| d¡jd�dd� t|j|ƒ t|j|ƒ d S )Nr   r  r0   r½   ç‚vIhÂ%<=r*  )	r  rb   re   r6  r.   r
  r/   ræ   rå   )	rj   rú  r
  rk   r_  r^  r‹   r;  r  rs   rs   rt   Ú#test_chiquare_data_types_attributesƒ  s   
 z1TestChisquare.test_chiquare_data_types_attributesN)	r²   r³   r´   rg  rk  r  r  r€  rm  rs   rs   rs   rt   rf  e  s
    	rf  c                   @   s(   e Zd Zej d¡dd„ ƒZdd„ ZdS )ÚTestChisquareMAr  c              	   C   sÌ  t  g d¢g d¢g¡j}t  g d¢g d¢g¡j}t j ||¡}t  ddg¡}t  ddt  d¡ d	t  d
¡   ddt  d¡ dt  d¡   g¡}tjj}t 	|¡\}}t
 ||¡ t
 || ||jdd�d ¡¡ tj|dd�\}	}t
j|	|dd� t
 || ||jdd�d ¡¡ tj	|jdd�\}}t
 ||¡ t
 || ||jjdd�d ¡¡ tj|jddd�\}	}t
j|	|dd� t
 || ||jdd�d ¡¡ t jjg d¢g d¢d�}
t jjg d¢g d¢d�}tj	|
|d�\}}t
 |d¡ tj	t j g d¢¡d d�\}}tt|t jƒƒ tt|t jƒƒ t|dƒ t|tjj dd¡ƒ t jdd��- tƒ �}| td ¡ t 	t j g ¡¡\}}W d   ƒ n	1 �sLw   Y  W d   ƒ n	1 �s\w   Y  tt|t jjƒƒ t|jd!ƒ t|jƒ t j g g g g¡}t 	|¡\}}tt|t jjƒƒ t
 |g ¡ t jdd��* tƒ �}| td ¡ t 	|j¡\}}W d   ƒ n	1 �s¸w   Y  W d   ƒ n	1 �sÈw   Y  tt|t jjƒƒ t|jd"ƒ tt  |j¡ƒ d S )#N)r6   r6   rˆ   é    r^   )r^   r^   r1   r2   r3   )r   r   r   r   r   )r   r   r   r   r   g      8@r9   r0   rˆ   ro  r  r1   r†  r3   r„  r   rR   r   rB  r]  rŠ  r$  )rS   r2  )r1   r3   r4   r�  rX   )r   r   r   r   r   r  )r0   r2   r6   rX   r�  )r*  r:  r½   r?  r@  rž  rs   r‰  )rŠ   r   ri  rt  r  r  re   r7  r+  r6  Úmatr   r   r8  r¦  r5  r   r  r¶   r   r   rB  r   r§   rœ   r  rk  r  rÕ  )rj   r_  r  ÚmobsÚexpected_chisqÚ
expected_gr+  Úchisqr  ÚgÚobs1Úexp1r    Úempty3rs   rs   rt   Útest_chisquare_masked_arrays“  sz   "ÿÿÿÿÿ
þ€ÿ
þ€ÿz,TestChisquareMA.test_chisquare_masked_arraysc                 C   s–   t  g d¢¡}t j |¡}d}tjt|d�� t |¡ W d   ƒ n1 s&w   Y  tjt|d�� t ||¡ W d   ƒ d S 1 sDw   Y  d S )Nr7  z8`power_divergence` and `chisquare` support for masked...r–   )	rŠ   rb   rt  r  r  r  ÚDeprecationWarningre   r6  )rj   ró   rt  rA  rs   rs   rt   Útest_deprecation_warningÞ  s   ÿ"ÿz(TestChisquareMA.test_deprecation_warningN)r²   r³   r´   r  r  rF  ry  r{  rs   rs   rs   rt   rn  ‘  s    

Jrn  c                  C   sŽ  t g d¢ƒt g d¢ƒt g d¢ƒt g d¢ƒg} t g d¢ƒt g d¢ƒt g d¢ƒt g d¢ƒg}t g d	¢ƒt g d
¢ƒt g d¢ƒt g d¢ƒg}tt | d | d | d | d ¡dƒ tt |d |d |d |d ¡dƒ tt |d |d |d |d ¡dƒ tttj|d |d ƒ d}tj| Ž }t||ƒ tt | d | d | d | d ¡dƒ tt |d |d |d |d ¡dƒ tttj|d |d ƒ d S )N)gÑ"Ûù~jè?g^ºI+ã?gºI+‡î?gj¼t“ä?gÓMbX9ì?gÁÊ¡E¶óí?çôýÔxé&å?ç-²�ï§â?gÍÌÌÌÌÌè?r½   ç®Gázî?g+‡ÙÎã?g´Èv¾Ÿï?g9´Èv¾Ÿî?)gú~j¼t“è?g¶óýÔxéâ?gßO�—nï?r|  gÑ"Ûù~jì?ç˜nƒÀÊí?gÇK7‰A`å?r}  g7‰A`åÐê?r½   çbX9´Èî?gZd;ßOå?g1¬Zdï?g²�ï§ÆKï?)gyé&1¬è?gáz®Gáâ?g`åÐ"Ûùî?g!°rh‘íä?g'1¬Zì?gZd;ßOí?g°rh‘í|ã?gj¼t“â?gƒÀÊ¡E¶ë?r½   gáz®Gáî?gÙÎ÷Sã¥ã?gŒJê4ï?gƒÀÊ¡Eî?)gð§ÆK7‰é?gh‘í|?5â?g‹lçû©ñî?g /Ý$å?g#Ûù~j¼ì?r  gìQ¸…ëå?ç      ä?g      ì?r½   r€  gœÄ °rhå?g333333ï?ç
×£p=
ï?)r2   r1   r3   r1   r3   r1   r0   r3   r2   r2   r2   r1   )r0   r0   r   r0   r1   r   r0   r1   r0   r   r   r1   )r0   r2   r1   r1   r2   r1   r1   r2   r2   r   r0   r   )r1   r3   r2   r1   r2   r2   r1   r1   r1   r2   r2   r2   )r­   gÍÌÌÌÌÌ#@rA   r#  gš™™™™™$@)g333333@gÍÌÌÌÌÌ@gÍÌÌÌÌÌ@r<   gÍÌÌÌÌÌ@)r&  r)  r>   r¥  çÍÌÌÌÌÌ @)gš™™™™™!@gÍÌÌÌÌÌ!@ç333333 @çffffff
@g333333"@r   r   r0   r1   )g–N§Óét$@g ¥—Bv‘?)g
_ñ_ñ2@g˜5"]i2?)g\�Âõ(\%@g¯¢·+Ô‹?rÜ  )r   r   re   Úfriedmanchisquarer�   rž   r   Úmstats)r  r  r  rè   r‹   rs   rs   rt   Útest_friedmanchisquareè  sN   



ú




ý
	


ý ÿ ÿ ÿ

ÿþÿþrˆ  c                   @   s>   e Zd ZdZ	ddd„Zddd„Zdd	„ Zd
d„ Zdd„ ZdS )Ú
TestKSTestzLTests kstest and ks_1samp agree with K-S various sizes, alternatives, modes.ÚautorV   c           	      C   s8   t j|d||d�}t ||g¡}tt |¡||d� d S ©NrÂ  ©r)  r“  r$  )re   ÚkstestrŠ   r   r   ©	rj   rl   r)  Úexpected_statisticÚexpected_probr“  r�  r1  r/  rs   rs   rt   Ú_testOne"  s   zTestKSTest._testOnec                 C   s@   t j|d||d�}t j|t jj||d�}tt |¡||d� d S r‹  )re   r�  Úks_1samprÂ  Úcdfr   rŠ   r   )rj   rl   r)  r“  r�  r1  Úresult_1samprs   rs   rt   Ú_test_kstest_and_ks1samp(  s
   ÿz#TestKSTest._test_kstest_and_ks1sampc                 C   s,   t  ddd¡}d}t |d¡}t||ƒ d S )Nr^   r   r7   rÜ  rÂ  )rŠ   rÿ  re   r�  r   ©rj   rl   rè   r‹   rs   rs   rt   Útest_namedtuple_attributes.  s   z%TestKSTest.test_namedtuple_attributesc                 C   sl   t  ddd¡}|  |d¡ t  ddd¡}|  |d¡ g d¢}|  |d¡ | j|dd	d
� | j|dd	d
� d S )Nr^   r   r7   r!  éñÿÿÿrŠ  ©
r¸  ç¸…ëQ¸®?g333333ã¿gÃõ(\�ÂÅ?ç…ëQ¸å?gÃõ(\�ÂÅ¿g{®Gáz´¿gHáz®GÑ?g\�Âõ(\ï¿g®Gáz®ï¿r%  r@  ©r“  r#  )rŠ   rÿ  r•  rá  rs   rs   rt   Útest_agree_with_ks_1samp5  s   z#TestKSTest.test_agree_with_ks_1sampc                 C   sx   t j ddt jg}t |tjj¡}tj|tjjdd�}t  t  |¡¡s%J ‚t||ƒ t  	|j
¡r2J ‚t  	|j¡r:J ‚d S )Nr   r   T)Ú_no_deco)rŠ   r’  re   r�  Úcauchyr“  rÕ  rw  r   ry  ræ   rå   )rj   r•  r‹   r\  rs   rs   rt   Útest_pm_inf_gh20386A  s   
zTestKSTest.test_pm_inf_gh20386N©rŠ  rV   )	r²   r³   r´   rÝ   r‘  r•  r—  r�  r   rs   rs   rs   rt   r‰    s    
ÿ
r‰  c                   @   sl   e Zd ZdZ	ddd„Zdd„ Zdd	„ Zd
d„ Zdd„ Ze	j
 dejejg¡e	j
 dg d¢¡dd„ ƒƒZdS )ÚTestKSOneSamplezY
    Tests kstest and ks_samp 1-samples with K-S various sizes, alternatives, modes.
    rŠ  rV   c           	      C   s<   t j|t jj||d�}t ||g¡}tt |¡||d� d S )NrŒ  r$  )re   r’  rÂ  r“  rŠ   r   r   rŽ  rs   rs   rt   r‘  T  s   zTestKSOneSample._testOnec                 C   s0   t  ddd¡}d}t |tjj¡}t||ƒ d S )Nr^   r   r7   rÜ  )rŠ   rÿ  re   r’  rÂ  r“  r   r–  rs   rs   rt   r—  Z  s   z*TestKSOneSample.test_namedtuple_attributesc                 C   s€   t  ddd¡}|  |ddd¡ t  ddd¡}|  |dd	d
¡ g d¢}|  |ddd¡ | j|ddddd� | j|ddddd� d S )Nr^   r   r7   r!  g²|»ÐNÄ?gÎï7.×sî?r˜  rŠ  gî{CTpÜ?g M<b*ä£?r™  gZ­×LÊÒ?g86ùJ4ÇÒ?r%  gŸ+±·‡ÐÂ?r@  rœ  r#  gš…ˆHDþ»?gŽ–¿×rç?©rŠ   rÿ  r‘  rá  rs   rs   rt   Útest_agree_with_ra  s   z!TestKSOneSample.test_agree_with_rc                 C   sJ   t jjdddd�}| j|ddddd	� |  |d
dd¡ |  |ddd¡ d S )Nrý  rJ  é±hÞ:)r;  rM  r`  r!  ghúÑ…Ÿè¿?gøÆÏ7Üå¶?Úasymprœ  r#  gð^hˆü¤?r%  gvÇ!�Ô‰}?g*zº)¬‡ï?)re   rÂ  rQ  r‘  rá  rs   rs   rt   Útest_known_examplesn  s   ÿz#TestKSOneSample.test_known_examplesc                 C   s”   t t ttjddƒ¡ƒ ttdd�� tdddƒ W d   ƒ n1 s#w   Y  t t tdddƒ¡ƒ t g d¢¡}tt|dd	ƒj	t
ttgd
� d S )Nr   Tzn is not integral: 1.5r–   r:   r^   ))r�  r   Tr½   )r�  çš™™™™™ñ?Tr½   )r�  r   Tr”   )r�  gš™™™™™¹¿Tr”   )ro  ç      �?Tr”   )ro  r©  Fr½   )ro  r9   TgbÏÝÿÿï?)ro  r9   Fgiƒ¯õNq>)ro  ç      À?Tgâ‡vÕ(Ö?)ro  r.  TgÂò¨TÖ	ï?)é@  g\�Âõ(\ß?Fr”   )r«  ç      °?Fg¾¸·(¶Ý>)r«  gìQ¸…ë�?Fgß@c“êüï?)r«  ç       ?FgX+Ê³P¶?rÍ  r1   )Údtypes)r   rŠ   ry  r   ri   r�   rž   rb   r   ÚcheckÚintr  Úbool)rj   Údatasetrs   rs   rt   Útest_ks1samp_allpathsv  s   ÿ z%TestKSOneSample.test_ks1samp_allpathsÚksfuncú*alternative, x6val, ref_location, ref_sign))r%  r4   r4   r   )r#  r5   r5   r^   )r!  r4   r4   r   )r!  r5   r5   r^   c           	      C   sb   t  d¡d }||d< tjdd�j}||||d�}t|jddd� |j|ks(J ‚|j|ks/J ‚d S )	NrX   r9   r4   rw  r(  r²  rì   r*  )	rŠ   r   re   r­  r“  r
   ræ   Ústatistic_locationÚstatistic_sign)	rj   r´  r)  Úx6valÚref_locationÚref_signrl   r“  r‹   rs   rs   rt   Útest_location_sign™  s   
z"TestKSOneSample.test_location_signNr¡  )r²   r³   r´   rÝ   r‘  r—  r¤  r§  r³  r  r  r€  re   r�  r’  r»  rs   rs   rs   rt   r¢  O  s    
ÿ#ÿr¢  c                   @   s@  e Zd ZdZ	d3dd„Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zejjdd„ ƒZejjdd„ ƒZdd„ Zdd„ Zejjdd„ ƒZejjdd„ ƒZejjdd „ ƒZd!d"„ Zejjd#d$„ ƒZej d%g d&gfd&gg fg g ff¡d'd(„ ƒZejjd)d*„ ƒZd+d,„ Zej d-ejejg¡ej d.g d/¢¡d0d1„ ƒƒZ d2S )4ÚTestKSTwoSamplesz<Tests 2-samples with K-S various sizes, alternatives, modes.rŠ  c           	      C   s4   t j||||d�}t ||g¡}tt |¡|ƒ d S )Nrœ  )re   Úks_2samprŠ   r   r   )	rj   r  r  r)  r�  r�  r“  r1  r/  rs   rs   rt   r‘  ±  s   zTestKSTwoSamples._testOnec                 C   sˆ   |   dgdgddd¡ |   dgdgddd¡ |   dgdgddd¡ |   dgdgddd¡ |   dgdgddd¡ |   dgdgddd¡ d S )	Nr   r   r!  r½   r%  r9   r#  r”   )r‘  rØ  rs   rs   rt   Ú	testSmall·  s   zTestKSTwoSamples.testSmallc                 C   sœ   t  ddg¡}|d }|d }t  g d¢¡}|  ||ddd¡ |  ||ddd¡ |  ||d	dd¡ |  ||dd
d¡ |  ||dd
d¡ |  ||d	dd¡ d S )Nr½   r  rS  r7  r!  rú   r%  r³  r#  r¶  r2  rµ  r   ©rŠ   r   r‘  ©rj   r™  Údata1pÚdata1mrœ  rs   rs   rt   ÚtestTwoVsThree¿  s   zTestKSTwoSamples.testTwoVsThreec                 C   sœ   t  ddg¡}|d }|d }t  g d¢¡}|  ||ddd¡ |  ||ddd	¡ |  ||d
dd¡ |  ||ddd¡ |  ||ddd¡ |  ||d
dd¡ d S )Nr½   r  rS  rO  r!  r9   gÞÝÝÝÝÝí?r%  gá?r#  r.  çš™™™™™é?r†  r1  rý  r   r¿  rÀ  rs   rs   rt   ÚtestTwoVsFourË  s   zTestKSTwoSamples.testTwoVsFourc                 C   s–   t  ddd¡}|d d }|d d }|  ||ddd¡ |  ||ddd	¡ |  ||d
dd¡ |  ||ddd¡ |  ||ddd¡ |  ||d
dd¡ d S )Nr   rJ  r0   r²  r!  r  g~zÿÿÿÿï?r%  gz³;ê.Bí?r#  r   r½   ç{®Gáz”?gn2IáUÀî?r£  )rj   Úx100Ú	x100_2_p1Ú	x100_2_m1rs   rs   rt   Útest100_100Ø  s   zTestKSTwoSamples.test100_100c                 C   s¤   t  ddd¡}t  ddd¡}|d d }|d d }|  ||ddd¡ |  ||d	dd
¡ |  ||ddd¡ |  ||ddd¡ |  ||d	dd¡ |  ||ddd¡ d S )Nr   rJ  r  r‹  r²  r!  gÿñ¯ÿÊ?g@Âß¿î�?r%  g}nÝï€?r#  r   g¦:[ª³¥Ê?gà]O);’?gÑ«³—);‚?r”   r½   r£  )rj   rÇ  Úx110Ú
x110_20_p1Ú
x110_20_m1rs   rs   rt   Útest100_110ã  s   zTestKSTwoSamples.test100_110c                 C   s  t jdgd dgd  dgd  dgd  td�}|d }t jdgd dgd  dgd  dgd  td�}t jdgd dgd  dgd  d	gd  td�}|  ||d
dd¡ |  ||ddd¡ |  ||ddd¡ |  ||d
dd¡ |  ||ddd¡ |  ||ddd¡ d S )Nr0   r1   r2   r3   r4   r  r   rX   r5   r!  g      Ô?g�¾^dHÛ?r%  gQl6¢ÊyË?r#  r”   r½   gVdEVdEÖ?g(f“„^ˆ·?gÄû·!ƒˆ§?g‘i�iÀ?gè+© Ï–ã?)rŠ   r   r°  r‘  )rj   Úx2233Úx3344Úx2356Úx3467rs   rs   rt   ÚtestRepeatedValuesð  s   222z#TestKSTwoSamples.testRepeatedValuesc                 C   sØ   t  g d¢¡}|  ||d ddd¡ |  ||d ddd¡ |  ||d dd	d¡ |  ||d
 ddd¡ |  ||d
 ddd¡ |  ||d
 dd	d¡ |  ||d
 ddd¡ |  ||d
 dd	d¡ |  ||d
 ddd¡ d S )Nr7  r   r!  rú   r½   r%  r†  r#  r”   r9   r¿  )rj   rœ  rs   rs   rt   ÚtestEqualSizesü  s   zTestKSTwoSamples.testEqualSizesc           	   	   C   sŒ  d\}}d| | d d }t  dd|¡| }t  dd|¡}| j||dd| | ddd	� | j||dd| | dd
d	� | j||dd| | dd
d	� | j||dd| | dd
d	� tƒ �.}d}| t|¡ | j||dd| | ddd	� | j||dd| | ddd	� W d   ƒ n1 sŽw   Y  tjdd��#}t d¡ | j||dd| | ddd	� t	|tdƒ W d   ƒ d S 1 s¿w   Y  d S )N)r9  iX  r½   r0   r   rš  r!  g     @Ÿ@rŠ  rœ  r¦  r%  g½­2JEï?r#  g     @@gsW\ncæï?ú)ks_2samp: Exact calculation unsuccessful.r@  Trp  rq  ©
rŠ   rÿ  r‘  r   r§   rœ   rs  rt  ru  rG  ©	rj   Ún1Ún2Údeltarl   rm   r    rA  rÞ  rs   rs   rt   ÚtestMiddlingBoth  sB   ÿÿÿÿÿÿû
ÿ"üz!TestKSTwoSamples.testMiddlingBothc           	   	   C   sŒ  d\}}d| | d d }t  dd|¡| }t  dd|¡}| j||dd| | ddd	� | j||dd| | dd
d	� | j||dd| | ddd	� | j||dd| | ddd	� tƒ �.}d}| t|¡ | j||dd| | ddd	� | j||dd| | ddd	� W d   ƒ n1 sŽw   Y  tjdd��#}t d¡ | j||dd| | ddd	� t	|tdƒ W d   ƒ d S 1 s¿w   Y  d S )N)rK  éL  r½   r0   r   rš  r!  g     È¹@r¦  rœ  rŠ  r%  g«¹�“Z¢î?r#  g     @�@g @¾J—ñï?rÕ  r@  Trp  rq  rÖ  r×  rs   rs   rt   ÚtestMediumBoth$  sB   ÿÿÿÿÿÿû
ÿ"üzTestKSTwoSamples.testMediumBothc                 C   sŠ   d\}}|d }d| | d d }t  dd|¡| }t  dd|¡}|  ||dd	| d
¡ |  ||dd| d¡ |  ||dd	| d¡ d S )N)é'  r  r„  r½   r0   r   rš  rJ  r!  g    `ýê@g      ó<r%  g     ˆ�@gé”ò¼‰·ï?r#  gi·ÑÂmb£:r£  )rj   rØ  rÙ  ÚlcmrÚ  rl   rm   rs   rs   rt   Ú	testLargeA  s   zTestKSTwoSamples.testLargec                 C   s\   t j d¡ t jjdd�}t jjdd�d }| j||dddd	d
� | j||ddddd
� d S )Né@â i¸  rL  i¹  r:   r!  g�¸Cåæè¼?ç      é<r¦  rœ  r@  ©rŠ   rV  rÜ  rX  r‘  rÞ  rs   rs   rt   Útest_gh11184L  s   ÿ
ÿzTestKSTwoSamples.test_gh11184c                 C   sˆ   t j d¡ t jjdd�}t jjdd�d }| j||dddd	d
� | j||ddddd
� | j||dddd	d
� | j||dddd	d
� d S )Nrá  rÞ  rL  i'  r:   r!  g 	_Êr!»?gADà®ß5r¦  rœ  râ  r@  r%  g×œN#ýyƒ7r#  gvqíãw¹¸?rã  rÞ  rs   rs   rt   Útest_gh11184_biggerV  s   ÿÿÿ
ÿz$TestKSTwoSamples.test_gh11184_biggerc                 C   s„   t j d¡ tdddƒD ]3}t jj|d�}t jj|d dd�}tj||dd	�j}tj||d
d	�j}t|d| ƒ t|d| ƒ qd S )Nrá  rK  ià.  rL  rX   r9   ©rM  r;  r@  rœ  r¦  r1   )	rŠ   rV  rÜ  rj  rX  re   r½  rå   r   )rj   rl   Úvals1Úvals2r@  r¦  rs   rs   rt   Útest_gh12999e  s   ùzTestKSTwoSamples.test_gh12999c           	   	   C   s.  d\}}|d }d| | d d }t  dd|¡| }t  dd|¡}| j||dd| d	d
d� | j||dd| ddd� | j||dd| d	dd� |  ||dd| d¡ |  ||dd| d¡ tƒ �+}d}| t|¡ | j||dd| ddd� | j||dd| ddd� W d   ƒ d S 1 s�w   Y  d S )N)rÞ  iø*  r„  r½   r0   r   rš  r!  g     ˜�@gkHYøï?r¦  rœ  gLÆÉ”.øï?r@  rŠ  r%  g.LbG«2è?r#  r‡   g¶r?ÖŽþï?rÕ  )rŠ   rÿ  r‘  r   r§   rœ   )	rj   rØ  rÙ  rß  rÚ  rl   rm   r    rA  rs   rs   rt   ÚtestLargeBothq  s4   ÿÿÿÿÿ"ûzTestKSTwoSamples.testLargeBothc                 C   s$   d}t  ddgdg¡}t||ƒ d S )NrÜ  r   r0   r1   )re   r½  r   ©rj   rè   r‹   rs   rs   rt   ÚtestNamedAttributes‰  s   z$TestKSTwoSamples.testNamedAttributesc                 C   s‚   ddl m}m} |ddddƒ |ddddƒ tjdd�� tt|dd	ddƒ tt|d
dddƒ W d   ƒ d S 1 s:w   Y  d S )Nr   )Ú_count_paths_outside_methodÚ!_compute_outer_prob_inside_methodr   rK  ié  r˜   r@  rÜ  iK  rH  )Úscipy.stats._stats_pyrí  rî  rŠ   rB  r�   ÚFloatingPointError)rj   rí  rî  rs   rs   rt   Útest_some_code_paths�  s   ÿÿ"ýz%TestKSTwoSamples.test_some_code_pathsr>  r   c                 C   óZ   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   re   r½  r   ræ   rŠ   ri   rå   ©rj   r>  r‹   rs   rs   rt   Útest_argument_checking   ó
   
"ýz'TestKSTwoSamples.test_argument_checkingc                 C   sd   t j d¡ d}tjj|ddd�}|d }tj||ddd� tj||d	dd� tj||d
dd� dS )zEnsure gh-12218 is fixed.éNa¼ i    r”   r   ró  r%  r¦  rŒ  r#  r!  N)rŠ   rV  rÜ  re   r­  rQ  r½  )rj   rØ  Úrvs1Úrvs2rs   rs   rt   Útest_gh12218¨  s   zTestKSTwoSamples.test_gh12218c                 C   s‚   t jjdd�}|jdd�d }|jdd�}d}tjt|d�� tj||d	d
�}t|j	ddd� W d   ƒ d S 1 s:w   Y  d S )Ni­{f©rÜ  iq  rL  r9   iq  z(ks_2samp: Exact calculation unsuccessfulr–   r#  r(  r   rÍ  rí   )
rŠ   rV  ÚRandomStater  r  rœ   re   r½  r
   rå   )rj   rO  r™  rœ  rA  r‹   rs   rs   rt   Útest_warnings_gh_14019µ  s   "þz'TestKSTwoSamples.test_warnings_gh_14019r´  rµ  ))r%  çš™™™™™@rý  r   )r#  çffffff@r¬   r^   )r!  rý  rý  r   )r!  rþ  r¬   r^   c           	      C   s^   t jdt jd�}| ¡ }||d< tj|||d�}|jdksJ ‚|j|ks&J ‚|j|ks-J ‚d S )NrX   r  r4   r(  r²  )	rŠ   r   r¶   rÃ  re   r½  ræ   r¶  r·  )	rj   r´  r)  r¸  r¹  rº  rl   rm   r‹   rs   rs   rt   r»  Á  s   
z#TestKSTwoSamples.test_location_signN)rŠ  )!r²   r³   r´   rÝ   r‘  r¾  rÃ  rÅ  rÊ  rÎ  rÓ  rÔ  r  r  rÑ  rÛ  rÝ  rà  rä  rÒ  rå  ré  rê  rì  rñ  r€  rô  rù  rü  re   r�  r½  r»  rs   rs   rs   rt   r¼  ®  sH    
ÿ






"

ÿr¼  c               	   C   sp  d\} }| |  g||gf}t  ddd¡}t  ddd¡}t  t  ddd¡t  ddd¡g¡}t  t  ddd¡t  ddd¡g¡}tj||dd�\}}t||g| |fƒ tj|j|jdd�\}}t||g|ƒ tj||dd�\}}t||g|ƒ tƒ �-}	t jddd	�� |	 	t
d
¡ t dd¡\}}W d   ƒ n1 s˜w   Y  W d   ƒ n1 s§w   Y  tt  |¡ƒ tt  |¡ƒ d}
tj||dd�}t||
ƒ t  |||g¡}t  |||g¡}tj||dd�\}}tt  |¡| ƒ tt  |¡|ƒ t|jdƒ tjt  |dd¡t  |dd¡dd�\}}tt  |¡| ƒ tt  |¡|ƒ t|jdƒ tttj||dd� tj||ddd�\}}t|d|d  ƒ t|| ƒ tj||ddd�\}}t||d ƒ t|| ƒ t j d¡}tjjddd|d�}t j|d< tjjddd|d�tjjdd|d� }t j|d< t jdd�� tt ||¡t jt jfƒ W d   ƒ n	1 �s©w   Y  ttj||dd �d!ƒ tttj||d"d � tttj||d#d � tjt
d$d%�� t g d&¢g d'¢¡\}}W d   ƒ n	1 �sìw   Y  tt  |¡|ft jdfƒ t jdd��9 tt g d&¢g d&¢¡t jt jfƒ t  dt jgd(dgg¡}tt |t  d)¡¡dt jgdt jgfƒ W d   ƒ n	1 �sAw   Y  t   d*¡}tttj| !d+¡| !d,¡ƒ d-d.„ }t  "|¡}t j|d d …d/d0…f< t j|d d …d1d2…f< tjt#t$d%�� tj||ddd �\} }W d   ƒ n	1 �s–w   Y  tjt#t$d%�� tj||dddd3�\}}W d   ƒ n	1 �sºw   Y  t|| d4d5� t jdd�� t||| |dƒd4d5� W d   ƒ n	1 �sãw   Y  tjt#t$d%�� tj||dddd3�\}}W d   ƒ n	1 �sw   Y  t|| d4d5� t jdd�� t||| |dƒd4d5� W d   ƒ d S 1 �s1w   Y  d S )6N)gÆ”uâÿé?gÈµ·IÈÚ?r   rJ  r¬  gžï§ÆKÿX@r   rR   r?  rÙ  rÛ  r«   rë   rÜ  rÁ  r0   r[  rÆ  r(  r#  r}  r%  rö  r3   rX   éõ  rì  r9  rý  )r<  rM  r`  r@  r‘   r’   )ghømÇ#1Ð?gr¦yÌ§œé?r˜   rš   r§  r–   r/  rˆ  r^   r\  rñ  )r6   r1   ©r0   r1   r2   c                 S   ó4   | dk r|dks| dkr|dkr|d S d|d  S ©Nr   r#  r%  r0   r   rs   ©rè  r  Úaltrs   rs   rt   Úconvert.  ó    ztest_ttest_rel.<locals>.convertr‹  rê  rŠ  rŒ  rd  rÍ  r*  )%rŠ   rÿ  r   re   Ú	ttest_relr   ri  r   rB  r§   rœ   r   ry  r   r]  Úabsr   rk  r^  r�   rž   r
   rV  rû  rÂ  rQ  ri   r   r  r  r’  rÃ  r   rg   Ú	vectorizer   r   )ÚtrrS  Útprr÷  rø  Úrvs1_2DÚrvs2_2Drè  r  r    rè   r‹   Úrvs1_3DÚrvs2_3DrO  rl   rm   Úananr  Ú	converterrs   rs   rt   Útest_ttest_relÔ  sÈ   ""ÿý€ 

þ


ÿ
ÿÿÿ"ÿû
	ÿ
ÿ
ÿÿÿ
ÿÿ$ÿr  c                  C   s˜   t jdddg} g d¢}tj| |dd�}tj|| dd�}t|j|j dd� t|j|jdd� t |d	d … | d	d … ¡}t||dd� t|d
dd� d S )Nr  rë   r«   ©r½   r  r½   r  r‘   r’   rì   rí   r   )r#  g°rh‘í|Ç?ç-Cëâ6?)rŠ   ri   re   r  r
   ræ   rå   ©rl   rm   r„  r…  Úr3rs   rs   rt   Útest_ttest_rel_nan_2nd_argI  s   r  c                  C   sb   t jttd�� t g g ¡} W d   ƒ n1 sw   Y  t| tjjƒs&J ‚t	| t
jt
jfƒ d S r’  )r  r  r   r   re   r  r  Ú	_stats_pyÚTtestResultr   rŠ   ri   )r1  rs   rs   rt   Ú#test_ttest_rel_empty_1d_returns_nan^  s
   ÿr  zb, expected_shape)r   r3   r   rt  ©r   r   r   )r1   r   c                 C   sŽ   t  d¡}t j ¡ �}| tt¡ tj|| dd�}W d   ƒ n1 s#w   Y  t	|tj
jƒs1J ‚t j|t jd�}t|j|ƒ t|j|ƒ d S ©N)r1   r   r   r^   rR   r7  )rŠ   rÇ  r“  r   r§   r   r   re   r  r  r  r  r   ri   r   ræ   rå   )rû   Úexpected_shaperó   r    r1  Úexpected_valuers   rs   rt   Útest_ttest_rel_axis_size_zerog  s   
ýr  c                  C   sV   t  d¡} t  d¡}tj| |dd�}t|tjjƒsJ ‚t|jj	dƒ t|j
j	dƒ d S ©N)r   r6   r   ©r3   r6   r   r   rR   ©r3   r   )rŠ   rÇ  re   r  r  r  r  r   ræ   rk  rå   )ró   rû   r1  rs   rs   rt   Ú test_ttest_rel_nonaxis_size_zeroy  s   

r#  r)  r»  c                 C   sŒ   t j d¡}d}|j|ddd�}|j|ddd�}ddgdt jgt j d	gd
œ}tj||| d�}|jdd�}t|||  ƒ t	|j
|d ƒ d S )Nl   C67l:  rX   r:   r0   ró  gÜZÜ?Y˜þ¿g¦ši{aœÙ?g8Èÿ ëù¿gà€ºÿC•ª?rô  r(  rö  r÷  r   )rŠ   rV  rW  rX  r’  re   r  r  r
   r   rù  )r)  rO  rú  rl   rm   r\  r‹   r2  rs   rs   rt   Útest_ttest_rel_ci_1d†  s   	
þr$  ztest_fun, argsrX   c                 C   sL   | |Ž }d}t jt|d�� |jdd� W d   ƒ d S 1 sw   Y  d S )Nrû  r–   rX   r÷  )r  r   rž   r  )Útest_funr  r‹   rA  rs   rs   rt   Útest_ttest_ci_ivž  s
   "ÿr&  r‰  c                   s8   ˆ d u r	t | |ƒnˆ ‰ d‡ fdd„	}|| |ƒ|||ƒ S )Nr   c                    s<   ˆ   | ¡} ˆ j| |d�}ˆ j| |dd�}| j| }|||fS )NrR   r   r¾  )rb   rh   rƒ   rk  )rl   rS   Úmurƒ   Únobsr‰  rs   rt   Ú_stats¬  s
   


z_desc_stats.<locals>._statsrX  )r(   )r  r  rS   rk   r)  rs   r‰  rt   Ú_desc_stats©  s   r*  c                 C   sv  |   d¡}|   d¡}|   || g¡}|   ||g¡}|  ddd¡}|  ddd¡}|  ||g¡}|  ||g¡}tj||dd�}	|	\}
}t|
|ƒ t||ƒ tjt||ƒŽ }	|	\}
}t|
|ƒ t||ƒ tj|j|jdd�}	t|	j	|ƒ t|	j
|ƒ tjt|j|jƒŽ }	t|	j	|ƒ t|	j
|ƒ tj||dd�}	t|	j	|ƒ t|	j
|ƒ tjt||dd�Ž }	t|	j	|ƒ t|	j
|ƒ d	}tjt|d
�� tj||dd� W d   ƒ n1 sÓw   Y  t|j|jƒ}tjt|d
�� tj|ddiŽ W d   ƒ n1 sùw   Y  tj||dd�\}
}t|d|d  ƒ t|
|ƒ tj||dd�\}
}t||d ƒ t|
|ƒ tj|j|jddd�}t|j|jƒ}tj|ddiŽ}t|j	|j	ƒ t|j
|j
ƒ tj|j|jddd�}t|j|jƒ}tj|ddiŽ}t|j	|j	ƒ t|j
|j
ƒ |   | j¡}|  |  |jd ¡dk||¡}tj||dd�}	t|	j	|ƒ t|	j
|ƒ tjt||ƒŽ }	t|	j	|ƒ t|	j
|ƒ d S )Nç	ÌùrÜuñ?g8Mè�Ñ±Ñ?r3   éi   rJ  r   r   rR   rï  r–   rÆ  r(  r)  r#  r0   r%  r}  )rb   rÿ  rò  re   Ú	ttest_indr.   Úttest_ind_from_statsr*  ri  ræ   rå   r  r   rž   ri   rÐ  r   rk  r/   )rk   r
  rS  Útr_2DÚpr_2Dr÷  rø  r  r  r‹   rè  r  rA  r  r  r]  ÚNaNrs   rs   rt   Útest_ttest_ind¶  sx   





ÿÿ

r2  c                  C   sä  t  ddd¡} t  ddd¡}t  | |g¡}t  || g¡}t  |||g¡}t  |||g¡}t j d¡}tjjddd|d�}t j	|d	< tjjddd	|d�}t j
d
d�� tt ||¡t j	t j	fƒ W d   ƒ n1 siw   Y  ttj||dd�dƒ tttj||dd� tttj||dd� tjtdd�� t g d¢g d¢¡\}	}
W d   ƒ n1 s«w   Y  tt  |	¡|
ft jdfƒ t j
d
d��9 tt g d¢g d¢¡t j	t j	fƒ t  dt j	gddgg¡}tt |t  d¡¡dt j	gdt j	gfƒ W d   ƒ n1 sÿw   Y  t j	|d d …d d …dd…f< t j	|d d …d d …dd…f< dd„ }t  |¡}tj||ddd�\}}tj||dddd�\}	}
t|	|d d!� t|
|||dƒd d!� tj||ddd"d�\}	}
t|	|d d!� t|
|||d"ƒd d!� d S )#Nr3   r,  rJ  r   rö  rX   rÿ  rì  r9  r?  r@  r‘   r’   )gÔò¨uÍ·Ï?g*Ž�Ø,½é?r˜   rš   r§  r–   r/  rˆ  r   r^   r\  rŠ  r4   rZ   c                 S   r  r  rs   r  rs   rs   rt   r  5  r  z*test_ttest_ind_nan_policy.<locals>.convertrï  r#  )rS   r“   r)  rÍ  r*  r%  )rŠ   rÿ  r   r]  rV  rû  re   rÂ  rQ  ri   rB  r   r-  r   r�   rž   r  r  rœ   r   r  r’  rÃ  r	  r
   )r÷  rø  r  r  r  r  rO  rl   rm   rè  r  r  r  r  r
  rS  rs   rs   rt   Útest_ttest_ind_nan_policy  sX   
ÿÿÿ"ÿû

ÿ
ÿr3  c               	   C   sŽ   t ƒ �,} tjdd�� |  td¡ t dd¡\}}W d   ƒ n1 s#w   Y  W d   ƒ n1 s2w   Y  t |¡s>J ‚t |¡sEJ ‚d S )Nr?  r@  rÛ  r«   rë   )r   rŠ   rB  r§   rœ   re   r-  ry  )r    rè  r  rs   rs   rt   Útest_ttest_ind_scalarH  s   þ€ r4  z&ignore:Arguments...:DeprecationWarningc                   @   sº  e Zd ZdZej d¡ e e de d ¡ej de d ¡f¡Z	e e ed ¡d ej ed ¡f¡Z
e d¡Ze d¡d ZddgZddgZej d¡ ejjd	dd
d� dd	¡jZejjdddd�ZddgZddgZg d¢Ze	e
ddiefe	je
jddiefe	ddd…f e
ddd…f ddied fe	ddd…f  ¡ e
ddd…f  ¡ ddied fe	e
dddœefe	e
ej d¡ddœefeeddidfeedddœefeei dfe	e
ej d¡ddœefg
Zej de¡dd„ ƒZ dd„ Z!dd„ Z"d d!„ Z#d"d#„ Z$ej %¡ d$d%„ ƒZ&d&d'„ Z'd(d)„ Z(d*d+„ Z)ej d,g d-¢¡ej d.d/d0g¡d1d2„ ƒƒZ*ej d,g d-¢¡ej d.d/d0g¡d3d4„ ƒƒZ+d5d6„ Z,e-ejj.dd7d8�ej /d9¡d:d;„ ƒƒƒZ0dS )<ÚTest_ttest_ind_permutationsr‹  r   r1   r2   rJ  rX   r   r0   r3   r9  r:  r6   gœî£'^P?gCêŒq¤å?g$ûšRµƒå?)g=Bõ™¶Æï?g³¤îå?goÅœã–âê?g‡pº�î?gœî£'^Ð?rS   N)r`  rS   Ú	equal_varTr^   )rS   r`  rú   za,b,update,p_dc                 C   sv   d ddœ}d ddddœ}|  |¡ |  |¡ tj||fi |¤Ž\}}tj||fi |¤Ž\}	}
t||	dƒ t|
|ƒ d S )NF©rS   r6  rK  r   )rS   r6  Úpermutationsr`  r3   )Úupdatere   r-  r   )rj   ró   rû   r9  Úp_dÚ	options_aÚ	options_pÚstat_arÕ  Ústat_prå   rs   rs   rt   Útest_ttest_ind_permutations{  s   
ÿ

z7Test_ttest_ind_permutations.test_ttest_ind_permutationsc                 C   s   t j d¡ d}t j d|d¡}t j d|d¡}dddœ}|jdd� tj||fi |¤Ž}tj||fi |¤Ž}|jd	d� tj||fi |¤Ž}tj||fi |¤Ž}|jd
d� tj||fi |¤Ž}	tj||fi |¤Ž}
t|j|jƒ t|j|	jƒ t|j|j ƒ t|j|j ƒ t|	j|
j ƒ t|	j	|
j	ƒ t|j	|j	ƒ t|j	|j	ƒ |j	dk}t|j	| |j	|  |	j	| ƒ t|j	|  |j	|   |	j	|  ƒ d S )Nr   r1   r0   r   rK  )rS   r8  r%  r(  r#  r!  r9   ©
rŠ   rV  rÜ  rå  r9  re   r-  r   ræ   rå   )rj   ÚNró   rû   r<  Úres_g_abÚres_g_baÚres_l_abÚres_l_baÚres_2_abÚres_2_bar  rs   rs   rt   Ú test_ttest_ind_exact_alternativeˆ  s:   

ÿ
ÿz<Test_ttest_ind_permutations.test_ttest_ind_exact_alternativec                 C   sš   t j d¡ d}t j |¡}t j |¡}t ||¡}tj||dd�}tj||dd�}tj||t jd�}|j|jks;J ‚|j|jksCJ ‚|j|jksKJ ‚d S )Nr   r1   rK  ©r8  )rŠ   rV  rÜ  rå  re   r-  r’  rå   )rj   rA  ró   rû   r­  r  r]  r.  rs   rs   rt   Útest_ttest_ind_exact_selection²  s   z:Test_ttest_ind_permutations.test_ttest_ind_exact_selectionc           
      C   s’   t j d¡ t j d¡}t j d¡}t  ||f¡}t|ƒt|ƒ}}d}t|||dƒ\}}}tt|ƒƒ}	|	t|| |ƒks?J ‚t|ƒ|	ksGJ ‚d S )Nr   r1   r2   r)  T)	rŠ   rV  rÜ  rå  rv  r×  r   Úsetr   )
rj   ró   rû   rª  ÚnaÚnbr8  Út_statrÕ  Ún_uniquers   rs   rt   Ú!test_ttest_ind_exact_distributionÀ  s   
ÿz=Test_ttest_ind_permutations.test_ttest_ind_exact_distributionc           	      C   s  t j d¡ d}t j dd|¡}t j d|¡}ddddœ}|jdd	� tj||fi |¤Ž}tj||fi |¤Ž}|jd
d	� tj||fi |¤Ž}tj||fi |¤Ž}t|j|jƒ t|j|j ƒ t|j|j ƒ t|j	|j	 dd|d d   ƒ t|j	|j	 dd|d d   ƒ d S )Nr   ré  r0   r1   r^   rK  )rS   r8  r`  r%  r(  r#  r   r8  r@  )	rj   rA  ró   rû   r<  rB  rC  rD  rE  rs   rs   rt   Ú#test_ttest_ind_randperm_alternativeÓ  s(   ÿÿz?Test_ttest_ind_permutations.test_ttest_ind_randperm_alternativec           	      C   sN  t j d¡ d}t j |d¡}t j |d¡}dddœ}|jdd� tj||fi |¤Ž}|jdd� tj||fi |¤Ž}|jd	d� tj||fi |¤Ž}t|j|j d
d
|d d
   ƒ |jdk}t	d|j|  |j| dd� t	dd
|j|    |j|  dd� t	d|j|   |j|  dd� t	dd
|j|   |j| dd� d S )Nr   ré  r2   r…  ©r8  r`  r%  r(  r#  r!  r   r8  r9   r0   rÆ  rí   )
rŠ   rV  rÜ  rå  r9  re   r-  r   rå   r
   )	rj   rA  ró   rû   r<  rB  rD  rF  r  rs   rs   rt   Ú$test_ttest_ind_randperm_alternative2ð  s6   
ÿ

ÿÿÿ

ÿz@Test_ttest_ind_permutations.test_ttest_ind_randperm_alternative2c           	      C   sÞ  t j d¡ d}t j |d¡}t j |d¡}t j|d< t j|d< t j|d< t j|d< dddœ}|jd	d
� ttdd�� tj	||fi |¤Ž}W d   ƒ n1 sPw   Y  t
ƒ ��}| td¡ |jdd
� tj	||fi |¤Ž}t  |¡jdd�t  |¡jdd�B }tj	|d d …| f |d d …| f fi |¤Ž}t|j| t jƒ t|j| t jƒ t|j|  |jƒ t|j|  |jƒ tj	| ¡ | ¡ fi |¤Ž}t  |j¡sÕJ ‚t  |j¡sÝJ ‚W d   ƒ d S 1 sèw   Y  d S )Nr   ré  r3   ©r3   r   )r6   r0   )r7   r1   rK  rR  r˜   r’   r•   r–   r�   rî  rR   )rŠ   rV  rÜ  rå  ri   r9  r�   rž   re   r-  r   r›   rœ   ry  rx  r   rå   ræ   r
   rp  )	rj   rA  ró   rû   r<  r‹   r    r  r]  rs   rs   rt   Ú$test_ttest_ind_permutation_nanpolicy  s6   




ÿ$0"ïz@Test_ttest_ind_permutations.test_ttest_ind_permutation_nanpolicyc                 C   sÊ   t tdd�� tj| j| jdd� W d   ƒ n1 sw   Y  t tdd�� tj| j| jdd� W d   ƒ n1 s;w   Y  t tdd�� tj| j| jdddd	� W d   ƒ d S 1 s^w   Y  d S )
NzPermutations must ber–   r_   rI  r:   z'hello' cannot be usedr   Úhello)r8  r`  rS   )r�   rž   re   r-  ri  Úb2ró   rû   rØ  rs   rs   rt   Ú'test_ttest_ind_permutation_check_inputs6  s   ÿÿÿ"ÿzCTest_ttest_ind_permutations.test_ttest_ind_permutation_check_inputsc                 C   sN   d}t j |d¡}t j |d¡}tj||dd�j}td|vƒ d|vs%J ‚d S )NrX   r‹  r   rI  r”   )rŠ   rV  rå  re   r-  rå   Úprint)rj   rA  ró   rû   Úp_valuesrs   rs   rt   Ú)test_ttest_ind_permutation_check_p_values?  s   zETest_ttest_ind_permutations.test_ttest_ind_permutation_check_p_valuesr)  rC  rk  )rZ   )r0   rZ   c                 C   sè   t j d¡}|j|d�}|jdd�}tdd�}t j d¡}tjdd|i|¤Ž}tj||d||d	�}d
d„ }	t j d¡}tj||f|	fd||dœ|¤Ž}
t|j	|
j	ƒ t|j
|
j
ƒ tj||d|d�}
t|j	|
j	ƒ t|j
|
j
dd� d S )Nì   ÅNvf_aB rL  r[   éç  ©rË  ì   ÅN\Sju	 rO  r^   ©rS   r)  r?  c                 S   ó   t j| ||d�jS ©NrR   ©re   r-  ræ   ©rl   rm   rS   rs   rs   rt   ræ   W  ó    zFTest_ttest_ind_permutations.test_permutation_method.<locals>.statistic)rS   rO  r)  r}  r  r*  rs   )rŠ   rV  rW  rÇ  re   rY  r-  Úpermutation_testr   ræ   rå   r
   )rj   r)  rk  rO  rl   rm   r  r?  r‹   ræ   r\  rs   rs   rt   Útest_permutation_methodH  s&   
ÿÿz3Test_ttest_ind_permutations.test_permutation_methodc                 C   sD  t j d¡}|j|d�}|jdd�}tdd�}dd„ }t j d¡}|j|jg}tj||ff||d	|d
œ|¤Ž}	t j d¡}|j|jg}tjdd|i|¤Ž}
tj||d	||
d�}t	|j
|	j
ƒ t	|j|	jƒ tjdddi|¤Ž}
tj||d	||
d�}t	|j
|	j
ƒ t	|j|	jƒ tj||d	|d�}	t	|j
|	j
ƒ t|j|	jdd� d S )Nr\  rL  r[   r]  r^  c                 S   ra  rb  rc  rd  rs   rs   rt   ræ   n  re  zFTest_ttest_ind_permutations.test_monte_carlo_method.<locals>.statisticr_  r^   )rQ  ræ   rS   r)  rQ  r`  rO  r}  rš  r*  rs   )rŠ   rV  rW  rÇ  r  re   Úmonte_carlo_testrZ  r-  r   ræ   rå   r
   )rj   r)  rk  rO  rl   rm   r  ræ   rQ  r\  r?  r‹   rs   rs   rt   Útest_monte_carlo_methodd  s2   
ÿÿz3Test_ttest_ind_permutations.test_monte_carlo_methodc                 C   sP   d}t jt|d�� tjg d¢g d¢dd� W d   ƒ d S 1 s!w   Y  d S )NzC`method` must be an instance of `PermutationMethod`, an instance...r–   r:  rQ  Ú	migratoryr>  )r  r   rž   re   r-  rª  rs   rs   rt   Ú test_resampling_input_validation‡  ó   "ÿz<Test_ttest_ind_permutations.test_resampling_input_validationrÕ  rÖ  rG   c                 C   sò   |  | j¡|  | j¡}}d}t|ƒrtj||dd� ntjt|d�� tj||dd� W d   ƒ n1 s6w   Y  d}t	j
 d¡}tj|d�}t|ƒrWtj|||d� d S tjt|d�� tj|||d� W d   ƒ d S 1 srw   Y  d S )	Nz;Use of `permutations` is compatible only with NumPy arrays.rX   rI  r–   z?Use of resampling methods is compatible only with NumPy arrays.l   ¼/gGªyÓ rN  r>  )rb   ri  rW  r*   re   r-  r  r   rí  rŠ   rV  rW  rY  )rj   rk   ri  rW  rA  rO  r?  rs   rs   rt   Ú%test_permutation_not_implement_for_xpŒ  s   ÿ"ÿzATest_ttest_ind_permutations.test_permutation_not_implement_for_xp)1r²   r³   r´   rA  rŠ   rV  rÜ  r  r   ró   rû   ri  rW  rj  Úb3re   rÂ  rQ  rg   ri  r÷  rø  r:  Úp_d_genÚp_d_bigrd   rû  rW  Úparamsr  r  r€  r?  rH  rJ  rP  rQ  rÑ  rS  rU  rX  r[  rg  ri  rk  r&   rG   r™  rm  rs   rs   rs   rt   r5  Q  sl    ,(

ÿ
ÿ*2
õ
*
!$		!ÿ
r5  c                   @   sž   e Zd Zej ¡ ejjddddœddii gg d¢d�ejjd	d
dgd	dgd�dd„ ƒƒƒZejjddddœddii gg d¢d�ej dddg¡dd„ ƒƒZdS )ÚTest_ttest_ind_commonÚkwdsrš  r   rR  Útrimrý  )r8  rt  Úbasic)Úidsr6  TFÚunequal_varc                 C   s´  t j d¡ t j dddddd¡}t j ddddd¡}tj||fd	d
i|¤Ž}d\}}}||d d …|d d …dd d …f }	|d d …dd d …|d d …f }
tj|	|
fd	di|¤Ž}t|j|d d …||d d …f |jƒ t|j|d d …||d d …f |jƒ t  	t  
|d¡d
d¡}t  	t  
|d¡d
d¡}|jd d… }t  |¡}t  |¡}tdd„ |D ƒŽ D ] }|| }|| }tj||fd	di|¤Ž}|j||< |j||< q«t||jƒ t||jƒ d S )Nr   r3   r2   r5   r   r4   r6   r0   rS   r_   )r0   r1   r   r#  ©r   r   r   r   r0   r   r^   ©r3   r   r2   r   r   r   c                 s   ó   � | ]}t |ƒV  qd S rð  rõ  rñ  rs   rs   rt   Ú	<genexpr>Ç  ó   € z=Test_ttest_ind_common.test_ttest_many_dims.<locals>.<genexpr>)rŠ   rV  rÜ  rå  re   r-  r   ræ   rå   r^  Útilerk  rÃ  r   r
   )rj   rs  r6  ró   rû   r‹   rl  ró  rç  ri  rW  r]  rl   rm   rk  Ú
statisticsÚpvaluesÚindicesÚxiÚyir.  rs   rs   rt   Útest_ttest_many_dims¨  s6   
 ÿÿ


z*Test_ttest_ind_common.test_ttest_many_dims)rt  r8  ru  rS   r^   c           
   	   C   s  t jjddd� d¡}t jjddd� d¡}t j|d d d< t j|d d d< t  t j|| |d	�¡}tƒ �6}t jd
d��  | 	t
d¡ | 	t
d¡ tj||fd|i|¤Ž}W d   ƒ n1 saw   Y  W d   ƒ n1 spw   Y  t  |j¡}t||ƒ t  |j¡}	t|	|ƒ d S )NrX   )r3   r1   rX   rL  r  r   r0   r1   r4   rR   r?  r@  z'invalid value encountered in less_equalr§  rS   )rŠ   rV  Úrandintr,  ri   ry  rÆ  r   rB  r§   rœ   re   r-  rå   r   ræ   )
rj   rs  rS   ró   rû   r/  r    r‹   Úp_nansÚstatistic_nansrs   rs   rt   Útest_nans_on_axisÑ  s$   ÿü€ 
z'Test_ttest_ind_common.test_nans_on_axisN)	r²   r³   r´   r  r  rÒ  r€  rƒ  r‡  rs   rs   rs   rt   rr  ¤  s$    ÿþÿ#ÿþrr  c                	   @   sú   e Zd Zg d¢g d¢dddgg d¢g d¢dddgg d¢g d¢d	d
dgg d¢g d¢dddgg d¢g d¢dddggZej de¡dd„ ƒZdd„ Zdd„ Z	ej dd¡dd„ ƒZ
dd „ Zeejjd!d"d#�ej d$¡d%d&„ ƒƒƒZej d'g d(¢¡d)d*„ ƒZd+S ),ÚTest_ttest_trimr:  ©r¨  r$  gÍÌÌÌÌÌ@gú9‚(á?gøe¡Ä÷å¿rý  )r  g33333`@rZ   g33333ó^@gö(\�ÂP@rN  gfffffÚ‡@g—BŒM)u„?g¯îÌ]@gyàþ¶déº?g	ÿs5v¨@g{®GázÔ?©r#  r#  r¨  rë   çffffffþ?rë   r(  r(  rµ  r‹  r‹  ©r?   gš™™™™™@r„  r<   r9   r(  g333333@r&  r‡  gÍÌÌÌÌÌ@r%  gn4aÆ‚•g?ç‡ý^üÀ)gü,¿¡
ë¿gÎmãËÁ?gãÙi”ÃI@gE|Š�x!ä¿gí¯vwQá?gl­õfP¤ò¿g‘®_Ñ)Ÿ¶¿g¯XG~’õò?g=šn¡×@g8$œ³‘mù¿g({ðìºú¿g]ç:èmÇÓ?gùYvÒû Àgb‘²©©×?gb¶	œªð¿gSTÃŸ}â¿g9¾’yí¿g.äÏ¿v“ñ?g¹Þº‹ÅiÚ?g	'XÒ@â÷¿)gá>²_\ô?g hO§ò?gau?Ú@g×Œg+ŠÒó?gÂ:éØœ^î¿g†‡z54ñ¿gŠ7–f©ñ?g±áDO%î@g›#†xG@gÖ\ÉéF³Ú?gÙûž¢4Eð?g÷’ÿnfè¿gÝ>P"…Û¿gƒ�‡uX@gvŸˆêR¨ù?g%š›Êýéà?g2YÜdzè¿g€o‰ãëø?gih¨öŽßõ?gn¡úÂò?gÒÚ!÷n®u?gúJ+bÉÀza,b,pr,tr,trimc                 C   s6   t j|||dd�\}}t||dd� t||dd� dS )a  
        Using PairedData's yuen.t.test method. Something to note is that there
        are at least 3 R packages that come with a trimmed t-test method, and
        comparisons were made between them. It was found that PairedData's
        method's results match this method, SAS, and one of the other R
        methods. A notable discrepancy was the DescTools implementation of the
        function, which only sometimes agreed with SAS, WRS2, PairedData and
        this implementation. For this reason, most comparisons in R are made
        against PairedData's method.

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

            Two-sample Yuen test, trim=0.2

        data:  x and y
        t = -0.68649512735573, df = 3.4104431643464, p-value = 0.5361949075313
        alternative hypothesis: true difference in trimmed means is not equal
        to 0
        95 percent confidence interval:
         -3.912777195645217  2.446110528978550
        sample estimates:
        trimmed mean of x trimmed mean of y
        2.000000000000000 2.73333333333333
        F©rt  r6  rì   rí   N©re   r-  r
   )rj   ró   rû   rS  r
  rt  ræ   rå   rs   rs   rt   Útest_ttest_compare_r  s    z$Test_ttest_trim.test_ttest_compare_rc                 C   sF   g d¢}g d¢}t j||ddd�\}}t|ddd� t|d	dd� d S )
N)rZ   rV   rJ  rŒ  ro  é,   rZ   rV   rJ  rŒ  ro  r‘  )r`   r›  rV   rZ   rê  é   rK  r`   r›  rV   rZ   rê  r’  rK  g
×£p=
·?FrŽ  gRb×övà?r,  rí   gŸçOÕiå?r�  ©rj   ró   rû   ræ   rå   rs   rs   rt   Útest_compare_SAS&  s
   z Test_ttest_trim.test_compare_SASc                 C   sD   g d¢}g d¢}t j||dd�\}}t|ddd� t|ddd� d	S )
aÞ  
        The PairedData library only supports unequal variances. To compare
        samples with equal variances, the multicon library is used.
        > library(multicon)
        > a <- c(2.7, 2.7, 1.1, 3.0, 1.9, 3.0, 3.8, 3.8, 0.3, 1.9, 1.9)
        > b <- c(6.5, 5.4, 8.1, 3.5, 0.5, 3.8, 6.8, 4.9, 9.5, 6.2, 4.1)
        > dv = c(a,b)
        > iv = c(rep('a', length(a)), rep('b', length(b)))
        > yuenContrast(dv~ iv, EQVAR = TRUE)
        $Ms
           N                 M wgt
        a 11 2.442857142857143   1
        b 11 5.385714285714286  -1

        $test
                              stat df              crit                   p
        results -4.246116897032513 12 2.178812829667228 0.00113508833897713
        rŠ  rŒ  rý  ©rt  gþ‡ÐÒç˜R?r   rí   g–ý^üÀNr�  r“  rs   rs   rt   Útest_equal_var5  s
   zTest_ttest_trim.test_equal_varz	alt,pr,tr))r%  gjÎœ>5ôï?r�  )r#  gn4aÆ‚•W?r�  c                 C   sH   g d¢}g d¢}t j||dd|d�\}}t||dd� t||dd� dS )	zõ
        > library(PairedData)
        > a <- c(2.7,2.7,1.1,3.0,1.9,3.0,3.8,3.8,0.3,1.9,1.9)
        > b <- c(6.5,5.4,8.1,3.5,0.5,3.8,6.8,4.9,9.5,6.2,4.1)
        > options(digits=16)
        > yuen.t.test(a, b, alternative = 'greater')
        rŠ  rŒ  rý  F)rt  r6  r)  r   rí   Nr�  )rj   r  rS  r
  ró   rû   ræ   rå   rs   rs   rt   Útest_alternativesO  s   
ÿz!Test_ttest_trim.test_alternativesc              	   C   s  d}t t|d��. d}tjt|d�� tjddgddgddd� W d   ƒ n1 s*w   Y  W d   ƒ n1 s9w   Y  t t|d��8 d	}tjt|d�� tjddgddgdddd
� W d   ƒ n1 sgw   Y  W d   ƒ d S W d   ƒ d S 1 sw   Y  d S )Nz>Use of `permutations` is incompatible with with use of `trim`.r–   z5Arguments {'permutations'} are deprecated, whether...r   r0   r1   rý  )rt  r8  z9Arguments {.*'random_state'.*} are deprecated, whether...)rt  r8  r`  )r�   rí  r  r  rz  re   r-  )rj   r—   rA  rs   rs   rt   Útest_errors_unsupportedc  s$   ÿ€þÿÿþ"þz'Test_ttest_trim.test_errors_unsupportedTrÕ  rÖ  rG   c                 C   s~   d}|  d¡|  d¡d }}t|ƒrtj||dd� d S tjt|d�� tj||dd� W d   ƒ d S 1 s8w   Y  d S )Nz3Use of `trim` is compatible only with NumPy arrays.rX   r   r²  r•  r–   )r   r*   re   r-  r  r   rí  )rj   rk   rA  ró   rû   rs   rs   rt   rm  q  s   "ÿz5Test_ttest_trim.test_permutation_not_implement_for_xprt  )gš™™™™™É¿r9   r   c                 C   sN   d}t t|d�� tjddgddg|d� W d   ƒ d S 1 s w   Y  d S )Nz/Trimming percentage should be 0 <= `trim` < .5.r–   r   r0   r•  )r�   rž   re   r-  )rj   rt  r—   rs   rs   rt   Útest_trim_bounds_error~  s   "ÿz&Test_ttest_trim.test_trim_bounds_errorN)r²   r³   r´   rq  r  r  r€  r�  r”  r–  r—  r˜  r&   rG   r™  rm  r™  rs   rs   rs   rt   rˆ  î  sH    ÿÿÿþùö
#ÿ
ÿ
	rˆ  c                   @   sF  e Zd Zejdd�Zg d¢ed< dddej dged	< ddd
dejged< g d¢ed< dddej dged< ddddejged< dddejejged< dddejejged< dddejejged< dd d!ejejged"< dd d#ejejged$< dd d%ejejged&< ej	 
d'g d(¢¡ej	 
d)d*d+g¡ej	 
d,d-d.g¡d/d0„ ƒƒƒZd1S )2ÚTest_ttest_CI)r1   r0   r0   r3   )rk  )ç–g� Í¿çÔe1±ùä3@g·¼Ívà7ê?gÄ™Ñ"ê¤Ï¿g8 {‚M(È?r/  r›  rœ  g·¼Ívà7Ú?gxŠ¬_ï±Á?r  g
/Á©äâ?gD¨ Œ.É¿)r0   r   r   )çµrŠé�eÏ¿ç®-</Û&@g?í¦JJðé?gbãÑøËÕ¿g3®ÑÕŠÐ?)r   r   r   r�  rž  g?í¦JJðÙ?g¾F£ÞòáÇ?)r   r   r   gû{„õÚã?gæads2Ñ¿)r0   r   r   gÄÀs"%Î¿r›  gŒW±íŒ"ê?)r   r   r   g�W±íŒ"Ú?©r   r   r   g:T'‰¹îâ?)r0   r   r   gµ:¢ÌÐ¿rV   gÀÉ0:5Éé?rG  g¿É0:5ÉÙ?rˆ  g ›çbeã?)r0   r   r   r)  r»  r6  FTrt  r   rý  c                 C   s,  |r	|r	t  d¡ |rt|ƒst  d¡ tj d¡}| | d¡¡}| | d¡¡}tj	|||||d�}ddd	d
œ}	| j
|	| t|ƒtt |¡ƒf }
|
\}}}}}d}t|j| |¡|d� t|j| |¡|d� t|j| |¡|d� |s”| d¡}t|j| |¡|d� t|j| |¡|d� d S d S )Nz3Discrepancy in `main`; needs further investigation.z*`trim` is only compatible with NumPy inputl   ¤'N±k' rY   r[   )r)  r6  rt  r   r   r0   r»  r8  r*  r´  )r  Úxfailr*   rŽ  rŠ   rV  rW  rb   re   r-  rÀ   r°  Úceilr.   ræ   rù  rå   r  r  r  )rj   r)  r6  rt  rk   rO  rl   rm   r‹   r°  r\  ræ   rù  rå   r  r  r+  r2  rs   rs   rt   Útest_confidence_interval´  s,   


ÿ"
ýz&Test_ttest_CI.test_confidence_intervalN)r²   r³   r´   rŠ   rÇ  rÀ   r’  ri   r  r  r€  r¢  rs   rs   rs   rt   rš  …  s$    !rš  c            
   	   C   s  t j d¡ t j dddddd¡} t j ddddd¡}t| |fd	d
�}t  | d¡} t  |d d¡}tdd„ |jD ƒŽ D ]C}|\}}}}}}	|| jd	 k rc| ||||||	f |||||||	f ksbJ ‚q;|||||| jd	  ||	f |||||||	f ks~J ‚q;d S )Nr   r3   r2   r1   r   r4   r6   r0   r_   rR   rx  )N.ry  c                 s   rz  rð  rõ  rñ  rs   rs   rt   r{  Þ  r|  z.test__broadcast_concatenate.<locals>.<genexpr>)rŠ   rV  rÜ  rå  r   r}  r   rk  )
ró   rû   rÎ  Úindexrl  ró  rç  rÿ  rø  rú  rs   rs   rt   Útest__broadcast_concatenateÔ  s   .8ûr¤  c                 C   s  |   g d¢¡}|   g d¢¡}|   d¡}|   d¡}tj||dd�\}}t||ƒ t||ƒ tjt||ƒddiŽ\}}t||ƒ t||ƒ |   g d¢¡}|   d	¡}|   d
¡}tj||dd�\}}t||ƒ t||ƒ tjt||ƒddiŽ\}}t||ƒ t||ƒ |   d¡}|   d¡}|   d¡}|   d¡}|   || g¡}	|   ||g¡}
|  ddd¡}|  ddd¡}|  ddd¡}|  ||g¡}|  ||g¡}tj||ddd�\}}t||ƒ t||ƒ tjt||ƒddiŽ\}}t||ƒ t||ƒ tj||ddd�\}}t||ƒ t||ƒ tjt||ƒddiŽ\}}t||ƒ t||ƒ tj|j|jddd�}t|j	|	ƒ t|j
|
ƒ t|j|jƒ}tj|ddiŽ}t|j	|	ƒ t|j
|
ƒ tj||ddd�}t|j	|	ƒ t|j
|
ƒ t||dd�}tj|ddiŽ}t|j	|	ƒ t|j
|
ƒ d S )Nr7  r‰  gö9‚(á?güe¡Ä÷å¿F©r6  r6  rO  gÌ„Jþê?g9 ÿªýÊ¿r+  g÷‹@Í[å?g�Ï‰Ò±Ñ?gþÞh�Gà?r   rJ  rŒ  r3   r,  r   r7  rR   )rb   re   r-  r.   r.  r*  rÿ  rò  ri  ræ   rå   )rk   ró   rû   rS  r
  rè  r  Ú	tr_uneq_nÚ	pr_uneq_nr/  r0  Úrvs3rø  r÷  r  r  r‹   r  rs   rs   rt   Útest_ttest_ind_with_uneq_varæ  sp   























r©  c                 C   sB  |   d¡}|  d¡}tjtdd�� tj||dd�\}}W d   ƒ n1 s&w   Y  t||  | j	 ¡ƒ t||  d¡ƒ t
jdd��T tj||dd�\}}t||  | j¡ƒ t||  | j¡ƒ |  d	| jgd
d	gg¡}tj||   d¡dd�\}}t||  dt
jg¡ƒ t||  dt
jg¡ƒ W d   ƒ d S 1 sšw   Y  d S )Nr1   r§  r–   Fr¥  r”   r?  ©rÕ  r   r^   r\  r½   )rÃ  ru  r  r  rœ   re   r-  r/   rb   r’  rŠ   rB  ri   )rk   rl   rm   rè  r  r  rs   rs   rt   Útest_ttest_ind_zero_division;  s    

ÿ"÷r«  c                  C   s�   t jdddg} g d¢}tj| |dd�}tj|| dd�}t|j|j dd� t|j|jdd� t || d	d … ¡}t||dd� t|d
dd� d S )Nr  rë   r«   r  r‘   r’   rì   rí   r   )g¹8£³ HÀg“WØ@…·ª?)rŠ   ri   re   r-  r
   ræ   rå   r  rs   rs   rt   Útest_ttest_ind_nan_2nd_argT  s   
ÿr¬  c                 C   s¦   t | ƒr(tjttd�� t |  g ¡|  g ¡¡}W d   ƒ n1 s"w   Y  nt |  g ¡|  g ¡¡}t|tj	j
ƒs=J ‚|  | j¡d }t|j|ƒ t|j|ƒ d S )Nr–   rs   )r*   r  r  r   r   re   r-  rb   r  r  r  ri   r/   ræ   rå   )rk   r‹   r1  rs   rs   rt   Ú#test_ttest_ind_empty_1d_returns_nanj  s   ÿ€r­  rv   rw   c                 C   s˜   |  d¡}| | ¡} tj ¡ �}| tt¡ tj	|| dd�}W d   ƒ n1 s(w   Y  t
|tjjƒs6J ‚|j||jd�}t|j|ƒ t|j|ƒ d S r  )rÇ  rb   rŠ   r“  r   r§   r   r   re   r-  r  r  r  r   ri   r/   ræ   rå   )rû   r  rk   ró   r    r‹   r  rs   rs   rt   Útest_ttest_ind_axis_size_zeroy  s   


ýr®  c                 C   óZ   |   d¡}|   d¡}tj||dd�}t|tjjƒsJ ‚|jjdks#J ‚|jjdks+J ‚d S r   ©	rÇ  re   r-  r  r  r  ræ   rk  rå   ©rk   ró   rû   r‹   rs   rs   rt   Ú test_ttest_ind_nonaxis_size_zero�  s   

r²  c                 C   r¯  )N)r   r5   r   r!  r   rR   r"  r°  r±  rs   rs   rt   Ú2test_ttest_ind_nonaxis_size_zero_different_lengths�  s   

r³  z"Other backends don't like integersr�   c                 C   sr   |   ddg¡|   ddg¡}}|   ddg¡|   ddg¡}}|   ddg¡|   dd	g¡}}t ||||||¡ d S )
Nr   r0   r1   r2   r3   é‚   éŒ   rJ  é–   )rb   re   r.  )rk   Úmean1Úmean2Ústd1Ústd2Únobs1Únobs2rs   rs   rt   Útest_gh5686¬  s   r½  c              	   C   sT   |   d¡}|   d¡}|   | j¡}tj||||||dd�}t|j|ƒ t|j|ƒ d S )Nr”   r¬   Fr¥  )rb   ri   re   r.  r/   ræ   rå   )rk   ÚzeroÚsixr1  r‹   rs   rs   rt   Ú%test_ttest_ind_from_stats_inputs_zero¸  s   

rÀ  c                 C   sH  t j d¡}|  |jdd�¡}|  |jdd�¡}|jdd�}tj||ddd�}t  |j¡}t 	|t ¡ j
¡jd	ks;J ‚tt  ||¡|d
d� tj||ddd�}t  |j¡}t 	|t ¡ j
¡jd	kscJ ‚tt  ||¡|d
d� |  g d¢¡|  dg¡}}tj||dd�}t| ƒrŠdnd}t|j|  d¡|d� t|j|  d¡|d� d S )Nl   úb¦Qú )rÞ  r0   rL  )rÞ  r   rJ  Tr^   )r6  rS   r²  rS  rí   )r0   r1   r3   r:   r¥  r,  r   gàz“Nd¡ð?r*  gJìåÚ?)rŠ   rV  rW  rb   rX  r­  re   r-  rå   r’  r“  r
   Úquantiler+   r.   ræ   )rk   rO  rl   rm   ra  r‹   rå   r+  rs   rs   rt   Útest_ttest_uniform_pvaluesÆ  s"   rÂ  c                 C   sN   |  |dk¡}|  |dk¡}| dk |@ | dk|@ B }| ||d d|d  ¡S )Nr#  r%  r   r0   r   )rb   rÐ  )rè  r  r  rk   r#  r%  rl  rs   rs   rt   Ú_convert_pvalue_alternativeæ  s   rÃ  c                 C   s„  d\}}}t jjdd|||fd�}|  |¡}|  d||f¡}t j||dd�\}}t j|ddd�\}}	t  |d d …ddf d¡\}
}t||d	d
� t|d |
d	d
� t|j||fƒ |  |d|f¡}t j||dd�\}}t j|ddd�\}}	t  |dd d …df d¡\}
}t||d	d
� t|d |
d	d
� t|j||fƒ |  ||df¡}t j||dd�\}}t j|ddd�\}}	t  |ddd d …f d¡\}
}t||d	d
� t|d |
d	d
� t|j||fƒ t  |  g d¢¡d¡\}}t	|  
|¡|  | j¡ƒ t	||  d¡ƒ t  |d d …d d …d d …f d¡\}}t j|d d …d d …d d …f ddd�\}}t||d| ƒ}t||ƒ t||ƒ t j|d d …d d …d d …f ddd�\}}t||d| ƒ}t||ƒ t||ƒ tjdd��R t  |  g d¢¡d¡}t	|j|  | j¡ƒ t	|j|  | j¡ƒ |  dtjgddgg¡}t  |d¡}t	|j|  d| jg¡ƒ t	|j|  d| jg¡ƒ W d   ƒ d S 1 �s»w   Y  d S )N©rX   rŠ  r‹  r3   rX   r:  r   r   rR   r½   rÍ  r*  rw  r0   )r”   r”   r”   r”   r%  r(  r#  r?  rª  rö   )re   rÂ  rQ  rb   ru  rÝ  r.   r   rk  r/   r  r’  rÃ  rŠ   rB  ræ   ri   rå   )rk   rØ  rÙ  Ún3Úrvn1rõ  rÞ  rS  rß  Úp2rà  Úp3rè  r  r
  rS  Úpcr‹   r  rs   rs   rt   Útest_ttest_1samp_newï  sZ   

&*

*

$÷rÊ  z(Only NumPy has nan_policy='omit' for nowc           
      C   s  d\}}}t jjdd|||fd�}|  |¡}| j|dd…dd…d	d
…f< t j|d d …d d …d d …f ddd�\}}t j|d d …d d …d d …f dddd�\}}t||d| ƒ}	t||	ƒ t||ƒ t j|d d …d d …d d …f dddd�\}}t||d| ƒ}	t||	ƒ t||ƒ d S )N)r3   rX   rŠ  r3   rX   r:  r   r0   r   r1   r2   r6   r½   r‘   r’   r%  rd  r#  )re   rÂ  rQ  rb   ri   rÝ  rÃ  r.   )
rk   rØ  rÙ  rÅ  rÆ  r
  rS  rè  r  rÉ  rs   rs   rt   Útest_ttest_1samp_new_omit0  s"   

* 
ÿ

 
ÿ
rË  c           
      C   s0  t j d¡}|jdd�}|  |¡}d}|  |jdd�¡}tjt|d�� tj||dd� W d   ƒ n1 s6w   Y  |  |jd	d�¡}tj||dd�}|j	j
d
ksTJ ‚t|ƒ}| ¡ \}}|j|dd�}|j|dd�}tj||dd�}|  | jd| jd�|jj
¡}	t|j|	ƒ tj||dd�}t|j|	ƒ d S )Nl   iIýÔ}pC )r   rŠ  r‹  rL  z%`popmean.shape\[axis\]` must equal 1.)r3   r0   r‹  r–   r#  )rõ  rS   )r3   r   r‹  )r3   r‹  rR   gš™™™™™©?r  )rŠ   rV  rW  rb   r  r   rž   re   rÝ  ræ   rk  r(   r  r  r{  r¶   rå   r.   )
rk   rO  rl   rA  rõ  r‹   r€   rÿ  rÜ  r\  rs   rs   rt   Útest_ttest_1samp_popmean_arrayJ  s(   
ÿrÌ  c                   @   s¬   e Zd Zedd„ ƒZeddd�ej d¡edd„ ƒƒƒZ	d	d
„ Z
edd„ ƒZdd„ Zeddd�ej d¡edd„ ƒƒƒZeddd�ej d¡edd„ ƒƒƒZedd„ ƒZdS )ÚTestDescribec           	   	   C   sþ   t ƒ �5}tjddd�� | td¡ t | d¡d ¡\}}}}}}W d   ƒ n1 s,w   Y  W d   ƒ n1 s;w   Y  |dksFJ ‚t|d | d¡ƒ t|d | d¡ƒ t|| d¡ƒ t|| |j	¡ƒ t|| |j	¡ƒ t|| |j	¡ƒ d S )Nr?  rÙ  rÛ  r«   rs   r   r   )
r   rŠ   rB  r§   rœ   re   Údescriberb   r/   ri   )	rj   rk   r    rú  r�  rø  rÝ  ÚskÚkurtrs   rs   rt   Útest_describe_scalarm  s   ÿ"ý€ z!TestDescribe.test_describe_scalarrv   rw   rD   rG   c                 C   s´  t | d¡ƒ}| | d¡| dd¡f¡}d}| g d¢¡| g d¢¡f}| g d¢¡}| g d	¢¡}| d
gd ¡}| dgd ¡}	t |¡\}
}}}}}|
|ksTJ ‚t|d |d ƒ t|d |d ƒ t||d| 	|j
¡j d� t||d| 	|j
¡j d� t||ƒ t||	ƒ tj|jdd�\}
}}}}}|
|ks J ‚t|d |d ƒ t|d |d ƒ t||d| 	|j
¡j d� t||d| 	|j
¡j d� t||ƒ t||	ƒ d S )Nr½   r~  ©r0   r2   r  r3   ©r½   r½   r½   r½   ©r  r  r  r  ©çffffffö?rÖ  rÖ  rÖ  )rµ  rµ  rµ  rµ  çH,p½ Ú?r2   çTUUUUUý¿r   r   r*  rR   )r(   rb   rþ  ru  r   re   rÎ  r/   r.   rµ   r
  Úepsri  ©rj   rk   r€   rl   ÚncÚmmcÚmcÚvcÚskcÚkurtcrú  r�  rø  rÝ  rÏ  rÐ  rs   rs   rt   Útest_describe_numbers{  s0   


z"TestDescribe.test_describe_numbersc                 C   sŠ   t  d¡}t j|d< d\}}d}d}d}d}tj|dd	�\}}	}
}}}t||ƒ t|	|ƒ t|
|ƒ t||ƒ t||ƒ t||d
d� d S )Nr‡   r7   )r7   )r”   r®   r«   r@   r”   g¯Gáz®ó¿r‘   r’   r[   r$  )rŠ   r   ri   re   rÎ  r   r   )rj   rl   rÛ  rÜ  rÝ  rÞ  rß  rà  rú  r�  rø  rÝ  rÏ  rÐ  rs   rs   rt   Údescribe_nan_policy_omit_test™  s   






z*TestDescribe.describe_nan_policy_omit_testc                 C   sv  |  d¡}| |dk| |j¡|¡}d}tjt|d�� tj|dd� W d   ƒ n1 s-w   Y  tj|dd�\}}}}}}	| |j¡d }
|d	ksMJ ‚t	|d
 |
ƒ t	|d |
ƒ t	||
ƒ t	||
ƒ t	||
ƒ t	|	|
ƒ t
|ƒrx|  ¡  n d}tjt|d�� tj|dd� W d   ƒ n1 s“w   Y  d}tjt|d�� tj|dd� W d   ƒ d S 1 s´w   Y  d S )Nr‡   r7   r•   r–   r˜   r’   rî  rs   rX   r   r   z9`nan_policy='omit' is incompatible with non-NumPy arrays.r‘   r™   rš   )r   rÐ  rb   ri   r  r   rž   re   rÎ  r/   r*   râ  )rj   rk   rl   rA  rú  r�  rø  rÝ  rÏ  rÐ  r\  rs   rs   rt   Útest_describe_nan_policy_otherª  s2   
ÿ




ÿ"ÿz+TestDescribe.test_describe_nan_policy_otherc                 C   s"   t  t d¡¡}d}t||ƒ d S )NrK   )r(  Úminmaxrh   Úvariancer±  r³  )re   rÎ  rŠ   r   r   )rj   r  rè   rs   rs   rt   Útest_describe_result_attributesÈ  s   z,TestDescribe.test_describe_result_attributesc                 C   sü   t | d¡ƒ}| | d¡| dd¡f¡}d}| g d¢¡| g d¢¡f}| g d¢¡}| g d	¢¡}| d
gd ¡}| dgd ¡}	tj|dd�\}
}}}}}|
|ksVJ ‚t|d |d ƒ t|d |d ƒ t||ƒ t||ƒ t||ƒ t||	ƒ d S )Nr½   r~  rÒ  r  r3   rÓ  rÔ  rÕ  )ç¸…ëQ¸Î?rç  rç  rç  r×  r2   rØ  r   rÍ  r   ©	r(   rb   rþ  ru  r   re   rÎ  r/   r.   rÚ  rs   rs   rt   Útest_describe_ddofÏ  s    


zTestDescribe.test_describe_ddofc                 C   sà   t | d¡ƒ}| | d¡| dd¡f¡}d}| d¡| d¡f}| d¡}| d¡}| d¡}| d	¡}	tj|d d
�\}
}}}}}|
|ksHJ ‚t|d |d ƒ t|d |d ƒ t||ƒ t||ƒ t||ƒ t||	ƒ d S )Nr½   r~  rÒ  r  r‹  rÖ  g³a¤+Ð?gE,p½ Ú?gUUUUUUý¿rR   r   r   rè  rÚ  rs   rs   rt   Útest_describe_axis_noneä  s    






z$TestDescribe.test_describe_axis_nonec                 C   sH   d}t jt|d�� t | g ¡¡ W d   ƒ d S 1 sw   Y  d S )NzThe input must not be empty.r–   )r  r   rž   re   rÎ  rb   )rj   rk   rA  rs   rs   rt   Útest_describe_emptyþ  r¬  z TestDescribe.test_describe_emptyN)r²   r³   r´   r&   rÑ  rG   r  r  r™  rá  râ  rã  ræ  ré  rê  rë  rs   rs   rs   rt   rÍ  l  s*    







rÍ  c                   @   sf   e Zd Zdd„ Zeddd�ej d¡ej dg d¢¡d	d
„ ƒƒƒZ	eddd�ej d¡dd„ ƒƒZ
dS )ÚNormalityTestsc                 C   s¾   t t| jƒ}| d¡}t|ƒr?tjttd�� ||ƒ}| |j	¡}t
|j|ƒ t
|j|ƒ W d   ƒ d S 1 s8w   Y  d S d}tjt|d�� ||ƒ W d   ƒ d S 1 sXw   Y  d S )Nr«   r–   z...requires at least...)r  re   Ú	test_namerb   r*   r  r  r   r   ri   r/   ræ   rå   r   rž   )rj   rk   r%  rl   r‹   r1  rA  rs   rs   rt   Útest_too_small  s   
"ü
"ÿzNormalityTests.test_too_smallrv   rw   rD   rG   r)  r»  c                 C   sÔ   | j }tt|ƒ}| | jd ¡}| | jd ¡}i }|dv rD|dv r?|dkr*|d nd|d  }|dkr8d| n|}||d< nt d	¡ | d
¡d }||fi |¤Ž}	|	\}
}t|
|ƒ t||ƒ t|	d|d� d S )Nr   r   >   r#  r%  >   ÚskewtestÚkurtosistestr#  r0   rï  r)  z,`alternative` not available for `normaltest`)r#  r^   r   r   r0   rë   r#  r^   r   r   r0   rë   r#  r^   r   r   r0   rë   r#  r^   r   r   r0   rë   rÜ  r‰  )	rí  r  re   rb   Úcase_refr  rŽ  r.   r   )rj   r)  rk   rí  r%  Úref_statisticrÈ  r  rl   r‹   Úres_statisticÚ
res_pvaluers   rs   rt   Útest_against_R  s"   




zNormalityTests.test_against_Rc                 C   sŒ   t t| jƒ}| d¡}|j|j|jd�}| |dk||¡}tj	dd�� ||ƒ}t
|j|ƒ t
|j|ƒ W d   ƒ d S 1 s?w   Y  d S )NrW  r  r’  r?  r@  )r  re   rí  r   rb   ri   r
  rÐ  rŠ   rB  r/   ræ   rå   )rj   rk   r%  rl   r1  r‹   rs   rs   rt   Útest_nan7  s   
"ýzNormalityTests.test_nanN)r²   r³   r´   rî  rG   r  r  r™  r€  rõ  rö  rs   rs   rs   rt   rì    s    



rì  c                   @   s$   e Zd ZdZdZdd„ Zdd„ ZdS )ÚTestSkewTestrï  )gvO±ÿ?g€bHÿ`¨?c                 C   sJ   t jjdddd�}| |¡}t j|dd�j}t||jd|jd�d	d
� d S )Nr   rÞ  é{   )ró   rM  r`  r%  r(  r”   r  g?«Ì”Ößâ>rí   )re   ÚskewnormrQ  rb   rï  rå   r.   r
  )rj   rk   rh  Úa1_xpr-  rs   rs   rt   Útest_intuitiveH  s   
zTestSkewTest.test_intuitivec                 C   sÆ   t  | d¡¡ | d¡}t|ƒrBtjttd��  t  |¡}| |j	¡}t
|j|ƒ t
|j|ƒ W d   ƒ d S 1 s;w   Y  d S d}tjt|d�� t  |¡ W d   ƒ d S 1 s\w   Y  d S )Nr®   r­   r–   z+`skewtest` requires at least 8 observations)re   rï  r   r*   r  r  r   r   rb   ri   r/   ræ   rå   r   rž   ©rj   rk   rl   r‹   r1  rA  rs   rs   rt   Ú"test_skewtest_too_few_observationsO  s   

"ü"ÿz/TestSkewTest.test_skewtest_too_few_observationsN)r²   r³   r´   rí  rñ  rû  rý  rs   rs   rs   rt   r÷  D  s
    r÷  c                   @   st   e Zd ZdZdZeddd�ej d¡dd„ ƒƒZ	eddd�ej d¡d	d
„ ƒƒZ
eddd�ej d¡dd„ ƒƒZdS )ÚTestKurtosisTestrð  )g�gÛlœ¿Œ¿g2÷‘J@¤ï?rv   rw   rD   rG   c                 C   sH   t jjddd�}| |¡}t j|dd�j}t||jd|jd�dd	� d S )
NrÞ  rø  )rM  r`  r%  r(  r”   r  rì   rí   )re   ÚlaplacerQ  rb   rð  rå   r.   r
  )rj   rk   ri  Úa2_xpr-  rs   rs   rt   rû  e  s   
zTestKurtosisTest.test_intuitivec                 C   sJ   g d¢}t  dd„ t|ƒD ƒ¡}|j||jd�}t |¡d dk s#J ‚d S )N)
r	  r   é:   r5   r   é)   rˆ   r   r   é§   c                 S   s   g | ]
\}}t  ||¡‘qS rs   )rŠ   r   )rò  rl  rÎ  rs   rs   rt   rô  t  ó    z;TestKurtosisTest.test_gh9033_regression.<locals>.<listcomp>r  r   rS  )rŠ   r  Ú	enumeraterb   r¶   re   rð  )rj   rk   rí  rl   rs   rs   rt   Útest_gh9033_regressionn  s   z'TestKurtosisTest.test_gh9033_regressionc                 C   sF  t  | d¡¡ d}tjt|d�� t  | d¡¡ W d   ƒ n1 s$w   Y  tjt|d�� t  | d¡¡ W d   ƒ n1 sCw   Y  | d¡}t|ƒr‚tjttd��  t  	|¡}| 
|j¡}t|j|ƒ t|j|ƒ W d   ƒ d S 1 s{w   Y  d S d}tjt|d�� t  |¡ W d   ƒ d S 1 sœw   Y  d S )NrE  z+`kurtosistest` p-value may be inaccurate...r–   rK   g      3@r«   z/`kurtosistest` requires at least 5 observations)re   rð  r   r  r  rË  r*   r   r   rï  rb   ri   r/   ræ   rå   r   rž   )rj   rk   rA  rl   r‹   r1  rs   rs   rt   Ú&test_kurtosistest_too_few_observationsx  s(   ÿÿ

"ü"ÿz7TestKurtosisTest.test_kurtosistest_too_few_observationsN)r²   r³   r´   rí  rñ  rG   r  r  r™  rû  r  r  rs   rs   rs   rt   rþ  a  s    





rþ  c                   @   s   e Zd ZdZdZdS )ÚTestNormalTestÚ
normaltest)gØ§ÜáÆc@g¤æ‰ÐÿÁ?N)r²   r³   r´   rí  rñ  rs   rs   rs   rt   r  “  s    r  c                   @   sT   e Zd Zej d¡ ej dd¡\ZZe	j
 dg d¢¡dd„ ƒZdd	„ Zd
d„ ZdS )ÚTestRankSumsr   r0   rX   r)  rC  c                 C   s<   t j| j| j|d�j}t j| j| jd|d�j}t||ƒ d S )Nr(  F)Úuse_continuityr)  )re   Úranksumsrl   rm   rå   Úmannwhitneyur
   )rj   r)  r  r]  rs   rs   rt   Útest_ranksums_result_attributes�  s   ÿÿÿÿz,TestRankSums.test_ranksums_result_attributesc                 C   s   t  | j| j¡}t|dƒ d S )NrÜ  )re   r  rl   rm   r   ©rj   r‹   rs   rs   rt   Útest_ranksums_named_results¦  r3  z(TestRankSums.test_ranksums_named_resultsc                 C   sF   t tdd�� tj| j| jdd� W d   ƒ d S 1 sw   Y  d S )Nz`alternative` must be 'less'r–   rš   r(  )r�   rž   re   r  rl   rm   rØ  rs   rs   rt   rB  ª  s   "ÿz"TestRankSums.test_input_validationN)r²   r³   r´   rŠ   rV  rÜ  rå  rl   rm   r  r  r€  r  r  rB  rs   rs   rs   rt   r
  ˜  s    
r
  c                   @   sB   e Zd Zdd„ Zedd�ej d¡dd„ ƒƒZdd	„ Z	d
d„ Z
dS )ÚTestJarqueBerac                 C   sN   g d¢}|  |¡}|  ddg¡}t |¡}t|j|d ƒ t|j|d ƒ d S )N)g8M‘K~Ä¿g¥‰/¦ò?gŠ6r=T¿gÓGïã˜Øè¿g!J_l• Àgq"Ê÷˜Æ?gP§HúKí?r   r   )rb   re   Újarque_berar.   ræ   rå   )rj   rk   rl   r\  r‹   rs   rs   rt   Útest_jarque_bera_against_R±  s   

z)TestJarqueBera.test_jarque_bera_against_RTrà   rG   c                 C   sæ   t j d¡ t j ddd¡}t t|ƒ¡ }\}}t t|ƒ¡ }\}}t | dd¡¡ }\}	}
||  krN|	  krN|j	  krN|j	  krN|j	ksQJ ‚ J ‚||  krn|
  krn|j
  krn|j
  krn|j
ksqJ ‚ J ‚d S )Nr¥  r   r   r)  r0   éPÃ  )rŠ   rV  rÜ  rX  re   r  rI  Útuplerg   ræ   rå   )rj   rl   Újb_test1ÚJB1rS  Újb_test2ÚJB2rÇ  Újb_test3ÚJB3rÈ  rs   rs   rt   Útest_jarque_bera_array_like¾  s   @Dz*TestJarqueBera.test_jarque_bera_array_likec                 C   s´   |  g ¡}t|ƒr9tjttd�� t |¡}W d   ƒ n1 s w   Y  |  |j¡}t	|j
|ƒ t	|j|ƒ d S d}tjt|d�� t |¡}W d   ƒ d S 1 sSw   Y  d S )Nr–   z%At least one observation is required.)rb   r*   r  r  r   r   re   r  ri   r/   ræ   rå   r   rž   rü  rs   rs   rt   Útest_jarque_bera_sizeÌ  s   
ÿ"ÿz$TestJarqueBera.test_jarque_bera_sizec                 C   sú   t jjdd�}| |jdd�¡}tj|d d�}t | |d¡¡}t|j|jƒ t|j	|j	ƒ tj|dd�}t |dd d …f ¡\}}t |dd d …f ¡\}}	t
|j| ||g¡ƒ t
|j	| ||	g¡ƒ tj|jdd�}
t
|j|
jƒ t
|j	|
j	ƒ d S )	Ni±¥Krú  )r0   rL  rL  rR   r  r   r   )rŠ   rV  rû  rb   re   r  rg   r/   ræ   rå   r.   ri  )rj   rk   rO  rl   r‹   r\  Ús0rQ  Ús1rS  ÚresTrs   rs   rt   rŒ  Ù  s   zTestJarqueBera.test_axisN)r²   r³   r´   r  rG   r  r  r™  r  r  rŒ  rs   rs   rs   rt   r  ¯  s    
r  c                   @   sP   e Zd Zg d¢Zg d¢ZdZdd„ Zdd„ Zdd	„ Zd
d„ Z	dd„ Z
dd„ ZdS )ÚTestMannWhitneyU)g®Þ	ÂUå3@g^û�Â–‹3@g™òtÇ3@g½¢™]o·5@g·z³S4@gÔtÆ< 4@gM	‚«X3@gXÄmCók4@gLìo&£3@gfÉ˜ÊâÇ2@gžý{m;^3@ga A$|3@gMÑ¢Á_À4@gŽÌ#é3@g19T•_3@gg§„Cÿ2@gúqïR4@g˜Kk/±4@gè—Ü�Š3@gÌZ†û2@g„_
À²ƒ3@g«ÝÀ$`Ó3@g
ŒÃx„4@g3ƒ#Ð»5@g;VND÷ò1@g >®ƒåH2@g—µâr4@g³»ØyÜ¤2@gèà’?4@g=bòÉ‡Ž3@)gÔäìpG3@g„Lä:jþ0@gýî„¨Š2@g«¹JNnC1@gRÀ;`(3@g+Pi,ƒ2@g6:Z›2@gZ"3=ùÕ2@gF	uSa	3@gXâÒ€2@g¥ÙX3^83@g§2¡Õ1@g÷��J2@gZ)Eû‡ª2@g¦U8ø3@g°»°50@g�ˆ³Ô†3@gFz‰™33@gøèãz3@g¨¢²Ú´3@rV   c           	      C   sÌ   t j| j| jdd�\}}t j| j| jdd�\}}t j| j| jdd�\}}t j| j| jdd�\}}t||ƒ t||ƒ t||kƒ t|dƒ t|dƒ t|dƒ t|dƒ t|d| jd� t|d| jd� d S )	Nr#  r(  r%  éò  rœ  g=_A§ÿï?rˆ  glP†z.?©re   r  rc   ÚYr   r   r	   r‰  ©	rj   Úu1rS  Úu2rÇ  Úu3rÈ  Úu4Úp4rs   rs   rt   Útest_mannwhitneyu_one_sidedÿ  s   





z,TestMannWhitneyU.test_mannwhitneyu_one_sidedc                 C   sb   t j| j| jdd�\}}t j| j| jdd�\}}t||ƒ t|dƒ t|dƒ t|d| jd� d S )Nr!  r(  r"  rœ  glP†z.?rˆ  ©re   r  rc   r$  r   r	   r‰  ©rj   r&  rS  r'  rÇ  rs   rs   rt   Útest_mannwhitneyu_two_sided  s   



ÿz,TestMannWhitneyU.test_mannwhitneyu_two_sidedc           	      C   sÔ   t j| j| jddd�\}}t j| j| jddd�\}}t j| j| jddd�\}}t j| j| jddd�\}}t||ƒ t||ƒ t||kƒ t|dƒ t|dƒ t|dƒ t|dƒ t|d| jd� t|d	| jd� d S )
NFr#  r(  r%  r"  rœ  gii5‡£ÿï?rˆ  g¬2¥¥2?r#  r%  rs   rs   rt   Ú&test_mannwhitneyu_no_correct_one_sided  s*   
ÿ
ÿ
ÿ
ÿ





z7TestMannWhitneyU.test_mannwhitneyu_no_correct_one_sidedc                 C   sf   t j| j| jddd�\}}t j| j| jddd�\}}t||ƒ t|dƒ t|dƒ t|d| jd� d S )NFr!  r(  r"  rœ  g¬2¥¥2?rˆ  r,  r-  rs   rs   rt   Ú&test_mannwhitneyu_no_correct_two_sided-  s   
ÿ
ÿ



ÿz7TestMannWhitneyU.test_mannwhitneyu_no_correct_two_sidedc                 C   sb   t  g d¢¡}t  g d¢¡}ttj||dd�dƒ ttj||dd�dƒ ttj||dd�d	ƒ d S )
N)ôr½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r  r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r  r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r  r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r  r½   r½   r½   r½   r  r½   r½   r  r½   r½   r  r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r  r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r  r½   r½   r½   r½   r½   r½   r½   r½   r½   r  r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   rë   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   )žr½   r½   r½   r½   r½   r½   r½   r  r½   r  r½   r½   r½   r½   r  r½   r½   r½   r  r½   r½   r½   r½   r½   r  r½   r½   rë   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r  r½   r  r½   r½   r½   r½   r½   r½   r  r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r  r½   r½   r½   r½   r½   r  r  r½   r½   r  r½   r½   r  r½   r  r½   r½   r½   r½   r  r  r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r  r½   r½   r½   r½   r½   r  r  r  r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r  r½   r½   r  r½   r½   r½   r½   r  r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r½   r  r½   r½   r½   r  r½   r½   r½   r½   r½   r½   r#  r(  )ç     •Ð@g €?Õ¹•ý>r%  )r1  gÜ&)EÅÿï?r!  )r1  g�Ž?Õ¹•?)rŠ   r   r
   re   r  rÞ  rs   rs   rt   Útest_mannwhitneyu_ones9  s   ÿÿÿz'TestMannWhitneyU.test_mannwhitneyu_onesc                 C   s&   d}t j| j| jdd�}t||ƒ d S )NrÜ  r#  r(  )re   r  rc   r$  r   rë  rs   rs   rt   Ú#test_mannwhitneyu_result_attributesd  s   z4TestMannWhitneyU.test_mannwhitneyu_result_attributesN)r²   r³   r´   rc   r$  r‰  r+  r.  r/  r0  r2  r3  rs   rs   rs   rt   r!  í  s    	
+r!  c                  C   sT   g d¢} g d¢}t t | |¡d ddƒ d}t | |¡}t||ƒ t|j|jƒ d S )N)"r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )"gš™™™™™-@gš™™™™™+@gÍÌÌÌÌÌ(@r0  r'  rþ  g333333@çffffff@g333333@r<   r…  çš™™™™™	@rë   r¥  r¥  r;   r‚  çffffff@çÍÌÌÌÌÌ @ç333333û?r8  r:   çÍÌÌÌÌÌô?r9  r†  r†  r¨  rÄ  r³  r2  r9   rý  rý  r²  r   gÂ/õó¦"×?r3   rã   )r   re   Úpointbiserialrr   r   rä   ræ   )rl   rm   rè   r‹   rs   rs   rt   Útest_pointbiserialk  s   
r;  c                  C   sd  t  g d¢¡} t | ¡}g d¢}t|d |ƒ t  g d¢¡}t |¡}t  g d¢¡}t|d |ƒ t | |¡\}}t||d ƒ t||d ƒ t | || ¡\}}}t||d ƒ t||d ƒ t||d ƒ t  d¡} t  g d¢g d¢g¡}tt | d	|  ¡|d
d� tddƒ}	t  g d¢¡}
t  	|	|
¡}t  g d¢¡}t  	||
¡}t |¡}t|d |dd� d S )N)r   r0   r2   )r5   r#  r5   r   )r   r1   r4   r7   )rê  r   r   rê  r3   )çÒîãªªª@çI»�«ªªð?g&í>®ªªÚ¿r=  r<  )çµû¸ªªª5@çÒîãªªª@gI»�«ªªú¿r?  r>  r0   r6   r$  rY   )r3   rY   r7   r1   r0   r0   )gŸ«­Ø_v	@gù1æ®%äá?g"ýöuàœ¡?g”‡…ZÓ¼ù?gÿ!ýöu @g³q¬‹&@r2   )
rŠ   r   re   Úobrientransformr
   r   r   r   rj  Úrepeat)r  rÞ  r/  r  rß  ró   rû   rÎ  r1  ÚvaluesÚrepsrª  Útransformed_valuesrs   rs   rt   Útest_obrientransform|  s:   


ÿÿ

rE  r8  )rS   r
  r+  Úweightsc                 G   sž   |p| j }t|ƒdkr|\}}n|\}}	}| j||d�}| j||d�}|d ur.| j||d�n|}t|ƒdkr9|fn||	f}|||||dœŽ}
t|
||d� d S )Nr0   r  )rS   r
  rF  r*  )r¶   r×  rb   r.   )rk   Úmean_funrS   r
  r+  rF  r  Ú
array_likerö  r  rl   rs   rs   rt   Úcheck_equal_xmean§  s   


rI  c                  O   ó   t | dtji|¤ŽS ©NrG  )rI  re   r  ©r  r  rs   rs   rt   Úcheck_equal_gmean·  r>  rM  c                  O   rJ  rK  )rI  re   ÚhmeanrL  rs   rs   rt   Úcheck_equal_hmean»  r>  rO  c                  O   rJ  rK  )rI  re   ÚpmeanrL  rs   rs   rt   Úcheck_equal_pmean¿  r>  rQ  c                   @   s´   e Zd Zdd„ Zdd„ Zdd„ Zeddd	�ej 	d
¡dd„ ƒƒZ
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zejjddd�ej 	d
¡dd„ ƒƒZdd„ Zdd„ Zd d!„ Zed"d#„ ƒZd$S )%Ú	TestHMeanc                 C   ó   g d¢}d}t |||d� d S ©N)r   r   r0   r   r‰  ©rO  ©rj   rk   ró   rö  rs   rs   rt   Útest_0Å  ó   zTestHMean.test_0c                 C   s8   g d¢}d}t |||d� g d¢}d}t |||d� d S )Nr  g¶=b¹#A@r‰  r'  gº…ëQ¸þ?rU  rV  rs   rs   rt   Útest_1dÊ  s   zTestHMean.test_1dc                 C   s&   t  ddg¡}d}t|||dd� d S )Nr   r   r”   ©rk   r+  ©rŠ   r   rO  rV  rs   rs   rt   Útest_1d_with_zeroÔ  s   zTestHMean.test_1d_with_zerorF   ú``array_api_strict.where` `fillvalue` doesn't accept Python scalars. See data-apis/array-api#807.rD   rG   c                 C   sX   t  g d¢¡}d}tjt|d�� t||j|dd� W d   ƒ d S 1 s%w   Y  d S )N©r   r   r^   z$The harmonic mean is only defined...r–   r”   rZ  )rŠ   r   r  r  rœ   rO  ri   )rj   rk   ró   rA  rs   rs   rt   Útest_1d_with_negative_valueÙ  s
   "ÿz%TestHMean.test_1d_with_negative_valuec                 C   s2   g d¢g d¢g d¢g}d}t t |¡||d� d S )N©rX   r‹  rê  rë  ©ré  rb  r  rd  ©rJ  rJ  r  éx   gmôW¶UC@r‰  )rO  rŠ   r   rV  rs   rs   rt   Útest_2då  s   zTestHMean.test_2dc                 C   ó8   g d¢g d¢g d¢g}t  g d¢¡}t||d|d� d S )Nr`  ra  rb  )çU|ÏŠ á6@g4.=²�C@çJQº6LsJ@çë’ÌE]P@r   ©rS   rk   r[  rV  rs   rs   rt   Útest_2d_axis0ë  ó   zTestHMean.test_2d_axis0c                 C   re  )N©rX   r   rê  rë  ra  rb  )rf  r”   rg  rh  r   ri  r[  rV  rs   rs   rt   Útest_2d_axis0_with_zeroñ  ó   z!TestHMean.test_2d_axis0_with_zeroc                 C   re  )Nr`  ra  rb  )g3333333@çú¯÷…O@çâŽy@óY@r   ri  r[  rV  rs   rs   rt   Útest_2d_axis1ö  rk  zTestHMean.test_2d_axis1c                 C   re  )Nrl  ra  rb  )r”   ro  rp  r   ri  r[  rV  rs   rs   rt   Útest_2d_axis1_with_zeroü  rn  z!TestHMean.test_2d_axis1_with_zeroTú,array-likes only supported for NumPy backendr�   c                 C   ó:   g d¢}g d¢}d}t j||d�}t|t |¡dd� d S )N©r0   rX   r4   ©rX   r3   r1   rë   ©rF  çñhãˆµøä>r*  )re   rN  r.   rŠ   rb   ©rj   rk   ró   rF  rö  r‹   rs   rs   rt   Útest_weights_1d_list  s
   zTestHMean.test_weights_1d_listc                 C   ó6   t  g d¢¡}t  g d¢¡}d}t|||d|d� d S )Nru  rv  r1   rx  ©rF  r+  rk   )rŠ   rb   rO  ©rj   rk   ró   rF  rö  rs   rs   rt   Útest_weights_1d  ó   zTestHMean.test_weights_1dc                 C   s^   t  ddgddgddgg¡}t  ddgddgddgg¡}t  ddg¡}t||d|d|d	� d S )
Nr0   r3   rX   r4   r   r1   r   rx  ©rS   rF  r+  rk   r[  r}  rs   rs   rt   Útest_weights_2d_axis0  s   zTestHMean.test_weights_2d_axis0c                 C   sR   t  g d¢g d¢g¡}t  g d¢g d¢g¡}t  ddg¡}t||d|d|d	� d S )
Nru  ©r5   r5   r5   rv  rˆ  r1   r5   r   rx  r€  r[  r}  rs   rs   rt   Útest_weights_2d_axis1"  s   zTestHMean.test_weights_2d_axis1c                 C   óJ   t  g d¢¡}t jjg d¢g d¢d�}d}t j}t|||dt j|d� d S )N©r0   rX   r4   r}  ©rX   r3   r1   r}  ©r   r   r   r   r  r1   rx  ©rF  r+  r
  rk   )rŠ   r   rt  rO  r¶   r}  rs   rs   rt   Útest_weights_masked_1d_array*  ó   

ÿz&TestHMean.test_weights_masked_1d_arrayN)r²   r³   r´   rW  rY  r\  rG   r  r  r™  r_  rd  rj  rm  rq  rr  rz  r~  r�  rƒ  r'   r‰  rs   rs   rs   rt   rR  Ã  s2    
ÿ
þ
rR  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
ejjddd�ej d¡dd„ ƒƒZdd„ Zedd„ ƒZdS )Ú	TestGMeanc                 C   rS  rT  ©rM  rV  rs   rs   rt   rW  8  rX  zTestGMean.test_0c                 C   sj   g d¢}d}t |||d� g d¢}tddƒ}t ||d|d� tg d¢tƒ}tddƒ}t |||j|d	� d S )
Nr  gs©ÑÅ¤F@r‰  r'  rñ  r.  rÍ  ©r+  rk   )r
  rk   )rM  r   r   r   rV  rs   rs   rt   rY  =  s   

zTestGMean.test_1dc                 C   s,   g d¢g d¢g d¢g}d}t |||d� d S )Nr`  ra  rb  g/,$»qJ@r‰  rŒ  rV  rs   rs   rt   rd  L  s   zTestGMean.test_2dc                 C   sp   g d¢g d¢g d¢g}t  g d¢¡}t||d|d� tg d¢g d¢g d¢gƒ}tg d¢ƒ}t||dd|d	� d S )
Nr`  ra  rb  )gù4@ÌÒÈA@g5ÇÁ¾€©H@g`8|wÐ­N@gm~Ó&Ô+R@r   ri  r'  rÍ  ©rS   r+  rk   ©rŠ   r   rM  rV  rs   rs   rt   rj  R  s   zTestGMean.test_2d_axis0c                 C   s|   g d¢g d¢g d¢g}t  g d¢¡}t||d|d� tg d¢g d¢g d¢gƒ}tdd	ƒ}t|||gƒ}t||dd
|d� d S )Nr`  ra  rb  )gDŠ" 6"6@gñ¡ÑcP@g
øÒ§Z@r   ri  r'  rñ  r.  rÍ  rŽ  )rŠ   r   rM  r   )rj   rk   ró   rö  rÝ  rs   rs   rt   rq  \  s   
zTestGMean.test_2d_axis1c                 C   s$   t g d¢ƒ}d}t||d|d� d S )N)g}Ã”%­I²Tr  gœu ˆ<ä7~r  rl  r�  )r   rM  rV  rs   rs   rt   Útest_large_valuesg  s   zTestGMean.test_large_valuesc                 C   sL   g d¢}d}t jdd�� t|||d� W d   ƒ d S 1 sw   Y  d S )N)
rX   r‹  rê  rë  ré  rb  r  rd  rJ  r   r”   r?  rª  r‰  )rŠ   rB  rM  rV  rs   rs   rt   Útest_1d_with_0l  s
   "ÿzTestGMean.test_1d_with_0c                 C   sN   g d¢}t j}t jdd�� t|||d� W d   ƒ d S 1 s w   Y  d S )N)
rX   r‹  rê  rë  ré  rb  r  rd  rJ  r^   r?  r@  r‰  )rŠ   ri   rB  rM  rV  rs   rs   rt   Útest_1d_negs  s
   "ÿzTestGMean.test_1d_negTrs  r�   rG   c                 C   rt  )Nr2  ©r0   r3   r4   r2   r1   çGZ*oG8@rw  rx  r*  )re   r  r.   rŠ   rb   ry  rs   rs   rt   rz  z  s
   zTestGMean.test_weights_1d_listc                 C   r{  )Nr2  r“  r”  rx  r|  r�  r}  rs   rs   rt   r~  Œ  r  zTestGMean.test_weights_1dc                 C   r„  )Nr  )r0   r3   r4   r2   r1   r3   )r   r   r   r   r   r   r  r”  rx  rˆ  )rŠ   r   rt  rM  r¶   r}  rs   rs   rt   r‰  ”  rŠ  z&TestGMean.test_weights_masked_1d_arrayN)r²   r³   r´   rW  rY  rd  rj  rq  r�  r‘  r’  r  r  rG   r™  rz  r~  r'   r‰  rs   rs   rs   rt   r‹  6  s$    
þ
r‹  c                
   @   s~  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zeddd�e	j
 d¡dd„ ƒƒZe	j
 dddgddgddggdfe ddgddgddgg¡dfg¡dd„ ƒZe	j
 dg d¢g d¢g d¢gdfg d¢g d¢g d¢gdfg¡d d!„ ƒZe	j
 dg d¢g d¢g d¢gdfg d¢g d¢g d¢gdfg¡d"d#„ ƒZd$d%„ Ze	j
jd&d'd(�e	j
 d¡d)d*„ ƒƒZed+d,„ ƒZe	j
 d-g d.¢¡d/d0„ ƒZd1S )2Ú	TestPMeanc                 C   s   t  | | ¡| j d|  S rÇ  )rŠ   rÆ  rM  ©ró   r  rs   rs   rt   Úpmean_reference£  s   zTestPMean.pmean_referencec                 C   s$   t  || |  ¡t  |¡ d|  S rÇ  )rŠ   rÆ  )ró   r  rF  rs   rs   rt   Úwpmean_reference¦  s   $zTestPMean.wpmean_referencec                 C   sž   t jtdd�� t | g d¢¡| dg¡¡ W d   ƒ n1 s!w   Y  t jtdd�� t | g d¢¡| dg¡¡ W d   ƒ d S 1 sHw   Y  d S )NzPower mean only defined forr–   r:  r   )r  r   rž   re   rP  rb   r’  rs   rs   rt   Útest_bad_exponent©  s    ÿ "ÿzTestPMean.test_bad_exponentc                 C   sŒ   g d¢d}}t  t |¡|¡}t||||d� g d¢d}}t  t |¡|¡}t||||d� g d¢d}}t d¡}t||||d� d S )Nr  r<   r‰  g      Àr'  r0   r@   )r•  r—  rŠ   r   rQ  rð   ©rj   rk   ró   r  rö  rs   rs   rt   rY  ¯  s   
zTestPMean.test_1dc                 C   s.   t  ddg¡d}}d}t|||d|d� d S )Nr   r   r^   r”   r�  )rŠ   r   rQ  rš  rs   rs   rt   r\  ¼  s   zTestPMean.test_1d_with_zerorF   r]  rD   rG   c                 C   s^   t  g d¢¡d}}d}tjt|d�� t|||j|d� W d   ƒ d S 1 s(w   Y  d S )Nr^  ç®Gáz®ó?z!The power mean is only defined...r–   r‰  )rŠ   r   r  r  rœ   rQ  ri   )rj   rk   ró   r  rA  rs   rs   rt   r_  Á  s
   "ÿz%TestPMean.test_1d_with_negative_valuer–  rX   r‹  ré  rb  rJ  rJ  ræ  r9   c                 C   s&   t  t |¡|¡}t||||d� d S )Nr‰  )r•  r—  rŠ   r   rQ  ©rj   ró   r  rk   rö  rs   rs   rt   Útest_2d_axisnoneË  s   zTestPMean.test_2d_axisnoner`  ra  rb  rl  c                    s6   ‡ ‡fdd„t tˆ d ƒƒD ƒ}tˆ ˆ|d|d� d S )Nc              
      s6   g | ]‰ t  t ‡‡ fd d„ttˆƒƒD ƒ¡ˆ¡‘qS )c                    s   g | ]}ˆ | ˆ ‘qS rs   rs   rñ  )ró   ró  rs   rt   rô  Ü  ó    z6TestPMean.test_2d_axis0.<locals>.<listcomp>.<listcomp>)r•  r—  rŠ   r   rj  r×  rö  r–  rù  rt   rô  Ú  s    ý"ÿÿz+TestPMean.test_2d_axis0.<locals>.<listcomp>r   ri  )rj  r×  rQ  rœ  rs   r–  rt   rj  Ô  s   üzTestPMean.test_2d_axis0c                    s(   ‡ fdd„|D ƒ}t |ˆ |d|d� d S )Nc                    s   g | ]}t  t |¡ˆ ¡‘qS rs   )r•  r—  rŠ   r   )rò  Úa_©r  rs   rt   rô  è  s    z+TestPMean.test_2d_axis1.<locals>.<listcomp>r   ri  )rQ  rœ  rs   r   rt   rq  â  s   zTestPMean.test_2d_axis1c                 C   sB   g d¢d}}g d¢}t  t |¡||¡}t||||d|d� d S )Nru  çÞƒBÊÀó¿rv  rx  r|  )r•  r˜  rŠ   r   rQ  ©rj   rk   ró   r  rF  rö  rs   rs   rt   r~  ë  s   zTestPMean.test_weights_1dTrs  r�   c                 C   sR   g d¢d}}g d¢}t  t |¡||¡}tj|||d�}t|t |¡dd� d S )Nru  r¡  rv  rw  rx  r*  )r•  r˜  rŠ   r   re   rP  r.   rb   )rj   rk   ró   r  rF  rö  r‹   rs   rs   rt   rz  ñ  s
   zTestPMean.test_weights_1d_listc              	   C   s\   t  g d¢¡d}}t jjg d¢g d¢d�}t j||d�}t j}t||||dt j|d� d S )	Nr…  r   r†  r‡  r  rw  rx  rˆ  )rŠ   r   rt  ÚaveragerQ  r¶   r¢  rs   rs   rt   r‰     s   
ÿz&TestPMean.test_weights_masked_1d_array)rS   Úfun_namer  ))Nr˜  g3öˆEÊÀ#@)r   r  r   )r   rN  r^   c           	   	      s€   |dkr‡ fdd„}nt t|ƒ}t ddgddgddgg¡}t ddgddgd	dgg¡}||||d
�}t|ˆ |||d|d� d S )Nr˜  c                    s   t  | ˆ |¡S rð  )r•  r˜  )ró   rS   rF  r   rs   rt   Úfun  r'  z&TestPMean.test_weights_2d.<locals>.funr0   r3   rX   r4   r   r1   )rS   rF  rx  r€  )r  re   rŠ   r   rQ  )	rj   rS   r¤  r  rk   r¥  ró   rF  rö  rs   r   rt   Útest_weights_2d	  s   
zTestPMean.test_weights_2dN)r²   r³   r´   r—  r˜  r™  rY  r\  rG   r  r  r™  r_  r€  rŠ   r   r�  rj  rq  r~  rz  r'   r‰  r¦  rs   rs   rs   rt   r•     s\    ÿ
ÿþ
ÿþ
	ÿþ
þ


þr•  c                   @   s¦   e Zd Ze d¡d ZdZe ddd¡Zdd„ Z	d	d
„ Z
dd„ Zej dddejejf¡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 )#ÚTestGSTDrñ  r   gvé aòZ@r0   r1   r2   c                 C   s   t  | j¡}t|| jƒ d S rð  )re   r  Úarray_1dr
   Úgstd_array_1d©rj   Úgstd_actualrs   rs   rt   Útest_1d_array!  s   zTestGSTD.test_1d_arrayc                 C   s    t  t| jƒ¡}t|| jƒ d S rð  )re   r  r  r¨  r
   r©  rª  rs   rs   rt   Ú test_1d_numeric_array_like_input%  ó   z)TestGSTD.test_1d_numeric_array_like_inputc                 C   s>   t jtdd�� t d¡ W d   ƒ d S 1 sw   Y  d S )Nzufunc 'log' not supportedr–   z*You cannot take the logarithm of a string.)r  r   r¹  re   r  rØ  rs   rs   rt   Ú)test_raises_value_error_non_numeric_input)  s   "ÿz2TestGSTD.test_raises_value_error_non_numeric_inputÚ	bad_valuer   r^   c                 C   sr   t  | j|g¡}t  |¡r,d}tjt|d�� t |¡}W d   ƒ n1 s&w   Y  nt |¡}t	|t j
ƒ d S )Nz3The geometric standard deviation is only defined...r–   )rŠ   r·  r¨  rw  r  r  rœ   re   r  r   ri   )rj   r°  rl   rA  r‹   rs   rs   rt   Útest_returns_nan_invalid_value.  s   
ÿ€
z'TestGSTD.test_returns_nan_invalid_valuec                 C   sB   t g d¢tjdddggƒ}tj|dd�}t|t  dtjg¡ƒ d S )N)r   r   r   rˆ   r   r0   r1   rR   r2   )r   rŠ   ri   re   r  r
   )rj   ró   r«  rs   rs   rt   Útest_propagates_nan_values9  s   z#TestGSTD.test_propagates_nan_valuesc                 C   sP   t jtdd�� ttj| j| jjd�tj	ƒ W d   ƒ d S 1 s!w   Y  d S )NzDegrees of freedom <= 0r–   rÍ  )
r  r  rœ   r   re   r  r¨  rM  rŠ   r’  rØ  rs   rs   rt   Ú)test_ddof_equal_to_number_of_observations>  s   "ÿz2TestGSTD.test_ddof_equal_to_number_of_observationsc                 C   s    t j| jd d�}t|| jƒ d S rb  )re   r  Úarray_3dr
   r©  rª  rs   rs   rt   Útest_3d_arrayB  r®  zTestGSTD.test_3d_arrayc                 C   s"   t j| jdd�}t|ddgƒ d S )NrS  rR   g~ßdÀþ@g<ë…È
Šó?)re   r  r´  r
   rª  rs   rs   rt   Útest_3d_array_axis_type_tupleF  s   z&TestGSTD.test_3d_array_axis_type_tuplec                 C   s:   t j| jdd�}t g d¢g d¢g d¢g¡}t||ƒ d S )Nr   rR   )g¢ÁÄ¶?ˆ@gQ¾”ßÓ«@gµÖŒ÷@gÊ×Ÿ7R@)g%È€‚ª@gÂ–¤òŠe@gv6ÈB5 @gœ ã_·•þ?)gÇÛE£è ý?gÞ©³»ñû?gkÌŠYôú?g%:ŒÔú?©re   r  r´  rŠ   r   r
   ©rj   r«  Úgstd_desiredrs   rs   rt   Útest_3d_array_axis_0J  s   ýzTestGSTD.test_3d_array_axis_0c                 C   ó4   t j| jdd�}t g d¢g d¢g¡}t||ƒ d S )Nr   rR   )gNÃÊî²ó@g§85@g§�'Ä¥ñþ?gwtœhçâû?)gHnÆaÛXô?gGè¦ô?gBu•ÕÒó?gƒŒ Ešó?r·  r¸  rs   rs   rt   Útest_3d_array_axis_1S  ó   þzTestGSTD.test_3d_array_axis_1c                 C   r»  )Nr0   rR   )gtüƒ80ý?g‘ÐÑ–—ó?gæÐÿúò?)gÛ˜]è~ñ?g—mT6¿(ñ?g³	Gòð?r·  r¸  rs   rs   rt   Útest_3d_array_axis_2[  r½  zTestGSTD.test_3d_array_axis_2c                 C   s�   t j | jdk| j¡}d}tjt|d�� tj|dd�}W d   ƒ n1 s&w   Y  tj| jdd�}g d¢g d¢g}t	||ƒ t
|j|ƒ d S )Nrˆ   z:`gstd` support for masked array input was deprecated in...r–   r0   rR   r/  rG  )rŠ   rt  Úmasked_wherer´  r  r  rz  re   r  r
   r   r  )rj   rt  rA  r«  r¹  r  rs   rs   rt   Útest_masked_3d_arrayc  s   ÿ
zTestGSTD.test_masked_3d_arrayN)r²   r³   r´   rŠ   r   r¨  r©  rg   r´  r¬  r­  r¯  r  r  r€  r’  ri   r±  r²  r³  rµ  r¶  rº  r¼  r¾  rÀ  rs   rs   rs   rt   r§    s"    

	r§  c               	   C   s’   t  t  ddd¡t  ddd¡t  ddd¡f¡} d}d	}g d
¢}t| |ƒD ]\}}tt |||¡j|dd|› �d� q$tt ddd¡jddd� d S )Nr²  rý  r3   r-  gÍÌÌÌÌÌä?rö  çffffffî?rÿ  iÂ  )r”   r”   g»¿s ÖÑ g‚ÕG|G{ðg	ÙÉºM>6g>
zªÍtt+g#ÓŒR´M/gF×¸fzâ¤2gšUÁ8u¥5g´ÎíâË8M8gÐ¤)ØBa?g%£ªŸ‡Õ¾?g*+a£5ì?g·øö›Å›?gÚ’Jç|åÅ>rZ   z
fail forp=)r‰  Úerr_msgré  rJ  gVèÝ¶3;rˆ  )rŠ   rv  rÿ  r¦  r	   re   Ú	binomtestrå   )Úpprú  rl   r%  r  r‹   rs   rs   rt   Útest_binomtestn  s   þ
ÿ
þrÅ  c                     s„   ddgg d¢g d¢g d¢g d¢g d¢g d¢g d¢g d	¢g d
¢g
} t ddƒD ]‰ ‡ fdd„t ˆ d ƒD ƒ}t|| ˆ d  dd� q%d S )Nr½   )r9   r½   r9   )r.  r½   r½   r.  )rª  r�  r½   r�  rª  )r¬  ç      Ø?r½   r½   rÆ  r¬  )r­  ç      Ì?ç      æ?r½   rÈ  rÇ  r­  )r©  rª  ç      Ý?r½   r½   rÉ  rª  r©  )	ç      €?ç      ²?ç     €Ò?ç     @ç?r½   rÍ  rÌ  rË  rÊ  )
ç      p?ç      ¤?ç      Ç?ç     @à?r½   r½   rÑ  rÐ  rÏ  rÎ  )ç      `?ç      –?ç      ¼?ç      Ö?ç      è?r½   rÖ  rÕ  rÔ  rÓ  rÒ  r   rY   c                    s   g | ]
}t  |ˆ d ¡j‘qS )r9   )re   rÃ  rå   )rò  rÝ  rˆ  rs   rt   rô  ™  r  z#test_binomtest2.<locals>.<listcomp>rX   r$  )rj  r   )r]  r  rs   rˆ  rt   Útest_binomtest2…  s   óþr×  c                  C   sŽ   dd„ t ddƒD ƒ} t| t t| ƒt¡ƒ t g d¢¡}t g d¢¡}dd„ t ddƒD ƒ}dd„ t ddƒD ƒ}t||d	d
� t||d	d
� d S )Nc              	   S   s4   g | ]}t d dƒD ]}t ||| d| ¡j‘q	qS )r0   rY   r½   ©rj  re   rÃ  rå   ©rò  rÝ  rç  rs   rs   rt   rô     s
    
ÿÿz#test_binomtest3.<locals>.<listcomp>r   rY   )Zr9   grÇqÇá?g     €â?glÞqŠŽäâ?gx0f¥Ñ#ã?g%d)’MOã?g   	oã?gÀ¹ß6‡ã?gÊ:¾X@šã?r�  gàs¦–wå?g    €æ?gR'jMVæ?gEƒÅÇf†æ?g¶F5a§æ?gAéQU¿æ?g'W®æ…Ñæ?gk¼å˜Îßæ?rÈ  gÒ
Å†Bç?g  €�½ç?g€µ$·Üþç?g{dŸ•U'è?gDà:½çBè?gÀ¯wŽæVè?gR0àNfè?gOž‚¸÷qè?rÍ  g[ƒk¦^è?g €T+Ëè?gÊO°‚é?gggªh(é?gî·PÔ-@é?g´ôO°Qé?g×Ç}ö^é?gVÿ7“_ié?rÖ  gäÔþ‡e$é?gþÿùÑ€†é?gó#‰>ºé?g5Íz@Úé?gô:÷ðé?g�fÈÿé?gzPÀºê?g ¼Ý ê?ç     Èè?gg*)·,¸é?g}ãA _ê?g}–æaâAê?gHÛ]×@_ê?g�
y7sê?gÂP‘G¬�ê?g>)\R Œê?gÄjc‚6•ê?çüÿÿÿÿKé?gäoð; ,ê?g!æO0ïê?g�í“õ¬ê?gì¹Ù}eÇê?gôŠ5ñÙê?g?„!A^çê?gNÅ/#Šñê?g›Æ*ƒùê?ç    @·é?gÏéŒñ‰ê?gŠßñÀØê?g—…¢¥3ë?g.1Íë?gdT\1-ë?gt0W5È9ë?g¢ŽºoQCë?gXÔ4ÌÊJë?ç    ê?gÙ
ù€Øê?gf?Cè¤"ë?gä\ã6ÑIë?g´—º4bë?g|Ø$orë?gÍÍWNS~ë?g¸¢ùT‡ë?gXnõcŽë?ç   ˜\ê?gY\ÖÆë?gp ¶^aë?g“X-Kš†ë?g®#c¬–�ë?g��
3­ë?g7é5Q¸ë?gMJ[¿Áë?gP8ýRÂÇë?)Zr9   gw	í%´—Ð?g     ÀÐ?gãS ŒgÐÐ?g²±v^«ØÐ?gÔ*uCiÝÐ?g  ÀaàÐ?gžöŒƒ]âÐ?g¯E9QÁãÐ?r�  g/¡½„öÚ?g     ûÚ?g	x­²&~Û?gÉ#ò´ŸÒÛ?g5üB�Ü?g	¦AÅ'9Ü?gÁ»†pžZÜ?gWV¤$uÜ?rÈ  gqº–Ib‰ß?g  @«Nà?g1Ó÷®Y›à?g°ÒäÑ5Ìà?gOŒ¨îà?gc»-ñá?gk¦Áöøá?g Ü)á?rÍ  glMÊV–á?gÿÿ¢?$â?gâšTÝ*râ?gÅCqRv£â?gÀr¨‹xÅâ?g¢òÏ‰ZÞâ?gE©xàYñâ?gö<ƒÈT ã?rÖ  gJ9Ï½dèâ?g `Ô–™tã?g’T�ÿóÀã?gEáðzñã?gù×Qä?g¬7‰C<*ä?g‘¿æ¢<ä?gÿ~Ä Kä?rÚ  g¹Ù8ìã?g~È�EŸtä?g¬â¿’¾ä?g€Ð<vûìä?gHEì:Õå?g8ÉZ$å?g†ÙbÂº5å?gvýÒá£Cå?rÛ  gÍ`Yëw»ä?gA?$ß?å?gÈEÑ=‡å?g„4¸ë³å?gàôÚ3‰Òå?g•{G9Ôèå?gªpåýÉùå?g½âH æ?rÜ  gúòz6få?gÂ¯ÉøFæå?g–Ø(é+æ?g¶	ÞÍ$Væ?gq^wõ•sæ?g!­‰æ?gXÌNùJ™æ?gK©Ü¦æ?rÝ  g4ÄPª´õå?g‘<ÍìÃqæ?gdVÕè;´æ?gÓy´Ýæ?g$‘wúæ?gU<vO­ç?gÉMÜXç?g	È™z§*ç?rÞ  giÀqS°pæ?gªšMMâèæ?g0çV$)ç?g]
yi/Qç?gûê‹lç?gÃö«�l€ç?g‘ß3È†�ç?gÑ¾_‘c›ç?c              	   S   s8   g | ]}t d dƒD ]}t |d || d| ¡j‘q	qS ©r0   rY   r   r½   rØ  rÙ  rs   rs   rt   rô  ò  ó
    
ÿ"ÿc              	   S   s8   g | ]}t d dƒD ]}t |d || d| ¡j‘q	qS rß  rØ  rÙ  rs   rs   rt   rô  ô  rà  r[   r$  )rj  r   rŠ   ru  r×  r°  r   r   )r.  Úbinom_testm1Úbinom_testp1Úres4_p1Úres4_m1rs   rs   rt   Útest_binomtest3�  s   ÿ	(ÿÿrå  c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚTestTrimc                 C   sr  t  d¡}tt  t |d¡¡t  d¡ƒ tt  t |d¡¡t  d¡ƒ tt  tj|ddd�¡t  dd¡ƒ tt  tj|d	dd�¡t  d
d¡ƒ tt |d¡g ƒ ttj|ddd�g ƒ tt g d¡g ƒ ttjg d	dd�g ƒ tt g d¡g ƒ t  d¡ dd¡}t  dd¡ dd¡}d}tj|dd|d�}tt j||d�|ƒ d}tj|jdd|d�}tt j||d�|jƒ d S )NrY   r²  rX   rý  r7   Úleft)Útailr0   çtÑE]tÑ?r1   r½   r¶  rñ  r4   r2   r3   r   )rè  rS   rR   r   )rŠ   r   r   Úsortre   Útrim1rg   ri  )rj   ró   r\  rS   Útrimmedrs   rs   rt   Ú
test_trim1ý  s,   

ÿ
ÿzTestTrim.test_trim1c              	   C   s  t  d¡}tt  t |d¡¡t  dd¡ƒ tt  t |d¡¡t  g d¢¡ƒ tt  t t  d¡ dd	¡d¡¡t  d	d
¡ d	d	¡ƒ tt  t t  d¡ d	d¡jd¡¡t  g d¢g d¢g¡ƒ t	t
tjt  d¡ d	d¡jdƒ tt g d¡g ƒ tt g d¡g ƒ tt g d¡g ƒ d S )NrY   ré  r1   r6   rý  )r0   r1   r2   r3   r4   r5   r6   rñ  r4   r2   r‹  rú   )r0   r6   rV   r‹  )r1   r7   rŠ  rU   r¶  r²  )rŠ   r   r   rê  re   Útrimbothr   rg   ri  r�   rž   )rj   ró   rs   rs   rt   Útest_trimboth  s&   
 ÿ ÿÿþÿzTestTrim.test_trimbothc           
      C   sÈ  t  g d¢¡}t  g d¢¡}t  d¡ dd¡|d d …f }t  d¡jdddd�|d d …f }tt |d¡t  g d	¢¡ƒ tt |d¡t  g d
¢¡ƒ t  g d¢¡}t  d¡ dd¡|d d …f }tt |d¡t  g d¢¡ƒ g d¢}tt |d¡dƒ tt g d¢d¡dƒ t j d¡ t jj	ddd�}dD ]}tj|d|d�}t t  
||d¡d¡}	t||	ƒ q–tj|dd d�}t | ¡ d¡}	t||	ƒ tttj|dƒ tt g d¡t jƒ tt g d¡t jƒ d S )N)r2   r6   r0   r   r7   r3   rX   r   r5   r1   r4   )r1   r3   r   r   r0   r2   rñ  r4   r2   ÚFr�  rú   )r;   rA   g      -@g     €4@r  )r   r   r1   r0   )r©   r‡   r„  rÎ  r  r\  )r5   rY   rZ   rU   rˆ   r4   r›  r   r3   r   rJ  rX   r`   r7   rK  rŠ  r—  r‹  r0   rV   r2   r[   r6   r1   rW   )r3   r2   r1   r   r0   r   r;   rz  r‹  )r3   r4   r2   r5   rL  )r   r   r0   r1   r^   rR   r   r2  r”   )rŠ   r   r   rg   r   re   Ú	trim_meanrV  rÜ  r„  r^  rp  r�   rž   ri   )
rj   ró   Úidxri  rj  Úidx4Úa4rS   r  r]  rs   rs   rt   Útest_trim_mean+  s<   "ÿÿÿ
zTestTrim.test_trim_meanN)r²   r³   r´   rí  rï  rõ  rs   rs   rs   rt   ræ  û  s    ræ  c                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚTestSigmaClipc                 C   sœ   t  t  ddd¡t  ddd¡f¡}d}t |¡\}}}t| ¡ |kƒ t| ¡ |k ƒ t|| 	¡ || 
¡   ƒ t|| 	¡ || 
¡   ƒ t|j|jƒ d S )Nr‡  r]   é   r   r‹  r3   r2   ©rŠ   rv  rÿ  re   Ú	sigmaclipr   ÚminÚmaxr   rh   rƒ   rM  ©rj   ró   ÚfactrÎ  r  Úupprs   rs   rt   Útest_sigmaclip1S  s   "zTestSigmaClip.test_sigmaclip1c                 C   sª   t  t  ddd¡t  ddd¡f¡}d}t |||¡\}}}t| ¡ |kƒ t| ¡ |k ƒ t|| 	¡ || 
¡   ƒ t|| 	¡ || 
¡   ƒ t|jdƒ t|jd	ƒ d S )
Nr‡  r]   r÷  r   r‹  r3   r:   r2   é$   rø  rü  rs   rs   rt   Útest_sigmaclip2]  s   "zTestSigmaClip.test_sigmaclip2c                 C   s¦   t  t  ddd¡t  ddd¡f¡}d}t |||¡\}}}t| ¡ |kƒ t| ¡ |k ƒ t|| 	¡ || 
¡   ƒ t|| 	¡ || 
¡   ƒ t|t  ddd¡ƒ d S )Nr‡  r]   rY   éœÿÿÿéÎÿÿÿr1   çÍÌÌÌÌÌü?)rŠ   rv  rÿ  re   rù  r   rú  rû  r   rh   rƒ   rü  rs   rs   rt   Útest_sigmaclip3h  s   ÿzTestSigmaClip.test_sigmaclip3c                 C   sF   t  t  ddd¡t  ddd¡f¡}d}t |||¡}d}t||ƒ d S )	Nr‡  r]   rY   r  r  r1   r  )ÚclippedrQ  rR  )rŠ   rv  rÿ  re   rù  r   )rj   ró   rý  r‹   rè   rs   rs   rt   Ú test_sigmaclip_result_attributess  s   ÿz.TestSigmaClip.test_sigmaclip_result_attributesc                 C   s"   t  d¡}tt |¡d |ƒ d S )NrX   r   )rŠ   ru  r   re   rù  rá  rs   rs   rt   Útest_std_zero{  s   
zTestSigmaClip.test_std_zeroN)r²   r³   r´   rÿ  r  r  r  r  rs   rs   rs   rt   rö  R  s    
rö  c                   @   sŠ   e Zd Zdd„ Zej dddgg fddgdfddgdgfg¡dd„ ƒZdd	„ Zd
d„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTestAlexanderGovernc           
      C   sÜ   g d¢g d¢g d¢g d¢g}dd„ |D ƒ}dd„ |D ƒ}dd„ |D ƒ}d	d„ |D ƒ}t j|Ž }t j|Ž }t j|Ž }t j|Ž }	|j|j  krR|j  krR|	jksUJ ‚ J ‚|j|j  kri|j  kri|	jkslJ ‚ J ‚d S )
N)	r[   r[   r[   r[   r[   r[   r[   rZ   rZ   )	rV   r[   rZ   rZ   rZ   rZ   rZ   rY   rY   )	rV   rV   r[   r[   r[   r[   r[   rZ   rZ   )	rŠ  rV   r[   r[   r[   rZ   rZ   rZ   rY   c                 S   ó   g | ]
}t j|t jd �‘qS ©r  )rŠ   rb   rÐ  ©rò  Úargrs   rs   rt   rô  ‡  r  z;TestAlexanderGovern.test_compare_dtypes.<locals>.<listcomp>c                 S   r
  r  )rŠ   rb   r-  r  rs   rs   rt   rô  ˆ  r  c                 S   r
  r  )rŠ   rb   r¸  r  rs   rs   rt   rô  ‰  r  c                 S   r
  r  )rŠ   rb   r¶   r  rs   rs   rt   rô  Š  r  )re   Úalexandergovernrå   ræ   )
rj   r  Ú
args_int16Ú
args_int32Ú
args_uint8Úargs_float64Ú	res_int16Ú	res_int32Ú	res_uint8Úres_float64rs   rs   rt   Útest_compare_dtypes‚  s.   ý



ÿÿÿÿz'TestAlexanderGovern.test_compare_dtypesr>  r   r0   c                 C   rò  r’  )r  r  r   r   re   r  r   ræ   rŠ   ri   rå   ró  rs   rs   rt   Útest_too_small_inputs–  rõ  z)TestAlexanderGovern.test_too_small_inputsc                 C   sd   t jdd�� t ddgt jt jg¡}W d   ƒ n1 sw   Y  t|jt jƒ t|jt jƒ d S )Nr?  r@  r   r0   )	rŠ   rB  re   r  r’  r   ræ   ri   rå   r  rs   rs   rt   Útest_bad_inputsž  s
   ÿz#TestAlexanderGovern.test_bad_inputsc                 C   sd   g d¢}g d¢}g d¢}t  |¡t  |¡t  |¡}}}t |||¡}t|jdƒ t|jdƒ dS )a„  
        Data generated in R with
        > set.seed(1)
        > library("onewaytests")
        > library("tibble")
        > y <- c(rnorm(40, sd=10),
        +        rnorm(30, sd=15),
        +        rnorm(20, sd=20))
        > x <- c(rep("one", times=40),
        +        rep("two", times=30),
        +        rep("eight", times=20))
        > x <- factor(x)
        > ag.test(y ~ x, tibble(y,x))

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

        statistic  : 1.359941
        parameter  : 2
        p.value    : 0.5066321

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

        )(g5·ßãÀgÈÊÒbý?gl†"k¶ Àg†^ösÖç/@güûé´Q\
@gÞÆRÌh ÀgIäF@gpZ>êqˆ@gßï7D @gÉ-ÑªZnÀgç(ÐQ<.@gºO¬Ný/@g	Oè€ÙÀg�ÒÒ·¡%6Àg•­ùs¥&@g‘w)ìÁÜ¿g78ž´9¹Ä¿g€z�ÿpà"@g‘z§l @g57ó­ŒÁ@g>m@*a"@g–,ZbI@gX°9
]Üç?gÕÀ‡½ä3Àg”1Ë@g÷®Íûöá¿g"ÚJbíø¿gy:‹�@j-Àgˆâ2®A Àg£à;¹¸·@gL97vp,+@gÔîšp/rð¿gøÎ"½ƒ@gfT|µ7á¿g^v˜€‹Š+ÀgÙ˜Y‹™Àg0/šé‹Àg›ŒÜôúâ¿güÑlA! &@gÝoë†@)g!‰_5*¾Àgq‚TEgÀgŒ1ÌÀ­è$@g	´³a,³ @gö·ÂË¤©$Àg´ë�9%ÀgZµ›úß@gÖÉT6U'@gž‡S �öú¿g‡6aGèn*@g�O¿èâ@gåëÙ\\"Àgø^±4™w@g¥Áð0Àgrû¥žÏ~5@gDôP¼´=@gÙ¿Ô™…Àg:…Ã4ôR/ÀgO¢x]r!@gÅUŸà4 Àg°ta)B@g,GÐÀÏÕâ¿g³Ä2±$@gD%­ÏáÚ?gˆI,—VL&Àg·’³§@gÕÌÑ‡
;Àg–˜»û5@gWÀòJñc@g°Y•jK@@)g­j³7#@g<ØÌøÙe,Àg¢ù}Öm(@gŒ©Ÿr”®2Àg#Ð^š9Àgr/§£ÑP@gÜ:RO»!Àg'¬Ø9£–?g6F÷�
Ê÷?gÊcÊ±”'Àgt‡„ö*¿&Àgšìƒê ÀgÜ~*0Î�7@gÿWz©x>ÀgëIKÂ'@gê?œ×Ò¢@g°²ý7C5@g;C>Ï¯UÀgµŸ×7ü™@g)n}è.^@g¹FQÂõ?gsýdlT6à?N©rŠ   rb   re   r  r
   ræ   rå   )rj   r  ÚtwoÚeightÚsolnrs   rs   rt   Útest_compare_r¥  s   "z"TestAlexanderGovern.test_compare_rc                 C   s†   g d¢}g d¢}g d¢}t  |¡t  |¡t  |¡}}}t |||¡}t|jddd� t|jddd� 	 t|jd	ƒ t|jd
ƒ dS )zØ
        Data taken from 'The Modification and Evaluation of the
        Alexander-Govern Test in Terms of Power' by Kingsley Ochuko, T.,
        Abdullah, S., Binti Zain, Z., & Soaad Syed Yahaya, S. (2015).
        )g{®Gá&~@gö(\�ÂE~@g=
×£p�~@gfffffò~@g¤p=
×ó~@g×£p=
k@gR¸…ë‰@g¸…ëQ2€@gÍÌÌÌÌ8€@gÍÌÌÌÌ`€@g)\�Âõ`€@g=
×£p™€@g�Âõ(\#�@gÍÌÌÌÌà�@g=
×£pE‚@g…ëQ¸ƒ@g
×£p=ƒ@g×£p=
Õ„@g33333#…@)g=
×£pùt@g{®Gá&u@gq=
×£v@g¸…ëQDy@g     X{@g\�Âõ(P}@gš™™™™]~@gÍÌÌÌÌt~@gáz®GÑ~@g)\�Âõä~@gš™™™™1@gáz®G³‹@)g®Gáz8€@g     „€@g¤p=
×‘€@g
×£p=À€@g®GázÔ€@gq=
×£Ö€@gR¸…ëi�@g{®Gát�@gš™™™™w�@g=
×£p«�@g…ëQ¸S‚@gìQ¸…•‚@gö(\�Â©ƒ@gìQ¸…-„@g…ëQ¸ž…@g]ÜFxK@rT  rí   g R›8¹ß±?r  g.Ui‹kL@göç&Z‡Ý±?Nr  )rj   ÚyoungÚmiddleÚoldr  rs   rs   rt   Útest_compare_scholaré  s   "z(TestAlexanderGovern.test_compare_scholarc                 C   sp   g d¢}g d¢}t  |¡t  |¡}}t ||¡}t|jddd� t|jddd� 	 t|jdƒ t|jdƒ d	S )
aA  
        Data taken from 'Robustness And Comparative Power Of WelchAspin,
        Alexander-Govern And Yuen Tests Under Non-Normality And Variance
        Heteroscedasticity', by Ayed A. Almoied. 2017. Page 34-37.
        https://digitalcommons.wayne.edu/cgi/viewcontent.cgi?article=2775&context=oa_dissertations
        )g›¬QÑhü¿gM„O¯”ö¿gYÝê9æ¿gÀnÝÍSá¿g„dÈ¿gŠ}"O²¿gÐ¸p $¨?gë8~¨4ª?g
pÃ?g•�Zº‚Å?gá)äJ=Û?g·´÷XÝ?gpê”G·ã?gá›¦Ï¸æ?gù†Âgëàê?gýh8enë?g¹§«»í?guw�ùgï?gbÀ’«Xüï?gŸ9ëSŽIú?)g°�N]ù¬÷¿g	ŠcîZô¿gAJ˜ií¿gMg'ƒ£äé¿gãkÏ,	Pè¿gÉ<÷ç¿gÎˆÒÞà×¿g%zÅrKÕ¿gøü0BxÒ¿gëÅPN´«¸¿g½:Ç€ìõ¶¿gv‰ê­�­’¿gê?k~ü¥Ð?gIò\ß‡ƒÒ?gŠ­ i‰•à?g†<‚)Ûå?g�0Xrì?g¦
F%uÂò?gs�FZ*oõ?g£7ün:ù?gñ[z4Õæ?rx  rí   gO²žZ}Ù?g¦9Ã$Õæ?gê6MDd}Ù?Nr  )rj   r  r  r  rs   rs   rt   Útest_compare_scholar3  s   z)TestAlexanderGovern.test_compare_scholar3c                 C   sH   t  g d¢¡t  dt jg¡f}tj|Ž }t|jt jƒ t|jt jƒ d S )Nr'  r   ©rŠ   rb   ri   re   r  r   rå   ræ   )rj   r  r‹   rs   rs   rt   Útest_nan_policy_propagateO  s   
z-TestAlexanderGovern.test_nan_policy_propagatec                 C   s`   t  g d¢¡t  dt jg¡f}ttdd�� tj|ddiŽ W d   ƒ d S 1 s)w   Y  d S )Nr'  r   r•   r–   r“   r˜   )rŠ   rb   ri   r�   rž   re   r  )rj   r  rs   rs   rt   Útest_nan_policy_raiseV  s   "ÿz)TestAlexanderGovern.test_nan_policy_raisec                 C   s€   t  dddt jdg¡t  dt jddg¡f}t  g d¢¡t  g d¢¡f}tj|d	d
iŽ}tj|Ž }t|j|jƒ t|j|jƒ d S )Nr   r0   r1   r2   rK  rŒ  r'  )r   rK  rŒ  r“   r‘   r$  )rj   Úargs_nanÚargs_no_nanÚres_nanÚ
res_no_nanrs   rs   rt   Útest_nan_policy_omit[  s   *
z(TestAlexanderGovern.test_nan_policy_omitc                 C   sv   t  g d¢¡}t  g d¢¡}tjtdd�� t ||¡}W d   ƒ n1 s&w   Y  t|jt j	ƒ t|j
t j	ƒ d S )Nrþ   r   r  r–   )rŠ   rb   r  r  rœ   re   r  r   ræ   ri   rå   )rj   r  r  r‹   rs   rs   rt   r	  c  s   ÿz'TestAlexanderGovern.test_constant_inputN)r²   r³   r´   r  r  r  r€  r  r  r  r"  r#  r%  r&  r+  r	  rs   rs   rs   rt   r	  �  s    ,
D33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e	j
 de g d¢¡e g d¢¡ejdffe g d¢¡e g d¢¡ejejffg¡dd„ ƒZe	j
 dg d¢¡dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Ze	j
 dd g d!¢fg¡d"d#„ ƒZd$d%„ Zd&d'„ Zd(S ))ÚTestFOneWayc                 C   s0   t  ddgddg¡\}}t|dƒ t|dƒ d S )Nr   r0   r”   r½   ©re   Úf_onewayr   ©rj   rð  r  rs   rs   rt   Útest_trivialo  s   
zTestFOneWay.test_trivialc                 C   s>   t  ddgddg¡\}}t|dƒ t|dt d¡ dd� d S )	Nr   r0   r2   r  r   r9   rÍ  r*  )re   r.  r   r
   rŠ   rð   r/  rs   rs   rt   rü   u  s   
zTestFOneWay.test_basicc                 C   s2   t  dgdgg d¢¡\}}t|dƒ t|dƒ d S )Nr0   r   r2  r�  r-  r/  rs   rs   rt   Útest_known_exact|  s   
zTestFOneWay.test_known_exactc                 C   sJ   t jddgt jd�}t jddgt jd�}t ||¡\}}t|ddd� d S )	Né�  é  r  é  é  gÞüÅ¸Èè?rÍ  r*  )rŠ   r   Úuint16re   r.  r
   )rj   ró   rû   rð  r  rs   rs   rt   Útest_large_integer_array†  s   z$TestFOneWay.test_large_integer_arrayc                 C   sF   t jddgt jd�}t jddgt jd�}t ||¡}d}t||ƒ d S )Nr2  r3  r  r4  r5  rÜ  )rŠ   r   r6  re   r.  r   )rj   ró   rû   r‹   rè   rs   rs   rt   Útest_result_attributesŽ  s
   z"TestFOneWay.test_result_attributesc              	      s
  g d¢}|D ]|}d}t j t j t j t¡d|¡¡}t|ƒ�}| ¡  d¡}W d   ƒ n1 s0w   Y  dd„ |dd… D ƒ}t	j
|d	d
�}|j\‰‰ ˆ t¡‰t	 ˆ¡}	t|d d ƒ}‡ ‡fdd„|	D ƒ}
tj|
Ž }d}||v rud}t|d ||d|› �d� qd S )N)z
SiRstv.datz
SmLs01.datz
SmLs02.datz
SmLs03.datzAtmWtAg.datz
SmLs04.datz
SmLs05.datz
SmLs06.datú
SmLs07.datú
SmLs08.datú
SmLs09.datr8  zdata/nist_anovaÚ
c                 S   s   g | ]
}|  ¡ r| ¡ ‘qS rs   )ÚstripÚsplit)rò  Úliners   rs   rt   rô  ¢  s    ÿz)TestFOneWay.test_nist.<locals>.<listcomp>rë  rž  rb  )Úskiprowsr   r^   c                    s   g | ]}ˆ ˆ|k ‘qS rs   rs   rñ  r%  rs   rt   rô  ª  rž  )r9  r:  r;  r  zFailing testcase: )r+  rÂ  )ÚosÚpathÚabspathÚjoinÚdirnameÚ__file__ÚopenÚreadr>  rŠ   Úloadtxtri  r,  r°  Úuniquer  re   r.  r
   )rj   Ú	filenamesÚ	test_caser+  Úfnamer  ÚcontentÚ	certifiedÚdatafÚcatyÚxlistr‹   Úhard_tcrs   r%  rt   Ú	test_nist•  s0   ÿ
ÿ



ÿêzTestFOneWay.test_nistza, b, expected)r}  r}  r}  r‚  r   c                 C   sZ   d}t jtj|d�� t ||¡\}}|sJ ||kƒ‚W d   ƒ d S 1 s&w   Y  d S )Nú%Each of the input arrays is constant;r–   )r  r  re   r  r.  )rj   ró   rû   r/  r¡   r  r  rs   rs   rt   r	  µ  s
   "þzTestFOneWay.test_constant_inputrS   )r#  r^   r   r   c                 C   sÚ  t  g d¢g d¢g d¢g d¢g d¢g¡}t  g d¢g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g¡}t  g d¢g d¢g d¢g d¢g¡}|dv rR|j}|j}|j}d}nd}d}tjtj|d�� tj||||d�\}}W d   ƒ n1 stw   Y  dD ],}	t t  ||	|¡t  ||	|¡t  ||	|¡¡\}
}t	||	 |
dd� t	||	 |dd� q{dD ]@}	tjtj|d��. t t  ||	|¡t  ||	|¡t  ||	|¡¡\}
}t
||	 |
ƒ t
||	 |ƒ W d   ƒ n1 såw   Y  qªd S )N)r   r2   r1   r1   )r0   r3   r1   r1   )r1   r4   r1   r1   rµ  )r1   r   r3   r1   )r2   r4   r3   r1   )r2   r1   r3   r1   )r   r3   r3   r1   )r3   r3   r3   r1   )r0   r1   r3   r1   )r6   r0   r3   r1   )r0   r0   r3   r1   )r2   r1   r2   r1   )r2   r0   r2   r1   )r3   r2   r2   r1   ©r^   r   r   r   rU  r–   rR   r¿  rÍ  r*  rÁ  )rŠ   r   ri  r  r  re   r  r.  Útaker
   r   )rj   rS   ró   rû   rÎ  Ú	take_axisrM  r  r  ró  ÚfjÚpjrs   rs   rt   Útest_2d_inputsÀ  s`   
ü
ù
ýÿþþû€ÿzTestFOneWay.test_2d_inputsc           
   
   C   s  dt  dd¡ ddd¡ }dt  dd¡ dd	d¡ }t  dt  dd
¡ ddd¡ ¡}tj|||dd�\}}|jdks<J ‚|jdksCJ ‚t|jd ƒD ]<}t|jd ƒD ]2}t ||d d …|f ||d d …|f ||d d …|f ¡\}}	t||||f ƒ t|	|||f ƒ qSqJd S )Nr   r½   é�   r2   r3   r5   r0   éá   r6   éq   rR   )r2   r5   r   )	rŠ   r   rg   Úcosre   r.  rk  rj  r
   )
rj   ró   rû   rÎ  r  r  rl  ró  ÚfijÚpijrs   rs   rt   Útest_3d_inputsð  s    <ýÿzTestFOneWay.test_3d_inputsc                 C   s\   t jttd�� t g d¢g g d¢¡}t|tjtjfƒ W d   ƒ d S 1 s'w   Y  d S )Nr–   r:  r…  )	r  r  r   r   re   r.  r   rŠ   ri   rø  rs   rs   rt   Útest_length0_1d_error   s   "þz!TestFOneWay.test_length0_1d_errorc                 C   sš   t jttd��< d}t d|f¡}t d|f¡}t d|f¡}t |||¡\}}tj|ftj	d�}t
||ƒ t
||ƒ W d   ƒ d S 1 sFw   Y  d S )Nr–   r1   r2   r   r3   r7  )r  r  r   r   rŠ   ru  re   r.  r   ri   r   )rj   Úncolsró   rû   rÎ  r  r  Únansrs   rs   rt   Útest_length0_2d_error   s   
"øz!TestFOneWay.test_length0_2d_errorc                 C   sZ   t  t¡� t dgdgdgdg¡}t|tjtjfƒ W d   ƒ d S 1 s&w   Y  d S )NrX   rY   rZ   r[   )r  r  r   re   r.  r   rŠ   ri   rø  rs   rs   rt   Útest_all_length_one   s   "þzTestFOneWay.test_all_length_oner  rs   r:  c                 C   s@   d}t t|d�� tj|Ž  W d   ƒ d S 1 sw   Y  d S )Nz$At least two samples are required...r–   )r�   r¹  re   r.  )rj   r  rA  rs   rs   rt   Útest_too_few_inputs   s   "ÿzTestFOneWay.test_too_few_inputsc                 C   óR   t  d¡}t  d¡}ttƒ� tj||dd� W d   ƒ d S 1 s"w   Y  d S )Nr~  ©r3   r2   r0   rR   )rŠ   ru  r�   r%   re   r.  ©rj   ró   rû   rs   rs   rt   Útest_axis_error   ó
   


"ÿzTestFOneWay.test_axis_errorc                 C   ri  )Nr~  rj  r   rR   )rŠ   ru  r�   rž   re   r.  rk  rs   rs   rt   Útest_bad_shapes#   rm  zTestFOneWay.test_bad_shapesN)r²   r³   r´   r0  rü   r1  r7  r8  rT  r  r  r€  rŠ   r   r’  ri   r	  r[  rb  rc  rf  rg  rh  rl  rn  rs   rs   rs   rt   r,  m  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S )ÚTestKruskalc                 C   s|   dg}dg}t  ||¡\}}t|dƒ t|t jj |d¡ƒ t  t |¡t |¡¡\}}t|dƒ t|t jj |d¡ƒ d S )Nr   r0   r½   )	re   Úkruskalr   r	   r7  r+  r8  rŠ   r   ©rj   rl   rm   Úhr  rs   rs   rt   Útest_simple+   s   

zTestKruskal.test_simplec                 C   sˆ   g d¢}g d¢}t  ||¡\}}t|ddd� t|t jj dd¡ƒ t  t |¡t |¡¡\}}t|ddd� t|t jj dd¡ƒ d S )Nr¥   ©r0   r2   r4   r6   rX   ré  rX   rˆ  r   )re   rp  r	   r7  r+  r8  rŠ   r   rq  rs   rs   rt   rü   5   s   zTestKruskal.test_basicc                 C   s<   dg}ddg}d}d}|| }t  ||¡\}}t||ƒ d S )Nr   r0   rÆ  r†  )re   rp  r   ©rj   rl   rm   Úh_uncorrrû  r/  rr  r  rs   rs   rt   Útest_simple_tie?   s   zTestKruskal.test_simple_tiec                 C   sJ   g d¢}g d¢}d}dt dƒd  }|| }t ||¡\}}t||ƒ d S )N)r   r   r   r0   )r0   r0   r0   r0   rë   r   é�   éø  )r  re   rp  r	   ru  rs   rs   rt   Útest_another_tieJ   s   zTestKruskal.test_another_tiec           	      C   sj   g d¢}g d¢}ddg}d}dt dƒd  }|| }t |||¡\}}t||ƒ t|tjj |d¡ƒ d S )Nrˆ  rK  r0   rK   r   rx  ry  )r  re   rp  r	   r7  r+  r8  )	rj   rl   rm   r½  rv  rû  r/  rr  r  rs   rs   rt   Útest_three_groupsS   s   
zTestKruskal.test_three_groupsc                 C   sd   g d¢}g d¢}g }t jttd�� tt |||¡tjtjfƒ W d   ƒ d S 1 s+w   Y  d S )Nrˆ  rK  r–   )	r  r  r   r   r   re   rp  rŠ   ri   )rj   rl   rm   r½  rs   rs   rt   r�  _   s   "ÿzTestKruskal.test_emptyc                 C   s.   g d¢}g d¢}t  ||¡}d}t||ƒ d S )Nr¥   rt  rÜ  )re   rp  r   )rj   rl   rm   r‹   rè   rs   rs   rt   Útest_kruskal_result_attributesg   s
   z*TestKruskal.test_kruskal_result_attributesc                 C   rC  )Nr‡   r7   r‘   r’   r�  r˜   rš   )	rŠ   r   ri   r   re   rp  r   r�   rž   rá  rs   rs   rt   rã  n   s   

zTestKruskal.test_nan_policyc                 C   sB   d}t j |¡}t j |¡d }t ||¡\}}d}t||ƒ d S )Nr  ré  r   )rŠ   rV  rÝ  re   rp  r	   )rj   rú  rl   rm   rr  r  r/  rs   rs   rt   Útest_large_no_samplesv   s   z!TestKruskal.test_large_no_samplesc                 C   s@   d}t jt|d�� t ¡  W d   ƒ d S 1 sw   Y  d S )Nz-Need at least two groups in stats.kruskal\(\)r–   )r  r   rž   re   rp  rª  rs   rs   rt   Útest_no_args_gh20661   s   
"ÿz TestKruskal.test_no_args_gh20661N)r²   r³   r´   rs  rü   rw  rz  r{  r�  r|  rã  r}  r~  rs   rs   rs   rt   ro  *   s    

		ro  zADelegation for `special.stdtr` only implemented for CuPy and JAX.)rÞ   Ú
exceptionsrE   c                   @   sÂ   e Zd Zej dg d¢¡dd„ ƒZej dg d¢ddfg d	¢d
dfg¡dd„ ƒZg d¢Zej dg d¢¡ej de¡dd„ ƒƒZ	ej de¡dd„ ƒZ
ej de¡ej dddg¡dd„ ƒƒZdS )ÚTestCombinePvaluesz+method, expected_statistic, expected_pvalue))r¶  g'"àx ¬-@g({#£H–?)Ústoufferçv!:è@ç¾/À‡è�?)r3  g‚Q™4àò¿gÀƒÿÜF¨–?)ÚtippettrS  gÌL¢^ðiž?)Úmudholkar_georgegz¶å™P@guKqñNñ�?c                 C   sD   g d¢}t j| |¡|d�}t|j| |¡ƒ t|j| |¡ƒ d S )N©rS  rý  rµ  r>  )re   Úcombine_pvaluesrb   r.   ræ   rå   )rj   rk   r?  r�  r!  rl   r‹   rs   rs   rt   Útest_reference_values”   s   	z(TestCombinePvalues.test_reference_valuesz,weights, expected_statistic, expected_pvalue©r½   r½   r½   r‚  rƒ  )r½   r«   r©   g¤§aû;Ôð?gžrmTž¾Â?c                 C   sL   |  g d¢¡}tj|d|  |¡d�}t|j|  |¡ƒ t|j|  |¡ƒ d S )Nr†  r�  )r?  rF  )rb   re   r‡  r.   ræ   rå   )rj   rk   rF  r�  r!  rl   r‹   rs   rs   rt   Útest_weighted_stouffer¢   s   z)TestCombinePvalues.test_weighted_stouffer)r¶  r3  r„  r�  r…  rj  )ÚsinglerÕ  rV  r?  c           	         s  t | d¡ƒ}d\}}tj d¡}|dkr>| | | |¡¡||f¡‰|j| | dd|¡d¡ˆd d …dd …f gdd�‰n)|d	krQ| | dd|¡||f¡j	‰n|d
krg|j
| |jdd||fd�¡dd�‰| ‡ ‡fdd„tˆjd ƒD ƒ¡}| |dd … |d d…  dk¡sŒJ ‚d S )Nr   )rX   r5   l	   «TrU™(´	Ë"b¤-•=Ñ r‹  r²  r´  rV  rR   rÕ  rV  r   rL  c                    s*   g | ]}t jˆ|d d …f ˆ d�d ‘qS )Nr>  r   )re   r‡  rñ  ©r?  Úpvaluessrs   rt   rô  É   s    ÿÿz8TestCombinePvalues.test_monotonicity.<locals>.<listcomp>r^   )r(   rb   rŠ   rV  rW  r{  rþ  rg   rÿ  ri  rê  r­  rj  rk  rÕ  )	rj   rj  r?  rk   r€   rø  rú  rO  Úcombined_pvaluesrs   rŒ  rt   Útest_monotonicity´   s$   ÿÿ$þ*z$TestCombinePvalues.test_monotonicityc                 C   s<   t j| g d¢¡|d�}t|j|d ƒ t|j|d ƒ d S )Nr†  r>  r   r   )re   r‡  rb   r/   ræ   rå   )rj   r?  rk   r‹   rs   rs   rt   r¼  Ï   s   zTestCombinePvalues.test_resultrS   r   r   c                 C   s  t j d¡}| |jdd�¡}|dkr|jn|}tj|||d�}|d u rA| |d¡}tj||d�}t|j	|j	ƒ t|j
|j
ƒ d S |dkrH|jn|}|dd d …f |dd d …f }}	tj||d�}
tj|	|d�}t|j	d |
j	ƒ t|j	d |j	ƒ t|j
d |
j
ƒ t|j
d |j
ƒ d S )	Nl   2'$FˆV rð  rL  r   )rS   r?  r  r>  r   )rŠ   rV  rW  rb   ri  re   r‡  rg   r.   ræ   rå   )rj   r?  rS   rk   rO  rl   r‹   r\  rz  r  Úref0Úref1rs   rs   rt   rŒ  Õ   s$   "zTestCombinePvalues.test_axisN)r²   r³   r´   r  r  r€  rˆ  rŠ  r[  r�  r¼  rŒ  rs   rs   rs   rt   r€  …   s,    þ
ÿø


r€  c                   @   s8   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ ZdS )ÚTestCdfDistanceValidationzg
    Test that _cdf_distance() (via wasserstein_distance()) raises ValueErrors
    for bad inputs.
    c                 C   s<   t ttjdgdgdgddgƒ t ttjdgdgddgƒ d S )Nr   r0   r2   r1   r   ©r�   rž   re   Úwasserstein_distancerØ  rs   rs   rt   Ú&test_distinct_value_and_weight_lengths÷   s   ÿz@TestCdfDistanceValidation.test_distinct_value_and_weight_lengthsc                 C   s@   t ttjddgdgddgƒ t ttjddgdgddgdgƒ d S )Nr   r   r0   r1   r“  rØ  rs   rs   rt   Útest_zero_weightþ   s   ÿÿz*TestCdfDistanceValidation.test_zero_weightc                 C   s(   t ttjddgddgddgddgƒ d S )Nr   r   r0   r1   r^   r“  rØ  rs   rs   rt   Útest_negative_weights!  s   ÿz/TestCdfDistanceValidation.test_negative_weightsc                 C   s*   t ttjg ddgƒ t ttjdgg ƒ d S r±  r“  rØ  rs   rs   rt   Útest_empty_distribution!  s   z1TestCdfDistanceValidation.test_empty_distributionc                 C   s,   t ttjg d¢ddgdtjdgddgƒ d S )Nr×  r   )r�   rž   re   r”  rŠ   r’  rØ  rs   rs   rt   Útest_inf_weight!  s   ÿz)TestCdfDistanceValidation.test_inf_weightN)	r²   r³   r´   rÝ   r•  r–  r—  r˜  r™  rs   rs   rs   rt   r’  ñ   s    r’  c                   @   sN  e Zd ZdZdd„ Zej dd¡ej dd¡ej dd	¡d
d„ ƒƒƒZej dd¡ej dd¡ej dd¡dd„ ƒƒƒZ	ej dd¡ej dd¡ej dd¡dd„ ƒƒƒZ
dd„ Zej dd¡ej dd¡ej dd¡dd„ ƒƒƒZej dd¡ej dd¡ej dd¡dd „ ƒƒƒZd!d"„ Zej d#g d$¢¡ej d%g d$¢¡d&d'„ ƒƒZd(S ))ÚTestWassersteinDistanceNDz8 Tests for wasserstein_distance_nd() output values.
    c                 C   s^   g d¢}g d¢}t  ||¡}t g d¢¡}t g d¢¡}t || ¡t |¡ }t||ƒ d S )N)rÀ  rÀ  rÀ  rÀ  rÀ  rÀ  rÀ  rÀ  rÀ  rÀ  )r2   r0   ©r4   r   r›  )rs  rs  r[  r[  r[  rT  rT  rT  rT  rT  rT  rT  )r5   r   )r  rë   rK   r½   r½   r½   )r½   g¨ô—›wã@r«   rÛ  r½   r½   )re   Úwasserstein_distance_ndrŠ   r   rÆ  r
   )rj   rÜ  rÝ  r‹   ÚflowÚdistr\  rs   rs   rt   Útest_published_values!  s   z/TestWassersteinDistanceND.test_published_valuesÚn_value)r2   rŠ  r	  r¤  )r1   r2   r5   Úmax_repeats)r3   rX   c                 C   s´   t j d¡}|jd||td�}|j||fd�}t j||dd�}| t  |¡¡}t  t  t|ƒ¡|¡}	t j	|	|d�}
| 
t|ƒ¡}|| || }}t |||
|¡}t|ddd	� d S )
Nl   ½na{ÇF.a¹P	 r   )rM  r
  rL  r   rR   rw  rì   rí   )rŠ   rV  rW  Úintegersr°  rA  rÆ  r   r×  ÚbincountrF  re   rœ  r
   )rj   r¤  r   r¡  rO  ÚrepeatsÚu_valuesÚv_valuesÚ	v_weightsÚrange_repeatÚ	u_weightsr£  r‹   rs   rs   rt   Útest_same_distribution_nD.!  s   z3TestWassersteinDistanceND.test_same_distribution_nDÚnu)r6   r7   é&   Únv)r6   rZ   r`   )r1   r3   r—  c                 C   sz   t j d¡}|j||fd�}t  ||f¡}|j|d�}|j|d�}t jt jj|dd�|d�}	t ||||¡}
t	|
|	ƒ d S )Nì   }·&�=„:! rL  r   rR   rw  )
rŠ   rV  rW  rÃ  r£  r>  rÂ  re   rœ  r
   )rj   r«  r­  r¤  rO  r¥  r¦  r©  r§  r\  r‹   rs   rs   rt   Útest_collapse_nDB!  s   z*TestWassersteinDistanceND.test_collapse_nD)r6   rˆ   ro  )r   r0   r4   c                 C   sÀ   t j d¡}|j||fd�}|j||fd�}|j|d�}|j|d�}t ||||¡}	|jd|dd�\}
}|j||fd�}t j||
|dd�}t j||
t  |¡dd�}t ||||¡}t||	ƒ d S )Nr®  rL  r   r0   rR   )	rŠ   rV  rW  re   rœ  r¢  ÚinsertrÃ  r
   )rj   r«  r­  r¤  rO  r¥  r¦  r©  r§  r\  Úadd_rowÚnrowsÚ	add_valuer‹   rs   rs   rt   Útest_zero_weight_nDR!  s   z-TestWassersteinDistanceND.test_zero_weight_nDc                 C   s°   ddgddggt jt j ggddg}}}t |||¡}t|t jƒ t jdd��% t jt jggt jt j gg}}t ||¡}t|t jƒ W d   ƒ d S 1 sQw   Y  d S )Nr   r0   r?  r@  )rŠ   r’  re   rœ  r   rB  ri   )rj   ÚuvÚvvÚuwÚdistancers   rs   rt   Útest_inf_valuese!  s   , "ýz)TestWassersteinDistanceND.test_inf_valuesrÄ  )r   r1   r3   c                 C   sª   t j d¡}|j||fd�}|j||fd�}|j|d�}|j|d�}t ||||¡}	| d|¡}
| ¡ }t j||
|dd�}t j||
|dd�}t ||||¡}t||	ƒ d S )Nl   å¶L€qÏ/ rL  r   r   rR   )rŠ   rV  rW  re   rœ  r¢  r°  r
   )rj   r«  r­  r¤  rO  r¥  r¦  r©  r§  r\  Úadd_dimr³  r‹   rs   rs   rt   Útest_multi_dim_nDp!  s   z+TestWassersteinDistanceND.test_multi_dim_nD)r5   r[   rK  )r0   r2   r5   c                 C   s¤   t j d¡}|j||fd�}|j||fd�}|j|d�}|j|d�}t ||||¡}	t |¡}
|
j|d�}|j|d�}t || | || | ||¡}t||	ƒ d S )Nl   ØuÎAh~rL  r_  )rŠ   rV  rW  re   rœ  Úortho_grouprQ  r
   )rj   r«  r­  r¤  rO  r¥  r¦  r©  r§  r\  rž  Ú	transformÚshiftr‹   rs   rs   rt   Útest_orthogonal_nD„!  s   

þz,TestWassersteinDistanceND.test_orthogonal_nDc                 C   s  t j d¡}tjtdd�� |jdd�}|jdd�}t ||¡}W d   ƒ n1 s*w   Y  tjtdd�� |jdd�}|jd	d�}t ||¡}W d   ƒ n1 sSw   Y  tjtd
d�� |jdd�}|jdd�}t ||¡}W d   ƒ d S 1 s}w   Y  d S )Nl   e36^[YŸ{lz Invalid input values. The inputsr–   )r2   rX   rŠ  rL  )r4   r0   r5   z Invalid input values. Dimensions)rŠ  )r1   rŠ  z(Invalid input values. If two-dimensionalrð  r\  )rŠ   rV  rW  r  r   rž   re   rœ  )rj   rO  r¥  r¦  rÕ  rs   rs   rt   Útest_error_code™!  s$   ýýÿ"üz)TestWassersteinDistanceND.test_error_codeÚu_size)r   rX   ré  Úv_sizec                 C   sÔ   t j d¡}|j|dfd�}|j|dfd�}| ¡ }| ¡ }t ||¡}t ||¡}	t ||¡}
t|	|ƒ t|
|ƒ |j|d�}|j|d�}t ||||¡}t ||||¡}	t ||||¡}
t|	|ƒ t|
|ƒ d S )Nl   Ku@* r   rL  )rŠ   rV  rW  rp  re   r”  rœ  r
   )rj   rÁ  rÂ  rO  r¥  r¦  Úu_values_flatÚv_values_flatÚd1Úd2Úd3r©  r§  rs   rs   rt   Útest_optimization_vs_analytical©!  s.   

ÿÿÿ
z9TestWassersteinDistanceND.test_optimization_vs_analyticalN)r²   r³   r´   rÝ   rŸ  r  r  r€  rª  r¯  r´  r¹  r»  r¿  rÀ  rÈ  rs   rs   rs   rt   rš  !  s8    rš  c                   @   sH   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dd„ Z
dS )ÚTestWassersteinDistancez5 Tests for wasserstein_distance() output values.
    c                 C   s„   t t ddgdgddgdg¡dƒ t t ddgdgddgdg¡dƒ t t ddgdgddgdg¡dƒ t t g d¢g d¢¡dƒ d S )	Nr   r   r9   r1   r.  r0   rÍ  r:  ©r
   re   r”  rØ  rs   rs   rt   rs  Ê!  s&   þÿþÿþÿþz#TestWassersteinDistance.test_simplec                 C   óD   t t g d¢g d¢¡dƒ t t g d¢ddgg d¢ddg¡dƒ d S ©	Nr:  r$  r   )r   r   r   r2   r2   r   rX  r1   )r   re   r”  rØ  rs   rs   rt   Útest_same_distributionÚ!  s   ÿýz.TestWassersteinDistance.test_same_distributionc                 C   sp   t t dgdg¡dƒ t t dgdg¡dƒ t t g d¢g d¢¡dƒ t t g d¢g d	¢g d
¢g d¢¡dƒ d S )Nr   r   rf  r3   rX   r2  )rY   rZ   r[   rV   rŠ  )r=   gÍÌÌÌÌÌ@r7  )r4  r5   r$  )r1   r   r   )r   r1   r   r;   rÊ  rØ  rs   rs   rt   Ú
test_shiftã!  s   þÿýz"TestWassersteinDistance.test_shiftc              	   C   óF   t t g d¢g d¢g d¢g d¢¡t g d¢g d¢g d¢g d¢¡ƒ d S ©N)r   r   r   r   r   r   r3   )r   r1   r1   r1   r1   r2   r2   )r   r   r   r   r   r   r   )r3   r   r   )r   r2   r1   ©r   r0   r2   rÊ  rØ  rs   rs   rt   Útest_combine_weightsð!  s   þÿüz,TestWassersteinDistance.test_combine_weightsc                 C   s|   t  ddd¡}t  |¡}tt ||¡t  t  |¡¡ƒ t  t|ƒ¡}|d d d… }tt ||||¡t j	t  |¡|d�ƒ d S )Nr<  rê  rµ  r^   rw  )
rŠ   r   r  r
   re   r”  rh   r  r×  r£  )rj   rÜ  rÝ  r©  r§  rs   rs   rt   Útest_collapseú!  s   

þþz%TestWassersteinDistance.test_collapsec              	   C   óF   t t g d¢ddgg d¢ddg¡t ddgddgddgddg¡ƒ d S ©N)r   r0   r)  r   rŸ  r0   rÊ  rØ  rs   rs   rt   r–  
"  s   ÿýz(TestWassersteinDistance.test_zero_weightc                 C   óÂ   t t ddtjgddg¡tjƒ t t ddtjgtj dg¡tjƒ t t dtj tjgddg¡tjƒ tƒ � }| td¡ t t ddtjgtjdg¡tjƒ W d   ƒ d S 1 sZw   Y  d S ©Nr   r0   r�   )	r   re   r”  rŠ   r’  r   r›   rœ   ri   ©rj   r    rs   rs   rt   r¹  "  s&   þþþþ"þz'TestWassersteinDistance.test_inf_valuesN)r²   r³   r´   rÝ   rs  rÍ  rÎ  rÒ  rÓ  r–  r¹  rs   rs   rs   rt   rÉ  Æ!  s    	
rÉ  c                   @   s@   e Zd ZdZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Zdd„ Z	dS )ÚTestEnergyDistancez0 Tests for energy_distance() output values.
    c                 C   s¢   t t ddgdgddgdg¡t d¡d ƒ t t ddgdgddgdg¡t d¡d ƒ t t ddgdgddgdg¡dƒ t t g d¢g d	¢¡t d¡d
 ƒ d S )Nr   r   r0   r9   r1   r.  r½   rÍ  r:  rÚ  ©r   re   Úenergy_distancerŠ   rð   rØ  rs   rs   rt   rs  ("  s$   þÿþÿþþzTestEnergyDistance.test_simplec                 C   rË  rÌ  )r   re   rÛ  rØ  rs   rs   rt   rÍ  8"  s
   þz)TestEnergyDistance.test_same_distributionc                 C   s@   t t dgdg¡t d¡ƒ t t dgdg¡t d¡d ƒ d S )Nr   r   r0   rf  r3   gS[Ú:XL	@rÚ  rØ  rs   rs   rt   rÎ  @"  s
   þzTestEnergyDistance.test_shiftc              	   C   rÏ  rÐ  ©r   re   rÛ  rØ  rs   rs   rt   rÒ  H"  s   ÿýz'TestEnergyDistance.test_combine_weightsc              	   C   rÔ  rÕ  rÜ  rØ  rs   rs   rt   r–  P"  s   þz#TestEnergyDistance.test_zero_weightc                 C   rÖ  r×  )	r   re   rÛ  rŠ   r’  r   r›   rœ   ri   rØ  rs   rs   rt   r¹  V"  s     þþþ"þz"TestEnergyDistance.test_inf_valuesN)
r²   r³   r´   rÝ   rs  rÍ  rÎ  rÒ  r–  r¹  rs   rs   rs   rt   rÙ  $"  s    rÙ  c                   @   s¢   e Zd Zg d¢Zg d¢ZdZdd„ Zdd„ Zdd	„ Zd
d„ Z	dd„ Z
dd„ Zej ddg idg ig g dœg¡dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zd S )!ÚTestBrunnerMunzel)r   r0   r   r   r   r   r   r   r   r   r0   r2   r   r   ©r1   r1   r2   r1   r   r0   r1   r   r   r3   r2   r[   c           	      C   sð   t j| j| jdd�\}}t j| j| jdd�\}}t j| j| jdd�\}}t j| j| jdd�\}}t||| jd� t||| jd� t||kƒ t|d| jd� t|d| jd� t|d| jd� t|d| jd� t|d| jd� t|d| jd� d S )	Nr#  r(  r%  rˆ  ç|	&�ˆ	@ç|	&�ˆ	Àg°¿Ò�G³g?g@-p¸Lèï?)re   Úbrunnermunzelrc   r$  r	   r‰  r   r%  rs   rs   rt   Útest_brunnermunzel_one_sidedm"  s2   ÿÿÿÿÿ
ÿz.TestBrunnerMunzel.test_brunnermunzel_one_sidedc                 C   ót   t j| j| jdd�\}}t j| j| jdd�\}}t||| jd� t|d| jd� t|d| jd� t|d| jd� d S )Nr!  r(  rˆ  rß  rà  ç ÀÒ�G³w?©re   rá  rc   r$  r	   r‰  r-  rs   rs   rt   Útest_brunnermunzel_two_sided„"  s   ÿÿ
ÿz.TestBrunnerMunzel.test_brunnermunzel_two_sidedc                 C   sl   t  | j| j¡\}}t  | j| j¡\}}t||| jd� t|d| jd� t|d| jd� t|d| jd� d S )Nrˆ  rß  rà  rä  rå  r-  rs   rs   rt   Útest_brunnermunzel_default‘"  s   ÿÿ
ÿz,TestBrunnerMunzel.test_brunnermunzel_defaultc                 C   ó6   d}d}d}t |dvƒ tttj| j| j|||ƒ d S )NrÆ  rè  rî  rô  ©r   r�   rž   re   rá  rc   r$  ©rj   r)  Údistributionr“   rs   rs   rt   Ú$test_brunnermunzel_alternative_errorž"  ó   úz6TestBrunnerMunzel.test_brunnermunzel_alternative_errorc                 C   rã  )NrX  ©rë  rˆ  rß  rà  g œ"H°ë[?rå  r-  rs   rs   rt   Ú$test_brunnermunzel_distribution_norm«"  s   ÿÿ
ÿz6TestBrunnerMunzel.test_brunnermunzel_distribution_normc                 C   rè  )Nr!  rÆ  rî  )rè  rX  ré  rê  rs   rs   rt   Ú%test_brunnermunzel_distribution_error¶"  rí  z7TestBrunnerMunzel.test_brunnermunzel_distribution_errorÚkwarg_updaterm   rl   r%  c                 C   sv   | j | jdœ}| |¡ tjttd�� tjdi |¤Ž\}}W d   ƒ n1 s(w   Y  t	|t
jƒ t	|t
jƒ d S )Nr%  r–   rs   )rc   r$  r9  r  r  r   r   re   rá  r   rŠ   ri   )rj   rñ  r  ræ   rå   rs   rs   rt   Útest_brunnermunzel_empty_imputÃ"  s   
ÿz0TestBrunnerMunzel.test_brunnermunzel_empty_imputc                 C   sˆ   ddddddddddddddt jg}g d¢}tj||dd�\}}tj||dd�\}}t|t jƒ t|t jƒ t|t jƒ t|t jƒ d S )Nr   r0   r2   rÞ  rî  r’   )rŠ   ri   re   rá  r   ©rj   rc   r$  r&  rS  r'  rÇ  rs   rs   rt   Ú&test_brunnermunzel_nan_input_propagateÍ"  s   $z8TestBrunnerMunzel.test_brunnermunzel_nan_input_propagatec                 C   sh   ddddddddddddddt jg}g d¢}d}d}d}tttj|||||ƒ tttj|||||ƒ d S )Nr   r0   r2   rÞ  r!  rè  r˜   )rŠ   ri   r�   rž   re   rá  )rj   rc   r$  r)  rë  r“   rs   rs   rt   Ú"test_brunnermunzel_nan_input_raiseØ"  s*   $úúz4TestBrunnerMunzel.test_brunnermunzel_nan_input_raisec                 C   s˜   ddddddddddddddt jg}g d¢}tj||dd�\}}tj||dd�\}}t||| jd� t|d| jd� t|d	| jd� t|d
| jd� d S )Nr   r0   r2   rÞ  r‘   r’   rˆ  rß  rà  rä  )rŠ   ri   re   rá  r	   r‰  ró  rs   rs   rt   Ú!test_brunnermunzel_nan_input_omitî"  s   $ÿÿ
ÿz3TestBrunnerMunzel.test_brunnermunzel_nan_input_omitc                 C   sX   g d¢}g d¢}d}t jt|d�� tj||dd� W d  ƒ dS 1 s%w   Y  dS )z| tests that a warning is emitted when p is nan
        p-value with t-distributions can be nan (0/0) (see gh-15843)
        r:  r¯  zDp-value cannot be estimated|divide by zero|invalid value encounteredr–   rè  rî  N)r  r  rœ   re   rá  rD  rs   rs   rt   Útest_brunnermunzel_return_nanü"  s   "ÿz/TestBrunnerMunzel.test_brunnermunzel_return_nanc                 C   s`   g d¢}g d¢}t jtdd�� tj||dd�\}}W d  ƒ n1 s$w   Y  t|dƒ dS )	zo tests that a p is 0 for datasets that cause p->nan
        when t-distribution is used (see gh-15843)
        r:  r¯  zdivide by zeror–   rX  rî  Nr   )r  r  rœ   re   rá  r   )rj   rl   rm   rÕ  r  rs   rs   rt   Útest_brunnermunzel_normal_dist#  s   ÿz0TestBrunnerMunzel.test_brunnermunzel_normal_distN)r²   r³   r´   rc   r$  r‰  râ  ræ  rç  rì  rï  rð  r  r  r€  rò  rô  rõ  rö  r÷  rø  rs   rs   rs   rt   rÝ  g"  s&    ÿ
rÝ  c                   @   sÀ   e Zd ZdZdd„ Zej dg d¢g d¢ddej	 d	d
gdddej	dgg¡dd„ ƒZ
ej dg d¢g d¢g¡dd„ ƒZej dddg¡ej dd
dg¡ej dddg¡dd„ ƒƒƒZdd„ ZdS ) ÚTestQuantileTestzb Test the non-parametric quantile test,
    including the computation of confidence intervals
    c                 C   sÎ  g d¢}d}t jt|d�� t |g¡ W d   ƒ n1 sw   Y  d}t jt|d�� tj|ddgd� W d   ƒ n1 s@w   Y  d}t jt|d�� tj|d	d
gd� W d   ƒ n1 sbw   Y  t jt|d�� tj|dd� W d   ƒ n1 s€w   Y  t jt|d�� tj|dd� W d   ƒ n1 sžw   Y  d}t jt|d�� tj|dd� W d   ƒ n1 s¾w   Y  d}t jt|d�� t |¡ d¡ W d   ƒ d S 1 sàw   Y  d S )Nr:  z/`x` must be a one-dimensional array of numbers.r–   z`q` must be a scalar.r   r0   )ra  z-`p` must be a float strictly between 0 and 1.r9   r†  r   ræ  z`alternative` must be one of...z	one-sidedr(  rû  )r  r   rž   re   Úquantile_testr  rò  rs   rs   rt   Útest_quantile_test_iv#  s6   ÿÿÿÿÿÿ"ÿz&TestQuantileTest.test_quantile_test_ivzp, alpha, lb, ub, alternative)rµ  rÁ  gŽ¬XžÝŠó?g²¼èœ¶¡÷?r!  )r9   r´  g-tA÷ìø?gPòçô"Ýü?r!  r.  rÁ  gô{ØËgAö?r#  rÄ  r´  gøÜg´�ï @r%  c                 C   s@   t  t  ddd¡¡}tj|||d�}t| |¡||gdd� d S )Nr   r¬  rS  )r  r)  rì   r*  )rŠ   r^  r   re   rú  r
   r  )rj   r  rý  ÚlbÚubr)  rl   r‹   rs   rs   rt   Útest_R_ci_quantile3#  s   z#TestQuantileTest.test_R_ci_quantilezq, p, alternative, ref)r†  rµ  r!  gÍ¯ÚIð	�?)r  r9   r!  gÉ�Q%e¼?c                 C   s:   t  t  ddd¡¡}tj||||d�}t|j|dd� d S )Nr   r¬  rS  ©ra  r  r)  r8   r*  )rŠ   r^  r   re   rú  r
   rå   )rj   ra  r  r)  r\  rl   r‹   rs   rs   rt   Útest_R_pvalueG#  s   zTestQuantileTest.test_R_pvaluer>  Ú
continuousÚdiscreter)  rý  c                 C   s  t dt|ƒ t|ƒ | ƒ}tj |¡}|dkr'|jdd�\}}|jdd�}n|jdddd�}| ¡ }| dd¡}tj||||d�}	|	j|d	�}
|d
krR||
j	k}n||
j
k}|| D ]}tj||||d�}	|	jd| ksoJ ‚q[||  D ]}tj||||d�}	|	jd| k s‰J ‚qud S )Nr5   r	  r0   rL  rJ  r   rY   rÿ  r÷  r#  )r°  r×  rŠ   rV  rW  r¢  re   rú  r  r  r  rå   )rj   r>  r)  rý  rÜ  rO  r  ra  rQ  r‹   r2  Úi_insiderl   rs   rs   rt   Útest_pval_ci_matchV#  s(   
þz#TestQuantileTest.test_pval_ci_matchc                 C   s~   g d¢}d}t j|dddd�}t|j|dd� d	gd
 dgd  }t jddd�jd
d�}t j|dddd�}t|j|dd� d S )N)é½   éé   éÃ   é    éÔ   é°   éç   é¹   éÇ   éÕ   éÊ   éÁ   r  é¦   éø   geâX·¡?r	  r†  r!  rÿ  rx  r*  é;   r6   rT   éh   r9   ép   )r  rú  rˆ  rb  r%  r   rí   )re   rú  r
   rå   r   rÇ  )rj   rl   Úpvalue_expectedr‹   rs   rs   rt   Útest_match_conover_examples#  s   
z,TestQuantileTest.test_match_conover_examplesN)r²   r³   r´   rÝ   rû  r  r  r€  rŠ   r’  rþ  r 	  r	  r	  rs   rs   rs   rt   rù  #  s0    ýþ
ÿþ

&rù  c                    @   sÆ  e Zd Zej d¡ ej dd¡Zej dd¡Zdddd	efd
ddd	efdddd	g d¢g d¢g d¢gfddddg d¢g d¢g d¢gfddddg d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢gfddddg d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d ¢g d!¢g d!¢g d!¢g d!¢g d!¢g d!¢g d!¢gfd"d#ddg d$¢g d$¢g d%¢gfd&d'ddg d(¢g d(¢g d(¢g d(¢g d(¢g d(¢g d)¢g d*¢g d*¢g d*¢g
fd+d,ddg d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d ¢g d!¢g d!¢g d!¢g d!¢g d!¢g d!¢gfd-d.ddg d/¢g d/¢g d0¢g d1¢gfd2d3ddg d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d ¢g d!¢gfgZ	e
j d4e	¡d5d6„ ƒZd7d8ddg d9¢g d:¢gfd;d<ddg d9¢g d9¢g d9¢g d=¢g d>¢gfd?d@ddg dA¢g dA¢g dA¢g dA¢g dA¢g dA¢g dA¢g dA¢g dA¢g dB¢g dC¢g dC¢g dC¢g dC¢g dC¢gfgZe
j d4e	¡e
j ¡ dDdE„ ƒƒZdFdG„ ZdHdI„ ZdJdK„ ZdLS )MÚTestPageTrendTestr   r1   rŒ  rX   é   i2  g:hÓÑžßØ?Fr=  iô¿  gsœ´°H•�?i,0  gYµ–Ù@¶è?)r  r  éI   r	  r  é`   rê  r	  r  r   r  é1   r  é+   r  r  r°  r°  r  r‹  rT   r‹  rd  rñ  ré  )éD   rÒ  rb  é"   r‘  r‹  éA   éX   rU   r  rž  r÷  r÷  éC   éE   r�  rê  rñ  rë  éW   r  r	  ré  r	  r	  )r  r[   éU   r	  éO   rZ   é\   éV   rU   é@   rˆ   r)	  r	  r`   rˆ   éY   rW  r	  r	  r   é6   r[   éB   rë  rM  i
  gXYþ›?r@  )r:   r«   gš™™™™™ @r3   rK  rY   )r3   r2   r<   rX   r‹  rU   )rƒ  r5  rX   rZ   rV   rŠ  iL  gs¾¬®Ëœî?T)r2   r1   r0   r   )r1   r2   r   r0   r'  éñ   gÄžªºƒÊî?)r1   r0   r   r$  r:  éÅ   g£>K=Èî?)r4   r3   r2   r1   r0   r   )r   r1   r2   r3   r0   r4   i§  gÓqÅá€°î?)r3   r2   r1   r0   r   )r2   r   r1   r0   r3   r2  éÙ   gaŽ¹·�ï?i‹  g“;¸º�ºï?)r5   r4   r3   r2   r1   r0   r   )r4   r3   r5   r2   r1   r0   r   r‡  éu   g°[^6þï?zL, p, ranked, method, datac                 C   óD   t j d¡ tj|||d�}t||jƒ t||jƒ t||j	ƒ d S ©Nr}  )Úrankedr?  ©
rŠ   rV  rÜ  re   Úpage_trend_testr   ræ   r
   rå   r?  ©rj   ÚLr  r3	  r?  rª  r‹   rs   rs   rt   Útest_accuracyÝ#  s
   zTestPageTrendTest.test_accuracyi  g-lp¦Wî?)
rX   r7   r6   r5   r4   r3   r2   r1   r0   r   )
r   r6   r2   r5   r4   r3   r7   r1   r0   rX   i*  ghÑÕâ[úï?)
r7   r0   r6   r5   r4   r3   r2   r1   rX   r   r  iî  g&]àŽ2µï?)r6   r5   r4   r3   r2   r1   r0   r   )r   r1   r3   r4   r2   r5   r0   r6   r¡  c                 C   r1	  r2	  r4	  r6	  rs   rs   rt   Útest_accuracy2ú#  s
   z TestPageTrendTest.test_accuracy2c                 C   sà   t j d¡ d\}}t  d|d ¡}t j t  |¡¡}t j ||¡}tj|dd�}t |¡}tj|dd�}tj|dd�}	tj||d�}
tj|d d …|f || d�}t	|j
|j
ƒ t	|j
|	j
ƒ t	|j
|
j
ƒ t	|j
|j
ƒ d S )	Nr}  )rX   r‹  r   rR   T©r3	  F)Úpredicted_ranks)rŠ   rV  rÜ  r   rF  rå  re   Úrankdatar5	  r   ræ   )rj   rø  rú  r;	  Úpermrª  Úranksr  r]  r.  Úres4Úres5rs   rs   rt   Útest_options$  s"   
ÿzTestPageTrendTest.test_optionsc                 C   s¬   t j d¡ g d¢g d¢g d¢g d¢g d¢g d¢g}t  |¡j}t  dd	¡}tj|d
|dd�}t|j	dƒ t
|jddd� tj|d
|dd�}t|j	dƒ t
|jddd� d S )Nr}  )r�  r0	  éo   )r  rJ  ék   )ég   é…   éy   )r
  rµ  rx  )r±  é¡   éÉ   )é’   rc  ét   r   r5   Fr=  )r3	  r;	  r?  i  gyé&1¬l?r2   r$  r@  gHPüs×b?)rŠ   rV  rÜ  r   ri  r   re   r5	  r   ræ   r   rå   )rj   rª  r;	  r‹   rs   rs   rt   Útest_Ames_assay$  s$   ÿþþz!TestPageTrendTest.test_Ames_assayc                 C   sü  t tdd�� t d ¡ W d   ƒ n1 sw   Y  t tdd�� t g ¡ W d   ƒ n1 s1w   Y  t tdd�� t ddg¡ W d   ƒ n1 sNw   Y  t tdd�� t dggg¡ W d   ƒ n1 slw   Y  t tdd�� t tj dd¡¡ W d   ƒ n1 sŒw   Y  t tdd�� t tj dd¡¡ W d   ƒ n1 s¬w   Y  d}t t|d�� tjg d¢g d¢gg d	¢d
� W d   ƒ n1 sÓw   Y  t t|d�� tjg d¢g d¢gg d¢d
� W d   ƒ n1 søw   Y  t t|d�� tjg d¢g d¢gg d¢d
� W d   ƒ n	1 �sw   Y  t t|d�� tjg d¢g d¢gdd
� W d   ƒ n	1 �sBw   Y  t tdd�� t g d¢g d¢gd¡ W d   ƒ n	1 �sew   Y  t tdd�� t g d¢g d¢gd¡ W d   ƒ n	1 �sˆw   Y  t tdd�� tjg d¢ddtjggdd� W d   ƒ n	1 �s®w   Y  t tdd�� tjg d¢g d¢gdd� W d   ƒ n	1 �sÒw   Y  t tdd�� tjg d¢g d¢gdd� W d   ƒ d S 1 �s÷w   Y  d S )Nz`data` must be a 2d array.r–   r   r0   zPage's L is only appropriater1   z+`predicted_ranks` must include each integerr:  rÍ  )rª  r;	  )r¨  r0   r1   )r   r0   r1   r1   rA  z`data` is not properly ranked)r   r0   r1   TrÑ  z`data` contains NaNsFr:	  z`method` must be inÚekki)rª  r?  z`ranked` must be boolean.)rª  r3	  )	r�   rž   re   r5	  rŠ   rV  rå  ri   r¹  rª  rs   rs   rt   rB  *$  sx   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ$ÿz'TestPageTrendTest.test_input_validationN)r²   r³   r´   rŠ   rV  rÜ  rå  Ú	data_3_25Ú
data_10_26Útsr  r  r€  r8	  Úts2rÑ  r9	  rA	  rK	  rB  rs   rs   rs   rt   r	  ž#  s¶    üÿþÿýÿ$$$ýÿÿýÿ$$$ýÿÿÿ$ÿÿÙ,
ÿÿþÿùÿør	  iv¡È5z	fun, argsc                 C   s|   | |ddiŽ}| |ddiŽ}t ||ƒ | j› d�}tjtt |¡d�� | |dddœŽ W d   ƒ d S 1 s7w   Y  d S )Nr?  r@  r“  z#() got multiple values for argumentr–   )r?  r“  )r   r²   r  r   r¹  ÚreÚescape)r¥  r  r‹   r]  Úerrrs   rs   rt   Útest_rename_mode_methoda$  s   
"ÿrT	  c                   @   sr   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zej 	d	g d
¢¡ej 	dddg¡dd„ ƒƒZ
ej 	dddg¡dd„ ƒZdS )ÚTestExpectilec                 C   ó6   t j d¡}|jdd�}ttj|dd�t  |¡ƒ d S )Nr}  r‹  rL  r9   ©rý  )rŠ   rV  rW  r
   re   Ú	expectilerh   ©rj   rO  rl   rs   rs   rt   Útest_same_as_means$  ó   zTestExpectile.test_same_as_meanc                 C   rV	  )Nr}  r‹  rL  r   rW	  )rŠ   rV  rW  r
   re   rX	  ÚaminrY	  rs   rs   rt   Útest_minimumx$  r[	  zTestExpectile.test_minimumc                 C   rV	  )Nr}  r‹  rL  r   rW	  )rŠ   rV  rW  r
   re   rX	  ÚamaxrY	  rs   rs   rt   Útest_maximum}$  r[	  zTestExpectile.test_maximumc           	         sj   t j d¡}dd„ ‰ ‡ fdd„}d}| |¡}| ¡ }| |¡}tj|||d�}||||ƒ}t||ƒ d S )Nl   bÊ@©lN c                 S   s8   t j||d�}d| ||| k< t  || ||  d  ¡S )Nr7  r   r0   )rŠ   r9  rÆ  )rÜ  ró   rý  rF  rÞ  rs   rs   rt   r¥  ‰$  s   z'TestExpectile.test_weights.<locals>.func                    s,   t  | ¡t  | ¡f}tjˆ || ||fd�jS )N)Úbracketr  )rŠ   rú  rû  r   Úminimize_scalarrl   )ró   rý  rF  r`	  ©r¥  rs   rt   Ú
expectile2Ž$  s   ÿÿz.TestExpectile.test_weights.<locals>.expectile2rX   rw  )rŠ   rV  rW  re   rX	  r
   )	rj   rO  rc	  rú  ró   rý  rF  r‹   r\  rs   rb	  rt   Útest_weights‚$  s   

zTestExpectile.test_weightsrý  )rý  g¢¹ÿÿÿÿß?r9   g/#    à?rÄ  rú  r‹  rH  c              	   C   sâ  t j d¡}|j|d�}dD ]}ttjt j||d�|d�|ƒ q| ¡ }ttj|| |d�tj||d�| ƒ ttj|| |d�tj||d�| ƒ ttj|| |d�|tj||d� ƒ |j	|dd�}|dkrmd	d
„ }n|dkrvdd
„ }ndd
„ }|tjt j
||  |d�tj||d�tj||d� ƒ |j|dd�}tj||d�tj||d�ks¬J ‚|j	|dd�}dD ]&}|tjd| | ||  |d�d| tj||d� |tj||d�  ƒ qµttj| |d�tj|d| d� ƒ dS )u²  
        See Section 6 of
        I. Steinwart, C. Pasin, R.C. Williamson & S. Zhang (2014).
        "Elicitation and Identification of Properties". COLT.
        http://proceedings.mlr.press/v35/steinwart14.html

        and

        Propositions 5, 6, 7 of
        F. Bellini, B. Klar, and A. MÃ¼ller and E. Rosazza Gianin (2013).
        "Generalized Quantiles as Risk Measures"
        http://doi.org/10.2139/ssrn.2225751
        r}  rL  )rf  r   r9   )rk  r8  rW	  rX   ræ  r9   c                 S   s   t | |ƒ d S rð  )r
   ©ró   rû   rs   rs   rt   Ú	assert_opÕ$  r'  z:TestExpectile.test_expectile_properties.<locals>.assert_opc                 S   s   | |k sJ ‚d S rð  rs   re	  rs   rs   rt   rf	  Ù$  r  c                 S   s   | |ksJ ‚d S rð  rs   re	  rs   rs   rt   rf	  Ý$  r  r3   )r²  r9   rÄ  r   N)rŠ   rV  rW  rX  r
   re   rX	  r   ÚexponentialÚlogisticÚr_)rj   rý  rú  rO  rl   rÎ  rm   rf	  rs   rs   rt   Útest_expectile_propertiesœ$  s\   þþþþ

ÿþ
 ÿþþz'TestExpectile.test_expectile_propertiesc                 C   sˆ   t j d¡}|jd|d�}g }t  dt  d¡d¡}t jd|d|d d	d	…  df D ]}| tj	||d
�¡ q)t  
t  |¡dk¡sBJ ‚d S )Nr}  r0   )ró   rM  r˜  r9   rJ  r   r   r^   rW	  )rŠ   rV  rW  ÚparetoÚlogspaceÚlog10ri	  r·  re   rX	  rÕ  Údiff)rj   rú  rO  rl   Úe_listÚ	alpha_seqrý  rs   rs   rt   Útest_monotonicity_in_alpha%  s   $z(TestExpectile.test_monotonicity_in_alphaN)r²   r³   r´   rZ	  r]	  r_	  rd	  r  r  r€  rj	  rq	  rs   rs   rs   rt   rU	  r$  s    ÿarU	  c                	   @   sô   e Zd Zg d¢Zdg d¢ejejdgZdd„ Ze	dd„ ƒZ
ej d	ed
dg g d¢gg ¡dd„ ƒZej de¡dd„ ƒZej de¡dd„ ƒZej de¡dd„ ƒZej d	ddg d¢g¡ej dddg¡ej dddg¡dd„ ƒƒƒZdd „ Zd!S )"ÚTestLMoment)yç×£p=
×ë?rs	  ç¤p=
×£ô?r:   r8  r›  r:   r9   r½   r„  r6  ç{®Gázð?gÍÌÌÌÌÌ@çÃõ(\�Âå?g×£p=
×û?ç
×£p=
ÿ?g)\�Âõ(ä?gR¸…ëQ @r†  ç{®Gázä?çffffff @r‚  g{®Gáz@gR¸…ëQð?g®Gáz@g…ëQ¸…ë?çÃõ(\�Âõ?rt	  gáz®Gáú?g
×£p=
ç?g¸…ëQ¸ú?çffffffò?g®Gáz
@gÃõ(\�Âí?g�Âõ(\�ê?g…ëQ¸í?çq=
×£pí?g�Âõ(\�@çìQ¸…ëñ?g®Gáz®	@r›  ç…ëQ¸…ó?rt	  ç¤p=
×£ @rx	  g¤p=
×£@gq=
×£p@gR¸…ëQü?ç®Gázæ?g
×£p=
û?r³  gHáz®Gý?g      @r›  g¸…ëQ¸ò?r~  r~	  çR¸…ëQè?r€	  g¸…ëQ¸Þ?ç¤p=
×£ð?gìQ¸…ë@g®Gázö?g…ëQ¸ù?g¤p=
×£ü?çq=
×£pù?r9  g¤p=
×£ø?g…ëQ¸ñ?ru	  r�	  gÍÌÌÌÌÌ@ry	  g)\�Âõ( @gáz®Gá@rƒ	  r‚  g®Gázú?g�Âõ(\�ú?r~  ç333333÷?ç)\�Âõ(ô?r„  rv	  g®Gáz®@rÄ  g�Âõ(\�ò?g=
×£p=ê?rx	  rs	  gHáz®Gõ?ç{®Gázô?r…	  g
×£p=
ó?g×£p=
×ó?r}	  r„	  ru	  gìQ¸…ëõ?rÖ  gš™™™™™õ?r†	  r‚	  gö(\�Âõô?rs	  g¸…ëQ¸î?gffffff@g…ëQ¸…û?gÍÌÌÌÌÌð?r{	  g®Gáz®û?ru	  g{®Gázø?gHáz®G@rz	  r	  r|	  g\�Âõ(\ç?gö(\�Âõø?rw	  gö(\�Âõè?r:   )r   r0   r<   za duckc                 C   sP   d}t jt|d�� t tj| jtjd�¡ W d   ƒ d S 1 s!w   Y  d S ©Nz*`sample` must be an array of real numbers.r–   r  )	r  r   rž   re   ÚlmomentrŠ   r   rª  rŒ  rª  rs   rs   rt   Útest_dtype_iv%  rl  zTestLMoment.test_dtype_ivc                 C   sN   d}t jt|d�� t tj| jtd�¡ W d   ƒ d S 1 s w   Y  d S r‡	  )	r  r   rž   re   rˆ	  rŠ   r   rª  rÂ  rª  rs   rs   rt   Útest_dtype_iv_non_numeric"%  s   "ÿz%TestLMoment.test_dtype_iv_non_numericrˆ  r   r^   r:  c                 C   óH   d}t jt|d�� tj| j|d� W d   ƒ d S 1 sw   Y  d S )Nz*`order` must be a scalar or a non-empty...r–   r�  ©r  r   rž   re   rˆ	  rª  )rj   rˆ  rA  rs   rs   rt   Útest_order_iv(%  r¬  zTestLMoment.test_order_ivrS   c                 C   r‹	  )Nz"`axis` must be an integer, a tupler–   rR   rŒ	  )rj   rS   rA  rs   rs   rt   Útest_axis_iv.%  r¬  zTestLMoment.test_axis_ivÚsortedc                 C   r‹	  )Nz`sorted` must be True or False.r–   )r�	  rŒ	  )rj   r�	  rA  rs   rs   rt   Útest_sorted_iv4%  r¬  zTestLMoment.test_sorted_ivÚstandardizec                 C   r‹	  )Nz$`standardize` must be True or False.r–   )r‘	  rŒ	  )rj   r‘	  rA  rs   rs   rt   Útest_standardize_iv:%  r¬  zTestLMoment.test_standardize_ivr   r2   r'  FTc                 C   sn   t  g d¢¡}|s|dd …  |d 9  < |rt  | j¡n| j}tj||||d�}t||t  |¡d  ƒ d S )N)g0Ê»EHŠö?g�kÁ««ÜÕ?g¦z¨[Ì?g+�3 Á?r0   r   )r‘	  r�	  )rŠ   rb   rê  rª  re   rˆ	  r
   )rj   rˆ  r‘	  r�	  r\  rª  r‹   rs   rs   rt   Útest_lmoment@%  s   	zTestLMoment.test_lmomentc                 C   s¤   t j}t  | j¡}t | |¡¡}t |¡}|jj|ksJ ‚t	||dd� t j
}t  g d¢¡}t | |¡¡}t | t j¡¡}|jjt jksIJ ‚t	||dd� d S )Nr  r*  r2  rì   )rŠ   r   rb   rª  re   rˆ	  r,  r
  rº  r
   Úint64r¶   )rj   r
  Úsampler‹   r\  rs   rs   rt   Ú
test_dtypeT%  s   
zTestLMoment.test_dtypeN)r²   r³   r´   rª  rŠ   ri   r’  Únot_integersr‰	  r'   rŠ	  r  r  r€  r�	  rŽ	  r�	  r’	  r“	  r–	  rs   rs   rs   rt   rr	  %  s&    




rr	  c                   @   s‚   e Zd Zej dg d¢¡ej dddg¡ej dddg¡dd	„ ƒƒƒZd
d„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ ZdS )ÚTestXP_MeanrS   ©Nr   r^   )r#  r0   rF  NTr›  Fc                 C   s†   t j d¡}| d¡}| |¡}d  }}	|r(| d¡}| |¡}	t  ||¡\}}t||	||d�}
t j||||d�}t|
| |¡ƒ d S )Nì   -Òf¹H r¬  r{   )rF  rS   r›  )rŠ   rV  rW  rb   r4  r"   r£  r.   )rj   rk   rS   rF  r›  rO  rl   Úx_xprÞ  Úw_xpr‹   r\  rs   rs   rt   Útest_xp_mean_basicf%  s   



zTestXP_Mean.test_xp_mean_basicc                 C   sZ   |  d¡| d¡}}d}tjt|d�� t||d� W d   ƒ d S 1 s&w   Y  d S )Nr‡   r3   z/Array shapes are incompatible for broadcasting.r–   rw  )r   rÃ  r  r   rž   r"   )rj   rk   rl   rÞ  rA  rs   rs   rt   Útest_non_broadcastabley%  s
   "ÿz"TestXP_Mean.test_non_broadcastablec                 C   sŒ   |  g d¢¡}t|  g d¢¡|d�}t||  |j¡ƒ t|  g d¢¡|d�}t||  tj ¡ƒ t|  g d¢¡|d�}t||  tj¡ƒ d S )NrØ  r‰  rw  )r  r½   r½   )r½   r½   r  )rb   r"   r.   ri   rŠ   r’  )rj   rk   rF  r‹   rs   rs   rt   Útest_special_cases€%  s   zTestXP_Mean.test_special_casesc           
      C   sn  |  d¡}|dk}| || |j¡|¡}d}tjt|d�� t|dd� W d   ƒ n1 s.w   Y  t|ƒ}t|dd�}| |j¡}t||ƒ t||ƒ t|dd�}| 	||  ¡}t
||ƒ | d	¡}	| || |j¡|	¡}	t|  d¡|	dd
�}| 	||  ¡}t
||ƒ d}tjt|d�� t|tj dd�}| |j¡}t||ƒ W d   ƒ d S 1 s°w   Y  d S )Nr‡   r1   r•   r–   r˜   r’   rî  r‘   rX   )rF  r“   úAfter omitting NaNs...)r   rÐ  rb   ri   r  r   rž   r"   r/   rh   r.   ru  r  rœ   rŠ   )
rj   rk   rl   r  rA  r  r]  r\  r‹   rF  rs   rs   rt   rã  �%  s4   
ÿ




"ýzTestXP_Mean.test_nan_policyc                 C   óà   d}t jt|d�� t| g ¡ƒ}| |j¡}t||ƒ W d   ƒ n1 s&w   Y  d}t jt|d�� t| g g¡dd�}| |jg¡}t||ƒ W d   ƒ n1 sUw   Y  t| g g¡dd�}| g ¡}t||ƒ d S ©Nz,One or more sample arguments is too small...r–   z2All axis-slices of one or more sample arguments...r   rR   r   )r  r  r   r"   rb   ri   r/   ©rj   rk   rA  r‹   r\  rs   rs   rt   r�  ±%  ó   ýý
zTestXP_Mean.test_emptyc                 C   sÂ   |  |j¡j}tj||gtjd�}| |¡}tjdd��! t|ƒ}t |¡}tj 	|tj
¡ t|| |¡ƒ W d   ƒ n1 s@w   Y  t||jd�}| t tj|tjd�¡¡}t||ƒ d S )Nr  r?  ©Úover)rµ   r   rû  rŠ   rb   rB  r"   rh   r“  r   r’  r.   r¶   ©rj   rk   rû  Úx_npr›	  r‹   r\  rs   rs   rt   r–	  Â%  s   

üzTestXP_Mean.test_dtypec                 C   sD   |  d¡}|  d¡}tt|ƒt|ƒƒ tt||d�t||d�ƒ d S )NrX   r‡   rw  )r   r/   r"   ©rj   rk   rl   rm   rs   rs   rt   Útest_integerÓ%  s   

zTestXP_Mean.test_integerc           	      C   sx   t j d¡}| d¡\}}}}t| ||d  ¡| ||d  ¡d�}t j||d  ||d  d�}t|| |¡ƒ d S )Nrš	  )r2   r‹  r  rw  )rŠ   rV  rW  r"   rb   r£  r.   )	rj   rk   rO  rl   rm   ÚwxÚwyr‹   r\  rs   rs   rt   r   Ú%  s
   (z TestXP_Mean.test_complex_gh22404)r²   r³   r´   r  r  r€  r�	  rž	  rŸ	  rã  r�  r–	  rª	  r   rs   rs   rs   rt   r˜	  d%  s    $r˜	  rê   c                   @   sœ   e Zd Zej dg d¢¡ej dddg¡ej dddg¡ej d	d
dg¡dd„ ƒƒƒƒZdd„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zejjddd�dd„ ƒZdS )Ú
TestXP_VarrS   r™	  r›  FTry   r   r   r“   rî  r‘   c                 C   s¸   t j d¡}| d¡}t j}|dkr#|j|jd�dk}	t j||	< t j}| |¡}
t|
||||d�}t	ƒ �}| 
td¡ |||||d�}W d   ƒ n1 sMw   Y  t|| |¡ƒ d S )	Nrš	  r¬  r‘   rL  r9   )rS   r›  ry   r“   rÛ  )rS   r›  rÎ  )rŠ   rV  rW  r~   rk  ri   Únanvarrb   r#   r   r§   rœ   r.   )rj   rk   rS   r›  ry   r“   rO  rl   Úvar_refÚnan_maskr›	  r‹   r    r\  rs   rs   rt   Útest_xp_var_basicæ%  s    



ÿþzTestXP_Var.test_xp_var_basicc                 C   s,   t | ddg¡dd�}t|| |j¡ƒ d S )Nr½   r  r1   rx   )r#   rb   r.   ri   )rj   rk   r‹   rs   rs   rt   rŸ	  ÿ%  s   zTestXP_Var.test_special_casesc           
      C   s(  |  d¡}|dk}| || |j¡|¡}d}tjt|d�� t|dd� W d   ƒ n1 s.w   Y  t|ƒ}t|dd�}| |j¡}t||ƒ t||ƒ t|dd�}t	|ƒ}	|	 
||  ¡}t||ƒ d	}tjt|d�� t|tj dd�}| |j¡}t||ƒ W d   ƒ d S 1 s�w   Y  d S )
Nr‡   r1   r•   r–   r˜   r’   rî  r‘   r 	  )r   rÐ  rb   ri   r  r   rž   r#   r/   r(   r~   r.   r  rœ   rŠ   )
rj   rk   rl   r  rA  r  r]  r\  r‹   r€   rs   rs   rt   rã  &  s,   
ÿ


"ýzTestXP_Var.test_nan_policyc                 C   r¡	  r¢	  )r  r  r   r#   rb   ri   r/   r£	  rs   rs   rt   r�  "&  r¤	  zTestXP_Var.test_emptyc                 C   sÆ   |  |j¡j}tj||d gtjd�}| |¡}tjdd��! t|ƒ}t |¡}tj 	|tj
¡ t|| |¡ƒ W d   ƒ n1 sBw   Y  t||jd�}| t tj|tjd�¡¡}t||ƒ d S )Nr0   r  r?  r¥	  )rµ   r   rû  rŠ   rb   rB  r#   r~   r“  r   r’  r.   r¶   r§	  rs   rs   rt   r–	  3&  s   

üzTestXP_Var.test_dtypec                 C   s*   |  d¡}|  d¡}tt|ƒt|ƒƒ d S )NrX   r‡   )r   r/   r#   r©	  rs   rs   rt   rª	  D&  s   

zTestXP_Var.test_integerrF   r  rD   c                 C   sZ   t j d¡}| d¡\}}t| ||d  ¡ƒ}t  ||d  ¡}t|| |¡dd� d S )Nrš	  )r0   r‹  r  F)Úcheck_dtype)rŠ   rV  rW  r#   rb   r~   r.   )rj   rk   rO  rl   rm   r‹   r\  rs   rs   rt   r   J&  s
   zTestXP_Var.test_complex_gh22404N)r²   r³   r´   r  r  r€  r±	  rŸ	  rã  r�  r–	  rª	  rG   r   rs   rs   rs   rt   r­	  â%  s    r­	  c                 C   sÈ   t j d¡}|jdd�}|  |¡}d}t||| d�\}}t||  |¡ƒ t||ƒ d }t||| d�\}}t||  | ¡ ¡ƒ t|dƒ d}t|d || d�\}}t||  t  |d ¡¡ƒ t||ƒ d S )	Nl   š~M‹r   rL  r   ri  r   r0   r/  )	rŠ   rV  rW  rb   r   r/   r   rp  Ú
atleast_1d)rk   rO  rz  rl   rS   Úx_outÚaxis_outrs   rs   rt   Útest_chk_asarrayS&  s   


r¶	  Únumpyz,These parameters *are* compatible with NumPyc                 C   s�   |   g d¢¡}d}tjt|d�� tj|dd� W d   ƒ n1 s"w   Y  tjt|d�� tj|dd� W d   ƒ d S 1 sAw   Y  d S )Nr'  rê  r–   r‘   r’   Tr³  )rb   r  r   rí  re   r£  )rk   rl   rA  rs   rs   rt   Ú'test_axis_nan_policy_keepdims_nanpolicyi&  s   	ÿ"ÿr¸	  rX  )ærÝ   rA  rQ	  rs  Úcollectionsr   Ú	itertoolsr   Úhypothesis.extra.numpyÚextrar·	  rÈ  rÎ  rË  Únumpy.testingr   r   r   r   r   r	   r
   r   r   r  r   r�   Únumpy.ma.testutilsrt  Ú	testutilsrp  r   r   r   r   rŠ   Úscipy.statsre   Úscipy.stats.mstatsr‡  Úscipy.stats._mstats_basicÚ_mstats_basicr  Úscipy.stats._ksstatsr   Úscipy.special._testutilsr   Úscipy.specialr   Úscipyr   Úcommon_testsr   Úscipy.stats._axis_nan_policyr   r   r   r   r   r   rï  r   r   r    r!   r"   r#   r$   Úscipy._lib._utilr%   Úscipy.conftestr&   r'   Úscipy._lib._array_apir(   r)   r*   r+   r,   r-   Úscipy._lib._array_api_no_0dr.   r/   r  rG   r  rc   rû  rÄ   rÆ   rÈ   rÊ   rÌ   r™  rH   r¹   rß   rƒ  rÓ  r1  r|  r�  r†  rŒ  r�  rÑ  rÓ  rÖ  râ  rã  rï  rS  r^  rd  re  r‘  rÈ  rÔ  r!  rG  rH  ry  rš  rœ  r´  rÐ  Ú	compositerÔ  r×  r  ÚPowerDivCaser  rJ  ri  re  r0  rf  rn  rˆ  r‰  r¢  r¼  r  r  r  r€  rÇ  r  r#  r$  rÝ  r  r&  r*  r2  r3  r4  rF  r5  rr  rˆ  rš  r¤  r©  r«  r¬  r­  r®  r²  r³  r½  rÀ  rÂ  rÃ  rÑ  rÊ  rË  rÌ  rÍ  rì  r÷  rþ  r  r
  r  r!  r;  rE  rI  rM  rO  rQ  rR  r‹  r•  r§  rÅ  r×  rå  ræ  rö  r	  r,  ro  r€  r’  rš  rÉ  rÙ  rÝ  rù  r	  rV  rW  rO  rl   rm   Úwilcoxonr’  rÂ  r“  r½  r�  rT	  rU	  rr	  r˜	  r­	  r¶	  r¸	  rs   rs   rs   rt   Ú<module>   sÐ   , $ ÿÿ
ÿ
 6s
     	  L [
 WZ

)  "u j-

  ? j 7{j
ÿ
 
sÿü,,üüÿëþû	ûï J+V70_  (u	ÿÿ

ÿÿ
ÿ
T:
	  
TI ÿ
Kÿ
Qÿ



ÿÿ

ÿ
ÿ

ÿ
	ÿ
<ÿ
ÿ
 >2=~+ÿrizS^W/ m >[þ
f& 0^C -  ?



ýÿ W}
n
ÿ
