
    Ug                       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	c 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c mZ ddl
mZm Z m!Z!m"Z"m#Z# ddl
Z$ddl%m&Z& ddl'm&c m(Z( ddl)m&c m*Z+ ddl,m-Z- dd	l.m/Z/ dd
l0m1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z< ddl=m>Z>m?Z?m@Z@mAZA ddlBmCZC ddlDmEZEmFZF ddlGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZP ejQ        jR        ZR	  eg deS          ZT eg deS          ZU eg deS          ZV eg deS          ZW eg deS          ZX eg deS          ZY eg deS          ZZ G d d          Z[ G d d          Z\eEejQ        ]                    d           eRd            G d! d"                                              Z^ G d# d$          Z_ G d% d&          Z` G d' d(          Zad) Zbd* Zcd+ Zdd, Ze G d- d.          Zfd/ Zgd0 Zhd1 Zid2 Zj G d3 d4          Zk G d5 d6          Zld7 Zmd8 Znd9 Zo G d: d;          Zp G d< d=          ZqeE G d> d?                      Zr G d@ dA          Zs G dB dC          ZtdD Zu G dE dF          Zv G dG dH          Zw G dI dJ          Zx G dK dLex          Zy G dM dNex          Zzej{        j|        dO             Z}ejQ        R                    ddPgQ          ejQ        ]                    d          eE G dR dS                                              Z~ G dT dU          Z edVg dW          Z eg dXddddYdZdY e$j        d[          z  d\ e$j        d]          z  z   z  dZd^ e$j        d_          z  d^ e$j        d`          z  z   z  daW           eg dXg dbdddcdZdY e$j        d_          z  d^ e$j        d[          z  z   d^ e$j        dd          z  z   z  dZdZ e$j        d[          z  de e$j        d_          z  z   dZ e$j        df          z  z   z  dgW           eg dXd^dddYdZdY e$j        d[          z  d\ e$j        d]          z  z   z  dZd^ e$j        d_          z  d^ e$j        d`          z  z   z  daW           eg dhg dhddddddW          gZ eg dddddddW           e e$j        g g g g          j        dddg dig dig dig diW           e e$j        g g g g          dddg g g g W          gZeE G dj dk                      ZeE G dl dm                      ZeF G dn do                      Zdp Z G dq dr          Z G ds dt          Z G du dv          Zdw Zdx Zdy ZejQ                            dz e$j        d{          d|f e$j        d}          d~fg          d             Zd ZejQ                            dg d          d             ZejQ                            de&j         e$j         d          dffe&j         e$j         d           e$j         d          ffg          d             ZddZd Z G d d          Z G d d          Z G d d          Z G d d          Zd Zd Zd Zd ZejQ                            dz e$j        d{          d|f e$j        d}          d~fg          d             Zd Zd Zd Zd Zd Zd ZejQ        j        ejQ        R                    ddPgQ          ejQ        ]                    d          eEd                                                 ZejQ        R                    ddg          ejQ        ]                    d          eEd                                     ZejQ        R                    ddPgQ          ejQ        ]                    d          eEd                                     Z G d d          ZeE G d d                      Z G d de          Z G d de          Z G d de          Z G d d          ZeE G d d                      Z G d d          Zd Zd Z	 	 ddZ	 	 ddZ	 	 ddZ G d d          Z G d d          Z G d d          Z G d d          Zd Zd Zd Z G d dæ          Z G dĄ dŦ          Z G dƄ dǦ          Z G dȄ dɦ          Z G dʄ d˦          Z G d̄ dͦ          Z G d΄ dϦ          Z G dЄ dѦ          Z G d҄ dӦ          Z G dԄ dզ          Z G dք dצ          Z G d؄ d٦          Z G dڄ dۦ          Z G d܄ dݦ          Ze$j                            dަ          ZeР                    d          ZeР                    d          ZejQ                            de&j        effe&j        ee&j        j        ffe&j        eeffe&j        eeffg          d             Z G d d          ZeEd             ZejQ        R                    ddg          ejQ        ]                    d          eEd                                     ZdS )z Test functions for stats module

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

    Additional tests by a host of SciPy developers.
    N)
namedtuple)product)	assert_assert_equalassert_almost_equalassert_array_almost_equalassert_array_equalassert_approx_equalassert_allclosesuppress_warningsassert_array_less)raises)arrayarangefloat32float64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)	AxisError)array_api_compatibleskip_xp_invalid_arg)xp_assert_closexp_assert_equalarray_namespacecopyis_numpyis_torchSCIPY_ARRAY_APIsize)	r                        	   )	r   r   r   r   r   r   r   r   r   )	iiiiiiiii)	g~?g<?gEk?g?ge(?gq?g?g8C?gG?)	g   mBg   }Bg  yӅBg   Bg  @0Bg  yӕBg  BwBg   Bg   ^B)	-q=g-=gAfc=g-=gdy=gAfc=gYLɞ=g-=gSSʣ=)	      ?      ?      @      @      @      @      @      @      !@c                   f    e Zd Z ej        ej                  j        Zd Zd Z	d Z
d Zd Zd ZdS )TestTrimmedStatsc           
         t          j        t          dd          }t          |d| j                   t          j        t          dd          }t          j        t          d           }t          ||| j                   t          dt          	                              d
d          }t          j        |d           }t          ||                                | j                   t          j        |d          }t          ||                    d          d           t          j        |d          }t          ||                    d          d           t          j        |dd           }t          |d| j                   t          j        |dd          }g d}t          ||d           t          j        |ddd          }g d}t          ||d           t          j        |          }t          j        |ddd f<   t          j        |dd          }ddddt          j        t          j        t          j        g}t          ||d           t                      5 }|                    t          d           t          j        |dd          }d d!d"d#t          j        t          j        t          j        t          j        t          j        g	}t          ||d           t          j        |dd$d          }dd!d"d#t          j        t          j        t          j        t          j        t          j        g	}t          ||d           d d d            d S # 1 swxY w Y   d S )%Nr/   r5   TT      @significant)FFlimits	inclusiverJ   ?   dtyper6   r4   axisr   r5   decimalr   )r/   =   )rJ   rQ   g     ?@)r/      )         '@r6   
            TF)rJ   rK   rQ   )      %@rW   r6   rX   rY   rZ   r[   )r   r[   r<   r=   r>   Mean of empty slicer1   rX      rU   FT)statstmeanXr
   dprecr   r   reshapemeanr   npr   nanr   recordRuntimeWarning)selfyy1y2x_2dy_truex_2d_with_nansups           [/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/scipy/stats/tests/test_stats.py
test_tmeanzTestTrimmedStats.test_tmeanP   sV   K6<00As
;;;;[6^DDD[4(((B
;;;;b(((00A66K4(((Atyy{{
CCCCK1%%%!!TYYAY%6%6BBBBK1%%%!!TYYAY%6%6BBBBKW4888At<<<<KW1555...!!VQ7777KWANNN000!!VQ7777!#b"##gKgA>>>S#sBFBFBF;!!VQ7777   
	<CJJ~'<===Dq999ARRVRVRVRVRVLF%a;;;;D&3!= = =A2r2rvrvrvrvrvNF%a;;;;
	< 
	< 
	< 
	< 
	< 
	< 
	< 
	< 
	< 
	< 
	< 
	< 
	< 
	< 
	< 
	< 
	< 
	<s   0C)M&&M*-M*c                    t          j        t          dd          }t          |d| j                   t          j        t          d           }t          |t                              d          | j                   t          d	t          
                              d          }t          j        |d           }t          ||                    d          | j                   t          j        |d          }t          |d         t          j        dd          d           t          j        |d          }t          |d         t          j        dd          d           t          j        |dd d f                   }t          |d| j                   t                      5 }|                    t          d           t          j        |ddd          }t          |d         d| j                   t          j        |ddd          }t          |d         d| j                   t          |d         t          j                   d d d            d S # 1 swxY w Y   d S )NrD   rE   rI   g@rG   rL   r   ddofrM   rN   )r6   r4   rP   r   )r   r4   g     v@r5   rR   )r   r6   g㪪@r0   g@z"Degrees of freedom <= 0 for slice.)r   r2   )rJ   rQ   rK   r:   r   r3   )rc   tvarre   r
   rf   varr   r   rg   r   ri   fullr   rk   rl   r   rj   )rm   rn   rq   rt   s       ru   	test_tvarzTestTrimmedStats.test_tvar   sh   Jq<@@@A1tzJJJJJq&&&Aquu!u}}$*EEEEb(((0088Jt$'''AtxxQx//TZHHHHJt!$$$!!A$(E(EqQQQQJt!$$$!!A$
(C(CQOOOOJtAqqqDz""A0djIIII   
	'CJJ~'KLLL 
4Q,OOOA!ctzBBBB 
4Q,OOOA!&7TZPPPP1rv&&&
	' 
	' 
	' 
	' 
	' 
	' 
	' 
	' 
	' 
	' 
	' 
	' 
	' 
	' 
	' 
	' 
	' 
	's   .B&I!!I%(I%c                     t          j        t          dd          }t          |d| j                   t          j        t          d           }t          |t                              d          | j                   d S )NrD   rE   gBĆ/H@rG   rL   r   rx   )rc   tstdre   r
   rf   stdrm   rn   s     ru   	test_tstdzTestTrimmedStats.test_tstd   sj    Jq&,//A1tzJJJJJq&&&Aquu!u}}$*EEEEEE    c                    t          t          j        d          d           t          j        d          }t          t          j        |          d           t          t          j        |d          d           t          t          j        |dd          d           |                    d          }t          t          j        |dd          d	dg           t          t          j        |d
          g d           t          t          j        |d 
          d           t          j        d          }t          j        |d<   t                      5 }|                    t          d           t          t          j        |          t          j                   t          t          j        |d          d           t          t          t          j        |d           t          t          t          j        |d           d}t          t          |          5  t          j        |d           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t                      5 }|                    t          d           t          j        d                              dd          }t          j        |dd          }t          |t          j        dddg           d d d            d S # 1 swxY w Y   d S )Nr1   rX   r   )
lowerlimitF)r   rK   r   r2   r/   r/   rP   )r   r/   r1   r3   r5         $@r6   invalid value*omit
nan_policy        raisefoobarnan_policy must be one of...matchfooAll-NaN slice encountered   )r   rQ   r5   rZ   )r   rc   tminri   r   rg   rj   r   rk   rl   assert_raises
ValueErrorfilter)rm   xrt   msgress        ru   	test_tminzTestTrimmedStats.test_tmin   sA   UZ]]A&&&IbMMUZ]]A&&&UZa000!444UZa5AAA1EEEIIfUZa5AAAAq6JJJUZ***OOO<<<UZ---q111IcNNv!   	0CJJ~'7888A///A&9992>>>*ej!HHHH*ej!IIII0Cz555 0 0
1////0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0    	2CJJ~'BCCC	"%%a++A*Q11555Crvq!R0111		2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2sJ   CI!I8II	II	II"I4A9K::K>K>c                    t          t          j        d          d           t          j        d          }t          t          j        |          d           t          t          j        |d          d           t          t          j        |dd          d           |                    d          }t          t          j        |dd          dd	g           t          t          j        |d
          g d           t          t          j        |d           d           t          j        d          }t          j        |d<   t                      5 }|                    t          d           t          t          j        |          t          j                   t          t          j        |d          d           t          t          t          j        |d           t          t          t          j        |d           d d d            n# 1 swxY w Y   t                      5 }|                    t          d           t          j        d                              dd          }t          j        |dd
          }t          |dd	dt          j        g           d d d            d S # 1 swxY w Y   d S )Nr1   rX   r6   )
upperlimitF)r   rK   r5   r   r4   r   rP   r   r0   r2   r4   r6   r   r3   r   r   r         "@r   r   r   r   rY   )r   rQ   r0   )r   rc   tmaxri   r   rg   rj   r   rk   rl   r   r   r   )rm   r   rt   r   s       ru   	test_tmaxzTestTrimmedStats.test_tmax   s   UZ]]A&&&IbMMUZ]]A&&&UZa000!444UZa5AAA1EEEIIfUZa5AAAAq6JJJUZ***OOO<<<UZ---q111IcNNv!   	JCJJ~'7888A///A&9992>>>*ej!HHHH*ej!IIII	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J 	J    	2CJJ~'BCCC	"%%a++A*Q2A666Cq!R0111		2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s&   B0HHH.A9J44J8;J8c                    t          j        t          dd          }t          j        g d          }t          ||                    d          t          j        |j                  z  | j	                   t          t          j        t          dd	g
          t          j        t          d 
          | j	                   d S )N)r0   r5   rb   rI   )r1   r2   r3   r4   r5   r   rx   rG   r^   rX   rL   )
rc   tsemre   ri   r   r
   r   sqrtr.   rf   )rm   rn   y_refs      ru   	test_tsemzTestTrimmedStats.test_tsem   s    Jq=AAA))Auyyay00275:3F3FF(,
	4 	4 	4 	4 	EJq"b:::!Jq666(,
	4 	4 	4 	4 	4 	4r   N)__name__
__module____qualname__ri   finfor   	precisionrf   rv   r~   r   r   r   r    r   ru   rB   rB   L   s        BHRZ  *E-< -< -<^' ' '@F F F2 2 2B2 2 2<4 4 4 4 4r   rB   c                       e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )TestPearsonrWilkinsonE   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                 t    t          j        t          t                    }|d         }t          |d           d S Nr         ?)rc   pearsonrre   r
   rm   rn   rs      ru   test_pXXzTestPearsonrWilkinson.test_pXX   s2    N1QaDAc"""""r   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rc   r   re   BIGr
   r   s      ru   
test_pXBIGz TestPearsonrWilkinson.test_pXBIG   s2    N1S!!aDAc"""""r   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rc   r   re   LITTLEr
   r   s      ru   test_pXLITTLEz#TestPearsonrWilkinson.test_pXLITTLE  s2    N1V$$aDAc"""""r   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rc   r   re   HUGEr
   r   s      ru   test_pXHUGEz!TestPearsonrWilkinson.test_pXHUGE  2    N1T""aDAc"""""r   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rc   r   re   TINYr
   r   s      ru   test_pXTINYz!TestPearsonrWilkinson.test_pXTINY  r   r   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rc   r   re   ROUNDr
   r   s      ru   test_pXROUNDz"TestPearsonrWilkinson.test_pXROUND  s2    N1U##aDAc"""""r   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rc   r   r   r
   r   s      ru   test_pBIGBIGz"TestPearsonrWilkinson.test_pBIGBIG  s2    N3s##aDAc"""""r   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rc   r   r   r   r
   r   s      ru   test_pBIGLITTLEz%TestPearsonrWilkinson.test_pBIGLITTLE  s2    N3v&&aDAc"""""r   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rc   r   r   r   r
   r   s      ru   test_pBIGHUGEz#TestPearsonrWilkinson.test_pBIGHUGE!  2    N3t$$aDAc"""""r   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rc   r   r   r   r
   r   s      ru   test_pBIGTINYz#TestPearsonrWilkinson.test_pBIGTINY&  r   r   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rc   r   r   r   r
   r   s      ru   test_pBIGROUNDz$TestPearsonrWilkinson.test_pBIGROUND+  s2    N3u%%aDAc"""""r   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rc   r   r   r
   r   s      ru   test_pLITTLELITTLEz(TestPearsonrWilkinson.test_pLITTLELITTLE0  s2    N6&))aDAc"""""r   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rc   r   r   r   r
   r   s      ru   test_pLITTLEHUGEz&TestPearsonrWilkinson.test_pLITTLEHUGE5  2    N6$''aDAc"""""r   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rc   r   r   r   r
   r   s      ru   test_pLITTLETINYz&TestPearsonrWilkinson.test_pLITTLETINY:  r   r   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rc   r   r   r   r
   r   s      ru   test_pLITTLEROUNDz'TestPearsonrWilkinson.test_pLITTLEROUND?  s2    N6%((aDAc"""""r   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rc   r   r   r
   r   s      ru   test_pHUGEHUGEz$TestPearsonrWilkinson.test_pHUGEHUGED  2    N4%%aDAc"""""r   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rc   r   r   r   r
   r   s      ru   test_pHUGETINYz$TestPearsonrWilkinson.test_pHUGETINYI  r   r   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rc   r   r   r   r
   r   s      ru   test_pHUGEROUNDz%TestPearsonrWilkinson.test_pHUGEROUNDN  2    N4&&aDAc"""""r   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rc   r   r   r
   r   s      ru   test_pTINYTINYz$TestPearsonrWilkinson.test_pTINYTINYS  r   r   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rc   r   r   r   r
   r   s      ru   test_pTINYROUNDz%TestPearsonrWilkinson.test_pTINYROUNDX  r   r   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rc   r   r   r
   r   s      ru   test_pROUNDROUNDz&TestPearsonrWilkinson.test_pROUNDROUND]  s2    N5''aDAc"""""r   N)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   r   r   ru   r   r      sY        # # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # # # #r   r   skip_xp_backendsT)cpu_onlyc                      e Zd Z ed          d             Z eddgd          d             Z eddgd          d             Z eddgd          d	             Z eddgd          d
             Z eddgd          e	j
                            dddg          d                         Z eddgd          d             Z eddgd          d             Z eddgd          d             Zd Zd Ze	j
                            d          e	j
                            dg d          d                         Z eddgd          d             Z eddgd          d             Ze	j
                            d          d             Ze	j
                            d          e	j
                            d          e	j
                            d          e	j
                            dd          e	j
                            dd          d                                                              Ze	j
                            d          e	j
                            dd          d!                         Ze	j
                            d          e	j
                            d"d#d$g          d%                         Ze	j
                            d          d&             Zd' Z eddgd          d(             Z eddgd          e	j
                            d"g d)          e	j
                            dg d          d*                                     Zd+S ),TestPearsonrTnp_onlyc                     t          j        t          t                    }d}t          ||           t	          |j        |j                   d S Ncorrelationpvalue)rc   r   re   r   r   r   	statisticrm   r   
attributess      ru   test_pearsonr_result_attributesz,TestPearsonr.test_pearsonr_result_attributesg  sB    nQ"".
C,,,S_cm44444r   	jax.numpy)JAX arrays do not support item assignment)reasonsr   c           
      B   |                     d          }t          j        ||          \  }}t          ||                    d          d           t          ||                    d          t          j        dt          j        d          z                       d S )N      @r   V瞯<atolr   r/   r   rc   r   r'   asarrayri   r   spacingrm   xpar   probs        ru   test_r_almost_exactly_pos1z'TestPearsonr.test_r_almost_exactly_pos1n  s     IIcNN.A&&42::c??7777 	bjjooBGAbjoo<M4N4NOOOOOOr   c           
      D   |                     d          }t          j        ||           \  }}t          ||                    d          d           t          ||                    d          t          j        dt          j        d          z                       d S )Nr         r   r  r   r/   r   r  r  s        ru   test_r_almost_exactly_neg1z'TestPearsonr.test_r_almost_exactly_neg1z  s     IIcNN.QB''42::d++%8888 	bjjooBGAbjoo<M4N4NOOOOOOr   c                    |                     g d          }|                     g d          }t          j        ||          \  }}t          ||                     d                     t          ||                     d                     d S )Nr^   r   r   )r   r   r0   LXz?UUUUUU?)r  rc   r   r'   )rm   r  r  br   r	  s         ru   
test_basiczTestPearsonr.test_basic  s     JJzzz""JJyyy!!.A&&42::h//000bjjoo.....r   c                    d}t          j        t          j        |          5  |                    g d          }|                    g d          }t          j        ||          \  }}t          ||                    |j                             t          ||                    |j                             d d d            d S # 1 swxY w Y   d S )NAn input array is constantr   MbX?r  r  grh|?gv/?gsh|??)pytestwarnsrc   ConstantInputWarningr  r   r'   rj   )rm   r  r   r   rn   r   ps          ru   test_constant_inputz TestPearsonr.test_constant_input  s    +\%4C@@@ 	3 	3

00011A

00011A>!Q''DAqArzz"&11222Arzz"&11222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   BCCCrO   r   r   c           
         t          t          |          }t          ||          }|                    dddt          j        d|          z   g|          }|                    ddddt          j        d|          z  z   g|          }d}t	          j        t          j        |          5  t          j        ||           d d d            d S # 1 swxY w Y   d S )Nr/   rN   r0   r3   z/An input array is nearly constant; the computedr   )	getattrri   r  r  r  r  rc   NearConstantInputWarningr   )rm   r  rO   npdtyper   rn   r   s          ru   test_near_constant_inputz%TestPearsonr.test_near_constant_input  s   
 "e$$E""JJ1a"*Qg">">">>?uJMMJJ1a!BJq$@$@$@"@@AJOO?\%8DDD 	! 	! N1a   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!s   -CCCc                 V   |                     g d|j                  }|                     g d|j                  }t          j        ||          \  }}t	          ||                     d|j                             t	          ||                     d|j                             d S )N)gy)r?gxd{s?gnp?g$9"o?ge =:k?rN   )goȟg`
,gzg2l?g>??'ge;E?g3R?r  r   rc   r   r'   rm   r  r   rn   r   r  s         ru   test_very_small_input_valuesz)TestPearsonr.test_very_small_input_values  s     JJVVVZ  ) )JJNNNZ  ) )~a##1 	2::&8
:KKLLL2::&8
:KKLLLLLr   c                 ^   d|                     g d|j                  z  }d|                    d|j                  z  }t          j        ||          \  }}t          ||                     d|j                             t          ||                     d|j                             d S )NgY)	kR)r   r   r   r   r   r   r   rN   r4   r  g͗~-?)r  r   r   rc   r   r'   r%  s         ru   test_very_large_input_valuesz)TestPearsonr.test_very_large_input_values  s     111DDD1BJ///~a##1 	2::&8
:KKLLL2::&:"*:MMNNNNNr   c                 V   |                     g d|j                  }|                     g d|j                  }t          j        ||          \  }}t	          ||                     d|j                             t	          ||                     d|j                             d S )N)g7	igNig_b4igZbirN   )gDig<'(½igmQiZbtig*D{?gݣ?r$  r%  s         ru   !test_extremely_large_input_valuesz.TestPearsonr.test_extremely_large_input_values  s     JJ999JLLJJ;;;2:JNN~a##1 	2::&7rz:JJKKK2::&7rz:JJKKKKKr   c                 p   |                     ddg          }|                     ddg          }t          j        ||          }|\  }}|                     d          }t          ||           t          ||           |                                \  }}	t          ||            t          |	|           d S )Nr          @r   rF   r  rc   r   r(   confidence_interval
rm   r  r   rn   r   r   r  onelowhighs
             ru   test_length_two_pos1z!TestPearsonr.test_length_two_pos1  s     JJBx  JJBx  nQ""1jjnn33++--	TcT"""c"""""r   c                 r   |                     ddg          }|                     ddg          }t          j        ||          }|\  }}|                     d          }t          ||            t          ||           |                                \  }}	t          ||            t          |	|           d S )Nr-  r   r   rF   r.  r0  s
             ru   test_length_two_neg1z!TestPearsonr.test_length_two_neg1  s     JJBx  JJBx  nQ""1jjnnC4   3++--	TcT"""c"""""r   z$alternative, pval, rlow, rhigh, sign))	two-sided?gmgƎ?r   )lessK˅?r^   g?
?r   )greater.?gդζr   r   )r7  r8  gfǎgl?r^   )r9  r<  r  gդζ?r^   )r;  r:  g?
r   r^   c                     g d}t          j        g d          |z  }t          j        |||          }t	          |j        d|z  d           t	          |j        |d           |                                }	t	          |	||fd           d S )Nr   r/   r0   r1   )r   r   r8   r   alternativeg?r7   rtolư>)ri   r   rc   r   r   r   r   r/  )
rm   r@  pvalrlowrhighsignr   rn   resultcis
             ru   test_basic_examplezTestPearsonr.test_basic_example  s     LLH^^^$$t+1+>>>(*<T*ANNNNt$7777''))T5M555555r   c                 6   |                     d          }| }t          j        ||d          }t          j        ||d          }t          |j        |                    d                     t          |j        |                    d          d           d S )	Nr   r;  r?  r9  r   r   g#B;r  )r   rc   r   r'   r   r  )rm   r  r   rn   test_greater	test_lesss         ru   (test_negative_correlation_pvalue_gh17795z5TestPearsonr.test_negative_correlation_pvalue_gh17795  s     IIcNNB~a	BBBN1aV<<<	+RZZ^^<<<	("**R..uEEEEEEr   c                 |   |                     g d          }|                     g d          }t          j        ||          }|\  }}|                     d          }t          ||            t          |d|z  d           |                                \  }}	t          ||            t          |	|           d S )Nr   r-  r   )rF   g      g      *r   r   Hz>r  )r  rc   r   r'   r/  r(   r0  s
             ru   #test_length3_r_exactly_negative_onez0TestPearsonr.test_length3_r_exactly_negative_one"  s     JJ|||$$JJ''nQ"" 1jjooC4   1S5t,,,,++--	TcT"""c"""""r   c                 T   g d}ddg}d}t          j        t          |          5  t          j        ||           d d d            n# 1 swxY w Y   dg}dg}d}t          j        t          |          5  t          j        ||           d d d            n# 1 swxY w Y   g d	}g d	}d
}t          j        t          |          5  t          j        ||           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          j        ddgddgd           d d d            n# 1 swxY w Y   t          j        ddgddg          }t          j        t          |          5  |                    d           d d d            d S # 1 swxY w Y   d S )Nr   r/   r0   r1   r2   z3`x` and `y` must have the same length along `axis`.r   r   r/   (`x` and `y` must have length at least 2.)y             y              y             z+This function does not support complex dataz"`method` must be an instance of...r0   
asymptoticmethodexact)r  r   r   rc   r   r/  )rm   r   rn   messager   s        ru   test_input_validationz"TestPearsonr.test_input_validation3  s   IIFG]:W555 	! 	!N1a   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! CC<]:W555 	! 	!N1a   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! ?]:W555 	! 	!N1a   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 7]:W555 	@ 	@NAq6Aq6,????	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ naVaV,,]:W555 	4 	4##7#333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4sY   AAA6BBBC**C.1C.D::D>D>9FF!$F!r/   z-Monte Carlo method needs > a few kB of memoryr@  r9  r;  r7  rX  permutationmonte_carloc                    t           j                            d          }|dk    rdnd}|                    |          }|                    |          }t	          j        |          t	          j        |j        fdz            d	}||         }t	          j        ||||d
          }t	          j        |||d
          }	t          |j	        |	j	        d           t          |j
        |	j
        dd           d S )Nl   o#[mr^  r/   d   )r/     r.   random_stater/   )rvsr]  r^   )r@  rX  rQ   r@  rQ   r   rA  {Gz?MbP?rB  r  )ri   randomdefault_rngnormalrc   PermutationMethodMonteCarloMethodr   r   r   r   )
rm   rX  r@  rngr.   r   rn   methodsr   refs
             ru   test_resampling_pvaluez#TestPearsonr.test_resampling_pvalueO  s    i##$566!]22xx	JJDJ!!JJDJ!!"'"9s"K"K"K"'"8cj]1_"M"M"MO OnQ{6PRSSSnQ{DDDs}5AAAA
CJTEEEEEEr   c                 n   t           j                            d          }|                    d          }|                    d          }t	          j        |||d          }t	          j        |          }|                    |          }|                                }t          ||d	           d S )
Nl   _Y F ra  rd  r^   rh  re  rW  gQ?r  )	ri   rl  rm  rn  rc   r   BootstrapMethodr/  r   )	rm   r@  rq  r   rn   r   rX  res_ciref_cis	            ru   test_bootstrap_cizTestPearsonr.test_bootstrap_cia  s     i##$455JJHJ%%JJHJ%%nQ{DDD&C888(((77((**V444444r   rQ   r   r   c                    t           j                            d          }d}|                    d|z             \  }}t	          j        |||          }|                                }|dk    r|j        |j        }}t          |j	        d                   D ]}	t	          j        ||	         ||	                   }
|
                                }t          |j        |	         |
j                   t          |j        |	         |
j                   t          |j        |	         |j                   t          |j        |	         |j                   d S )N   I.v# r6   rX   r/   rd  rP   r   )ri   rl  rm  rn  rc   r   r/  Trangeshaper   r   r   r2  r3  )rm   rQ   r  rq  r  r   rn   r   rI  ires_ici_is               ru   test_axis01zTestPearsonr.test_axis01o  s+    i##K00zzte|z,,1nQ---$$&&1993qAqwqz"" 	3 	3AN1Q41..E,,..DCM!,eo>>>CJqM5<888BF1Itx000BGAJ	2222	3 	3r   c                    t           j                            d          }d}|                    d|z             \  }}t	          j        ||d           }|                                }t	          j        |                                |                                          }|                                }	t          |j	        |j	                   t          |j
        |j
                   t          ||	           d S )Nr{  r|  r}  rd  rP   )ri   rl  rm  rn  rc   r   r/  ravelr   r   r   )
rm   r  rq  r  r   rn   r   rI  rs  ci_refs
             ru   test_axis_NonezTestPearsonr.test_axis_None  s    i##K00zzte|z,,1nQ---$$&&nQWWYY		22((**s}555
CJ///F#####r   c                 4   |                     d          x}}d}t          j        t          |          5  t	          j        ||d           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t	          j        ||                     d          d           d d d            n# 1 swxY w Y   d	}t          j        t          |          5  t	          j        |                     d          |                     d          d           d d d            n# 1 swxY w Y   d
}t          j        t          |          5  t	          j        ||                     d          d           d d d            n# 1 swxY w Y   d}t          |          ss|                    d          }t          j        t          |          5  t	          j        ||t	          j                               d d d            d S # 1 swxY w Y   d S d S )N)r/   r2   z`axis` must be an integer.r   r9   rP   z2`x` and `y` must have the same length along `axis`r/   r   r   rU  z"`x` and `y` must be broadcastable.r0   r2   z:`method` must be `None` if arguments are not NumPy arrays.rX   rW  )	onesr  r   r   rc   r   r+   r   ro  )rm   r  r   rn   rZ  s        ru   test_nd_input_validationz%TestPearsonr.test_nd_input_validation  sM   A.]:W555 	+ 	+N1ac****	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ G]:W555 	7 	7N1bggfooA6666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 =]:W555 	E 	EN2776??BGGFOO!DDDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 7]:W555 	7 	7N1bggfooA6666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 O|| 	G		"Az999 G Gq!E,C,E,EFFFFG G G G G G G G G G G G G G G G G G	G 	GsY   AA A+B88B<?B< >D**D.1D.+F		FF)HHHc                 .   t           j                            d          }|                    |                    d                    }|                    |                    d                    }d}t	          j        t          j        |          5  t          |          }d|d<   t          j	        ||d          }|
                                }|                    |j        |j                  }	t          |j        d	         |	           t          |j        d	         |	           t          |j        d	         |	           t          |j        d	         |	           |                    |                    |j        dd                              rJ |                    |                    |j        dd                              rJ |                    |                    |j        dd                              rJ |                    |                    |j        dd                              rJ 	 d d d            n# 1 swxY w Y   d
}t	          j        t          j        |          5  d|d<   t          j	        ||d           d d d            n# 1 swxY 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          }|
                                }t-          |j        |                    g d                     t-          |j        |           t-          |j        |            t-          |j        |           d S )Nl   U!Jr  r  r   r   )r   .rP   rN   r   z!An input array is nearly constantg     ?r   r   r/   r   r1   r^   )r   r^   r^   r   )ri   rl  rm  r  r  r  rc   r  r*   r   r/  rj   r   r(   r   r   r2  r3  anyisnanr   r  r'   )rm   r  rq  x0y0rZ  r   r   rI  rj   rn   r  s               ru   test_nd_special_casesz"TestPearsonr.test_nd_special_cases  s    i##N33ZZ

6**++ZZ

6**++.\%4GDDD 	5 	5RAAfI.BQ///C((**B**RV2:*66CCM!,c222CJqM3///BF1Is+++BGAJ,,,vvbhhs}QRR'899:::::vvbhhsz!""~6677777vvbhhrvabbz2233333vvbhhrwqrr{33444444	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 6\%8HHH 	* 	*AdGN1bq))))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*
 JJAAAB899JJAAAB899wwqzznQ+++$$&&rzz///'B'BCCC
D)))&&&&&&&&s%   F)III5JJ"%J")r   r   Nc                    t                               d          \  }}t          j        |                    |          |                    |          ||          }t          j        ||||          }t          |j        |                    |j                             t          |j        |                    |j                             |                                }|                                }	t          |j	        |                    |	j	                             t          |j
        |                    |	j
                             d S )N)r/   rX   rY   rd  rQ   r@  )rq  rn  rc   r   r  r'   r   r   r/  r2  r3  )
rm   r  rQ   r@  r   rn   r   rs  rw  rx  s
             ru   test_array_apizTestPearsonr.test_array_api  s    zz{z++1nRZZ]]BJJqMM"&KA A AnQ+FFFrzz#-'@'@AAA
BJJsz$:$:;;;((**((**
BJJvz$:$:;;;RZZ%<%<=====r   N)r   r   r   r   r   r
  r  r  r  r  markparametrizer"  r&  r(  r+  r4  r6  rJ  rN  rR  r[  	fail_slowxfail_on_32bitrt  ry  r  r  r  r  r  r   r   ru   r   r   c  s        d###5 5 $#5 kJK#% % %P P% %P kJK#% % %P P% %P kJK#% % %/ /% %/ kJK#% % %	3 	3% %	3 kJK#% % % [Wy)&<==
! 
! >=% %
! kJK#% % %M M% %M kJK#% % %O O% %O kJK#% % %L L% %L# # ## # #* [!!$!//[CH H HI I6 6I I 0/6 kJK#% % %F F% %F kJK#% % %# #% %# [!!$!//4 4 0/46 [1[!!$!//[ OPP[],LMM[X'EFFF F GF NM QP 0/ 
F [!!$!//[],LMM
5 
5 NM 0/
5 [!!$!//[VaV,,3 3 -, 0/3  [!!$!//
$ 
$ 0/
$G G G0 kJK#% % %#' #'% %#'J kJK#% % % [V\\\22[],L,L,LMM> > NM 32% %
> > >r   r   c                       e Zd ZdZd Zd Zd Zd Zej	        j
        d             Zd Zd Zd	 Zd
 Zej	                            dg 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                    t           j        } |ddgddgg          d         }t          |dd            |d	d
gddgg          d         }t          |dd            |d
dgdd
gg          d         }t          |dd            |ddgddgg          d         }t          |dd            |ddgddgg          d         }t          |dd            |ddgddgg          d         }t          |dd            |ddgddgg          d         }t          |dd            |ddgddgg          d         }t          |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           t          |d         d           d S ) N8   N  0u  @  r   g؞Y?r1   rG   rb  r/   rc  r2   g,Ԛ?r4   r5   g2c?r3   rX   gY
A?      g_?r      gO^M?r   gօa?r0   r   ggE?g$I$I?)rc   fisher_exactr
   )rm   r  r   s      ru   r  zTestFisherExact.test_basic  sk   )lUENUEN;<<Q?Ca8888lS!HtQi011!4CQ7777lQFQF+,,Q/C::::lQFRH-..q1C::::lQGb"X.//2C::::lQGb"X.//2C::::lRGb!W-..q1C::::lQFQF+,,Q/C;;;;lQFQF+,,Q/C%%%lQFQF+,,Q/C...lQFQF+,,CFI1====CFH-----r   c                    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 ]Z\  }}t          j        t          j        |                    }t           j                            |d	         |d	         dd           [d S )Nrb  r/   rc  r2   )gAn&	?g}K
T?r4   r5   )g	7?g?r   rX   )g!@j)A?r  r  )gU!a?gKY?r   r  )g7X?g~ltP?)gFu|?r  r   )r   gQN^?r1   gaa?r   r   gaa?r0   rY   T)rS   verbose)ri   infrc   r  r  testingr   )rm   tablisttableres_rr   s        ru   test_precisezTestFisherExact.test_precise
  sy    Ahq	"$TU!fq!fOP!fr2h!QR"gBx "RS"gBx "RS1gAw!QR1gAw!QR!fq!f(>?@!fq!fOP!fq!f(>?@!fq!fOP $ 	9 	9LE5$RZ%6%677CJ**3q658R37 + 9 9 9 9	9 	9r   c                 2   ddgddgg}t          j        |          }t          |d         d           ddgdd	gg}t          j        |          }t          |d         d
           ddgddgg}t          j        |          }t          |d         d           d S )Nr3   %   l      r   gmt?   r   f   g,:^   0   i  i\B  gNQ8rc   r  r   rm   r   r   s      ru   test_gh4130zTestFisherExact.test_gh4130"  s     WsCj! ##A 1222 !Wq#h ##A 5666 "Xe}% ##A 566666r   c                 n    ddgddgg}t          j        |          }t          |d         dd           d S )NiiX iV iW r   r   gѧRr  r  r  s      ru   test_gh9231zTestFisherExact.test_gh92318  sG     w'7!34 ##A//////r   c                    g d}t          |g d          D ]7\  }}t          j        ddgd|gg          d         }t          ||d           8t          j        d	d
gddgg          d         }t          |dd           d S )N)g?=gNuP=gs=)K   L   M   i(E  i  i)  r   r1   rG   iPF  i8 r  i_ g^K=?)ziprc   r  r
   )rm   pvalsrD  numr   s        ru   test_large_numbersz"TestFisherExact.test_large_numbers?  s     100ULLL11 	: 	:ID#$uclT3K%@AA!DCTq99999 5%.5%.!ABB1ECQ777777r   c                     t          t          t          j        t	          j        d                              dd                     d S )Nr3   r/   r0   )r   r   rc   r  ri   r   rg   rm   s    ru   test_raiseszTestFisherExact.test_raisesJ  s@    j%"4ill**1a00	2 	2 	2 	2 	2r   c                     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 ]C}t          j        |          \  }}t          |d           t          |t          j                   Dd S )Nr   r2   rX   r   )rc   r  r   ri   rj   )rm   tablesr  	oddsratiorD  s        ru   test_row_or_col_zeroz$TestFisherExact.test_row_or_col_zeroO  s    q6Ar7#r7QF#q6Ar7#q6B7#%  	, 	,E#077OIts###BF++++	, 	,r   c                    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 ]x\  }}g }|                    t          j        |d          d                    |                    t          j        |d           d                    t	          ||dd!"           yd S )#Nr/   r4   r5   r  i,     rU   r3   i     i   i  r   r0   r   r1   gI[?gq}!?r   g2\&gQp6g:O_?g a?皙?ffffff??333333?UUUUUU?r  r9  r?  r;  rQ  )r  rB  )r  appendrc   r  r   )rm   r  r  r  rD  r   s         ru   test_less_greaterz!TestFisherExact.test_less_greaterY  s    VaV1X3x "X4y!3Z#s$ VaVVaVVaVVaVVaV  "#56)*()	"#J#J#J3K$K vu-- 	: 	:KE4CJJu)%VDDDQGHHHJJu)%YGGGJKKKCAD99999		: 	:r   c                 @    t          j        ddgddgg          \  }}d S )Nr   r/   r6   i")rc   r  )rm   oddsr   s      ru   test_gh3014zTestFisherExact.test_gh3014{  s)     )Aq6Ax=*ABBfffr   r@  r7  r9  r;  c                     t          j        ddgddgg          }t          j        ||          }t	          |j        |j        f|           d S )Nr  r  r  r  r?  )ri   r   rc   r  r   r   r   )rm   r@  r  r   s       ru   test_resultzTestFisherExact.test_result  sR    5%.5%.9:: K@@@cmSZ0#66666r   N)r   r   r   r   r  r  r  r  r  r  slowr  r  r  r  r  r  r  r   r   ru   r  r    s         . . .69 9 907 7 7,0 0 0 [8 8 82 2 2
, , , :  :  :DC C C
 [],L,L,LMM7 7 NM7 7 7r   r  c                       e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$S )%TestCorrSpearmanrr   c                     t          j        dd          }t          t          j        |                                                     d S )N      @r-  )rc   	spearmanrr   ri   r  allr   s     ru   test_scalarzTestCorrSpearmanr.test_scalar  s9    OB##!!"""""r   c                     t          t          t          j        g dddg           t          t          t          j        g dd           d S )Nr   r/   r   r5   r6   )r   r   rc   r  r  s    ru   test_uneven_lengthsz%TestCorrSpearmanr.test_uneven_lengths  s@    j%/999q!fEEEj%/999a@@@@@r   c                    t           j                            d           t           j                            dd          }t           j                            dd          }t	          j        ||          j        j        dk    sJ t	          j        |j        |j        d          j	        j        dk    sJ t          t          t          j        ||d           t          t          t          j        |j        |j                   d S )N鄋 r1   r0   r/   r2   r2   r   rP   )ri   rl  seedrandnrc   r  r   r  r~  r   r   r   rm   r   rn   s      ru   test_uneven_2d_shapesz'TestCorrSpearmanr.test_uneven_2d_shapes  s    
	vIOOAq!!IOOAq!!q!$$.4>>>>qsACa0007=GGGGj%/1aa@@@@j%/13<<<<<r   c                    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           t          j        |	                                |	                                d                     d S )Nr  r1   r0   r/   rP   r   )
ri   rl  r  r  r   r   rc   r  r   flattenrm   r   s     ru   test_ndim_too_highz$TestCorrSpearmanr.test_ndim_too_high  s    
	vIOOAq!$$j%/1555j%/1a888j%/1dDAAA14888		QYY[[qIII	K 	K 	K 	K 	Kr   c                    t          j        d          }t           j        |d<   t          t	          j        ||          t           j        t           j        f           t          t	          j        ||d          d           t          t          t          j        ||d           t          t          t          j        ||d           d S )Nr   r6   r   r   )r   r   r   r   )ri   r   rj   r	   rc   r  r   r   r  s     ru   test_nan_policyz!TestCorrSpearmanr.test_nan_policy  s    IcNNv!5?1a0026262BCCC5?1aFCCC%	' 	' 	'j%/1aGLLLLj%/1aHMMMMMMr   c                 4   t           j                            d           t           j                            dd          }d}t           j        |d d |f<   t          j        ||d          }t          j        |d          \  }}t          j        |          \  }}t          j        t          j        ||d          |d          }t          j        t          j        ||d          |d          }t          ||d	
           t          ||d	
           d S )Nr2   rX   r3   r   rP   r   r   r   +=r  )	ri   rl  r  randrj   deleterc   r  r   )rm   r   krn   corxpxcorypys           ru   test_nan_policy_bug_12458z+TestCorrSpearmanr.test_nan_policy_bug_12458  s   
	qINN1b!!&!!!Q$Ia###?1888b?1%%by4333QQ???YryQQ///;;;d////BU++++++r   c                 X   t           j                            d           dd}t           j                            |          t           j        d<   t           j        d<   t          j        dd          \  }}fdt                    D             }t          ||           d S )	Nr2   rX   r   r   )r0   r^   r   	propagaterQ   r   c                 J    g | ]fd t                    D             S )c           	      l    g | ]0}t          j        |d d f         d d f                   j        1S N)rc   r  r   ).0r  jr   s     ru   
<listcomp>zJTestCorrSpearmanr.test_nan_policy_bug_12411.<locals>.<listcomp>.<listcomp>  s@    NNN!QQQ$1aaa411;NNNr   r  )r  r  mr   s    @ru   r  z?TestCorrSpearmanr.test_nan_policy_bug_12411.<locals>.<listcomp>  sH     " " " ONNNNU1XXNNN " " "r   )	ri   rl  r  r  rj   rc   r  r  r   )rm   ncorrr   r   r
  r   s        @@ru   test_nan_policy_bug_12411z+TestCorrSpearmanr.test_nan_policy_bug_12411  s    
	qIOOAq!!&$6%qq[IIIf" " " " "a" " "c"""""r   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rc   r  re   r
   r   s      ru   test_sXXzTestCorrSpearmanr.test_sXX  s2    OAa  aDAc"""""r   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rc   r  re   r   r
   r   s      ru   
test_sXBIGzTestCorrSpearmanr.test_sXBIG  s2    OAc""aDAc"""""r   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rc   r  re   r   r
   r   s      ru   test_sXLITTLEzTestCorrSpearmanr.test_sXLITTLE  s2    OAf%%aDAc"""""r   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rc   r  re   r   r
   r   s      ru   test_sXHUGEzTestCorrSpearmanr.test_sXHUGE  2    OAd##aDAc"""""r   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rc   r  re   r   r
   r   s      ru   test_sXTINYzTestCorrSpearmanr.test_sXTINY  r  r   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rc   r  re   r   r
   r   s      ru   test_sXROUNDzTestCorrSpearmanr.test_sXROUND  s2    OAe$$aDAc"""""r   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rc   r  r   r
   r   s      ru   test_sBIGBIGzTestCorrSpearmanr.test_sBIGBIG  s2    OC$$aDAc"""""r   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rc   r  r   r   r
   r   s      ru   test_sBIGLITTLEz!TestCorrSpearmanr.test_sBIGLITTLE  s2    OC''aDAc"""""r   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rc   r  r   r   r
   r   s      ru   test_sBIGHUGEzTestCorrSpearmanr.test_sBIGHUGE  2    OC%%aDAc"""""r   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rc   r  r   r   r
   r   s      ru   test_sBIGTINYzTestCorrSpearmanr.test_sBIGTINY  r!  r   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rc   r  r   r   r
   r   s      ru   test_sBIGROUNDz TestCorrSpearmanr.test_sBIGROUND  s2    OC&&aDAc"""""r   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rc   r  r   r
   r   s      ru   test_sLITTLELITTLEz$TestCorrSpearmanr.test_sLITTLELITTLE  s2    OF6**aDAc"""""r   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rc   r  r   r   r
   r   s      ru   test_sLITTLEHUGEz"TestCorrSpearmanr.test_sLITTLEHUGE  2    OF4((aDAc"""""r   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rc   r  r   r   r
   r   s      ru   test_sLITTLETINYz"TestCorrSpearmanr.test_sLITTLETINY  r*  r   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rc   r  r   r   r
   r   s      ru   test_sLITTLEROUNDz#TestCorrSpearmanr.test_sLITTLEROUND  s2    OF5))aDAc"""""r   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rc   r  r   r
   r   s      ru   test_sHUGEHUGEz TestCorrSpearmanr.test_sHUGEHUGE  2    OD&&aDAc"""""r   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rc   r  r   r   r
   r   s      ru   test_sHUGETINYz TestCorrSpearmanr.test_sHUGETINY  r1  r   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rc   r  r   r   r
   r   s      ru   test_sHUGEROUNDz!TestCorrSpearmanr.test_sHUGEROUND$  2    OD''aDAc"""""r   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rc   r  r   r
   r   s      ru   test_sTINYTINYz TestCorrSpearmanr.test_sTINYTINY)  r1  r   c                 t    t          j        t          t                    }|d         }t	          |d           d S r   )rc   r  r   r   r
   r   s      ru   test_sTINYROUNDz!TestCorrSpearmanr.test_sTINYROUND.  r6  r   c                 t    t          j        t          t                    }|d         }t          |d           d S r   )rc   r  r   r
   r   s      ru   test_sROUNDROUNDz"TestCorrSpearmanr.test_sROUNDROUND3  s2    OE%((aDAc"""""r   c                     t          j        t          t                    }d}t          ||           t	          |j        |j                   d S r   )rc   r  re   r   r   r   r   r   s      ru    test_spearmanr_result_attributesz2TestCorrSpearmanr.test_spearmanr_result_attributes8  sB    oa##.
C,,,S_cm44444r   c                     g d}g d}t          j        ||          }t          j        t          j        ||g          j                  }t          ||           d S )Nr   r/   r0   r1   r2   r3   )r   r/   r0   r1   r3   r2   )rc   r  ri   r  r~  r   rm   x1x2res1res2s        ru   test_1d_vs_2dzTestCorrSpearmanr.test_1d_vs_2d>  s_    r2&&rz2r(33566d#####r   c                    dD ]|}dt           j        ddddg}dddddt           j        g}t          j        |||          }t          j        t          j        ||g          j        |          }t          ||           }d S )	N)r  r   r   r0   r1   r2   r3   r/   r   )ri   rj   rc   r  r  r~  r   )rm   r   rB  rC  rD  rE  s         ru   test_1d_vs_2d_nansz$TestCorrSpearmanr.test_1d_vs_2d_nansE  s    / 	( 	(JRVQ1a(BQ1a(B?2rjAAAD?2:r2h#7#7#9jQQQDD$''''	( 	(r   c                    t          j        d          }| }t          j        g d          }t          j        |||g          j        }t          j        |          }t          j        g dg dg dg          }t          j        dt                    }d|d	d
d	f<   d|d
d	d	f<   t          |j
        |           t          |j        |           d S )Nr3   )r   r   r/   r0   r2   r1   )r   r^   3+?)r^   r   3+)rJ  rK  r   r0   r0   rN   g+Hs]s?r/   r   )ri   r   r   r  r~  rc   r  zerosfloatr   r   r   )rm   rB  rC  x3r   actualexpected_correxpected_pvalues           ru   
test_3colszTestCorrSpearmanr.test_3colsN  s    Yq\\SX((())JB|$$&##"5"5"5"6"6"6">">">"@ A A (6777"/1Q3"/!Q(-88877777r   c           
      `   t          j        t           j        ddddddgdt           j        ddd	ddgg d
g          j        }t          j        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          j        |           t          j        |d          j        }t	          |d         d         |d         d         |d         d         fdd           d S )Nr   r  rF   ffffff@      @ffffff"@ffffff@g333333@皙@)r8   r  ffffff@ffffff@       @rU  ffffff@r   r  r   r   r   r   r/   )gacJC?g%ln?g_0nYt!޿rC  rA  )ri   r   rj   r~  r   rc   r  r   )rm   r   r  r   s       ru   test_gh_9103zTestCorrSpearmanr.test_gh_9103^  s$   HrvsCc3<BFCc3<999; < <<= 	
 x"&"&"&1&"&"&1&"&"-/ 0 0 	kBBBL	 	 	 oaF333=QCF1Is1vay9:	G 	G 	G 	G 	G 	Gr   c                 2   d}t           j                            d           t           j                            |          }t           j                            |          dk    }|dk    }t          j        |          }t          j        ||d          j        }t           j        ||<   t          j        ||d          j        }|	                    t           j
                  }t          j        ||d          j        }g d}	t          |||g|	           d S )Nrb  iH r  r8   r   r   )gonj?)Wn%?r`  )ri   rl  r  r  r   rc   r  r   rj   astypeint32r   )
rm   r  r   r
  r  r  rD  rE  res3expecteds
             ru   test_gh_8111zTestCorrSpearmanr.test_gh_8111m  s    
	vINN1INN1# VHQKKq!777A v!q!777A HHRXq!777A:::tT*H55555r   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.  r0  r3  r5  r8  r:  r<  r>  rF  rH  rS  r^  re  r   r   ru   r  r    s(        # # #A A A	= 	= 	=K K KN N N, , ,
# 
# 
## # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
# # #
5 5 5$ $ $( ( (8 8 8 G G G6 6 6 6 6r   r  c                       e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zej                            dd          d             ZdS )TestCorrSpearmanr2z-Some further tests of the spearmanr function.c                     g d}g d}d}t          j        ||          }t          |d         |d                    t          |d         |d                    d S )Nr   r/   r0   r1   r2   r2   r3   r4   r5   r4   gh
C?gR?r   r   )rc   r  r
   rm   rB  rC  rd  r   s        ru   test_spearmanr_vs_rz&TestCorrSpearmanr2.test_spearmanr_vs_r  sb     ____>ob"%%CFHQK000CFHQK00000r   c                 x    t          t          j        g g           t          j        t          j        f           d S r  )r   rc   r  ri   rj   r  s    ru   test_empty_arraysz$TestCorrSpearmanr2.test_empty_arrays  s-    U_R,,rvrv.>?????r   c                    t           j                            d           t          j        t           j                            ddd          t           j                            ddd          g          }ddgddgg}t          j        t           j                            |          |          }d}t          j	        |d         |d                   }t          |d         |d                    t          |d         |d                    d S )	Nz  r     locscaler.   r   r  )gCzYW?ge*=r   )ri   rl  r  r   rn  dotlinalgcholeskyrc   r  r
   )rm   r   r  rd  r   s        ru   test_normal_drawsz$TestCorrSpearmanr2.test_normal_draws  s    
	tHbi&&1AC&@@i&&1AC&@@B C Cc
c
F29%%d++Q//?oadAaD))CFHQK000CFHQK00000r   c                 `    t          t          j        g dg d          d         d           d S )Nr   r   r/   r   r   )r
   rc   r  r  s    ru   test_corr_1zTestCorrSpearmanr2.test_corr_1  s1    EOIIIyyyAA!DcJJJJJr   c                    t          j        d          }t           j        |d<   t          t	          j        ||          t           j        t           j        f           t          t	          j        ||d          d           t          t          t          j        ||d           t          t          t          j        ||d           d S )Nr   r6   r   r   )r   r   r   r   )	ri   r   rj   r	   rc   r  r   r   r   r  s     ru   test_nan_policiesz$TestCorrSpearmanr2.test_nan_policies  s    IcNNv!5?1a0026262BCCC1@@@ 	" 	" 	"j%/1aGLLLLj%/1aHMMMMMMr   c                     t          j        d          }t          j        d          }t          t          t          j        ||           d S )Nr         4@)ri   r   r   r   rc   r  r  s      ru   test_unequal_lengthsz'TestCorrSpearmanr2.test_unequal_lengths  s8    IcNNIcNNj%/1a88888r   c                     g d}dddt           j        g}t          j        ||d          }t          j        |d d         |d d         d          }t	          ||           d S )Nr>  r5   r4   r3   r   r   r0   )ri   rj   rc   r  r   rA  s        ru   test_omit_paired_valuez)TestCorrSpearmanr2.test_omit_paired_value  sm    \\Arvr2&999r"1"vr"1"v&AAAT4     r   c                    t          t          d                    }t          t          d                    }|d         |d         c|d<   |d<   |d         |d         c|d<   |d<   |d         |d         c|d<   |d<   |                    t          j                   |                    d           t          t          j        ||d	
          d         d           d S )N  r6   r   i  rX   i  i  r   r   r   gV-?)listr  r  ri   rj   r   rc   r  r  s      ru   #test_gh_issue_6061_windows_overflowz6TestCorrSpearmanr2.test_gh_issue_6061_windows_overflow  s    ttqT1Q4
!ad#""qvD'1S6#$ 	
	EOAqVDDDQGOOOOOr   c                 \   d}t          j        t          j        |          5  t          j        g dg d          \  }}t          |t          j                   t          |t          j                   t          j        g dg d          \  }}t          |t          j                   t          |t          j                   t          j        g dg d          \  }}t          |t          j                   t          |t          j                   d d d            d S # 1 swxY w Y   d S )Nr  r   r/   r/   r/   r/   r   r/   )r  r  rc   r  r  r   ri   rj   )rm   warn_msgr   r  s       ru   	test_tie0zTestCorrSpearmanr2.test_tie0  sF   /\%4HEEE 		$ 		$?999iii88DAqBF###BF###?999iii88DAqBF###BF###?999iii88DAqBF###BF###		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$s   C1D!!D%(D%c                     g d}g d}g d}g d}t          j        ||          }t          j        ||          }t          ||           d S )Nr   r-  r   r  )r   r-  r-  r   )r   r:   r:   r  )rc   r  r   r   )rm   r   rn   xryrsrprs          ru   	test_tie1zTestCorrSpearmanr2.test_tie1  sh          !!!!!! _Q""^B##B#####r   c                     g d}g d}ddddt           j        g}ddddt           j        g}t          j        ||          }t          j        ||d	          }t	          ||           d S )
N)r   r/   r:   r/   )r   r0   r:   r1   r   r/   r:   r0   r1   r   r   )ri   rj   rc   r  r   )rm   rB  ro   rC  rp   sr1sr2s          ru   	test_tie2zTestCorrSpearmanr2.test_tie2  sy     ^^^^CBF#CBF# ob"%%ob"888C%%%%%r   c                    t          j        g dg dg          }t          j        g dg dg          }t          j        g dg dg          }d}t          j        t          j        |          5  t	          j        |d          \  }}t          |t           j                   t          |t           j                   t	          j        |d          \  }}t          |t           j                   t          |t           j                   t	          j        |d          \  }}t          |t           j                   t          |t           j                   d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   r>  r  r   r   rP   	ri   r   r  r  rc   r  r  r   rj   )rm   z1z2z3r  r   r  s          ru   test_ties_axis_1z#TestCorrSpearmanr2.test_ties_axis_1  s   X|||\\\233X|||\\\233X|||\\\233/\%4HEEE 		$ 		$?2A...DAqBF###BF###?2A...DAqBF###BF###?2A...DAqBF###BF###		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$ 		$s   1C(E&&E*-E*c                 l   t          j        g d          }t          j        g d          }d}t          j        t          j        |          5  t	          j        ||          \  }}t          |t           j                   t          |t           j                   d d d            d S # 1 swxY w Y   d S )N)
r   r   r   r   r   r   r   r   r   r   
r   gN}	?r   r   g	/`?gY%uX-H?gC1tq1?r   r   g*I?r  r   r  )rm   r   rn   r  r   r  s         ru   test_gh_11111z TestCorrSpearmanr2.test_gh_11111  s    HGGGHHH - - - . . 0\%4HEEE 	$ 	$?1a((DAqBF###BF###	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   AB))B-0B-c                     t          j        g d          }t          j        g d          }t          t          t          j        ||d           d S )N)
r         @r-  r   r   r   r   r   r   r   r  r/   rP   )ri   r   r   r   rc   r  r  s      ru   test_index_errorz#TestCorrSpearmanr2.test_index_error
  s[    HGGGHHH - - - . . 	j%/1aa@@@@@@r   c                    g d}g d}d}t          j        ||d          }t          |d         |d                    t          |d         d|d         dz  z
             t          j        ||d	          }t          |d         |d                    t          |d         |d         dz             t          j        t
          d
          5  t          j        ||d           d d d            d S # 1 swxY w Y   d S )Nri  rj  rk  r9  r?  r   r   r/   r;  `alternative` must be 'less'...r   	ekki-ekki)rc   r  r
   r  r   r   rl  s        ru   test_alternativez#TestCorrSpearmanr2.test_alternative  sK    ____ ? ob"&999CFHQK000CFA!q$9::: ob")<<<CFHQK000CFHQK!O444]:-NOOO 	= 	=OB<<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=s   C22C69C6r@  r  c                 |   g d}g d}|t           j        gz   }|t           j        gz   }t          t          j        ||          t           j        t           j        f           t          j        ||d|          }t          j        |||          }t          ||           d}t          j        t          |          5  t          j        ||d|           d d d            n# 1 swxY w Y   d	}t          j        t          |          5  t          j        ||d
|           d d d            d S # 1 swxY w Y   d S )Nri  rj  r   r   r@  r?  The input contains nan valuesr   r   r   r  )	ri   rj   r	   rc   r  r   r  r   r   )	rm   r@  rB  rC  x1nanx2nan
res_actualres_expectedrZ  s	            ru   test_alternative_nan_policyz.TestCorrSpearmanr2.test_alternative_nan_policy(  s    ____bfXbfX 	5?5%882626:JKKK _UEf1<> > >
r2;GGG
L111 2]:W555 	5 	5OE5W(35 5 5 5	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5
 1]:W555 	5 	5OE5[(35 5 5 5	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5s$   >C##C'*C'D11D58D5N)r   r   r   r   rm  ro  ry  r|  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   ru   rg  rg    s:       771 1 1@ @ @
1 
1 
1K K KN N N9 9 9
! ! !P P P$ $ $$ $ $& & &$ $ $ 	$ 	$ 	$A A A= = =. [],LMM5 5 NM5 5 5r   rg  c                  \   d} g d}g d}d}| D ]O}t          j        ||          }t          |d         |d                    t          |d         |d                    Pg d}g d}d}| D ]O}t          j        ||          }t          |d         |d                    t          |d         |d                    Pg d	}g d
}d}| D ]O}t          j        ||          }t          |d         |d                    t          |d         |d                    Pg d}g d}d}| D ]O}t          j        ||          }t          |d         |d                    t          |d         |d                    Pt          j        d          }t          j        d          }d}| D ]Q}t          j        |||          }t          |d         |d                    t          |d         |d                    R|d         }|d         |d<   ||d<   d}| D ]Q}t          j        |||          }t          |d         |d                    t          |d         |d                    R|d         }|d         |d<   ||d<   d}| D ]Q}t          j        |||          }t          |d         |d                    t          |d         |d                    Rt          j        d          }t          j        d          d d d         }d}| D ]Q}t          j        |||          }t          |d         |d                    t          |d         |d                    R|d         }|d         |d<   ||d<   d}| D ]Q}t          j        |||          }t          |d         |d                    t          |d         |d                    R|d         }|d         |d<   ||d<   d}| D ]Q}t          j        |||          }t          |d         |d                    t          |d         |d                    Rt          g d          }t          g d          }d}t          t          j        ||d          d         |           d}t          t          j        ||d           d         |           |d         |d<   t          t          t           j        ||d!"           t          t          t           j        ||d#"           t          t          t           j        ||d$           g d%}g d&}d'}t          j        ||          }t          |d         |d                    t          |d         |d                    d(}	| D ]C}t          j        |||          }t          ||	           t          |j
        |j                   D| D ]}t          t          j        g d)g d)|          t          j        t          j        f           t          t          j        g d*g d)|          t          j        t          j        f           t          t          j        g d)g d*|          t          j        t          j        f           t          t          j        g g           t          j        t          j        f           t          j                            d+           t          j        t          j                            ddd,-          t          j                            ddd,-          g          }d.d/gd/d.gg}
t          j        t          j                            |
          |          }d0}t          j        |d         |d                   }t          |d         |d                    t          |d         |d                    t          t          j        g d1g d1d          d         d.           t          t          j        g d1g d1d           d         d2           t          j        d3          }t          j        |d4<   t'          t          j        ||          t          j        t          j        f           t)          t          j        ||d56          d7d89           t)          t          j        ||d5d:;          d<d89           t          t          t           j        ||d=6           t          t          t           j        ||d>6           t          j        d3          }t          j        d?          }t          t          t           j        ||           t          j        g g           \  }}t          t          j        |           t          t          j        |           t          j        dgdg          \  }}t          t          j        |           t          t          j        |           t          j        d@t*          A          }t          j                            |dB          }t          j        d@t*          A          }t          j        |dCd          |d dC         f          }t3          t          j        t          j        ||          d                              d S )DN)r  c)r2   r/   r   r0   r3   r1   r4   r5   )r2   r/   r3   r0   r   r5   r4   r1   r  r   r   )	r   r2   r/   r   r0   r3   r1   r4   r5   )	r2   r/   r   r3   r0   r   r5   r4   r1   )r2   r/   r   r0   r3   r1   r4   )r2   r/   r3   r0   r   r4   r1   )gJ$I¿gmK?)r/   r   r0   r3   r1   r4   r5   )r/   r3   r0   r   r5   r4   r1   )gJkaa?r   rX   )r   紞xO~>)variantr/   )g?>?aV>r2   r3   )g}'}'?o&5>r^   )r  r  )g?>r  )g}'}'r  )
r   r/   r/   r1   r1   r3   r3   r5   r6   r6   )
r   r/   r1   r1   r1   r1   r5   r5   r5   rX   gok|?r  gffffff?r  rY  rW  bananarmsrZ   r/   r   rZ   r/   r   r1   r4   r   r   )g}+޿g`=i?r   r  r  rq  rr  rs  r   r  )g\zf?g^n)=r{  g#q?r   r6   r   r   )r   g/>rC  rA  rV  )r   rX  )r   g&?r   r   r  r  rN   i  rc  )rc   
kendalltaur
   ri   r   r   r   r   r   r   r   r   rj   rl  r  rn  rv  rw  rx  r	   r   rN  mamasked_greaterconcatenater   isfinite)variantsr   rn   rd  tauxr   r  rB  rC  r   r  taup_values                ru   test_kendalltaur  P  s
    H 	!  A   A H 1 1q!$$CFHQK000CFHQK0000 	$##A###A H 1 1q!$$CFHQK000CFHQK0000 	AA /H 1 1q!$$CFHQK000CFHQK0000 	AA %H 1 1q!$$CFHQK000CFHQK0000 		"A
	"A )H 1 1q!T222CFHQK000CFHQK0000 	
!AQ4AaDAaD 8H 1 1q!T222CFHQK000CFHQK0000 	
!AQ4AaDAaD 8H 1 1q!T222CFHQK000CFHQK0000 		"A
	"dddA *H 1 1q!T222CFHQK000CFHQK0000 	
!AQ4AaDAaD 9H 1 1q!T222CFHQK000CFHQK0000 	
!AQ4AaDAaD 9H 1 1q!T222CFHQK000CFHQK0000
 	,,,--A---..AH(As;;;A>IIIH(As;;;A>III Q4AaD*e.1WEEEE *e.1XFFFF *e.1eDDDD
 
		B	B:H

2r
"
"CA,,,A,,, +J 5 5r2t444C,,,S_cm4444  ' 'U%iiiDIIIfbf%	' 	' 	'U%iiiDIIIfbf%	' 	' 	'U%iiiDIIIfbf%	' 	' 	' 	' !"b))BFBF+;<<< INN4
")""q"<<)""q"<<> 	? 	?A#J#JD
ry!!$''++A<H

1Q41
&
&CA,,,A,,, (IIIsKKKAN  (IIIsKKKAN"$ $ $ 		#A6AaDu'1--/?@@@E$Qf==='e5 5 5 5E$Qf\RRR1? ? ? ?*e.1IIII*e.1JJJJ 		#A
	#A*e.1555 #B++LC!!!#QC!--LC!!! 		$e$$$A
Q%%A
	$e$$$A
$%%!ETE(+,,ABK(1--a01122222r   c                     t           j                            d           t          dd          D ]} g }t          |           D ]}||g|z  z  }t	          |          }t           j                            |           t           j                            |           t          j        ||          }t          j        ||          }t          |d         |d                    t          |d         |d                    d S )N*   r/   rX   r   r   )
ri   rl  r  r  r  shufflemstats_basicr  rc   r
   )sr  r  r  rd  rP  s         ru   test_kendalltau_vs_mstats_basicr  *  s    INN21R[[ 4 4q 	 	A!QJAAGG
	!
	!*1a00!!Q''F1Ix{333F1Ix{33334 4r   c                      g d} t           j        dddg}t          j        | |d          }t          j        | dd          |dd                    }t	          |j        |j        d           d S )	Nr  333333@333333@r   r   r   r   r  )ri   rj   rc   r  r   r   )r   rn   r1r2s       ru   test_kendalltau_nan_2nd_argr  :  su    A	c3A		!Q6	2	2	2B		!ABB%122	'	'BBL",U;;;;;;r   c                  "   dd l } |                     d           g d}d}|                     ||          }|                     ||          }t          j        ||          }t          |j        d           t          |j        dd	           d S )
Nr   i_ r   r/   r0   r1   r2   r3   r4   i@ r  g*8_2\S?gd`TR?gMb`?r  )rl  r  choicesrc   r  r   r   r   )rl  classes	n_samplesr   rn   r   s         ru    test_kendalltau_gh18139_overflowr  D  s     MMM
KK###GIw),,Aw),,A

1a
 
 CCM#8999 CJT222222r   c            	          e Zd Z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 Z e eeedgdz                       e ee ee          dgdz                      z   Zej                            de          d             Z e eeedgdz                       e ee ee          dgdz                      z   Zej                            de          d             Z e eee	dgdz                       e ee ee	          dgdz                      z   Zej                            de          d             Z e eee
dgdz                       e ee ee
          dgdz                      z   Zej                            de          d             Z e eeedgdz                       e ee ee          dgdz                      z   Zej                            de          d             Z  e eeedgdz                       e ee ee          dgdz                      z   Z!ej                            de!          d             Z" e eeedgdz                       e ee ee          dgdz                      z   Z#ej                            de#          d             Z$ e eeedgdz                       e ee ee          dgdz                      z   Z%ej                            de%          d             Z& e eeedgdz                       e ee ee          dgdz                      z   Z'ej                            de'          d             Z( e eedgdz                       e eedgdz                      z   Z)ej                            de)          d             Z*ej                            dd          ej                            dd          d                         Z+d S )!TestKendallTauAlternativec                    g d}g d}t          j        ||d          }|d         dk    sJ t          j        ||d          }t          |d         |d                    t          |d         d|d         dz  z
             t          j        ||d	          }t          |d         |d                    t          |d         |d         dz             |                                 t          j        ||d          }|d         dk     sJ t          j        ||d	          }t          |d         |d                    t          |d         d|d         dz  z
             t          j        ||d          }t          |d         |d                    t          |d         |d         dz             t          j        t          d
          5  t          j        ||d           d d d            d S # 1 swxY w Y   d S )Nri  rj  r7  r?  r   r9  r   r/   r;  r  r   r  )rc   r  r   r   reverser  r   r   rl  s        ru   &test_kendalltau_alternative_asymptoticz@TestKendallTauAlternative.test_kendalltau_alternative_asymptoticW  sI    ____ #BDDD{Q r26:::SVXa[)))AXa[1_ 5666 r29===SVXa[)))Aa000 	

 #BDDD{Q r29===SVXa[)))AXa[1_ 5666 r26:::SVXa[)))Aa000]:-NOOO 	> 	>R====	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>s   G55G9<G9)r9  r7  r;  )r   r   r8   )r   RUUUU?ZUUUU?)g~?r  r  )?r   r  )ˮ[?r   r  )g?gSǌ?gSǌ?)g:
?g3
?g<t'.?)gN  A?gss?gYss?c                     |rt          j        |           }|dz  }t          j        ||d|          }||f}t	          ||           d S )Nr^   rY  rX  r@  )ri   r  rc   r  r   )	rm   r   rn   r@  revstat_expected
p_expectedr   r  s	            ru   
exact_testz$TestKendallTauAlternative.exact_test  s\     	 AARMq!GMMM$j0\*****r   Fr0   Tzalternative, p_expected, revc                 ^    dgdg}}t           j        }|                     ||||||           d S )Nr   r/   )ri   rj   r  rm   r@  r  r  r   rn   r  s          ru   test_against_R_n1z+TestKendallTauAlternative.test_against_R_n1  s8    sQC11k3zJJJJJr   c                 N    ddgddg}}d}|                      ||||||           d S )Nr   r/   r0   r1   g?r  r  s          ru   test_against_R_n2z+TestKendallTauAlternative.test_against_R_n2  s:    1v1v1*1k3zJJJJJr   c                 N    g dg d}}d}|                      ||||||           d S )NrT  r   r  r  s          ru   test_against_R_c0z+TestKendallTauAlternative.test_against_R_c0  s:    yy)))11k3zJJJJJr   c                 N    g dg d}}d}|                      ||||||           d S )Nr>  )r   r/   r1   r0   gVUUUUU?r  r  s          ru   test_against_R_c1z+TestKendallTauAlternative.test_against_R_c1  s:    ||\\\1*1k3zJJJJJr   c                 N    g dg d}}d}|                      ||||||           d S )Nri  )r   r2   r1   r/   r0   r   r  r  s          ru   test_against_R_no_correlationz7TestKendallTauAlternative.test_against_R_no_correlation  s:    11k3zJJJJJr   c                 N    g dg d}}d}|                      ||||||           d S )Nr   r/   r0   r1   r2   r3   r4   r5   )r5   r3   r   r0   r/   r2   r1   r4   r   r  r  s          ru   test_against_R_no_correlationbz8TestKendallTauAlternative.test_against_R_no_correlationb  s?    ''')A)A)A11k3zJJJJJr   c                 N    g d}g d}d}|                      ||||||           d S )N)	g333333F@g33333F@g33333D@gfffffJ@gYF@gF@gYI@gF@gN@)	g@@r:   rF   @r  g@ffffff@r[  gqq?r  r  s          ru   test_against_R_lt_171z/TestKendallTauAlternative.test_against_R_lt_171  sB     CBB999*1k3zJJJJJr   c                     t           j                            d           t           j                            d          }t           j                            d          }d}|                     ||||||           d S )Nr   rb  gUm*,ri   rl  r  r  r  r  s          ru   test_against_R_lt_171bz0TestKendallTauAlternative.test_against_R_lt_171b  sc    
	qINN3INN3,1k3zJJJJJr   c                     t           j                            d           t           j                            d          }t           j                            d          }d}|                     ||||||           d S )Nr      gH4?r  r  s          ru   test_against_R_lt_171cz0TestKendallTauAlternative.test_against_R_lt_171c  sc    
	qINN3INN3*1k3zJJJJJr   zalternative, revc                    t           j                            d           t           j                            d          }t           j                            d          }t	          j        ||d|          }t	          j        ||d|          }t          |d         |d                    t          |d         |d         d           d S )	Nr   i  rY  r  rV  r   rj  rA  )ri   rl  r  r  rc   r  r   r   )rm   r@  r  r   rn   res0rD  s          ru   test_gt_171z%TestKendallTauAlternative.test_gt_171  s    
	qINN3INN31W,79 9 91\,79 9 9T!Wd1g&&&Qat444444r   rX  )rY  rV  r@  r  c                    g d}g d}|t           j        gz   }|t           j        gz   }t          j        ||||          }t           j        t           j        f}t	          ||           t          j        ||d||          }t          j        ||||          }t	          ||           d}	t          j        t          |	          5  t          j        ||d||           d d d            n# 1 swxY w Y   d	}	t          j        t          |	          5  t          j        ||d
||           d d d            d S # 1 swxY w Y   d S )Nri  r2   r3   r4   r5   r6   r  r   )r   rX  r@  r  r   r   r   r  )ri   rj   rc   r  r   r  r   r   )
rm   rX  r@  rB  rC  r  r  r  r  rZ  s
             ru   r  z)TestKendallTauAlternative.test_nan_policy	  s5    ____bfXbfX %eU-3N N N
'
L111 %eUv-3N N N
'Bv4?A A A
L111 2]:W555 	E 	EUEg$*E E E E	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E
 1]:W555 	E 	EUEk$*E E E E	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	Es$   C--C14C1D<<E E N),r   r   r   r  alternativesri   rj   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  r  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  r   r   ru   r  r  V  s[       '> '> '>h 4LFBFBF#D;;D000D>>>D<<<===DDDJCCCKGGGK+ + + cc,ugai88994L((4..4&(CCDDEI [;YGGK K HGK
 cc,ugai88994L((4..4&(CCDDEI [;YGGK K HGK
 cc,ugai88994L((4..4&(CCDDEI [;YGGK K HGK
 cc,ugai88994L((4..4&(CCDDEI [;YGGK K HGK
 d33|-=wqyIIJJSSxx8H/I/I"&+ + , ,,N [;^LLK K MLK
 T##l,=wqyIIJJtCChh7H.I.I!%q* * + ++M [;]KKK K LKK
 T##lJ	BBCCtCChhz.B.BTF1HMMNNOM [;]KKK K LKK d33|[5'!)DDEESSxx/D/D"&+ + , ,,N [;^LLK K MLK d33|[5'!)DDEESSxx/D/D"&+ + , ,,N [;^LLK K MLK 4L5'!)44554L4&(33445K [/==	5 	5 >=	5 [X'>??[],LMME E NM @?E E Er   r  c                     g d} g d}t          j        | |          \  }}t          |d           t          t          j        |           t          j        | |d          \  }}t          |d           t          t          j        |           t          j        | |d           \  }}t          |d	           t          t          j        |           t          j        | |          }d
}t          ||           t          |j        |j                   t          j        | |d           \  }}t          |d           t          t          j        |           t          j        || d           \  }}t          |d           t          t          j        |           t          j        | |d d          \  }}t          |d           t          t          j        |           t          j        || d d          \  }}t          |d           t          t          j        |           t          j        | |d          \  }}t          |d           t          t          j        |           t          j        | |dd           \  }}t          |d	           t          t          j        |           t          j        || dd           \  }}t          |d	           t          t          j        |           t          j        t	          j	        | t          j
                  |          \  }}t          |d           t          j        t	          j	        | t          j                  |          \  }}t          |d           t          j        t	          j	        | t          j
                  t	          j	        |t          j
                            \  }}t          |d           t          j        g g           \  }}t          t          j        |           t          t          j        |           t          j        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          j        | |          \  }}t          |d           ddt          j        ddg} t          j        | |          \  }}t          |d           g d} dd d!dt          j        g}t          j        | |          \  }}t          |d           d"d#t          j        d"d#g} t          j        | |          \  }}t          |d           g d$} g d%}t          j        | |          \  }}t          |d&           d"d#t          j        d"t          j        g} t          j        | |          \  }}t          |d&           t          j        d d!t          j        t          j        g}t          j        | |          \  }}t          |d&           d S )'Nr  r  gs$F)additivegROoc                     dS Nr   r   r   s    ru   <lambda>z"test_weightedtau.<locals>.<lambda>6  s    Q r   )weigherr  r   )rankgڿgn)r#  r  g @ڿg[đ(gIکnTc                     dS r  r   r   s    ru   r!  z"test_weightedtau.<locals>.<lambda>Q       r   )r#  r"  c                     dS r  r   r   s    ru   r!  z"test_weightedtau.<locals>.<lambda>T  r%  r   rN   r   r   r   r   r/   r1   r4   rZ   r/   )      (@r-  r   r(  r-  r   r  r  r(  r-  )r(  r-  r   r(  r   )r   r  r  r   r   gt34+)rc   weightedtaur
   r   ri   rj   r   r   r   r  r   int16r   r   )r   rn   r  r  r   r   s         ru   test_weightedtaur+  ,  s   AA$Q**LC1222!!!$QE:::LC1222!!!$Q;;???LC1222!!! 
Aq
!
!C*JZ(((#-000 $Q555LC0111!!!$Q555LC0111!!!$QuEEELC1222!!!$QuEEELC1222!!!$Q666LC1222!!!$QkkJJJLC1222!!!$QkkJJJLC1222!!!$RZ%D%D%DaHHLC1222$RZ%B%B%BAFFLC1222$RZ%D%D%D%'Z%D%D%DF FLC1222$R,,LC!!!$aS1#..LC!!!*e/!QCCC*e/!Q!Q!EEEA	
Aq!RVA$Q**LC1222	QAA$Q**LC1222###A	c3RV$A$Q**LC1222	sBFD#&A$Q**LC1222###A!!!A$Q**LC0111	sBFD"&)A$Q**LC0111	c2626*A$Q**LC011111r   c                      t          j        dgdg           t          j        dgdg           t          j        t          j        gdg           d S )Nr   r   4   )rc   r)  ri   rj   r   r   ru   test_segfault_issue_9710r.    sQ     
qcC5!!!	qcC5!!!	rvh%%%%%r   c                  :   d} t          j        | dz                                 t                    }t          j        | dz                                 t                    }t           j        |d<   t          j        ||dd          \  }}t          |d           d S )N   r   r^   rY  r   )rX  r   r   )ri   r   ra  rN  rj   rc   r  r   )r  r   rn   _rD  s        ru   test_kendall_tau_larger2    s    A
	!a%&&A
	!a%&&AFAbEq!GGGGGAtsr   c            
         d } d }t           j                            d           t          dd          D ]}g }t          |          D ]}||g|z  z  }t	          |          }t           j                            |           t           j                            |           t          j        t          |          t           j                  }t          d          D ]b}dD ]>} | |||||          }	t          j
        |||||          j        }
t          |	|
           ?t           j                            |           cd S )	Nc                 D   dx}x}x}x}}	t          t          t          |                     t          t          |                               D ]\  }
}|r# |||
                    |||                   z   n" |||
                    |||                   z  }||z  }| |
         | |         k    r||z  }||
         ||         k    r|	|z  }	| |
         | |         k     r||
         ||         k     s$| |
         | |         k    r||
         ||         k    r||z  }| |
         | |         k     r||
         ||         k    s$| |
         | |         k    r||
         ||         k     r||z  }||z
  t          j        ||z
            z  t          j        ||	z
            z  S )Nr   )r   r  lenri   r   )r   rn   r#  r"  addtotconcdiscuvr  r  ws                ru   wkqz*test_weightedtau_vs_quadratic.<locals>.wkq  s   $%%%d%T%AeCFFmmU3q66]];; 	 	FQ7: 9Q  7747#3#333WT!W%%Q(8(88 1HCtqt||Qtqt||Qtad{{qtad{{adQqTkkadQqTkk	1!1!!qt!qt	trwsQw///"'#'2B2BBBr   c                     d| dz   z  S )Nr   r   r   r   s    ru   r"  z.test_weightedtau_vs_quadratic.<locals>.weigher  s    QU|r   r  r0   rX   rN   r/   r\   )ri   rl  r  r  r  r  r   r5  intprc   r)  r   r
   )r=  r"  r  r  r  r  r#  r1  r6  rd  rP  s              ru   test_weightedtau_vs_quadraticr@    s_   C C C    INN21R[[ $ $q 	 	A!QJAAGG
	!
	!yQrw///q 	$ 	$A$ 6 63q!T7C88*1awDDN#Hf5555Id####	$$ $r   c                       e Zd Zd Zd ZdS )TestFindRepeatsc                     g d}t          j        |          \  }}t          |g d           t          |g d           d S )N)r   r/   r0   r1   r   r/   r0   r1   r   r/   r2   r>  )r0   r0   r/   r/   rc   find_repeatsr	   )rm   r  r   numss       ru   r  zTestFindRepeats.test_basic  sO    ---&q))	T3---4.....r   c                     g dg fD ]9}t          j        |          \  }}t          |g            t          |g            :d S )N)rX   r  2      (   rD  )rm   r  repeatedcountss       ru   test_empty_resultz!TestFindRepeats.test_empty_result  s^    &&&+ 	+ 	+A$1!44Hfx,,,vr****	+ 	+r   N)r   r   r   r  rM  r   r   ru   rB  rB    s2        / / /+ + + + +r   rB  c                   F   e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                            d          d	             Ze
j                            d          d
             Ze
j                            d          d             Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )TestRegressionc                    t          j        d                              d          }d}t          j        |          5  t          j        |           d d d            n# 1 swxY w Y   t          j        |d         |d                    d S )Nr  r/   rX   zInference of the two sets...r   r   r   )ri   r   rg   r  deprecated_callrc   
linregressrm   r   rZ  s      ru   test_one_arg_deprecationz'TestRegression.test_one_arg_deprecation  s    IbMM!!'**0#'222 	  	 Q	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 1qt$$$$$s   A  A$'A$c                     t          j        t          t                    }t	          |j        d           t	          |j        d           t	          |j        d           t	          |j        d           d S )Nir   r   )	rc   rS  re   r   r   	interceptrvaluestderrintercept_stderrrm   rH  s     ru   test_linregressBIGXz"TestRegression.test_linregressBIGX  sf    !!S))F,h777FM3/// 	FM3///F3S99999r   c                     t          j        t          t                    }t          |j        d           t          |j        d           t          |j        d           t          |j        d           d S )Nr   r   )rc   rS  re   r   rW  rX  rY  rZ  r[  s     ru   test_regressXXzTestRegression.test_regressXX  sf    
 !!Q''F,c222FM3///FM3///F3S99999r   c                     t          j        t          t                    }t	          |j        d           t	          |j        d           d S )Nr   )rc   rS  re   ZEROr   rW  rX  r[  s     ru   test_regressZEROXz TestRegression.test_regressZEROX  sA    
 !!T**F,c222FM3/////r   c                 \   t          j        ddd          }dt          j        ddd          z  dz   }|t          j        t          j        ddd                    z  }t          j        ||          }t
          }t          t          ||                     t          |j	        d           d S )Nr   rb  皙?rX   r  穷4_Qc?)
ri   linspacesinrc   rS  r#   r   
isinstancer   rY  )rm   r   rn   rH  lrs        ru   test_regress_simplez"TestRegression.test_regress_simple  s    K3$$"+ac***R/	RVBK2s++,,,!!Q''
62&&'''FM+@AAAAAr   c                    t          j        ddd          }dt          j        ddd          z  dz   }|t          j        t          j        ddd                    z  }t          j        t
          d          5  t          j        ||d	           d d d            n# 1 swxY w Y   t          j        ||d
	          }t          j        ||d	          }t          |j	        d|j	        dz  z
             t          j        ||d	          }t          |j	        |j	        dz             |j
        |j
        cxk    r|j
        k    sn J d S )Nr   rb  rc  rX   r  r  r   r  r?  r7  r9  r   r/   r;  )ri   re  rf  r  r   r   rc   rS  r   r   rX  )rm   r   rn   rD  rE  rc  s         ru   test_regress_alternativez'TestRegression.test_regress_alternative  s   K3$$"+ac***R/	RVBK2s++,,,]:-NOOO 	< 	<Q{;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 1+>>> 1&999Q$+/%:;;; 1)<<<T[1_555{dk8888T[88888888s   9BB!$B!c                 d   g d}g d}t          j        ||d          }t          |j        d           t          |j        d           t          |j        t          j        d                     t          |j        d           t          |j	        d	           t          |j
        d
           d S )N)
                              )
rM   Q   8   [   /   9   r  H   >   r  r7  r?  gؗh?gJK@:Cgag?g->g5ՒO?g]؊E @)rc   rS  r   sloperW  rX  ri   r   r   rY  rZ  )rm   r   rn   r   s       ru   test_regress_against_Rz%TestRegression.test_regress_against_R$  s     ?>>444q!===	?333'8999
BGM$:$:;;;
$5666
O444,o>>>>>r   ignore::DeprecationWarningc                 h   t          j        ddd          }dt          j        ddd          z  dz   }|t          j        t          j        ddd                    z  }t          j        ||f          }t	          j        |          }t          |j        d           t          |j        d           d S )Nr   rb  rc  rX   r  rd  8?)	ri   re  rf  vstackrc   rS  r   rY  rZ  )rm   r   rn   rowsrH  s        ru   test_regress_simple_onearg_rowsz.TestRegression.test_regress_simple_onearg_rows9  s     K3$$"+ac***R/	RVBK2s++,,,y!Q  !$''FM+@AAAF35JKKKKKr   c                    t          j        ddd          }dt          j        ddd          z  dz   }|t          j        t          j        ddd                    z  }t          j        t          j        |d          t          j        |d          f          }t          j        |          }t          |j        d           t          |j	        d           d S )	Nr   rb  rc  rX   r  r   rd  r  )
ri   re  rf  hstackexpand_dimsrc   rS  r   rY  rZ  )rm   r   rn   columnsrH  s        ru   test_regress_simple_onearg_colsz.TestRegression.test_regress_simple_onearg_colsH  s    K3$$"+ac***R/	RVBK2s++,,,)R^Aq112>!Q3G3GHII!'**FM+@AAAF35JKKKKKr   c                 j    t          t          t          j        t	          j        d                     d S )NrL  )r   r   rc   rS  ri   r  r  s    ru   test_regress_shape_errorz'TestRegression.test_regress_shape_errorU  s'     	j%"2BGFOODDDDDr   c                    t          j        d          }t          j        dd          }|ddgxx         dz  cc<   |ddgxx         dz  cc<   t          j        ||          }d } ||j        d	            ||j        d
            ||j        d            ||j        d            ||j        d            ||j	        d           d S )NrY   r2   r   r   r   r^   c                 &    t          | |d          S )NrV   rR   )r   r   rn   s     ru   	assert_aez1TestRegression.test_linregress.<locals>.assert_aeh  s    &q!R8888r   r   rF   gePUn?g.bt>gڽE?gʺL7?)
ri   r   rc   rS  r~  rW  rX  r   rY  rZ  )rm   r   rn   rH  r  s        ru   test_linregresszTestRegression.test_linregress[  s    IbMMIa	A+!	A+!!!Q''	9 	9 	9	&,$$$	&"C(((	&-!1222	&-111	&-!5666	&)+>?????r   c                    d\  }}t          j        |d|z  |          }t          j        d|z  ||          }t          j        ||          }t	          |j        dk               t          |j        d           t	          t          j        |j                              t	          t          j        |j	                              d S )N)gJr 11順 r/   r^   )
ri   re  rc   rS  r   rX  r   r  rY  rZ  )rm   r  r  r   rn   rH  s         ru    test_regress_simple_negative_corz/TestRegression.test_regress_simple_negative_corq  s     1K1q5!$$KAq!$$!!Q'' 	#$$$FM2... 	BHV]+++,,,BHV455566666r   c                 |   t          j        ddd          }dt          j        ddd          z  dz   }|t          j        t          j        ddd                    z  }t          j        ||          }t
          }t          t          ||                     d}t          ||           dt          |          v sJ d S )Nr   rb  rc  rX   r  )r~  rW  rX  r   rY  rZ  )
ri   re  rf  rc   rS  r#   r   rg  r   dir)rm   r   rn   rH  rh  r   s         ru   !test_linregress_result_attributesz0TestRegression.test_linregress_result_attributes  s    K3$$"+ac***R/	RVBK2s++,,,!!Q'' 
62&&''' J
FJ///!S[[000000r   c                     t          j        d          }t          j        dd          }t          j        ||          }t	          |j        d           t	          |j        d           t	          |j        d           d S )Nr/   r0   r2   r   )ri   r   rc   rS  r   r   rY  rZ  rm   r   rn   rH  s       ru   test_regress_two_inputsz&TestRegression.test_regress_two_inputs  sq    IaLLIaOO!!Q'' 	FM3/// 	FM3///F3S99999r   c                     t          j        d          }t          j        d          }t          j        ||          }t          |j        d           t          |j        d           t          |j        d           d S )Nr/   r   r   )	ri   r   r  rc   rS  r   r   rY  rZ  r  s       ru   'test_regress_two_inputs_horizontal_linez6TestRegression.test_regress_two_inputs_horizontal_line  so    IaLLGAJJ!!Q'' 	FM3/// 	FM3///F3S99999r   c                 B   g d}g d}t          j        ||          }t          |j        d           t          |j        d           t          |j        dz  d           t          |j        d           t          |j        d           t          |j        d	           d S )
N)$rc  gfffffu@ǧ]@g̤@333333$@g     Pl@gfffff҄@gfffff"@g	|@g     H@gq@皙?333333?g     <@g33333ׄ@g      u@g     {@g333333'@g     `@33333l@gfffff@g̼@g^@r  r  gffffff@g1u@g@g     8@g     X@g333333&@g33333]@gfffffl@g@fffff|@r8   )$r  g,u@gfffff]@     @rW  r  g     @     4@g|@33333W@gy@r  r  gP@gfffff@4u@r  g%@gm@gl@g     0@gfffffƋ@gfffff]@r  r  gl@r  r  r  r  gffffff$@gffffff]@g̜l@g33333@g33333|@rc  g?g!пr/   gpX?r   gh-h*<?gg?)	rc   rS  r   r~  rW  rX  r   rY  rZ  r  s       ru   test_nist_norriszTestRegression.test_nist_norris  s    4 4 4
4 4 4
 !!Q''FL*:;;;F,.@AAAFM1,.?@@@FM3///FM+;<<<F35EFFFFFr   c                    t          j        ddd          }dt          j        ddd          z  dz   }|t          j        t          j        ddd                    z  }t          j        ||          }t          j        ||d          }t          |j        |d                    t          |j        |d                    d S )Nr   rb  rc  rX   r  r   )	ri   re  rf  rc   rS  polyfitr   r~  rW  )rm   r   rn   rH  polys        ru   test_compare_to_polyfitz&TestRegression.test_compare_to_polyfit  s    K3$$"+ac***R/	RVBK2s++,,,!!Q''z!Q"" 	FL$q'222F,d1g66666r   c                 H    t          t          t          j        g g            d S r  )r   r   rc   rS  r  s    ru   test_empty_inputzTestRegression.test_empty_input  s    j%"2B;;;;;r   c                    t          j        d          }t           j        |d<   t          j        d          5  t	          j        ||          }d d d            n# 1 swxY w Y   t          }t          t          ||                     t          |t           j        fdz             t          |j        t           j                   d S )Nr   r6   ignoreinvalidr2   )ri   r   rj   errstaterc   rS  r#   r   rg  r	   r   rZ  )rm   r   rH  rh  s       ru   test_nan_inputzTestRegression.test_nan_input  s    IcNNv![*** 	, 	,%a++F	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 
62&&'''6BF9Q;///V,bf55555s   AA"Ac                     t          j        d          }t           j                            d          }d}t          t          |          5  t          j        ||           d d d            d S # 1 swxY w Y   d S )NrX   z$Cannot calculate a linear regressionr   )ri   rM  rl  r   r   rc   rS  rm   r   rn   r   s       ru   test_identical_xzTestRegression.test_identical_x  s    HRLLIR  4:S111 	# 	#Q"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s   A//A36A3N)r   r   r   rU  r\  r^  ra  ri  rk  r  r  r  filterwarningsr  r  r  r  r  r  r  r  r  r  r  r  r  r   r   ru   rO  rO    s       % % %: : :
: 
: 
:*0 0 0	B 	B 	B9 9 9*? ? ?* [ <==
L 
L >=
L [ <==L L >=L [ <==E E >=E
@ @ @,7 7 7$1 1 1 : : :: : :G G G(
7 
7 
7< < <6 6 6# # # # #r   rO  c                  $   t          j        g d          \  } }}}t          | d           t          |d           d}t          j        t
          |          5  t          j        g dd           d d d            n# 1 swxY w Y   t          j        g dd          \  } }}}t          | d           t          |d           g d	}g d
}t          j        ||dd          \  } }}}t          | d           t          |d           t          |dd           t          |dd           t          j        ||dd          \  } }}}t          | d           t          |d           t          |dd           t          |dd           d S )Nr   r   r   r8   zHmethod must be either 'joint' or 'separate'.'joint_separate' is invalid.r   joint_separaterW  jointr   )r   r/   r0   r1   rX   rZ      )r6   r     r  -   7   N   gQ?separater1   r  gQ@r/   rR   gGz@rV  )rc   theilslopesr   r  r   r   )r~  rW  lowerupperr   r   rn   s          ru   test_theilslopesr    s#   %*%6www%?%?"E9eUs###	3'''*C	z	-	-	- > >))),<====> > > > > > > > > > > > > > > &+%6yyy>E&G &G &G"E9eUs###	3''' 	!  A###A%*%6q!T>H&J &J &J"E9eUq!!!	3'''tQ////tQ////%*%6q!T>E&G &G &G"E9eUq!!!	3'''tQ////tQ//////s   A>>BBc                  <   g d} t          j        | d          \  }}}}t          |t          j        g d                     t          j        | dd          \  }}}}t          |dk               d}t          j        | dd          }t          ||           d S )	Nr   r1   r/   r   r0   r   r1   numbins)r   r  rF   rV  )r9   r2   )r  defaultreallimitsr0   )cumcountr   binsizeextrapoints)rc   cumfreqr   ri   r   r   r   )r   cumfreqslowlimr  r  r   r   s          ru   test_cumfreqr  	  s    A-2]1a-H-H-H*Hfg{h1A1A1A(B(BCCC-2]	1.2 .2 .2*Hfg{K1 FJ
-1
A
A
ACZ(((((r   c                  P   t          j        g d          } t          j        | d          \  }}}}t	          |t          g d                     d}t          j        | d          }t          ||           t          j        g dd          \  }}}}t	          ||           d S )Nr  r1   r  )r8   K}\UU?r  r  )	frequencyr   r  r  )ri   r   rc   relfreqr   r   )r  relfreqsr  r  r  r   r   	relfreqs2s           ru   test_relfreqr  	  s    
###$$A-2]1a-H-H-H*Hfg{h#$M$M$MNNP P P GJ
-1
%
%
%CZ((( /4m<N<N<NDE/G /G /G+Ivwh	22222r   c                   >    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	S )
TestScoreatpercentilec                 <    g d| _         g d| _        g d| _        d S )N)r0   r1   r2   rX   r_   r3   )r0   r  r5   r4   r1   r/   r   )r   r1   r2   rX   r_   r  r  r  )a1a2a3r  s    ru   setup_methodz"TestScoreatpercentile.setup_method'	  s-    ***,,,111r   c                     t          d          dz  }t          t          j        |d          d           t          t          j        |d          d           t          t          j        |d          d           d S )	Nr5   r8   r   r   rb  r;   rH        ?)r   r   rc   scoreatpercentiler  s     ru   r  z TestScoreatpercentile.test_basic,	  sn    1IIOU,Q22B777U,Q44c:::U,Q33T:::::r   c           	      $   t           j        }t           |t          t	          d                    d          d           t           |t          t	          d                    dd          d           t           |t          t	          d                    dd          d           t           |t          j        g d          dd	          d
           t           |t          j        g d          dd          d           t           |t          t	          d                    dd          d           t           |t          t	          d                    ddd          d           t           |t          t	          d                    ddd          d           t           |t          j        g d          dd	d          d
           t           |t          j        g d          ddd          d           d S )NrX   rH  r<   r/   r4   rb  r   r5   )limitr   rX   rb  rX   rb  r  r   rX   r=   fractioninterpolation_methodr  r  rc   r  r   r  r  ri   r   rm   scoreatpercs     ru   test_fractionz#TestScoreatpercentile.test_fraction2	  s1   - 	[[eBii"55s;;;[[eBii"e<<cBBB[[eCjj!1!12VDDDcJJJ[[+++!6!6HEErJJJ[[+++!6!6FCCSIII 	[[eBii":VVV	 	 	[[eBii"F6@B B B	 	 	 	[[eCjj!1!12V6@B B B	 	 	 	[[+++!6!6I6@B B B	 	 	 	[[+++!6!6F6@B B B	 	 	 	 	r   c           	      6   t           j        }t           |t          t	          d                    dd          d           t           |t          t	          d                    dd          d           t           |t          t	          d                    ddd          d           t           |t          t	          d                    ddd	          d           t           |t          t	          d
                    ddd          d           t           |t          t	          d
                    ddd          d           t           |t          j        g d          ddd          d           t           |t          j        g d          ddd	          d
           t           |t          j        g d          ddd          d           t           |t          j        g d          ddd	          d           d S )NrX   rH  r  r  r1   higherr2   r  r  rb  r  r  r  r  r   r  r  s     ru   test_lower_higherz'TestScoreatpercentile.test_lower_higherL	  s   - 	[[eBii"6=? ? ?@A	C 	C 	C[[eBii"6>@ @ @AB	D 	D 	D[[eBii"e6=? ? ?@A	C 	C 	C[[eBii"E6>@ @ @AB	D 	D 	D[[eCjj!1!12u6=? ? ?@A	C 	C 	C[[eCjj!1!12u6>@ @ @AB	D 	D 	D[[,,,!7!7Y6=? ? ?@B	D 	D 	D[[,,,!7!796>@ @ @AD	F 	F 	F[[,,,!7!7W6=? ? ?@A	C 	C 	C[[,,,!7!776>@ @ @AC	E 	E 	E 	E 	Er   c           	      V   t          d          dz  }t          j        g d          }t          j        |g d          }t          ||           t          t          |t          j                             t          t          j        |t          j        g d                    |           t          j        t          j         d          	                    d          t          j        g d          d	          }t          g d
g dg dg dg          }t          ||           d S )Nr5   r8   )r   r;   r  )r   rb  rH  rZ   r0   r1   )r   r   rb  rb  r   rP   )r   r1   r5   )Q?gQ@g(\ @r0   r4   rY   )
r   ri   r   rc   r  r   r   rg  ndarrayrg   )rm   r   rd  r   rE  	expected2s         ru   test_sequence_perz'TestScoreatpercentile.test_sequence_pere	  s)   1IIO8NNN++%a66X&&&
3
++,,,/28LLL3I3IJJ 	" 	" 	" &ry}}'<'<U'C'C')x0@0@0@'A'AK K K999---%::%::' ( (	 	i(((((r   c                 d   t           j        }t          d                              dd          }t	           ||d          g d           g dg dg dg}t	           ||dd	
          |           g dg dg dg}t	           ||dd
          |           t          g dg dg dg dg dg          }t          j        |d          }t	          |j        d           t	          |d           t          j        |dd	
          }t	          |j        d           t	          |g d           d S )NrZ   r0   r1   )r  rH  rb  )g      @r=         &@)r/   r0   r1   r2   r1   r2   r3   r4   )r5   r6   rX   rY   r   rP   )      ?g      @g     !@)r9   r=         #@r  r   r   r   r   )r1   r1   r0   rH  r   r   r0   )rc   r  r   rg   r   r   r  )rm   r  r   r0r  scores         ru   	test_axiszTestScoreatpercentile.test_axisw	  sk   -2JJq!$$[[M224E4E4EFFFllLLL...9[[M:::B???   ///:::>[[M:::B???99999999999	  
 '2..U["%%%UC   '2A666U[$'''UIII&&&&&r   c                     t          t          t          j        ddgdd           t          t          t          j        dgd           t          t          t          j        dgd           d S )Nr   r/   rx  r   r  e   r^   )r   r   rc   r  r  s    ru   test_exceptionz$TestScoreatpercentile.test_exception	  sc    j%"9Aq62+3	5 	5 	5 	5j%"9A3DDDj%"9A3CCCCCr   c                 X   t          t          j        g d          t          j                   t          t          j        t          j        g g g          d          t          j                   t          t          j        g ddg          t          j        t          j        g           d S )NrH  c   )r   rc   r  ri   rj   r   r  s    ru   
test_emptyz TestScoreatpercentile.test_empty	  s~    U,R44bf===U,RXr2h-?-?DDbfMMMU,R"b::RVRV<LMMMMMr   N)r   r   r   r  r  r  r  r  r  r  r  r   r   ru   r  r  &	  s        2 2 2
; ; ;  4E E E2) ) )$' ' '0D D DN N N N Nr   r  c            
          e Zd Zd Zd Zd Zd Zej        	                    d e
j        dd                    d             Zd	 Z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                         Zej        	                    d e
j        dd                    e
j        fd            Zd Zd Zej        	                    dddg          d             Zd Zej                            d          ej        	                    d e
j        d            e
j        d!          g          d"                         Zd# Zd$S )%TestModec                 ,   t          j        t          t                    5  t	          j        g           \  }}d d d            n# 1 swxY w Y   t          |t          j        g                      t          |t          j        g                      d S Nr   )	r  r  r   r   rc   moder   ri   r   rm   valsrL  s      ru   r  zTestMode.test_empty	  s    \,4IJJJ 	* 	* :b>>LD&	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*T28B<<(((VRXb\\*****s   AA	A	c                     t          j        d          \  }}t          |t          j        dg                     t          |t          j        dg                     d S )Nr  r   )rc   r  r   ri   r   r  s      ru   r  zTestMode.test_scalar	  sM    z"~~fT28RD>>***VRXqc]]+++++r   c                     g d}t          j        |          }t          |d         d           t          |d         d           d S )Nr0   r2   r   rX      r0   r/   r3   r5   r3   rX   r3   r   r3   r   r0   rc   r  r   )rm   data1r  s      ru   r  zTestMode.test_basic	  sJ    777z%  T!Wa   T!Wa     r   c           
         g d}g d}g d}g d}g d}t          j        |||||g          }t          j        |d d          }t	          |d         t          j        d	gg                     t	          |d
         t          j        dgg                     t          j        |dd          }t	          |d         t          j        g dg                     t	          |d
         t          j        g dg                     t          j        |d
d          }t	          |d         t          j        dgdgdgd	gd	gg                     t	          |d
         t          j        dgdgdgdgdgg                     d S )N)rX   rX   rI  rJ  )rX   rX   rX   rX   )r  rX   r  r  )rI  rI  rI  rI  )rJ  rI  rI  rI  TrQ   keepdimsr   rI  r   r5   )rX   rX   rI  rI  )r/   r0   r0   r/   rX   r  r/   r1   r0   )ri   r   rc   r  r   )rm   r  data2data3data4data5arrr  s           ru   	test_axeszTestMode.test_axes	  s                  hueUE:;;z#D4888T!Wbhv..///T!Wbhuoo...z#A555T!Wbh(8(8(8'9::;;;T!Wbh~66777z#A555T!WbhrdRD2$'EFFGGGT!WbhaS1#sQC'@AABBBBBr   rQ   r   c                 0   t           j                            d           t           j                            dddd          }t	          j        ||j        |z             }t	          j        ||          }t           j                            ||           d S )N:rX   rY   rZ   r[   rP   )	ri   rl  r  r  rc   r  ndimr  r	   )rm   rQ   r  r  rD  s        ru   test_negative_axes_gh_15375z$TestMode.test_negative_axes_gh_15375	  s{    
	y!!!INN2r2r**z!!&+...z!$'''

%%dD11111r   c                    g d}g }t          j        |          }d}t          ||           t          j        t
          t                    5  t          j        |          }d d d            n# 1 swxY w Y   t          ||           d S )Nr  )r  countr   )rc   r  r   r  r  r   r   )rm   r  r  rP  r   actual2s         ru   test_mode_result_attributesz$TestMode.test_mode_result_attributes	  s    777E""&
FJ///\,4IJJJ 	( 	(j''G	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(GZ00000   A..A25A2c                 T   dt           j        dddddddddddg}t          j        |          }t	          |d	           t          j        |d
          }t	          |d	           t          t          t          j        |d           t          t          t          j        |d           d S )Nr0   r2   r   rX   r  r/   r3   r5   )r3   r0   r   r   r   r   )ri   rj   rc   r  r   r   r   )rm   r  rP  s      ru   test_mode_nanzTestMode.test_mode_nan	  s    BFAq"b!Q1aQ?E""VV$$$Ef555VV$$$j%*eHHHHj%*eIIIIIIr   data)r0   r2   r   r   r0   r0   r2   r   )r0   r2   r   r  FTc                     t          j        |d|          }|rt          |d         d         d           d S t          |d         d           d S )Nr   )r   r  r   r   r  )rm   r1  r  rH  s       ru   test_smallest_equalzTestMode.test_smallest_equal	  sZ     DVhGGG 	'1q)))))A&&&&&r   r_   c                    t           j                            d          }|                    d                              |          }t          j        ||d          }t          |j                  }|	                    |           t           j
                            |j        j        |           t           j
                            |j        j        |           d S )Nr'  r0   r1   r2   rd  Fr  )ri   rl  rm  uniformra  rc   r  r  r  popr  r	   r+  )rm   rQ   rO   rq  r  r   reference_shapes          ru   test_mode_shape_gh_9955z TestMode.test_mode_shape_gh_9955	  s    i##I..KKYK''..u55j666qw--D!!!

%%chnoFFF

%%cioGGGGGr   c                     dt           j        dt           j        g}t          j        |          }t          j        |j                  r|j        dk    sJ d S Nr/   r   )ri   rj   rc   r  r  r+  )rm   r  r   s      ru   !test_nan_policy_propagate_gh_9815z*TestMode.test_nan_policy_propagate_gh_9815	  sG     26"jmmx!!4ci1nnnnnnr   c                 
   t          j        d          }t          j        |dd          }|j        j        |j        j        cxk    rdk    sn J t          j        |dd          }|j        j        |j        j        cxk    rdk    sn J dddt           j        gddt           j        dgg}t          j        |dd          }t          |j        ddg           t          |j        d	dg           t          j        |dd          }t          |j        dgdgg           t          |j        d	gdgg           t          j        |          }t          j        |d d          }t          j        |	                                d
          }t          ||           |j        j        |j        j        cxk    rdk    sn J t          j        |d d          }t          j        |	                                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          }t          |j        g d           t          |j        g d           t          j        |ddd          }t          |j        dgd	gdgg           t          |j        d	gdgd	gg           t          j        |          }t          j        |d dd          }t          j        |	                                dd          }t          ||           |j        j        |j        j        cxk    rdk    sn 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 S )N)r   r/   r0   r   r   Fr  )r   r0   r   T)r   r   r0   r   r0   r/   r  r   r   r   r2   r   )rQ   r  r   )r   r/   r2   )r/   r   r/   )r  r   )ri   rM  rc   r  r  r+  rj   r	   r   r  r   )rm   r  r   rs  s       ru   test_keepdimszTestMode.test_keepdims	  s   H\""jU333x~====I======jT222x~@@@@L@@@@@@ ArvArvq 12jU33338aV,,,39q!f---jT22238qcA3Z00039sQCj111HQKKj666jU3333$$$x~55552555555j555jT222SX^^%%sx~~'7'7888x~''''SY__&&	(9(9:::y&(((( +fbfbfbfa0BFAq!# jUvFFF38YYY///39iii000jTfEEE38qcA3_55539sQC!o666HQKKj&IIIjUvFFF3$$$x~55552555555jHHHjTfEEESX^^%%sx~~'7'7888x~''''SY__&&	(9(9:::y&((((((r   r   r  r   c                    d}t          j        |          }t           j        |d<   t          j        |dd|          }t          |j        g d           t          |j        g d           t          j        dt           j        fd	t           j	        d
fg          }t          j
        d|          }d}t          j        t          |          5  t          j        ||           d d d            d S # 1 swxY w Y   d S )N)r1   r0   r  r   F)r  rQ   r  r   r  r/   r0   r0   r0   asdfqwerr  rX   rN   z0Argument `a` is not....|An argument has dtype...r   r   )ri   r  rj   rc   r  r	   r+  rO   uint8r   rM  r  r   	TypeError)rm   r   r  r1  r   my_dtypetestrZ  s           ru   test_gh16955zTestMode.test_gh169559
  s2    wu~~VT
j4a%JOOO38\\\22239lll333 8fbh/&"*d1KLMMx(+++D]9G444 	4 	4Jt
3333	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4 	4s   C22C69C6c                 n   t          j        t          t                    5  t	          j        g           }d d d            n# 1 swxY w Y   t          j        df}t          ||           t          j        t          t                    5  t	          j        t          j        gd          }d d d            n# 1 swxY w Y   t          ||           g dt          j        t          j        t          j        gg}t          j        t          t                    5  t	          j        |dd          }d d d            n# 1 swxY w Y   dt          j        gd	dgf}t          ||           t	          j        |dd
          }dt          j        gd	dgf}t          ||           t          j        g g g          }t          j        t          t                    5  t	          j        |d          }d d d            n# 1 swxY w Y   t          j        t          j        gddgf}t          ||           d S )Nr   r   r   r   )r   r  r  r   r  r  r/   r  r0   rP   )r  r  r   r   rc   r  ri   rj   r   r   r   r   r   )rm   r   rs  r  zs        ru   test_gh9955zTestMode.test_gh9955K
  s    \,4IJJJ 	! 	!*R..C	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!vqkS#\,4EFFF 	: 	:*bfX&999C	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:S#__rvrvrv67\,4EFFF 	; 	;*QQ6:::C	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;BF|aV$S#j{;;;BF|aV$S#Hb"X\,4IJJJ 	( 	(*QQ'''C	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(!Q(S#sG   AA	A"B99B= B=D??EEG>>HHzignore::RuntimeWarningrK  r'  r{  c                 ~   |j         dk    rPt          j        t          t                    5  t          j        |d d          }d d d            n# 1 swxY w Y   nt          j        |d d          }t          j        |d d          }|d         j	        |d         j	        cxk    r|j	        cxk    rdk    sn J d S )Nr   r   Tr  r   r  )
r.   r  r  r   r   rc   r  ri   rh   r  )rm   rK  r   rs  s       ru   test_gh17214zTestMode.test_gh17214h
  s    6Q;;08MNNN > >j===> > > > > > > > > > > > > > > *QTD999CgadT2221v|s1v|EEEEsyEEEEIEEEEEEEEs   AAAc                    t           rdnd} G d d          }t          j        t          |          5  t	          j         |t          j        d                               d d d            n# 1 swxY w Y   t          j        t          |          5  t	          j        t          j        dt                               d d d            d S # 1 swxY w Y   d S )Nz'...only boolean and numerical dtypes...z*Argument `a` is not recognized as numeric.c                       e Zd Zd ZddZdS )8TestMode.test_raise_non_numeric_gh18254.<locals>.ArrLikec                     || _         d S r  )_xr  s     ru   __init__zATestMode.test_raise_non_numeric_gh18254.<locals>.ArrLike.__init__x
  s    r   Nc                 @    | j                             t                    S r  )rS  ra  object)rm   rO   r*   s      ru   	__array__zBTestMode.test_raise_non_numeric_gh18254.<locals>.ArrLike.__array__{
  s    w~~f---r   )NN)r   r   r   rT  rW  r   r   ru   ArrLikerQ  w
  s7          . . . . . .r   rX  r   r0   rN   )	r-   r  r   rF  rc   r  ri   r   rV  )rm   rZ  rX  s      ru   test_raise_non_numeric_gh18254z'TestMode.test_raise_non_numeric_gh18254s
  sg   @O E<<D 		. 	. 	. 	. 	. 	. 	. 	. ]9G444 	. 	.Jwwry||,,---	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	. 	.]9G444 	3 	3Jry&111222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s#   0A00A47A4.CCCN)r   r   r   r  r  r  r$  r  r  r  ri   r   r)  r-  r0  rj   r3  r   r9  r<  r@  rI  rL  r  emptyrN  rY  r   r   ru   r  r  	  s^       + + +, , ,
! ! !C C C( [VYRYr1%5%5662 2 7621 1 1J J J [V	
BFAq!Q			
BFAq	&   [Z%77' ' 87 ' [VYRYr1%5%56624* H H H 76H5 5 5:) :) :)x [\K+@AA4 4 BA4"  : [ 899[S828I#6#68K8K"LMMF F NM :9F3 3 3 3 3r   r  c                   T    e Zd Zg dZdZd Zd Z eddg          d             Zd	S )
TestSEMr  r  c                 (   |                     | j                  d         }t          |          rMt          j        t
          t                    5  t          j        |          }d d d            n# 1 swxY w Y   n~t          j
                                        5 }|                    t                     |                    t                     t          j        |          }d d d            n# 1 swxY w Y   |                    |          sJ d S )Nr   r   )r  scalar_testcaser+   r  r  r   r   rc   semri   r  r   r   UserWarningrl   r  )rm   r  r^  rn   rt   s        ru   test_sem_scalarzTestSEM.test_sem_scalar
  s`    **T%9::2>B<< 	/08MNNN / /Io../ / / / / / / / / / / / / / / --// /3

;'''

>***Io../ / / / / / / / / / / / / / / xx{{s%   A11A58A5A	C00C47C4c                 \   |                     | j                  }t          j        |          }t	          ||                     d                     t          | j                  }t	          t          j        |d          ||dz
  z  dz  z  t          j        |d                     |                    d          }|                    |dk    |                     |j                  |          }t          t          j        |          |                     |j                             d S )Ng㝎?r   rx   r/   r8   r   r6   )
r  testcaserc   r_  r'   r5  r   whererj   r(   )rm   r  rc  rn   r  r   s         ru   test_semzTestSEM.test_sem
  s    ::dm,,Ih2::l33444	(333q!A#wnD	(333	5 	5 	5 IIcNNHHQ!VRZZ//33	!bjj&8&899999r   Tz(`nan_policy` only supports NumPy backendr   r   c                    t          j        d          }t           j        |d<   t          t	          j        |d          d           t          t          t          j        |d           t          t          t          j        |d           d S )Nr   r6   r   r   gH=6?r   r   )ri   r   rj   r   rc   r_  r   r   )rm   r  r   s      ru   test_sem_nan_policyzTestSEM.test_sem_nan_policy
  st     IcNNv!UYqV4446HIIIj%)Q7CCCCj%)Q8DDDDDDr   N)	r   r   r   rc  r^  ra  re  r   rh  r   r   ru   r\  r\  
  s          HO  $
: 
: 
: dIJL L LE EL LE E Er   r\  c                      e Zd Zej                            dg dg dfg dg dfg          d             Zd Zd Zej                            dd	d
g          d             Z	ej                            dd	d
g          d             Z
d Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej                            d ej        g            ej        d          g          d             Zd Zed             Zed             Zd S )!TestZmapZscorezx, yr>  rT  )r   r   r/   r0   r1   c                     t          j        ||          }|t          j        |          z
  t          j        |          z  }t          ||d           d S )Nr7   rA  )rc   zmapri   rh   r   r   )rm   r   rn   rK  rd  s        ru   	test_zmapzTestZmapZscore.test_zmap
  sP     Jq! 

NBF1II-8%000000r   c                    t          j        g dg dg dg          }dt          j        d          z  }t          j        d          dz  }t          j        d          }t          j        ||d	
          }t          j        ||d
          }| | dz  | dz  dgd|| dz  |g|| dz  || gg}g d| | | t          j        d          gg dg}t          ||           t          ||           d S Nr   r   r   r   )r   r   r   r-  )r-  r   r-  r   r   r  r   r0   r-  r   rP   r   r/   r   r  r  r   r   )r   r  r   r  )ri   r   r   rc   rl  r   	rm   r   t1t2t3z0r  z0_expectedz1_expecteds	            ru   test_zmap_axiszTestZmapZscore.test_zmap_axis
  s5   H*********, - - WR[[]WR[[Z11%%%Z11%%%bSURCE3/R"Q+RCE2s+- .--bS2#rwr{{3---/ 	""k222!"k22222r   c                 t   t          j        g dg dg          }t          j        ||dd          }t          j        g d          dt          j        d          z  z  }t          j        g d          t          j        d	          z  }t          |d
         |           t          |d         |           d S Nrp  )r   r   r-  r   r   rQ   ry   )      r}  r8   r8   r   r0   )      r}  r8   r9   g?r   )ri   r   rc   rl  r   r   rm   r   rK  rw  rx  s        ru   test_zmap_ddofzTestZmapZscore.test_zmap_ddof
  s    H******, - - Jq!!!,,,h55566BGAJJGh55566F!!A$444!!A$44444r   ry   r   r/   c           
      >   t          j        dddt           j        g          }t          j        dddddt           j        g          }t          j        |||d          }t          |t          j        ||t          j        |                    |	                     d S )
Nr_   r^   r/   r4   rZ   r   ry   r   rx   )ri   r   rj   rc   rl  r   r  )rm   ry   scorescomparerK  s        ru   test_zmap_nan_policy_omitz(TestZmapZscore.test_zmap_nan_policy_omit
  s     2r1bf-..(BAq"bf566JvwTfEEE5:fgrx7H7H6H.I+/1 1 1 	2 	2 	2 	2 	2r   c                    t          j        dd                              dd          }t          j        ddd                              dd          }t           j        |d<   t           j        |d	<   t           j        |d
<   t          j        ||dd|          }t          j        t          j        |d         |d         t          j        |d                             |          t          j        |d         |d         t          j        |d                             |          g          }t          ||d           d S )N      r   r/   r^   r  r3      )r   r1   rz   r?  r   r   )r   rQ   ry   r   rx   r  rA  )
ri   r   rg   re  rj   rc   rl  r   r  r   )rm   ry   r  r  rK  rd  s         ru   #test_zmap_nan_policy_omit_with_axisz2TestZmapZscore.test_zmap_nan_policy_omit_with_axis
  s)   4%%--a44+b!R((00B77Jvw6MMM8UZq	(/
BHWQZ4H4H3H(I-13 3 3 #Zq	(/
BHWQZ4H4H3H(I-13 3 34 5 5 	8%000000r   c                    t          j        g d          }t          j        dddddt           j        g          }t          j        t
          d          5  t          j        ||d	
           d d d            d S # 1 swxY w Y   d S )NrT  r  r_   r/   r4   rZ   zinput contains nanr   r   r   )ri   r   rj   r  r   r   rc   rl  )rm   r  r  s      ru   test_zmap_nan_policy_raisez)TestZmapZscore.test_zmap_nan_policy_raise
  s    )))$$(BAq"bf566]:-ABBB 	< 	<Jvw7;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   A;;A?A?c                 ^    t          j        g d          }g d}t          ||d           d S )Nr>  )gOT\wg%ܿg%?gOT\w?rZ   rR   )rc   zscorer   )rm   rn   desireds      ru   test_zscorezTestZmapZscore.test_zscore  sC     L&&% % %!'1b999999r   c                    t          j        g dg dg dg          }dt          j        d          z  }t          j        d          dz  }t          j        d          }t          j        |d	
          }t          j        |d
          }| | dz  | dz  dgd|| dz  |g|| dz  || gg}g d| | | t          j        d          gg dg}t          ||           t          ||           d S ro  )ri   r   r   rc   r  r   rr  s	            ru   test_zscore_axiszTestZmapZscore.test_zscore_axis  s1   H*********, - - WR[[]WR[[\!!$$$\!!$$$bSURCE3/R"Q+RCE2s+- .--bS2#rwr{{3---/ 	""k222!"k22222r   c                 r   t          j        g dg dg          }t          j        |dd          }t          j        g d          dt          j        d          z  z  }t          j        g d          t          j        d	          z  }t          |d
         |           t          |d         |           d S r{  )ri   r   rc   r  r   r   r  s        ru   test_zscore_ddofzTestZmapZscore.test_zscore_ddof"  s    H******, - - L+++h55566BGAJJGh55566F!!A$444!!A$44444r   c                     t          j        ddt           j        ddg          }t          j        |d          }t          t          j        |                    sJ d S )Nr   r/   r1   r2   r  r   )ri   r   rj   rc   r  r  r  rm   r   rK  s      ru   test_zscore_nan_propagatez(TestZmapZscore.test_zscore_nan_propagate.  sT    HaBFAq)**L{33328A;;r   c                     t          j        ddt           j        ddg          }t          j        |d          }t          j        ddt           j        d	d
g          }t          ||           d S )Nr   r/   r1   r2   r   r   gIHb=gIHb=gIHb=?gIHb=?)ri   r   rj   rc   r  r   rm   r   rK  rd  s       ru   test_zscore_nan_omitz#TestZmapZscore.test_zscore_nan_omit3  sq    HaBFAq)**Lv...800V//	     	"!X.....r   c                    t          j        t           j        dddddg          }t          j        |dd          }t           j        t           j        t          j        |dd          d	          f         }t          ||d
           d S )Nr   r   rF   r  r   r   r   r  rx   vIh%<=rA  )ri   r   rj   rc   r  r_r   r  s       ru   test_zscore_nan_omit_with_ddofz-TestZmapZscore.test_zscore_nan_omit_with_ddof@  s{    Hbfc3S#677Lv6665ae!!<!<!<<=8%000000r   c                     t          j        ddt           j        ddg          }t          t          t
          j        |d           d S )Nr   r/   r1   r2   r   r   )ri   r   rj   r   r   rc   r  r  s     ru   test_zscore_nan_raisez$TestZmapZscore.test_zscore_nan_raiseF  s=    HaBFAq)**j%,gFFFFFFr   c                     dgdz  }t          j        |          }t          |t          j        t          |          t          j                             d S )NgʡEr0   )rc   r  r   ri   r}   r5  rj   r  s      ru   test_zscore_constant_input_1dz,TestZmapZscore.test_zscore_constant_input_1dK  sD    HqLLOOQA//00000r   c           
      ^   t          j        g dg dg          }t          j        |d          }t	          |t          j        t           j        dddgt           j        dddgg                     t          j        |d          }t	          |t          j        t           j        t           j        t           j        t           j        gt          j        |d                   g                     t          j        |d           }t	          |t          j        |                                                              |j                             t          j	        d          }t          j        |d           }t	          |t          j
        |j        t           j                             d S )	Nr   r   r   r   r   r   r(        *@r   rP   r  r   r   )r0   r3   )ri   r   rc   r  r   rj   r  rg   r  r  r}   )rm   r   rv  r  rK  rn   s         ru   test_zscore_constant_input_2dz,TestZmapZscore.test_zscore_constant_input_2dP  sl   H......0 1 1\!!$$$RBFD$#=$&FCc#:#< = = 	> 	> 	>\!!$$$RBFBFBFBF#C#(<!#5#5#7 8 8 	9 	9 	9L&&&QQWWYY//77@@AAAGFOOL&&&Q0011111r   c                    t          j        g ddddt           j        gddt           j        dgg          }t          j        |dd          }t          j        d          }t          j        d	          }t          |t          j        t           j        | d
t           j        gt           j        ddt           j        gt           j        |t           j        t           j        gg                     t          j        |dd          }t          |t          j        t           j        t           j        t           j        t           j        g| d|t           j        g| d	z  |t           j        | d	z  gg                     d S )Nr  r   r   r(  r   r   r   rQ   r9   r/   r  r   r   )ri   r   rj   rc   r  r   r   )rm   r   rv  r  s2r  s         ru   -test_zscore_constant_input_2d_nan_policy_omitz<TestZmapZscore.test_zscore_constant_input_2d_nan_policy_omit`  s]   H...T40T26402 3 3 \!Q777GCLLWQZZBHrvr4&@')vq#rv&>')vq"&"&&A&C D D 	E 	E 	E \!Q777BHrvrvrvrv&F()r1a&8(*s1ub"&2#a%&@&B C C 	D 	D 	D 	D 	Dr   c           	      `   t          j        t           j        t           j        t           j        t           j        gg dg          }t          j        |dd          }t          |t          j        t           j        t           j        t           j        t           j        gg dg                     d S )N)r   r   r(  r(  r   r   r  rq  )ri   r   rj   rc   r  r   r  s      ru   test_zscore_2d_all_nan_rowz)TestZmapZscore.test_zscore_2d_all_nan_rowo  s    Hrvrvrvrv6...0 1 1LvA666Q26262626"B"8"8"8": ; ; 	< 	< 	< 	< 	<r   c                     t          j        dt           j                  }t          j        |dd           }t          ||           d S )Nr/   r0   r   r  )ri   r}   rj   rc   r  r   )rm   rn   rK  s      ru   test_zscore_2d_all_nanz%TestZmapZscore.test_zscore_2d_all_nanw  sA    GFBF##LvD999Qr   r   )r0   r   r2   c                 N    t          j        |          }t          ||           d S r  )rc   r  r   r  s      ru   test_zscore_empty_inputz&TestZmapZscore.test_zscore_empty_input}  s%    LOOQr   c                    t          j        g d          }t          j        |          }t          j        |t          j        |          z            t          j        t          j        |d                    z  }t          ||           d S )Nr>  r   rx   )ri   r   rc   gzscoreloggmeangstdr   )rm   r   rK  r  s       ru   test_gzscore_normal_arrayz(TestZmapZscore.test_gzscore_normal_array  st    H\\\""M!&U[^^+,,rvej6K6K6K/L/LL#####r   c                     t          j        g d          }t           j                            |g d          }t	          j        |          }ddt           j        ddg}t          ||           d S )N)r   r/   r^   r0   r1   )r   r   r   r   r   maskg0jg`ȿg/A?g(/?)ri   r   r  masked_arrayrc   r  r  r   )rm   r   mxrK  r  s        ru   test_gzscore_masked_arrayz(TestZmapZscore.test_gzscore_masked_array  sp    H%%%&&U88M"#_bfn"$#####r   c                    t           j                            d          }|                    d          }t          j        |          }t           j                            ||          }d|j        d<   t          j	        |dd                    }t          j
        t          j        |                    rJ t          j	        |          }t          |dd          |           t          j	        |d           }t          |dd          |           |d         |dd <   t          j	        |          }t          |dd          t           j                   t          j	        |d           }t          |dd          t           j                   d S )Ni_ rX   Tr   r   rP   )ri   rl  rm  standard_normal
zeros_liker  r  r  rc   r  r  r  r   r   rj   )rm   rq  r   r  rn   rs  r   s          ru   $test_zscore_masked_element_0_gh19039z3TestZmapZscore.test_zscore_masked_element_0_gh19039  sO    i##G,,##}QEq$''q	l1QRR5!!6"(3--(((((l1ooABB%%%l14(((ABB%%%!!""l1ooSWbf%%%l14(((SWbf%%%%%r   N) r   r   r   r  r  r  rm  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  ri   r   rM  r  r  r&   r  r  r   r   ru   rj  rj  
  sF       [
,,	%
))___	%	' 
1 1 
13 3 3.
5 
5 
5 [VaV,,2 2 -,2 [VaV,,1 1 -,1< < <: : :3 3 3.
5 
5 
5     
/ / /1 1 1G G G
1 1 1
2 2 2 D D D< < <   [S828B<<)1D1D"EFF  GF$ $ $ $ $ $ & & & & &r   rj  c            
          e Zd Zd Zd Zd Zd Zd Zej	        
                    dg d          d             Zej	        
                    d	d
 ej        ej        ddg          fd ej        ej        ej        dg          fg          d             Zej	        
                    ddg dfdg          d             Zd ZdS )TestMedianAbsDeviationc                     t          j        dddddddddddd	d
d
d
ddddddddt           j        g          | _        t          j        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<@)ri   r   rj   dat_nandatr  s    ru   setup_classz"TestMedianAbsDeviation.setup_class  s{    xtS#sCc!%tT4c3!$c3S$bf!N O O 8 ? ? ? @ @r   c                    t          t          j        | j        d           d           | j                            dd          }t          j        |d          }t          j        g d          }t          ||           d S )NrP   gQ?r3   r1   r   )gףp=
?r8   ?r  )r   rc   median_abs_deviationr  rg   ri   r  r   )rm   r  madmad_expecteds       ru   test_median_abs_deviationz0TestMedianAbsDeviation.test_median_abs_deviation  s    E6txdKKK!	# 	# 	#hq!$$(1555z"9"9"9::!#|44444r   c                 \    t          j        | j        d          }t          |d           d S )Nr   r   g(\?)rc   r  r  r   )rm   r  s     ru   test_mad_nan_omitz(TestMedianAbsDeviation.test_mad_nan_omit  s/    (&IIIC&&&&&r   c                     t          j        ddddt           j        gg dg          }t          j        |d          }t          |t          j        t           j        dg                     d S )Nr   r-  r   r  )r   r  rF   r\  r   r   rP   ri   r   rj   rc   r  r   )rm   r   r  s      ru   test_axis_and_nanz(TestMedianAbsDeviation.test_axis_and_nan  sk    HsCc262///1 2 2(333S"(BFC=1122222r   c           	          t          j        dddddt           j        t           j        g          }t	          j        |d          }t          |d           d S )	Nr   r0   r1   r3   r  r   r   r   )ri   r   rj   r  rc   r  r   )rm   rK  r  s      ru   test_nan_policy_omit_with_infz4TestMedianAbsDeviation.test_nan_policy_omit_with_inf  sO    HaAq"bfbf566(v>>>S#r   rQ   )r   r   r/   Nc                     t          j        d          }t          j        ||          }t	          |t          j        |                    |          t           j                             d S )N)r0   r   r1   rP   
fill_value)ri   rM  rc   r  r   	full_likesumrj   )rm   rQ   r   r  s       ru   test_size_zero_with_axisz/TestMedianAbsDeviation.test_size_zero_with_axis  s[    HY(666S",quu$u'7'7BFKKKLLLLLr   znan_policy, expectedr   r9   r  c           	      >   t          j        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          }t          ||           d S )Nr   r2   r0   r3   )r2   r3   r4   r6   r6   rX   r  r  )rm   r   rd  r   r  s        ru   test_nan_policy_with_axisz0TestMedianAbsDeviation.test_nan_policy_with_axis  s     HrvrvrvrvrvrvF!Q26262)))+ , , (zJJJS(#####r   zaxis, expectedr   )r:   r-  r(  )Nr<   c                     t          j        ddddt           j        gg dg dg          }t          j        |t           j        d|          }t          ||d	d	
           d S )Nr   r/   r1   r6   )r   r   r   r   rZ   )r  r  r  r  r   )centerr   rQ   r   rk  )ri   r   rj   rc   r  rh   r   )rm   rQ   rd  r   r  s        ru   test_center_mean_with_nanz0TestMedianAbsDeviation.test_center_mean_with_nan  s|     Hq!Q26*&&&---/ 0 0 (27v.24 4 4XE>>>>>>r   c                     t          j        t          d          5  t          j        g dd           d d d            d S # 1 swxY w Y   d S )Ncallabler   )r   r/   r0   r2   r  r  )r  r   rF  rc   r  r  s    ru   test_center_not_callablez/TestMedianAbsDeviation.test_center_not_callable  s    ]9J777 	@ 	@&|||B????	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@s   AA	AN)r   r   r   r  r  r  r  r  r  r  r  r  ri   r   rj   r  r  r  r   r   ru   r  r    so       @ @ @5 5 5' ' '3 3 3  
 [V___55M M 65M
 [3%xrxc0B'C'CD*HBHbfbfc5J,K,KLNO O$ $O O$ [- "2"2"23[AC C? ?C C?@ @ @ @ @r   r  c                 x    t          t          |           |d           | D ]}t          |j        |u            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   r5  r   category)	warn_listexpected_typeexpected_lenwarn_s       ru   _check_warningsr    sN     Y/CDDD 1 1-/00001 1r   c                       e Zd Zd Zd Zej                            dg  ej	        d          g          d             Z
d Zd Zd Zd	 Zd
 Zd Zd Zd Zd ZdS )TestIQRc                     t          j        d          dz  }t           j                            |           t	          t          j        |          d           d S )Nr5   r8   r  )ri   r   rl  r  r   rc   iqrr  s     ru   r  zTestIQR.test_basic  sH    IaLL3
	!UYq\\4(((((r   c           	         t          j        d          }t          j        |           t          j        |d            t          j        |d           t          j        |d           t          j        |d d           t          j        |d dd           t          j        |d ddd	           t          j        |d d
ddd           t          j        |d ddddd           d S )Nr  r   r   r   )rX   Z   )rI  r  r   )r  r  r9   r  )rH  rH  rn  r   lineargٿr   r  T)ri   r  rc   r  )rm   ds     ru   test_apizTestIQR.test_api  s    GFOO	!	!T	!Q	!V	!T8$$$	!T8S)))	!T8S+666	!T8XwAAA	!T8T67DAAAAAr   r   r   c                     t          j        t          t                    5  t	          t          j        |          t          j                   d d d            d S # 1 swxY w Y   d S r  )	r  r  r   r   r   rc   r  ri   rj   r  s     ru   r  zTestIQR.test_empty  s    \,4IJJJ 	/ 	/1rv...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s   -AA"Ac                    t          j        d          }t          t          j        |          d           t          t          j        |d          t          j        d                     t          t          j        |d          t          j        d                     t          t          j        |d	          d           t          t          j        |d
	          d           t          t          j        |d	          d           t          t          j        |d	          d           t          t          j        |d	          d           t          j        d          t          j        d          z  }t          t          j        |d          t          j        d                     t          t          j        |d          t          j        d                     t          t          j        |d          t          j        dd                     t          t          j        |d          t          j        d                     t          t          j        |d          t          j        dd                     t          t          j        |d          t          j        dd                     d S )N)r4   r1   r   r   rP   r1   r   r4   r  interpolationmidpointnearestr  r  r1   r2   r3   r3   )r2   r3   )r1   r3   r/   )r1   r2   r:   r  r   r/   r2   r   r   r/   )	ri   r  r   rc   r  r	   rM  r   r}   r  s      ru   test_constantzTestIQR.test_constant	  s*   GFOOUYq\\3'''59QQ///!===59QQ///!===UYq9993???UYq
;;;SAAAUYq	:::C@@@UYq888#>>>UYq9993??? GI1-59QQ///&1A1ABBB59QQ///&1A1ABBB59QQ///1E1EFFF59QV444bhqkkBBB59QV444bgannEEE59QV444bgannEEEEEr   c                    t          j        d          dz   }t          t          j        |d                   d           t          t          j        |          d           t          t          j        |d          dg           d S )Nr   r  r   r   Tr>  )ri   r   r   rc   r  r	   r  s     ru   test_scalarlikezTestIQR.test_scalarlike  so    IaLL3UYqt__c***UYq\\3'''59Q666>>>>>r   c                    t          j        d                              d          }t          t	          j        |          d           t          t	          j        |d          t          j        dd                     t          t	          j        |d          t          j        d	d
                     t          t	          j        |d          d           t          t	          j        |d          d           d S )Nr  r  r  r   rP   r2   rF   r   r0   r-  r  r   )ri   r   rg   r   rc   r  r	   r}   r  s     ru   test_2DzTestIQR.test_2D%  s    IbMM!!&))UYq\\3'''59QQ///B@@@59QQ///B@@@59QV444c:::59QV444c:::::r   c                 
	   t           j                            d          }t          j        |gdz            }t	          j        |          }t          t	          j        |d          |           t          j        |dd          }t          t	          j        |d          |           |                    dd	          }t          t	          j        |d
          |           |                    dd	          }t          t	          j        |d          t	          j        |d                      t          t	          j        |d          t	          j        |d                     t          j	        d          }t           j        
                    |           |                    d          }t          t	          j        |d          d         t	          j        |d d d d d d df                                                              t          t	          j        |d          d	         t	          j        |d d d d d	d d f                                                              t          t	          j        |d          d         t	          j        |d d d d dd d f                                                              t          t	          j        |d          d         t	          j        |dd d d d d d f                                                              t          t	          j        |d          d         t	          j        |dd	d d d d f                                                              t          t	          j        |d          d         t	          j        |dd d d d d	f                                                              t          t	          j        |d          d         t	          j        |dd d dd d f                                                              t          t          t          j        |d           t          t          t          j        |d           d S )N)G   r  rd  rX   r  rP   r^   r   r  r   r  r'  r   i  r0   r2   r4   rY   r   r   r0   )r0   r   r%  r/   )r0   r   r/   r0   r/   )r   r  )r   r0   r/   r/   r1   r  )ri   rl  rn  dstackrc   r  r   moveaxisswapaxesr   r  rg   r  r   r$   r   )rm   or   qr  s        ru   r  zTestIQR.test_axis-  s   I(++IqcBhIaLLUYqv...222K2q!!UYqv...222JJq!UYqv...222JJq!UYqy111Yqt,,,	. 	. 	.UYqt,,,Yqq)))	+ 	+ 	+ In%% 		!IIm$$UYqy111!4Yq111QQQ{002233	5 	5 	5UYqy111!4Yq111a{002233	5 	5 	5UYqz22215Yq111a{002233	5 	5 	5UYqy111!4Yq111QQQqqqz//1122	4 	4 	4UYqv...t4YqAaaa{002233	5 	5 	5UYqw///5YqAAAqqq!}224455	7 	7 	7UYqv...t4YqAAAq|113344	6 	6 	6 	iAA6666j%)QV<<<<<<r   c                 .   t          j        d          }t          t          j        |          d           t          t          j        |d          d           t          t          j        |d          d           t          t          j        |d          d           t          t          t          j        |d	           t          t          t          j        |t           j        d
f           t          t          t          j        |d           d S )Nr2   r/   )r  g     U@)rq  r:   )g      )@r  )rX   rH  g?)r   r
  r  )r   rH  <   )
ri   r   r   rc   r  r   r   r   rj   rF  r  s     ru   test_rngzTestIQR.test_rngV  s    IaLLUYq\\1%%%UYqj1113777UYqj1113777EIaX666<<<j%)QH====j%)QRVRLAAAAiA;??????r   c                    t          j        d          }t          j        d          }t          t          j        |          d           t          t          j        |          d           t          t          j        |d          d           t          t          j        |d          d           t          t          j        |d          d           t          t          j        |dd	          d
           t          t          j        |d          d           t          t          j        |d          d           t          t          j        |dd	          d           t          t          j        |d          d           t          t          j        |d          d           t          t          j        |d          d           t          t          j        |d          d           t          t          j        |dd	          d           t          t          j        |d          d           dD ]}t          j        ||           t          t          t          j        |d           d S )Nr2   r1   r/   r9   r  r  r  )r  P   )rq  r  r0   r  r  r   r  r:   )inverted_cdfaveraged_inverted_cdfclosest_observationinterpolated_inverted_cdfhazenweibullmedian_unbiasednormal_unbiasedr   )ri   r   r   rc   r  r   r   )rm   r   rn   rX  s       ru   test_interpolationzTestIQR.test_interpolationa  s/   IaLLIaLLUYq\\1%%%UYq\\3'''UYq9991===UYq9993???UYq9991===UYqhhGGGKKKUYq9991===UYq888!<<<UYqhgFFFJJJUYq888!<<<UYq	:::A>>>UYq	:::A>>>UYq
;;;Q???UYqhjIII3OOOUYq
;;;Q???* 	/ 	/F Iav.....j%)QhGGGGGGr   c                    t          j        d          }t          t          j        |d d          j        d           t          t          j        |dd          j        d           t          t          j        |dd          j        d           t          t          j        |d	d          j        d
           t          t          j        |dd          j        d           t          t          j        |dd          j        d           t          t          j        |dd          j        d           t          t          j        |d d          j        d           t          t          j        |dd          j        d           t          t          j        |dd          j        d           t          t          j        |d	d          j        d           t          t          j        |dd          j        d           t          t          j        |dd          j        d           t          t          j        |dd          j        d           d S )Nr  Fr  r   r/   )r0   r2   rY   r  )r4   rY   )r   r0   )r2   r4   )r   r  r   r   r/   r0   r>  r  )r4   Tr  )r0   r2   r   rY   )r   r   r4   rY   )r   r2   r4   r   )r0   r   r4   rY   )r   r   r4   r   )ri   r  r   rc   r  r  r  s     ru   r@  zTestIQR.test_keepdims  s   GM""UYqte<<<BBGGGUYqq5999?LLLUYqv>>>DgNNNUYqv>>>DfMMMUYqte<<<BJOOOUYq,???ErJJJUYqy5AAAGNNNUYqtd;;;A<PPPUYqq4888>NNNUYqv===C]SSSUYqv===C\RRRUYqtd;;;A=QQQUYq,>>>DlSSSUYqy4@@@FUUUUUr   c           	         t          j        d                              d          }t          t	          j        |d          d           t          t	          j        |d          d           t          t	          j        |d          d           t           j        |d<   t          j        d	
          5  t          j	        d           t          t	          j        |d          t           j                   t          t	          j        |dd          ddt           j        ddg           t          t	          j        |dd          dt           j        dg           d d d            n# 1 swxY w Y   t          j        d	
          5  t          j	        d           t          t	          j        |d          d           t          t	          j        |dd          t          j
        dd                     t          t	          j        |dd          g d           d d d            n# 1 swxY w Y   t          t          t          j        |d           t          t          t          j        |dd           t          t          t          j        |dd           t          t          t          j        |d           d S )N      .@r  r  r   r4   r   r   r  Trk   alwaysr   r  r2   r   r/   r?   )r/   r:   r/   barfood)ri   r   rg   r   rc   r  rj   warningscatch_warningssimplefilterr}   r   r   r  s     ru   test_nanpolicyzTestIQR.test_nanpolicy  s   IdOO##F++ 	UYq[9991===UYqV444a888UYqW555q999 &$$D111 	) 	)!(+++1===! ! !11EEEQ1-/ / /11EEERVQ) ) )	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) $D111 	O 	O!(+++1888#>>>11@@@"'!Q--PPP11@@@+++NNN		O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	O 	j%)Q7CCCCj%)QQ7KKKKj%)QQ7KKKK 	j%)Q9EEEEEEs&   8B)E--E14E1BH11H58H5c           	      d   t          j        d                              d          }t          t	          j        |d          d           t          t	          j        |d          d           t          t	          j        |d          d	           t           j        |d
<   t          j	        d          5  t          j
        d           t          t	          j        |dd          t           j                   t          t	          j        |dd          t           j                   t          t	          j        |dd          t           j                   t          t	          j        |ddd          dt           j        dg           t          t	          j        |ddd          t          j        dt           j        dg          dz             t          t	          j        |ddd          dt           j        dg           d d d            n# 1 swxY w Y   t          t	          j        |dd          d           t          t	          j        |dd          d           t          t	          j        |dd          d           t          t          t          j        |d           d S )Nr*  r  r   ru  r4   rn  g=V^w@r-  r;   r  Tr+  r,  r  )ru  r   r   )rQ   ru  r   r/   gF7k?r   r?   g	I1=@g      @r   )ri   r   rg   r   rc   r  r   rj   r.  r/  r0  r   r   r   r  s     ru   
test_scalezTestIQR.test_scale  s   IdOO##F++ 	UYq,,,a000EIax888-HHHUYq,,,c222 &$$D111 	) 	)!(+++1CKHHH"&QQQ1HMMMrvVVV1CKHHH"&QQQ11C.9; ; ;=>NL L L	!!85@!B !B !B "!RVQ 8 89 DF F F 11CKPPPRVQ) ) )	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)" 	UYq???EEEEIaxFKKK+	- 	- 	-UYq???FFF 	j%)Qh??????s   8EHHHN)r   r   r   r  r  r  r  r  ri   r   r  r  r
  r  r  r  r&  r@  r1  r4  r   r   ru   r  r    s       ) ) )

B 
B 
B [S2yry||"455/ / 65/F F F,? ? ?; ; ;'= '= '=R	@ 	@ 	@ H  H  HDV V V&F F F@!@ !@ !@ !@ !@r   r  c            	       :   e Zd ZdZg dZdZej                            d           ej        	                    d          Z
ddddZeej                            d	d
dg          ej                            d edd                    d                                     Zeej                            d	d
dg          ej                            dd          d                                     Zed             Zd Zeej                            dg d          ej                            dddg          d                                     Z eddg          ej                            d          ed                                     Zed             Zed              Zd! Zeej                            d"g d          ej                            d#g d$          ej                            d%dd&g          d'                                                 ZdS )(TestMomentsa  
        Comparison numbers are found using R v.1.5.1
        note that length(testcase) = 4
        testmathworks comes from documentation for the
        Statistics Toolbox for Matlab and can be found at both
        https://www.mathworks.com/help/stats/kurtosis.html
        https://www.mathworks.com/help/stats/skewness.html
        Note that both test cases came from here.
    r  r    r  N)r  rO   c                    t          j        |          }|t          j        ||          }t          ||           ||j        }|j        |k    sJ d S r  )ri   r  broadcast_tor	   rO   )rm   rP  expectr  rO   s        ru   _assert_equalzTestMoments._assert_equal  s]    F##_VU33F66***=LE|u$$$$$$r   r.   rX   )rX   r/   zm, cr(  )Nr   r   c                 t   t           j                            d          }|                    |                    |                    }t	          j        |||          }||                    |d          n|}|                    ||z
  |z  d          |j        d         z  }t          ||d           d S )Nl   rHZ rd  r  r   rP   缉ؗҜ<r  )
ri   rl  rm  r  rc   momentrh   r  r  r'   )	rm   r.   r
  r  r  rq  r   r   rs  s	            ru    test_moment_center_scalar_momentz,TestMoments.test_moment_center_scalar_moment  s     i##$788JJszztz,,--l1a***"#)BGGAAGffa!eaZaf((3Su------r   r  c                 V  	 t           j                            d          }|                    |                    |                    g d}t	          j        |          }t                    		                    	fd|D                       }t          ||           d S )Nl   %~.}~= rd  r(  r  c                 X    g | ]&}t          j        |           j        df         'S )r  .)rc   r>  newaxis)r  r  r  r   xp_tests     ru   r  z?TestMoments.test_moment_center_array_moment.<locals>.<listcomp>  sF     * * *"# $l1a:::7?C;OP * * *r   )	ri   rl  rm  r  rc   r>  r)   concatr(   )
rm   r.   r  r  rq  r
  r   rs  r   rC  s
     `     @@ru   test_moment_center_array_momentz+TestMoments.test_moment_center_array_moment  s     i##$788JJszztz,,--LLl1a***!!$$nn * * * * * *'(* * * + +S!!!!!r   c                                         | j                  }t          j                             | j                            }t          |                     d                     t          j        |d          }t          |                     d                     t          j        |d          }t          |                     d                     t          j        |d          }t          |                     d                     t          j        |d          }t          |                     d                     t          j        |d          }t          |                     d	                     t          j        |g d
          }t          |                     g d                     t          j        |d          }t          |                     d                     d}t          j        t          |          5  t          j        |d           d d d            n# 1 swxY w Y   t          j        |g d          }t          |                     g d                     fd}t                    r@t          j
        t          d          5   |             d d d            d S # 1 swxY w Y   d S t          j                                        5 }|                    t           d           |                    t           d            |             d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   r/         ?r0   r1        @r>  )r   rG  r   rH  z)All elements of `order` must be integral.r   333333?)r   r/   r0   r  c                  >   t          j                            g                     } t          |                     j                             t          j                            g j                            } t          |                     j        j                             t          j                            d          d          } t          |                     d                     t          j                            g g          d          } t          |                     j        g                     t          j                            g g          ddgd          } t          |                     d                     d S )	NrN   r   r   rP   r  r   orderrQ   )r/   r   )rc   r>  r  r(   rj   r   rM  rZ  )rn   r  s    ru   
test_casesz+TestMoments.test_moment.<locals>.test_cases*  sE   RZZ^^,,AArzz"&11222RZZ"*Z==>>AArzz"&
zCCDDDRXXf--A666AArxx~~...RZZ--A666AArzz26(33444RZZ--aV!DDDAArxx//00000r   zSee documentation for...zMean of empty slice.zinvalid value)r  rc  rc   r>  r^  r'   r  r   r   r+   r  r   ri   r  r   r   rl   )rm   r  rc  rn   rZ  rM  rt   s    `     ru   test_momentzTestMoments.test_moment
  s    ::dm,,LD$899::2::c??+++L1%%2::c??+++L1%%2::c??+++L1%%2::d++,,,L1%%2::c??+++L1%%2::f--... L<<<002::&:&:&:;;<<< L3''2::c??+++=]:W555 	( 	(L3'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(L#3#3#3442::&:&:&:;;<<<
	1 
	1 
	1 
	1 
	1 B<< 	08RSSS  
                  --// 3

>+ABBB

>?;;;
                 s7   H66H:=H:,KKK/AL==MMc                 v   t          j        d          }t           j        |d<   t          t	          j        |d          t           j                   t          t	          j        |d          d           t          t          t          j        |d           t          t          t          j        |d           d S )	Nr   r6   r/   r   r   r   r   r   )	ri   r   rj   r   rc   r>  r   r   r   r  s     ru   r  zTestMoments.test_nan_policy@  s    IcNNv!U\!Q''000ELv>>>DDDj%,gFFFFj%,hGGGGGGr   rO   )r   r   
complex128zexpect, orderr  r   c                 :   |dk    r"t          |          rt          j                     t          ||          }|                    t
          j                            d          |          }t          j	        ||          }t          ||                    ||                     t          j	        |                    |d          d|          }t          ||                    d||                     t          j	        |                    |d	          d
|          }t          ||                    d||                     t          j	        |                    |d	          d |          }t          ||                    d||                     d S )NrP  r2   rN   rL  )r3   r2   r   )rQ   rL  )r2   ri  r/   )r   r/   r1   r2   r   )r,   r  skipr  r  ri   rl  r  rc   r>  r(   r9  r}   )rm   rO   r:  rL  r  r   rn   s          ru   test_constant_momentsz!TestMoments.test_constant_momentsH  sq    ,8B<<KMMME""JJry~~a((J66L%(((2::fE:::;;;LF33!5III2774u7==>>>LO<<1$& & &277<u7EEFFFLO<<4$& & &2772vU7;;<<<<<r   r   r   r   r   c                    |                     |                    d          d          }t          j        |d<   t	          j        |dd          }t          ||                    dt          j        g          d	           d S )
Nr\  r/   r^   r   r/   r   rP   rG  r   r  )rg   r   ri   rj   rc   r>  r'   r  )rm   r  r  mms       ru   test_moment_propagate_nanz%TestMoments.test_moment_propagate_nan^  so     JJryy}}g..&$\!QQ'''BJJbf~66UCCCCCCr   c                     t          j        t          d          5  t          j        |                    g d          g            d d d            d S # 1 swxY w Y   d S )Nz6'order' must be a scalar or a non-empty 1D list/array.r   r>  rR  )r  r   r   rc   r>  r  )rm   r  s     ru   test_moment_empty_orderz#TestMoments.test_moment_empty_orderj  s     ]: .J K K K 	= 	=LLLL11<<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=s   ,AAAc                     |                     d          }t          j        |d          }t          j        |d          }t          ||           d S )NrX   r0   )r>  rR  )r   rc   r>  r(   )rm   r  r   r   rs  s        ru   test_rename_moment_orderz$TestMoments.test_rename_moment_orderq  sQ     IIbMMl1Q'''l1A&&&S!!!!!r   c                     | j         t          j        | j                   z
  }t          t          j        |d                                          t          j        | j         d                     d S )Nr  )testcase_moment_accuracyri   rh   r   r   rc   r>  )rm   
tc_no_means     ru   test_moment_accuracyz TestMoments.test_moment_accuracyz  sn     3 =>>?
R005577T%BBGG	I 	I 	I 	I 	Ir   rL  rQ   r  r  r   c                 2   t           j                            d          }|                    d          }t          j        |                    |          |||          }|                    t          ||||                    }t          ||           d S )Nl   hU~)r2   r3   r4   rd  )rQ   r  )rh   )ri   rl  rm  rc   r>  r  r"   r'   )	rm   r  rL  rQ   r  rq  r   r   rs  s	            ru   test_moment_array_apiz!TestMoments.test_moment_array_api  s    
 i##N33JJIJ&&l2::a==%d6JJJjjE4f===>>S!!!!!r   )r   r   r   r   rc  r^  ri   rl  r  r  r_  r;  r%   r  r  r  r   r?  rE  rN  r  rT  r   usefixturesrY  r[  r]  ra  rc  r   r   ru   r6  r6    s          HOINN4!y~~b1159 % % % % % [Vb']33[VWW\<%H%HII. . JI 43 . [Vb']33[S,//" " 0/ 43 " 3 3 3jH H H [W&J&J&JKK[_vv.>??= = @? LK =& kJKM M M[/00D D  10M MD = = = " " "I I I [Wlll33[VZZZ00[Xay11" " 21 10 43 " " "r   r6  c                   "    e Zd ZdZg dZg dZdS )SkewKurtosisTestr  r  )gp=
ף?g?߾?gD9?gQI?g}?5^IN)r   r   r   r^  rc  testmathworksr   r   ru   rf  rf    s)        OH<<<MMMr   rf  c            	       $   e Zd Zeej                            dej        ej	        g          d                         Z
 eddg          ej                            d          ed                                     Zd Zd	 Z eddg          ej                            d          ed
                                     Zed             Z eddg          ej                            d          ed                                     Z eddg          ej                            d          eej                            dg d          ej                            dddg          d                                                             ZdS )TestSkewstat_func                    |                     g           }t          |          rDt          j        t          t
                    5   ||          }d d d            n# 1 swxY w Y   nwt          j                                        5 }|	                    t          d           |	                    t          d            ||          }d d d            n# 1 swxY w Y   t          ||                     |j                             d S )Nr   r`   zinvalid value encountered)r  r+   r  r  r   r   ri   r  r   r   rl   r(   rj   )rm   rj  r  r   r   rt   s         ru   test_empty_1dzTestSkew.test_empty_1d  s`    JJrNNB<< 	"08MNNN " "hqkk" " " " " " " " " " " " " " " --// "3

>+@AAA

>+FGGGhqkk	" " " " " " " " " " " " " " "
 	RZZ//00000s%   AA!$A!ACCCr   r   rU  r   c                    t          j        |                    | j                            }t	          ||                    |j                             t          j        |                    | j                            }t	          ||                    d          d           t          j        |                    | j                  d          }t	          ||                    d          d           t          j        |                    | j                            }t	          ||                    d          d           d S )Ng7l*ҿ绽|=r  r   biasg2۠ۿr   )rc   skewr  r^  r'   rj   rg  rc  )rm   r  rn   s      ru   test_skewnesszTestSkew.test_skewness  s	    Jrzz$"677882::bf--... Jrzz$"455662::&788uEEEEJrzz$"455A>>>2::&899FFFFJrzz$-00112::c??777777r   c                    t          j        d          }t           j        |d<   t          j        d          5  t	          t          j        |          t           j                   d d d            n# 1 swxY w Y   t	          t          j        |d          d           t          t          t
          j        |d           t          t          t
          j        |d	           d S )
Nr   r6   r  r  r   r   r   r   r   )	ri   r   rj   r  r   rc   rq  r   r   r  s     ru   r  zTestSkew.test_nan_policy  s    IcNNv![*** 	0 	0A///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0UZf555r:::j%*aGDDDDj%*aHEEEEEEs   -A22A69A6c                 d    t          t          j        t          d                    d           d S )NrX   r   )r   rc   rq  r   r  s    ru   test_skewness_scalarzTestSkew.test_skewness_scalar  s(    UZr

++S11111r   c                 J   |                     d          }|                    |d          }|j        |d<   t          j        d          5  t          j        |d          }d d d            n# 1 swxY w Y   t          ||                    d|j        g                     d S )	Nr\  rW  r   r  r  r   rP   r   )	r   rg   rj   ri   r  rc   rq  r(   r  )rm   r  r  r  s       ru   test_skew_propagate_nanz TestSkew.test_skew_propagate_nan  s     IIbMMJJq'""&$[*** 	& 	&
11%%%A	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&2::q"&k2233333s   A..A25A2c                    t          j        t          d          5  |                    dgdz            }t	          t          j        |          |                    |j                             t	          t          j        |dz            |                    |j                             t	          t          j        |dz            |                    |j                             t	          t          j        |d          |                    |j                             |                    dgd	z            }t	          t          j        |          |                    |j                             d
|                    dd          dz  z   }t	          t          j        |          |                    |j                             d d d            d S # 1 swxY w Y   d S )NPrecision loss occurredr   9ѿrX   g      CFro  g,@r4   r         r1   r=  )	r  r  rl   r  r(   rc   rq  rj   r   rm   r  r  s      ru   test_skew_constant_valuez!TestSkew.test_skew_constant_value  s    \.0IJJJ 	? 	?

K=+,,AEJqMM2::bf+=+=>>>EJqx00"**RV2D2DEEEEJqx00"**RV2D2DEEEEJqu555rzz"&7I7IJJJ 

D6!8$$AEJqMM2::bf+=+=>>>RYYsA&&u,,AEJqMM2::bf+=+=>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?s   F3GG #G c                 8   t          j        t          d          5  t          j                            d          }|                    |                    d                    }d|d d df<   t          j        |           d d d            d S # 1 swxY w Y   d S )Nry  r   l   :"z` )rb  rX   rd  )\(?r   )	r  r  rl   ri   rl  rm  r  rc   rq  )rm   r  rq  r  s       ru   test_precision_loss_gh15554z$TestSkew.test_precision_loss_gh15554  s     \.0IJJJ 	 	)''44C

3::9:5566AAaaadGJqMMM		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   A&BBBrQ   r^   r   r/   Nrp  FTc                 
   t           j                            d          }                    |                    d                    }fd}t	          j        |||          } ||||          }t          ||           d S )N   f#"r5  c                 H   |	                     | d          } d}t          |           }|                    | |d          }|                    | |z
  dz  |          }|                    | |          }||dz  z  }|s!| j        |         }||dz
  |z  dz  |d	z
  z  z  }|S )
Nr^   r   Tr  r0   rP   r   r8   r-  )rg   r)   rh   r   r  )
r  rQ   rp  rC  rh   mu3r   r   r  r  s
            ru   skewnessz-TestSkew.test_vectorization.<locals>.skewness  s    |JJq%((%a((G<<t<<<D,,D1}4,88C++ad+++Cq.C :GDMSA#-S99Jr   )rQ   rp  )ri   rl  rm  r  rc   rq  r'   )	rm   r  rQ   rp  rq  r   r  r   rs  s	    `       ru   test_vectorizationzTestSkew.test_vectorization  s     i##M22JJszz),,--	 	 	 	 	 jD111hqt$///S!!!!!r   N)r   r   r   r%   r  r  r  rc   rq  kurtosisrl  r   rd  rr  r  ru  rw  r}  r  r  r   r   ru   ri  ri    sg       [Z%*en)EFF1 1 GF 1 kJKM M M[/008 8  10M M8F F F2 2 2 kJKM M M[/004 4  10M M4 ? ? ? kJKM M M[/00   10M M kJKM M M[/00[V%5%5%566[VeT]33" " 43 76  10M M" " "r   ri  c            
          e Zd Z eddg          ej                            d          ed                                     Zd Z	d Z
d Zed	             Z eddg          ej                            d          eej                            d
g d          ej                            dddg          ej                            dddg          d                                                                         ZdS )TestKurtosisr   r   rU  r   c                 |   t          j        |                    | j                            }|                    |          sJ t          j        |                    | j                  ddd          }t          ||                    d                     t          j        |                    | j                  dd          }t          ||                    d                     t          j        |                    | j                  dd          }t          ||                    d                     |                    d          }|	                    |dk    |                    |j
                  |          }t          t          j        |          |                    |j
                             d S )	Nr   r   fisherrp  gO߻S@gx|N@g=
ףp=?r   r5   )rc   r  r  r^  r  rg  r'   rc  r   rd  rj   r(   )rm   r  rn   r   s       ru   test_kurtosiszTestKurtosis.test_kurtosis  sb    N2::d&:;;<<xx{{ N2::d&8991QQOOO2::o66777 N2::d&899!!LLL2::&788999N2::dm44a;;2::d++,,,IIcNNHHQ!VRZZ//33q))2::bf+=+=>>>>>r   c                    t          j        d          }t           j        |d<   t          t	          j        |d          d           t          t          t          j        |d           t          t          t          j        |d           d S )Nr   r6   r   r   Gzr   r   )ri   r   rj   r   rc   r  r   r   r  s     ru   test_kurtosis_nan_policyz%TestKurtosis.test_kurtosis_nan_policy4  sq    IcNNv!EN1@@@)LLLj%.!HHHHj%.!IIIIIIr   c                 |    t          t          t          j        g d                    t          j                   d S )NrT  )r   typerc   r  ri   r   r  s    ru   test_kurtosis_array_scalarz'TestKurtosis.test_kurtosis_array_scalar<  s0    T%.3344bjAAAAAr   c                 .   t          j        d                              dd                              t                    }t           j        |d<   t          j        |dd          }t           j        	                    |dt           j        gd	
           d S )Nr5   r/   r^   r   r   r  r  g(\r   r  )
ri   r   rg   ra  rN  rj   rc   r  r  r   )rm   r  r  s      ru   test_kurtosis_propagate_nanz(TestKurtosis.test_kurtosis_propagate_nan@  sy     IaLL  B''..u55&$N11===

""1ubfoE"BBBBBr   c           	      <   |                     dgdz            }t          j        t          d          5  |                    t          j        |d                    sJ |                    t          j        |t          d          z  d                    sJ |                    t          j        |t          d          z  d                    sJ |                    t          j        |dd                    sJ 	 d d d            d S # 1 swxY w Y   d S )	Nrz  rX   ry  r   F)r  l           r  )r  r  r  rl   r  rc   r  rN  r|  s      ru   test_kurtosis_constant_valuez)TestKurtosis.test_kurtosis_constant_valueI  sa    JJ}R'((\.0IJJJ 	I 	I88EN1U;;;<<<<<88EN1uU||+;EJJJKKKKK88EN1uU||+;EJJJKKKKK88EN1UGGGHHHHHH		I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	I 	Is   CDDDrQ   r  rp  FTr  c                    t           j                            d          }                    |                    d                    }fd}t	          j        ||||          } |||||          }	t          ||	           d S )Nr  r  c                    |
                     | d          } d}t          |           }|                    | |d          }|                    | |z
  dz  |          }|                    | |d          }|r||dz  z  d	z
  }n6| j        |         }	|	d
z
  |	dz
  |	d	z
  z  z  |	d
z   |z  |dz  z  d	|	d
z
  z  z
  z  }|r|n|d	z   S )Nr  r   Tr  r1   rP   )rQ   
correctionr/   r0   r   )rg   r)   rh   r|   r  )r  rQ   rp  r  rC  rh   mu4mu2r   r  r  s             ru   r  z1TestKurtosis.test_vectorization.<locals>.kurtosis`  s    |JJq%((%a((G<<t<<<D,,D1}4,88C++adq+99C QCFlQ&GDMs!!}-!a%3sAv1E1Q31OP !-33cAg-r   )rQ   rp  r  )ri   rl  rm  r  rc   r  r'   )
rm   r  rQ   rp  r  rq  r   r  r   rs  s
    `        ru   r  zTestKurtosis.test_vectorizationS  s     i##M22JJszz),,--	. 	. 	. 	. 	.( nQTVDDDhqt$v>>>S!!!!!r   N)r   r   r   r   r  r  rd  r%   r  r  r  r  r  r  r  r   r   ru   r  r    s       kJKM M M[/00? ?  10M M?>J J JB B BC C C I I I kJKM M M[/00[V%5%5%566[VeT]33[Xt}55" " 65 43 76  10M M" " "r   r  c                 &   t          dd          }t          j        dd          } | t          j        t          j        ||                    }g }t          j                    5  t          j        d           t          t          |j                            D ]}t          j        t                    5  t          j        |d|          }t	          j        |d	k              r;t	          j        t	          j        |                    r|                    |           d d d            n# 1 swxY w Y   	 d d d            n# 1 swxY w Y   t)          j        |            | t(          j                            |                    }||fS )
NF)	allow_nanallow_infinityr   r/   )min_dimsmin_side)rO   elementsr  errorrK  r   )dictnpstarray_shapesarraysri   r   r.  r/  r0  r  r5  r  
contextlibsuppress	Exceptionrc   r>  r  r  r  
hypothesisassume
strategiessampled_from)drawr  r  r1  ok_axesrQ   r|   s          ru   ttest_data_axis_strategyr  y  s    eE:::Hq1555E 4"*xuMMMNND G 
	 	"	" ) )g&&&#dj//** 	) 	)D$Y// ) )l4qt<<<6#'?? )rvbk#.>.>'?'? )NN4((() ) ) ) ) ) ) ) ) ) ) ) ) ) )	)) ) ) ) ) ) ) ) ) ) ) ) ) ) ) g 4
%227;;<<D:s8   'AE8A+D/#E/D33E6D37EEEzUses NumPy for pvalue, CI)r   r   c                      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  Zded
z  z
  Zd Zd Zd Zej                            dg d          d             Zd Zej        j         ej        ej                            dd           e                      ej                            dddg          d                                     ZdS )TestStudentTest)r  r   r   )r   r   r-  r   r   gMXzg4/?gMXzgFX5t?gMXz?r/   r   c                    t                      5 }t          j        dd          5  |                    t          d           t          |          s|                    d          nd}t          j        |d          \  }}d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          ||                    |j
                             t          ||                    |j
                             t          j        |                    | j                  d          \  }}t          ||                    | j                             t          ||                    | j                             t          j        |                    | j                  d          }d}t          |||           t          j        |                    | j                  d          \  }}t          ||                    | j                             t          ||                    | j                             t          j        |                    | j                  d	          \  }}t          ||                    | j                             t          ||                    | j                             t          j        |                    | j                  d
          \  }}t          ||                    | j                             t          ||                    | j                             d S )Nr  r  divide!Degrees of freedom <= 0 for slicer  r   r   r   r   r  r   r-  )r   ri   r  r   rl   r+   r  rc   ttest_1sampr(   rj   X1r'   T1_0P1_0r   X2T2_0P2_0T1_1P1_1T1_2P1_2)rm   r  rt   r  tr  r   r   s           ru   test_onesamplezTestStudentTest.test_onesample  s      	,CHX>>>	, 	,JJ~'JKKK&.rll:

2A$Q++DAq		, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,
 	2::bf--...2::bf--... DG!4!4b9912::di001112::di00111

47 3 3R88,
C3333 DG!4!4b9912::di001112::di00111 DG!4!4b9912::di001112::di00111 DG!4!4b9912::di001112::di0011111s5   B#AB B#B	B#B	B##B'*B'c                    t          |          sl|                    ddd|j        g          }d}t          j        t
          |          5  t          j        |dd           d d d            n# 1 swxY w Y   d S t          j        	                    dd	d
d          }t          j        |d<   t          j        d          5  t          t          j        |d          t          j        t          j        f           t          t          j        |dd          d           t          t          t          j        |dd           t          t          t          j        |dd           d d d            d S # 1 swxY w Y   d S )Nr   r-  r   %Use of `nan_policy` and `keepdims`...r   r   r   r2   rX   3   it rt  ru  r.   rf  rH  r  r  rF   )g̈́^Bg/kCm?r   r   )r+   r  rj   r  r   NotImplementedErrorrc   r  normrg  ri   r  r	   r   r   r   )rm   r  r   rZ  s       ru   test_onesample_nan_policyz)TestStudentTest.test_onesample_nan_policy  s   || 	

BB/00A=G2'BBB < <!!RF;;;;< < < < < < < < < < < < < < <FJNNq'NJJ"[*** 	/ 	/u0C882626:JKKK%e&736&R&R&R&QS S S*e&7CGTTTT*e&7C%-/ / / /	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s%   A//A36A3B%E55E9<E9c                    d}t          j        t          |          5  t          j        |                    | j                  dd           d d d            n# 1 swxY w Y   t          j        |                    | j                  dd          \  }}t          ||                    | j                             t          ||                    | j	                             t          j        |                    | j                  dd          \  }}t          ||                    | j
                             t          ||                    | j	                             d S )	Nz8`alternative` must be 'less', 'greater', or 'two-sided'.r   r   r  r?  r   r9  r;  )r  r   r   rc   r  r  r  r'   P1_1_lr  P1_1_g)rm   r  rZ  r  r  s        ru   test_1samp_alternativez&TestStudentTest.test_1samp_alternative  sz   L]:W555 	L 	Lbjj1127KKKK	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L 	L  DG!4!4bfMMM12::dk223332::di00111 DG!4!4biPPP12::dk223332::di0011111s   0AA!Ar@  r  c                    t           j                            d          }d}|                    |dd          }|                                }t	          |          r|j        n|j        }|                    ||          }|                    ||          }ddgd	t           j        gt           j         d
gd}t          j
        |||          }	|	                    d          }
t          |
j        |                    ||         d                              t          |
j        |                    ||         d                              t          |	j        |                    |dz
                       d S )Nl   <PleH rX   r9   r/   r.   rt  ru  rN   gÍ]?g$(}w@gS1?g]@r7  r;  r9  )popmeanr@  333333?confidence_levelr   r   )ri   rl  rm  rn  r,   r   r   r  r  rc   r  r/  r'   r2  r3  r(   df)rm   r  r@  rq  r  r   r  rO   rs  r   rI  s              ru   test_1samp_ci_1dz TestStudentTest.test_1samp_ci_1d  sX    i##$788JJA3aJ00**,, 'rll:


JJqJ&&**WE*22/1CD-rv6!235 5 7LLL$$d$;;

3{+;A+> ? ?@@@C,<Q,?!@!@AAA

1Q300000r   c                     t          j        |                    d          d          }d}t          j        t
          |          5  |                    d           d d d            d S # 1 swxY w Y   d S )Nr   r   4`confidence_level` must be a number between 0 and 1.r   rX   r  )rc   r  r   r  r   r   r/  )rm   r  r   rZ  s       ru   test_1samp_ci_ivz TestStudentTest.test_1samp_ci_iv  s    		#33H]:W555 	9 	9##R#888	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9 	9s   A**A.1A.r   g?)alpha	data_axisr9  r;  c                    |\  }}|                     |          }t          j        |d||          }|                    |          \  }}	|dk    r|n|	}
t	          |          }|                    |
|          }
t          j        ||
||          }t          |j                  }|                    |           |	                    |                     d|z
  |j
                  |          }t          |j        |           d S )Nr   rh  r  r;  rP   r   rN   )r  rc   r  r/  r)   r  r  r  r7  r9  r   r'   r   )rm   r  r  r@  r  r1  rQ   r   lr:  r  rC  r  rs  s                 ru   test_pvalue_cizTestStudentTest.test_pvalue_ci  s    
dzz$b,7dD D D&&&>>1"i//!!Q!!$$%%gD%99g;TRRRTZ  		$oobjj5
jCCUKK
C(((((r   N)r   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  xslowr  givenr  floatsr  r  r   r   ru   r  r    s_        
B	BDDDDDDDDAXF$(^F2 2 2@/ / /(2 2 2 [],L,L,LMM1 1 NM109 9 9 [ZJ188HH 8 8 : :< < <[]VY,?@@) ) A@< < ) ) )r   r  c                   f   e Zd Zd Zej                            dg d          d             Zej                            dg d          d             Zej                            dg d          d             Z	ej                            dg d	          d
             Z
ej                            dg d          d             Zej                            dg d          d             Zej                            d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             Zej                            ddg dfdg dfdg dfdg dfg          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$             Zd%ddd&ej        gg d'd(fd%g d'ddd&ej        gd(fgZej                            d)e          d*             Zej                            d+g d,          d-             Zd.S )/TestPercentileOfScorec                 $    t          j        |i |S r  )rc   percentileofscore)rm   argskwargss      ru   fzTestPercentileOfScore.f'  s    &7777r   zkind, result))r#  rJ  )rh   #   strictrI  )weakrJ  c                 Z    g d}t          |                     |d|          |           d S )N
r   r/   r0   r1   r2   r3   r4   r5   r6   rX   r1   kindr   r  rm   r  rH  r  s       ru   test_uniquez!TestPercentileOfScore.test_unique*  s7    
 ,++TVVAqtV,,f55555r   ))r#  r  )rh   rJ  r  )r  rH  c                 Z    g d}t          |                     |d|          |           d S )N)
r   r/   r0   r1   r1   r2   r3   r4   r5   r6   r1   r  r  r  s       ru   test_multiple2z$TestPercentileOfScore.test_multiple22  7    
 +**TVVAqtV,,f55555r   ))r#  rH  )rh   r  r  )r  r  c                 Z    g d}t          |                     |d|          |           d S )N)
r   r/   r0   r1   r1   r1   r2   r3   r4   r5   r1   r  r  r  s       ru   test_multiple3z$TestPercentileOfScore.test_multiple3:  r  r   ))r#  rI  )rh   rI  r  )r  rI  c                 Z    g d}t          |                     |d|          |           d S )N)
r   r/   r0   r2   r3   r4   r5   r6   rX   rY   r1   r  r  r  s       ru   test_missingz"TestPercentileOfScore.test_missingB  s7    
 -,,TVVAqtV,,f55555r   c                 Z    g d}t          |                     |d|          |           d S )N
rX   r  rI  rJ  rH  r  F   r  r  rb  rJ  r  r  r  s       ru   r  z(TestPercentileOfScore.test_large_numbersJ  s7    
 655TVVArV--v66666r   c                 Z    g d}t          |                     |d|          |           d S )N)
rX   r  rI  rJ  rJ  rJ  rH  r  r  r  rJ  r  r  r  s       ru   test_large_numbers_multiple3z2TestPercentileOfScore.test_large_numbers_multiple3R  s7    
 544TVVArV--v66666r   c                 Z    g d}t          |                     |d|          |           d S )N
rX   r  rI  rH  r  r  r  r  rb  n   rJ  r  r  r  s       ru   test_large_numbers_missingz0TestPercentileOfScore.test_large_numbers_missingZ  s7    
 766TVVArV--v66666r   r#  )r   rX   rb  rb  rh   )r   r2   _   rb  r  )r   r   r  rb  r  c                 ^    g d}t          |                     |g d|          |           d S )Nr  )r   rX   r  r  r  r  r  s       ru   test_boundariesz%TestPercentileOfScore.test_boundariesb  s>    
 766TVVA000tV<<fEEEEEr   )r   rX   rb  )r   r2   r
  )r   r   r  c           
          ddddddddd	t           j        
 g
}t          |                     |t           j         dt           j        
 g|
          |           d S )Nr   r/   r0   r1   r2   r3   r4   r5   r6   r  )ri   r  r   r  r  s       ru   test_infzTestPercentileOfScore.test_infj  sY    
 1aAq!Q0TVVARVG44V@@&IIIIIr   r  r   r'  r/   rH  rb  r   )r   rH  rb  r   zpolicy, a, score, resultc                 R    t          |                     |||          |           d S )Nr   r  )rm   policyr  r  rH  s        ru   test_nans_okz"TestPercentileOfScore.test_nans_okz  s*    TVVAuV88&AAAAAr   r   r0   rT  r  zpolicy, a, score, messagec                     t          t          |          5  |                     |||           d d d            d S # 1 swxY w Y   d S )Nr   r   )r   r   r  )rm   r  r  r  rZ  s        ru   test_nans_failz$TestPercentileOfScore.test_nans_fail  s    :W555 	0 	0FF1eF///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s   =AAr  ))r3   r  r/   r   r0   )r/   r   r   r0   c                     t          j        g d          }|                    |          }|dz  }g d}t          |                     ||d          |           d S )N)r   r   r/   r0   r1   r2   rX   r  r#  r  )ri   r   rg   r   r  )rm   r  r  r  resultss        ru   test_ndzTestPercentileOfScore.test_nd  sg     H'''((5!!)+++TVVAvFV33W=====r   N)r   r   r   r  r  r  r  r  r  r  r   r  r  r	  r  r  ri   rj   casesr  r  r  r   r   ru   r  r  %  s       8 8 8 [^ .< .< .< = =6 6	= =6 [^ .< .< .< = =6 6	= =6 [^ .< .< .< = =6 6	= =6 [^ .< .< .< = =6 6	= =6 [^ .< .< .< = =7 7	= =7 [^ .< .< .< = =7 7	= =7 [^ .< .< .< = =7 7	= =7 [^v7H7H7H.I/5.G/7.I/57H7H7H.I.K L LF F	L LF [^v|||.D/5zzz.B/7.D/5|||.D.F G GJ J	G GJ 2q"&)BF8Q/BF8YYY0HIAq6Aq"&>BRV3DEq!RVniii>q!fq!RVnq"bfo>rvrv&			BFBFBF3KLNE [7??B B @?B 
1aBF#YYY	(	*	)))aArv.	(	*E [8%@@0 0 A@0 [W ' ' '  > > > > >r   r  Case)f_obsf_expry   rQ   chi2r  mod_logcr)r1   r5   rZ   r5   r1   r/   r8   rZ   r9   r5   r-  r  gfx(@)r/   r   rZ   r/   r  r  r         ?g{T4@)r0   r2   r4   r6   r   r   r   c                   N   e Zd Zd Zej                            de          ej                            dg d          d                         Zd Z	d Z
ej                            de          ej                            dg d          d	                         Zd
 Zd Zd ZdS )TestPowerDivergencec                    |                     d          j        }|                     ||          }||                     ||          n|}|t          |          }	n=t          |          }
||
                    ||          n|f}|d         j        |         }	t                      5 }|                    t          d           t          j
        |||||          \  }}t          ||                     ||                     |dk    s|dk    r@t          j        ||||          \  }}t          ||                     ||                     d d d            n# 1 swxY w Y   t          j         |          }t          j        j                            ||	dz
  |z
            }t          ||                     ||                     d S )	Nr   rN   r   r`   r  r  ry   rQ   lambda_r   pearson)r  r  ry   rQ   )r  rO   xp_sizer)   broadcast_arraysr  r   r   rl   rc   power_divergencer'   	chisquareri   distributionsr  sf)rm   r  r  ry   rQ   r%  expected_statr  rO   num_obsrC  r  rt   statr  
expected_ps                   ru   check_power_divergencez*TestPowerDivergence.check_power_divergence  s    

2$

5
..272C

5
...<ennGG%e,,G@E@Qg..ue<<<!8 Qiod+G   	NCJJ~'<===,&+5t%)7< < <GD! D"**]%*"H"HIII!||w)33/U/35 5 5abjjej&L&LMMM	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N z$(-00181t1CE E
2::j:>>?????s   *B)EE#&E#caselambda_stat))Nr  r&  r  )r   r  log-likelihoodr  mod-log-likelihoodr  cressie-readr  r  r  c           	          |\  }}t          ||          }|                     |j        |j        |j        |j        |||           d S r  )r  r1  r  r  ry   rQ   rm   r2  r3  r  r%  attrr-  s          ru   r  zTestPowerDivergence.test_basic  sZ     $d++##DJ
DIty$+]B	@ 	@ 	@ 	@ 	@r   c           	      L   t           d         }t           d         }t          j        |j        |j        f          }t          j        t          j        |j                  t          j        |j                  z  |j        f          }|                    |          }||                    |          n|}|                     ||ddd|j	        |j	        g|           |                     ||ddd|j
        |j
        g|           |                     ||ddd|j        |j        g|           |                     ||ddd|j        |j        g|           |                    |                    |j                  d          }|                     |d dd d|j	        |           d S )	Nr   r   r&  r  r6  r8  r:  r  )power_div_1d_casesri   r  r  	ones_likerh   r  r  r1  r  r  r  r  rg   )rm   r  case0case1r  r  f_obs_reshapes          ru   r  zTestPowerDivergence.test_axis  s   "1%"1%	5;455	2<44RWU[5I5II ;( ) ) 

5!!%*%6

5!!!E##eQ5:uz2r 	$ 	; 	; 	; 	##eQ%)UY!7B 	$ 	@ 	@ 	@ 	##eQ#emU]%C 	$ 	L 	L 	L 	##eQ%(3 	$ 	< 	< 	<
 

2::ek#:#:FCC##dAt%* 	$ 	- 	- 	- 	- 	-r   c                    t           d         }t           d         }t          j        |j        |j        f          j        }t          j        t          j        |j                  t          j        |j                  z  |j        f          j        }|j        |j        g}|	                    d          j
        }|	                    ||          }|	                    ||          }|	                    ||          }|	                    dgdgg          }t          j        |||          \  }	}
t          |	|           t          j        |||d                   \  }}t          j        |||d                   \  }}t          |          }|                    ||j        d d f         ||j        d d f         fd          }t          |
|           d S )	Nr   r   r   rN   rx   r  r   rP   )r@  ri   r  r  r~  rA  rh   r  r  r  rO   rc   r)  r'   r)   rD  rB  )rm   r  rB  rC  r  r  expected_chi2rO   ry   r/  r  stat0p0stat1p1rC  r0  s                    ru   test_ddof_broadcastingz*TestPowerDivergence.test_ddof_broadcasting#  s    #1%"1%	5;4557	2<44RWU[5I5II ;( ) ))* 	 UZ0

2$

5
..

5
..

=
>> zzA3*%%(DAAAam,,, *5%d4jIII	r*5%d4jIII	r!%((^^R(:%;%'(:%;%=)* $ , ,
 	:&&&&&r   )r4  r5  r7  r9  r;  c           
          |\  }}t          ||          }t          j                    5  |                     |j        |j        |j        |j        |||           d d d            d S # 1 swxY w Y   d S r  )r  r.  r/  r1  r  r  ry   rQ   r=  s          ru   test_empty_casesz$TestPowerDivergence.test_empty_casesH  s     $d++$&& 	, 	,''
DJ	49, , ,	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s   0A&&A*-A*c                 R   t           d         j        }t           d         j        }t           d         j        }t           d         j        }|                    d          j        }|                    ||          }t          j        ||||d          }d}t          |||           d S )Nr   r   rN   r&  r$  r  r  )
r@  r  r  ry   rQ   r  rO   rc   r)  r   )	rm   r  r  r  ry   rQ   rO   r   r   s	            ru   'test_power_divergence_result_attributesz;TestPowerDivergence.test_power_divergence_result_attributesU  s    "1%+"1%+!!$)!!$)

2$

5
.. $5D*.	C C C,
C333333r   c                    |                     ddgddgg          }|                     ddgddgg          }d}t          j        t          |	          5  t	          j        ||                     dd
g                     d d d            n# 1 swxY w Y   t          j        t          |	          5  t	          j        ||d           d d d            n# 1 swxY w Y   t	          j        ||          \  }}t          ||                     ddg                     t          ||                     ddg                     d S )Nr   r        >@rF   r*  g     A@g      9@For each axis slice...r         N@r  r  r   )r  r  rQ   g̑m@gUUU@gj^4;?g4;?)r  r  r   r   rc   r)  r'   )rm   r  r  r  rZ  r/  rD  s          ru   test_power_divergence_gh_12282z2TestPowerDivergence.test_power_divergence_gh_12282c  s   

S#Jc
344

RISz233*]:W555 	N 	N"bjj#s6L6LMMMM	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N 	N]:W555 	E 	E"e!DDDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E+%uEEE
dbjj*j)ABBCCCbjj*j)ABBCCCCCs$   ,BBB2CCCc           	      ,   |                     g d          }d}|                    d|j        d         dz             }|                    |                    |          |                    |                    ||z                      z            }|                    |||z  z             }t          |          }|                    ||j        d d f         ||j        d d f         f          j	        }|                     g d          }	|
                    |	d          }	t          |	j        d                   D ]V}|	|df         |	|df         }}
t          j        |d d df         |d d df         |
          \  }}t          ||d	
           Wd S )N)r*  r         ,@g      1@rF   r   r   r  r\  r   r  r   r   r   rV  r   r   r  g*kqr   r   ) g      $g    @r  g     r@r{  gffffffP@g       gLD@r~  g      A@r  g     =@r}  g     :@r   g8@r8   gffffff7@gq=
ףp?g7@r   g333336@r9   g6@r-  gfffff6@r   g8@rF   g     A@r   g     j@)r^   r/   r   r%  g{Gzt?rA  )r  r   r  r  r  expr)   rD  rB  r~  rg   r  rc   r)  r'   )rm   r  obsbetar  r  expected_countsrC  table4table5r%  r-  r/  r  s                 ru   /test_power_divergence_against_cressie_read_datazCTestPowerDivergence.test_power_divergence_against_cressie_read_datap  s    jj @ @ @ A AIIb#)A,+,,rvvc{{RVVBFF46NN%;%;;<<&&a00 "#&&W_aaa%7!8!0!!!1C!D!F G GGH 	      & FG,,v|A'' 	< 	<A%+AqD\6!Q$<]G,VAAAaC[&1+5<> > >GD!D-d;;;;;		< 	<r   N)r   r   r   r1  r  r  r  r@  r  r  rK  power_div_empty_casesrM  rO  rU  r_  r   r   ru   r"  r"    s7       @ @ @B [V%788[]	. 	. 	./ /@ @	/ / 98
@- - -:#' #' #'J [V%:;;[]	. 	. 	./ /, ,	/ / <;
,4 4 4D D D.< .< .< .< .<r   r"  c                   `    e Zd Zd Zej                            dddg          d             ZdS )TestChisquarec                     t          t          d          5  |                    ddg          }|                    ddg          }t          j        ||           d d d            d S # 1 swxY w Y   d S )NrR  r   r   r  rQ  rS  rT  )r   r   r  rc   r*  )rm   r  r  r  s       ru   test_gh_chisquare_12282z%TestChisquare.test_gh_chisquare_12282  s     :-EFFF 	6 	6JJSz**EJJSz**EO%u5555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6s   AA))A-0A-zn, dtype)r  rE  )i@B rb  c           	         t          ||          }|                    |dg|          }|                    |dz  |dz  g|          }t          j        ||          }|\  }}t	          ||                    ||                    d          j                  d           t          |j        |           t          |j        |           d S )Nr   rN   r/   r   r  rA  )	r  r  rc   r*  r'   rO   r(   r   r   )	rm   r  rO   r  rZ  rY  r   r/  r  s	            ru   #test_chiquare_data_types_attributesz1TestChisquare.test_chiquare_data_types_attributes  s     E""jj!Quj--jj!q&!q&)j77oc3''abjj"**R..2FjGGeTTTTt,,,
A&&&&&r   N)r   r   r   rd  r  r  r  rf  r   r   ru   rb  rb    sX        6 6 6 [Z.:L)MNN
' 
' ON
' 
' 
'r   rb  c                   Z    e Zd Zej                            d          d             Zd ZdS )TestChisquareMAr  c           	         t          j        g dg dg          j        }t          j        g dg dg          j        }t           j                            ||          }t          j        ddg          }t          j        ddt          j        d          z  d	t          j        d
          z  z   z  ddt          j        d          z  dt          j        d          z  z   z  g          }t          j        j        }t          j	        |          \  }}t          j        ||           t          j        ||                    ||                    d          dz
                       t          j        |d          \  }	}t          j        |	|d           t          j        ||                    ||                    d          dz
                       t          j	        |j        d          \  }}t          j        ||           t          j        ||                    ||j                            d          dz
                       t          j        |j        dd          \  }	}t          j        |	|d           t          j        ||                    ||                    d          dz
                       t           j                            g dg d          }
t           j                            g dg d          }t          j	        |
|          \  }}t          j        |d           t          j	        t           j                            g d          d           \  }}t!          t#          |t           j                             t!          t#          |t           j                             t'          |d           t)          |t          j        j                            dd                     t          j        d          5  t-                      5 }|                    t0          d            t          j	        t           j                            g                     \  }}d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t!          t#          |t           j        j                             t'          |j        d!           t!          |j                   t           j                            g g g g          }t          j	        |          \  }}t!          t#          |t           j        j                             t          j        |g            t          j        d          5  t-                      5 }|                    t0          d            t          j	        |j                  \  }}d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t!          t#          |t           j        j                             t'          |j        d"           t!          t          j        |j                             d S )#N)r5   r5   r       r^   )r^   r^   r0   r1   r2   )r   r   r   r   r   )r   r   r   r   r   g      8@r8   r/   r   rj  r-  r0   r  r2   rG  r   rP   r   r6  rX  r  rR   )rQ   r%  )r0   r2   r3   r  rX   )r   r   r   r   r   r  )r/   r1   r5   rX   r  )r  rT  r   r  r  r`   r   r  )ri   r   r~  r  r  r  rc   r+  r  r*  matr	   r   r,  r+  r)  r   rg  r   r   r   r  r   r   rl   MaskedArrayr  r  r  )rm   rZ  r  mobsexpected_chisq
expected_gr  chisqr  gobs1exp1rt   empty3s                 ru   test_chisquare_masked_arraysz,TestChisquareMA.test_chisquare_masked_arrays  s    h***,=,=,=>??Ax///:;;=u!!#t,,4+..Xq#bfSkk/Brvc{{N"BC !BF4LL.1RVD\\>"ABD E E
 "'?4((qun555%a151C1Ca1G*I *I 	J 	J 	J %d4DEEE1%aR@@@@%a151C1Ca1G*I *I 	J 	J 	J ?46222qun555%a1511E1E1I*K *K 	L 	L 	L%df1>NOOO1%aR@@@@%a151C1Ca1G*I *I 	J 	J 	J u{{,,,???{CCu{{,,,???{CC/$d333a 	t_555 ?25;;www#7#7dCCCq
5"*--...
1bj))***UC   Au27::3BBCCC [*** 	< 	<"$$ <

>+@AAA ?25;;r??;;q< < < < < < < < < < < < < < <	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	
5"%"344555U["%%%
bBZ(( ?6**q
5"%"344555ub))) [*** 	5 	5"$$ 5

>+@AAA ?6844q5 5 5 5 5 5 5 5 5 5 5 5 5 5 5	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5
 	
5"%"344555U[$'''uz""#####sm   R+AR;RR	RR	RR"%R"W78W W7 W$	$W7'W$	(W77W;>W;c                    t          j        g d          }t           j                            |          }d}t	          j        t          |          5  t          j        |           d d d            n# 1 swxY w Y   t	          j        t          |          5  t          j        ||           d d d            d S # 1 swxY w Y   d S )NrP  z8`power_divergence` and `chisquare` support for masked...r   )	ri   r  r  r  r  r  DeprecationWarningrc   r*  )rm   r  r  rZ  s       ru   test_deprecation_warningz(TestChisquareMA.test_deprecation_warning  s6   J|||$$U""L\,G<<< 	  	 OB	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 \,G<<< 	# 	#OAr"""	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s$   A44A8;A8B==CCN)r   r   r   r  r  r  ru  rx  r   r   ru   rh  rh    sR        [ <==H$ H$ >=H$T# # # # #r   rh  c            	         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          j        | d         | d         | d         | d                   d           t          t          j        |d         |d         |d         |d                   d           t          t          j        |d         |d         |d         |d                   d           t	          t
          t          j        |d         |d                    d}t          j        |  }t          ||           t          t          j        | d         | d         | d         | d                   d           t          t          j        |d         |d         |d         |d                   d           t	          t
          t          j        |d         |d                    d S )N)g"~j?g^I+?gI+?gjt?gMbX9?gʡE?x&?-?g?r   gGz?g+?gv?g9v?)g~jt?gx?gOn?rz  g"~j?n?gK7A`?r{  g7A`?r   bX9?gZd;O?g1Zd?gK?)gy&1?gzG?g`"?g!rh?g'1Z?gZd;O?grh|?gjt?gʡE?r   gzG?gS?gJ4?gʡE?)gK7?gh|?5?gl?g/$?g#~j?r|  gQ?      ?g      ?r   r}  g rh?g333333?g
ףp=
?)r1   r0   r2   r0   r2   r0   r/   r2   r1   r1   r1   r0   )r/   r/   r   r/   r0   r   r/   r0   r/   r   r   r0   )r/   r1   r0   r0   r1   r0   r0   r1   r1   r   r/   r   )r0   r2   r1   r0   r1   r1   r0   r0   r0   r1   r1   r1   )r  g#@r@   rU  g$@)g333333@g@g@r;   g@)rY  r]  r=   r   @)g!@g!@333333 @ffffff
@g333333"@r   r   r/   r0   )gNt$@gBv?)g
__2@g5"]i2?)g\(\%@g+ԋ?r  )r   r   rc   friedmanchisquarer   r   r   mstats)rB  rC  rO  r   r   s        ru   test_friedmanchisquarer    s   
  8 8 8 9 9
 9 9 9 : :
 : : : ; ;
 9 9 9 : :
;B )))
*
*
)))
*
*
)))
*
*
)))
*
*
,B &&&
'
'
%%%
&
&
%%%
&
&
%%%
&
&
(B
 e5beBqE"Q%1NNDF F Fe5beBqE"Q%1NNFH H He5beBqE"Q%1NN9; ; ;*e5beBqEBBB )J

!2
&CZ((( f6r!ube79!ubeE EDF F F f6r!ube79!ubeE E9; ; ; *f6r!uRUCCCCCr   c                   6    e Zd ZdZ	 d
dZd
dZd Zd Zd Zd	S )
TestKSTestzLTests kstest and ks_1samp agree with K-S various sizes, alternatives, modes.autorV   c                     t          j        |d||          }t          j        ||g          }t	          t          j        |          ||           d S Nr  r@  r  rR   )rc   kstestri   r   r   	rm   r   r@  expected_statisticexpected_probr  rS   rH  rd  s	            ru   _testOnezTestKSTest._testOneK  sT    a[tLLL8/?@@!"(6"2"2HgNNNNNNr   c                     t          j        |d||          }t          j        |t           j        j        ||          }t          t          j        |          ||           d S r  )rc   r  ks_1sampr  cdfr   ri   r   )rm   r   r@  r  rS   rH  result_1samps          ru   _test_kstest_and_ks1sampz#TestKSTest._test_kstest_and_ks1sampQ  se    a[tLLL~a2=DJ J J!"(6"2"2L'RRRRRRr   c                     t          j        ddd          }d}t          j        |d          }t	          ||           d S )Nr^   r   r6   r  r  )ri   re  rc   r  r   rm   r   r   r   s       ru   test_namedtuple_attributesz%TestKSTest.test_namedtuple_attributesW  sA    KAq!!,
l1f%%C,,,,,r   c                 J   t          j        ddd          }|                     |d           t          j        ddd          }|                     |d           g d}|                     |d           |                     |dd	
           |                     |dd	
           d S )Nr^   r   r6   r7  r  
r  gQ?g333333g(\?gQ?g(\ſg{GzgHzG?g\(\gGzr;  rY  r  r9  )ri   re  r  r  s     ru   test_agree_with_ks_1sampz#TestKSTest.test_agree_with_ks_1samp^  s    KAq!!%%a555KR##%%a555NNN%%a555%%a%AAA%%ag%>>>>>r   c                    t           j         ddt           j        g}t          j        |t          j        j                  }t          j        |t          j        j        d          }t          j        t          j        |                    sJ t          ||           t          j	        |j
                  rJ t          j	        |j                  rJ d S )Nr   r   T)_no_deco)ri   r  rc   r  cauchyr  r  r  r   r  r   r   )rm   r  r   rs  s       ru   test_pm_inf_gh20386zTestKSTest.test_pm_inf_gh20386j  s     Arv&l4!122l4!1DAAAvbk#&&'''''S#8CM*****8CJ'''''''r   Nr  rV   )	r   r   r   r   r  r  r  r  r  r   r   ru   r  r  H  s|        VV ')O O O OS S S S- - -
? 
? 
?	( 	( 	( 	( 	(r   r  c                       e Zd ZdZ	 ddZd Zd Zd Zd Ze	j
                            d	ej        ej        g          e	j
                            d
g d          d                         ZdS )TestKSOneSamplezY
    Tests kstest and ks_samp 1-samples with K-S various sizes, alternatives, modes.
    r  rV   c                     t          j        |t           j        j        ||          }t	          j        ||g          }t          t	          j        |          ||           d S )Nr  rR   )rc   r  r  r  ri   r   r   r  s	            ru   r  zTestKSOneSample._testOne}  sY    5:>{QUVVV8/?@@!"(6"2"2HgNNNNNNr   c                     t          j        ddd          }d}t          j        |t          j        j                  }t          ||           d S )Nr^   r   r6   r  )ri   re  rc   r  r  r  r   r  s       ru   r  z*TestKSOneSample.test_namedtuple_attributes  sE    KAq!!,
nQ
//C,,,,,r   c                 ^   t          j        ddd          }|                     |ddd           t          j        ddd          }|                     |dd	d
           g d}|                     |ddd           |                     |dddd           |                     |dddd           d S )Nr^   r   r6   r7  g|N?g7.s?r  r  g{CTp?g M<b*?r  gZL?g86J4?r;  g+?rY  r  r9  gHD?gr?ri   re  r  r  s     ru   test_agree_with_rz!TestKSOneSample.test_agree_with_r  s    KAq!!a&9;NOOOKR##a&9;OPPPNNNa&79JKKKa$57HwWWWa!24EGTTTTTr   c                     t           j                            ddd          }|                     |dddd	           |                     |d
dd           |                     |ddd           d S )Nrc  rb  h:)rt  r.   rf  r7  ghх?g7?asympr  r9  g^h?r;  gv!ԉ}?g*z)?)rc   r  rg  r  r  s     ru   test_known_examplesz#TestKSOneSample.test_known_examples  s}    JNNs9NEEa&9;O" 	 	$ 	$ 	$a!46JKKKa$9;NOOOOOr   c           	         t          t          j        t          t          j        dd                               t          t          d          5  t          ddd           d d d            n# 1 swxY w Y   t          t          j        t          ddd                               t          j        g d          }t          t          |dd	          	                    t          t          t          g
           d S )Nr   Tzn is not integral: 1.5r   r9   r^   ))r
  r   Tr   )r
  皙?Tr   )r
  r   Tr   )r
  gTr   )rj        ?Tr   )rj  r  Fr   )rj  r8   Tgb?)rj  r8   FgiNq>)rj        ?Tgv(?)rj  r  TgT	?)@  g\(\?Fr   )r        ?Fg(>)r  gQ?Fg@c?)r        ?FgX+ʳP?r'  r0   )dtypes)r   ri   r  r   rj   r   r   r  r   checkintrN  bool)rm   datasets     ru   test_ks1samp_allpathsz%TestKSOneSample.test_ks1samp_allpaths  s   D1122333:-EFFF 	" 	"CD!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"Q--..///* 
 
 
  4 	'9a0066sE4>P6QQQQQs   A//A36A3ksfunc*alternative, x6val, ref_location, ref_sign))r;  r3   r3   r   )r9  r4   r4   r^   )r7  r3   r3   r   )r7  r4   r4   r^   c                     t          j        d          dz   }||d<   t          j        d          j        } ||||          }t          |j        dd           |j        |k    sJ |j        |k    sJ d S )	NrX   r8   r3   r3  r?  r  r   rA  )	ri   r   rc   r6  r  r   r   statistic_locationstatistic_sign)	rm   r  r@  x6valref_locationref_signr   r  r   s	            ru   test_location_signz"TestKSOneSample.test_location_sign  s     IbMMC!m"%%%)fQ555s7777%5555!X------r   Nr  )r   r   r   r   r  r  r  r  r  r  r  r  rc   r  r  r  r   r   ru   r  r  x  s         
 ')O O O O- - -U U UP P P!R !R !RF [Xen'EFF[I7 7 78 8

. 
.8 8 GF
. 
. 
.r   r  c                      e Zd ZdZ	 ddZd Zd Zd Zd Zd Z	d	 Z
d
 Zej        j        d             Zej        j        d             Zd Zd Zej        j        d             Zej        j        d             Zej        j        d             Zd Zej        j        d             Zej                            dg dgfdgg fg g ff          d             Zej        j        d             Zd Zej                            dej        ej        g          ej                            dg d          d                         Z dS )TestKSTwoSamplesz<Tests 2-samples with K-S various sizes, alternatives, modes.r  c                     t          j        ||||          }t          j        ||g          }t	          t          j        |          |           d S )Nr  )rc   ks_2sampri   r   r   )	rm   rB  rC  r@  r  r  r  rH  rd  s	            ru   r  zTestKSTwoSamples._testOne  sO    B$???8/?@@!"(6"2"2H=====r   c                 J   |                      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   r7  r   r;  r8   r9  r   )r  r  s    ru   	testSmallzTestKSTwoSamples.testSmall  s    qcA3UC888qcA3	5#666qcA3s333qcA3UC888qcA3	5#666qcA3s33333r   c                    t          j        ddg          }|dz   }|dz
  }t          j        g d          }|                     ||ddd           |                     ||ddd           |                     ||d	dd           |                     ||dd
d           |                     ||dd
d           |                     ||d	dd           d S )Nr   r-  ri  rP  r7  r  r;  r  r9  r  r  r  r   ri   r   r  rm   r  data1pdata1mr  s        ru   testTwoVsThreezTestKSTwoSamples.testTwoVsThree  s    #s$$))fe['3???feY===feVWc:::fe['3???feY===feVQ44444r   c                    t          j        ddg          }|dz   }|dz
  }t          j        g d          }|                     ||ddd           |                     ||ddd	           |                     ||d
dd           |                     ||ddd           |                     ||ddd           |                     ||d
dd           d S )Nr   r-  ri  r  r7  r8   g?r;  g?r9  r  皙?r  r  rc  r   r  r  s        ru   testTwoVsFourzTestKSTwoSamples.testTwoVsFour  s    #s$$---..fe['7CCCfeY@@@feVWg>>>fe['6BBBfeY@@@feVQ44444r   c                 ~   t          j        ddd          }|dz   dz   }|dz   dz
  }|                     ||ddd           |                     ||ddd	           |                     ||d
dd           |                     ||ddd           |                     ||ddd           |                     ||d
dd           d S )Nr   rb  r/   r  r7  r  g~z?r;  gz;.B?r9  r   r   {Gz?gn2IU?r  )rm   x100	x100_2_p1	x100_2_m1s       ru   test100_100zTestKSTwoSamples.test100_100  s    {1c3''1HsN	1HsN	dI{I?QRRRdIy)=OPPPdIvq#666dI{IsCCCdIy)=NOOOdIvq#66666r   c                    t          j        ddd          }t          j        ddd          }|dz   dz   }|dz   dz
  }|                     ||ddd           |                     ||d	dd
           |                     ||ddd           |                     ||ddd           |                     ||d	dd           |                     ||ddd           d S )Nr   rb  r  r  r  r7  g?g@߿?r;  g}n?r9  r   g:[?g]O);?gѫ);?r   r   r  )rm   r  x110
x110_20_p1
x110_20_m1s        ru   test100_110zTestKSTwoSamples.test100_110  s    {1c3''{1c3''BY_
BY_
dJ\CWXXXdJ	<AUVVVdJ1555dJ\CWXXXdJ	<AUVVVdJS99999r   c                 t   t          j        dgdz  dgdz  z   dgdz  z   dgdz  z   t                    }|dz   }t          j        dgdz  dgdz  z   dgdz  z   dgdz  z   t                    }t          j        dgdz  dgdz  z   dgdz  z   d	gdz  z   t                    }|                     ||d
dd           |                     ||ddd           |                     ||ddd           |                     ||d
dd           |                     ||ddd           |                     ||ddd           d S )Nr/   r0   r1   r2   r3   rN   r   rX   r4   r7  g      ?g^dH?r;  gQl6y?r9  r   r   gVdEVdE?g(f^?g!?gii?g+ ϖ?)ri   r   r  r  )rm   x2233x3344x2356x3467s        ru   testRepeatedValuesz#TestKSTwoSamples.testRepeatedValues  sc   !qA37*aS1W4sQw>cJJJ	!qA37*aS2X5a?sKKK!rQC!G+qcBh6!q@LLLeUK9KLLLeUIv7JKKKeUFFC888eUK>PQQQeUI{<NOOOeUFJ8JKKKKKr   c                 *   t          j        g d          }|                     ||dz   ddd           |                     ||dz   ddd           |                     ||dz   dd	d           |                     ||d
z   ddd           |                     ||d
z   ddd           |                     ||d
z   dd	d           |                     ||d
z
  ddd           |                     ||d
z
  dd	d           |                     ||d
z
  ddd           d S )NrP  r   r7  r  r   r;  r  r9  r   r8   r  )rm   r  s     ru   testEqualSizeszTestKSTwoSamples.testEqualSizes%  s)   ))eU1Wk5#>>>eU1Wi===eU1WfeR888eU3YUC@@@eU3Y	5$???eU3Yr:::eU3YUC@@@eU3Y	5#>>>eU3Yt<<<<<r   c           	         d\  }}d|z  |z  dz  dz  }t          j        dd|          |z
  }t          j        dd|          }|                     ||dd|z  |z  dd	           |                     ||dd|z  |z  dd
	           |                     ||dd|z  |z  dd
	           |                     ||dd|z  |z  dd
	           t                      5 }d}|                    t
          |           |                     ||dd|z  |z  dd	           |                     ||dd|z  |z  dd	           d d d            n# 1 swxY w Y   t          j        d          5 }t          j        d           |                     ||dd|z  |z  dd	           t          |t
          d           d d d            d S # 1 swxY w Y   d S )N)rr  iX  r   r/   r   r  r7  g     @@r  r  r  r;  g2JE?r9  g     @@gsW\nc?)ks_2samp: Exact calculation unsuccessful.rY  Tr+  r,  
ri   re  r  r   r   rl   r.  r/  r0  r  	rm   n1n2deltar   rn   rt   rZ  r<  s	            ru   testMiddlingBothz!TestKSTwoSamples.testMiddlingBoth1  s    BBr	!AK3##e+K3##aK"r)93! 	 	# 	# 	#aK"r)93" 	 	$ 	$ 	$aIv{R'79K" 	 	$ 	$ 	$aFEBJO5G" 	 	$ 	$ 	$   	(CAGJJ~w///MM!Q	6B;+;=O&  ( ( (MM!Q
R9K&  ( ( (	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( $D111 	2Q!(+++MM!Q
R9K&  ( ( (A~q111		2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2&   A EEE!AF::F>F>c           	         d\  }}d|z  |z  dz  dz  }t          j        dd|          |z
  }t          j        dd|          }|                     ||dd|z  |z  dd	           |                     ||dd|z  |z  dd
	           |                     ||dd|z  |z  dd	           |                     ||dd|z  |z  dd	           t                      5 }d}|                    t
          |           |                     ||dd|z  |z  dd	           |                     ||dd|z  |z  dd	           d d d            n# 1 swxY w Y   t          j        d          5 }t          j        d           |                     ||dd|z  |z  dd	           t          |t
          d           d d d            d S # 1 swxY w Y   d S )N)rc  L  r   r/   r   r  r7  g     ȹ@r  r  r  r;  gZ?r9  g     @@g@J?r  rY  Tr+  r,  r  r  s	            ru   testMediumBothzTestKSTwoSamples.testMediumBothM  s    BBr	!AK3##e+K3##aK"r)93" 	 	$ 	$ 	$aK"r)93! 	 	# 	# 	#aIv{R'79K" 	 	$ 	$ 	$aFFRK"$46H" 	 	$ 	$ 	$    	(CAGJJ~w///MM!Q	6B;+;=O&  ( ( (MM!Qb(8:L&  ( ( (	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( $D111 	2Q!(+++MM!Qb(8:L&  ( ( (A~q111		2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2r  c                 <   d\  }}|dz  }d|z  |z  dz  dz  }t          j        dd|          |z
  }t          j        dd|          }|                     ||dd	|z  d
           |                     ||dd|z  d           |                     ||dd	|z  d           d S )N)'  r  r   r   r/   r   r  rb  r7  g    `@g      <r;  g     @g򼉷?r9  gimb:r  )rm   r  r  lcmr  r   rn   s          ru   	testLargezTestKSTwoSamples.testLargej  s    BgBr	!AK3##e+K3##aK38NOOOaIus{4GHHHaFGcM3IJJJJJr   c                 6   t           j                            d           t           j                            d          }t           j                            d          dz  }|                     ||dddd	
           |                     ||dddd
           d S )N@ i  rd  i  r9   r7  gC?      <r  r  rY  ri   rl  r  rn  r  r  s      ru   test_gh11184zTestKSTwoSamples.test_gh11184u  s    
	vI$''I$''#-aK)<>T" 	 	$ 	$ 	$aK)<>T" 	 	$ 	$ 	$ 	$ 	$r   c                    t           j                            d           t           j                            d          }t           j                            d          dz  }|                     ||dddd	
           |                     ||dddd
           |                     ||dddd	
           |                     ||dddd	
           d S )Nr  r  rd  i'  r9   r7  g 	_r!?gAD5r  r  r  rY  r;  gלN#y7r9  gvqw?r  r  s      ru   test_gh11184_biggerz$TestKSTwoSamples.test_gh11184_bigger  s     		vI%((I%((3.aK)<>T" 	 	$ 	$ 	$aK)<>T" 	 	$ 	$ 	$aI':<R" 	 	$ 	$ 	$aF$79O" 	 	$ 	$ 	$ 	$ 	$r   c                    t           j                            d           t          ddd          D ]}t           j                            |          }t           j                            |dz   d          }t          j        ||d	          j        }t          j        ||d
	          j        }t          |d|z             t          |d|z             d S )Nr  rc  i.  rd  rX   r8   r.   rt  rY  r  r  r0   )	ri   rl  r  r  rn  rc   r  r   r   )rm   r   vals1vals2rY  r  s         ru   test_gh12999zTestKSTwoSamples.test_gh12999  s    
	vtUD)) 	0 	0AI$$1$..EI$$1r6$<<EN5%g>>>EEN5%g>>>EEeQY///eQY////	0 	0r   c           	         d\  }}|dz  }d|z  |z  dz  dz  }t          j        dd|          |z
  }t          j        dd|          }|                     ||dd|z  d	d
           |                     ||dd|z  dd           |                     ||dd|z  d	d           |                     ||dd|z  d           |                     ||dd|z  d           t                      5 }d}|                    t
          |           |                     ||dd|z  dd           |                     ||dd|z  dd           d d d            d S # 1 swxY w Y   d S )N)r  i*  r   r   r/   r   r  r7  g     @gkHY?r  r  gLɔ.?rY  r  r;  g.LbG2?r9  r   gr?֎?r  )ri   re  r  r   r   rl   )	rm   r  r  r  r  r   rn   rt   rZ  s	            ru   testLargeBothzTestKSTwoSamples.testLargeBoth  s    BgBr	!AK3##e+K3##aK6H" 	 	$ 	$ 	$aK6H" 	 	$ 	$ 	$aK6H! 	 	# 	# 	#aIus{4FGGGaFD3J0BCCC   	(CAGJJ~w///MM!Q	53;8J&  ( ( (MM!Qs
4F&  ( ( (	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(s   (AEEEc                 Z    d}t          j        ddgdg          }t          ||           d S )Nr  r   r/   r0   )rc   r  r   rm   r   r   s      ru   testNamedAttributesz$TestKSTwoSamples.testNamedAttributes  s4    ,
naVaS))C,,,,,r   c           	         ddl m}m}  |dddd            |dddd           t          j        d          5  t          t          |dd	dd           t          t          |d
ddd           d d d            d S # 1 swxY w Y   d S )Nr   )_count_paths_outside_method!_compute_outer_prob_inside_methodr   rc  i  r   r  r  iK  r  )scipy.stats._stats_pyr  r  ri   r  r   FloatingPointError)rm   r  r  s      ru   test_some_code_pathsz%TestKSTwoSamples.test_some_code_paths  s   	
 	
 	
 	
 	
 	
 	
 	

 	*)!Q1555##D!Q555[))) 	, 	,,.Ia, , ,,.Ia, , ,	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	, 	,s   3A::A>A>r2  r   c                    t          j        t          t                    5  t	          j        | }t          |j        t          j	                   t          |j
        t          j	                   d d d            d S # 1 swxY w Y   d S r  )r  r  r   r   rc   r  r   r   ri   rj   r   rm   r2  r   s      ru   test_argument_checkingz'TestKSTwoSamples.test_argument_checking  s     \,4IJJJ 	- 	-.$'C///RV,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-   AA;;A?A?c                 &   t           j                            d           d}t          j                            |dd          }|dz   }t          j        ||dd           t          j        ||d	d           t          j        ||d
d           dS )zEnsure gh-12218 is fixed.Na i    r   r   r  r;  r  r  r9  r7  N)ri   rl  r  rc   r6  rg  r  )rm   r  rvs1rvs2s       ru   test_gh12218zTestKSTwoSamples.test_gh12218  s    
 		x   }  bb ::axtTywGGGGtTvGDDDDtT{IIIIIIr   c                 l   t           j                            d          }|                    d          dz   }|                    d          }d}t          j        t
          |          5  t          j        ||d	
          }t          |j	        dd           d d d            d S # 1 swxY w Y   d S )Ni{fr  iq  rd  r8   iq  z(ks_2samp: Exact calculation unsuccessfulr   r9  r?  r   r  r  )
ri   rl  RandomStater  r  rl   rc   r  r   r   )rm   rq  r  r  rZ  r   s         ru   test_warnings_gh_14019z'TestKSTwoSamples.test_warnings_gh_14019  s     i###22


$$s*


$$<\.888 	7 	7.6BBBCCJ6666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7s   -/B))B-0B-r  r  ))r;  皙@r  r   )r9  ffffff@rV  r^   )r7  r  r  r   )r7  r  rV  r^   c                     t          j        dt           j                  }|                                }||d<   t	          j        |||          }|j        dk    sJ |j        |k    sJ |j        |k    sJ d S )NrX   rN   r3   r?  r  )	ri   r   r   r*   rc   r  r   r  r  )	rm   r  r@  r  r  r  r   rn   r   s	            ru   r  z#TestKSTwoSamples.test_location_sign  s     Ib
+++FFHH!nQ{;;;}####%5555!X------r   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  rc   r  r  r  r   r   ru   r  r    sw       FF > > > >4 4 4
5 
5 
55 5 5	7 	7 	7: : :
L 
L 
L
= 
= 
= [2 2 26 [2 2 28	K 	K 	K$ $ $ [$ $ $ [	0 	0 	0 [( ( (.- - - [, , ,  [VrA3i1#rRH%EFF- - GF- [
J 
J 
J
7 
7 
7 [Xen'EFF[I; ; ;< <

. 
.< < GF
. 
. 
.r   r  c            	      x   d\  } }| |  g||gf}t          j        ddd          }t          j        ddd          }t          j        t          j        ddd          t          j        ddd          g          }t          j        t          j        ddd          t          j        ddd          g          }t          j        ||d          \  }}t          ||g| |f           t          j        |j        |j        d          \  }}t          ||g|           t          j        ||d          \  }}t          ||g|           t                      5 }	t          j        dd	          5  |		                    t          d
           t          j        dd          \  }}d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          t          j        |                     t          t          j        |                     d}
t          j        ||d          }t          ||
           t          j        |||g          }t          j        |||g          }t          j        ||d          \  }}t          t          j        |          |            t          t          j        |          |           t!          |j        d           t          j        t          j        |dd          t          j        |dd          d          \  }}t          t          j        |          |            t          t          j        |          |           t!          |j        d           t'          t(          t          j        ||d           t          j        ||dd          \  }}t+          |d|dz  z
             t+          ||            t          j        ||dd          \  }}t+          ||dz             t+          ||            t           j                            d          }t          j                            ddd|          }t           j        |d<   t          j                            ddd|          t          j                            dd|          z   }t           j        |d<   t          j        d          5  t7          t          j        ||          t           j        t           j        f           d d d            n# 1 swxY w Y   t          t          j        ||d           d!           t'          t(          t          j        ||d"            t'          t(          t          j        ||d#            t9          j        t          d$%          5  t          j        g d&g d'          \  }}d d d            n# 1 swxY w Y   t!          t          j        |          |ft           j        df           t          j        d          5  t!          t          j        g d&g d&          t           j        t           j        f           t          j        dt           j        gd(dgg          }t!          t          j        |t          j        d)                    dt           j        gdt           j        gf           d d d            n# 1 swxY w Y   t          j         d*          }t'          t(          t          j        |!                    d+          |!                    d,                     d- }t          j"        |          }t           j        |d d d.d/f<   t           j        |d d d0d1f<   t9          j        tF          tH          %          5  t          j        ||dd           \  } }d d d            n# 1 swxY w Y   t9          j        tF          tH          %          5  t          j        ||ddd2          \  }}d d d            n# 1 swxY w Y   t+          || d34           t          j        d          5  t+          | || |d          d34           d d d            n# 1 swxY w Y   t9          j        tF          tH          %          5  t          j        ||ddd2          \  }}d d d            n# 1 swxY w Y   t+          || d34           t          j        d          5  t+          | || |d          d34           d d d            d S # 1 swxY w Y   d S )5N)gu?gȵI?r   rb  r  gKX@r   rP   r  r  r  r  r   r  r  r/   r  r  r?  r9  r  r;  r  r2   rX     r  rr  rc  )ru  r.   rf  r  r   r   )ghm#1?gry̧?r   r   ry  r   r   r  r^   r  r  )r5   r0   r/   r0   r1   c                 L    | dk     r|dk    s| dk    r|dk    r|dz  S d|dz  z
  S Nr   r9  r;  r/   r   r   r  r  alts      ru   convertztest_ttest_rel.<locals>.convertW  <    EEcVmmQ3)3C3Cq5LAE{r   r  rI  r  r  r  r  rA  )%ri   re  r   rc   	ttest_relr   r~  r   r  r   rl   r   r  r   r  absr   r  r  r   r   r   rl  r  r  rg  rj   r	   r  r  r  rM  r   rg   	vectorizer   r   )trr  tprr  r  rvs1_2Drvs2_2Dr  r  rt   r   r   rvs1_3Drvs2_3Drq  r   rn   ananr#  	converters                       ru   test_ttest_relr0    sE   4EBrs8RG
C;qS!!D;tF3''DhAc#..D0L0LMNNGhD44bk!C6L6LMNNG
/$1
-
-
-CAaqeRG,,,
/')WYQ
7
7
7CAaqeC(((
/'7
3
3
3CAaqeC((( 
		 'K:::' '

>#FGGGr2&&1' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' BHQKKBHQKK )J
/$1
-
-
-CZ((( i122Gi122G
/'7
3
3
3CAabfQii,,,bfQii,,,&!!!?2;w155;w155 !# # #DAq bfQii,,,bfQii,,,&!!! *eotTwOOOO?4A6BBBDAqAq2a4x   Ar?4A9EEEDAqAr!tAr )


)
)C
1BSsCCAVAcF	ARc	D	D	c#	>	>
?AVAcF	X	&	&	& D D5?1a0026262BCCCD D D D D D D D D D D D D D D eoavFFFGI I I*eoq!HHHH*eoq!IIII 
n,E	F	F	F 5 5yyy)))4415 5 5 5 5 5 5 5 5 5 5 5 5 5 5"&))Q"&!---	X	&	&	& 1 1U_YYY			::RVRV<LMMM x!RVr1g.//U_T28F+;+;<<"&kArv;/	1 	1 	11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 		"A*eoqyy/@/@))I&&( ( (   W%%IGAAAr"uHGAAAr"uH	(0A	B	B	B I I'1HHHBI I I I I I I I I I I I I I I 
(0A	B	B	B F Fw*0fF F F1F F F F F F F F F F F F F F F Ar&&&&	X	&	&	& B B99RV445AAAAB B B B B B B B B B B B B B B 
(0A	B	B	B I Iw*0iI I I1I I I I I I I I I I I I I I I Ar&&&&	X	&	&	& E E99RY77eDDDDE E E E E E E E E E E E E E E E E Es   G,4F, G,F0	0G3F0	4GG
G:TTT)WWW"B1[[#&[#&___9`""`&)`&a>>bb)cccd//d36d3c                     t           j        dddg} g d}t          j        | |d          }t          j        || d          }t	          |j        |j         d           t	          |j        |j        d           t          j        |d	d          | d	d                    }t	          ||d           t	          |d
d           d S )Nr-  r   r  r   r-  r   r-  r   r   r   r  r   )r  grh|?-C6?)ri   rj   rc   r%  r   r   r   r   rn   r  r  r3s        ru   test_ttest_rel_nan_2nd_argr6  r  s    	c3AA	A&	1	1	1B	A&	1	1	1BBL2<-e<<<<BIryu5555 
122!""	&	&BB'''' B4000000r   c                  .   t          j        t          t                    5  t	          j        g g           } d d d            n# 1 swxY w Y   t          | t          j        j                  sJ t          | t          j        t          j        f           d S r  )r  r  r   r   rc   r%  rg  	_stats_pyTtestResultr   ri   rj   rH  s    ru   #test_ttest_rel_empty_1d_returns_nanr;         
(0E	F	F	F ) )R(() ) ) ) ) ) ) ) ) ) ) ) ) ) )feo9:::::"&"&)*****   AA
Azb, expected_shape)r   r2   r   r  r   r   r   )r0   r   c                    t          j        d          }t           j                                        5 }|                    t
          t                     t          j        || d          }d d d            n# 1 swxY w Y   t          |t          j
        j                  sJ t          j        |t           j                  }t          |j        |           t          |j        |           d S N)r0   r   r   r^   rP   r  )ri   rZ  r  r   r   r   r   rc   r%  rg  r8  r9  r}   rj   r   r   r   r  expected_shaper  rt   rH  expected_values         ru   test_ttest_rel_axis_size_zerorD        	A		%	%	'	' 03

%'<===AB///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 feo9:::::W^???N!>222/////   8A77A;>A;c                  .   t          j        d          } t          j        d          }t          j        | |d          }t	          |t          j        j                  sJ t          |j        j	        d           t          |j
        j	        d           d S N)r   r5   r   r2   r5   r   r   rP   r2   r   )ri   rZ  rc   r%  rg  r8  r9  r   r   r  r   r  r  rH  s      ru    test_ttest_rel_nonaxis_size_zerorL        
 	A
A_Q***Ffeo9:::::!'000$f-----r   r@  r  c                    t           j                            d          }d}|                    |dd          }|                    |dd          }ddgdt           j        gt           j         d	gd
}t          j        |||           }|                    d          }t          |||                     t          |j
        |dz
             d S )Nl   C67l:  rX   r9   r/   r  gZ?Ygi{a?g8 gC?r  r?  r  r  r   )ri   rl  rm  rn  r  rc   r%  r/  r   r   r  )r@  rq  r  r   rn   rs  r   rI  s           ru   test_ttest_rel_ci_1drO    s     )

 3
4
4C
A

s!
,,A

q
**A ,->?)262VG013 3C /!QK
8
8
8C		 	 $	 	7	7BBK()))1r   ztest_fun, argsrX   c                      | | }d}t          j        t          |          5  |                    d           d d d            d S # 1 swxY w Y   d S )Nr  r   rX   r  )r  r   r   r/  )test_funr  r   rZ  s       ru   test_ttest_ci_ivrR    s    
 (D/CDG	z	1	1	1 5 54445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s   AAAc                 <    dd} || |           |||          z   S )Nr   c                     t          j        |           } t          j        | |          }t          j        | |d          }| j        |         }|||fS )NrP   r   r|  )ri   r  rh   r   r  )r   rQ   mur   nobss        ru   _statsz_desc_stats.<locals>._stats  sP    JqMMWQT"""fQT***wt}3}r   r  r   )rB  rC  rQ   rW  s       ru   _desc_statsrX    s;        6"dffR....r   c            	         d} d}| |  g||gf}t          j        ddd          }t          j        ddd          }t          j        ||g          }t          j        ||g          }t          j        ||d          \  }}t          ||g| |f           t          t          j        t          ||           ||g           t          j        |j        |j        d          \  }}t          ||g|           t          |j        |j                  }	t          t          j        |	 ||g           t          j        ||d          \  }}t          ||g|           t          ||d          }	t          t          j        |	 ||g           t                      5 }
t          j
        d	
          5  |
                    t          d           t          j        dd          \  }}d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          t          j        |                     t          t          j        |                     t          j        |||g          }t          j        |||g          }t          j        ||d          \  }}t!          t          j        |          t          j        |                      t          t          j        |          |           t%          |j        d           t          j        t          j        |dd          t          j        |dd          d          \  }}t          t          j        |          t          j        |                      t          t          j        |          |           t%          |j        d           t+          t,          t          j        ||d           t+          t,          t          j        gt          |j        |j                  R ddi t          j        ||d          \  }}t/          |d|dz  z
             t/          ||            t          j        ||d          \  }}t/          ||dz             t/          ||            t          j        |j        |j        dd          \  }}t          |j        |j                  }	t/          t          j        |	ddi||g           t          j        |j        |j        dd          \  }}t          |j        |j                  }	t/          t          j        |	ddi||g           t           j                            d          }t          j                            ddd|          }t           j        |d<   t          j                            ddd|          }t          j
        d	
          5  t;          t          j        ||          t           j        t           j        f           d d d            n# 1 swxY w Y   t          t          j        ||d          d           t+          t,          t          j        ||d           t+          t,          t          j        ||d            t=          j        t          d!"          5  t          j        g d#g d$          \  }}d d d            n# 1 swxY w Y   t%          t          j        |          |ft           j         df           t          j
        d	
          5  t%          t          j        g d#g d#          t           j        t           j        f           t          j        dt           j        gd%dgg          }t%          t          j        |t          j!        d&                    dt           j        gdt           j        gf           d d d            n# 1 swxY w Y   t           j        |d d d d dd'f<   t           j        |d d d d d(d)f<   d* }t          j"        |          }t          j        ||dd          \  } }t          j        ||ddd+          \  }}t/          || d,-           t/          | || |d          d,-           t          j        ||ddd+          \  }}t/          || d,-           t/          | || |d          d,-           d S ).N	ru?g8Mѱ?r   rb  r2   i   r   rP   r  r  r  r  r   r  r/   r  r  r?  r@  r9  r;  r  r  rX   r  r  rr  r   r   )guͷ?g*,?r   r   ry  r   r   r  r^   r  r  r3   rZ   c                 L    | dk     r|dk    s| dk    r|dk    r|dz  S d|dz  z
  S r   r   r!  s      ru   r#  ztest_ttest_ind.<locals>.convertF  r$  r   r  r  rA  )#ri   re  r   rc   	ttest_indr   ttest_ind_from_statsrX  r~  r   r  r   rl   r   r  r  r   r&  r   r  r  r   r   r   rl  r  r  rg  rj   r	   r  r  r  rM  r'  )r(  r  r)  r  r  r*  r+  r  r  r  rt   r,  r-  rq  r   rn   r.  r#  r/  s                      ru   test_ttest_indr_    s	   	B	Bs8RG
C;qS!!D;qS!!Dhd|$$Ghd|$$G
/$1
-
-
-CAaqeRG,,,e8+dFJ;L ;L M !f& & & /')WYQ
7
7
7CAaqeC(((wy'),,De8$? !f& & &
/'7
3
3
3CAaqeC(((wa000De8$? !f& & & 
		 'R[%B%B%B ' '

>#FGGGr2&&1' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' BHQKKBHQKK i122Gi122G
/'7
3
3
3CAaq		26"::...bfQii,,,&!!!?2;w155;w155 !# # #DAq bfQii444bfQii,,,&!!! *eotTwOOOO*e8 Kwy')44K K KBIK K K ?46:::DAqAqBqDz"""Ar?49===DAqAr!tAr ?79giaVLLLDAqwy'),,D"D=f==1vG G G ?79giaYOOODAqwy'),,D"D@i@@1a&J J J )


)
)C
1BSsCCAVAcF
1BSsCCA	X	&	&	& D D5?1a0026262BCCCD D D D D D D D D D D D D D D eoavFFFHJ J J*eoq!HHHH*eoq!IIII 
n,E	F	F	F 5 5yyy)))4415 5 5 5 5 5 5 5 5 5 5 5 5 5 5"&))Q"&!---	X	&	&	& 1 1U_YYY			::RVRV<LMMM x!RVr1g.//U_T28F+;+;<<"&kArv;/	1 	1 	11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 6GAAAqqq"R%K&GAAAqqq!B$J   W%%I_WgqVDDDFB?7GQ6'-/ / /DAqAr&&&&AyyR00u====?7GQ6'02 2 2DAqAr&&&&AyyR33%@@@@@@sm   H.4G."H.G2	2H5G2	6HH	H	:XX X*[[[#B1_  _$'_$c                      e Zd ZdZej                            d            ej         ej        dez  dz            ej                            dez  dz            f          Z	 ej         ej        edz            dz   ej                            edz            f          Z
 ej        d          Z ej        d          dz   ZddgZddgZej                            d           ej                            d	dd
                              dd	          j        Zej                            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             Z d Z!d Z"d Z#d Z$ej        %                                d             Z&d  Z'd! Z(d" Z)dS )#Test_ttest_ind_permutationsr  r   r0   r1   rb  rX   r   r/   r2   rr  rs  r5   g'^P?gCq?g$R?)g=B?g?goŜ?gp?g'^?rQ   N)rf  rQ   	equal_varTr^   )rQ   rf  r  za,b,update,p_dc                    d dd}d dddd}|                     |           |                     |           t          j        ||fi |\  }}t          j        ||fi |\  }	}
t          ||	d           t          |
|           d S )NFrQ   rb  rc  r   )rQ   rb  permutationsrf  r2   )updaterc   r]  r   )rm   r  r  rf  p_d	options_a	options_pstat_ar1  stat_pr   s              ru   test_ttest_ind_permutationsz7Test_ttest_ind_permutations.test_ttest_ind_permutations  s    !66	!%)1> >	      OAq66I66	A;;;;!&&!444!&#.....r   c                    t           j                            d           d}t           j                            d|d          }t           j                            d|d          }ddd}|                    d           t          j        ||fi |}t          j        ||fi |}|                    d	           t          j        ||fi |}t          j        ||fi |}|                    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	        |         z   |	j	        |                    t          |j	        |          |j	        |          z   |	j	        |                     d S )Nr   r0   r/   r   rc  )rQ   re  r;  r?  r9  r7  r8   
ri   rl  r  r  rf  rc   r]  r   r   r   )rm   Nr  r  ri  res_g_abres_g_bares_l_abres_l_bares_2_abres_2_bar  s               ru    test_ttest_ind_exact_alternativez<Test_ttest_ind_permutations.test_ttest_ind_exact_alternative  sj   
	qINN1a##INN1a##55	Y///?1a55955?1a55955V,,,?1a55955?1a55955[111?1a55955?1a55955 	X');<<<X');<<< 	X'(*<)<===X'(*<)<===X'(*<)<=== 	X_ho666 	X_ho666X_ho666#%X_T*X_T-BB_T*	, 	, 	,X_dU+hote.DD_dU+	- 	- 	- 	- 	-r   c                    t           j                            d           d}t           j                            |          }t           j                            |          }t	          j        ||          }t	          j        ||d          }t	          j        ||d          }t	          j        ||t           j                  }|j        |j        k    sJ |j        |j        k    sJ |j        |j        k    sJ d S )Nr   r0   rc  re  )ri   rl  r  r  rc   r]  r  r   )rm   ro  r  r  r  rD  rE  rc  s           ru   test_ttest_ind_exact_selectionz:Test_ttest_ind_permutations.test_ttest_ind_exact_selection  s    
	qINN1INN1q!$$q!$777q!!444q!"&999{dk)))){dk)))){dk))))))r   c                    t           j                            d           t           j                            d          }t           j                            d          }t          j        ||f          }t          |          t          |          }}d}t          |||d          \  }}}t          t          |                    }	|	t          ||z   |          k    sJ t          |          |	k    sJ d S )Nr   r0   r1   r  T)	ri   rl  r  r  r  r5  r    setr   )
rm   r  r  r1  nanbre  t_statr1  n_uniques
             ru   !test_ttest_ind_exact_distributionz=Test_ttest_ind_permutations.test_ttest_ind_exact_distribution  s     		qINN1INN1~q!f%%QQB24r379 91 s6{{##5b"------6{{h&&&&&&r   c                    t           j                            d           d}t           j                            dd|          }t           j                            d|          }dddd}|                    d	           t          j        ||fi |}t          j        ||fi |}|                    d
	           t          j        ||fi |}t          j        ||fi |}t          |j        |j                   t          |j        |j                    t          |j        |j                    t          |j	        |j	        z   dd|d         dz   z  z              t          |j	        |j	        z   dd|d         dz   z  z              d S )Nr   rH  r/   r0   r^   rc  )rQ   re  rf  r;  r?  r9  r   re  rn  )	rm   ro  r  r  ri  rp  rq  rr  rs  s	            ru   #test_ttest_ind_randperm_alternativez?Test_ttest_ind_permutations.test_ttest_ind_randperm_alternative  s   
	qINN1a##INN1a  qII	Y///?1a55955?1a55955V,,,?1a55955?1a55955 	X');<<< 	X'(*<)<===X'(*<)<=== 	X_x6In59::	< 	< 	<X_x6In59::	< 	< 	< 	< 	<r   c                    t           j                            d           d}t           j                            |d          }t           j                            |d          }ddd}|                    d           t          j        ||fi |}|                    d           t          j        ||fi |}|                    d	           t          j        ||fi |}t          |j        |j        z   d
d
|d         d
z   z  z              |j        dk    }t          d|j        |         z  |j        |         d           t          dd
|j        |          z
  z  |j        |          d           t          d|j        |          z  |j        |          d           t          dd
|j        |         z
  z  |j        |         d           d S )Nr   rH  r1   r  re  rf  r;  r?  r9  r7  r   re  r8   r/   r  r  )
ri   rl  r  r  rf  rc   r]  r   r   r   )	rm   ro  r  r  ri  rp  rr  rt  r  s	            ru   $test_ttest_ind_randperm_alternative2z@Test_ttest_ind_permutations.test_ttest_ind_randperm_alternative2  s   
	qINN1a  INN1a  %*A>>	Y///?1a55955V,,,?1a55955[111?1a55955 	X_x6In59::	< 	< 	<
 #%HOD11 -D	: 	: 	: 	:Qxu556 .T	; 	; 	; 	;HOTE22 .T	; 	; 	; 	;Qxt445 -D	: 	: 	: 	: 	: 	:r   c                    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}|                    d	
           t          t          d          5  t          j	        ||fi |}d d d            n# 1 swxY w Y   t                      5 }|                    t          d           |                    d
           t          j	        ||fi |}t          j        |                              d          t          j        |                              d          z  }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        |j                  sJ t          j        |j                  sJ 	 d d d            d S # 1 swxY w Y   d S )Nr   rH  r2   r2   r   )r5   r/   )r6   r0   rc  r  r   r   r  r   r   r  rP   )ri   rl  r  r  rj   rf  r   r   rc   r]  r   rk   rl   r  r  r   r   r   r   r  )	rm   ro  r  r  ri  r   rt   r  rE  s	            ru   $test_ttest_ind_permutation_nanpolicyz@Test_ttest_ind_permutations.test_ttest_ind_permutation_nanpolicy  s   
	qINN1a  INN1a  &$&$&$&$%)1==	 	G,,,:-LMMM 	5 	5/!Q44)44C	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5 	5    	+CJJ~'7888444/!Q44)44C8A;;???**RXa[[__!_-D-DDD?1QQQX;!!!dU(IIyIIDD)26222t,bf555CJu-t{;;;CM4%0$.AAA /!''))QWWYYDD)DDC8CJ'''''8CM******#	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s%   C//C36C3F8KKKc                    t          t          d          5  t          j        | j        | j        d           d d d            n# 1 swxY w Y   t          t          d          5  t          j        | j        | j        d           d d d            n# 1 swxY w Y   t          t          d          5  t          j        | j        | j        ddd	           d d d            d S # 1 swxY w Y   d S )
NzPermutations must ber   r_   rx  r9   z'hello' cannot be usedr   hello)re  rf  rQ   )r   r   rc   r]  r  b2r  r  r  s    ru   'test_ttest_ind_permutation_check_inputszCTest_ttest_ind_permutations.test_ttest_ind_permutation_check_inputs=  s   :-CDDD 	? 	?ODGTW2>>>>	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	?:-CDDD 	@ 	@ODGTW3????	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@:-EFFF 	: 	:ODFDF)0q: : : :	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s5   "AA	A	&"BBB5$C&&C*-C*c                     d}t           j                            |d          }t           j                            |d          }t          j        ||d          j        }t          d|v           d|vsJ d S )NrX   r  r   rx  r   )ri   rl  r  rc   r]  r   print)rm   ro  r  r  p_valuess        ru   )test_ttest_ind_permutation_check_p_valueszETest_ttest_ind_permutations.test_ttest_ind_permutation_check_p_valuesF  st    INN1b!!INN1b!!?1aa888?c!"""(""""""r   )*r   r   r   ro  ri   rl  r  r  r   r  r  r  r  r  b3rc   r  rg  rg   r~  r  r  rg  p_d_genp_d_bigtolistr  rm  paramsr  r  r  rl  rv  ry  r  r  r  r  r  r  r  r   r   ru   ra  ra  Y  sY       
A INN1	929QqS!V$$bi&6&6qsAv&>&>?@@A	929QT??S(")*:*:1a4*@*@ABBA 
2B	2	B QB
QB INN1:>>ar"  $ $$+GCOOA 	:>>ar>44D<
 C~&G+ + +G 
A{C 	
acFA;$	
1aaa4!AqqqD'FD>3q62	
1aaa4		1QT7>>++fd^SVD	
A1--s3	
A	 5 5a 8 8!DDcJ	R+t$f-	tb!44g>	RS	
A	 5 5a 8 8!DDgN
F [-v66
/ 
/ 76
/(- (- (-T* * *' ' '&< < <: [: : :B"+ "+ "+H: : :# # # # #r   ra  c                      e Zd Zej                                        ej                            ddddddii gg d          ej                            d	d
dgd	dg          d                                     Zej                            ddddddii gg d          ej                            dddg          d                         ZdS )Test_ttest_ind_commonkwdsr  r   r  trimrc  )re  r  basic)idsrb  TFunequal_varc           	      (   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          j	        t          j
        |d          d
d          }t          j	        t          j
        |d          d
d          }|j        d d         }t          j        |          }t          j        |          }t          d |D              D ];}||         }||         }t	          j        ||fd	di|}|j        ||<   |j        ||<   <t          ||j                   t          ||j                   d S )Nr   r2   r1   r4   r   r3   r5   r/   rQ   r_   )r/   r0   r   r  r   r   r   r   r/   r   r^   r2   r   r1   r   r   r   c              3   4   K   | ]}t          |          V  d S r  r	  r  r  s     ru   	<genexpr>z=Test_ttest_ind_common.test_ttest_many_dims.<locals>.<genexpr>r  s(       9 9aq 9 9 9 9 9 9r   )ri   rl  r  r  rc   r]  r   r   r   r  tiler  rM  r   r   )rm   r  rb  r  r  r   r  r  r  r  r  rE  r   rn   r  
statisticspvaluesindicesxiyirc  s                        ru   test_ttest_many_dimsz*Test_ttest_ind_common.test_ttest_many_dimsS  sC    		qINN1aAq!,,INN1aAq))oa444t44 1aq!!!Q1aaa qqq!QQQ111}r277B7$77S]1aaaAqqq=1^	% 	% 	%SZ111aAAA.[	" 	" 	" K#566B??K#566B??Xe__
(5// 9 95 9 9 9: 	+ 	+G7B7B?2r;;;d;;D"&.Jw#{GG
CM222,,,,,r   )r  re  r  rQ   r^   c                 x   t           j                            dd                              d          }t           j                            dd                              d          }t           j        |d         d         d<   t           j        |d         d         d<   t          j        t          j        ||z   |	                    }t                      5 }t          j        d
          5  |	                    t          d           |	                    t          d           t          j        ||fd|i|}d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   t          j        |j                  }t          ||           t          j        |j                  }	t          |	|           d S )NrX   )r2   r0   rX   rd  rN  r   r/   r0   r3   rP   r  r  z'invalid value encountered in less_equalry  rQ   )ri   rl  randintra  rj   r  r  r   r  r   rl   rc   r]  r   r	   r   )
rm   r  rQ   r  r  rd  rt   r   p_nansstatistic_nanss
             ru   test_nans_on_axisz'Test_ttest_ind_common.test_nans_on_axis|  s     Ibz2299'BBIbz2299'BBV!Q
V!Q
 8BF1q5t44455    	;CX)F)F)F 	; 	;JJ~@B B BJJ~'@AAA/!Q::T:T::C		; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;
 #*%%68,,,#-00>844444s7   E.AE:EE
	
EE
	EE!$E!N)	r   r   r   r  r  r  r  r  r  r   r   ru   r  r  P  s?        [[VsA&N&N'-rlB&8!B!B!B  D D [[4-"-}!=  ? ?!- !-? ?D D !-F [VsA&N&N'-rlB&8!B!B!B  D D [Vb!W--5 5 .-D D5 5 5r   r  c            	       d   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             Zd Zd Z	ej                            dd          d             Z
d Zej                            dg d          d             ZdS ) Test_ttest_trimrT  r  r  g@9(?erc  )rx  g33333`@rZ   g33333^@g(\P@r  gfffffڇ@gBM)u?g]@gyd?g	s5v@g{Gz?r  r  r  r   ffffff?r   r[  r[  r  r  r  r>   g@r  r;   r8   r[  g333333@rY  r  g@rX  gn4aƂg?^)g,
gm?giI@gE|x!gvwQ?glfPg_)gXG~?g=n@g8$mg({g]:m?gYv gb?gb	gSTß}g9yg.Ͽv?g޺i?g	'X@)g>_\?g hO?gau?@g׌g+?g:؜^gz54g7f?gDO%@g#xG@g\F?g4E?gnfg>P"ۿguX@gvR?g%?g2Ydzgo?gih?gn?g!nu?gJ+bza,b,pr,tr,trimc                     t          j        |||d          \  }}t          ||d           t          ||d           dS )a  
        Using PairedData's yuen.t.test method. Something to note is that there
        are at least 3 R packages that come with a trimmed t-test method, and
        comparisons were made between them. It was found that PairedData's
        method's results match this method, SAS, and one of the other R
        methods. A notable discrepancy was the DescTools implementation of the
        function, which only sometimes agreed with SAS, WRS2, PairedData and
        this implementation. For this reason, most comparisons in R are made
        against PairedData's method.

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

            Two-sample Yuen test, trim=0.2

        data:  x and y
        t = -0.68649512735573, df = 3.4104431643464, p-value = 0.5361949075313
        alternative hypothesis: true difference in trimmed means is not equal
        to 0
        95 percent confidence interval:
         -3.912777195645217  2.446110528978550
        sample estimates:
        trimmed mean of x trimmed mean of y
        2.000000000000000 2.73333333333333
        Fr  rb  r   r  Nrc   r]  r   )rm   r  r  r  r(  r  r   r   s           ru   test_ttest_compare_rz$Test_ttest_trim.test_ttest_compare_r  sR    @ "OAqtuMMM	6	2E2222//////r   c                     g d}g d}t          j        ||dd          \  }}t          |dd           t          |d	d           d S )
N)rZ   rV   r  r  rj  ,   rZ   rV   r  r  rj  r  )ra   r  rV   rZ   rI     r  ra   r  rV   rZ   rI  r  r  g
ףp=
?Fr  gRbv?rC  r  gOi?r  rm   r  r  r   r   s        ru   test_compare_SASz Test_ttest_trim.test_compare_SAS  si     =<<DDD "OAqseLLL	6t4444	8$777777r   c                     g d}g d}t          j        ||d          \  }}t          |dd           t          |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  rc  r  gR?rn  r  g^Nr  r  s        ru   test_equal_varzTest_ttest_trim.test_equal_var  sh    & DCCCCC!OAqr:::	6 3%@@@@	#5EBBBBBBr   z	alt,pr,tr))r;  gjΜ>5?r  )r9  gn4aƂW?r  c                     g d}g d}t          j        ||dd|          \  }}t          ||d           t          ||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  rc  F)r  rb  r@  rn  r  Nr  )rm   r"  r  r(  r  r  r   r   s           ru   test_alternativesz!Test_ttest_trim.test_alternatives  sq     DCCCCC!OAqrU8;= = =	6////	2E222222r   c                     d}t          t          |          5  t          j        ddgddgdd           d d d            d S # 1 swxY w Y   d S )Nz7Permutations are currently not supported with trimming.r   r   r/   r0   rc  )r  re  r   r   rc   r]  )rm   r   s     ru   test_errors_unsupportedz'Test_ttest_trim.test_errors_unsupported  s     J:U333 	E 	EOQFQF!DDDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	Es   AA
Ar  )gɿr8   r   c                     d}t          t          |          5  t          j        ddgddg|           d d d            d S # 1 swxY w Y   d S )Nz/Trimming percentage should be 0 <= `trim` < .5.r   r   r/   r  r  )rm   r  r   s      ru   test_trim_bounds_errorz&Test_ttest_trim.test_trim_bounds_error  s    A:U333 	7 	7OQFQF6666	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7 	7s   AA	AN)r   r   r   r  r  r  r  r  r  r  r  r  r  r   r   ru   r  r    s       	OOO%8:M			1	1	1???	/	5	1	1	1???	/	6	@	@	@	@	@	@	,b	2
H 
H 
H
  
  
  "34Db	JKF& [-v66!0 !0 76!0F8 8 8C C C4 [[N 3 3	 3 E E E [V\\\227 7 327 7 7r   r  c                      e Zd Z ej        d          Zg ded<   dddej         dged	<   ddd
dej        ged<   g ded<   dddej         dged<   ddddej        ged<   g ded<   g ded<   g ded<   g ded<   g ded <   g d!ed"<   ej        	                    d#g d$          ej        	                    d%d&d'g          ej        	                    d(d)d*g          d+                                     Z
d,S )-Test_ttest_CI)r0   r/   r/   r2   )r  )gͿe13@gv7?gę"Ͽg8 {M(?r   r  r  gv7?gx_?r>  g
/?gD .ɿ)r/   r   r   )reϿ-</&@g?JJ?gbտg3Պ?)r   r   r   r  r  g?JJ?gF?)r   r   r   g{?gads2ѿ)r/   r   r   )s"%οr  gW"?NN)r   r   r   )r  r  gW"?NNr   r   r   )r  r  g:T'?NN)r/   r   r   ):пrV   g0:5?NNr  )r  rV   g0:5?NNr  )r  rV   g be?NN)r/   r   r   r@  r  rb  FTr  r   rc  c                    |r|rt          j        d           t          j                            d          }|                    d          }|                    d          }t          j        |||||          }dddd	}| j        ||         t          |          t          t          j	        |                    f         }	|	\  }
}}}}t          |j        |
           t          |j        |           t          |j        |           |sA|                    d
          }t          |j        |           t          |j        |           d S d S )Nz3Discrepancy in `main`; needs further investigation.l   'Nk' rY   r[   )r@  rb  r  r   r   r/   r  r  )r  xfailri   rl  rm  rc   r]  r   r  ceilr   r   r  r   r/  r2  r3  )rm   r@  rb  r  rq  r   rn   r   r  rs  r   r  r   r2  r3  rI  s                   ru   test_confidence_intervalz&Test_ttest_CI.test_confidence_intervalG  sO     	P 	PLNOOOi##$788JJrNNJJrNNoa(1> > > &'a@@f\+.IBGDMM@R@RRS+.(	2vsDy111###
F+++ 	+((--BBFC(((BGT*****	+ 	+r   N)r   r   r   ri   rZ  r   r  r  r  r  r  r   r   ru   r  r    st       : 	|$$$ANNNAgJibfWlKAgJiM26JAgJLLLAgJibfWlKAgJiL"&IAgJJJJAgJJJJAgJJJJAgJJJJAgJJJJAgJJJJAgJ[],L,L,LMM[[5$-88[VaX..+ + /. 98 NM+ + +r   r  c            	      `   t           j                            d           t           j                            dddddd          } t           j                            ddddd          }t	          | |fd	
          }t          j        | d          } t          j        |d         d          }t          d |j        D              D ]k}|\  }}}}}}	|| j        d	         k     r!| ||||||	f         |||||||	f         k    sJ =|||||| j        d	         z
  ||	f         |||||||	f         k    sJ ld S )Nr   r2   r1   r0   r   r3   r5   r/   r_   rP   r  )N.r  c              3   4   K   | ]}t          |          V  d S r  r	  r  s     ru   r  z.test__broadcast_concatenate.<locals>.<genexpr>k  s(      55588555555r   )ri   rl  r  r  r   r  r   r  )
r  r  r  indexr  r  r  r  r
  r  s
             ru   test__broadcast_concatenater  a  s\    INN1
	q!Q1a((A
	q!Q1%%A1vB///A
%&&A
)011A55QW5556 L L 1aAqqwr{??Q1aA%&!Aq!Q1,<*======Q1a!'"+oq!34!Q1a:J8KKKKKKL Lr   c            	      "   d} d}d}d}t          j        | |d          \  }}t          ||g||g           t          t          j        t	          | |          ddi||g           d} d	}d
}t          j        | |d          \  }}t          ||g||g           t          t          j        t	          | |          ddi||g           d}d}d}d}|| g||gf}t          j        ddd          }	t          j        ddd          }
t          j        ddd          }t          j        ||
g          }t          j        |
|g          }t          j        ||
dd          \  }}t          ||g||f           t          t          j        t	          ||
          ddi||f           t          j        ||	dd          \  }}t          ||g||f           t          t          j        t	          ||	          ddi||f           t          j        |j        |j        dd          \  }}t          ||g|           t	          |j        |j                  }t          t          j        |ddi||f           t          j        ||dd          \  }}t          ||g|           t	          ||d          }t          t          j        |ddi||f           d}t          j        ||
dd          }t          ||           t          j
        |||g          }t          j
        |||g          }t          j        ||dd          \  }}t          t          j        |          t          j        |                     t          t          j        |          |           t          |j        d           t	          ||d          }t          j        |ddi\  }}t          t          j        |          t          j        |                     t          t          j        |          |           t          |j        d           t          j        t          j        |dd          t          j        |dd          dd          \  }}t          t          j        |          t          j        |                     t          t          j        |          |           t          |j        d           t	          t          j        |dd          t          j        |dd          d          }t          j        |ddi\  }}t          t          j        |          t          j        |                     t          t          j        |          |           t          |j        d           t!          j        t$          d          5  t          j        g dg dd          \  }}d d d            n# 1 swxY w Y   t          t          j        |          |ft
          j        df           t          j        d           5  t          t          j        g dg dd          t
          j        t
          j        f           t          j        dt
          j        gd!dgg          }t          t          j        |t          j        d"          d          dt
          j        gdt
          j        gf           d d d            d S # 1 swxY w Y   d S )#NrT  r  r  r  Frb  rb  r>  gJ?g*ʿrZ  g@[?gωұ?ghG?r   rb  r  r2   r[  r   rd  rP   r  r  r/   r  ry  r   r   r  r  r  r^   r  )rc   r]  r   r^  rX  ri   re  r   r~  r   r  r   r&  r   r  r  r  r  rl   r  r  rj   rM  )r  r  r  r(  r  r  	tr_uneq_n	pr_uneq_nr)  rvs3r  r  r*  r+  r  r   r   r,  r-  r.  s                       ru   test_ttest_ind_with_uneq_varr  s  s   AA	B	B?1a5111DAqqeb"X...e8+a:K:K JCHJ J !f& & & 	A	B	B?1a5111DAqqeb"X...e8+a:K:K JCHJ J !f& & &
 
B#I	B#Is8RG
C;qb!!D;qS!!D;qS!!Dhd|$$Ghd|$$G
/$1
>
>
>CAaqeRG,,,e8+dFJ;L ;L JCHJ J  !!f& & &
 /$1
>
>
>CAaqei%;<<<e8+dFJ;L ;L JCHJ J  !!f& & &
 /')WYQ%
H
H
HCAaqeC(((wy'),,De8$ JCHJ J !f& & & /'7e
D
D
DCAaqeC(((wa000De8$ JCHJ J !f& & &
 )J
/$1
>
>
>CZ((( i122Gi122G
/'7e
D
D
DCAaq		26"::...bfQii,,,&!!!wa000D%t=u==DAqq		26"::...bfQii,,,&!!!?2;w155;w155 !U4 4 4DAq bfQii444bfQii,,,&!!!r{7Aq11{7Aq11; ; ;D%t=u==DAqbfQii444bfQii,,,&!!! 
n,E	F	F	F F Fyyy)))uEEE1F F F F F F F F F F F F F F F"&))Q"&!---		"	"	" 1 1U_YYY			UKKKfbf%	' 	' 	' x!RVr1g.//U_T28F+;+;uMMM"&kArv;/	1 	1 	11 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s%   W22W69W6B5\\\c                  ~   t           j        dddg} g d}t          j        | |d          }t          j        || d          }t	          |j        |j         d           t	          |j        |j        d           t          j        || d	d                    }t	          ||d           t	          |d
d           d S )Nr-  r   r  r2  r   r   r   r  r   )g8HgW@?)ri   rj   rc   r]  r   r   r   r4  s        ru   test_ttest_ind_nan_2nd_argr    s    	c3AA	A&	1	1	1B	A&	1	1	1BBL2<-e<<<<BIryu5555 
AabbE	"	"BB'''' BC           r   c                  .   t          j        t          t                    5  t	          j        g g           } d d d            n# 1 swxY w Y   t          | t          j        j                  sJ t          | t          j        t          j        f           d S r  )r  r  r   r   rc   r]  rg  r8  r9  r   ri   rj   r:  s    ru   #test_ttest_ind_empty_1d_returns_nanr    r<  r=  c                    t          j        d          }t           j                                        5 }|                    t
          t                     t          j        || d          }d d d            n# 1 swxY w Y   t          |t          j
        j                  sJ t          j        |t           j                  }t          |j        |           t          |j        |           d S r@  )ri   rZ  r  r   r   r   r   rc   r]  rg  r8  r9  r}   rj   r   r   r   rA  s         ru   test_ttest_ind_axis_size_zeror    rE  rF  c                  .   t          j        d          } t          j        d          }t          j        | |d          }t	          |t          j        j                  sJ t          |j        j	        d           t          |j
        j	        d           d S rH  ri   rZ  rc   r]  rg  r8  r9  r   r   r  r   rK  s      ru    test_ttest_ind_nonaxis_size_zeror    rM  r   c                  .   t          j        d          } t          j        d          }t          j        | |d          }t	          |t          j        j                  sJ t          |j        j	        d           t          |j
        j	        d           d S )N)r   r4   r   rI  r   rP   rJ  r  rK  s      ru   2test_ttest_ind_nonaxis_size_zero_different_lengthsr    s     	A
A_Q***Ffeo9:::::!'000$f-----r   c                  @   t          j        ddg          t          j        ddg          }} t          j        ddg          t          j        ddg          }}t          j        ddg          t          j        dd	g          }}t          j        | |||||           d S )
Nr   r/   r0   r1   r2         rb     )ri   r   rc   r^  )mean1mean2std1std2nobs1nobs2s         ru   test_gh5686r  ,  s    8QF##RXq!f%5%55E1a&!!28QF#3#3$D8S#J''3*)=)=5E	udE5$FFFFFr   c            	          t          j        ddddddd          } t          | t          j        t          j        g           d S )Nr   r3   Fr  )rc   r^  r   ri   rj   r:  s    ru   %test_ttest_ind_from_stats_inputs_zeror  4  s@    '1aAqEJJJF"&"&)*****r   c                      t           j                            d          } |                     d          }|                     d          }|                     d          }t          j        ||dd          }t          j        |j        t          j                    j	                  j        d	k    sJ t          t          j        |j        |dz            |d
           t          j        ||dd          }t          j        |j        t          j                    j	                  j        d	k    sJ t          t          j        |j        |dz            |d
           t          j        g ddgd          }t          |dd           d S )Nl   bQ )r  r/   rd  )r  r   rb  Tr^   )rb  rQ   r  ri  r  )r/   r0   r2   r9   r  )gzNd?gJ?rn  rA  )ri   rl  rm  rn  r6  rc   r]  r  r   r  r   
percentile)rq  r   rn   r  r   s        ru   test_ttest_single_observationr  :  s^   
)


0
0C



##A



##AA
/!Q$R
8
8
8C>#*emoo&9::ACGGGGBM#*ae44adCCCC
/!Q$R
8
8
8C>#*emoo&9::ACGGGGBM#*ae44adCCCC
 /)))cUd
;
;
;CC:GGGGGGr   c                     |                     |dk              }|                     |dk              }| dk     |z  | dk    |z  z  }|                    ||dz  d|dz  z
            S )Nr9  r;  r   r/   r   )r  rd  )r  r  r"  r  r9  r;  r  s          ru   _convert_pvalue_alternativer  P  sl     ::cVm$$Djj	)**G
a%4QUg-.A88AqsA!G$$$r   c                 

   d\  }}}t           j                            dd|||f          }|                     |          }|                     d||f          }t          j        ||d          \  }}t          j        |dd          \  }}	t          j        |d d ddf         d          \  }
}t          ||d	
           t          |d         |
d	
           t          |j        ||f           |                     |d|f          }t          j        ||d          \  }}t          j        |dd          \  }}	t          j        |dd d df         d          \  }
}t          ||d	
           t          |d         |
d	
           t          |j        ||f           |                     ||df          }t          j        ||d          \  }}t          j        |dd          \  }}	t          j        |ddd d f         d          \  }
}t          ||d	
           t          |d         |
d	
           t          |j        ||f           t          j        |                     g d          d          \  }}t          | 
                    |          |                     | j                             t          ||                     d                     t          j        |d d d d d d f         d          \  }}t          j        |d d d d d d f         dd          \  }}t          ||d|           }t          ||           t          ||           t          j        |d d d d d d f         dd          \  }}t          ||d|           }t          ||           t          ||           t          j        d          5  t          j        |                     g d          d          }t          |j        |                     | j                             t          |j        |                     | j                             |                     dt          j        gddgg          }t          j        |d          }t          |j        |                     d| j        g                     t          |j        |                     d| j        g                     d d d            d S # 1 swxY w Y   d S )NrX   r  r  r2   rX   rs  r   r   rP   r   r  rA  r  r/   )r   r   r   r   r;  r?  r9  r  r  r  )rc   r  rg  r  r  r  r'   r   r  r(   r&  r  r  ri   r  r   rj   r   )r  r  r  n3rvn1r  rs  rJ  rt  p2ru  p3r  r  r(  r  pcr   r.  s                      ru   test_ttest_1samp_newr  Y  s    JBB:>>arR>==D::dD ggq"bk""GtW1555FBtRa000FBtAAAq!G}b11FBB''''BtHbu----B8$$$ggr1bk""GtW1555FBtRa000FBtAqqq!G}b11FBB''''BtHbu----B8$$$ggr2qk""GtW1555FBtRa000FBtAq!!!G}b11FBB''''BtHbu----B8$$$ RZZ55r::DAqBFF1IIrzz"&11222Arzz"~~&&&tAAAqqq!!!G}b11FBT!!!QQQ']BIFFFDAq	$RY	;	;BArArT!!!QQQ']BFCCCDAq	$RVR	8	8BArAr		"	"	" 	> 	>

<<< 8 8"==rzz"&'9'9:::
BJJrv$6$6777 zzB<#r344b))rzz2rv,'?'?@@@
BJJBF|$<$<===	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>s   DS88S<?S<z(Only NumPy has nan_policy='omit' for nowrf  c                 n   d\  }}}t           j                            dd|||f          }|                     |          }| j        |ddddd	d
f<   t          j        |d d d d d d f         d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          ||           d S )N)r2   rX   r  r2   rX   rs  r   r/   r   r0   r1   r5   r   r   r   r;  r  r9  )rc   r  rg  r  rj   r  r  r'   )
r  r  r  r  r  r(  r  r  r  r  s
             ru   test_ttest_1samp_new_omitr	    sn   
 JBB:>>arR>==D::dD&D1ac1Q3tAAAqqq!!!G}bVDDDFBT!!!QQQ']B6)24 4 4DAq	$RY	;	;BArArT!!!QQQ']B6)/1 1 1DAq	$RVR	8	8BArArr   c                    t           j                            d          }|                    d          }|                     |          }d}|                     |                    d                    }t	          j        t          |          5  t          j        ||d           d d d            n# 1 swxY w Y   |                     |                    d	                    }t          j        ||d          }|j	        j
        d
k    sJ t          |          }|                                \  }}|                    |d          }|                    |d          }t          j        ||d          }|                     |                     d| j                  |j        j
                  }	t#          |j        |	           t          j        ||d          }t#          |j        |	           d S )Nl   iI}pC )r   r  r  rd  z%`popmean.shape\[axis\]` must equal 1.)r2   r/   r  r   r  )r  rQ   )r2   r   r  )r2   r  rP   g?rN   )ri   rl  rm  r  r  r   r   rc   r  r   r  r)   r/  r  r9  r   r   r'   )
r  rq  r   rZ  r  r   rC  r  r:  rs  s
             ru   test_ttest_1samp_popmean_arrayr    s    )

 3
4
4C


$$A


1A6Gjj4455G	z	1	1	1 7 7!W266667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 jj4455G

AwR
8
8
8C='))))a  G""$$DAqAB''AAB''A

Aqr
2
2
2C
//"**T*<<cj>N
O
OCCJ$$$

Aqr
2
2
2CCJ$$$$$s   B55B9<B9c                       e Zd Zed             Zed             Zd Zed             Zd Zed             Z	ed             Z
ed             Zd	S )
TestDescribec                 6   t                      5 }t          j        dd          5  |                    t          d           t          j        |                    d          d                   \  }}}}}}d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |dk    sJ t          |d         |                    d                     t          |d         |                    d                     t          ||                    d                     t          ||                    |j	                             t          ||                    |j	                             t          ||                    |j	                             d S )Nr  r  r  r  r   r   r   )
r   ri   r  r   rl   rc   describer  r(   rj   )	rm   r  rt   r  rX  r
  r;  skkurts	            ru   test_describe_scalarz!TestDescribe.test_describe_scalar  s      	GCk(8<<<	G 	GJJ~'JKKK$)N2::b>>"3E$F$F!Ar1aT	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G Avvvv1rzz#///1rzz#///2::c??+++2::bf--...BJJrv..///bjj0011111s5   BAB6BB	B	B	
BB Bc                 p   t          |                    d                    }|                    |                    d          |                    dd          f          }d}|                    g d          |                    g d          f}|                    g d          }|                    g d	          }|                    d
gdz            }|                    dgdz            }	t          j        |          \  }
}}}}}|
|k    sJ t          |d         |d                    t          |d         |d                    t          ||d|	                    |j
                  j        z             t          ||d|	                    |j
                  j        z             t          ||           t          ||	           t          j        |j        d          \  }
}}}}}|
|k    sJ t          |d         |d                    t          |d         |d                    t          ||d|	                    |j
                  j        z             t          ||d|	                    |j
                  j        z             t          ||           t          ||	           d S )Nr   r  r/   r1   r-  r2   r   r   r   r   r-  r-  r-  r-  ffffff?r  r  r  )r  r  r  r  H,p ?r1   TUUUUUr   r   rA  rP   )r)   r  rD  r  r}   rc   r  r(   r'   r   rO   epsr~  rm   r  rC  r   ncmmcmcvcskckurtcr  rX  r
  r;  r  r  s                   ru   test_describe_numbersz"TestDescribe.test_describe_numbers  s   !"**R..11NNBGGFOORWWVR-@-@ABBzz***++RZZ8H8H8H-I-IJZZ,,,--ZZ,,,--jj-.233

./!344 %q 1 12q!RBwwww1s1v&&&1s1v&&&2A(9(9(=$=>>>>2A(9(9(=$=>>>>C   e$$$ %qs ; ; ;2q!RBwwww1s1v&&&1s1v&&&2A(9(9(=$=>>>>2A(9(9(=$=>>>>C   e$$$$$r   c                 d   t          j        d          }t           j        |d<   d\  }}d}d}d}d}t          j        |d	          \  }}	}
}}}t          ||           t          |	|           t          |
|           t          ||           t          ||           t          ||d
           d S )Nr   r6   )r6   )r   r\  r  r?   r   gGzr   r   r[   rR   )ri   r   rj   rc   r  r   r   )rm   r   r  r  r  r   r!  r"  r  rX  r
  r;  r  r  s                 ru   describe_nan_policy_omit_testz*TestDescribe.describe_nan_policy_omit_test  s    IcNNv!!C# %qV D D D2q!RQRQQ!"c***!$r::::::r   c                    |                     d          }|                    |dk    |                    |j                  |          }d}t	          j        t          |          5  t          j        |d           d d d            n# 1 swxY w Y   t          j        |d          \  }}}}}}	|                    |j                  d         }
|d	k    sJ t          |d
         |
           t          |d         |
           t          ||
           t          ||
           t          ||
           t          |	|
           t          |          r|                                  nKd}t	          j        t          |          5  t          j        |d           d d d            n# 1 swxY w Y   d}t	          j        t          |          5  t          j        |d           d d d            d S # 1 swxY w Y   d S )Nr   r6   r  r   r   r   r  r   rX   r   r   z9`nan_policy='omit' is incompatible with non-NumPy arrays.r   r   r   )r   rd  r  rj   r  r   r   rc   r  r(   r+   r%  )rm   r  r   rZ  r  rX  r
  r;  r  r  rs  s              ru   test_describe_nan_policy_otherz+TestDescribe.test_describe_nan_policy_other  s   IIcNNHHQT2::bf--q111]:W555 	2 	2N11111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 !&q[ I I I2q!Rjj  $Bwwww1s###1s###33C   c"""B<< 	5..0000QGz999 5 5qV44445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 1]:W555 	3 	3N12222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s6   &B		BBF))F-0F-G55G9<G9c                 v    t          j        t          j        d                    }d}t	          ||           d S )NrF   )rV  minmaxrh   variancer  r  )rc   r  ri   r   r   )rm   rP  r   s      ru   test_describe_result_attributesz,TestDescribe.test_describe_result_attributes0  s6     	"..S
FJ/////r   c                     t          |                    d                    }|                    |                    d          |                    dd          f          }d}|                    g d          |                    g d          f}|                    g d          }|                    g d	          }|                    d
gdz            }|                    dgdz            }	t          j        |d          \  }
}}}}}|
|k    sJ t          |d         |d                    t          |d         |d                    t          ||           t          ||           t          ||           t          ||	           d S )Nr   r  r  r-  r2   r  r  r  )Q?r-  r-  r-  r  r1   r  r   rx   r   	r)   r  rD  r  r}   rc   r  r(   r'   r  s                   ru   test_describe_ddofzTestDescribe.test_describe_ddof7  s   !"**R..11NNBGGFOORWWVR-@-@ABBzz***++RZZ8H8H8H-I-IJZZ,,,--ZZ00011jj-.233

./!344 %qq 9 9 92q!RBwwww1s1v&&&1s1v&&&22C   e$$$$$r   c                     t          |                    d                    }|                    |                    d          |                    dd          f          }d}|                    d          |                    d          f}|                    d          }|                    d          }|                    d          }|                    d	          }	t          j        |d 
          \  }
}}}}}|
|k    sJ t          |d         |d                    t          |d         |d                    t          ||           t          ||           t          ||           t          ||	           d S )Nr   r  r  r-  r  r  ga+?gE,p ?gUUUUUUrP   r   r   r.  r  s                   ru   test_describe_axis_nonez$TestDescribe.test_describe_axis_noneJ  sZ   !"**R..11NNBGGFOORWWVR-@-@ABB zz#

30ZZ*++ZZ+,,jj+,,

.// !&qt < < <2q!RBwwww1s1v&&&1s1v&&&22C   e$$$$$r   c                     d}t          j        t          |          5  t          j        |                    g                      d d d            d S # 1 swxY w Y   d S )NzThe input must not be empty.r   )r  r   r   rc   r  r  )rm   r  rZ  s      ru   test_describe_emptyz TestDescribe.test_describe_emptyb  s    0]:W555 	+ 	+N2::b>>***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   (AAAN)r   r   r   r%   r  r#  r%  r'  r+  r/  r1  r3  r   r   ru   r  r    s        2 2 2 % % %6; ; ;" 3 3 3:0 0 0 % % %$ % % %. + + + + +r   r  c                   f    e Zd Zd Zej                            dg d          d             Zd ZdS )NormalityTestsc                    t          t          | j                  }|                    d          }t	          |          rt          j        t          t                    5   ||          }|                    |j	                  }t          |j        |           t          |j        |           d d d            d S # 1 swxY w Y   d S d}t          j        t          |          5   ||           d d d            d S # 1 swxY w Y   d S )Nr  r   z...requires at least...)r  rc   	test_namer  r+   r  r  r   r   rj   r(   r   r   r   r   )rm   r  rQ  r   r   NaNrZ  s          ru   test_too_smallzNormalityTests.test_too_smallk  s|   5$.11JJrNNB<< 		08MNNN 1 1hqkkjj((s333
C000	1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0Gz999                   s%   AB<<C C &C??DDr@  r  c                    | j         }t          t          |          }|                    | j        d                   }|                    | j        d                   }i }|dv r>|dv r&|dk    r|dz  nd|dz  z
  }|dk    rd|z
  n|}||d<   nt          j        d	           |                    d
          dz  } ||fi |}	|	\  }
}t          |
|           t          ||           t          |	d|           d S )Nr   r   >   r9  r;  >   skewtestkurtosistestr9  r/   r;  r@  z,`alternative` not available for `normaltest`)r  r^   r   r   r/   r   r  r^   r   r   r/   r   r  r^   r   r   r/   r   r  r^   r   r   r/   r   r  r  )	r7  r  rc   r  case_refr  rS  r'   r   )rm   r@  r  r7  rQ  ref_statistic
ref_pvaluer  r   r   res_statistic
res_pvalues               ru   test_against_RzNormalityTests.test_against_Rz  s0    N	5),,zz$-"233ZZa 011
---888-8F-B-BZ\\*UV,
-6*-D-DQz\\*
(3}%%JKKKJJ.//2hq##F##$'!z}555
J///C!8R@@@@@@r   c                    t          t          | j                  }|                    d          }|                    |j        |j                  }|                    |dk    ||          }t          j	        d          5   ||          }t          |j        |           t          |j        |           d d d            d S # 1 swxY w Y   d S )NrQ  rN   r  r  r  )r  rc   r7  r   r  rj   rO   rd  ri   r  r(   r   r   )rm   r  rQ  r   r8  r   s         ru   test_nanzNormalityTests.test_nan  s    5$.11IIcNNjjqwj//HHQ"Wc1%%[*** 	- 	-(1++CCM3///CJ,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   6CCCN)	r   r   r   r9  r  r  r  rB  rD  r   r   ru   r5  r5  i  sk           [],L,L,LMMA A NMA<	- 	- 	- 	- 	-r   r5  c                   "    e Zd ZdZdZd Zd ZdS )TestSkewTestr;  )gvO?gbH`?c                    t           j                            ddd          }|                    |          }t          j        |d          j        }t          ||                    d|j                  d	
           d S )Nr   r  {   )r  r.   rf  r;  r?  r   rN   g?̔>r  )rc   skewnormrg  r  r;  r   r'   rO   )rm   r  r  a1_xprD  s        ru   test_intuitivezTestSkewTest.test_intuitive  sq    ^!%cBB

2~e;;;BbjjEKj@@tLLLLLLr   c                 V   t          j        |                    d                     |                    d          }t          |          rt	          j        t          t                    5  t          j        |          }|                    |j	                  }t          |j        |           t          |j        |           d d d            d S # 1 swxY w Y   d S d}t	          j        t          |          5  t          j        |           d d d            d S # 1 swxY w Y   d S )Nr\  r  r   z+`skewtest` requires at least 8 observations)rc   r;  r   r+   r  r  r   r   r  rj   r(   r   r   r   r   rm   r  r   r   r8  rZ  s         ru   "test_skewtest_too_few_observationsz/TestSkewTest.test_skewtest_too_few_observations  s    	ryy~~&&&IIcNNB<< 		"08MNNN 1 1nQ''jj((s333
C000	1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 DGz999 " "q!!!" " " " " " " " " " " " " " " " " "s%   ,ACCC<DD"%D"N)r   r   r   r7  r=  rK  rN  r   r   ru   rF  rF    s?        I9HM M M" " " " "r   rF  c                   (    e Zd ZdZdZd Zd Zd ZdS )TestKurtosisTestr<  )gglg2J@?c                     t           j                            dd          }|                    |          }t          j        |d          j        }t          ||                    d|j                  d	           d S )
Nr  rH  r.   rf  r;  r?  r   rN   r   r  )rc   laplacerg  r  r<  r   r'   rO   )rm   r  r  a2_xprD  s        ru   rK  zTestKurtosisTest.test_intuitive  sp    ]E<<

2!%Y???FbjjEKj@@uMMMMMMr   c                     g d}t          j        d t          |          D                       }|                    ||j                  }t          j        |          d         dk     sJ d S )N)
rq  r   :   r4   r   )   r   r   r      c                 >    g | ]\  }}t          j        ||          S r   )ri   r}   )r  r  r  s      ru   r  z;TestKurtosisTest.test_gh9033_regression.<locals>.<listcomp>  s&    CCCArwq!}}CCCr   rN   r   ri  )ri   r  	enumerater  r   rc   r<  )rm   r  rL  r   s       ru   test_gh9033_regressionz'TestKurtosisTest.test_gh9033_regression  ss     766ICC61B1BCCCDDJJq
J++!!$$Q'$......r   c                    t          j        |                    d                     d}t          j        t
          |          5  t          j        |                    d                     d d d            n# 1 swxY w Y   t          j        t
          |          5  t          j        |                    d                     d d d            n# 1 swxY w Y   |                    d          }t          |          rt          j        t          t                    5  t          j	        |          }|
                    |j                  }t          |j        |           t          |j        |           d d d            d S # 1 swxY w Y   d S d}t          j        t           |          5  t          j        |           d d d            d S # 1 swxY w Y   d S )Nr  z+`kurtosistest` p-value may be inaccurate...r   rF   g      3@r  z/`kurtosistest` requires at least 5 observations)rc   r<  r   r  r  r`  r+   r   r   r;  r  rj   r(   r   r   r   r   )rm   r  rZ  r   r   r8  s         ru   &test_kurtosistest_too_few_observationsz7TestKurtosisTest.test_kurtosistest_too_few_observations  s    	299T??+++?\+W555 	/ 	/ryy~~...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/\+W555 	0 	0ryy///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 IIcNNB<< 		&08MNNN 1 1nQ''jj((s333
C000	1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 HGz999 & &"1%%%& & & & & & & & & & & & & & & & & &sI   (A99A= A=(CCC"AFFF2GGGN)r   r   r   r7  r=  rK  r[  r]  r   r   ru   rP  rP    sN        I:HN N N/ / /& & & & &r   rP  c                       e Zd ZdZdZdS )TestNormalTest
normaltest)gاc@g?N)r   r   r   r7  r=  r   r   ru   r_  r_    s        I9HHHr   r_  c                       e Zd Zej                            d           ej                            dd          \  ZZe	j
                            dg d          d             Zd Zd Zd	S )
TestRankSumsr   r/   rX   r@  r\  c                     t          j        | j        | j        |          j        }t          j        | j        | j        d|          j        }t          ||           d S )Nr?  F)use_continuityr@  )rc   ranksumsr   rn   r   mannwhitneyur   )rm   r@  rD  rE  s       ru   test_ranksums_result_attributesz,TestRankSums.test_ranksums_result_attributes  sk     ~dfdf*57 7 77= 	!$&$&.9; ; ;;A 	d#####r   c                 d    t          j        | j        | j                  }t	          |d           d S )Nr  )rc   re  r   rn   r   )rm   r   s     ru   test_ranksums_named_resultsz(TestRankSums.test_ranksums_named_results   s.    nTVTV,,C!899999r   c                     t          t          d          5  t          j        | j        | j        d           d d d            d S # 1 swxY w Y   d S )Nz`alternative` must be 'less'r   r   r?  )r   r   rc   re  r   rn   r  s    ru   r[  z"TestRankSums.test_input_validation  s    :-KLLL 	A 	AN4646x@@@@	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	A 	As   "AA
A
N)r   r   r   ri   rl  r  r  r   rn   r  r  r  rg  ri  r[  r   r   ru   rb  rb    s        INN19>>!R  DAq[],L,L,LMM$ $ NM$: : :A A A A Ar   rb  c                       e Zd Zd Z ed          ej                            d          d                         Zd Z	d Z
dS )	TestJarqueBerac                     g d}|                     |          }|                     ddg          }t          j        |          }t          |j        |d                    t          |j        |d                    d S )N)g8MK~Ŀg/?g6r=TgGg!J_l gq"?gPHK?r   r   )r  rc   jarque_berar'   r   r   )rm   r  r   rs  r   s        ru   test_jarque_bera_against_Rz)TestJarqueBera.test_jarque_bera_against_R  s{    
; ; ;JJqMMjj*O<==""s1v...
CF+++++r   Tr   r   c                 L   t           j                            d           t           j                            ddd          }t	          j        t          |                    x}\  }}t	          j        t          |                    x}\  }}t	          j        |                    dd                    x}\  }	}
||cxk    r*|	cxk    r#|j	        cxk    r|j	        cxk    r|j	        k    sn J ||cxk    r*|
cxk    r#|j
        cxk    r|j
        cxk    r|j
        k    sn J d S )Nr  r   r   r  r/   P  )ri   rl  r  rn  rc   rn  r  tuplerg   r   r   )rm   r   jb_test1JB1rJ  jb_test2JB2r  jb_test3JB3r  s              ru   test_jarque_bera_array_likez*TestJarqueBera.test_jarque_bera_array_like  sJ    		y!!!IQ6**".tAww77773".uQxx88873".qyyE/B/BCCC73cbbbbSbbbbH$6bbbb(:LbbbbPXPbbbbbbbRVVVV2VVVVVVVVHOVVVVxVVVVVVVVr   c                    |                     g           }t          |          rt          j        t          t
                    5  t          j        |          }d d d            n# 1 swxY w Y   |                     |j                  }t          |j
        |           t          |j        |           d S d}t          j        t          |          5  t          j        |          }d d d            d S # 1 swxY w Y   d S )Nr   z%At least one observation is required.)r  r+   r  r  r   r   rc   rn  rj   r(   r   r   r   r   rM  s         ru   test_jarque_bera_sizez$TestJarqueBera.test_jarque_bera_size&  sf   JJrNNB<< 		+08MNNN + +'**+ + + + + + + + + + + + + + +**RV$$CCM3///CJ,,,,,=Gz999 + +'**+ + + + + + + + + + + + + + + + + +s$   A&&A*-A*C66C:=C:c                 r   t           j                            d          }|                    |                    d                    }t	          j        |d           }t	          j        |                    |d                    }t          |j        |j                   t          |j	        |j	                   t	          j        |d          }t	          j        |dd d f                   \  }}t	          j        |dd d f                   \  }}	t          |j        |                    ||g                     t          |j	        |                    ||	g                     t	          j        |j        d          }
t          |j        |
j                   t          |j	        |
j	                   d S )	NiKr  )r/   r  rd  rP   r  r   r   )ri   rl  r  r  rc   rn  rg   r(   r   r   r'   r~  )rm   r  rq  r   r   rs  s0rH  s1rJ  resTs              ru   r  zTestJarqueBera.test_axis3  sr   i###33JJszzwz//00---

1e 4 455s}555
CJ///***"1QT7++B"1QT7++Brzz2r(';';<<<
BJJBx$8$8999 1---t~666
DK00000r   N)r   r   r   ro  r   r  r  rd  ry  r{  r  r   r   ru   rl  rl  	  s        , , , d###[/00
W 
W 10 $#
W+ + +1 1 1 1 1r   rl  c                   F    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
S )TestMannWhitneyU)g	U3@g^3@gt3@g]o5@gzS4@gt< 4@gM	X3@gXmCk4@gLo&3@gfɘ2@g{m;^3@ga A$|3@gMѢ_4@g#3@g19T_3@ggC2@gqR4@gKk/4@g܁3@gZ2@g_
3@g$`3@g
x4@g3#л5@g;VND1@g >H2@gr4@gyܤ2@g?4@g=bɇ3@)gpG3@gL:j0@g2@gJNnC1@gR;`(3@g+Pi,2@g6:Z2@gZ"3=2@gF	uSa	3@gXҀ2@gX3^83@g21@gJ2@gZ)E2@gU83@g50@gԆ3@gFz33@gz3@gڴ3@rV   c                 h   t          j        | j        | j        d          \  }}t          j        | j        | j        d          \  }}t          j        | j        | j        d          \  }}t          j        | j        | j        d          \  }}t	          ||           t	          ||           t          ||k               t	          |d           t	          |d           t	          |d           t	          |d           t          |d| j                   t          |d| j                   d S )	Nr9  r?  r;    r  g=_A?rG   glPz.?rc   rf  re   Yr   r   r
   rH   	rm   u1rJ  u2r  u3r  u4p4s	            ru   test_mannwhitneyu_one_sidedz,TestMannWhitneyU.test_mannwhitneyu_one_sidedY  s(   #DFDFGGGB#DFDF	JJJB#DFDF	JJJB#DFDFGGGBRRbRRRRB 1t?OPPPPB 3AQRRRRRRr   c                 $   t          j        | j        | j        d          \  }}t          j        | j        | j        d          \  }}t	          ||           t	          |d           t	          |d           t          |d| j                   d S )Nr7  r?  r  r  glPz.?rG   rc   rf  re   r  r   r
   rH   rm   r  rJ  r  r  s        ru   test_mannwhitneyu_two_sidedz,TestMannWhitneyU.test_mannwhitneyu_two_sidedi  s    #DFDFLLLB#DFDFLLLBRRRB 2(,(8	: 	: 	: 	: 	: 	:r   c                 p   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                   t          |d	| j                   d S )
NFr9  r?  r;  r  r  gii5?rG   g22?r  r  s	            ru   &test_mannwhitneyu_no_correct_one_sidedz7TestMannWhitneyU.test_mannwhitneyu_no_correct_one_sideds  sN   #DFDFE068 8 8B#DFDFE09; ; ;B#DFDFE09; ; ;B#DFDFE068 8 8B 	RRbRRRRB 1t?OPPPPB 4$BRSSSSSSr   c                 (   t          j        | j        | j        dd          \  }}t          j        | j        | j        dd          \  }}t	          ||           t	          |d           t	          |d           t          |d| j                   d S )NFr7  r?  r  r  g22?rG   r  r  s        ru   &test_mannwhitneyu_no_correct_two_sidedz7TestMannWhitneyU.test_mannwhitneyu_no_correct_two_sided  s    #DFDFE0;= = =B#DFDFE0;= = =B 	RRRB 4(,(8	: 	: 	: 	: 	: 	:r   c                 <   t          j        g d          }t          j        g d          }t          t          j        ||d          d           t          t          j        ||d          d           t          t          j        ||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   r9  r?  )     @g ?չ>r;  )r  g&)E?r7  )r  g?չ?)ri   r   r   rc   rf  r  s      ru   test_mannwhitneyu_onesz'TestMannWhitneyU.test_mannwhitneyu_ones  s    H . . . / /& H & & & ' ' 	*1aVDDD:	< 	< 	< 	*1aYGGG2	4 	4 	4*1a[III5	7 	7 	7 	7 	7r   c                 l    d}t          j        | j        | j        d          }t	          ||           d S )Nr  r9  r?  )rc   rf  re   r  r   r  s      ru   #test_mannwhitneyu_result_attributesz4TestMannWhitneyU.test_mannwhitneyu_result_attributes  s8    ,
 VDDDC,,,,,r   N)r   r   r   re   r  rH   r  r  r  r  r  r  r   r   ru   r  r  G  s        	- 	- 	-A	N 	N 	NA KS S S : : :T T T(
: 
: 
:)7 )7 )7V- - - - -r   r  c                      g d} g d}t          t          j        | |          d         dd           d}t          j        | |          }t          ||           t	          |j        |j                   d S )N)"r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )"g-@g+@g(@r  rZ  r  g333333@ffffff@g333333@r;   r  皙	@r   r  r  r:   r  gffffff@ @333333?r  r9   ?r  rI  rI  r  r  r  r  r8   rc  rc  r  r   g/"?r2   r   )r   rc   pointbiserialrr   r   r   r   )r   rn   r   r   s       ru   test_pointbiserialr    s    	 	 	A	& 	& 	&A ,Q2215wBBB +J

q!
$
$CZ(((#-00000r   c                  J   t          j        g d          } t          j        |           }g d}t	          |d         |           t          j        g d          }t          j        |          }t          j        g d          }t	          |d         |           t          j        | |          \  }}t          ||d                    t          ||d                    t          j        | ||           \  }}}t          ||d                    t          ||d                    t          ||d                    t          j        d          } t          j        g dg dg          }t          t          j        | d	| z            |d
           t          dd          }	t          j        g d          }
t          j	        |	|
          }t          j        g d          }t          j	        ||
          }t          j        |          }t          |d         |d           d S )N)r   r/   r1   )r4   r  r4   r   )r   r0   r3   r6   )rI  r   r   rI  r2   )㪪@I?g&>ڿr  r  )5@㪪@gIr  r  r/   r5   rR   rY   )r2   rY   r6   r0   r/   r/   )g_v	@g1%?g"u?gZӼ?g!u @gq&@r1   )
ri   r   rc   obrientransformr   r   r   r   r  repeat)rB  rs  rd  rC  rt  r  r  r  rH  valuesrepsr1  transformed_valuess                ru   test_obrientransformr    s   	)))		B		r	"	"BzzHBqE8$$$	,,,		B		r	"	"Bx''HBqE8$$$  R((DAqBqEBqE #BB//GAq!BqEBqEBqE 
1BXDDDFFFHI IF e3B"==vqQQQQ 1b\\F8'''((D9VT""D #< #< #< = =y+T22H"4((FfQi1======r   rQ  c                     t          j        | |||          }t          |||           t          |j        |           d S N)rQ   rO   weightsrA  )rc   r  r   r   rO   
array_liker  rQ   rO   rB  r  r   s          ru   check_equal_gmeanr    sI     	JTHHHAAwT****%     r   c                     t          j        | |||          }t          |||           t          |j        |           d S r  )rc   hmeanr   r   rO   r  s          ru   check_equal_hmeanr  	  sG    JTHHHAAwT****%     r   c                     t          j        | ||||          }t          |||           t          |j        |           d S r  )rc   pmeanr   r   rO   )r  rY  r  rQ   rO   rB  r  r   s           ru   check_equal_pmeanr    sI    J$eWMMMAAwT****%     r   c                   h    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd ZdS )TestHarMeanc                 2    g d}d}t          ||           d S N)r   r   r/   r   r  rm   r  r  s      ru   test_0zTestHarMean.test_0  &    II!W%%%%%r   c                 ^    g d}d}t          ||           g d}d}t          ||           d S )Nr  =b#A@r>  gQ?r  r  s      ru   test_1d_listzTestHarMean.test_1d_list  sF    555!W%%%LL:!W%%%%%r   c                 V    t          j        g d          }d}t          ||           d S )Nr  r  ri   r   r  r  s      ru   test_1d_arrayzTestHarMean.test_1d_array'  s3    H>>>??!W%%%%%r   c                 z    t          j        ddg          }d}t          t          j        |          |           d S )Nr   r   r   )ri   r   r   rc   r  r  s      ru   test_1d_array_with_zeroz#TestHarMean.test_1d_array_with_zero-  s8    HaVU[^^W-----r   c                 r    t          j        g d          }t          t          t          j        |           d S )Nr   r   r^   )ri   r   r   r   rc   r  rm   r  s     ru   !test_1d_array_with_negative_valuez-TestHarMean.test_1d_array_with_negative_value2  s/    HZZZ  j%+q11111r   c                 @    g dg dg dg}d}t          ||           d S NrX   r  rI  rJ  rH  r  r  r  r  rb  r  x   gmWUC@r  r  s      ru   test_2d_listzTestHarMean.test_2d_list7  s=    ///1D1D1DE!W%%%%%r   c                 d    g dg dg dg}d}t          t          j        |          |           d S r  )r  ri   r   r  s      ru   test_2d_arrayzTestHarMean.test_2d_array=  sE    ///1D1D1DE"(1++w/////r   c                 l    g dg dg dg}t          j        g d          }t          ||d           d S )Nr  r  r  )U|ϊ6@g4.=C@JQ6LsJ@E]P@r   rP   r  r  s      ru   test_2d_axis0zTestHarMean.test_2d_axis0C  sS    ///1D1D1DE(OOOPP!W1------r   c                     g dg dg dg}t          j        g d          }t          t          j        |d          |           d S )NrX   r   rI  rJ  r  r  )r  r   r  r  r   rP   ri   r   r   rc   r  r  s      ru   test_2d_axis0_with_zeroz#TestHarMean.test_2d_axis0_with_zeroI  s[    __...0C0C0CD(GGGHHAA...88888r   c                 l    g dg dg dg}t          j        g d          }t          ||d           d S )Nr  r  r  )g3333333@O@y@Y@r   rP   r  r  s      ru   test_2d_axis1zTestHarMean.test_2d_axis1N  sS    ///1D1D1DE(<<<==!W1------r   c                     g dg dg dg}t          j        g d          }t          t          j        |d          |           d S )Nr  r  r  )r   r  r  r   rP   r  r  s      ru   test_2d_axis1_with_zeroz#TestHarMean.test_2d_axis1_with_zeroT  s[    __...0C0C0CD(;;;<<AA...88888r   c                 @    g d}g d}d}t          |||d           d S )Nr/   rX   r3   rX   r2   r0   r0   h㈵>r  rB  r  rm   r  r  r  s       ru   test_weights_1d_listz TestHarMean.test_weights_1d_listY  s8     JJ**!WgDAAAAAAr   c                     t          j        ddgddgddgg          }t          j        ddgddgddgg          }t          j        ddg          }t          ||d|d	           d S )
Nr/   r2   rX   r3   r   r0   r   r  rQ   r  rB  r  r  s       ru   test_weights_2d_array_axis0z'TestHarMean.test_weights_2d_array_axis0a  sz     Hq!fr1g1v.//(RGaVaV455(Aq6""!W1gDIIIIIIr   c                     t          j        g dg dg          }t          j        g dg dg          }t          j        ddg          }t          ||d|d	           d S )
Nr  r4   r4   r4   r  r  r0   r4   r   r  r  r  r  s       ru   test_weights_2d_array_axis1z'TestHarMean.test_weights_2d_array_axis1i  sn     Hjjj))),--(JJJ			233(Aq6""!W1gDIIIIIIr   c                     t          j        g d          }t           j                            g dg d          }d}t          |||d           d S )Nr/   rX   r3   r  rX   r2   r0   r  r   r   r   r   r  r0   r  r  )ri   r   r  r  r  s       ru   test_weights_masked_1d_arrayz(TestHarMean.test_weights_masked_1d_arrayq  sX     H^^^$$%++nnn<<<+@@!WgDAAAAAAr   N)r   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   ru   r  r    s       & & &
& & && & &. . .
2 2 2
& & &0 0 0. . .9 9 9
. . .9 9 9
B B BJ J JJ J JB B B B Br   r  c                   b    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd ZdS )TestGeoMeanc                 2    g d}d}t          ||           d S r  r  r  s      ru   r  zTestGeoMean.test_0{  r  r   c                 ~    g d}d}t          ||           g d}t          dd          }t          ||d           d S )Nr  sŤF@r>  r  r  r  rA  )r  r   r  s      ru   r  zTestGeoMean.test_1d_list  sU    555!W%%%LLw//!W5111111r   c                     t          j        g d          }d}t          ||           t          g dt                    }t	          dd          }t          ||t                     d S )Nr  r  r>  r  r  rN   )ri   r   r  r   r   r  s      ru   r  zTestGeoMean.test_1d_array  sj    H>>>??!W%%%,,,((w//!WG444444r   c                 @    g dg dg dg}d}t          ||           d S Nr  r  r  g/,$qJ@r  r  s      ru   r  zTestGeoMean.test_2d_list  s=    ///1D1D1DE!W%%%%%r   c                 Z    g dg dg dg}d}t          t          |          |           d S r  )r  r   r  s      ru   r  zTestGeoMean.test_2d_array  sC    ///1D1D1DE%((G,,,,,r   c                     g dg dg dg}t          j        g d          }t          ||d           t          g dg dg dg          }t          g d          }t          ||dd	           d S )
Nr  r  r  )g4@A@g5H@g`8|wЭN@gm~&+R@r   rP   r>  r  rQ   rB  ri   r   r  r  s      ru   r  zTestGeoMean.test_2d_axis0  s    ///1D1D1DE(NNNOO!W1----<<<|||<==%%!W15999999r   c                    g dg dg dg}t          j        g d          }t          ||d           t          g dg dg dg          }t          dd	          }t          |||g          }t          ||dd
           d S )Nr  r  r  )gD" 6"6@gcP@g
ҧZ@r   rP   r>  r  r  r  r	  )ri   r   r  r   )rm   r  r  r;  s       ru   r  zTestGeoMean.test_2d_axis1  s    ///1D1D1DE(CCCDD!W1----<<<|||<==-))Aq	""!W15999999r   c                 P    t          g d          }d}t          ||d           d S )N)g}Ô%ITr*  gu <7~r*  r  rA  )r   r  r  s      ru   test_large_valueszTestGeoMean.test_large_values  s6    '''((!W5111111r   c                     g d}d}t          j        d          5  t          ||           d d d            d S # 1 swxY w Y   d S )N
rX   r  rI  rJ  rH  r  r  r  r  r   r   r  r  )ri   r  r  r  s      ru   test_1d_list0zTestGeoMean.test_1d_list0  s    333[X&&& 	* 	*a)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   :>>c                     t          j        g d          }d}t          j        d          5  t          ||           d d d            d S # 1 swxY w Y   d S )Nr	  r   r  )r  )ri   r   r  r  r  s      ru   test_1d_array0zTestGeoMean.test_1d_array0  s    H<<<==[))) 	* 	*a)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   AAAc                     g d}t           j        }t          j        d          5  t          ||           d d d            d S # 1 swxY w Y   d S )N)
rX   r  rI  rJ  rH  r  r  r  r  r^   r  r  )ri   rj   r  r  r  s      ru   test_1d_list_negzTestGeoMean.test_1d_list_neg  s    444&[*** 	* 	*a)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*s   AAAc                 @    g d}g d}d}t          |||d           d S Nri  )r/   r2   r3   r1   r0   GZ*oG8@r  r  r  r  s       ru   r  z TestGeoMean.test_weights_1d_list  s8     OO!//!WgDAAAAAAr   c                     t          j        g d          }t          j        g d          }d}t          |||d           d S r	  r	  r  s       ru   test_weights_1d_arrayz!TestGeoMean.test_weights_1d_array  sL     H___%%(???++!WgDAAAAAAr   c                     t          j        g d          }t           j                            g dg d          }d}t          |||d           d S )Nr@  )r/   r2   r3   r1   r0   r2   )r   r   r   r   r   r   r  r	  r  r  )ri   r   r  r  r  s       ru   r  z(TestGeoMean.test_weights_masked_1d_array  sa     H'''((%++0007I7I7I+JJ!WgDAAAAAAr   N)r   r   r   r  r  r  r  r  r  r  r	  r		  r	  r	  r  r	  r  r   r   ru   r  r  z  s        & & &
2 2 25 5 5& & &- - -: : :	: 	: 	:2 2 2
* * ** * ** * *B B BB B BB B B B Br   r  c            
          e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                            dd	d
gddgddggdf ej        d	d
gddgddgg          dfg          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             Ze
j                            dg dg dg dgdfg dg dg dgdfg          d             Zd Zd Ze
j                            dg d          d             ZdS )TestPowMeanc                 L    t          j        | |z            | j        z  d|z  z  S r  )ri   r  r.   r  r  s     ru   pmean_referencezTestPowMean.pmean_reference  s$    q!tqv%1--r   c                 l    t          j        || |z  z            t          j        |          z  d|z  z  S r  )ri   r  )r  r  r  s      ru   wpmean_referencezTestPowMean.wpmean_reference  s0    wA~&&8AaC@@r   c                 X   t          j        t          d          5  t          j        g ddg           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        g dt          j        dg                     d d d            d S # 1 swxY w Y   d S )NzPower mean only defined forr   rT  r   )r  r   r   rc   r  ri   r   r  s    ru   test_bad_exponentzTestPowMean.test_bad_exponent  s   ]:-JKKK 	( 	(K			A3'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(]:-JKKK 	2 	2K			28QC==111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2s#   AAA'+BB#&B#c                     g dd}}t                               t          j        |          |          }t	          |||           g dd}}t          j        d          }t	          |||           d S )Nr  r;   r>  r/   r?   )r	  r	  ri   r   r  r   rm   r  r  r  s       ru   r  zTestPowMean.test_1d_list  su    888#1--bhqkk1==!Q(((||Q1'9::!Q(((((r   c                     t          j        g d          d}}t                              ||          }t	          |||           d S )Nr  g      )ri   r   r	  r	  r  r	  s       ru   r  zTestPowMean.test_1d_array   sI    xAAABBD1--a33!Q(((((r   c                     t          j        ddg          d}}d}t          t          j        ||          |           d S )Nr   r   r^   r   )ri   r   r   rc   r  r	  s       ru   r  z#TestPowMean.test_1d_array_with_zero  s@    xA1U[A&&00000r   c                     t          j        g d          d}}t          j        t          d          5  t          j        ||           d d d            d S # 1 swxY w Y   d S )Nr  gGz?zPower mean only defined if allr   )ri   r   r  r   r   rc   r  )rm   r  r  s      ru   r  z-TestPowMean.test_1d_array_with_negative_value
  s    x


##T1]:-MNNN 	 	K1	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAr	  rX   r  rH  r  r  rb  r}  r8   c                     t                               t          j        |          |          }t	          |||           d S r  )r	  r	  ri   r   r  r	  s       ru   test_2d_axisnonezTestPowMean.test_2d_axisnone  s9     --bhqkk1==!Q(((((r   r  r  r  r  c                     fdt          t          d                             D             }t          |d           d S )Nc                     g | ]Vt                               t          j        fd t	          t                              D                                 WS )c                 ,    g | ]}|                  S r   r   )r  r  r  r  s     ru   r  z=TestPowMean.test_2d_list_axis0.<locals>.<listcomp>.<listcomp>   s!    999a!A$q'999r   )r	  r	  ri   r   r  r5  )r  r  r  r  s    @ru   r  z2TestPowMean.test_2d_list_axis0.<locals>.<listcomp>  so     
 
 
  ''999995Q==999::A 
 
 
r   r   rP   )r  r5  r  r	  s    `` ru   test_2d_list_axis0zTestPowMean.test_2d_list_axis0  sd    
 
 
 
 
 3qt99%%	
 
 
 	!Qa000000r   c                 J    fd|D             }t          ||d           d S )Nc                 j    g | ]/}t                               t          j        |                    0S r   )r	  r	  ri   r   )r  a_r  s     ru   r  z2TestPowMean.test_2d_list_axis1.<locals>.<listcomp>,  s1    LLLB;..rx||Q??LLLr   r   rP   )r  r	  s     ` ru   test_2d_list_axis1zTestPowMean.test_2d_list_axis1&  s<     MLLL!LLL!Qa000000r   c                     g dd}}g d}t                               t          j        |          ||          }t	          ||||d           d S )Nr  gރBr  r  r  )r	  r	  ri   r   r  rm   r  r  r  r  s        ru   r  z TestPowMean.test_weights_1d_list/  sV    zz;1**..rx{{AwGG!QtDDDDDDr   c                     t          j        g d          d}}t           j                            g dg d          }t          j        ||          }t	          ||||d           d S )	Nr  r   r  r  r  r  r  r  )ri   r   r  averager  r-	  s        ru   r  z(TestPowMean.test_weights_masked_1d_array5  sk    x''1%++nnn<<<+@@*Q000!QtDDDDDDr   )rQ   fun_namer  ))Nr	  g3E#@)r   r  r   )r   r  r^   c                    |dk    rfd}nt          t          |          }t          j        ddgddgddgg          }t          j        ddgddgddgg          } ||||	          }t	          ||||d
           d S )Nr	  c                 <    t                               | |          S r  )r	  r	  )r  rQ   r  r  s      ru   funz.TestPowMean.test_weights_2d_array.<locals>.funC  s    "33Aq'BBBr   r/   r2   rX   r3   r   r0   )rQ   r  r  r  )r  rc   ri   r   r  )rm   rQ   r1	  r  r4	  r  r  r  s      `    ru   test_weights_2d_arrayz!TestPowMean.test_weights_2d_array;  s     )))C C C C C C %**CHq!fr1g1v.//(RGaVaV455#adG444!QdG$OOOOOOr   N)r   r   r   r	  r	  r	  r  r  r  r  r  r  r  ri   r   r#	  r'	  r+	  r  r  r5	  r   r   ru   r	  r	    s_       . . .A A A2 2 2) ) )) ) )
1 1 1
  
 [8b"XCy
)4	0
"(RHr2hS	2
3
3S	9	; 
) ) 
) [---/B/B/B
CT	J??,,,.A.A.A
BC	H	J 
1 1 
1 [---/B/B/B
CT	J??,,,.A.A.A
BC	H	J 
1 1 
1E E EE E E [!	 	 	 	P 	P 	P 	P 	Pr   r	  c                      e Zd Z ej        d          dz   ZdZe                    ddd          Zd Z	d Z
d	 Zej                            d
ddej        ej        f          d             Zd Zd Zd Zd Zd Zd Zd Zd ZdS )TestGeometricStandardDeviationr  r   gv aZ@r/   r0   r1   c                 b    t          j        | j                  }t          || j                   d S r  )rc   r  array_1dr   gstd_array_1drm   gstd_actuals     ru   r  z,TestGeometricStandardDeviation.test_1d_arrayS  s,    j//T%788888r   c                 |    t          j        t          | j                            }t	          || j                   d S r  )rc   r  rr  r9	  r   r:	  r;	  s     ru    test_1d_numeric_array_like_inputz?TestGeometricStandardDeviation.test_1d_numeric_array_like_inputW  s4    jt}!5!566T%788888r   c                     t          j        t          d          5  t          j        d           d d d            d S # 1 swxY w Y   d S )Nzufunc 'log' not supportedr   z*You cannot take the logarithm of a string.)r  r   rF  rc   r  r  s    ru   )test_raises_value_error_non_numeric_inputzHTestGeometricStandardDeviation.test_raises_value_error_non_numeric_input[  s    ]9,GHHH 	E 	EJCDDD	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	Es   >AA	bad_valuer   r^   c                 T   t          j        | j        |g          }t          j        |          rJd}t	          j        t          |          5  t          j        |          }d d d            n# 1 swxY w Y   nt          j        |          }t          |t           j
                   d S )Nz3The geometric standard deviation is only defined...r   )ri   r  r9	  r  r  r  rl   rc   r  r   rj   )rm   rA	  r   rZ  r   s        ru   test_returns_nan_invalid_valuez=TestGeometricStandardDeviation.test_returns_nan_invalid_value`  s    Idmi[11;y!! 	 KGnG<<< $ $jmm$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ *Q--CS"&!!!!!r.  c                     t          g dt          j        dddgg          }t          j        |d          }t          |t          j         dt          j        g                     d S )N)r   r   r   r   r   r/   r0   rP   r1   )r   ri   rj   rc   r  r   )rm   r  r<	  s      ru   test_propagates_nan_valuesz9TestGeometricStandardDeviation.test_propagates_nan_valuesk  s]    ===261a"3455j+++RXq"&k%:%:;;;;;r   c                     t          j        t          d          5  t          t	          j        | j        | j        j                  t          j	                   d d d            d S # 1 swxY w Y   d S )NzDegrees of freedom <= 0r   rx   )
r  r  rl   r   rc   r  r9	  r.   ri   r  r  s    ru   )test_ddof_equal_to_number_of_observationszHTestGeometricStandardDeviation.test_ddof_equal_to_number_of_observationsp  s    \.0IJJJ 	U 	UDM8JKKKRVTTT	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	U 	Us   >A''A+.A+c                 f    t          j        | j        d           }t          || j                   d S )NrP   )rc   r  array_3dr   r:	  r;	  s     ru   test_3d_arrayz,TestGeometricStandardDeviation.test_3d_arrayt  s1    jT:::T%788888r   c                 `    t          j        | j        d          }t          |ddg           d S )Nr  rP   g~d@g<
?)rc   r  rI	  r   r;	  s     ru   test_3d_array_axis_type_tuplez<TestGeometricStandardDeviation.test_3d_array_axis_type_tuplex  s3    jU;;;j*%=>>>>>r   c                     t          j        | j        d          }t          j        g dg dg dg          }t          ||           d S )Nr   rP   )gĶ?@gQӫ@g֌@gן7R@)g%Ȁ@ge@gv6B5 @g _?)gE ?gީ?gk̊Y?g%:?rc   r  rI	  ri   r   r   rm   r<	  gstd_desireds      ru   test_3d_array_axis_0z3TestGeometricStandardDeviation.test_3d_array_axis_0|  sa    jQ777xOOOOOOOOO!
  
 	\22222r   c                     t          j        | j        d          }t          j        g dg dg          }t          ||           d S )Nr   rP   )gN@g85@g'ĥ?gwth?)gHnaX?gG?gBu?gE?rN	  rO	  s      ru   test_3d_array_axis_1z3TestGeometricStandardDeviation.test_3d_array_axis_1  sX    jQ777xLLLLLL!
   	\22222r   c                     t          j        | j        d          }t          j        g dg dg          }t          ||           d S )Nr/   rP   )gt80?gі?g?)gۘ]~?gmT6(?g	G?rN	  rO	  s      ru   test_3d_array_axis_2z3TestGeometricStandardDeviation.test_3d_array_axis_2  sX    jQ777x??????!
   	\22222r   c                    t           j                            | j        dk    | j                  }d}t	          j        t          |          5  t          j        |d          }d d d            n# 1 swxY w Y   t          j        | j        d          }g dg dg}t          ||           t          |j        |           d S )Nr   z:`gstd` support for masked array input was deprecated in...r   r/   rP   r   r  )ri   r  masked_whererI	  r  r  rw  rc   r  r   r   r  )rm   r  rZ  r<	  rP	  r  s         ru   test_masked_3d_arrayz3TestGeometricStandardDeviation.test_masked_3d_array  s    U 2DMBBN\,G<<< 	1 	1*Ra000K	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1z$-a888		999%\222[%t,,,,,s   A//A36A3N)r   r   r   ri   r   r9	  r:	  rg   rI	  r  r>	  r@	  r  r  r  r  rj   rC	  rE	  rG	  rJ	  rL	  rQ	  rS	  rU	  rX	  r   r   ru   r7	  r7	  M  s-       ry##a'H"M1a((H9 9 99 9 9E E E
 [[1b"&"&*ABB" " CB"< < <
U U U9 9 9? ? ?3 3 33 3 33 3 3- - - - -r   r7	  c            	         t          j        t          j        ddd          t          j        ddd          t          j        ddd          f          } d}d	}g d
}t          | |          D ]4\  }}t	          t          j        |||          j        |dd|            5t	          t          j        ddd          j        dd           d S )Nr  rc  r2   r  g?r  ffffff?r  i  )r   r   gs  gG|G{g	ɺM>6g>
ztt+g#ӌRM/gF׸fz2gU8u5g8M8gФ)Ba?g%վ?g*+a5?gś?gڒJ|>rZ   z
fail forp=)rH   err_msgrH  rb  gVݶ3;rG   )ri   r  re  r  r
   rc   	binomtestr   )ppr  r   r  r  r   s         ru   test_binomtestr^	    s   	S#q11T433T4335 
6 
6B 	AA( ( (G b'"" F F3EOAq!44;S(*4D4D4D	F 	F 	F 	F 	FC55</$&( ( ( ( ( (r   c                      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t          dz             D             }t          || dz
           d           <d S )Nr   )r8   r   r8   )r  r   r   r  )r  r~  r   r~  r  )r        ?r   r   r`	  r  )r        ?      ?r   rb	  ra	  r  )r  r        ?r   r   rc	  r  r  )	      ?      ?     ?     @?r   rg	  rf	  re	  rd	  )
      p?      ?      ?     @?r   r   rk	  rj	  ri	  rh	  )      `?      ?      ?      ?      ?r   rp	  ro	  rn	  rm	  rl	  r   rY   c                 F    g | ]}t          j        |d           j        S )r8   )rc   r\	  r   r  r;  r  s     ru   r  z#test_binomtest2.<locals>.<listcomp>  s*    HHHa1c**1HHHr   rX   rR   )r  r   )rE  rD  r  s     @ru   test_binomtest2rs	    s     
c
   +++888GGG	 	 		* 	* 	*	E 	E 	E	 	 	D" 1b\\ 9 9HHHH5Q<<HHHD$qs)R888889 9r   c                     d t          dd          D             } t          | t          j        t	          |           t
                               t          j        g d          }t          j        g d          }d t          dd          D             }d t          dd          D             }t          ||d	           t          ||d	           d S )
Nc           	      v    g | ]6}t          d d          D ]#}t          j        |||z  d|z            j        $7S )r/   rY   r   r  rc   r\	  r   rr	  s      ru   r  z#test_binomtest3.<locals>.<listcomp>  s]     9 9 95B<<9 9&' OAqsBqD))0 9 9 9 9r   r   rY   )Zr8   grq?g     ?glq?gx0f#?g%d)MO?g   	o?g6?g:X@?r~  gsw?g    ?gR'jMV?gEf?gF5a?gAQU?g'W?gk?rb	  g
ņB?g  ?g$?g{dU'?gD:B?gwV?gR0Nf?gOq?rg	  g[k^?g T+?gO?gggh(?gP-@?gOQ?g}^?gV7_i?rp	  ge$?gр?g#>?g5z@?g:?gf?gzP?g  ?     ?gg*),?g}A_?g}aA?gH]@_?g
y7s?gPG?g>)\R?gjc6?K?go; ,?g!O0?g?g}e?g5?g?!A^?gN/#?g*?    @?g?g?g3?g.1?gdT\1-?gt0W59?goQC?gX4J?   ?g
?gf?C"?g\6I?g4b?g|$or?gWNS~?gT?gXnc?   \?gY\?gp ^a?gX-K?g#c?g
3?g75Q?gMJ[?gP8R?)Zr8   gw	%?g     ?gS g?gv^?g*uCi?g  a?g]?gE9Q?r~  g/?g     ?g	x&~?g#?g5B?g	A'9?gpZ?gWV$u?rb	  gqIb?g  @N?g1Y?g5?gO?gc-?gk?g )?rg	  glMV?g?$?gT*r?gCqRv?grx?gωZ?gExY?g<T ?rp	  gJ9Ͻd?g `Ԗt?gT?gEz?gQ?g7C<*?g<?g~ K?rw	  g8?g~ȍEt?g⿒?g<v?gHE:?g8Z$?gbº5?gvC?rx	  g`Yw?gA?$??gE=?g4?g3?g{G9?gp?gH ?ry	  gz6f?g¯F?g(+?g	$V?gq^ws?g!?gXNJ?gK?rz	  g4P?g<q?gdV;?gy?g$w?gU<vO?gMX?g	șz*?r{	  giqSp?gMM?g0V$)?g]
yi/Q?gl?gl?g3Ȇ?gѾ_c?c           	      |    g | ]9}t          d d          D ]&}t          j        |dz   ||z  d|z            j        ':S r/   rY   r   r   rv	  rr	  s      ru   r  z#test_binomtest3.<locals>.<listcomp>$  a     < < <eArll< <)* qsAaCA..5 < < < <r   c           	      |    g | ]9}t          d d          D ]&}t          j        |dz
  ||z  d|z            j        ':S r}	  rv	  rr	  s      ru   r  z#test_binomtest3.<locals>.<listcomp>&  r~	  r   r[   rR   )r  r   ri   r  r5  r  r   r   )rc  binom_testm1binom_testp1res4_p1res4_m1s        ru   test_binomtest3r	    s   9 91b\\9 9 9Drws4yy#../// 8 
 
 
  LP 8 
 
 
  L>< <a< < <G< <a< < <G r::::r::::::r   c                        e Zd Zd Zd Zd ZdS )TestTrimc           	         t          j        d          }t          t          j        t	          j        |d                    t          j        d                     t          t          j        t	          j        |d                    t          j        d                     t          t          j        t	          j        |dd                    t          j        dd                     t          t          j        t	          j        |d	d                    t          j        d
d                     t          t	          j        |d          g            t          t	          j        |dd          g            t          t	          j        g d          g            t          t	          j        g d	d          g            t          t	          j        g d          g            t          j        d                              dd          }t          j        dd                              dd          }d}t	          j        |dd|          }t          t          j        ||          |           d}t	          j        |j        dd|          }t          t          j        ||          |j                   d S )NrY   r  rX   rc  r6   left)tailr/   tE]t?r0   r   r  r  r3   r1   r2   r   )r	  rQ   rP   r   )ri   r   r   sortrc   trim1rg   r~  )rm   r  rs  rQ   trimmeds        ru   
test_trim1zTestTrim.test_trim1/  sA   IbMMRWU[C001129R==AAARWU[C001129Q<<@@@RWU[Cf===>>Yq"%%	' 	' 	'RWU[E???@@Yq"%%	' 	' 	'U[C(("---U[Cf555r::: 	U[S))2...U[U888"===U[T**B/// IbMM!!!Q''i2&&q!,,+a6===RWW4000#666+ac3V$???RWW4000#%88888r   c           
         t          j        d          }t          t          j        t	          j        |d                    t          j        dd                     t          t          j        t	          j        |d                    t          j        g d                     t          t          j        t	          j        t          j        d                              dd	          d                    t          j        d	d
                              d	d	                     t          t          j        t	          j        t          j        d                              d	d          j        d                    t          j        g dg dg                     t          t          t          j        t          j        d                              d	d          j        d           t          t	          j        g d          g            t          t	          j        g d          g            t          t	          j        g d          g            d S )NrY   r	  r0   r5   rc  )r/   r0   r1   r2   r3   r4   r5   r  r3   r1   r  r  )r/   r5   rV   r  )r0   r6   r  rU   r  r  )ri   r   r   r	  rc   trimbothr   rg   r~  r   r   r  s     ru   test_trimbothzTestTrim.test_trimbothK  s   IbMMRWU^Au5566	!QHHHRWU^As3344X33344	6 	6 	6RWU^BIbMM,A,A!Q,G,GMMNNYq"%%--a33	5 	5 	5RWU^BIbMM,A,A!Q,G,G,I,02 2 3 3X~~~~~~>??	A 	A 	A 	j%.imm++Aq113T	; 	; 	; 	U^B,,b111U^B..333U^B--r22222r   c                 X   t          j        g d          }t          j        g d          }t          j        d                              dd          |d d f         }t          j        d                              ddd          |d d f         }t	          t          j        |d          t          j        g d	                     t	          t          j        |d          t          j        g d
                     t          j        g d          }t          j        d                              dd          |d d f         }t	          t          j        |d          t          j        g d                     g d}t	          t          j        |d          d           t	          t          j        g dd          d           t           j                            d           t           j        	                    dd          }dD ]R}t          j        |d|          }t          j        t          j
        ||d          d          }	t	          ||	           St          j        |dd           }t          j        |                                d          }	t	          ||	           t          t          t
          j        |d           t	          t          j        g d          t           j                   t	          t          j        g d          t           j                   d S )N)r1   r5   r/   r   r6   r2   rX   r   r4   r0   r3   )r0   r2   r   r   r/   r1   r  r3   r1   FrR  r  )r:   r@   g      -@g     4@r  )r   r   r0   r/   )r   r   r   r(  r  rW  )r4   rY   rZ   rU   r   r3   r  r   r2   r   r  rX   ra   r6   r  r  r  r  r/   rV   r1   r[   r5   r0   rW   )r2   r1   r0   r   r/   r   r:   r7  r  )r2   r3   r1   r4   rd  )r   r   r/   r0   r^   rP   r   r  r   )ri   r   r   rg   r   rc   	trim_meanrl  r  r  r  r  r   r   rj   )
rm   r  idxr  r  idx4a4rQ   rD  rE  s
             ru   test_trim_meanzTestTrim.test_trim_mean]  s   H77788h)))**Yr]]""1a((aaa0Yr]]""1as"33CF;U_R..X44455	7 	7 	7U_R..X22233	5 	5 	5x%%Yr]]""1a((qqq1U_R..X;;;<<	> 	> 	>% % %U_Q--t444U_]]]D993??? 		tIb|44$ 	% 	%D?1d666D?2;q$#:#:DAADt$$$$q$T222qwwyy$//T4   j%/1c::: 	U_R--rv666U_R--rv66666r   N)r   r   r   r	  r	  r	  r   r   ru   r	  r	  -  sA        9 9 983 3 3$$7 $7 $7 $7 $7r   r	  c                   ,    e Zd Zd Zd Zd Zd Zd ZdS )TestSigmaClipc                 f   t          j        t          j        ddd          t          j        ddd          f          }d}t          j        |          \  }}}t          |                                |k               t          |                                |k                t          ||	                                ||
                                z  z
             t          ||	                                ||
                                z  z              t          |j        |j                   d S )Nr  r]      r   r  r2   r1   ri   r  re  rc   	sigmaclipr   minmaxr   rh   r   r.   rm   r  factr  r2  upps         ru   test_sigmaclip1zTestSigmaClip.test_sigmaclip1  s    NBKT266Ar18M8MNOOoa((3##S!&&((T!%%''\1222S!&&((T!%%''\1222QVQV$$$$$r   c                    t          j        t          j        ddd          t          j        ddd          f          }d}t          j        |||          \  }}}t          |                                |k               t          |                                |k                t          ||	                                ||
                                z  z
             t          ||	                                ||
                                z  z              t          |j        d           t          |j        d	           d S )
Nr  r]   r	  r   r  r2   r9   r1   $   r	  r	  s         ru   test_sigmaclip2zTestSigmaClip.test_sigmaclip2  s    NBKT266Ar18M8MNOOoat443##S!&&((T!%%''\1222S!&&((T!%%''\1222QVQQVR     r   c                 ~   t          j        t          j        ddd          t          j        ddd          f          }d}t          j        |||          \  }}}t          |                                |k               t          |                                |k                t          ||	                                ||
                                z  z
             t          ||	                                ||
                                z  z              t          |t          j        ddd                     d S )Nr  r]   rY   r0   ?)ri   r  re  rc   r	  r   r	  r	  r   rh   r   r	  s         ru   test_sigmaclip3zTestSigmaClip.test_sigmaclip3  s   NBKT266Kc1557 8 8oat443##S!&&((T!%%''\1222S!&&((T!%%''\1222QCr2233333r   c                     t          j        t          j        ddd          t          j        ddd          f          }d}t          j        |||          }d}t          ||           d S )	Nr  r]   rY   r	  r	  r0   r	  )clippedr  r  )ri   r  re  rc   r	  r   )rm   r  r	  r   r   s        ru    test_sigmaclip_result_attributesz.TestSigmaClip.test_sigmaclip_result_attributes  sl    NBKT266Kc1557 8 8oat,,2
C,,,,,r   c                 ~    t          j        d          }t          t          j        |          d         |           d S )NrX   r   )ri   r  r   rc   r	  r  s     ru   test_std_zerozTestSigmaClip.test_std_zero  s4    GBKKU_Q''*A.....r   N)r   r   r   r	  r	  r	  r	  r	  r   r   ru   r	  r	    s_        % % %	! 	! 	!	4 	4 	4- - -/ / / / /r   r	  c                       e Zd Zd Zej                            dddgg fddgdfddgdgfg          d             Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd ZdS )TestAlexanderGovernc                 B   g dg dg dg dg}t          j        |t           j                  }t          j        |t           j                  }t          j        |t           j                  }t          j        |t           j                  }t          j        | }t          j        | }t          j        | }t          j        | }	|j        |j        cxk    r|j        cxk    r|	j        k    sn J |j	        |j	        cxk    r|j	        cxk    r|	j	        k    sn 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   rN   )
ri   r   r*  rb  rE  r   rc   alexandergovernr   r   )
rm   r  
args_int16
args_int32
args_uint8args_float64	res_int16	res_int32	res_unit8res_float64s
             ru   test_compare_dtypesz'TestAlexanderGovern.test_compare_dtypes  s   4444444444446 Xd"(333
Xd"(333
Xd"(333
xBJ777):6	):6	):6	+\: I$4 7 7 7 7 7 7 7 7$/$67 7 7 7 7 7#y': = = = =#= = = ='2'<= = = = = = = =r   r2  r   r/   c                    t          j        t          t                    5  t	          j        | }t          |j        t          j	                   t          |j
        t          j	                   d d d            d S # 1 swxY w Y   d S r  )r  r  r   r   rc   r	  r   r   ri   rj   r   r  s      ru   test_too_small_inputsz)TestAlexanderGovern.test_too_small_inputs  s     \,4IJJJ 	- 	-'.C///RV,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-r  c                     t          t          d          5  t          j        ddgt          j        t          j        g           d d d            d S # 1 swxY w Y   d S )NzInput samples must be finite.r   r   r/   )r   r   rc   r	  ri   r  r  s    ru   test_bad_inputsz#TestAlexanderGovern.test_bad_inputs  s    :-LMMM 	< 	<!1a&2626*:;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<s   .AAAc                     g d}g d}g d}t          j        |||          }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/@gQ\
@gRh gIF@gpZ>q@g7D @g-ѪZng(Q<.@gON/@g	Ogҷ%6gs&@gw)ܿg789Ŀgzp"@gzl @g57@g>m@*a"@g,ZbI@gX9
]?g3g1@gg"Jbgy:@j-g2A g;@gL97vp,+@gp/rg"@gfT|7g^v+g٘Yg0/gglA! &@go@)g!_5*gqTEgg1$@g	a, @gˤ$g9%gZ@gT6U'@gS g6aGn*@gO@g\\"g^4w@g0gr~5@gDP=@gٿԙg:4R/gOx]r!@gU4 gta)B@g,Gg2$@gD%?gI,VL&g@gч
;g5@gWJc@gYjK@@)gj7#@g<e,g}m(@gr2g#^9gr/P@g:RO!g'9?g6F
?gcʱ'gt*&gg~*0Ώ7@gWzx>gIK'@g?Ң@g7C5@g;C>ϯUg7@g)n}.^@gFQ?gsdlT6?Nrc   r	  r   r   r   )rm   r1  twoeightsolns        ru   test_compare_rz"TestAlexanderGovern.test_compare_r  sz    :" " "	I 	I 	I7 7 7 $S#u55(=>>>%;<<<<<r   c                     g d}g d}g d}t          j        |||          }t          |j        dd           t          |j        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~@gp=
~@gףp=
k@gR@gQ2@g8@g`@g)\`@g=
ףp@g(\#@g@g=
ףpE@gQ@g
ףp=@gףp=
Մ@g33333#@)g=
ףpt@g{G&u@gq=
ףv@gQDy@g     X{@g\(P}@g]~@gt~@gzG~@g)\~@g1@gzG@)gGz8@g     @gp=
ב@g
ףp=@gGzԀ@gq=
ףր@gRi@g{Gt@gw@g=
ףp@gQS@gQ@g(\©@gQ-@gQ@g]FxK@rj  r  g R8߱?r3  g.UikL@g&Zݱ?Nr	  )rm   youngmiddleoldr	  s        ru   test_compare_scholarz(TestAlexanderGovern.test_compare_scholar  s    0 0 08 8 8G G G$UFC88T::::W48888	: 	111Z00000r   c                     g d}g d}t          j        ||          }t          |j        dd           t          |j        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
        )gQhgMOgY9gnSgdȿg}"Ogиp $?g8~4?g
p?gZ?g)J=?gX?gpG?gᛦ?gg?gh8en?g?guwg?gbX?g9SI?)gN]g	cZgAJigMg'gk,	Pg<gΈ׿g%zrKտg0BxҿgPNg:ǀgvꭁg?k~?gI\߇?gi?g<)?g0Xr?g
F%u?gsFZ*o?g7n:?g[z4?r  r  gOZ}?g9$?g6MDd}?Nr	  )rm   rB  rC  r	  s       ru   test_compare_scholar3z)TestAlexanderGovern.test_compare_scholar3I  s    " " "! ! ! $R,,t<<<<XD9999	8 		222Y/////r   c                     g ddt           j        gg}t          j        | }t	          |j        t           j                   t	          |j        t           j                   d S )Nr>  r   ri   rj   rc   r	  r   r   r   )rm   r  r   s      ru   test_nan_policy_propogatez-TestAlexanderGovern.test_nan_policy_propogate{  sQ    q"&k*#T*SZ(((S]BF+++++r   c                     g ddt           j        gg}t          t          d          5  t	          j        |ddi d d d            d S # 1 swxY w Y   d S )Nr>  r   r  r   r   r   )ri   rj   r   r   rc   r	  )rm   r  s     ru   test_nan_policy_raisez)TestAlexanderGovern.test_nan_policy_raise  s    q"&k*:-LMMM 	= 	=!4<G<<<	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=s   AAAc                     dddt           j        dgdt           j        ddgg}g dg dg}t          j        |d	d
i}t          j        | }t	          |j        |j                   t	          |j        |j                   d S )Nr   r/   r0   r1   r  r  r>  )r   r  r  r   r   r	  )rm   args_nanargs_no_nanres_nan
res_no_nans        ru   test_nan_policy_omitz(TestAlexanderGovern.test_nan_policy_omit  s    1bfa(1bfb"*=>#||[[[1'EfEE*K8
W^Z%6777W&
(<=====r   c                 *   d}t          j        t          j        |          5  t          j        g dg d          }t          |j        t          j                   t          |j	        t          j                   d d d            d S # 1 swxY w Y   d S )Nz9An input array is constant; the statistic is not defined.r   r  r  )
r  r  rc   r  r	  r   r   ri   rj   r   )rm   r   r   s      ru   r  z'TestAlexanderGovern.test_constant_input  s    I\%4C@@@ 	- 	-'(=(=(=(=(=(=? ?C///RV,,,		- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   ABBBN)r   r   r   r	  r  r  r  r	  r	  r	  r	  r	  r	  r	  r	  r  r   r   ru   r	  r	    s        > > >( [Vq!fb\QFA;!Q!$NOO- - PO-< < <
@= @= @=D01 01 01d00 00 00d, , ,= = =
> > >- - - - -r   r	  c            	          e Zd Zd Zd Zd Zd Zd Zd Ze	j
                            d ej        g d           ej        g d	          ej        d
ff ej        g d           ej        g d          ej        ej        ffg          d             Ze	j
                            dg d          d             Zd Zd Zd Zd Ze	j
                            ddg dfg          d             Zd Zd ZdS )TestFOneWayc                 ~    t          j        ddgddg          \  }}t          |d           t          |d           d S )Nr   r/   r   r   rc   f_onewayr   rm   r	  r  s      ru   test_trivialzTestFOneWay.test_trivial  sE    ~q!fq!f--1QQr   c                     t          j        ddgddg          \  }}t          |d           t          |dt	          j        d          z
  d           d S )	Nr   r/   r1   r-  r   r8   r  rA  )rc   r	  r   r   ri   r   r	  s      ru   r  zTestFOneWay.test_basic  sY     ~q!fq!f--1Q1rws||+%888888r   c                     t          j        dgdgg d          \  }}t          |d           t          |d           d S )Nr/   r  r  r~  r	  r	  s      ru   test_known_exactzTestFOneWay.test_known_exact  sK     ~qcA3			221 	QQr   c                     t          j        ddgt           j                  }t          j        ddgt           j                  }t          j        ||          \  }}t          |dd           d S )	N    rN       gŸ?r  rA  )ri   r   uint16rc   r	  r   )rm   r  r  r	  r  s        ru   test_large_integer_arrayz$TestFOneWay.test_large_integer_array  si    Hc3Zry111Hc3Zry111~a##1 	.U;;;;;;r   c                     t          j        ddgt           j                  }t          j        ddgt           j                  }t          j        ||          }d}t          ||           d S )Nr	  r	  rN   r	  r	  r  )ri   r   r	  rc   r	  r   )rm   r  r  r   r   s        ru   test_result_attributesz"TestFOneWay.test_result_attributes  sb    Hc3Zry111Hc3Zry111nQ"",
C,,,,,r   c                    g d}|D ]q}d}t           j                            t           j                            t           j                            t
                    d|                    }t          |          5 }|                                                    d          }d d d            n# 1 swxY w Y   d |dd         D             }t          j
        |d	          }|j        \                      t                    t          j                  }	t          |d
         d                   }fd|	D             }
t!          j        |
 }d}||v rd}t%          |d
         ||d|            sd S )N)z
SiRstv.datz
SmLs01.datz
SmLs02.datz
SmLs03.datzAtmWtAg.datz
SmLs04.datz
SmLs05.datz
SmLs06.dat
SmLs07.dat
SmLs08.dat
SmLs09.datrQ  zdata/nist_anova
c                 ^    g | ]*}|                                 |                                +S r   )stripsplit)r  lines     ru   r  z)TestFOneWay.test_nist.<locals>.<listcomp>  s<     * * *$ JJLL* * * *r   rJ  r  r  )skiprowsr   r^   c                 (    g | ]}|k             S r   r   )r  r  r   rn   s     ru   r  z)TestFOneWay.test_nist.<locals>.<listcomp>  s!    ---1QqAvY---r   )r	  r	  r	  r3  zFailing testcase: )rB  r[	  )ospathabspathjoindirname__file__openreadr	  ri   loadtxtr~  ra  r  uniquerN  rc   r	  r   )rm   	filenames	test_caserB  fnamer  content	certifieddatafcatyxlistr   hard_tcr   rn   s                @@ru   	test_nistzTestFOneWay.test_nist  s   ? ? ?	 # 	F 	FIDGOOBGLL1J1J1BI%O %O P PEe /&&((..../ / / / / / / / / / / / / / /* *'"R%. * * *IJur222E7DAqA9Q<<Dil2&''A--------E.%(C AGG##CFAD$D$D$DF F F F F-	F 	Fs   =(B11B5	8B5	za, b, expected)r  r  r  r  r   c                     d}t          j        t          j        |          5  t          j        ||          \  }}|sJ ||k                	 d d d            d S # 1 swxY w Y   d S )N%Each of the input arrays is constant;r   )r  r  rc   r  r	  )rm   r  r  rd  r   r  r  s          ru   r  zTestFOneWay.test_constant_input  s     6\%4C@@@ 	$ 	$>!Q''DAq##a8m####	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$s   )AA!ArQ   )r  r^   r   r   c                 Z   t          j        g dg dg dg dg dg          }t          j        g dg dg dg dg d	g d
g dg dg          }t          j        g dg dg dg dg          }|dv r|j        }|j        }|j        }d}nd}d}t          j        t
          j        |          5  t          j        ||||          \  }}d d d            n# 1 swxY w Y   dD ]}	t          j        t          j        ||	|          t          j        ||	|          t          j        ||	|                    \  }
}t          ||	         |
d           t          ||	         |d           dD ]}	t          j        t
          j        |          5  t          j        t          j        ||	|          t          j        ||	|          t          j        ||	|                    \  }
}t          ||	         |
           t          ||	         |           d d d            n# 1 swxY w Y   d S )N)r   r1   r0   r0   )r/   r2   r0   r0   )r0   r3   r0   r0   rB  )r0   r   r2   r0   )r1   r3   r2   r0   )r1   r0   r2   r0   )r   r2   r2   r0   )r2   r2   r2   r0   )r/   r0   r2   r0   )r5   r/   r2   r0   )r/   r/   r2   r0   )r1   r0   r1   r0   )r1   r/   r1   r0   )r2   r1   r1   r0   )r^   r   r   r   r
  r   rP   r  r  rA  r  )ri   r   r~  r  r  rc   r  r	  taker   r   )rm   rQ   r  r  r  	take_axisr  r  r  r  fjpjs               ru   test_2d_inputszTestFOneWay.test_2d_inputs  s   Hlll"ll"ll"ll"ll	$ % %
 Hlll"ll"ll"ll"ll"ll"ll"ll$ % % Hlll"ll"ll"ll$ % %
 7??AAAIII:\%4HEEE 	6 	6>!Q555DAq	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6
  	2 	2A^BGAq)$<$<$&GAq)$<$<$&GAq)$<$<> >FB AaD"51111AaD"511111 	' 	'Ae8III ' '1i(@(@(*1i(@(@(*1i(@(@B BB QqT2&&&QqT2&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '	' 	's%   0CCCBHH#	&H#	c           
         dt          j        dd                              ddd          z  }dt          j        dd                              dd	d          z  }t          j        dt          j        dd
                              ddd          z            }t	          j        |||d          \  }}|j        dk    sJ |j        dk    sJ t          |j        d                   D ]}t          |j        d                   D ]l}t	          j        ||d d |f         ||d d |f         ||d d |f                   \  }}	t          ||||f                    t          |	|||f                    md S )Nr   r      r1   r2   r4   r/      r5   q   rP   )r1   r4   r   )	ri   r   rg   cosrc   r	  r  r  r   )
rm   r  r  r  r  r  r  r  fijpijs
             ru   test_3d_inputszTestFOneWay.test_3d_inputs  s   biY''//1a888biY''//1a888F1RYsI..66q!Q???@@~aAA...1w&    w&    qwqz"" 	. 	.A171:&& . . >!Aqqq!G*a111aj!Aqqq!G*MMSQq!tW---Qq!tW----.	. 	.r   c                     t          j        t          t                    5  t	          j        g dg g d          }t          |t          j        t          j        f           d d d            d S # 1 swxY w Y   d S )Nr   rT  r  )	r  r  r   r   rc   r	  r   ri   rj   r[  s     ru   test_length0_1d_errorz!TestFOneWay.test_length0_1d_error-  s    \,4IJJJ 	3 	3^IIIr<<<@@F"&"&!1222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   AA//A36A3c                    t          j        t          t                    5  d}t	          j        d|f          }t	          j        d|f          }t	          j        d|f          }t          j        |||          \  }}t	          j        |ft          j	                  }t          ||           t          ||           d d d            d S # 1 swxY w Y   d S )Nr   r0   r1   r   r2   r  )r  r  r   r   ri   r  rc   r	  r}   rj   r   )rm   ncolsr  r  r  r  r  nanss           ru   test_length0_2d_errorz!TestFOneWay.test_length0_2d_error3  s
   \,4IJJJ 	" 	"EE
##AE
##AE
##A>!Q**DAq7E8777DD!!!D!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s   BCCCc                     t          j        t                    5  t          j        dgdgdgdg          }t          |t          j        t          j        f           d d d            d S # 1 swxY w Y   d S )NrX   rY   rZ   r[   )r  r  r   rc   r	  r   ri   rj   r[  s     ru   test_all_length_onezTestFOneWay.test_all_length_one>  s    \,-- 	3 	3^RD2$rd;;F"&"&!1222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   AA))A-0A-r  r   rT  c                     d}t          t          |          5  t          j        |  d d d            d S # 1 swxY w Y   d S )Nz$At least two samples are required...r   )r   rF  rc   r	  )rm   r  rZ  s      ru   test_too_few_inputszTestFOneWay.test_too_few_inputsC  s    89G444 	" 	"ND!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"s   599c                     t          j        d          }t          j        d          }t          t                    5  t	          j        ||d           d d d            d S # 1 swxY w Y   d S )Nr  r2   r1   r/   rP   )ri   r  r   r$   rc   r	  rm   r  r  s      ru   test_axis_errorzTestFOneWay.test_axis_errorI  s    GFOOGFOO9%% 	) 	)N1aa((((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)   A""A&)A&c                     t          j        d          }t          j        d          }t          t                    5  t	          j        ||d           d d d            d S # 1 swxY w Y   d S )Nr  r)
  r   rP   )ri   r  r   r   rc   r	  r*
  s      ru   test_bad_shapeszTestFOneWay.test_bad_shapesO  s    GFOOGFOO:&& 	) 	)N1aa((((	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	) 	)r,
  N)r   r   r   r	  r  r	  r	  r	  r
  r  r  r  ri   r   r  rj   r  r
  r
  r
  r#
  r%
  r'
  r+
  r.
  r   r   ru   r	  r	    s         9 9 9  < < <- - -F F F@ [-	,,,		)))!4!4rvqkB	,,,		,,,!7!7"&"&9IJ0
  $ $	 $ [V^^^44-' -' 54-'^. . ."3 3 3	" 	" 	"3 3 3
 [Vb999,%788" " 98"
) ) )) ) ) ) )r   r	  c                   J    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 ZdS )TestKruskalc                    dg}dg}t          j        ||          \  }}t          |d           t          |t           j        j                            |d                     t          j        t          j        |          t          j        |                    \  }}t          |d           t          |t           j        j                            |d                     d S )Nr   r/   r   )	rc   kruskalr   r
   r+  r  r,  ri   r   rm   r   rn   hr  s        ru   test_simplezTestKruskal.test_simpleW  s    CC}Q""1QAu27::1a@@AAA}RXa[["(1++661QAu27::1a@@AAAAAr   c                    g d}g d}t          j        ||          \  }}t          |dd           t          |t           j        j                            dd                     t          j        t          j        |          t          j        |                    \  }}t          |dd           t          |t           j        j                            dd                     d S )Nr   r/   r1   r3   r5   rX   r	  rX   rG   r   )rc   r2
  r
   r+  r  r,  ri   r   r3
  s        ru   r  zTestKruskal.test_basica  s    OO}Q""1Au"5555Au27::5!DDEEE}RXa[["(1++661Au"5555Au27::5!DDEEEEEr   c                 v    dg}ddg}d}d}||z  }t          j        ||          \  }}t          ||           d S )Nr   r/   r`	  r  )rc   r2
  r   rm   r   rn   h_uncorrr  rd  r4
  r  s           ru   test_simple_tiezTestKruskal.test_simple_tiek  sR    CF*d?}Q""1 	Q!!!!!r   c                     g d}g d}d}dt          d          dz  z
  }||z  }t          j        ||          \  }}t          ||           d S )N)r   r   r   r/   )r/   r/   r/   r/   r   r        )rN  rc   r2
  r
   r9
  s           ru   test_another_tiezTestKruskal.test_another_tiev  se    LLLL>5,--::d?}Q""1Ax(((((r   c                    g d}g d}ddg}d}dt          d          dz  z
  }||z  }t          j        |||          \  }}t          ||           t          |t          j        j                            |d                     d S )Nr  r  r/   rF   r   r=
  r>
  )rN  rc   r2
  r
   r+  r  r,  )	rm   r   rn   rK  r:
  r  rd  r4
  r  s	            ru   test_three_groupszTestKruskal.test_three_groups  s    IIIIFG5,--::d?}Q1%%1Ax(((Au27::1a@@AAAAAr   c                     g d}g d}g }t          j        t          t                    5  t	          t          j        |||          t          j        t          j        f           d d d            d S # 1 swxY w Y   d S )Nr  r  r   )	r  r  r   r   r   rc   r2
  ri   rj   )rm   r   rn   rK  s       ru   r  zTestKruskal.test_empty  s    IIII\,4IJJJ 	C 	Cq!Q//"&"&1ABBB	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	Cs   ;A33A7:A7c                 d    g d}g d}t          j        ||          }d}t          ||           d S )Nr   r7
  r  )rc   r2
  r   )rm   r   rn   r   r   s        ru   test_kruskal_result_attributesz*TestKruskal.test_kruskal_result_attributes  sB    OOmAq!!,
C,,,,,r   c                    t          j        d          }t           j        |d<   t          t	          j        ||          t           j        t           j        f           t          t	          j        ||d          d           t          t          t          j        ||d           t          t          t          j        ||d           d S )Nr   r6   r   r   r  r   r   )	ri   r   rj   r   rc   r2
  r   r   r   r  s     ru   r  zTestKruskal.test_nan_policy  s    IcNNv!U]1a((2626*:;;;EM!Q6BBBJOOOj%-A'JJJJj%-A(KKKKKKr   c                     d}t           j                            |          }t           j                            |          dz   }t          j        ||          \  }}d}t          ||           d S )Nrq  rH  r   )ri   rl  r  rc   r2
  r
   )rm   r  r   rn   r4
  r  rd  s          ru   test_large_no_samplesz!TestKruskal.test_large_no_samples  sb    IOOAIOOA#}Q""1Ax(((((r   c                     d}t          j        t          |          5  t          j                     d d d            d S # 1 swxY w Y   d S )Nz-Need at least two groups in stats.kruskal\(\)r   )r  r   r   rc   r2
  rm   rZ  s     ru   test_no_args_gh20661z TestKruskal.test_no_args_gh20661  s    B]:W555 	 	MOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   ?AAN)r   r   r   r5
  r  r;
  r?
  rA
  r  rD
  r  rG
  rJ
  r   r   ru   r0
  r0
  V  s        B B BF F F	" 	" 	") ) )
B 
B 
BC C C- - -L L L) ) )    r   r0
  c                   "   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zg d
Zej                            dg d          ej                            de          d                         Zej                            de          d             ZdS )TestCombinePvaluesc                 `    t          j        g dd          \  }}t          |dd           d S )Nri  rc  r  r  rW  gf?r1   rG   rc   combine_pvaluesr
   )rm   xsqr  s      ru   test_fisherzTestCombinePvalues.test_fisher  s:    &}}}XFFFQAwA666666r   c                 `    t          j        g dd          \  }}t          |dd           d S )NrN
  stoufferrW  S:X?r1   rG   rO
  rm   Zr  s      ru   test_stoufferz TestCombinePvalues.test_stouffer  s:    $]]]:FFF1AwA666666r   c                 `    t          j        g dd          \  }}t          |dd           d S )N)r8   r8   r8   rT
  rW  r8   r1   rG   rO
  rV
  s      ru   test_stouffer2z!TestCombinePvalues.test_stouffer2  s:    $\\\*EEE1As222222r   c                     t          j        g ddt          j        d                    \  }}t	          |dd           d S )NrN
  rT
  r0   rX  r  rU
  r1   rG   )rc   rP
  ri   r  r
   rV
  s      ru   test_weighted_stoufferz)TestCombinePvalues.test_weighted_stouffer  sK    $]]]:-/WQZZ9 9 91AwA666666r   c                     t          j        g ddt          j        d                    \  }}t	          |dd           d S )NrN
  rT
  )r   r1   r6   r\
  g46<?r1   rG   )rc   rP
  ri   r   r
   rV
  s      ru   test_weighted_stouffer2z*TestCombinePvalues.test_weighted_stouffer2  sP    $]]]:-/Xi-@-@B B B1Av1555555r   c                 `    t          j        g dd          \  }}t          |dd           d S )NrN
  r&  rW  gE
)??r1   rG   rO
  rV
  s      ru   test_pearsonzTestCombinePvalues.test_pearson  s:    $]]]9EEE1AwA666666r   c                 `    t          j        g dd          \  }}t          |dd           d S )NrN
  tippettrW  gBi?r1   rG   rO
  rV
  s      ru   test_tippettzTestCombinePvalues.test_tippett  s:    $]]]9EEE1Av1555555r   c                 `    t          j        g dd          \  }}t          |dd           d S )N)r  r  r  mudholkar_georgerW  g&?r1   rG   rO
  rV
  s      ru   test_mudholkar_georgez(TestCombinePvalues.test_mudholkar_george  s;    $\\\:LMMM1AxQ777777r   c                     t          j        g dd          \  }}t          j        g dd          \  }}t          j        g dd          \  }}t          d||z   z  |d           d S )	NrN
  rf
  rW  r  r&  r8   r1   rG   rO
  )rm   rW
  r  Z_fp_fZ_pp_ps          ru   2test_mudholkar_george_equal_fisher_pearson_averagezETestCombinePvalues.test_mudholkar_george_equal_fisher_pearson_average  s}    $]]];MNNN1(xHHHS(yIIISC3s7OQA>>>>>>r   )r  r&  rc
  rT
  rf
  r  )singler  rl  rX  c                 6   d\  }}t           j                            d          }|dk    rHt          j        ||f|                    |                    }t          j        dd|          |d d df<   nk|dk    r1t          j        ||ft          j        dd|                    j        }n4|dk    r.t          j        |                    dd	||f
          d          }fd|D             }t          j        t          j	        |          dk              sJ d S )N)rX   r4   l	   TrU(	"b-= rn
  r  r  r   r  rl  r   rd  rP   c                 H    g | ]}t          j        |           d         S )rW  r   )rc   rP
  )r  r  rX  s     ru   r  z8TestCombinePvalues.test_monotonicity.<locals>.<listcomp>  s>     
 
 
 !'&999!<
 
 
r   )
ri   rl  rm  r}   re  r~  r	  r6  r  diff)rm   r  rX  r
  r  rq  pvaluesscombined_pvaluess     `     ru   test_monotonicityz$TestCombinePvalues.test_monotonicity  s0    1i##$KLL hw1vszz!}}55H[c155HQQQTNNw1vr{3Q'?'?@@BHH  ws{{1aq!f{==AFFFH
 
 
 
#
 
 
 vbg.//145555555r   c                 n    t          j        g d|          }t          |j        |j        f|           d S )NrN
  rW  )rc   rP
  r   r   r   )rm   rX  r   s      ru   r  zTestCombinePvalues.test_result  s:    #MMM&AAAcmSZ0#66666r   N)r   r   r   rR
  rX
  rZ
  r]
  r_
  ra
  rd
  rg
  rm
  rr  r  r  r  rt
  r  r   r   ru   rL
  rL
    s(       7 7 7
7 7 73 3 37 7 7
6 6 6
7 7 76 6 68 8 8? ? ? ONNG[Y(C(C(CDD[Xw//6 6 0/ ED6. [Xw//7 7 0/7 7 7r   rL
  c                   0    e Zd ZdZd Zd Zd Zd Zd ZdS )TestCdfDistanceValidationzg
    Test that _cdf_distance() (via wasserstein_distance()) raises ValueErrors
    for bad inputs.
    c           	          t          t          t          j        dgdgdgddg           t          t          t          j        dgdgddg           d S )Nr   r/   r1   r0   r   r   r   rc   wasserstein_distancer  s    ru   &test_distinct_value_and_weight_lengthsz@TestCdfDistanceValidation.test_distinct_value_and_weight_lengths  sW     	j%"<cA3aV	- 	- 	-j%"<qcA3AOOOOOr   c                     t          t          t          j        ddgdgddg           t          t          t          j        ddgdgddgdg           d S )Nr   r   r/   r0   ry
  r  s    ru   test_zero_weightz*TestCdfDistanceValidation.test_zero_weight
  sf     	j%"<!fqcAq6	+ 	+ 	+j%"<!fqcAq6A3	0 	0 	0 	0 	0r   c           	      \    t          t          t          j        ddgddgddgddg           d S )Nr   r   r/   r0   r^   ry
  r  s    ru   test_negative_weightsz/TestCdfDistanceValidation.test_negative_weights  s>    j%"<!fq!fq!fq"g	7 	7 	7 	7 	7r   c                     t          t          t          j        g ddg           t          t          t          j        dgg            d S r;  ry
  r  s    ru   test_empty_distributionz1TestCdfDistanceValidation.test_empty_distribution  s>     	j%"<b1a&IIIj%"<qc2FFFFFr   c           	      r    t          t          t          j        g dddgdt          j        dgddg           d S )Nr  r   )r   r   rc   rz
  ri   r  r  s    ru   test_inf_weightz)TestCdfDistanceValidation.test_inf_weight  sG    j%"<ii!Q!RVQ!Q	A 	A 	A 	A 	Ar   N)	r   r   r   r   r{
  r}
  r
  r
  r
  r   r   ru   rw
  rw
    st         
P P P0 0 07 7 7
G G GA A A A Ar   rw
  c                      e Zd ZdZd Zej                            dd          ej                            dd          ej                            dd          d	                                     Zej                            d
d          ej                            dd          ej                            dd          d                                     Z	ej                            d
d          ej                            dd          ej                            dd          d                                     Z
d Zej                            d
d          ej                            dd          ej                            dd          d                                     Zej                            d
d          ej                            dd          ej                            dd          d                                     Zd Zej                            dg d          ej                            dg d          d                         ZdS ) TestWassersteinDistanceNDz8 Tests for wasserstein_distance_nd() output values.
    c                    g d}g d}t          j        ||          }t          j        g d          }t          j        g d          }t          j        ||z            t          j        |          z  }t          ||           d S )N)r?  r?  r?  r?  r?  r?  r?  r?  r?  r?  )r1   r/   r3   r   r
  )r  r  r  r  r  r  r  r  r  r  r  r  )r4   r   )r-  r   rF   r   r   r   )r   gw@r  g;f?r   r   )rc   wasserstein_distance_ndri   r   r  r   )rm   r:  r;  r   flowdistrs  s          ru   test_published_valuesz/TestWassersteinDistanceND.test_published_values'  s    
" " "" " " +Aq11 x00011x@@@AAfTD[!!"&,,.S!!!!!r   n_value)r1   r  r  r(  )r0   r1   r4   max_repeats)r2   rX   c                 v   t           j                            d          }|                    d||t                    }|                    ||f          }t          j        ||d          }|                    t          j        |                    }t          j        t          j        t          |                    |          }	t          j	        |	|          }
|
                    t          |                    }||         ||         }}t          j        |||
|          }t          |dd	           d S )
Nl   na{F.aP	 r   )r.   rO   rd  r   rP   r/	  r   r  )ri   rl  rm  integersr  r  r  r   r5  bincountr^  rc   r
  r   )rm   r(  r
  r
  rq  repeatsu_valuesv_values	v_weightsrange_repeat	u_weightsr  r   s                ru   test_same_distribution_nDz3TestWassersteinDistanceND.test_same_distribution_nD:  s    i##$<==,,q+G3,GG::GT?:339XwQ777JJrvg//	y3w<<!8!8'BBKi@@@	I//&uoy/?)+Hh	9UUQU++++++r   nu)r5   r6   &   nv)r5   rZ   ra   )r0   r2   r  c                    t           j                            d          }|                    ||f          }t          j        ||f          }|                    |          }|                    |          }t          j        t           j                            |d          |          }	t          j        ||||          }
t          |
|	           d S )N   }&=:! rd  r   rP   r/	  )
ri   rl  rm  rM  r0	  rw  r  rc   r
  r   )rm   r
  r
  r(  rq  r
  r
  r
  r
  rs  r   s              ru   test_collapse_nDz*TestWassersteinDistanceND.test_collapse_nDN  s     i##$899::B::..8RJ''JJBJ''	JJBJ''	jq999MMM+Hh	9UUS!!!!!r   )r5   r   rj  )r   r/   r3   c                 b   t           j                            d          }|                    ||f          }|                    ||f          }|                    |          }|                    |          }t          j        ||||          }	|                    d|d          \  }
}|                    ||f          }t          j        ||
|d          }t          j        ||
t          j        |          d          }t          j        ||||          }t          ||	           d S )Nr
  rd  r   r/   rP   )	ri   rl  rm  rc   r
  r
  insertrM  r   )rm   r
  r
  r(  rq  r
  r
  r
  r
  rs  add_rownrows	add_valuer   s                 ru   test_zero_weight_nDz-TestWassersteinDistanceND.test_zero_weight_nD^  s   
 i##$899::B::..::B::..JJBJ''	JJBJ''	+Hh	9UUa!44JJUDMJ22	9Xw	BBBIi"(5//JJJ	+Hh	9UUS!!!!!r   c                    ddgddggt           j        t           j         ggddg}}}t          j        |||          }t	          |t           j                   t          j        d          5  t           j        t           j        ggt           j        t           j         gg}}t          j        ||          }t	          |t           j                   d d d            d S # 1 swxY w Y   d S )Nr   r/   r  r  )ri   r  rc   r
  r   r  rj   )rm   uvvvuwdistances        ru   test_inf_valuesz)TestWassersteinDistanceND.test_inf_valuesq  s    !fq!f%"&(9':QFB0R<<Xrv&&&[*** 	+ 	+vrv&'26BF7*;)<B4R<<H26***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+s   ,A#CC #C r  )r   r0   r2   c                 ,   t           j                            d          }|                    ||f          }|                    ||f          }|                    |          }|                    |          }t          j        ||||          }	|                    d|          }
|                                }t          j        ||
|d          }t          j        ||
|d          }t          j        ||||          }t          ||	           d S )Nl   Lq/ rd  r   r   rP   )ri   rl  rm  rc   r
  r
  r
  r   )rm   r
  r
  r(  rq  r
  r
  r
  r
  rs  add_dimr
  r   s                ru   test_multi_dim_nDz+TestWassersteinDistanceND.test_multi_dim_nD|  s    
 i##$788::B::..::B::..JJBJ''	JJBJ''	+Hh	9UU,,q$''JJLL	9Xw	BBB9Xw	BBB+Hh	9UUS!!!!!r   )r4   r[   r  )r/   r1   r4   c                    t           j                            d          }|                    ||f          }|                    ||f          }|                    |          }|                    |          }t          j        ||||          }	t          j        |          }
|
                    |          }|                    |          }t          j        ||z  |z   ||z  |z   ||          }t          ||	           d S )Nl   uAh~rd  re  )ri   rl  rm  rc   r
  ortho_grouprg  r   )rm   r
  r
  r(  rq  r
  r
  r
  r
  rs  r
  	transformshiftr   s                 ru   test_orthogonal_nDz,TestWassersteinDistanceND.test_orthogonal_nD  s    i##N33::B::..::B::..JJBJ''	JJBJ''	+Hh	9UU &&HH#H..	


%%+Hy,@5,H)1I)=)E)2I? ? 	S!!!!!r   c                    t           j                            d          }t          j        t
          d          5  |                    d          }|                    d          }t          j        ||          }d d d            n# 1 swxY w Y   t          j        t
          d          5  |                    d          }|                    d	          }t          j        ||          }d d d            n# 1 swxY w Y   t          j        t
          d
          5  |                    d          }|                    d          }t          j        ||          }d d d            d S # 1 swxY w Y   d S )Nl   e36^[Y{lz Invalid input values. The inputsr   )r1   rX   r  rd  )r3   r/   r4   z Invalid input values. Dimensions)r  )r0   r  z(Invalid input values. If two-dimensionalrQ  r  )ri   rl  rm  r  r   r   rc   r
  )rm   rq  r
  r
  r1  s        ru   test_error_codez)TestWassersteinDistanceND.test_error_code  sP   i##$>??]:-OPPP 	B 	Bzz{z33Hzzyz11H-hAAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B ]:-OPPP 	B 	Bzzuz--Hzzwz//H-hAAA	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B ]:<> > > 	B 	Bzzwz//Hzzvz..H-hAAA		B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	B 	Bs8   AB		BB/AC==DD#AE22E69E6u_size)r   rX   rH  v_sizec                    t           j                            d          }|                    |df          }|                    |df          }|                                }|                                }t	          j        ||          }t	          j        ||          }	t	          j        ||          }
t          |	|           t          |
|           |                    |          }|                    |          }t	          j        ||||          }t	          j        ||||          }	t	          j        ||||          }
t          |	|           t          |
|           d S )Nl   Ku@* r   rd  )ri   rl  rm  r  rc   rz
  r
  r   )rm   r
  r
  rq  r
  r
  u_values_flatv_values_flatd1d2d3r
  r
  s                ru   test_optimization_vs_analyticalz9TestWassersteinDistanceND.test_optimization_vs_analytical  sZ    i##K00::FA;://::FA;:// (( (( '}EE*8X>>*=-HHBBJJFJ++	JJFJ++	'}(19> >*8X(19> >*=-(19> >BBr   N)r   r   r   r   r
  r  r  r  r
  r
  r
  r
  r
  r
  r
  r
  r   r   ru   r
  r
  #  s        " " "& [Y44[VY//[]G44, , 54 0/ 54," [T:..[T;//[VZ00" " 10 0/ /." [T;//[T;//[VY//" " 0/ 0/ 0/" 	+ 	+ 	+ [T<00[T<00[VY//" " 0/ 10 10"" [T;//[T;//[VY//" " 0/ 0/ 0/"$B B B  [X{{{33[X{{{33    43 43     r   r
  c                   <    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	S )
TestWassersteinDistancez5 Tests for wasserstein_distance() output values.
    c                 V   t          t          j        ddgdgddgdg          d           t          t          j        ddgdgddgdg          d           t          t          j        ddgdgddgdg          d           t          t          j        g dg d          d           d S )	Nr   r   r8   r0   r  r/   r'  rT  r   rc   rz
  r  s    ru   r5
  z#TestWassersteinDistance.test_simple  s     	&1vsQFQC@@	 	 	 	2FQC!Q!& &	 	 	 	2FQC!Q!& &	 	 	 	2IIyyy" "	 	 	 	 	r   c           	          t          t          j        g dg d          d           t          t          j        g dddgg dddg          d           d S 	NrT  r  r   )r   r   r   r1   r1   r   r  r0   )r   rc   rz
  r  s    ru   test_same_distributionz.TestWassersteinDistance.test_same_distribution  sq     	U/			999EEqIII&|||aV'3||aV= =	 	 	 	 	r   c           	      B   t          t          j        dgdg          d           t          t          j        dgdg          d           t          t          j        g dg d          d           t          t          j        g dg d	g d
g d          d           d S )Nr   r   r  r2   rX   ri  )rY   rZ   r[   rV   r  )r<   g@r  )r  r4   rW  )r0   r   r   )r   r0   r   r:   r
  r  s    ru   
test_shiftz"TestWassersteinDistance.test_shift  s     	2A3<<a@@@2B4!==rBBB&8L8L8LMM	 	 	 	&'0yy)))= =	 	 	 	 	r   c           
          t          t          j        g dg dg dg d          t          j        g dg dg dg d                     d S N)r   r   r   r   r   r   r2   )r   r0   r0   r0   r0   r1   r1   )r   r   r   r   r   r   r   )r2   r   r   )r   r1   r0   r   r/   r1   r
  r  s    ru   test_combine_weightsz,TestWassersteinDistance.test_combine_weights  s     	&%%%'<'<'<%%%'<'<'<> > &yyy)))'0yy)))= =		> 	> 	> 	> 	>r   c                    t          j        ddd          }t          j        |          }t          t	          j        ||          t          j        t          j        |                               t          j        t          |                    }|d d d         }t          t	          j        ||||          t          j	        t          j        |          |                     d S )Nr  rI  r  r^   r/	  )
ri   r   r  r   rc   rz
  rh   r&  r5  r0	  )rm   r:  r;  r
  r
  s        ru   test_collapsez%TestWassersteinDistance.test_collapse   s     Ic2s##M!&q!,,GBF1II	  	  	  Ic!ff%%	dddO	&q!Y	BBJrvayy)444	6 	6 	6 	6 	6r   c           
          t          t          j        g dddgg dddg          t          j        ddgddgddgddg                     d S N)r   r/   r  r   r  r/   r
  r  s    ru   r}
  z(TestWassersteinDistance.test_zero_weight   sp    &~~~1v'0yy1a&: :&1v1v1v1vFF	H 	H 	H 	H 	Hr   c                    t          t          j        ddt          j        gddg          t          j                   t          t          j        ddt          j        gt          j         dg          t          j                   t          t          j        dt          j         t          j        gddg          t          j                   t                      5 }|                    t          d           t          t          j        ddt          j        gt          j        dg          t          j                   d d d            d S # 1 swxY w Y   d S Nr   r/   r   )	r   rc   rz
  ri   r  r   rk   rl   rj   rm   rt   s     ru   r
  z'TestWassersteinDistance.test_inf_values   sc    	&1bf~1v>>F	 	 	 	&1bf~|DDF	 	 	 	&BF7BF';aVDDF	 	 	    	CJJ~'7888*Aq"&>BFA;GG  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   A"EEEN)r   r   r   r   r5
  r
  r
  r
  r
  r}
  r
  r   r   ru   r
  r
    s                > > >6 6 6 H H H    r   r
  c                   6    e Zd ZdZd Zd Zd Zd Zd Zd Z	dS )	TestEnergyDistancez0 Tests for energy_distance() output values.
    c                    t          t          j        ddgdgddgdg          t          j        d          dz             t          t          j        ddgdgddgdg          t          j        d          dz             t          t          j        ddgdgddgdg          d           t          t          j        g dg d	          t          j        d          d
z             d S )Nr   r   r/   r8   r0   r  r   r'  rT  g3Ey?r   rc   energy_distanceri   r   r  s    ru   r5
  zTestEnergyDistance.test_simple4   s    	!1a&1#1vs;;GAJJO	 	 	 	E1FQC!Q!& &GAJJ	 	 	 	E1FQC!Q!& &	 	 	 	!)))YYY77GAJJ**	, 	, 	, 	, 	,r   c           	          t          t          j        g dg d          d           t          t          j        g dddgg dddg          d           d S r
  )r   rc   r
  r  s    ru   r
  z)TestEnergyDistance.test_same_distributionD   sl     	U*999iii@@!DDD!,,,Aq!fMM	 	 	 	 	r   c                     t          t          j        dgdg          t          j        d                     t          t          j        dgdg          t          j        d          dz             d S )Nr   r   r/   r  r2   gS[:XL	@r
  r  s    ru   r
  zTestEnergyDistance.test_shiftL   sm     	E11#s;;RWQZZHHH!2$,,GAJJ	! 	! 	! 	! 	!r   c           
          t          t          j        g dg dg dg d          t          j        g dg dg dg d                     d S r
  r   rc   r
  r  s    ru   r
  z'TestEnergyDistance.test_combine_weightsT   s     	!"7"7"79N9N9N"7"7"79N9N9NP P!)))YYY			999MM	O 	O 	O 	O 	Or   c           
          t          t          j        g dddgg dddg          t          j        ddgddgddgddg                     d S r
  r
  r  s    ru   r}
  z#TestEnergyDistance.test_zero_weight\   sk    !...1a&)))aVLL!1a&1a&1a&1a&AA	C 	C 	C 	C 	Cr   c                    t          t          j        ddt          j        gddg          t          j                   t          t          j        ddt          j        gt          j         dg          t          j                   t          t          j        dt          j         t          j        gddg          t          j                   t                      5 }|                    t          d           t          t          j        ddt          j        gt          j        dg          t          j                   d d d            d S # 1 swxY w Y   d S r
  )	r   rc   r
  ri   r  r   rk   rl   rj   r
  s     ru   r
  z"TestEnergyDistance.test_inf_valuesb   sY    	U*Aq"&>Aq6BBBFKKK!1a.BF7A,??F	 	 	 	!1rvgrv"6A??F	 	 	    	CJJ~'7888%q!RVnrvqkBB  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r
  N)
r   r   r   r   r5
  r
  r
  r
  r}
  r
  r   r   ru   r
  r
  0   s~         , , ,   ! ! !O O OC C C    r   r
  c                       e Zd Zg dZg dZdZd Zd Zd Zd Z	d Z
d	 Zej                            d
dg idg ig g dg          d             Zd Zd Zd Zd Zd ZdS )TestBrunnerMunzel)r   r/   r   r   r   r   r   r   r   r   r/   r1   r   r   r0   r0   r1   r0   r   r/   r0   r   r   r2   r1   r[   c                    t          j        | j        | j        d          \  }}t          j        | j        | j        d          \  }}t          j        | j        | j        d          \  }}t          j        | j        | j        d          \  }}t	          ||| j                   t	          ||| j                   t          ||k               t	          |d| j                   t	          |d| j                   t	          |d| j                   t	          |d| j                   t	          |d| j                   t	          |d| j                   d S )	Nr9  r?  r;  rG   |	&	@|	&	gҏGg?g@-pL?)rc   brunnermunzelre   r  r
   rH   r   r  s	            ru   test_brunnermunzel_one_sidedz.TestBrunnerMunzel.test_brunnermunzel_one_sidedy   s   $TVTVHHHB$TVTVKKKB$TVTVKKKB$TVTVHHHBB0@AAAAB0@AAAAbB 2(,(8	: 	: 	: 	:B 3(,(8	: 	: 	: 	:B 2(,(8	: 	: 	: 	:B 3(,(8	: 	: 	: 	:B 5(,(8	: 	: 	: 	:B 3(,(8	: 	: 	: 	: 	: 	:r   c                 N   t          j        | j        | j        d          \  }}t          j        | j        | j        d          \  }}t	          ||| j                   t	          |d| j                   t	          |d| j                   t	          |d| j                   d S )Nr7  r?  rG   r
  r
   ҏGw?rc   r
  re   r  r
   rH   r  s        ru   test_brunnermunzel_two_sidedz.TestBrunnerMunzel.test_brunnermunzel_two_sided   s    $TVTVMMMB$TVTVMMMBB0@AAAAB 2(,(8	: 	: 	: 	:B 3(,(8	: 	: 	: 	:B 5(,(8	: 	: 	: 	: 	: 	:r   c                 F   t          j        | j        | j                  \  }}t          j        | j        | j                  \  }}t	          ||| j                   t	          |d| j                   t	          |d| j                   t	          |d| j                   d S )NrG   r
  r
  r
  r
  r  s        ru   test_brunnermunzel_defaultz,TestBrunnerMunzel.test_brunnermunzel_default   s    $TVTV44B$TVTV44BB0@AAAAB 2(,(8	: 	: 	: 	:B 3(,(8	: 	: 	: 	:B 5(,(8	: 	: 	: 	: 	: 	:r   c           	          d}d}d}t          |dv           t          t          t          j        | j        | j        |||           d S )Nr  r  r  r  r   r   r   rc   r
  re   r  rm   r@  distributionr   s       ru   $test_brunnermunzel_alternative_errorz6TestBrunnerMunzel.test_brunnermunzel_alternative_error   s\     
#CCDDDj)ff!" 	" 	" 	" 	" 	"r   c                 N   t          j        | j        | j        d          \  }}t          j        | j        | j        d          \  }}t	          ||| j                   t	          |d| j                   t	          |d| j                   t	          |d| j                   d S )Nrn  r
  rG   r
  r
  g "H[?r
  r  s        ru   $test_brunnermunzel_distribution_normz6TestBrunnerMunzel.test_brunnermunzel_distribution_norm   s    $TVTV(KKKB$TVTV(KKKBB0@AAAAB 2(,(8	: 	: 	: 	:B 3(,(8	: 	: 	: 	:B 5(,(8	: 	: 	: 	: 	: 	:r   c           	          d}d}d}t          |dv           t          t          t          j        | j        | j        |||           d S )Nr7  r  r  )r  rn  r
  r
  s       ru   %test_brunnermunzel_distribution_errorz7TestBrunnerMunzel.test_brunnermunzel_distribution_error   s[    ! 
?2333j)ff!" 	" 	" 	" 	" 	"r   kwarg_updatern   r   r  c                 N   | j         | j        d}|                    |           t          j        t
          t                    5  t          j        di |\  }}d d d            n# 1 swxY w Y   t          |t          j                   t          |t          j                   d S )Nr  r   r   )re   r  rf  r  r  r   r   rc   r
  r   ri   rj   )rm   r
  r  r   r   s        ru   test_brunnermunzel_empty_imputz0TestBrunnerMunzel.test_brunnermunzel_empty_imput   s     vDF++l###\,4IJJJ 	> 	> % 3 = =f = =Iv	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	>Y'''VRV$$$$$s   A&&A*-A*c                 |   ddddddddddddddt           j        g}g d}t          j        ||d          \  }}t          j        ||d          \  }}t	          |t           j                   t	          |t           j                   t	          |t           j                   t	          |t           j                   d S )Nr   r/   r1   r
  r  r   )ri   rj   rc   r
  r   rm   re   r  r  rJ  r  r  s          ru   &test_brunnermunzel_nan_input_propagatez8TestBrunnerMunzel.test_brunnermunzel_nan_input_propagate   s    1aAq!Q1aArv>---$QkBBBB$QkBBBBR   R   R   R     r   c                     ddddddddddddddt           j        g}g d}d}d}d}t          t          t          j        |||||           t          t          t          j        |||||           d S )Nr   r/   r1   r
  r7  r  r   )ri   rj   r   r   rc   r
  )rm   re   r  r@  r
  r   s         ru   "test_brunnermunzel_nan_input_raisez4TestBrunnerMunzel.test_brunnermunzel_nan_input_raise   s    1aAq!Q1aArv>---!
j)!" 	" 	" 	" 	j)!" 	" 	" 	" 	" 	"r   c                 d   ddddddddddddddt           j        g}g d}t          j        ||d          \  }}t          j        ||d          \  }}t	          ||| j                   t	          |d| j                   t	          |d	| j                   t	          |d
| j                   d S )Nr   r/   r1   r
  r   r   rG   r
  r
  r
  )ri   rj   rc   r
  r
   rH   r
  s          ru   !test_brunnermunzel_nan_input_omitz3TestBrunnerMunzel.test_brunnermunzel_nan_input_omit   s    1aAq!Q1aArv>---$Qf===B$Qf===BB0@AAAAB 2(,(8	: 	: 	: 	:B 3(,(8	: 	: 	: 	:B 5(,(8	: 	: 	: 	: 	: 	:r   c                     g d}g d}d}t          j        t          |          5  t          j        ||d           ddd           dS # 1 swxY 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)
        rT  r  zDp-value cannot be estimated|divide by zero|invalid value encounteredr   r  r
  N)r  r  rl   rc   r
  r  s       ru   test_brunnermunzel_return_nanz/TestBrunnerMunzel.test_brunnermunzel_return_nan!  s     IIOOT\.444 	8 	8137777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8s   AAAc                     g d}g d}t          j        t          d          5  t          j        ||d          \  }}ddd           n# 1 swxY 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)
        rT  r  zdivide by zeror   rn  r
  Nr   )r  r  rl   rc   r
  r   )rm   r   rn   r1  r  s        ru   test_brunnermunzel_normal_distz0TestBrunnerMunzel.test_brunnermunzel_normal_dist!  s     IIOO\.0@AAA 	D 	D&q!(CCCDAq	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	DQs   AAAN)r   r   r   re   r  rH   r
  r
  r
  r
  r
  r
  r  r  r  r
  r
  r
  r
  r   r  r   r   ru   r
  r
  s   s'       222A)))AK: : :.: : :: : :" " "	: 	: 	:" " " [^sBi#r46R.@.@.B C C% %C C%	! 	! 	!" " ",: : :	8 	8 	8	 	 	 	 	r   r
  c                       e Zd ZdZd ZdS )TestRatioUniformsz{ Tests for rvs_ratio_uniforms are in test_sampling.py,
    as rvs_ratio_uniforms is deprecated and moved to stats.sampling c           	         t           j        j        }t          j         |t          j        d                              t          j        d          z  }t          j         |d                    }t           j                            ||| |d          }|                    d          }d}t          j	        t          |          5  t          j        ||| |dd          }d d d            n# 1 swxY w Y   t          ||           d S )	Nr/   r   i90  )umaxvminvmaxrf  rX   zEPlease use `RatioUniforms` from the `scipy.stats.sampling` namespace.r   rR  )rc   r  pdfri   r   samplingRatioUniformsrg  r  r  rw  rvs_ratio_uniformsr   )rm   r  r;  r  genr  deprecation_msgr  s           ru   test_consistencyz"TestRatioUniforms.test_consistency"!  s4   JNGAAbgajjMM""RWQZZ/wqqtt}}n**14qbq8= + ? ?WWR[[?\,ODDD 	> 	>)!TA2qr7<> > >B	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	> 	Rs   
C22C69C6N)r   r   r   r   r  r   r   ru   r  r  !  s/        H H    r   r  c                      e Zd ZdZ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             Z
ej                            dg dg dg          d             Zej                            dddg          ej                            dd	dg          ej                            dddg          d                                     Zd ZdS )TestQuantileTestzb Test the non-parametric quantile test,
    including the computation of confidence intervals
    c                 J   g d}d}t          j        t          |          5  t          j        |g           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          j        |ddg           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          j        |d	d
g           d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        |d           d d d            n# 1 swxY w Y   t          j        t          |          5  t          j        |d           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          j        |d           d d d            n# 1 swxY w Y   d}t          j        t          |          5  t          j        |                              d           d d d            d S # 1 swxY w Y   d S )NrT  z/`x` must be a one-dimensional array of numbers.r   z`q` must be a scalar.r   r/   )r  z-`p` must be a float strictly between 0 and 1.r8   r  )r  r}  z`alternative` must be one of...z	one-sidedr?  r  )r  r   r   rc   quantile_testr/  rT  s      ru   test_quantile_test_ivz&TestQuantileTest.test_quantile_test_iv6!  s   IIC]:W555 	% 	%$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% *]:W555 	- 	-aV,,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- B]:W555 	2 	2c4[1111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2]:W555 	( 	(Q''''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(]:W555 	+ 	+T****	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 4]:W555 	< 	<{;;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< I]:W555 	: 	:""66q999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s}   AAA,BBB9CC"%C"D''D+.D+E00E47E4F;;F?F?#(HHHzp, alpha, lb, ub, alternative)r  rZ	  gX݊?g蜶?r7  )r8   r  g-tA?gP"?r7  r  rZ	  g{gA?r9  r  r  gg @r;  c                     t          j        t          j        ddd                    }t          j        |||          }t          |                    |          ||gd           d S )Nr   r  ri  )r  r@  r   rA  )ri   rY  r   rc   r  r   r/  )rm   r  r  lbubr@  r   r   s           ru   test_R_ci_quantilez#TestQuantileTest.test_R_ci_quantileQ!  se      F29Qd++,,!!qkBBB//66RuMMMMMMr   zq, p, alternative, ref)rI  r  r7  gͯI	?)r	  r8   r7  gɍQ%e?c                     t          j        t          j        ddd                    }t          j        ||||          }t          |j        |d           d S )Nr   r  ri  r  r  r@  r7   rA  )ri   rY  r   rc   r  r   r   )rm   r  r  r@  rs  r   r   s          ru   test_R_pvaluezTestQuantileTest.test_R_pvaluee!  sW     F29Qd++,,!!qA;GGG
Ce444444r   r2  
continuousdiscreter@  r  c                    t          dt          |          z  t          |          z   |z            }t          j                            |          }|dk    r0|                    d          \  }}|                    d          }nB|                    ddd          }|                                }|                    dd          }t          j        ||||          }	|	                    |	          }
|d
k    r||
j	        k    }n||
j
        k    }||         D ]*}t          j        ||||          }	|	j        d|z
  k    sJ +||          D ]*}t          j        ||||          }	|	j        d|z
  k     sJ +d S )Nr4   r  r/   rd  rb  r   rY   r  r  r9  )r  r5  ri   rl  rm  r
  rc   r  r/  r3  r2  r   )rm   r2  r@  r  r  rq  r  r  rg  r   rI  i_insider   s                ru   test_pval_ci_matchz#TestQuantileTest.test_pval_ci_matcht!  s    As4yyL3{#3#33U:;;i##D))<::1:%%DAq**#*&&CC,,q"3,//C

AQ##A!#a[III$$e$<< &  bg~HHbf}HX 	* 	*A%cQ!MMMC:E	)))))hY 	* 	*A%cQ!MMMC:E	)))))	* 	*r   c                 <   g d}d}t          j        |ddd          }t          |j        |d           d	gd
z  dgdz  z   }t          j        dd                              d
          }t          j        |ddd          }t          |j        |d           d S )N)                                    rn        geX?r-  r  r7  r  r  rA  ;   r5   rT   h   r8   p   )r  r  r  r  r;  rn  r  )rc   r  r   r   r   pmf)rm   r   pvalue_expectedr   s       ru   test_match_conover_examplesz,TestQuantileTest.test_match_conover_examples!  s       !!sdLLL
O$???? DFbT5\!+s33377!7<<!!rSiHHH
O%@@@@@@r   N)r   r   r   r   r  r  r  r  ri   r  r  r  r   r5  r   r   ru   r  r  1!  su        : : :6 ['	G	G	G	F	F	F
rvg/	8
s%rvy	9	; N N N [ 	2	2	2	1	1	1	3 
5 5 
5 [VlJ%?@@[]VY,?@@[WsDk22$* $* 32 A@ A@$*LA A A A Ar   r  c                       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	          d5             Zd6d7ddg d8g d9gfd:d;ddg d8g d8g d8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 dAg dBg dBg dBg dBg dBgfgZe
j                            d4e	          e
j                                        dC                         ZdD ZdE ZdF ZdGS )HTestPageTrendTestr   r0   r  rX      i2  g:hў?FrV  i  gsH?i,0  gY@?)r|  rz  I   r  rz  `   rI  r0  rW  r	  rx  1   rw  +   r  rz  r  r  r}  r  rT   r  r  r  rH  )D   r-  r  "   r  r  A   X   rU   rw  r  r	  r	  C   E   r  rI  r  rJ  W   r  r<  rH  r:  r<  )rw  r[   U   r  O   rZ   \   V   rU   @   r   rH  r=  ra   r   Y   r  r<  r<  r	  6   r[   B   r  r  i
  gXY?rY  )r9   r  g @r2   r  rY   )r2   r1   r;   rX   r  rU   )r  r  rX   rZ   rV   r  iL  gs˜?T)r1   r0   r/   r   )r0   r1   r   r/   r>     gĞ?)r0   r/   r   r  rT     g>K=?)r3   r2   r1   r0   r/   r   )r   r0   r1   r2   r/   r3   i  gqူ?)r2   r1   r0   r/   r   )r1   r   r0   r/   r2   ri     ga?i  g;?)r4   r3   r2   r1   r0   r/   r   )r3   r2   r4   r1   r0   r/   r   r  u   g[^6?zL, p, ranked, method, datac                     t           j                            d           t          j        |||          }t          ||j                   t          ||j                   t          ||j	                   d S Nr  )rankedrX  
ri   rl  r  rc   page_trend_testr   r   r   r   rX  rm   Lr  rR  rX  r1  r   s          ru   test_accuracyzTestPageTrendTest.test_accuracy!  si    
	r#DGGGQ&&&3:&&&VSZ(((((r   i  g-lpW?)
rX   r6   r5   r4   r3   r2   r1   r0   r/   r   )
r   r5   r1   r4   r3   r2   r6   r0   r/   rX   i*  gh[?)
r6   r/   r5   r4   r3   r2   r1   r0   rX   r   r  i  g&]2?)r5   r4   r3   r2   r1   r0   r/   r   )r   r0   r2   r3   r1   r4   r/   r5   r  c                     t           j                            d           t          j        |||          }t          ||j                   t          ||j                   t          ||j	                   d S rQ  rS  rU  s          ru   test_accuracy2z TestPageTrendTest.test_accuracy2"  sk     		r#DGGGQ&&&3:&&&VSZ(((((r   c                    t           j                            d           d\  }}t          j        d|dz             }t           j                            t          j        |                    }t           j                            ||          }t          j        |d          }t          j        |          }t          j        |d          }t          j        |d          }	t          j        ||          }
t          j        |d d |f         ||                   }t          |j
        |j
                   t          |j
        |	j
                   t          |j
        |
j
                   t          |j
        |j
                   d S )	Nr  )rX   r  r   rP   TrR  F)predicted_ranks)ri   rl  r  r   r^  r  rc   rankdatarT  r   r   )rm   r
  r  r\  permr1  ranksrD  rE  rc  res4res5s               ru   test_optionszTestPageTrendTest.test_options!"  sO   
	r1)Aqs++y$$RYq\\22y~~a##t!,,,$U++$U4888$T%888$UOLLL$U111d7^5DT5JL L LT^T^444T^T^444T^T^444T^T^44444r   c                    t           j                            d           g dg dg dg dg dg dg}t          j        |          j        }t          j        dd	          }t          j        |d
|d          }t          |j	        d           t          |j        dd           t          j        |d
|d          }t          |j	        d           t          |j        dd           d S )Nr  )r
  rO  o   )ry  r  k   )g      y   )rr  r  r=
  )r        )   r  t   r   r4   FrV  )rR  r\  rX  i  gy&1l?r1   rR   rY  gHPsb?)ri   rl  r  r   r~  r   rc   rT  r   r   r   r   )rm   r1  r\  r   s       ru   test_Ames_assayz!TestPageTrendTest.test_Ames_assay3"  s   
	r///Cx~~)Aq//#D4C+79 9 9 	S]C(((CJ::::#D4C+24 4 4 	S]C(((CJ::::::r   c                    t          t          d          5  t          j        d            d d d            n# 1 swxY w Y   t          t          d          5  t          j        g            d d d            n# 1 swxY w Y   t          t          d          5  t          j        ddg           d d d            n# 1 swxY w Y   t          t          d          5  t          j        dggg           d d d            n# 1 swxY w Y   t          t          d          5  t          j        t          j                            dd                     d d d            n# 1 swxY w Y   t          t          d          5  t          j        t          j                            dd                     d d d            n# 1 swxY w Y   d}t          t          |          5  t          j        g dg dgg d	
           d d d            n# 1 swxY w Y   t          t          |          5  t          j        g dg dgg d
           d d d            n# 1 swxY w Y   t          t          |          5  t          j        g dg dgg d
           d d d            n# 1 swxY w Y   t          t          |          5  t          j        g dg dgd
           d d d            n# 1 swxY w Y   t          t          d          5  t          j        g dg dgd           d d d            n# 1 swxY w Y   t          t          d          5  t          j        g dg dgd           d d d            n# 1 swxY w Y   t          t          d          5  t          j        g dddt          j        ggd           d d d            n# 1 swxY w Y   t          t          d          5  t          j        g dg dgd           d d d            n# 1 swxY w Y   t          t          d          5  t          j        g dg dgd           d d d            d S # 1 swxY w Y   d S )Nz`data` must be a 2d array.r   r   r/   zPage's L is only appropriater0   z+`predicted_ranks` must include each integerrT  r'  )r1  r\  )r  r/   r0   )r   r/   r0   r0   r  z`data` is not properly ranked)r   r/   r0   Tr
  z`data` contains NaNsFr[  z`method` must be inekki)r1  rX  z`ranked` must be boolean.)r1  rR  )	r   r   rc   rT  ri   rl  r  rj   rF  rI
  s     ru   r[  z'TestPageTrendTest.test_input_validationH"  s   :-IJJJ 	( 	(!$'''	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(:-IJJJ 	& 	&!"%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&:-IJJJ 	* 	*!1a&)))	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	* 	*:-IJJJ 	+ 	+!QC5'***	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ 	+ :-KLLL 	8 	8!")..A"6"6777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8:-KLLL 	8 	8!")..A"6"6777	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 	8 @:W555 	= 	=!			999'=2;))= = = =	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= :W555 	? 	?!			999'=2=++? ? ? ?	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? 	? :W555 	@ 	@!			999'=2>,,@ @ @ @	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ :W555 	= 	=!			999'=2;= = = =	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	= 	=
 :-LMMM 	@ 	@!999iii"8$???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@:-LMMM 	@ 	@!999iii"8$???	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ :-CDDD 	0 	0!999q!RVn"=).0 0 0 0	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 :-BCCC 	1 	1!			999'=)/1 1 1 1	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 9,GHHH 	1 	1!			999'=)/1 1 1 1	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1s  8<<A::A>A>B>>CCDD
D$3E##E'*E'3GG
G&HHH2II!$I!>J))J-0J-
K33K7:K7L<<M M NN	N	&(OO!O;P$$P(+P(Q//Q36Q3N)r   r   r   ri   rl  r  r  	data_3_25
data_10_26tsr  r  r  rW  ts2r  rY  rb  rm  r[  r   r   ru   r7  r7  !  sN        INN1	q"%%IB''J $e\9
E%ulJ
G$e\= = == = == = =	>? %ug%%%###&&&() "D'LL,,,lllLL,,,lllLL,,,lllLL,,,()
 "D'IIyyy)))YYY			999IIyyy)))YYY			999IIyyy)))YYY			999IIyyy)))-.
 "D' 2 2 24F4F4FGI"D'OO___oooOO___oooOO___oooOO
 "D'IIyyy)))YYY			999IIyyy)))YYY			999IIyyy)))YYY			999II
 !4!!!#8#8#8!!!#8#8#8:; "D'IIyyy)))YYY			999IIyyy)))YYY			CDO*
BX [92>>) ) ?>) #T7,,,,,,./ $dG,,,.M.M.M,,,.M.M.M,,,./ $dG%%%'?'?'?%%%'?'?'?%%%'?'?'?%%%'?'?'?%%%'?'?'?%%%'?'?'?%%%'?'?'?%%%'(C* [92>>[) )  ?>)5 5 5$; ; ;*/1 /1 /1 /1 /1r   r7  iv5z	fun, argsc                      | |ddi} | |ddi}t          ||           | j         d}t          j        t          t          j        |                    5   | |ddd d d d            d S # 1 swxY w Y   d S )NrX  rY  r  z#() got multiple values for argumentr   )rX  r  )r   r   r  r   rF  reescape)r4	  r  r   rE  errs        ru   test_rename_mode_methodrx  "  s     #t
$G
$
$C3#7##Ddl
?
?
?C	y	#	7	7	7 1 1T'00001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s   
A//A36A3c                      e Zd Zd Zd Zd Zd Zej        	                    dg d          ej        	                    ddd	g          d
                         Z
ej        	                    ddd	g          d             ZdS )TestExpectilec                     t           j                            d          }|                    d          }t          t	          j        |d          t          j        |                     d S )Nr  r  rd  r8   r  )ri   rl  rm  r   rc   	expectilerh   rm   rq  r   s      ru   test_same_as_meanzTestExpectile.test_same_as_mean"  sW    i##B''JJBJ555rwqzzBBBBBr   c                     t           j                            d          }|                    d          }t          t	          j        |d          t          j        |                     d S )Nr  r  rd  r   r|  )ri   rl  rm  r   rc   r}  aminr~  s      ru   test_minimumzTestExpectile.test_minimum"  W    i##B''JJBJ333RWQZZ@@@@@r   c                     t           j                            d          }|                    d          }t          t	          j        |d          t          j        |                     d S )Nr  r  rd  r   r|  )ri   rl  rm  r   rc   r}  amaxr~  s      ru   test_maximumzTestExpectile.test_maximum"  r  r   c                 >  	 t           j                            d          }d 		fd}d}|                    |          }|                                }|                    |          }t          j        |||          } ||||          }t          ||           d S )Nl   b@lN c                     t          j        ||          }d|z
  ||| k    <   t          j        ||z  || z
  dz  z            S )Nr  r   r/   )ri   r  r  )r:  r  r  r  r<  s        ru   r4	  z'TestExpectile.test_weights.<locals>.fun"  sH    Q5111AE	Aa1fI6!g+Q
2333r   c                     t          j        |           t          j        |           f}t          j        || ||f          j        S )N)bracketr  )ri   r	  r	  r   minimize_scalarr   )r  r  r  r  r4	  s       ru   
expectile2z.TestExpectile.test_weights.<locals>.expectile2"  sL    fQii*G+C23UG1DF F FFGHr   rX   r/	  )ri   rl  rm  rc   r}  r   )
rm   rq  r  r  r  r  r  r   rs  r4	  s
            @ru   test_weightszTestExpectile.test_weights"  s    
 i##$788	4 	4 	4
	H 	H 	H 	H 	H
 JJqMM

**Q--oa888jE7++S!!!!!r   r  )rc  g?r8   g/#    ?r  r  r  r  c           
         t           j                            d          }|                    |          }dD ]:}t	          t          j        t          j        ||          |          |           ;|                                }t	          t          j        ||z   |          t          j        ||          |z              t	          t          j        ||z
  |          t          j        ||          |z
             t	          t          j        ||z  |          |t          j        ||          z             |	                    |d          }|dk    rd	 }n|dk    rd
 }nd } |t          j        t           j
        ||z            |          t          j        ||          t          j        ||          z              |                    |d          }t          j        ||          t          j        ||          k    sJ |	                    |d          }dD ]b} |t          j        d|z
  |z  ||z  z   |          d|z
  t          j        ||          z  |t          j        ||          z  z              ct	          t          j        | |          t          j        |d|z
                        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  rd  )r  r   r8   )r  r  r|  rX   r  r8   c                 &    t          | |           d S r  )r   r  r  s     ru   	assert_opz:TestExpectile.test_expectile_properties.<locals>.assert_op"  s    1%%%%%r   c                     | |k     sJ d S r  r   r  s     ru   r  z:TestExpectile.test_expectile_properties.<locals>.assert_op"      1uuuuuur   c                     | |k    sJ d S r  r   r  s     ru   r  z:TestExpectile.test_expectile_properties.<locals>.assert_op"  r  r   r2   )r  r8   r  r   N)ri   rl  rm  rn  r   rc   r}  r}   exponentiallogisticr  )rm   r  r  rq  r   r  rn   r  s           ru   test_expectile_propertiesz'TestExpectile.test_expectile_properties"  s0   $ i##B''JJAJ
  	 	AaA > > >eLLL    OOOAE///OAU+++a/	
 	
 	
 	OAE///OAU+++a/	
 	
 	
 	OAE///////	
 	
 	
 LLaRL((C<<& & & & S[[      		OBE!a%L666OAU+++oau---.	
 	
 	
 JJA1J%%OAU+++uq/N/N/NNNNN LLaRL((  	 	AI1a!A#U;;;17777EOAU33334    	OQBe,,,_Qag....	
 	
 	
 	
 	
r   c                    t           j                            d          }|                    d|          }g }t          j        dt          j        d          d          }t           j        d|d|d d	d	         z
  df         D ]+}|                    t          j	        ||
                     ,t          j
        t          j        |          dk              sJ d S )Nr  r/   )r  r.   r  r8   rb  r   r   r^   r|  )ri   rl  rm  paretologspacelog10r  r  rc   r}  r  rq
  )rm   r  rq  r   e_list	alpha_seqr  s          ru   test_monotonicity_in_alphaz(TestExpectile.test_monotonicity_in_alpha#  s    i##B''JJJ##KRXc]]C88	U1iYv2v->)>AB 	; 	;EMM%/!5999::::vbgfoo)*******r   N)r   r   r   r  r  r  r  r  r  r  r  r  r   r   ru   rz  rz  "  s        C C C
A A A
A A A
" " "4 [:::  [S2t*--_
 _
 .- _
B [S2t*--+ + .-+ + +r   rz  c           	         t           j                            d          }|                    d          }|                     |          }d}t	          |||           \  }}t          ||                     |                     t          ||           d }t	          |||           \  }}t          ||                     |                                                     t          |d           d}t	          |d         ||           \  }}t          ||                     t          j        |d                                        t          ||           d S )	Nl   ~Mr  rd  r   )rQ   r  r   r/   r   )	ri   rl  rm  r  r!   r(   r   r  
atleast_1d)r  rq  r  r   rQ   x_outaxis_outs          ru   test_chk_asarrayr  +#  s2   
)


.
.C		#	#B


2AD"14B777OE8E2::b>>***4   D"14B777OE8E2::bhhjj112221D"1W:DR@@@OE8E2::bmBwK&@&@AABBB4     r   numpyz,These parameters *are* compatible with NumPyrU  c                 ^   |                      g d          }d}t          j        t          |          5  t	          j        |d           d d d            n# 1 swxY w Y   t          j        t          |          5  t	          j        |d           d d d            d S # 1 swxY w Y   d S )Nr>  r  r   r   r   Tr>  )r  r  r   r  rc   rq  )r  r   rZ  s      ru   'test_axis_nan_policy_keepdims_nanpolicyr  A#  s-    	

<<<  A5G	*'	:	:	: ) )
1(((() ) ) ) ) ) ) ) ) ) ) ) ) ) )	*'	:	:	: % %
1t$$$$% % % % % % % % % % % % % % % % % %s#   AAA>B""B&)B&r  )NNrQ  N)r   r	  ru  r.  collectionsr   	itertoolsr   hypothesis.extra.numpyextrar  r  r  r  numpy.testingr   r   r   r   r	   r
   r   r   r   r  r   r   numpy.ma.testutilsr  	testutilsrk  r   r   r   r   r   ri   scipy.statsrc   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#   scipy._lib._utilr$   scipy.conftestr%   r&   scipy._lib._array_apir'   r(   r)   r*   r+   r,   r-   r.   r'  r  r   rN  re   r`  r   r   r   r   r   rB   r   rd  r   r  r  rg  r  r  r  r  r  r+  r.  r2  r@  rB  rO  r  r  r  r  r  r\  rj  r  r  r  r6  rf  ri  r  r  	compositer  r  r  PowerDivCaser  r@  r~  r`  r"  rb  rh  r  r  r  r  r0  r6  r;  r  rZ  rD  rL  rO  r  r%  rR  rX  r_  ra  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r5  rF  rP  r_  rb  rl  r  r  r  r  r  r  r  r  r	  r7	  r^	  rs	  r	  r	  r	  r	  r	  r0
  rL
  rw
  r
  r
  r
  r
  r  r  r7  rl  rm  rq  r   rn   wilcoxonr  r  r  r  r  rx  rz  r  r  r   r   ru   <module>r     s8    
			 				  " " " " " "       % % % % % % % % %        . . . . . . . . . . . . . . . . . . . . . .
  * * * * * *                   8 8 8 8 8 8 8 8 8 8 8 8 8 8           # # # # # # # # # 0 0 0 0 0 0 0 0 0 ( ( ( ( ( ( - - - - - -             - - - - - -T T T T T T T T T T T T T T T T5 5 5 5 5 5 5 5 5 5 5 5 & & & & & & D D D D D D D D4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 ;/  
E


u%%u   %((e      !&( (	 2 2 238
: 
:uDDDeLLuDDDeLL333U;;a4 a4 a4 a4 a4 a4 a4 a4Hp# p# p# p# p# p# p# p#f +,,4   x> x> x> x> x> x> x> !  -, x>vc7 c7 c7 c7 c7 c7 c7 c7L{6 {6 {6 {6 {6 {6 {6 {6|~5 ~5 ~5 ~5 ~5 ~5 ~5 ~5VW3 W3 W3t4 4 4 < < <3 3 3$SE SE SE SE SE SE SE SElW2 W2 W2t& & &  &$ &$ &$R+ + + + + + + + O# O# O# O# O# O# O# O#d0 0 0D) ) )3 3 3"rN rN rN rN rN rN rN rNjf3 f3 f3 f3 f3 f3 f3 f3R *E *E *E *E *E *E *E *EZs& s& s& s& s& s& s& s&j<@ <@ <@ <@ <@ <@ <@ <@~1 1 1f@ f@ f@ f@ f@ f@ f@ f@Rq" q" q" q" q" q" q" q"h= = = = = = = =x" x" x" x" x" x" x" x"vg" g" g" g" g"# g" g" g"T    ! < t'B&C  E E+,,F) F) F) F) F) F) F)  -,E EF)Rp> p> p> p> p> p> p> p>f z&    L}}}Dqt&"&++626$<<78AfbfSkkMAfbfTllN:;I	K K K L}}}NNN&"&++&"&,,6626#;;FGAfbfSkkMBvrvd||O;asmKL1	2 2 2 L}}}AAD&"&++626$<<78AfbfSkkMAfbfTllN:;I	K K K L|||<<<aaQa1 1 1+ : Lr!!Qa1 1 1
 LxrxBr
++-!!iiYY"II   LxrxBr
++!!  # 4 F< F< F< F< F< F< F< F<R ' ' ' ' ' ' ' '0 S# S# S# S# S# S# S# S#l4D 4D 4Dn+( +( +( +( +( +( +( +(`Z. Z. Z. Z. Z. Z. Z. Z.~c. c. c. c. c. c. c. c.L	rE rE rEj1 1 1*+ + + ,#28I..7#28I..79: :0 0: :0
. 
. 
. (H(H(HII  JI. ) ,yry}}a.@A ?YRYr]]IBIbMM,JKMN N5 5N N5/ / / /zA zA zAzt# t# t# t# t# t# t# t#nF5 F5 F5 F5 F5 F5 F5 F5R@7 @7 @7 @7 @7 @7 @7 @7FB+ B+ B+ B+ B+ B+ B+ B+JL L L$j1 j1 j1Z     ,+ + + ,#28I..7#28I..79: :0 0: :0
. 
. 
.. . .G G G+ + +H H H,% % % t'B&C  E E+,,9> 9>  -,E E 
9>x d'Q&R  T T+,,   -,T T, t'B&C  E E+,,% %  -,E E%<P+ P+ P+ P+ P+ P+ P+ P+f 8- 8- 8- 8- 8- 8- 8- 8-t" " " " "> " " ":)& )& )& )& )&~ )& )& )&X: : : : :^ : : :
A A A A A A A A. :1 :1 :1 :1 :1 :1 :1 :1z{- {- {- {- {- {- {- {-|1 1 1"(> (> (>V HL"! ! ! ! HL"! ! ! ! BF)-! ! ! !`B `B `B `B `B `B `B `BFlB lB lB lB lB lB lB lB^aP aP aP aP aP aP aP aPHP- P- P- P- P- P- P- P-f( ( (.9 9 90[; [; [;|T7 T7 T7 T7 T7 T7 T7 T7n,/ ,/ ,/ ,/ ,/ ,/ ,/ ,/^c- c- c- c- c- c- c- c-Lz) z) z) z) z) z) z) z)zX X X X X X X XvI7 I7 I7 I7 I7 I7 I7 I7X#A #A #A #A #A #A #A #ALl  l  l  l  l  l  l  l ^[ [ [ [ [ [ [ [|@ @ @ @ @ @ @ @Fi i i i i i i iX       $HA HA HA HA HA HA HA HAV{1 {1 {1 {1 {1 {1 {1 {1| 	iI&&JJrNNJJrNN  >A40 >Auz~+>? >Aq62 <!Q0 1 1 1X+ X+ X+ X+ X+ X+ X+ X+v ! ! !* g'U&V  X X+,,
% 
%  -,X X
% 
% 
%r   