
    9i/<                       S r SSKrSSKrSSKrSSKJr  SSKJr  SSKJ	s  J
r  SSKrSSKrSSKJrJrJrJrJrJrJrJrJr  SSKrSSKJr  SSK
JrJrJrJr  SSK
rSSK J!r!  SSK"J!s  J#r#  SSK$J!s  J%r&  SSK'J(r(  SS	K)J*r*  SS
K+J,r,  SSK-J.r.  SSK/J0r0  SSK1J2r2J3r3J4r4J5r5J6r6J7r7  SSK8J9r9J:r:J;r;J<r<J=r=J>r>J?r?  SSK@JArA  SSKBJCrC  SSKDJErEJFrFJGrGJHrHJIrIJJrJJKrKJLrLJMrM  SSKNJOrOJPrP  SSKQJRs  JSrT  \!/rU\R                  R                  rW \" / SQ\X5      rY\" / SQ\X5      rZ\" / SQ\X5      r[\" / SQ\X5      r\\" / SQ\X5      r]\" / SQ\X5      r^\" / SQ\X5      r_ " S S5      r` " S S5      ra\M" \!R                  5       " S S 5      5       rc " S! S"5      rd " S# S$5      re " S% S&5      rfS' rgS( rhS) ri\R                  R                  S* 5       rk " S+ S,5      rlS- rmS. rnS/ roS0 rp " S1 S25      rq " S3 S45      rrS5 rsS6 rtS7 ru " S8 S95      rv " S: S;5      rw\M" \!R                  5       " S< S=5      5       ry\M" \!R                  5       " S> S?5      5       r{\M" \!R                  5       " S@ SA5      5       r}\M" \!R                  5       " SB SC5      5       r " SD SE5      rSF r " SG SH5      r\M" \!GR                  5       " SI SJ5      5       r " SK SL5      r\M" \!GR                  5       " SM SN\5      5       r\M" \!GR                  5       " SO SP\5      5       r\GR                  GR                  SQ 5       r\M" \!GR                  5       " SR SS5      5       r " ST SU5      r\" SV/ SWQ5      r\" / SXQSSSSYSZSY\GR"                  " S[5      -  S\\GR"                  " S]5      -  -   -  SZS^\GR"                  " S_5      -  S^\GR"                  " S`5      -  -   -  SaSW9\" / SXQ/ SbQSSScSZSY\GR"                  " S_5      -  S^\GR"                  " S[5      -  -   S^\GR"                  " Sd5      -  -   -  SZSZ\GR"                  " S[5      -  Se\GR"                  " S_5      -  -   SZ\GR"                  " Sf5      -  -   -  SgSW9\" / SXQS^SSSYSZSY\GR"                  " S[5      -  S\\GR"                  " S]5      -  -   -  SZS^\GR"                  " S_5      -  S^\GR"                  " S`5      -  -   -  SaSW9\" / ShQ/ ShQSSSSSSSW9/r\" / SSSSSSSSW9\" \R6                  " / / / /5      GR&                  SSS/ SiQ/ SiQ/ SiQ/ SiQSW9\" \R6                  " / / / /5      SSS/ / / / SW9/r\M" \!GR*                  5       " Sj Sk5      5       r\M" \!GR.                  5       " Sl Sm5      5       rSn r " So Sp5      r " Sq Sr5      r " Ss St5      rSu rSv rSw r\R                  GRA                  Sx\GRB                  " Sy5      Sz4\GRB                  " S{5      S|4/5      S} 5       rS~ r\R                  GRA                  S/ SQ5      S 5       r\R                  GRA                  S\!GR                  \R8                  " S5      S44\!GRJ                  \R8                  " S5      \R8                  " S5      44/5      S 5       rSSS.S jjr\M" \!GRP                  \!GRR                  5      S 5       rS rS r\R                  GR[                  S5       " S S5      5       r\R                  GR[                  S5       " S S5      5       r " S S5      r\M" \!GRP                  5       " S S5      5       rS r\M" \!GRP                  5       " S S5      5       r\M" \!GRR                  5       " S S5      5       r\R                  R                  SSS9\R                  GR[                  S5      S 5       5       rS r\R                  GRn                  \R                  GR[                  S5      \R                  GR[                  S5      \M" \!GR                  5      S 5       5       5       5       r\W" SSS9S 5       r\M" \!GR                  5      \R                  R                  SSS9S 5       5       r\M" \!GRv                  5       " S S5      5       r " S S5      r\M" \!GR|                  5       " S S\5      5       r\M" \!GR                  5       " S S\5      5       r\M" \!GR                  5       " S S\5      5       r " S S5      r\M" \!GR                  5       " S S5      5       r " S S5      rS rS rSSSSS.S jrS rS rS r\M" \!GR                  5       " S S5      5       r\M" \!GR                  5       " S S5      5       r\M" \!GR                  5       " S S5      5       r\M" \!GR                  5       " S S5      5       rS rS rS r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r\M" \!GR                  5       " S S5      5       r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r\GR                  GR                  S5      r\GR                  S5      r\GR                  S5      r\R                  GRA                  S\!GR                  \44\!GR                  \\!GR                  GR                  44\!GR                  \\44\!GR                  \\44/5      S 5       r " S S5      r " S S5      r " S S5      r " S S5      rS r\W" SSS9S 5       rg)zTest functions for stats module

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

Additional tests by a host of SciPy developers.
    N)
namedtuple)product)	assert_assert_equalassert_almost_equalassert_array_almost_equalassert_array_equalassert_approx_equalassert_allclosesuppress_warningsassert_array_less)raises)arrayarangefloat32power)kolmogn)FuncData)binom)optimize   )check_named_results)_broadcast_concatenateSmallSampleWarningtoo_small_nd_omittoo_small_nd_not_omittoo_small_1d_omittoo_small_1d_not_omit)_permutation_distribution_t_chk_asarray_momentLinregressResult_xp_mean_xp_var_SimpleChi2)	AxisError)skip_xp_invalid_arg)	array_namespaceeager_warnsis_lazy_arrayis_numpyis_torchxp_default_dtypexp_sizeSCIPY_ARRAY_APImake_xp_test_case)xp_assert_closexp_assert_equal)	r                        	   )	r   r   r   r   r   r   r   r   r   )	iiiiiiiii)	g~?g<?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                      \ rS rSr\R
                  " \R                  5      R                  r\	" \
R                  5      S 5       r\	" \
R                  5      \R                  R!                  S5      S 5       5       r\	" \
R$                  5      S 5       r\	" \
R(                  5      S 5       r\" SSS	9S
 5       r\	" \
R0                  5      S 5       r\" SSS	9S 5       r\	" \
R(                  \
R0                  5      S 5       r\" SSS9\	" \
R(                  \
R0                  5      S 5       5       r\	" \
R:                  5      S 5       rSrg)TestTrimmedStatsN   c           	      j   [        U5      nUR                  [        US9n[        R                  " USS5      n[        XAR                  S5      5        [        R                  " USSS9n[        R                  " US S9n[        XV5        UR                  UR                  S5      S	5      n[        R                  " US S
9n[        XAR                  U5      5        [        R                  " USS
9n[        XAR                  USS
95        [        R                  " USS
9n[        XAR                  USS
95        [        R                  " USS S9n[        XAR                  S5      5        [        R                  " USSS9n/ SQn[        XAR                  U5      5        [        R                  " USSSS9n/ SQn[        XAR                  U5      5        [        R                  " U5      SSS 24   R                  UR                  SS9n	[        R                  " U	SSS9nSSSSUR                  UR                  UR                  /n[        XAR                  U5      5        [        R                  " USSS9nSSS S!UR                  UR                  UR                  UR                  UR                  /	n[        XAR                  U5      5        [        R                  " USS"SS9nSSS S!UR                  UR                  UR                  UR                  UR                  /	n[        XAR                  U5      5        g )#Ndtyper3   r9   TT      @)FFlimits	inclusiverO        O@r:   r8   axisr   r   )r3   =   )rO   rU   g     ?@)r3      )         '@r:   
            TF)rO   rP   rU   )      %@rY   r:   rZ   r[   r\   r]   T)copy)r   r]   r8   r@   rA   rB   r5   rZ      rW   FT)r-   asarrayXstatstmeanr1   reshaper   meanxpxatsetnan)
selfxpdefault_dtypexyy1y2x_2dy_truex_2d_with_nans
             \/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/scipy/stats/tests/test_stats.py
test_tmeanTestTrimmedStats.test_tmeanR   ss   (,JJqJ.KK6<0::c?+[[6^D[[4(zz"))C.&1KK4(774=)KK1%774a701KK1%774a701KKW48::d+,KKW15.::f-.KKWAN0::f-.tRW-11"&&t1DKKgA>S#sBFFBFFBFF;::f-.KKW15RRH::f-.KKW"/a9r2r266266266266266J::f-.    z>ignore:invalid value encountered in divide:RuntimeWarning:daskc                    UR                  [        R                  5       5      n[        R                  " USSS9n[        X1R                  S5      5        [        R                  " US S9n[        X1R                  USS95        UR                  UR                  S5      S	5      n[        R                  " US S
9n[        X1R                  USS95        [        R                  " USS
9n[        X1R                  SS5      5        [        R                  " USS
9n[        X1R                  SS5      5        [        R                  " USSSS9n[        US   UR                  S5      5        [        R                  " USSSS9n[        US   UR                  S5      5        [        US   UR                  UR                  5      5        g )NrK   rL   rN   g@rQ   r   
correctionrR   rS   rT   r   r8   g     v@)r:   g㪪@r   r6   )rO   rU   rP   r>   r   r7   g@)re   rf   tolistrg   tvarr1   varri   r   fullr2   rn   )ro   rp   rr   rs   rv   s        ry   	test_tvarTestTrimmedStats.test_tvar   sY   
 JJqxxz"JJq<@::&89:JJq&66!623zz"))C.&1JJt$'66$1656JJt!$774/0JJt!$77445 JJtFlK!bjjo. JJtFlK!bjj):;<!bjj01r|   c                 
   UR                  [        R                  5       5      n[        R                  " USS5      n[        X1R                  S5      5        [        R                  " US S9n[        X1R                  USS95        g )NrK   rL   gBĆ/H@rQ   r   r~   )re   rf   r   rg   tstdr1   stdro   rp   rr   rs   s       ry   	test_tstdTestTrimmedStats.test_tstd   s_    JJqxxz"JJq&,/::&89:JJq&66!623r|   c           	      6   UR                  S5      n[        [        R                  " U5      UR	                  S5      5        [        [        R                  " USS9UR	                  S5      5        [        [        R                  " USSS9UR	                  S5      5        UR                  US5      n[        [        R                  " USSS9UR	                  S	S/5      5        [        [        R                  " US
S9UR	                  / SQ5      5        [        [        R                  " US S9UR	                  S5      5        [        R                  " UR                  S5      S5      R                  UR                  5      n[        [        R                  " U5      UR	                  UR                  5      5        UR                  UR                  S5      S5      n[        R                  " USS
S9n[        X1R	                  [        R                  SSS/5      5        g )N      $@        r   
lowerlimitF)r   rP         ?r6   r3          @r   rT   )r   r         @      @       @r:      r5   r5   r5   )r   rU   r9   r\   )r   r2   rg   tminre   ri   rk   rl   rm   rn   npro   rp   rr   ress       ry   	test_tminTestTrimmedStats.test_tmin   si   IIcN

1rzz"~6

13RZZ^D

1eDbjjQSnUJJq&!

1eD

B8,	.

11-rzz:N/OP

140"**R.AFF299S>1%))"&&1

1rzz"&&'9: JJryy}f-jjqq1ZZAr(:;<r|   Tz4Only NumPy arrays support scalar input/`nan_policy`.np_onlyreasonc                 D   [        [        R                  " S5      S5        [        R                  " S5      n[        R
                  US'   [        5        nUR                  [        S5        [        [        R                  " USS9S5        Sn[        [        US	9   [        R                  " US
S9  S S S 5        Sn[        [        US	9   [        R                  " USS9  S S S 5        S S S 5        g ! , (       d  f       NE= f! , (       d  f       N(= f! , (       d  f       g = f)Nr5   r   r:   invalid value*omit
nan_policyr   The input contains nan valuesmatchraisenan_policy must be one of...foobar)r   rg   r   r   r   rn   r   recordRuntimeWarningassert_raises
ValueErrorro   rp   rr   supmsgs        ry   test_tmin_scalar_and_nanpolicy/TestTrimmedStats.test_tmin_scalar_and_nanpolicy        	UZZ]A&IIcNvv! CJJ~'78A&92>1Cz5

11 60Cz5

12 6 !  65 65 ! =   ADC/0DD D/
C=	9D 
D	
D
Dc           
         UR                  S5      n[        [        R                  " U5      UR	                  S5      5        [        [        R                  " USS9UR	                  S5      5        [        [        R                  " USSS9UR	                  S5      5        UR                  US5      n[        [        R                  " USSS9UR	                  SS	/5      5        [        [        R                  " US
S9UR	                  / SQ5      5        [        [        R                  " US S9UR	                  S5      5        [        R                  " UR                  S5      S5      R                  UR                  5      n[        [        R                  " U5      UR	                  UR                  5      5        [        5        nUR                  [        S5        UR                  UR                  S5      S5      n[        R                  " USS
S9n[        XAR	                  SSS[        R                  /5      5        S S S 5        g ! , (       d  f       g = f)Nr         "@r:   
upperlimitF)r   rP   r   r         @r   rT   )r         @rM   r   r   zAll-NaN slice encounteredr   r   r[   )r   rU   r4   r8   )r   r2   rg   tmaxre   ri   rk   rl   rm   rn   r   filterr   r   )ro   rp   rr   r   r   s        ry   	test_tmaxTestTrimmedStats.test_tmax   s   IIcN

1rzz"~6

13RZZ^D

1eDbjjQSnUJJq&!

1eD

B8,	.

11-rzz:N/OP

140"**R.AFF299S>1%))"&&1

1rzz"&&'9:  CJJ~'BC

299R=&1A**Q2A6CCQ2rvv,>!?@	 !  s   A:I
Ic                 D   [        [        R                  " S5      S5        [        R                  " S5      n[        R
                  US'   [        5        nUR                  [        S5        [        [        R                  " USS9S5        Sn[        [        US	9   [        R                  " US
S9  S S S 5        Sn[        [        US	9   [        R                  " USS9  S S S 5        S S S 5        g ! , (       d  f       NE= f! , (       d  f       N(= f! , (       d  f       g = f)Nr5   r   r7   r   r   r   r   r   r   r   r   r   )r   rg   r   r   r   rn   r   r   r   r   r   r   s        ry   test_tmax_scalar_and_nanpolicy/TestTrimmedStats.test_tmax_scalar_and_nanpolicy   r   r   c                 b   UR                  UR                  SUR                  S9S5      R                  n[	        U5      (       a  [        U5      OUR                  n[        [        R                  " U5      UR                  SS/US95        [        [        R                  " U5      UR                  SS/US95        [        [        R                  " USS	9UR                  UR                  S
/5      5        [        [        R                  " USS9UR                  SUR                  /5      5        g )NrZ   rI   r3   r6   r   r6   r5   r:   r7   r   r   r4   r   r   )ri   r   int16Tr*   r-   rJ   r2   rg   r   re   r   rn   )ro   rp   rr   expect_dtypes       ry   test_tmin_tmax_int_dtype)TestTrimmedStats.test_tmin_tmax_int_dtype   s    JJryy288y4f=??
 0=Q/?/?'+QWW

1rzz1a&z'MN

1rzz1a&z'MN 	

13RZZ5MN

13RZZRVV5MNr|   z%Only with data-dependent output dtype
eager_onlyr   c                     UR                  SS5      n[        [        R                  " US S S 24   5      U5        [        [        R                  " US S S 24   5      U5        g )Nl            l   
        )r   r2   rg   r   r   ro   rp   rr   s      ry   test_gh_22626TestTrimmedStats.test_gh_22626
  sJ     IIeX&

1T1W:.2

1T1W:.2r|   c                 T   UR                  [        R                  5       5      n[        R                  " USSS9nUR                  / SQ5      n[        X1R                  USS9[        U5      S-  -  5        [        [        R                  " USS	/S
9[        R                  " US S
95        g )N)r4   r9   rd   rN   )r   rM   r   r   r   r   r~   r<   r`   rZ   rQ   )re   rf   r   rg   tsemr1   r   r.   )ro   rp   rr   rs   y_refs        ry   	test_tsemTestTrimmedStats.test_tsem  s~    JJqxxz"JJq=A

/066%A669LLM

1b"X6

1T8RSr|    N) __name__
__module____qualname____firstlineno__r   finfofloat64	precisiondprecr0   rg   rh   rz   r   pytestmarkfilterwarningsr   r   r   r   r   skip_xp_backendsr   r   r   r   r   r   r   r   __static_attributes__r   r|   ry   rF   rF   N   s~   HHRZZ **Eu{{#,/ $,/\ uzz"[[H2 #28 uzz"4 #4 uzz"= #=* dSU3U3 uzz"A #A. dSU3U3 uzz5::.O /O .UVuzz5::.3 / W3 uzz"T #Tr|   rF   c                       \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rSrg)TestPearsonrWilkinsoni     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                 d    [         R                  " [        [        5      nUS   n[        US5        g Nr   r   )rg   pearsonrrf   r
   ro   rs   rs      ry   test_pXXTestPearsonrWilkinson.test_pXX%  s%    NN1QaDAc"r|   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rg   r   rf   BIGr
   r   s      ry   
test_pXBIG TestPearsonrWilkinson.test_pXBIG*  s%    NN1S!aDAc"r|   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rg   r   rf   LITTLEr
   r   s      ry   test_pXLITTLE#TestPearsonrWilkinson.test_pXLITTLE/  s%    NN1V$aDAc"r|   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rg   r   rf   HUGEr
   r   s      ry   test_pXHUGE!TestPearsonrWilkinson.test_pXHUGE4  %    NN1T"aDAc"r|   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rg   r   rf   TINYr
   r   s      ry   test_pXTINY!TestPearsonrWilkinson.test_pXTINY9  r   r|   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rg   r   rf   ROUNDr
   r   s      ry   test_pXROUND"TestPearsonrWilkinson.test_pXROUND>  s%    NN1U#aDAc"r|   c                 d    [         R                  " [        [        5      nUS   n[        US5        g r   )rg   r   r   r
   r   s      ry   test_pBIGBIG"TestPearsonrWilkinson.test_pBIGBIGC  s%    NN3s#aDAc"r|   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rg   r   r   r   r
   r   s      ry   test_pBIGLITTLE%TestPearsonrWilkinson.test_pBIGLITTLEH  s%    NN3v&aDAc"r|   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rg   r   r   r   r
   r   s      ry   test_pBIGHUGE#TestPearsonrWilkinson.test_pBIGHUGEM  %    NN3t$aDAc"r|   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rg   r   r   r   r
   r   s      ry   test_pBIGTINY#TestPearsonrWilkinson.test_pBIGTINYR  r  r|   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rg   r   r   r  r
   r   s      ry   test_pBIGROUND$TestPearsonrWilkinson.test_pBIGROUNDW  s%    NN3u%aDAc"r|   c                 d    [         R                  " [        [        5      nUS   n[        US5        g r   )rg   r   r   r
   r   s      ry   test_pLITTLELITTLE(TestPearsonrWilkinson.test_pLITTLELITTLE\  s%    NN6&)aDAc"r|   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rg   r   r   r   r
   r   s      ry   test_pLITTLEHUGE&TestPearsonrWilkinson.test_pLITTLEHUGEa  %    NN6$'aDAc"r|   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rg   r   r   r   r
   r   s      ry   test_pLITTLETINY&TestPearsonrWilkinson.test_pLITTLETINYf  r  r|   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rg   r   r   r  r
   r   s      ry   test_pLITTLEROUND'TestPearsonrWilkinson.test_pLITTLEROUNDk  s%    NN6%(aDAc"r|   c                 d    [         R                  " [        [        5      nUS   n[        US5        g r   )rg   r   r   r
   r   s      ry   test_pHUGEHUGE$TestPearsonrWilkinson.test_pHUGEHUGEp  %    NN4%aDAc"r|   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rg   r   r   r   r
   r   s      ry   test_pHUGETINY$TestPearsonrWilkinson.test_pHUGETINYu  r'  r|   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rg   r   r   r  r
   r   s      ry   test_pHUGEROUND%TestPearsonrWilkinson.test_pHUGEROUNDz  %    NN4&aDAc"r|   c                 d    [         R                  " [        [        5      nUS   n[        US5        g r   )rg   r   r   r
   r   s      ry   test_pTINYTINY$TestPearsonrWilkinson.test_pTINYTINY  r'  r|   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rg   r   r   r  r
   r   s      ry   test_pTINYROUND%TestPearsonrWilkinson.test_pTINYROUND  r.  r|   c                 d    [         R                  " [        [        5      nUS   n[        US5        g r   )rg   r   r  r
   r   s      ry   test_pROUNDROUND&TestPearsonrWilkinson.test_pROUNDROUND  s%    NN5'aDAc"r|   r   N)r   r   r   r   __doc__r   r   r   r   r  r  r  r  r  r  r  r  r  r  r"  r%  r)  r,  r0  r3  r6  r   r   r|   ry   r   r     sp    #
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#r|   r   c                      \ rS rSrS rS rS rS rS r\	R                  R                  SSS	/5      S
 5       rS rS rS rS rS r\	R                  R%                  S5      S 5       r\" SS9\	R                  R                  S/ SQ5      S 5       5       rS rS rS r\	R                  R3                  S5      \	R                  R5                  S5      \	R                  R                  SS5      \	R                  R                  SS5      S  5       5       5       5       r\	R                  R8                  \	R                  R                  SS5      S! 5       5       r\	R                  R                  S"S#S$/5      S% 5       rS& rS' r \	R                  R%                  S5      S( 5       r!S) r"\	R                  R                  S"/ S*Q5      \	R                  R                  S/ SQ5      S+ 5       5       r#S,r$g-).TestPearsonri  c                     [         R                  " [        [        5      nSn[        X5        [	        UR
                  UR                  5        g Ncorrelationpvalue)rg   r   rf   r   r   r>  	statisticro   r   
attributess      ry   test_pearsonr_result_attributes,TestPearsonr.test_pearsonr_result_attributes  s1    nnQ".
C,S__cmm4r|   c           
         UR                  S5      n[        R                  " X"5      u  p4[        X1R	                  S5      SS9  [        XAR	                  S5      [
        R                  " S[
        R                  " S5      -  5      S9  g )Nr   r   V瞯<atolr   r3   r   rg   r   r1   re   r   sqrtspacingro   rp   ar   probs        ry   test_r_almost_exactly_pos1'TestPearsonr.test_r_almost_exactly_pos1  s[    IIcN..&::c?7 	jjoBGGAbjjo<M4NOr|   c           
         UR                  S5      n[        R                  " X"* 5      u  p4[        X1R	                  S5      SS9  [        XAR	                  S5      [
        R                  " S[
        R                  " S5      -  5      S9  g )Nr         rF  rG  r   r3   r   rI  rL  s        ry   test_r_almost_exactly_neg1'TestPearsonr.test_r_almost_exactly_neg1  s^    IIcN..B'::d+%8 	jjoBGGAbjjo<M4NOr|   c                     UR                  / SQ5      nUR                  / SQ5      n[        R                  " X#5      u  pE[        XAR                  S5      5        [        XQR                  S5      5        g )Nr`   r   r   )r   r   r4   LXz?UUUUUU?)re   rg   r   r1   )ro   rp   rM  br   rN  s         ry   
test_basicTestPearsonr.test_basic  sQ     JJz"JJy!..&::h/0jjo.r|   c                    Sn[         R                  " [        R                  US9   UR	                  / SQ5      nUR	                  / SQ5      n[        R
                  " X45      u  pV[        XQR	                  UR                  5      5        [        XaR	                  UR                  5      5        S S S 5        g ! , (       d  f       g = f)NAn input array is constantr   MbX?r_  r_  rh|?v/?gsh|??r   warnsrg   ConstantInputWarningre   r   r1   rn   ro   rp   r   rr   rs   r   ps          ry   test_constant_input TestPearsonr.test_constant_input  s     +\\%44C@

01A

01A>>!'DAAzz"&&12Azz"&&12 A@@   BB66
CrJ   r   r   c                    [        [        U5      n[        X5      nUR                  SSS[        R                  " SUS9-   /US9nUR                  SSSS[        R                  " SUS9-  -   /US9nSn[        R
                  " [        R                  US9   [        R                  " XE5        S S S 5        g ! , (       d  f       g = f)Nr3   rI   r4   r7   z/An input array is nearly constant; the computedr   )	getattrr   re   rK  r   rd  rg   NearConstantInputWarningr   )ro   rp   rJ   npdtyperr   rs   r   s          ry   test_near_constant_input%TestPearsonr.test_near_constant_input  s    "e$"JJ1a"**Qg">>?uJMJJ1a!BJJq$@"@@AJO?\\%88D NN1  EDDs   B66
Cc                 0   UR                  / SQUR                  S9nUR                  / SQUR                  S9n[        R                  " X#5      u  pE[	        XAR                  SUR                  S95        [	        XQR                  SUR                  S95        g )N)gy)r?gxd{s?gnp?g$9"o?ge =:k?rI   )goȟg`
,gzg2l?g>??'ge;E?g3R?re   r   rg   r   r1   ro   rp   rr   rs   r   rg  s         ry   test_very_small_input_values)TestPearsonr.test_very_small_input_values  s     JJVZZ  )JJNZZ  )~~a# 	::&8

:KL::&8

:KLr|   c                 8   SUR                  / SQUR                  S9-  nSUR                  SUR                  S9-  n[        R                  " X#5      u  pE[        XAR                  SUR                  S95        [        XQR                  SUR                  S95        g )NgY)	kR)r   r   r   r   r   r   r   rI   r8   rW  g͗~-?)re   r   r   rg   r   r1   rs  s         ry   test_very_large_input_values)TestPearsonr.test_very_large_input_values  s     1DD1BJJ//~~a# 	::&8

:KL::&:"**:MNr|   c                 0   UR                  / SQUR                  S9nUR                  / SQUR                  S9n[        R                  " X#5      u  pE[	        XAR                  SUR                  S95        [	        XQR                  SUR                  S95        g )N)g7	igNig_b4igZbirI   )gDig<'(½igmQiZbtig*D{?gݣ?rr  rs  s         ry   !test_extremely_large_input_values.TestPearsonr.test_extremely_large_input_values  sx     JJ9JLJJ;2::JN~~a# 	::&7rzz:JK::&7rzz:JKr|   c                 $   UR                  SS/5      nUR                  SS/5      n[        R                  " X#5      nUu  pVUR                  S5      n[        XW5        [        Xg5        UR	                  5       u  p[        X* 5        [        X5        g )Nr   r   r   rM   re   rg   r   r2   confidence_interval
ro   rp   rr   rs   r   r   rg  onelowhighs
             ry   test_length_two_pos1!TestPearsonr.test_length_two_pos1  s|     JJBx JJBx nnQ"jjn++-	T""r|   c                 &   UR                  SS/5      nUR                  SS/5      n[        R                  " X#5      nUu  pVUR                  S5      n[        XW* 5        [        Xg5        UR	                  5       u  p[        X* 5        [        X5        g )Nr   r   r   rM   r~  r  s
             ry   test_length_two_neg1!TestPearsonr.test_length_two_neg1  s~     JJBx JJBx nnQ"jjn4 ++-	T""r|   *ignore:invalid value encountered in dividec                    Sn[         R                  " [        R                  US9   UR	                  SS/5      nUR	                  SS/5      n[        R
                  " X45      u  pV[        XQR	                  UR                  5      5        [        XaR	                  UR                  5      5        S S S 5        g ! , (       d  f       g = f)Nr]  r   r_  ra  rb  rc  rf  s          ry   test_length_two_constant_input+TestPearsonr.test_length_two_constant_input  s    
 +\\%44C@

E5>*A

E5>*A>>!'DAAzz"&&12Azz"&&12 A@@rj  Tr   z$alternative, pval, rlow, rhigh, sign))	two-sided?gmgƎ?r   )lessK˅?r`   g?
?r   )greater.?gդζr   r   )r  r  gfǎgl?r`   )r  r  rR  gդζ?r`   )r  r  g?
r   r`   c                     / SQn[         R                  " / SQ5      U-  n[        R                  " XxUS9n	[	        U	R
                  SU-  SS9  [	        U	R                  USS9  U	R                  5       n
[	        XU4SS9  g )Nr   r3   r4   r5   )r   r   r<   r   alternativeg?r;   rtolư>)r   r   rg   r   r   r@  r?  r  )ro   r  pvalrlowrhighsignrp   rr   rs   resultcis              ry   test_basic_exampleTestPearsonr.test_basic_example$  sp     HH^$t++>((*<T*ANt$7'')5M5r|   c                    UR                  S5      nU* n[        R                  " X#SS9n[        R                  " X#SS9n[        UR                  UR                  S5      5        [        UR                  UR                  S5      SS9  g )	Nr   r  r  r  r   r   g#B;rG  )r   rg   r   r1   r?  re   )ro   rp   rr   rs   test_greater	test_lesss         ry   (test_negative_correlation_pvalue_gh177955TestPearsonr.test_negative_correlation_pvalue_gh177955  sh    IIcNB~~a	BNN1V<	++RZZ^<	(("**R.uEr|   c                 ,   UR                  / SQ5      nUR                  / SQ5      n[        R                  " X#5      nUu  pVUR                  S5      n[        XW* 5        [        USU-  SS9  UR	                  5       u  p[        X* 5        [        X5        g )Nr   r   r   )rM   g      g      *r   r   Hz>rG  )re   rg   r   r1   r  r2   r  s
             ry   #test_length3_r_exactly_negative_one0TestPearsonr.test_length3_r_exactly_negative_one=  s~    JJ|$JJ'nnQ" jjo4 1S5t,++-	T""r|   c                    / SQnS/nSn[         R                  " [        US9   [        R                  " X5        S S S 5        / SQnSS/nSn[         R                  " [        US9   [        R                  " X5        S S S 5        S/nS/nS	n[         R                  " [        US9   [        R                  " X5        S S S 5        / S
Qn/ S
QnSn[         R                  " [        US9   [        R                  " X5        S S S 5        Sn[         R                  " [        US9   [        R                  " SS/SS/SS9  S S S 5        [        R                  " SS/SS/5      n[         R                  " [        US9   UR                  SS9  S S S 5        g ! , (       d  f       GN^= f! , (       d  f       GN.= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr   r3   r4   r5   z3`x` and `y` must have the same length along `axis`.r   r6   "`x` and `y` must be broadcastable.r   r3   (`x` and `y` must have length at least 2.)             y              y             z+This function does not support complex dataz"`method` must be an instance of...r4   
asymptoticmethodexact)r   r   r   rg   r   r  )ro   rr   rs   messager   s        ry   test_input_validation"TestPearsonr.test_input_validationK  ss   CG]]:W5NN1  6 F6]]:W5NN1  6 CC<]]:W5NN1  6 ?]]:W5NN1  6 7]]:W5NNAq6Aq6,? 6 nnaVaV,]]:W5##7#3 655 65 65 65 65 65 65sG   F%F#%F5'G!G8G(
F #
F25
G
G
G%(
G6rZ   z-Monte Carlo method needs > a few kB of memoryr  r  r  r  method_namepermutationmonte_carlomonte_carlo2c                    [         R                  R                  S5      nUS:X  a  SOSnUR                  US9nUR                  US9n[        R
                  " US9[        R                  " UR                  4S-  S9[        R                  " S	S9S
.nXq   n[        R                  " XVX(SS9n	[        R                  " XVUSS9n
[        U	R                  U
R                  SS9  [        U	R                  U
R                  SSS9  US:X  ak  [        R                  " S	S9n[        R                  " XVX(SS9n[        UR                  U	R                  5        [        UR                  U	R                  5        g g )Nl   o#[mr  r3   d   )r3     sizerngr3   rvsi  r  r`   )r  r  rU   r  rU   rF  r  {Gz?MbP?r  rH  r  )r   randomdefault_rngnormalrg   PermutationMethodMonteCarloMethodr   r   r@  r?  r   )ro   r  r  r  r  rr   rs   methodsr  r   refres2s               ry   test_resampling_pvalue#TestPearsonr.test_resampling_pvaluem  s0    ii##$56&-7xYJJDJ!JJDJ!"'"9"9c"B"'"8"8cjj]1_"M#(#9#9d#CE %nnQ{PRSnnQ{Ds}}5A

CJJTE.(++5F>>!KUWXD7cjj1	 )r|   c                    [         R                  R                  S5      nUR                  SS9nUR                  SS9n[        R
                  " X4USS9n[         R                  R                  S5      n[        R                  " US9nUR                  US9nUR                  5       n[        XxS	S
9  [         R                  R                  S5      n[        R                  " US9nUR                  US9n	[        X5        g )Nl   _Y F r  r  r`   r  l   |#(AkPrandom_stater  gQ?rG  r  )	r   r  r  r  rg   r   BootstrapMethodr  r   )
ro   r  r  rr   rs   r   r  res_ciref_cires_ci2s
             ry   test_bootstrap_ciTestPearsonr.test_bootstrap_ci  s     ii##$45JJHJ%JJHJ%nnQ{D ii##$67&&C8(((7((*V4 ii##$67&&3/)))8(r|   rU   r   r   c                    [         R                  R                  S5      nSnUR                  SU-   S9u  pE[        R
                  " XEUS9nUR                  5       nUS:X  a  UR                  UR                  pT[        UR                  S   5       H  n[        R
                  " XH   XX   5      n	U	R                  5       n
[        UR                  U   U	R                  5        [        UR                  U   U	R                  5        [        UR                  U   U
R                  5        [        UR                  U   U
R                  5        M     g )N   I.v# r:   rZ   r3   r  rT   r   )r   r  r  r  rg   r   r  r   rangeshaper   r@  r?  r  r  )ro   rU   r  r  rr   rs   r   r  ires_ici_is              ry   test_axis01TestPearsonr.test_axis01  s    ii##K0zzte|z,nnQ-$$&1933qqwwqz"ANN14.E,,.DCMM!,eoo>CJJqM5<<8BFF1Itxx0BGGAJ		2 #r|   c                    [         R                  R                  S5      nSnUR                  SU-   S9u  p4[        R
                  " X4S S9nUR                  5       n[        R
                  " UR                  5       UR                  5       5      nUR                  5       n[        UR                  UR                  5        [        UR                  UR                  5        [        Xh5        g )Nr  r  r  r  rT   )r   r  r  r  rg   r   r  ravelr   r@  r?  )	ro   r  r  rr   rs   r   r  r  ci_refs	            ry   test_axis_NoneTestPearsonr.test_axis_None  s    ii##K0zzte|z,nnQ-$$&nnQWWY	2((*s}}5

CJJ/#r|   c                    UR                  S5      =p#Sn[        R                  " [        US9   [        R
                  " X#SS9  S S S 5        Sn[        R                  " [        US9   [        R
                  " X!R                  S5      SS9  S S S 5        S	n[        R                  " [        US9   [        R
                  " UR                  S5      UR                  S5      SS9  S S S 5        S
n[        R                  " [        US9   [        R
                  " X!R                  S5      SS9  S S S 5        Sn[        U5      (       d\  UR                  S5      n[        R                  " [        US9   [        R
                  " X"[        R                  " 5       S9  S S S 5        g g ! , (       d  f       GNf= f! , (       d  f       GN0= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr   z`axis` must be an integer.r   r=   rT   z2`x` and `y` must have the same length along `axis`r3   r   r   r  r  r4   r6   z:`method` must be `None` if arguments are not NumPy arrays.rZ   r  )	onesr   r   r   rg   r   r+   r   r  )ro   rp   rr   rs   r  s        ry   test_nd_input_validation%TestPearsonr.test_nd_input_validation  sP   .]]:W5NN1c* 6 G]]:W5NN1ggfoA6 6 =]]:W5NN2776?BGGFO!D 6 7]]:W5NN1ggfoA6 6 O||		"Az9qE,C,C,EF :9 ! 65 65 65 65 :9s;   F#'%F5/5G%G0)G)#
F25
G
G
G&)
G7c                 $   [         R                  R                  S5      nUR                  S5      UR                  S5      pCSn[        R                  " [
        R                  US9   Su  US'   US'   UR                  U5      UR                  U5      pv[
        R                  " XgSS	9nUR                  5       n	UR                  UR                  UR                  /UR                  S
9n
[        UR                  SS U
5        [        UR                  SS U
5        [        U	R                  SS U
5        [        U	R                   SS U
5        UR#                  UR%                  UR                  SS  5      5      (       d   eUR#                  UR%                  UR                  SS  5      5      (       d   eUR#                  UR%                  U	R                  SS  5      5      (       d   eUR#                  UR%                  U	R                   SS  5      5      (       d   e S S S 5        Sn[        R                  " [
        R&                  US9   Su  US'   US'   UR                  U5      UR                  U5      pv[
        R                  " XgSS	9  S S S 5        UR                  SS/SS/SS/SS//5      nUR                  SS/SS/SS/SS//5      nUR)                  S5      n[
        R                  " XgSS	9nUR                  5       n	[+        UR                  UR                  / SQ5      5        [+        UR                  U5        [+        U	R                  U* 5        [+        U	R                   U5        g ! , (       d  f       GNY= f! , (       d  f       N= f)Nl   U!Jr5   r6   r]  r   r   r3   )r   .)r   .r   rT   rI   r   r3   z!An input array is nearly constant)g     ?g      @r   r   r   r   r   r5   r`   )r   r`   r`   r   )r   r  r  r   rd  rg   re  re   r   r  rn   r   r2   r@  r?  r  r  allisfiniterm  r  r1   )ro   rp   r  x0y0r  rr   rs   r   r  nansr  s               ry   test_nd_special_cases"TestPearsonr.test_nd_special_cases  s   ii##N3F#SZZ%7B.\\%44GD%)"BvJ6
::b>2::b>q..A.C((*B::rvvrvv.bjj:ADCMM!A.5CJJqOT2BFF1QK.BGGAaL$/66"++cmmAB&78999966"++cjjn5666666"++bffQRj1222266"++bggabk23333 E 6\\%88H!5BtHbh::b>2::b>qNN1a( I JJAAAB89JJAAAB89wwqznnQ+$$&rzz/'BC

D)&&= ED  IHs   &F6M/
AN/
M>
Nc                    [         R                  R                  S5      nUR                  S5      nUR                  S5      n[        R                  " X4SS9n[        R                  " X4SS9n[        UR                  UR                  5        g )Nl   [LY)r4   rZ   rZ   r   rT   r`   )r   r  r  rg   r   r   r@  ro   rp   r  rr   rs   r   r  s          ry   test_different_dimensionality*TestPearsonr.test_different_dimensionality  sf     ii##$56JJwJJrNnnQ*nnQ+S]]CMM2r|   )r   r   Nc                 x   [         R                  SS9u  pE[        R                  " UR	                  U5      UR	                  U5      X#S9n[        R                  " XEX#S9n[        UR                  UR	                  UR                  5      5        [        UR                  UR	                  UR                  5      5        UR                  5       nUR                  5       n	[        UR                  UR	                  U	R                  5      5        [        UR                  UR	                  U	R                  5      5        g )N)r3   rZ   r[   r  rU   r  )r  r  rg   r   re   r1   r@  r?  r  r  r  )
ro   rp   rU   r  rr   rs   r   r  r  r  s
             ry   test_array_apiTestPearsonr.test_array_api  s     zz{z+nnRZZ]BJJqM"&AnnQFrzz#--'@A

BJJszz$:;((*((*

BJJvzz$:;RZZ%<=r|   r   N)%r   r   r   r   rC  rO  rS  rZ  rh  r   r   parametrizero  rt  rw  r{  r  r  r   r  r   r  r  r  r  	fail_slowxfail_on_32bitr  slowr  r  r  r  r   r  r  r   r   r|   ry   r:  r:    s!   5PP/	3 [[Wy)&<=
! >
!MOL## [[ LM
3 N
3& d#[[CHI6I $6F# 4D [[2[[ OP[[],LM[[]KM2M N Q 
2( [[[[],LM) N )& [[VaV,3 -3 
$G0 [[ LM#' N#'J3$ [[V\2[[],LM> N 3>r|   r:  c                      \ rS rSrSrS rS rS rS r\	R                  R                  S 5       rS rS	 rS
 rS r\	R                  R#                  S/ SQ5      S 5       rS r\	R                  R)                  S5      \	R                  R                  5       S 5       5       r\	R                  R)                  S5      \	R                  R                  5       S 5       5       r\	R                  R/                  5       S 5       rSrg)TestFisherExacti  a  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                    [         R                  nU" SS/SS//5      S   n[        USSS9  U" S	S
/SS//5      S   n[        USSS9  U" S
S/SS
//5      S   n[        USSS9  U" SS/SS//5      S   n[        USSS9  U" SS/SS//5      S   n[        USSS9  U" SS/SS//5      S   n[        USSS9  U" SS/SS//5      S   n[        USSS9  U" SS/SS//5      S   n[        USSS9  U" SS/SS
//5      S   n[        US5        U" SS
/SS//5      S   n[        US5        U" S
S/SS
//5      n[        US   SSS9  [        US   S5        g ) N8   N  0u  @  r   g؞Y?r5   significantr  r3   r  r6   g,Ԛ?r8   r9   g2c?r7   rZ   gY
A?      g_?r      gO^M?r   gօa?r4   r   ggE?g$I$I?)rg   fisher_exactr
   )ro   r  r   s      ry   rZ  TestFisherExact.test_basic&  s   ))UENUEN;<Q?Ca8S!HtQi01!4CQ7QFQF+,Q/C:QFRH-.q1C:QGb"X./2C:QGb"X./2C:RGb!W-.q1C:QFQF+,Q/C;QFQF+,Q/C%QFQF+,Q/C.QFQF+,CFI1=CFH-r|   c                    SS/SS//S4SS/SS//S4SS	/S
S
//S4SS/SS//S4SS/SS//S4S
S/S
S	//S4S
S/S
S//S4SS/S	S//[         R                  S44SS/S	S//S4SS	/SS//[         R                  S44SS	/SS//S4/nU HU  u  p#[        R                  " [         R                  " U5      5      n[         R
                  R                  US	   US	   SSS9  MW     g )Nr  r3   r  r6   )gAn&	?g}K
T?r8   r9   )g	7?g?r   rZ   )g!@j)A?r  r  )gU!a?gKY?r   r  )g7X?g~ltP?)gFu|?r  r   )r   gQN^?r5   gaa?r   r   gaa?r4   r[   T)decimalverbose)r   infrg   r  re   testingr   )ro   tablisttableres_rr   s        ry   test_preciseTestFisherExact.test_preciseA  s^    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 $LE$$RZZ%67CJJ**3q658R37 + 9 $r|   c                    SS/SS//n[         R                  " U5      n[        US   S5        SS/SS	//n[         R                  " U5      n[        US   S
5        SS/SS//n[         R                  " U5      n[        US   S5        g )Nr7   %   l      r   gmt?   r   f   g,:^   0   i  i\B  gNQ8rg   r  r   ro   rr   r   s      ry   test_gh4130TestFisherExact.test_gh4130Y  s     WsCj!  #A 12 !Wq#h  #A 56 "Xe}%  #A 56r|   c                 \    SS/SS//n[         R                  " U5      n[        US   SSS9  g )NiiX iV iW r   r   gѧRrG  r0  r1  s      ry   test_gh9231TestFisherExact.test_gh9231o  s8     w'7!34  #A/r|   c                     / SQn[        U/ SQ5       H.  u  p#[        R                  " SS/SU//5      S   n[        XBSS9  M0     [        R                  " S	S
/SS//5      S   n[        USSS9  g )N)g?=gNuP=gs=)K   L   M   i(E  i  i)  r   r5   r  iPF  i8 r  i_ g^K=?)ziprg   r  r
   )ro   pvalsr  numr   s        ry   test_large_numbers"TestFisherExact.test_large_numbersv  sx     1UL1ID$$uclT3K%@A!DCq9 2   5%.5%.!AB1ECQ7r|   c                     Sn[         R                  " [        US9   [        R                  " [
        R                  " S5      5        S S S 5        g ! , (       d  f       g = f)Nz+The input `table` must have two dimensions.r   r7   )r   r   r   rg   r  r   r   ro   r  s     ry   test_raisesTestFisherExact.test_raises  s7    ?]]:W5ryy|, 655s   +A
Ac                     SS/SS//SS/SS//SS/SS//SS/SS//4nU HA  n[         R                  " U5      u  p4[        US5        [        U[        R                  5        MC     g )Nr   r6   rZ   r   )rg   r  r   r   rn   )ro   tablesr$  	oddsratior  s        ry   test_row_or_col_zero$TestFisherExact.test_row_or_col_zero  s    q6Ar7#r7QF#q6Ar7#q6B7#% E#007OIs#BFF+ r|   c                    SS/SS//SS/SS//SS/SS	//S
S/SS//SS/SS//SS/SS//SS/SS//SS/SS//SS/SS//4	nSS/SS/SS/SS/SS/SS/SS/SS/SS/4	n[        X5       H`  u  p4/ nUR                  [        R                  " USS9S   5        UR                  [        R                  " US S9S   5        [	        XTSS!S"9  Mb     g )#Nr3   r8   r9   r+  i,     rW   r7   i     i   i  r   r4   r   r5   gI[?gq}!?r   g2\&gQp6g:O_?g a?皙?ffffff??333333?UUUUUU?rX  r  r  r  r  )rH  r  )r;  appendrg   r  r   )ro   rE  r<  r$  r  r   s         ry   test_less_greater!TestFisherExact.test_less_greater  sL    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 v-KECJJu))%VDQGHJJu))%YGJKCAD9	 .r|   c                 @    [         R                  " SS/SS//5      u  pg )Nr   r3   r:   i")rg   r  )ro   oddsr?  s      ry   test_gh3014TestFisherExact.test_gh3014  s%     ))Aq6Ax=*ABfr|   r  r  r  r  c                     [         R                  " SS/SS//5      n[        R                  " X!S9n[	        UR
                  UR                  4U5        g )Nr  r  r  r  r  )r   r   rg   r  r   r@  r?  )ro   r  r$  r   s       ry   test_resultTestFisherExact.test_result  sD    5%.5%.9:  @cmmSZZ0#6r|   c                    [         R                  R                  S5      n[         R                  " SS/SS//5      nSn[        R
                  " [        US9   [        R                  " US9n[        R                  " X$SS	9  S S S 5        S
n[        R
                  " [        US9   [        R                  " US9n[        R                  " X$S9  S S S 5        Sn[        R
                  " [        US9   [        R                  " [        R                  R                  S9n[        R                  " X$S9  S S S 5        Sn[        R
                  " [        US9   [        R                  " [         R                  " S5      5        S S S 5        [         R                  R!                  [        R                  " / SQ/5      S5        [         R                  R!                  [        R                  " S/S/S//5      S5        [         R                  R!                  [        R                  " [         R                  " S5      5      S5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN;= f! , (       d  f       N= f)N   9o8o r3   r8   r9   z4`alternative` must be the default \(None\) unless...r   r  r  r  r  z6...not recognized; if provided, `method` must be an...r  z3If the `method` argument of `fisher_exact` is an...r  z2`table` must have at least one row and one column.r   r   r  r  r   r4   r3   r4   )r   r  r  re   r   r   r   rg   r  r  r  r  normr  zerosr"  r   )ro   r  r$  r  r  s        ry   $test_input_validation_edge_cases_rxc4TestFisherExact.test_input_validation_edge_cases_rxc  s   ii##$78

QFQF+,I]]:W5,,5FuH 6 K]]:W5**s3Fu4 6 H]]:W5++

?Fu4 6 G]]:W5rxx/0 6
 	

 2 2I; ?H


 2 2QC!qc? CVL


 2 2288F3C DfM- 65
 65
 65
 65s1   *I$)I0AI%+I7
I
I"%
I47
JrZ   c                    [         R                  R                  S5      n[         R                  " SS/SS//5      n[        R
                  " U5      nUR                  n[        R                  " UR                  SS9UR                  SS95      R                  U5      n[        R                  " US9n[        R
                  " X&S	9n[        UR                  US
S9  [        UR                  U5        [        R                  " US9n[        R
                  " X&S	9n[        UR                  UR                  S
S9  [        UR                  U5        g )Nr]  r3   r8   r9   r   rT   r   r  r  g{Gzd?rG  )r   r  r  re   rg   r  r?  random_tablesumpmfr  r   r   r@  r  )ro   r  r$  r  
ref_pvalueref_statr  r   s           ry   test_resampling_2x2#TestFisherExact.test_resampling_2x2  s    ii##$78

QFQF+,  'ZZ
%%eiiQi&79JKOOPUV''C0  6

JV<S]]H-((S1  6

CJJV<S]]H-r|   c                    / SQ/ SQ/ SQ/ SQ/ SQ/n[         R                  " U5      nSn[         R                  R                  S5      n[        R
                  " US9n[        R                  " XS	9n[        UR                  US
S9  [        R                  " USS9n[        R                  " XS	9n[        UR                  US
S9  g )N)r   r3   r3   r   r   r   r   )r3   r   r   r3   r4   r   r   )r   r   r   r   r3   r8   r4   )r   r   r3   r   r   r   r   )r   r   r   r   r   r   r   gk$?l   |Kr  r  gMb@?rG  i )r  n_resamples)
r   re   r  r  rg   r  r  r   r?  r  )ro   r$  ri  r  r  r   s         ry   test_resampling_rxc#TestFisherExact.test_resampling_rxc  s     '&&&&	(
 

5!%
ii##M2((S1  6

JT:''CUC  6

JT:r|   c           
         [         R                  R                  S5      n[        R                  " US9n[        SS5       H  n[        SS5       H  n[        SS5       Hy  n[        SS5       Hf  n[         R                  " X4/XV//5      n[        R                  " U5      n[        R                  " XrS9n	[        U	R                  UR                  SS9  Mh     M{     M     M     g )	Nr]  r  r   r4   r5   r  +=rG  )
r   r  r  rg   r  r  re   r  r   r?  )
ro   r  r  rM  rY  cdr$  r  r   s
             ry   test_resampling_exact_2x2)TestFisherExact.test_resampling_exact_2x2  s     ii##$78((S1q!A1a[q!A"1a[ "

QFQF+; <#007#00F'

CJJUK	 ) % ! r|   r   N)r   r   r   r   r8  rZ  r&  r2  r5  r   r   r  r>  rB  rG  rR  rV  r
  rZ  rc  r  rk  ro  xslowru  r   r   r|   ry   r  r    s   .6907,0 [[8 8-, :DC
 [[],LM7 N7
N> [[2[[.  ." [[2[[;  ;: [[L Lr|   r  c                       \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S%r'g&)'TestCorrSpearmanri  r   c                     [         R                  " SS5      n[        [        R                  " U5      R                  5       5        g )Nr   r   )rg   	spearmanrr   r   isnanr  )ro   rs   s     ry   test_scalarTestCorrSpearmanr.test_scalar(  s)    OOB#!"r|   c                     [        [        [        R                  / SQSS/5        [        [        [        R                  / SQS5        g )Nr   r3   r   r9   r:   )r   r   rg   r{  ro   s    ry   test_uneven_lengths%TestCorrSpearmanr.test_uneven_lengths,  s*    j%//9q!fEj%//9a@r|   c                 N   [         R                  R                  S5        [         R                  R                  SS5      n[         R                  R                  SS5      n[        R
                  " X5      R                  R                  S:X  d   e[        R
                  " UR                  UR                  SS9R                  R                  S:X  d   e[        [        [        R
                  XSS9  [        [        [        R
                  UR                  UR                  5        g )N鄋 r5   r4   r3   r6   r6   r   rT   )r   r  seedrandnrg   r{  r@  r  r   r?  r   r   ro   rr   rs   s      ry   test_uneven_2d_shapes'TestCorrSpearmanr.test_uneven_2d_shapes0  s    
		vIIOOAq!IIOOAq!q$..44>>>qssACCa077==GGGj%//1a@j%//133<r|   c           	         [         R                  R                  S5        [         R                  R                  SSS5      n[	        [
        [        R                  U5        [	        [
        [        R                  X5        [	        [
        [        R                  US S 5        [        [        R                  " XS S9[        R                  " UR                  5       UR                  5       SS95        g )Nr  r5   r4   r3   rT   r   )
r   r  r  r  r   r   rg   r{  r   flattenro   rr   s     ry   test_ndim_too_high$TestCorrSpearmanr.test_ndim_too_high;  s    
		vIIOOAq!$j%//15j%//18j%//1dDA48		QYY[qI	Kr|   c                    [         R                  " S5      n[         R                  US'   [        [        R
                  " X5      [         R                  [         R                  45        [        [        R
                  " XSS9S5        [        [        [        R
                  XSS9  [        [        [        R
                  XSS9  g )Nr   r:   r   r   )r   r   r   r   )r   r   rn   r	   rg   r{  r   r   r  s     ry   test_nan_policy!TestCorrSpearmanr.test_nan_policyE  sx    IIcNvv!5??102662662BC5??1FC%	'j%//1GLj%//1HMr|   c                    [         R                  R                  S5        [         R                  R                  SS5      nSn[         R                  US S 2U4'   [         R
                  " XSS9n[        R                  " USS9u  pE[        R                  " U5      u  pg[         R
                  " [         R
                  " XBSS9USS9n[         R
                  " [         R
                  " XRSS9USS9n[        XFS	S
9  [        XWS	S
9  g )Nr6   rZ   r7   r   rT   r   r   r   rr  rG  )	r   r  r  randrn   deleterg   r{  r   )ro   rr   krs   corxpxcorypys           ry   test_nan_policy_bug_12458+TestCorrSpearmanr.test_nan_policy_bug_12458N  s    
		qIINN1b!&&!Q$IIa#??18??1%yy43QQ?YYryyQ/;/U+r|   c                    [         R                  R                  S5        SnSn[         R                  R                  X5      n[         R                  US'   [         R                  US'   [
        R                  " USSS9u  pE[        U5       VVs/ s HJ  n[        U5       Vs/ s H0  n[
        R                  " X7S S 24   X6S S 24   5      R                  PM2     snPML     nnn[        XH5        g s  snf s  snnf )Nr6   rZ   r   r   )r4   r`   r   	propagaterU   r   )
r   r  r  r  rn   rg   r{  r  r@  r   )	ro   mnrr   corrr?  jr  r   s	            ry   test_nan_policy_bug_12411+TestCorrSpearmanr.test_nan_policy_bug_12411[  s    
		qIIOOA!&&$66%qq[Ia" 1 FK1XNXQ$a41;;XN  	 "" O "s   C4"7C/C4/C4c                 d    [         R                  " [        [        5      nUS   n[        US5        g r   )rg   r{  rf   r
   r   s      ry   test_sXXTestCorrSpearmanr.test_sXXg  s%    OOAa aDAc"r|   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rg   r{  rf   r   r
   r   s      ry   
test_sXBIGTestCorrSpearmanr.test_sXBIGl  s%    OOAc"aDAc"r|   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rg   r{  rf   r   r
   r   s      ry   test_sXLITTLETestCorrSpearmanr.test_sXLITTLEq  s%    OOAf%aDAc"r|   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rg   r{  rf   r   r
   r   s      ry   test_sXHUGETestCorrSpearmanr.test_sXHUGEv  %    OOAd#aDAc"r|   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rg   r{  rf   r   r
   r   s      ry   test_sXTINYTestCorrSpearmanr.test_sXTINY{  r  r|   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rg   r{  rf   r  r
   r   s      ry   test_sXROUNDTestCorrSpearmanr.test_sXROUND  s%    OOAe$aDAc"r|   c                 d    [         R                  " [        [        5      nUS   n[        US5        g r   )rg   r{  r   r
   r   s      ry   test_sBIGBIGTestCorrSpearmanr.test_sBIGBIG  s%    OOC$aDAc"r|   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rg   r{  r   r   r
   r   s      ry   test_sBIGLITTLE!TestCorrSpearmanr.test_sBIGLITTLE  s%    OOC'aDAc"r|   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rg   r{  r   r   r
   r   s      ry   test_sBIGHUGETestCorrSpearmanr.test_sBIGHUGE  %    OOC%aDAc"r|   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rg   r{  r   r   r
   r   s      ry   test_sBIGTINYTestCorrSpearmanr.test_sBIGTINY  r  r|   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rg   r{  r   r  r
   r   s      ry   test_sBIGROUND TestCorrSpearmanr.test_sBIGROUND  s%    OOC&aDAc"r|   c                 d    [         R                  " [        [        5      nUS   n[        US5        g r   )rg   r{  r   r
   r   s      ry   test_sLITTLELITTLE$TestCorrSpearmanr.test_sLITTLELITTLE  s%    OOF6*aDAc"r|   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rg   r{  r   r   r
   r   s      ry   test_sLITTLEHUGE"TestCorrSpearmanr.test_sLITTLEHUGE  %    OOF4(aDAc"r|   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rg   r{  r   r   r
   r   s      ry   test_sLITTLETINY"TestCorrSpearmanr.test_sLITTLETINY  r  r|   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rg   r{  r   r  r
   r   s      ry   test_sLITTLEROUND#TestCorrSpearmanr.test_sLITTLEROUND  s%    OOF5)aDAc"r|   c                 d    [         R                  " [        [        5      nUS   n[        US5        g r   )rg   r{  r   r
   r   s      ry   test_sHUGEHUGE TestCorrSpearmanr.test_sHUGEHUGE  %    OOD&aDAc"r|   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rg   r{  r   r   r
   r   s      ry   test_sHUGETINY TestCorrSpearmanr.test_sHUGETINY  r  r|   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rg   r{  r   r  r
   r   s      ry   test_sHUGEROUND!TestCorrSpearmanr.test_sHUGEROUND  %    OOD'aDAc"r|   c                 d    [         R                  " [        [        5      nUS   n[        US5        g r   )rg   r{  r   r
   r   s      ry   test_sTINYTINY TestCorrSpearmanr.test_sTINYTINY  r  r|   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rg   r{  r   r  r
   r   s      ry   test_sTINYROUND!TestCorrSpearmanr.test_sTINYROUND  r  r|   c                 d    [         R                  " [        [        5      nUS   n[        US5        g r   )rg   r{  r  r
   r   s      ry   test_sROUNDROUND"TestCorrSpearmanr.test_sROUNDROUND  s%    OOE%(aDAc"r|   c                     [         R                  " [        [        5      nSn[        X5        [	        UR
                  UR                  5        g r<  )rg   r{  rf   r   r   r>  r@  rA  s      ry    test_spearmanr_result_attributes2TestCorrSpearmanr.test_spearmanr_result_attributes  s1    ooa#.
C,S__cmm4r|   c                     / SQn/ SQn[         R                  " X5      n[         R                  " [        R                  " X/5      R                  5      n[        X45        g )Nr   r3   r4   r5   r6   r7   )r   r3   r4   r5   r7   r6   )rg   r{  r   re   r   r   ro   x1x2res1r  s        ry   test_1d_vs_2dTestCorrSpearmanr.test_1d_vs_2d  sA    r&rzz2(3556#r|   c                    S H  nS[         R                  SSSS/nSSSSS[         R                  /n[        R                  " X#US9n[        R                  " [         R                  " X#/5      R
                  US9n[        XE5        M     g )	N)r  r   r   r4   r5   r6   r7   r3   r   )r   rn   rg   r{  re   r   r   )ro   r   r  r  r  r  s         ry   test_1d_vs_2d_nans$TestCorrSpearmanr.test_1d_vs_2d_nans  sq    /JRVVQ1a(BQ1a(B??2jAD??2::rh#7#9#9jQDD' 0r|   c                    [         R                  " S5      nU* n[         R                  " / SQ5      n[         R                  " XU/5      R                  n[
        R                  " U5      n[         R                  " / SQ/ SQ/ SQ/5      n[         R                  " S[        S9nSUS	S
S	24'   SUS
S	2S	4'   [        UR                  U5        [        UR                  U5        g )Nr7   )r   r   r3   r4   r6   r5   )r   r`   3+?)r`   r   3+)r  r  r   )r4   r4   rI   g+Hs]s?r3   r   )r   r   r   re   r   rg   r{  rb  floatr   r@  r?  )ro   r  r  x3rr   actualexpected_correxpected_pvalues           ry   
test_3colsTestCorrSpearmanr.test_3cols  s    YYq\SXX()JJ|$&&#"5"6">"@ A ((67"/1Q3"/!Q((-87r|   c           
         [         R                  " [         R                  SSSSSS/S[         R                  SSS	SS// S
Q/5      R                  n[         R                  " [         R                  [         R                  [         R                  /[         R                  [         R                  [         R                  /[         R                  [         R                  S//5      n[	        [
        R                  " USS9R                  U5        [
        R                  " USS9R                  n[	        US   S   US   S   US   S   4SSS9  g )Nr   r   rM   ffffff@r   ffffff"@ffffff@g333333@皙@)r<   r   ffffff@ffffff@r   r  ffffff@r   r  r   r   r   r   r3   )gacJC?g%ln?g_0nYt!޿r  r  )r   r   rn   r   r   rg   r{  r@  )ro   rr   r  r   s       ry   test_gh_9103TestCorrSpearmanr.test_gh_9103  s   HHrvvsCc3<BFFCc3<9; <<=A 	
 xx"&&"&&"&&1&&"&&"&&1&&"&&"-/ 0 	kBLL	 ooaF3==QCF1Is1vay9:	Gr|   c                    Sn[         R                  R                  S5      nUR                  U5      nUR                  U5      S:  nUS:  n[         R                  " U5      n[
        R                  " XVSS9R                  n[         R                  Xd'   [
        R                  " XVSS9R                  nUR                  [         R                  5      n[
        R                  " XVSS9R                  n	/ SQn
[        XxU	/U
5        g )Nr  iH rM  r<   r   r   )gonj?)Wn%?r  )r   r  RandomStater  r   rg   r{  r@  rn   astypeint32r   )ro   r  r  rr   r  rM  rY  r  r  res3expecteds              ry   test_gh_8111TestCorrSpearmanr.test_gh_8111  s    ii##F+HHQKHHQK# VHHQKq7AA vvq7AA HHRXXq7AA:T*H5r|   r   N)(r   r   r   r   r8  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r|   ry   ry  ry    s    #A	=KN,
##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
5$(8 G6r|   ry  c                       \ rS rSrSrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS r\R*                  R-                  SS5      S 5       rSrg)TestCorrSpearmanr2i  z-Some further tests of the spearmanr function.c                     / SQn/ SQnSn[         R                  " X5      n[        US   US   5        [        US   US   5        g )Nr   r3   r4   r5   r6   r6   r7   r8   r9   r8   gh
C?gR?r   r   )rg   r{  r
   ro   r  r  r  r   s        ry   test_spearmanr_vs_r&TestCorrSpearmanr2.test_spearmanr_vs_r   sE     >oob%CFHQK0CFHQK0r|   c                     [        [        R                  " / / 5      [        R                  [        R                  45        g N)r   rg   r{  r   rn   r  s    ry   test_empty_arrays$TestCorrSpearmanr2.test_empty_arrays*  s$    U__R,rvvrvv.>?r|   c           	         [         R                  R                  S5      n[         R                  " UR	                  SSSS9UR	                  SSSS9/5      nSS/SS//n[         R
                  " [         R                  R                  U5      U5      nSn[        R                  " US   US   5      n[        US   US   5        [        US   US   5        g )	Nz  r     locscaler  r   rO  )gCzYW?ge*=r   )r   r  r  r   r  dotlinalgcholeskyrg   r{  r
   )ro   r  rr   r  r  r   s         ry   test_normal_draws$TestCorrSpearmanr2.test_normal_draws-  s    ii##D)HHcjjQacj:jjQacj:< =c
c
FF299%%d+Q/?ooadAaD)CFHQK0CFHQK0r|   c                 T    [        [        R                  " / SQ/ SQ5      S   S5        g )Nr   r   r3   r   r   )r
   rg   r{  r  s    ry   test_corr_1TestCorrSpearmanr2.test_corr_19  s    EOOIyA!DcJr|   c                    [         R                  " S5      n[         R                  US'   [        [        R
                  " X5      [         R                  [         R                  45        [        [        R
                  " XSS9S5        [        [        [        R
                  XSS9  [        [        [        R
                  XSS9  g )Nr   r:   r   r   )r   r   r   r   )	r   r   rn   r	   rg   r{  r   r   r   r  s     ry   test_nan_policies$TestCorrSpearmanr2.test_nan_policies<  sx    IIcNvv!5??102662662BC@ 	"j%//1GLj%//1HMr|   c                     [         R                  " S5      n[         R                  " S5      n[        [        [        R
                  X5        g )Nr         4@)r   r   r   r   rg   r{  r  s      ry   test_unequal_lengths'TestCorrSpearmanr2.test_unequal_lengthsE  s,    IIcNIIcNj%//18r|   c                     / SQnSSS[         R                  /n[        R                  " XSS9n[        R                  " US S US S SS9n[	        X45        g )Nr  r9   r8   r7   r   r   r4   )r   rn   rg   r{  r   r  s        ry   test_omit_paired_value)TestCorrSpearmanr2.test_omit_paired_valueJ  sO    Arvvr&9r"1vr"1v&AT r|   c                 ^   [        [        S5      5      n[        [        S5      5      nUS   US   sUS'   US'   US   US   sUS'   US'   US   US   sUS'   US'   UR                  [        R                  5        UR                  S5        [        [        R                  " XS	S
9S   S5        g )N  r:   r   i  rZ   i  i  r   r   r   gV-?)listr  rQ  r   rn   r   rg   r{  r  s      ry   #test_gh_issue_6061_windows_overflow6TestCorrSpearmanr2.test_gh_issue_6061_windows_overflowQ  s    ttqT1Q4
!ad#""qvD'1S6#$ 	
	EOOAVDQGOr|   c                 h   Sn[         R                  " [        R                  US9   [        R                  " / SQ/ SQ5      u  p#[        U[        R                  5        [        U[        R                  5        [        R                  " / SQ/ SQ5      u  p#[        U[        R                  5        [        U[        R                  5        [        R                  " / SQ/ SQ5      u  p#[        U[        R                  5        [        U[        R                  5        S S S 5        g ! , (       d  f       g = f)Nr]  r   r3   r3   r3   r3   r   r3   )r   rd  rg   re  r{  r   r   rn   )ro   warn_msgr   rg  s       ry   	test_tie0TestCorrSpearmanr2.test_tie0^  s    /\\%44HE??9i8DABFF#BFF#??9i8DABFF#BFF#??9i8DABFF#BFF# FEEs   C4D##
D1c                     / SQn/ SQn/ SQn/ SQn[         R                  " X5      n[         R                  " X45      n[        XV5        g )Nr   r   r   r   )r   r   r   r   )r   r>   r>   r   )rg   r{  r   r   )ro   rr   rs   xryrsrprs          ry   	test_tie1TestCorrSpearmanr2.test_tie1l  s<      !! __Q"^^B#B#r|   c                     / SQn/ SQnSSSS[         R                  /nSSSS[         R                  /n[        R                  " X5      n[        R                  " X4SS	9n[	        XV5        g )
N)r   r3   r>   r3   )r   r4   r>   r5   r   r3   r>   r4   r5   r   r   )r   rn   rg   r{  r   )ro   r  rt   r  ru   sr1sr2s          ry   	test_tie2TestCorrSpearmanr2.test_tie2y  s^     CBFF#CBFF# oob%oob8C%r|   c                    [         R                  " / SQ/ SQ/5      n[         R                  " / SQ/ SQ/5      n[         R                  " / SQ/ SQ/5      nSn[        R                  " [        R
                  US9   [        R                  " USS9u  pV[        U[         R                  5        [        U[         R                  5        [        R                  " USS9u  pV[        U[         R                  5        [        U[         R                  5        [        R                  " USS9u  pV[        U[         R                  5        [        U[         R                  5        S S S 5        g ! , (       d  f       g = f)Nr   r   r   r   r  r]  r   r   rT   	r   r   r   rd  rg   re  r{  r   rn   )ro   z1z2z3rE  r   rg  s          ry   test_ties_axis_1#TestCorrSpearmanr2.test_ties_axis_1  s    XX|\23XX|\23XX|\23/\\%44HE??2A.DABFF#BFF#??2A.DABFF#BFF#??2A.DABFF#BFF# FEEs   :C"E%%
E3c                 z   [         R                  " / SQ5      n[         R                  " / SQ5      nSn[        R                  " [        R
                  US9   [        R                  " X5      u  pE[        U[         R                  5        [        U[         R                  5        S S S 5        g ! , (       d  f       g = f)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   rW  )ro   rr   rs   rE  r   rg  s         ry   test_gh_11111 TestCorrSpearmanr2.test_gh_11111  sx    HHGHHH - . 0\\%44HE??1(DABFF#BFF# FEEs   AB,,
B:c                     [         R                  " / SQ5      n[         R                  " / SQ5      n[        [        [        R
                  XSS9  g )N)
r   r   r   r   r   r   r   r   r   r   r^  r3   rT   )r   r   r   r   rg   r{  r  s      ry   test_index_error#TestCorrSpearmanr2.test_index_error  s8    HHGHHH - . 	j%//1a@r|   c                    / SQn/ SQnSn[         R                  " XSS9n[        US   US   5        [        US   SUS   S-  -
  5        [         R                  " XS	S9n[        US   US   5        [        US   US   S-  5        [        R                  " [
        S
S9   [         R                  " XSS9  S S S 5        g ! , (       d  f       g = f)Nr  r  r  r  r  r   r   r3   r  `alternative` must be 'less'...r   	ekki-ekki)rg   r{  r
   r   r   r   r  s        ry   test_alternative#TestCorrSpearmanr2.test_alternative  s      ? oob&9CFHQK0CFA!q$9: oob)<CFHQK0CFHQK!O4]]:-NOOOB< POOs   B>>
Cr  rX  c                 x   / SQn/ SQnU[         R                  /-   nU[         R                  /-   n[        [        R                  " XE5      [         R                  [         R                  45        [        R                  " XESUS9n[        R                  " X#US9n[        Xg5        Sn[        R                  " [        US9   [        R                  " XESUS9  S S S 5        S	n[        R                  " [        US9   [        R                  " XES
US9  S S S 5        g ! , (       d  f       NI= f! , (       d  f       g = f)Nr  r  r   r   r  r  r   r   r   r   rf  )	r   rn   r	   rg   r{  r   r   r   r   )	ro   r  r  r  x1nanx2nan
res_actualres_expectedr  s	            ry   test_alternative_nan_policy.TestCorrSpearmanr2.test_alternative_nan_policy  s     bffXbffX 	5??58266266:JK __Uf1<>
r;G
1 2]]:W5OOEW(35 6
 1]]:W5OOE[(35 65 65 65s    D:D+
D(+
D9r   N)r   r   r   r   r8  r  r"  r-  r1  r4  r8  r;  r@  rF  rN  rS  r[  r_  rb  rg  r   r   r
  ro  r   r   r|   ry   r  r    s|    71@
1KN9
!P$$&$ 	$A=. [[],LM5 N5r|   r  c            	         Sn / SQn/ SQnSnU  H<  n[         R                  " XUS9n[        US   US   5        [        US   US   5        M>     / SQn/ S	QnSnU  H<  n[         R                  " XUS9n[        US   US   5        [        US   US   5        M>     / S
Qn/ SQnSnU  H<  n[         R                  " XUS9n[        US   US   5        [        US   US   5        M>     / SQn/ SQnSnU  H<  n[         R                  " XUS9n[        US   US   5        [        US   US   5        M>     [        R                  " S5      n[        R                  " S5      nSnU  H<  n[         R                  " XUS9n[        US   US   5        [        US   US   5        M>     US   nUS   US'   XbS'   SnU  H<  n[         R                  " XUS9n[        US   US   5        [        US   US   5        M>     US   nUS   US'   XbS'   SnU  H<  n[         R                  " XUS9n[        US   US   5        [        US   US   5        M>     [        R                  " S5      n[        R                  " S5      S S S2   nSnU  H<  n[         R                  " XUS9n[        US   US   5        [        US   US   5        M>     US   nUS   US'   XbS'   SnU  H<  n[         R                  " XUS9n[        US   US   5        [        US   US   5        M>     US   nUS   US'   XbS'   SnU  H<  n[         R                  " XUS9n[        US   US   5        [        US   US   5        M>     [        / SQ5      n[        / SQ5      nSn[        [         R                  " XSS9S   U5        Sn[        [         R                  " XS S9S   U5        US   US'   [        [        [         R                  XS!S"9  [        [        [         R                  XS#S"9  [        [        [         R                  XS$S9  / S%Qn/ S&QnS'n[         R                  " Xx5      n[        US   US   5        [        US   US   5        S(n	U  HC  n[         R                  " XxUS9n[        XY5        [        UR                  UR                  5        ME     U  H  n[        [         R                  " / S)Q/ S)QUS9[        R                  [        R                  45        [        [         R                  " / S*Q/ S)QUS9[        R                  [        R                  45        [        [         R                  " / S)Q/ S*QUS9[        R                  [        R                  45        M     [        R                  " [        S+S,9   [        [         R                  " / / 5      [        R                  [        R                  45        S S S 5        [        R                   R#                  S-5      n
[        R
                  " U
R%                  SSS.S/9U
R%                  SSS.S/9/5      nS0S1/S1S0//n[        R&                  " [        R(                  R+                  U5      U5      nS2n[         R                  " US   US   5      n[        US   US   5        [        US   US   5        [        [         R                  " / S3Q/ S3QSS9S   S05        [        [         R                  " / S3Q/ S3QS S9S   S45        [        R                  " S55      n[        R                  US6'   [-        [         R                  " X5      [        R                  [        R                  45        [/        [         R                  " XS7S89S9S:S;9  [/        [         R                  " XS7S<S=9S>S:S;9  [        [        [         R                  XS?S89  [        [        [         R                  XS@S89  [        R                  " S55      n[        R                  " SA5      n[        [        [         R                  X5        [        R                  " [        S+S,9   [         R                  " S/S/5      u  pS S S 5        [        [        R                  W5        [        [        R                  W5        [        R                  " SB[0        SC9n[        R2                  R5                  USD5      n[        R                  " SB[0        SC9n[        R6                  " USES  US SE 45      n[9        [        R:                  " [         R<                  R                  X5      S   5      5        g ! , (       d  f       GN}= f! , (       d  f       GN= f)FN)rY  rs  )r6   r3   r   r4   r7   r5   r8   r9   )r6   r3   r7   r4   r   r9   r8   r5   r  )variantr   r   )	r   r6   r3   r   r4   r7   r5   r8   r9   )	r6   r3   r   r7   r4   r   r9   r8   r5   )r6   r3   r   r4   r7   r5   r8   )r6   r3   r7   r4   r   r8   r5   )gJ$I¿gmK?)r3   r   r4   r7   r5   r8   r9   )r3   r7   r4   r   r9   r8   r5   )gJkaa?r   rZ   )r   紞xO~>r3   )g?>?aV>r6   r7   )g}'}'?o&5>r`   )rR  rs  )g?>rt  )g}'}'ru  )
r   r3   r3   r5   r5   r7   r7   r9   r:   r:   )
r   r3   r5   r5   r5   r5   r9   r9   r9   rZ   gok|?rY  gffffff?rs  r  r  bananarmsr\   r3   r   r\   r3   r   r5   r8   r   r   )g}+޿g`=i?r=  rC  rD  One or more sample...r   r%  r&  r'  r   rO  )g\zf?g^n)=r0  g#q?r   r:   r   r   )r   g/>r  r  r  )r   r  )r   g&?r   r   r7  r>  rI   i  r  )rg   
kendalltaur
   r   r   r   r   r   r   r   r>  r@  rn   r   rd  r   r  r  r  r*  r+  r,  r	   r   r  mamasked_greaterconcatenater   r  mstats)variantsrr   rs   r  tauxr   rY  r  r  rB  r  r  taup_values                 ry   test_kendalltaur    s]    H 	!A A HqT2CFHQK0CFHQK0  	$A#A HqT2CFHQK0CFHQK0  	AA /HqT2CFHQK0CFHQK0  	AA %HqT2CFHQK0CFHQK0  			"A
		"A )HqT2CFHQK0CFHQK0  	
!AQ4AaDaD 8HqT2CFHQK0CFHQK0  	
!AQ4AaDaD 8HqT2CFHQK0CFHQK0  			"A
		"ddA *HqT2CFHQK0CFHQK0  	
!AQ4AaDaD 9HqT2CFHQK0CFHQK0  	
!AQ4AaDaD 9HqT2CFHQK0CFHQK0  	,-A-.AH((s;A>IH((s;A>I Q4AaD*e..WE *e..XF *e..eD
 
B	B:H


2
"CA,A, +Jrt4C,S__cmm4  U%%iDIffbff%	'U%%iDIffbff%	'U%%iDIffbff%	'  
(0G	HU%%b"-/?@ 
I ))


%C
#**!#*6**!#*68 	9A#J#JD
ryy!!$'+A<H


1Q41
&CA,A, ((IsKAN((IsKAN"$ 			#A66AaDu''-/?@E$$Qf='e5E$$Qf\R1?*e..I*e..J 			#A
		#A*e..5 
(0G	H''aS1 
I! 			$e$A
Q%A
		$e$A
$%!ET(+,ABKK//4Q789a 
I	HL 
I	Hs   (A ee0
e-0
e?c                     [         R                  R                  S5      n [        SS5       H  n/ n[        U5       H  nX#/U-  -  nM     [	        U5      nU R                  U5        U R                  U5        [        R                  " X$5      n[        R                  " X$5      n[        US   US   5        [        US   US   5        M     g )N*   r4   rZ   r   r   )
r   r  r  r  r?  shufflemstats_basicr|  rg   r
   )r  srM  r  rY  r  r  s          ry   test_kendalltau_vs_mstats_basicr    s    
))


#C1b\qAQJA GAA**10!!!'F1Ix{3F1Ix{3 r|   c                      / SQn [         R                  SSS/n[        R                  " XSS9n[        R                  " U SS  USS  5      n[	        UR
                  UR
                  SS9  g )	NrI  333333@333333@r   r   r   rF  rG  )r   rn   rg   r|  r   r@  )rr   rs   r1r2s       ry   test_kendalltau_nan_2nd_argr    s]    A	c3A			!6	2B			!AB%12	'BBLL",,U;r|   c                      SS K n U R                  S5        / SQnSnU R                  XS9nU R                  XS9n[        R                  " X45      n[        UR                  S5        [        UR                  SSS	9  g )
Nr   i_ r   r3   r4   r5   r6   r7   r8   i@ r  g*8_2\S?gd`TR?gMb`?rG  )r  r  choicesrg   r|  r   r@  r?  )r  classes	n_samplesrr   rs   r   s         ry    test_kendalltau_gh18139_overflowr    sn    
 
KK#GIw,Aw,A


1
 CCMM#89 CJJT2r|   c            	       p   \ rS rSrS rSr\R                  \R                  \R                  /r/ SQr	/ SQr
/ SQr/ SQr/ SQr/ S	Qr/ S
Qr/ SQrS r\" \" \\S/S-  5      5      \" \" \\" \5      S/S-  5      5      -   r\R.                  R1                  S\5      S 5       r\" \" \\	S/S-  5      5      \" \" \\" \	5      S/S-  5      5      -   r\R.                  R1                  S\5      S 5       r\" \" \\
S/S-  5      5      \" \" \\" \
5      S/S-  5      5      -   r\R.                  R1                  S\5      S 5       r\" \" \\S/S-  5      5      \" \" \\" \5      S/S-  5      5      -   r\R.                  R1                  S\5      S 5       r\" \" \\S/S-  5      5      \" \" \\" \5      S/S-  5      5      -   r \R.                  R1                  S\ 5      S 5       r!\" \" \\S/S-  5      5      \" \" \\" \5      S/S-  5      5      -   r"\R.                  R1                  S\"5      S 5       r#\" \" \\S/S-  5      5      \" \" \\" \5      S/S-  5      5      -   r$\R.                  R1                  S\$5      S 5       r%\" \" \\S/S-  5      5      \" \" \\" \5      S/S-  5      5      -   r&\R.                  R1                  S\&5      S 5       r'\" \" \\S/S-  5      5      \" \" \\" \5      S/S-  5      5      -   r(\R.                  R1                  S\(5      S 5       r)\" \" \S/S-  5      5      \" \" \S/S-  5      5      -   r*\R.                  R1                  S\*5      S 5       r+\R.                  R1                  SS5      \R.                  R1                  SS5      S  5       5       r,S!r-g")#TestKendallTauAlternativei  c                 0   / SQn/ SQn[         R                  " XSS9nUS   S:  d   e[         R                  " XSS9n[        US   US   5        [        US   SUS   S-  -
  5        [         R                  " XS	S9n[        US   US   5        [        US   US   S-  5        UR	                  5         [         R                  " XSS9nUS   S:  d   e[         R                  " XS	S9n[        US   US   5        [        US   SUS   S-  -
  5        [         R                  " XSS9n[        US   US   5        [        US   US   S-  5        [
        R                  " [        S
S9   [         R                  " XSS9  S S S 5        g ! , (       d  f       g = f)Nr  r  r  r  r   r  r   r3   r  re  r   rf  )rg   r|  r   r   reverser   r   r   r  s        ry   &test_kendalltau_alternative_asymptotic@TestKendallTauAlternative.test_kendalltau_alternative_asymptotic  s     ##BD{Q r6:SVXa[)AXa[1_ 56 r9=SVXa[)Aa0 	

 ##BD{Q r9=SVXa[)AXa[1_ 56 r6:SVXa[)Aa0]]:-NOR= POOs   (F
F)r  r  r  )r   r   r<   )r   RUUUU?ZUUUU?)g~?r  r  )?r   r  )ˮ[?r   r  )g?gSǌ?gSǌ?)g:
?g3
?g<t'.?)gN  A?gss?gYss?c                     U(       a  [         R                  " U5      * nUS-  n[        R                  " XSUS9nXV4n[	        Xx5        g )Nr`   r  r^  )r   re   rg   r|  r   )	ro   rr   rs   r  revstat_expected
p_expectedr   rn  s	            ry   
exact_test$TestKendallTauAlternative.exact_test.  sB    AARMqGM$0*r|   Fr4   Tzalternative, p_expected, revc           	          S/S/pT[         R                  n[        R                  " [        SS9   U R                  XEXXb5        S S S 5        g ! , (       d  f       g = f)Nr   r3   r{  r   )r   rn   r   rd  r   r  ro   r  r  r  rr   rs   r  s          ry   test_against_R_n1+TestKendallTauAlternative.test_against_R_n19  sC    sQC1\\,4KLOOA+MN MLLs   A
Ac                 <    SS/SS/pTSnU R                  XEXXb5        g )Nr   r3   r4   r5   g?r  r  s          ry   test_against_R_n2+TestKendallTauAlternative.test_against_R_n2C  s&    1v1v1*kJr|   c                 <    / SQ/ SQpTSnU R                  XEXXb5        g )Nr  r   r  r  s          ry   test_against_R_c0+TestKendallTauAlternative.test_against_R_c0L  s    )1kJr|   c                 <    / SQ/ SQpTSnU R                  XEXXb5        g )Nr  )r   r3   r5   r4   gVUUUUU?r  r  s          ry   test_against_R_c1+TestKendallTauAlternative.test_against_R_c1U  s    \1*kJr|   c                 <    / SQ/ SQpTSnU R                  XEXXb5        g )Nr  )r   r6   r5   r3   r4   r   r  r  s          ry   test_against_R_no_correlation7TestKendallTauAlternative.test_against_R_no_correlation_  s    1kJr|   c                 <    / SQ/ SQpTSnU R                  XEXXb5        g )Nr   r3   r4   r5   r6   r7   r8   r9   )r9   r7   r   r4   r3   r6   r5   r8   r   r  r  s          ry   test_against_R_no_correlationb8TestKendallTauAlternative.test_against_R_no_correlationbi  s    ')A1kJr|   c                 >    / SQn/ SQnSnU R                  XEXXb5        g )N)	g333333F@g33333F@g33333D@gfffffJ@gYF@gF@gYI@gF@gN@)	g@@r>   rM   @r   g@ffffff@r
  gqq?r  r  s          ry   test_against_R_lt_171/TestKendallTauAlternative.test_against_R_lt_171r  s$     C9*kJr|   c                     [         R                  R                  S5      nUR                  S5      nUR                  S5      nSnU R	                  XVXXr5        g )Nr   r  gUm*,r   r  r  r  r  ro   r  r  r  r  rr   rs   r  s           ry   test_against_R_lt_171b0TestKendallTauAlternative.test_against_R_lt_171b  sE    ii##A&HHSMHHSM,kJr|   c                     [         R                  R                  S5      nUR                  S5      nUR                  S5      nSnU R	                  XVXXr5        g )Nr      gH4?r  r  s           ry   test_against_R_lt_171c0TestKendallTauAlternative.test_against_R_lt_171c  sE    ii##A&HHSMHHSM*kJr|   zalternative, revc                 $   [         R                  R                  S5      nUR                  S5      nUR                  S5      n[        R
                  " XESUS9n[        R
                  " XESUS9n[        US   US   5        [        US   US   SS9  g )	Nr   i  r  r^  r  r   r  r  )r   r  r  r  rg   r|  r   r   )ro   r  r  r  rr   rs   res0r  s           ry   test_gt_171%TestKendallTauAlternative.test_gt_171  s    ii##A&HHSMHHSMW,79\,79T!Wd1g&Qat4r|   r  )r  r  r  rX  c           	      ~   / SQn/ SQnU[         R                  /-   nU[         R                  /-   n[        R                  " XVXS9n[         R                  [         R                  4n[	        Xx5        [        R                  " XVSXS9n[        R                  " X4UUS9n[	        Xx5        Sn	[
        R                  " [        U	S9   [        R                  " XVSXS9  S S S 5        S	n	[
        R                  " [        U	S9   [        R                  " XVS
XS9  S S S 5        g ! , (       d  f       NI= f! , (       d  f       g = f)Nr  r6   r7   r8   r9   r:   r^  r   )r   r  r  r   r   r   r   rf  )r   rn   rg   r|  r   r   r   r   )
ro   r  r  r  r  rk  rl  rm  rn  r  s
             ry   r  )TestKendallTauAlternative.test_nan_policy  s    bffXbffX %%e-3N
'
1 %%ev-3N
''v4?A
1 2]]:W5Ug$*E 6
 1]]:W5Uk$*E 65 65 65s   D=D.
D+.
D<r   N).r   r   r   r   r  alternativesr   rn   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   r|   ry   r  r    s   '>h 4LFFBFFBFF#DD0D>D<=DJCKGK+ c,ugai89L(4.4&(CDEI [[;YGO HO c,ugai89L(4.4&(CDEI [[;YGK HK
 c,ugai89L(4.4&(CDEI [[;YGK HK
 c,ugai89L(4.4&(CDEI [[;YGK HK
 3|-=wqyIJSx8H/I"&+ ,,N [[;^LK MK
 #l,=wqyIJCh7H.I!%q* ++M [[;]KK LK
 #lJ	BCChz.BTF1HMNOM [[;]KK LK 3|[5'!)DESx/D"&+ ,,N [[;^LK MK 3|[5'!)DESx/D"&+ ,,N [[;^LK MK L5'!)45L4&(345K [[/=	5 >	5 [[X'>?[[],LME N @Er|   r  c                  Z   / SQn / SQn[         R                  " X5      u  p#[        US5        [        [        R
                  U5        [         R                  " XSS9u  p#[        US5        [        [        R
                  U5        [         R                  " XS S9u  p#[        US	5        [        [        R
                  U5        [         R                  " X5      nS
n[        XE5        [        UR                  UR                  5        [         R                  " XS S9u  p#[        US5        [        [        R
                  U5        [         R                  " XS S9u  p#[        US5        [        [        R
                  U5        [         R                  " XS SS9u  p#[        US5        [        [        R
                  U5        [         R                  " XS SS9u  p#[        US5        [        [        R
                  U5        [         R                  " XSS9u  p#[        US5        [        [        R
                  U5        [         R                  " XSS S9u  p#[        US	5        [        [        R
                  U5        [         R                  " XSS S9u  p#[        US	5        [        [        R
                  U5        [         R                  " [        R                  " U [        R                  S9U5      u  p#[        US5        [         R                  " [        R                  " U [        R                  S9U5      u  p#[        US5        [         R                  " [        R                  " U [        R                  S9[        R                  " U[        R                  S95      u  p#[        US5        [        R                  " [        SS9   [         R                  " / / 5      u  p#S S S 5        [        [        R
                  U5        [        [        R
                  U5        [        R                  " [        SS9   [         R                  " S/S/5      u  p#S S S 5        [        [        R
                  U5        [        [        R
                  U5        [        [         [         R                  SS// SQ5        [        [         [         R                  SS/SS// SQ5        / SQn SSSS[        R
                  /n[         R                  " X5      u  p#[        US5        SS[        R
                  SS/n [         R                  " X5      u  p#[        US5        / S Qn S!S"S#S![        R
                  /n[         R                  " X5      u  p#[        US5        S$S%[        R
                  S$S%/n [         R                  " X5      u  p#[        US5        / S&Qn / S'Qn[         R                  " X5      u  p#[        US(5        S$S%[        R
                  S$[        R
                  /n [         R                  " X5      u  p#[        US(5        [        R
                  S"S#[        R
                  [        R
                  /n[         R                  " X5      u  p#[        US(5        g ! , (       d  f       GN= f! , (       d  f       GNU= f))Nrx  ry  gs$F)additivegROoc                     gNr   r   rr   s    ry   <lambda>"test_weightedtau.<locals>.<lambda>  s    Qr|   )weigherrz  r=  )rankgڿgn)r  r  g @ڿg[đ(gIکnTc                     gr  r   r  s    ry   r  r        r|   )r  r  c                     gr  r   r  s    ry   r  r    r  r|   rI   r{  r   r   r   r   r   r3   r5   r8   r\   r3   )      (@r   r   r  r   r   r   r   r  r   )r  r   r   r  r   )r   r   r   r   r   gt34+)rg   weightedtaur
   r   r   rn   r   r>  r@  re   r   r   r   rd  r   r   r   )rr   rs   r  r  r   rB  s         ry   test_weightedtaur    s   AA$$Q*LC12!$$QE:LC12!$$Q;?LC12! 

A
!C*J(#--0 $$Q5LC01!$$Q5LC01!$$QuELC12!$$QuELC12!$$Q6LC12!$$QkJLC12!$$QkJLC12!$$RZZ%DaHLC12$$RZZ%BAFLC12$$RZZ%D%'ZZ%DFLC12	(0G	H((R0 
I!	(0G	H((!qc2 
I!*e//!QC*e//!Q!QKA	
Aq!RVVA$$Q*LC12	QAA$$Q*LC12#A	c3RVV$A$$Q*LC12	sBFFD#&A$$Q*LC12#A!A$$Q*LC01	sBFFD"&&)A$$Q*LC01	c266266*A$$Q*LC01K 
I	H 
I	Hs   Z	1Z	
Z
Z*c                      Sn [         R                  " [        U S9   [        R                  " S/S/5        [        R                  " S/S/5        [        R                  " [
        R                  /S/5        S S S 5        g ! , (       d  f       g = f)Nz)One or more sample arguments is too smallr   r   r   4   )r   rd  r   rg   r  r   rn   )r  s    ry   test_segfault_issue_9710r  !  sd     :G	(	81#u%1#u%266(RD)	 
9	8	8s   AA??
Bc                  &   Sn [         R                  " U S-   5      R                  [        5      n[         R                  " U S-   5      R                  [        5      n[         R                  US'   [
        R                  " XSSS9u  p4[        US5        g )N   r   r`   r  r   )r  r   r   )r   r   r  r  rn   rg   r|  r   )r  rr   rs   _r  s        ry   test_kendall_tau_larger  -  sn    A
		!a%&A
		!a%&AFFAbEqGGGAsr|   c            
      $   S n S n[         R                  R                  S5      n[        SS5       H  n/ n[        U5       H  nXE/U-  -  nM     [	        U5      nUR                  U5        UR                  U5        [         R                  " [        U5      [         R                  S9n[        S5       HT  nS H:  n	U " XFXqU	5      n
[        R                  " XFXqU	5      R                  n[        X5        M<     UR                  U5        MV     M     g )	Nc                 P   S=n=n=n=p[        [        [        U 5      5      [        [        U 5      5      5       H  u  pU(       a  U" X*   5      U" X+   5      -   OU" X*   5      U" X+   5      -  nX\-  nX
   X   :X  a  X-  nX   X   :X  a  X-  n	X
   X   :  a
  X   X   :  d  X
   X   :  a  X   X   :  a  Xl-  nM  X
   X   :  a
  X   X   :  d  X
   X   :  d  M  X   X   :  d  M  X|-  nM     Xg-
  [        R                  " XX-
  5      -  [        R                  " XY-
  5      -  $ )Nr   )r   r  lenr   rJ  )rr   rs   r  r  addtotconcdiscuvr  r  ws                ry   wkq*test_weightedtau_vs_quadratic.<locals>.wkq9  s$   $%%%d%T%AeCFmU3q6];FQ7: 747#33TW%(88 HCtqt|tqt|tad{qtad{adQTkadQTk	qtqt	 < rwwsw//"''#'2BBBr|   c                     SU S-   -  $ )Nr   r   r   r  s    ry   r  .test_weightedtau_vs_quadratic.<locals>.weigherI  s    QU|r|   r  r4   rZ   rI   r3   r^   )r   r  r  r  r?  r  r   r  intprg   r  r@  r
   )r
  r  r  r  rM  r  rY  r  r  r  r  r  s               ry   test_weightedtau_vs_quadraticr  7  s    C  ))


#C1R[qAQJA GAAyyQrww/qA$qTC8**1DNN#H5 %
 KK  r|   c                        \ rS rSrS rS rSrg)TestFindRepeatsi`  c                     / SQnSn[         R                  " US9   [        R                  " U5      u  p4S S S 5        [	        W/ SQ5        [	        W/ SQ5        g ! , (       d  f       N+= f)N)r   r3   r4   r5   r   r3   r4   r5   r   r3   r6   +`scipy.stats.find_repeats` is deprecated...r   r  )r4   r4   r3   r3   r   deprecated_callrg   find_repeatsr	   )ro   rM  r  r   numss        ry   rZ  TestFindRepeats.test_basicb  sN    -?##'2**1-IC 33-4. 32s   A
A'c                     / SQ/ 4 HR  nSn[         R                  " US9   [        R                  " U5      u  p4S S S 5        [	        W/ 5        [	        W/ 5        MT     g ! , (       d  f       N+= f)N)rZ   r  2      (   r  r   r  )ro   rM  r  repeatedcountss        ry   test_empty_result!TestFindRepeats.test_empty_resultj  sW    &+ACG''g6#(#5#5a#8  7x,vr* ,66s   A
A,	r   N)r   r   r   r   rZ  r  r   r   r|   ry   r  r  `  s    /+r|   r  c                   t    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rSrg)TestRegressionit  c                     [         R                  " [        [        5      n[	        UR
                  S5        [	        UR                  S5        [	        UR                  S5        [	        UR                  S5        g )Nir   r   )	rg   
linregressrf   r   r   	interceptrvaluestderrintercept_stderrro   r  s     ry   test_linregressBIGX"TestRegression.test_linregressBIGXu  sR    !!!S)F,,h7FMM3/ 	FMM3/F33S9r|   c                     [         R                  " [        [        5      n[        UR                  S5        [        UR
                  S5        [        UR                  S5        [        UR                  S5        g )Nr   r   )rg   r$  rf   r   r%  r&  r'  r(  r)  s     ry   test_regressXXTestRegression.test_regressXX  sR    
 !!!Q'F,,c2FMM3/FMM3/F33S9r|   c                 f   [         R                  " [        [        5      n[	        UR
                  S5        [        R                  " [         R                  SS9   [         R                  " [        [        5      R                  nS S S 5        [	        UR                  W5        g ! , (       d  f       N%= f)Nr   zAn input array...r   )rg   r$  rf   ZEROr   r%  r   rd  re  r   r@  r&  )ro   r  
ref_rvalues      ry   test_regressZEROX TestRegression.test_regressZEROX  so    
 !!!T*F,,c2\\%44<OP40::J QFMM:6 QPs   *B""
B0c                 Z   [         R                  " SSS5      nS[         R                  " SSS5      -  S-   nU[         R                  " [         R                  " SSS5      5      -  n[        R                  " X5      n[
        n[        [        X45      5        [        UR                  S5        g )Nr   r  皙?rZ   r  g4_Qc?)
r   linspacesinrg   r$  r"   r   
isinstancer   r'  )ro   rr   rs   r  lrs        ry   test_regress_simple"TestRegression.test_regress_simple  s    KK3$"++ac**R/	RVVBKK2s+,,!!!'
6&'FMM+@Ar|   c                    [         R                  " SSS5      nS[         R                  " SSS5      -  S-   nU[         R                  " [         R                  " SSS5      5      -  n[        R                  " [
        SS9   [        R                  " XSS	9  S S S 5        [        R                  " XS
S	9n[        R                  " XSS	9n[        UR                  SUR                  S-  -
  5        [        R                  " XSS	9n[        UR                  UR                  S-  5        UR                  UR                  s=:X  a  UR                  :X  d   e   eg ! , (       d  f       N= f)Nr   r  r5  rZ   r  re  r   rf  r  r  r  r   r3   r  )r   r6  r7  r   r   r   rg   r$  r   r?  r&  )ro   rr   rs   r  r  r  s         ry   test_regress_alternative'TestRegression.test_regress_alternative  s   KK3$"++ac**R/	RVVBKK2s+,,]]:-NOQ{; P +> &9Q$++/%:; )<T[[1_5{{dkk8T[[88888 POs   ?E
E$c                 n   / SQn/ SQn[         R                  " XSS9n[        UR                  S5        [        UR                  S5        [        UR
                  [        R                  " S5      5        [        UR                  S5        [        UR                  S	5        [        UR                  S
5        g )N)
                              )
?   Q   8   [   /   9   r9  H   >   r/  r  r  gؗh?gJK@:Cgag?g->g5ՒO?g]؊E @)rg   r$  r   sloper%  r&  r   rJ  r?  r'  r(  )ro   rr   rs   r   s       ry   test_regress_against_R%TestRegression.test_regress_against_R  s     ?4q=		?3'89

BGGM$:;

$56

O4,,o>r|   c                    [         R                  " S5      n[         R                  " SS5      nUSS/==   S-  ss'   USS/==   S-  ss'   [        R                  " X5      nS nU" UR                  S	5        U" UR
                  S
5        U" UR                  S5        U" UR                  S5        U" UR                  S5        U" UR                  S5        g )Nr[   r6   r   r   r   r`   c                     [        XSS9$ )NrX   r  )r   rr   rs   s     ry   	assert_ae1TestRegression.test_linregress.<locals>.assert_ae  s    &qR88r|   r   rM   gePUn?g.bt>gڽE?gʺL7?)
r   r   rg   r$  rR  r%  r&  r?  r'  r(  )ro   rr   rs   r  rZ  s        ry   test_linregressTestRegression.test_linregress  s    IIbMIIa	A+!	A+!!!!'	9&,,$&""C(&--!12&--1&--!56&))+>?r|   c                    Su  p[         R                  " USU-  U5      n[         R                  " SU-  X5      n[        R                  " X45      n[	        UR
                  S:  5        [        UR
                  S5        [	        [         R                  " UR                  5      (       + 5        [	        [         R                  " UR                  5      (       + 5        g )N)gJr 11順 r3   r`   )
r   r6  rg   r$  r   r&  r   r|  r'  r(  )ro   rM  r  rr   rs   r  s         ry    test_regress_simple_negative_cor/TestRegression.test_regress_simple_negative_cor  s     KK1q5!$KKAq$!!!' 	#$FMM2. 	BHHV]]++,BHHV44556r|   c                 j   [         R                  " SSS5      nS[         R                  " SSS5      -  S-   nU[         R                  " [         R                  " SSS5      5      -  n[        R                  " X5      n[
        n[        [        X45      5        Sn[        X55        S[        U5      ;   d   eg )Nr   r  r5  rZ   r  )rR  r%  r&  r?  r'  r(  )
r   r6  r7  rg   r$  r"   r   r8  r   dir)ro   rr   rs   r  r9  rB  s         ry   !test_linregress_result_attributes0TestRegression.test_linregress_result_attributes  s    KK3$"++ac**R/	RVVBKK2s+,,!!!' 
6&' J
F/!S[000r|   c                    [         R                  " S5      n[         R                  " SS5      n[        R                  " X5      n[	        UR
                  S5        [	        UR                  S5        [	        UR                  S5        g )Nr3   r4   r6   r   )r   r   rg   r$  r   r?  r'  r(  ro   rr   rs   r  s       ry   test_regress_two_inputs&TestRegression.test_regress_two_inputs
	  s^    IIaLIIaO!!!' 	FMM3/ 	FMM3/F33S9r|   c                    [         R                  " S5      n[         R                  " S5      n[        R                  " X5      n[        UR                  S5        [        UR                  S5        [        UR                  S5        g )Nr3   r   r   )	r   r   r  rg   r$  r   r?  r'  r(  rg  s       ry   'test_regress_two_inputs_horizontal_line6TestRegression.test_regress_two_inputs_horizontal_line	  s\    IIaLGGAJ!!!' 	FMM3/ 	FMM3/F33S9r|   c                 N   / SQn/ SQn[         R                  " X5      n[        UR                  S5        [        UR                  S5        [        UR
                  S-  S5        [        UR                  S5        [        UR                  S5        [        UR                  S	5        g )
N)$r5  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^@rO  rO  gffffff@g1u@g@g     8@g     X@333333&@g33333]@gfffffl@g@fffff|@r<   )$rL  g,u@gfffff]@     @r  rq  g     @     4@g|@33333W@gy@rO  rL  gP@gfffff@4u@rs  g%@gm@gl@g     0@gfffffƋ@gfffff]@rO  rp  gl@rw  rt  ru  rv  gffffff$@gffffff]@g̜l@g33333@g33333|@r5  g?g!пr3   gpX?r   gh-h*<?gg?)	rg   r$  r   rR  r%  r&  r?  r'  r(  rg  s       ry   test_nist_norrisTestRegression.test_nist_norris$	  s    77 !!!'FLL*:;F,,.@AFMM1,.?@FMM3/FMM+;<F335EFr|   c                    [         R                  " SSS5      nS[         R                  " SSS5      -  S-   nU[         R                  " [         R                  " SSS5      5      -  n[        R                  " X5      n[         R
                  " XS5      n[        UR                  US   5        [        UR                  US   5        g )Nr   r  r5  rZ   r  r   )	r   r6  r7  rg   r$  polyfitr   rR  r%  )ro   rr   rs   r  polys        ry   test_compare_to_polyfit&TestRegression.test_compare_to_polyfit?	  s    KK3$"++ac**R/	RVVBKK2s+,,!!!'zz!" 	FLL$q'2F,,d1g6r|   c                     [         R                  " [        SS9   [        R                  " / / 5      n[
        R                  " [
        R                  " U5      5      (       d   e S S S 5        g ! , (       d  f       g = f)Nr{  r   )r   rd  r   rg   r$  r   r  r|  ro   r   s     ry   test_empty_inputTestRegression.test_empty_inputK	  sN    \\,4KL""2r*C66"((3-(((( MLLs   A	A--
A;c                    [         R                  " S5      n[         R                  US'   [         R                  " SS9   [        R
                  " X5      nS S S 5        [        n[        [        WU5      5        [        U[         R                  4S-  5        [        UR                  [         R                  5        g ! , (       d  f       Nl= f)Nr   r:   ignoreinvalidr6   )r   r   rn   errstaterg   r$  r"   r   r8  r	   r   r(  )ro   rr   r  r9  s       ry   test_nan_inputTestRegression.test_nan_inputP	  s    IIcNvv![[*%%a+F + 
62&'6BFF9Q;/V,,bff5 +*s   B;;
C	c                     [         R                  " S5      n[         R                  R                  S5      nSn[        [        US9   [
        R                  " X5        S S S 5        g ! , (       d  f       g = f)NrZ   z$Cannot calculate a linear regressionr   )r   rb  r  r   r   rg   r$  ro   rr   rs   r   s       ry   test_identical_xTestRegression.test_identical_x]	  sL    HHRLIIR 4:S1Q" 211s   A&&
A4r   N)r   r   r   r   r*  r-  r2  r:  r=  rS  r\  r`  rd  rh  rk  rx  r}  r  r  r  r   r   r|   ry   r"  r"  t  sU    :
:*	7	B9*?&@,7$1 ::G6
7)
6#r|   r"  c                     [         R                  " / SQ5      u  pp#[        U S5        [        US5        Sn[        R                  " [
        US9   [         R                  " / SQSS9  S S S 5        [         R                  " / SQSS9u  pp#[        U S5        [        US5        / S	Qn/ S
Qn[         R                  " XeSSS9u  pp#[        U S5        [        US5        [        USSS9  [        USSS9  [         R                  " XeSSS9u  pp#[        U S5        [        US5        [        USSS9  [        USSS9  g ! , (       d  f       N= f)Nr   r   r   r<   zHmethod must be either 'joint' or 'separate'.'joint_separate' is invalid.r   joint_separater  jointr   )r   r3   r4   r5   rZ   r\      )r:   r     r  -   7   rG   gQ?separater5   r   gQ@r3   rX  gGz@r   )rg   theilslopesr   r   r   r   )rR  r%  lowerupperr   rr   rs   s          ry   test_theilslopesr  e	  s.   %*%6%6w%?"Ees#	3'*C	z	-),<= 
. &+%6%6y>E&G"Ees#	3' 	!A#A%*%6%6qT>H&J"Eeq!	3'tQ/tQ/%*%6%6qT>E&G"Eeq!	3'tQ/tQ// 
.	-s   D88
Ec                     / SQn [         R                  " U SS9u  pp4[        U[        R                  " / SQ5      5        [         R                  " U SSS9u  pp4[        US:H  5        Sn[         R                  " U SSS9n[        Xe5        g )	Nr   r5   r3   r   r4   r   r5   numbins)r   r   rM   r   )r=   r6   )r  defaultreallimitsr4   )cumcountr   binsizeextrapoints)rg   cumfreqr   r   r   r   r   )rr   cumfreqslowlimr  r  rB  r   s          ry   test_cumfreqr  	  sy    A-2]]1a-H*Hgh1A(BC-2]]	1.2*HgK1 FJ
--1
AC(r|   c                      [         R                  " / SQ5      n [        R                  " U SS9u  pp4[	        U[        / SQ5      5        Sn[        R                  " U SS9n[        Xe5        [        R                  " / SQSS9u  prp4[	        X5        g )Nr  r5   r  )r<   K}\UU?r  r  )	frequencyr   r  r  )r   r   rg   relfreqr   r   )rM  relfreqsr  r  r  rB  r   	relfreqs2s           ry   test_relfreqr  	  s~    
#$A-2]]1a-H*Hgh#$MNP GJ
--1
%C( /4mm<NDE/G+Iwh2r|   c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)TestScoreatpercentilei	  c                 :    / SQU l         / SQU l        / SQU l        g )N)r4   r5   r6   rZ   ra   r7   )r4   rV  r9   r8   r5   r3   r   )r   r5   r6   rZ   ra   r  r  r   a1a2a3r  s    ry   setup_method"TestScoreatpercentile.setup_method	  s    *,1r|   c                     [        S5      S-  n[        [        R                  " US5      S5        [        [        R                  " US5      S5        [        [        R                  " US5      S5        g )	Nr9   r<   r   r   r  r?   r        ?)r   r   rg   scoreatpercentiler  s     ry   rZ   TestScoreatpercentile.test_basic	  sT    1IOU,,Q2B7U,,Q4c:U,,Q3T:r|   c           	      *   [         R                  n[        U" [        [	        S5      5      S5      S5        [        U" [        [	        S5      5      SS5      S5        [        U" [        [	        S5      5      SSS9S5        [        U" [
        R                  " / SQ5      SS	5      S
5        [        U" [
        R                  " / SQ5      SS5      S5        [        U" [        [	        S5      5      SSS9S5        [        U" [        [	        S5      5      SSSS9S5        [        U" [        [	        S5      5      SSSS9S5        [        U" [
        R                  " / SQ5      SS	SS9S
5        [        U" [
        R                  " / SQ5      SSSS9S5        g )NrZ   r  r@   r3   r8   r  r   r9   )limitr   rZ   r  rZ   r  r  r   rZ   rA   fractioninterpolation_methodr  r  rg   r  r   r?  r  r   r   ro   scoreatpercs     ry   test_fraction#TestScoreatpercentile.test_fraction	  sP   -- 	[eBi"5s;[eBi"e<cB[eCj!12VDcJ[+!6HErJ[+!6FCSI 	[eBi":V	[eBi"F6@B	 	[eCj!12V6@B	 	[+!6I6@B	 	[+!6F6@B	r|   c           	      $   [         R                  n[        U" [        [	        S5      5      SSS9S5        [        U" [        [	        S5      5      SSS9S5        [        U" [        [	        S5      5      SSSS9S5        [        U" [        [	        S5      5      SSSS	9S5        [        U" [        [	        S
5      5      SSSS9S5        [        U" [        [	        S
5      5      SSSS9S5        [        U" [
        R                  " / SQ5      SSSS9S5        [        U" [
        R                  " / SQ5      SSSS	9S
5        [        U" [
        R                  " / SQ5      SSSS9S5        [        U" [
        R                  " / SQ5      SSSS	9S5        g )NrZ   r  r  r  r5   higherr6   r  r  r  r  r  r  r  r   r  r  s     ry   test_lower_higher'TestScoreatpercentile.test_lower_higher	  s~   -- 	[eBi"6=?@A	C[eBi"6>@AB	D[eBi"e6=?@A	C[eBi"E6>@AB	D[eCj!12u6=?@A	C[eCj!12u6>@AB	D[,!7Y6=?@B	D[,!796>@AD	F[,!7W6=?@A	C[,!776>@AC	Er|   c           	      .   [        S5      S-  n[        R                  " / SQ5      n[        R                  " U/ SQ5      n[        X25        [        [        U[        R                  5      5        [        [        R                  " U[        R                  " / SQ5      5      U5        [        R                  " [        R                   " S5      R                  S5      [        R                  " / SQ5      SS	9n[        / S
Q/ SQ/ SQ/ SQ/5      n[        XE5        g )Nr9   r<   )r   r?   r  )r   r  r  r\   r4   r5   )r   r   r  r  r   rT   )r   r5   r9   )Q?gQ@g(\ @r4   r8   r[   )
r   r   r   rg   r  r   r   r8  ndarrayri   )ro   rr   r  r   r  	expected2s         ry   test_sequence_per'TestScoreatpercentile.test_sequence_per	  s    1IO88N+%%a6&
3

+,//288L3IJ 	" &&ryy}'<'<U'C')xx0@'AK9-%%' (	 	(r|   c                    [         R                  n[        S5      R                  SS5      n[	        U" US5      / SQ5        / SQ/ SQ/ SQ/n[	        U" USS	S
9U5        / SQ/ SQ/ SQ/n[	        U" USSS
9U5        [        / SQ/ SQ/ SQ/ SQ/ SQ/5      n[         R                  " US5      n[	        UR                  S5        [	        US5        [         R                  " USS	S
9n[	        UR                  S5        [	        U/ SQ5        g )Nr\   r4   r5   )r  r  r  )g      @rA         &@)r3   r4   r5   r6   r5   r6   r7   r8   )r9   r:   rZ   r[   r   rT   )      ?g      @g     !@)r=   rA         #@r  r   r   r   r   )r5   r5   r4   r  r   r   r4   )rg   r  r   ri   r   r   r  )ro   r  rr   r0r  scores         ry   	test_axisTestScoreatpercentile.test_axis	  s    --2Jq!$[M24EFL.9[M:B? /:>[M:B?9	 
 ''2.U[["%UC ''2A6U[[$'UI&r|   c                     [        [        [        R                  SS/SSS9  [        [        [        R                  S/S5        [        [        [        R                  S/S5        g )Nr   r3   rL  r   r  e   r`   )r   r   rg   r  r  s    ry   test_exception$TestScoreatpercentile.test_exception
  sK    j%"9"9Aq62+3	5j%"9"9A3Dj%"9"9A3Cr|   c                 n   [        [        R                  " / S5      [        R                  5        [        [        R                  " [        R
                  " / / /5      S5      [        R                  5        [        [        R                  " / SS/5      [        R                  [        R                  /5        g )Nr  c   )r   rg   r  r   rn   r   r  s    ry   
test_empty TestScoreatpercentile.test_empty
  sm    U,,R4bff=U,,RXXr2h-?DbffMU,,R"b:RVVRVV<LMr|   r  N)r   r   r   r   r  rZ  r  r  r  r  r  r  r   r   r|   ry   r  r  	  s-    2
;4E2)$'0DNr|   r  c            
          \ rS rSrS rS rS rS r\R                  R                  S\R                  " SS5      5      S	 5       rS
 rS r\R                  R                  S/ SQS\R                   SSSS// SQS\R                   SS//5      \R                  R                  SSS/5      S 5       5       r\R                  R                  S\R                  " SS5      5      \R$                  4S j5       rS rS r\R                  R                  SSS/5      S 5       rS r\R                  R1                  S5      \R                  R                  S \R2                  " S!5      \R2                  " S"5      /5      S# 5       5       rS$ rS%rg&)'TestModei
  c                 "   [         R                  " [        [        S9   [        R
                  " / 5      u  pS S S 5        [        W[        R                  " / 5      5        [        W[        R                  " / 5      5        g ! , (       d  f       NO= fNr   )	r   rd  r   r   rg   moder   r   r   ro   valsr  s      ry   r  TestMode.test_empty
  sU    \\,4IJ ::b>LD KT288B<(VRXXb\* KJs   B  
Bc                     [         R                  " S5      u  p[        U[        R                  " S/5      5        [        U[        R                  " S/5      5        g )Nr   r   )rg   r  r   r   r   r  s      ry   r}  TestMode.test_scalar#
  s9    zz"~T288RD>*VRXXqc]+r|   c                 t    / SQn[         R                  " U5      n[        US   S5        [        US   S5        g )Nr4   r6   r   rZ      r4   r3   r7   r9   r7   rZ   r7   r   r7   r   r4   rg   r  r   )ro   data1r  s      ry   rZ  TestMode.test_basic(
  s1    7zz% T!Wa T!Wa r|   c           
         / SQn/ SQn/ SQn/ SQn/ SQn[         R                  " XX4U/5      n[        R                  " US SS9n[	        US   [         R                  " S	//5      5        [	        US
   [         R                  " S//5      5        [        R                  " USSS9n[	        US   [         R                  " / SQ/5      5        [	        US
   [         R                  " / SQ/5      5        [        R                  " US
SS9n[	        US   [         R                  " S/S/S/S	/S	//5      5        [	        US
   [         R                  " S/S/S/S/S//5      5        g )N)rZ   rZ   r  r  )rZ   rZ   rZ   rZ   )r  rZ   r  r  )r  r  r  r  )r  r  r  r  TrU   keepdimsr   r  r   r9   )rZ   rZ   r  r  )r3   r4   r4   r3   rZ   r  r3   r5   r4   )r   r   rg   r  r   )ro   r  data2data3data4data5arrr  s           ry   	test_axesTestMode.test_axes.
  s'        hheE:;zz#D48T!Wbhhv./T!Wbhhuo.zz#A5T!Wbhh(8'9:;T!Wbhh~67zz#A5T!WbhhrdRD2$'EFGT!WbhhaS1#sQC'@ABr|   rU   r   c                 .   [         R                  R                  S5        [         R                  R                  SSSS5      n[        R
                  " X"R                  U-   S9n[        R
                  " X!S9n[         R                  R                  X45        g )N:rZ   r[   r\   r]   rT   )	r   r  r  r  rg   r  ndimr"  r	   )ro   rU   rM  r  r  s        ry   test_negative_axes_gh_15375$TestMode.test_negative_axes_gh_15375B
  s`    
		y!IINN2r2r*zz!&&+.zz!'


%%d1r|   c                    / SQn/ n[         R                  " U5      nSn[        X45        [        R                  " [
        [        S9   [         R                  " U5      nS S S 5        [        WU5        g ! , (       d  f       N= f)Nr  )r  countr   )rg   r  r   r   rd  r   r   )ro   r  r  r  rB  actual2s         ry   test_mode_result_attributes$TestMode.test_mode_result_attributesJ
  s_    7E"&
F/\\,4IJjj'G KGZ0 KJs   A33
Bc                 <   S[         R                  SSSSSSSSSSS/n[        R                  " U5      n[	        US	5        [        R                  " US
S9n[	        US	5        [        [        [        R                  USS9  [        [        [        R                  USS9  g )Nr4   r6   r   rZ   r  r3   r7   r9   )r7   r4   r   r   r   r   )r   rn   rg   r  r   r   r   )ro   r  r  s      ry   test_mode_nanTestMode.test_mode_nanT
  s|    BFFAq"b!Q1aQ?E"VV$Ef5VV$j%**eHj%**eIr|   data)r4   r6   r   r   r4   r4   r6   r   )r4   r6   r   r  FTc                     [         R                  " USUS9nU(       a  [        US   S   S5        g [        US   S5        g )Nr   )r   r  r   r   r  )ro   r  r  r  s       ry   test_smallest_equalTestMode.test_smallest_equal^
  s9     DVhG1q)A&r|   ra   c                    [         R                  R                  S5      nUR                  SS9R	                  U5      n[
        R                  " XASS9n[        UR                  5      nUR                  U5        [         R                  R                  UR                  R                  U5        [         R                  R                  UR                  R                  U5        g )Nr  r4   r5   r6   r  Fr  )r   r  r  uniformr  rg   r  r?  r  popr"  r	   r  )ro   rU   rJ   r  rM  r   reference_shapes          ry   test_mode_shape_gh_9955 TestMode.test_mode_shape_gh_9955l
  s    ii##I.KKYK'..u5jj6qww-D!


%%chhnnoF


%%ciiooGr|   c                     S[         R                  S[         R                  /n[        R                  " U5      n[         R                  " UR                  5      (       a  UR
                  S:X  d   eg Nr3   r   )r   rn   rg   r  r|  r  )ro   rM  r   s      ry   !test_nan_policy_propagate_gh_9815*TestMode.test_nan_policy_propagate_gh_9815v
  sL     266"jjmxx!!cii1n44nr|   c                    [         R                  " S5      n[        R                  " USSS9nUR                  R                  UR
                  R                  s=:X  a  S:X  d   e   e[        R                  " USSS9nUR                  R                  UR
                  R                  s=:X  a  S:X  d   e   eSSS[         R                  /SS[         R                  S//n[        R                  " USSS9n[        UR                  SS/5        [        UR
                  S	S/5        [        R                  " USSS9n[        UR                  S/S//5        [        UR
                  S	/S//5        [         R                  " U5      n[        R                  " US SS9n[        R                  " UR                  5       SS
9n[        X#5        UR                  R                  UR                  R                  s=:X  a  S:X  d   e   e[        R                  " US SS9n[        R                  " UR                  5       SS
9n[        UR                  R                  5       UR                  R                  5       5        UR                  R                  S:X  d   e[        UR
                  R                  5       UR
                  R                  5       5        UR
                  R                  S:X  d   eS[         R                  [         R                  [         R                  S/[         R                  [         R                  [         R                  [         R                  S	/SS	[         R                  SS//n[        R                  " USSSS9n[        UR                  / SQ5        [        UR
                  / SQ5        [        R                  " USSSS9n[        UR                  S/S	/S//5        [        UR
                  S	/S/S	//5        [         R                  " U5      n[        R                  " US SSS9n[        R                  " UR                  5       SSS9n[        X#5        UR                  R                  UR                  R                  s=:X  a  S:X  d   e   e[        R                  " US SSS9n[        R                  " UR                  5       SSS9n[        UR                  R                  5       UR                  R                  5       5        UR                  R                  S:X  d   e[        UR
                  R                  5       UR
                  R                  5       5        UR
                  R                  S:X  d   eg )N)r   r3   r4   r   r   Fr  )r   r4   r   T)r   r   r4   r   r4   r3   r  r   r  r6   r   )rU   r  r   )r   r3   r6   )r3   r   r3   )r  r   )r   rb  rg   r  r  r  rn   r	   r   r  r   )ro   rM  r   r  s       ry   test_keepdimsTestMode.test_keepdims}
  s   HH\"jjU3xx~~=I=====jjT2xx~~@L@@@@@ ArvvArvvq 12jjU3388aV,399q!f-jjT2388qcA3Z0399sQCj1HHQKjj6jjU33$xx~~5255555jj5jjT2SXX^^%sxx~~'78xx~~'''SYY__&		(9:yy&((( +ffbffbffbffa0BFFAq!# jjUvF388Y/399i0jjTfE388qcA3_5399sQC!o6HHQKjj&IjjUvF3$xx~~5255555jjHjjTfESXX^^%sxx~~'78xx~~'''SYY__&		(9:yy&(((r|   r   r  r   c                    Sn[         R                  " U5      n[         R                  US'   [        R                  " USSUS9n[        UR                  / SQ5        [        UR                  / SQ5        [         R                  " S[         R                  4S	[         R                  S
4/5      n[         R                  " SUS9nSn[        R                  " [        US9   [        R                  " XaS9  S S S 5        g ! , (       d  f       g = f)N)r5   r4   r  r   F)rM  rU   r  r   rV  r3   r4   r4   r4   asdfqwerr  rZ   rI   z=Argument `a` is not....|An argument has dtype...|The DType...r   r   )r   r  rn   rg   r  r	   r  rJ   uint8r   rb  r   r   	TypeError)ro   r   r  r  r   my_dtypetestr  s           ry   test_gh16955TestMode.test_gh16955
  s     wwu~VVT
jj4a%JO388\2399l3 88fbhh/&"**d1KLMxx(+Q]]9G4JJt3 544s   C::
Dc                    [         R                  " [        [        S9   [        R
                  " / 5      nS S S 5        [        R                  S4n[        WU5        [         R                  " [        [        S9   [        R
                  " [        R                  /SS9nS S S 5        [        X5        / SQ[        R                  [        R                  [        R                  //n[         R                  " [        [        S9   [        R
                  " USSS9nS S S 5        S[        R                  /S	S/4n[        X5        [        R
                  " USS
S9nS[        R                  /S	S/4n[        X5        [        R                  " / / /5      n[         R                  " [        [        S9   [        R
                  " USS9nS S S 5        [        R                  [        R                  /SS/4n[        X5        g ! , (       d  f       GN= f! , (       d  f       GNv= f! , (       d  f       GN= f! , (       d  f       Nt= f)Nr   r   r   r   )r   r7  r7  r   r  r  r3   r  r4   rT   )r   rd  r   r   rg   r  r   rn   r   r   r   r   r   )ro   r   r  rM  zs        ry   test_gh9955TestMode.test_gh9955
  s    \\,4IJ**R.C KvvqkS#\\,4EF**bffX&9C GSrvvrvvrvv67\\,4EF**QQ6:C GBFF|aV$Sjj{;BFF|aV$SHHb"X\\,4IJ**QQ'C K!Q(S/ KJ
 GF
 GF KJs/   G:8%H H,H0:
H	
H
H-0
H>zignore::RuntimeWarningr2  r  r0  c                    UR                   S:X  a=  [        R                  " [        [        S9   [
        R                  " US SS9nS S S 5        O[
        R                  " US SS9n[        R                  " US SS9nWS   R                  US   R                  s=:X  a  UR                  s=:X  a  S:X  d   e   eg ! , (       d  f       Nb= f)Nr   r   Tr  r   r  )
r  r   rd  r   r   rg   r  r   rj   r  )ro   r2  r   r  s       ry   test_gh17214TestMode.test_gh17214
  s     66Q;08MNjj= ON **QTD9CggadT21v||s1v||EsyyEIEEEEE ONs   B88
Cc                    [         (       a  SOSn " S S5      n[        R                  " [        US9   [        R
                  " U" [        R                  " S5      5      5        S S S 5        [        R                  " [        US9   [        R
                  " [        R                  " S[        S95        S S S 5        g ! , (       d  f       N^= f! , (       d  f       g = f)Nz'...only boolean and numerical dtypes...z*Argument `a` is not recognized as numeric.c                   $    \ rS rSrS rSS jrSrg)8TestMode.test_raise_non_numeric_gh18254.<locals>.ArrLikei
  c                     Xl         g r!  _xr  s     ry   __init__ATestMode.test_raise_non_numeric_gh18254.<locals>.ArrLike.__init__
  s    r|   Nc                 @    U R                   R                  [        5      $ r!  )r=  r  object)ro   rJ   rb   s      ry   	__array__BTestMode.test_raise_non_numeric_gh18254.<locals>.ArrLike.__array__
  s    ww~~f--r|   r<  )NN)r   r   r   r   r>  rB  r   r   r|   ry   ArrLiker:  
  s    .r|   rD  r   r4   rI   )	r/   r   r   r,  rg   r  r   r   rA  )ro   r  rD  s      ry   test_raise_non_numeric_gh18254'TestMode.test_raise_non_numeric_gh18254
  s    @O<D 		. 	. ]]9G4JJwryy|,- 5]]9G4JJryy&12 54 5444s   1B<.C<
C

Cr   N)r   r   r   r   r  r}  rZ  r  r   r   r
  r   r   r
  r  r  rn   r  r   r  r!  r%  r/  r3  r   emptyr6  rE  r   r   r|   ry   r  r  
  s   +,
!C( [[VRYYr1%562 721J [[V	
BFFAq!Q	
BFFAq	&  [[Z%7' 8' [[VRYYr1%5624** H 7H5:)x [[\K+@A4 B4": [[ 89[[S288I#68K"LMF N :F3r|   r  c                       \ rS rSr/ SQrSr\R                  R                  S5      S 5       r	S r
\" SSS	9S
 5       rSrg)TestSEMi  rI  r   r  c                    UR                  U R                  5      S   n[        U5      (       a=  [        R                  " [
        [        S9   [        R                  " U5      nS S S 5        Og[        R                  R                  5        nUR                  [        5        UR                  [        5        [        R                  " U5      nS S S 5        UR                  W5      (       d   eg ! , (       d  f       N'= f! , (       d  f       N8= f)Nr   r   )re   scalar_testcaser+   r   rd  r   r   rg   semr   r"  r   r   UserWarningr   r|  )ro   rp   rK  rs   r   s        ry   test_sem_scalarTestSEM.test_sem_scalar
  s     **T%9%9:2>B<<08MNIIo. ON --/3

;'

>*IIo. 0 xx{{{ ON 0/s   C,
AC=,
C:=
Dc                    UR                  U R                  5      n[        R                  " U5      n[	        X1R                  S5      5        [        U R                  5      n[	        [        R                  " USS9XDS-
  -  S-  -  [        R                  " USS95        UR                  S5      nUR                  US:H  UR                  U5      n[        [        R                  " U5      UR                  UR                  5      5        g )Ng㝎?r   ddofr3   r<   r   r:   )
re   testcaserg   rL  r1   r  r   wherern   r2   )ro   rp   rS  rs   r  rr   s         ry   test_semTestSEM.test_sem  s    ::dmm,IIh::l34		(3qA#wnD		(3	5 IIcNHHQ!VRVVQ'		!bjj&89r|   Tz(`nan_policy` only supports NumPy backendr   c                    [         R                  " S5      n[         R                  US'   [        [        R
                  " USS9S5        [        [        [        R
                  USS9  [        [        [        R
                  USS9  g )Nr   r:   r   r   gH=6?r   r   )r   r   rn   r   rg   rL  r   r   r   s      ry   test_sem_nan_policyTestSEM.test_sem_nan_policy)  sX     IIcNvv!UYYqV46HIj%))Q7Cj%))Q8Dr|   r   N)r   r   r   r   rS  rK  r   r   r   rN  rU  r   rX  r   r   r|   ry   rI  rI    sX      HO[[ LM N$
: dGIEIEr|   rI  c                      \ rS rSr\R
                  R                  S/ SQ/ SQ4/ SQ/ SQ4/5      S 5       rS rS r	\R
                  R                  S	S
S/5      S 5       r
\R
                  R                  S	S
S/5      S 5       r\" SSS9S 5       r\R
                  R                  S5      \R
                  R                  S5      S 5       5       r\R
                  R                  S5      S 5       rSrg)TestZmapi3  zx, yrI  r  )r   r   r   r   r   c                     UR                  U5      UR                  U5      p!XR                  U5      -
  UR                  USS9-  n[        R                  " X5      n[        XT5        g )Nr   r~   )re   rj   r   rg   zmapr1   )ro   rr   rs   rp   r  r2  s         ry   	test_zmapTestZmap.test_zmap6  sR     zz!}bjjm1
NbffQ1f&==JJq$r|   c                 h   UR                  / SQ/ SQ/ SQ/5      nSnSnSn[        R                  " X"SS9n[        R                  " X"S	S9nU* U* S
-  U* S
-  S/SXU* S
-  U/X5* S
-  XS* //n/ SQU* U* U* S// SQ/n	UR                  U5      nUR                  U	5      n	[        Xh5        [        Xy5        g Nr   r   r   r   )r   r   r   r   )r   r   r   r   .!	?3Ey?;f?r   rT   r   r3   r   rR  rR  r   r   gLXz?)r   rR  r   rR  re   rg   r]  r1   
ro   rp   rr   t1t2t3z0rX  z0_expectedz1_expecteds
             ry   test_zmap_axisTestZmap.test_zmap_axisC  s    JJ,,,. / ZZ1%ZZ1%bSURCE3/RQ+CE2s+- .bS2#w/-/ jj-jj-((r|   c                    UR                  / SQ/ SQ/5      n[        R                  " X"SSS9nUR                  / SQ5      S-  nUR                  / SQ5      S-  n[        US	S S 24   U5        [        USS S 24   U5        g 
Nrb  )r   r   r   r   r   )rU   rR  )      rs  r<   r<   g3Ey?)      rs  r<   r=   g4?r   rg  ro   rp   rr   r2  rm  rn  s         ry   test_zmap_ddofTestZmap.test_zmap_ddof\  s{    JJ,,. / JJq!!,jj!78*Ejj!78D!Q$-!Q$-r|   rR  r   r3   c                    UR                  SSS[        R                  /5      nUR                  SSSSS[        R                  /5      n[        R                  " X4USS9n[        R                  " X4S S	 US
9n[        XV5        g )Nra   r`   r3   r8   r\   r   rR  r   r6   rQ  )re   r   rn   rg   r]  r1   )ro   rR  rp   scorescomparer2  r  s          ry   test_zmap_nan_policy_omit"TestZmap.test_zmap_nan_policy_omith  sp     RQ/0**b"aB78JJvTfE jj!48r|   c           	         UR                  UR                  SS5      S5      n[        R                   " [        R                  " SSS5      S5      n[        R                  US'   [        R                  US'   [        R                  US	'   UR                  US
S S 24   [        R                  " US
S S 24   5      )    5      nUR                  USS S 24   [        R                  " USS S 24   5      )    5      nUR                  U5      n[        R                  " X4SSUS9n[        R                  " US
S S 24   UUS9n[        R                  " USS S 24   UUS9n	UR                  X45      n
[        Xz5        g )N      r   r3   r`   ry  r7      )r   r5   r   r  r   r   r   )r   rU   rR  rQ  )ri   r   r   r6  rn   re   r|  rg   r]  stackr1   )ro   rR  rp   r{  r|  compare_0_notnacompare_1_notnar2  r  r  r  s              ry   #test_zmap_nan_policy_omit_with_axis,TestZmap.test_zmap_nan_policy_omit_with_axist  s5   BIIdC0':**R[[Q3W= **WQT]BHHWQT]4K3K%LM**WQT]BHHWQT]4K3K%LM**W%JJv6Mzz&A,#%zz&A,#%88TL)$r|   Tlazy arrays don't do 'raise'.r   c                     UR                  / SQ5      nUR                  SSSSSUR                  /5      n[        R                  " [        SS9   [
        R                  " X#S	S
9  S S S 5        g ! , (       d  f       g = f)Nr  ry  ra   r3   r8   r\   zinput contains nanr   r   r   )re   rn   r   r   r   rg   r]  )ro   rp   r{  r|  s       ry   test_zmap_nan_policy_raise#TestZmap.test_zmap_nan_policy_raise  sY    I&**b"aB78]]:-ABJJv7; CBBs   A--
A;5ignore:divide by zero encountered:RuntimeWarning:dask4ignore:invalid value encountered:RuntimeWarning:daskc                 D   UR                  S5      nUR                  S5      nUR                  UR                  * UR                  UR                  /5      n[        U[        SS9   [        R                  " X#5      nS S S 5        [        WU5        g ! , (       d  f       N= f)Nr4   Precision loss occurred...r   )
r   r  re   r!  rn   r)   r   rg   r]  r2   )ro   rp   r{  r|  r  r   s         ry   test_degenerate_inputTestZmap.test_degenerate_input  sv     1''!*jj266'266266237ST**V-C US! UTs   %B
Bc                     [         R                  " UR                  / SQ5      UR                  / SQ5      5      nUR                  / SQ5      n[        X#5        g )Nr  )r                 ?r`   r  )y      ?        y       @        y      @        y      @        )rg   r]  re   r1   )ro   rp   r   r  s       ry   test_complex_gh22404TestZmap.test_complex_gh22404  s<    jjL12::>N3OPjj9:!r|   r   N)r   r   r   r   r   r   r
  r^  ro  rv  r}  r  r   r  r   r  r  r   r   r|   ry   r[  r[  3  s    [[
,	-
,	-	/
%
%)2
. [[VaV,	  -	  [[VaV,% -%( .MN< O< [[ WX[[ VW" X Y" [[ WX" Y"r|   r[  c                      \ rS rSrS rS rS rS rS rS r	\
" SS	S
9S 5       rS r\R                  R                  S5      S 5       r\R                  R                  S5      S 5       r\R                  R                  S5      S 5       r\R                  R                  S5      S 5       r\R                  R)                  S\R,                  " / 5      \R.                  " S5      /5      S 5       r\S 5       rSrg)
TestZscorei  c                     [         R                  " UR                  / SQ5      5      n/ SQn[        X!R                  U5      5        g )Nr  )gOT\wg%ܿg%?gOT\w?)rg   zscorere   r1   )ro   rp   rs   desireds       ry   test_zscoreTestZscore.test_zscore  s3     LLL126::g./r|   c                 `   UR                  / SQ/ SQ/ SQ/5      nSnSnSn[        R                  " USS9n[        R                  " US	S9nU* U* S
-  U* S
-  S/SXU* S
-  U/X5* S
-  XS* //n/ SQU* U* U* S// SQ/n	[        XaR                  U5      5        [        XqR                  U	5      5        g ra  re   rg   r  r1   rh  s
             ry   test_zscore_axisTestZscore.test_zscore_axis  s    JJ,,,. / \\!!$\\!!$bSURCE3/RQ+CE2s+- .bS2#v.-/ 	JJ{34JJ{34r|   c                    UR                  / SQ/ SQ/5      n[        R                  " USSS9nUR                  / SQ5      S-  nUR                  / SQ5      S-  n[        US	S S 24   U5        [        USS S 24   U5        g rr  r  ru  s         ry   test_zscore_ddofTestZscore.test_zscore_ddof  s{    JJ,,. / LL+jj!78*Ejj!78+F!Q$-!Q$-r|   c                     UR                  SS[        R                  SS/5      n[        R                  " USS9n[        X1R                  UR                  UR                  5      5        g )Nr   r3   r5   r6   r  r   )re   r   rn   rg   r  r2   r   r  ro   rp   rr   r2  s       ry   test_zscore_nan_propagate$TestZscore.test_zscore_nan_propagate  sJ    JJ1bffa+,LL{377177BFF34r|   c                     UR                  SSUR                  SS/5      n[        R                  " USS9nUR                  SSUR                  S	S
/5      n[	        X45        g )Nr   r3   r5   r6   r   r   gIHb=gIHb=gIHb=?gIHb=?)re   rn   rg   r  r1   ro   rp   rr   r2  r  s        ry   test_zscore_nan_omitTestZscore.test_zscore_nan_omit  s_    JJ1bffa+,LLv.::22!vv11	! " 	$r|   c                    UR                  UR                  SSSSS/5      n[        R                  " USSS9nUR	                  UR                  UR                  /5      [        R                  " USS  SS	9/5      n[        X45        g )
Nr   r   rM   r   r   r   r   rz  rQ  )re   rn   rg   r  concatr1   r  s        ry   test_zscore_nan_omit_with_ddof)TestZscore.test_zscore_nan_omit_with_ddof  sn    JJS#sC89LLv699bjj"&&2ELL12Q4OPQ$r|   Tr  r   c                     UR                  SSUR                  SS/5      n[        R                  " [        SS9   [
        R                  " USS9  S S S 5        g ! , (       d  f       g = f)	Nr   r3   r5   r6   zThe input contains nan...r   r   r   )re   rn   r   r   r   rg   r  r   s      ry   test_zscore_nan_raise TestZscore.test_zscore_nan_raise  sI    JJ1bffa+,]]:-HILLw/ JIIs   A
A'c                    UR                  S/S-  5      n[        U[        SS9   [        R                  " U5      nS S S 5        [        WUR                  UR                  UR                  5      5        g ! , (       d  f       N?= f)NgʡEr4   r  r   )	re   r)   r   rg   r  r2   r   r  rn   r  s       ry   test_zscore_constant_input_1d(TestZscore.test_zscore_constant_input_1d  s]    JJx!|$N2NOQA P277177BFF34 POs   A55
Br  c                 >   UR                  / SQ/ SQ/5      n[        U[        SS9   [        R                  " USS9nS S S 5        [        WUR                  UR                  SSS/UR                  SSS//5      5        [        U[        SS9   [        R                  " US	S9nS S S 5        [        WUR                  UR                  UR                  UR                  UR                  UR                  /5      [        R                  " US	S S 24   5      /5      5        [        R                  " US S9n[        XQR                  [        R                  " UR                  US
5      5      UR                  5      5        UR                  S5      n[        U[        SS9   [        R                  " US S9nS S S 5        [        XQR                  UR                  UR                  5      5        g ! , (       d  f       GN= f! , (       d  f       GN`= f! , (       d  f       Nb= f)Nr   r   r   r   r   r  r        *@r  r   r   rT   rR  r   r   r`   )r4   r7   )re   r)   r   rg   r  r1   rn   r2   r  ri   r  r  r   )ro   rp   rr   rl  rX  r2  rs   s          ry   test_zscore_constant_input_2d(TestZscore.test_zscore_constant_input_2d  s   JJ002 3N2NOaa(B PBJJtT(B)+c3(?(A B 	C N2NOaa(B PBHHbjj"&&"&&"&&"&&1Q&R&+ll1QT7&;&= > 	? LL&::ell2::a3G&H!''RSGGFON2NOQT*A P77177BFF34! PO
 PO POs#   G*G<H*
G9<
H
Hc                 (   UR                  / SQSSSUR                  /SSUR                  S//5      nSnSn[        U[        SS9   [        R
                  " US	S
S9nS S S 5        [        WUR                  UR                  U* SUR                  /UR                  S
SUR                  /UR                  X1R                  UR                  //5      5        [        U[        SS9   [        R
                  " US	SS9nS S S 5        [        WUR                  UR                  UR                  UR                  UR                  /U* S
X1R                  /U* S-  XAR                  U* S-  //5      5        g ! , (       d  f       GN= f! , (       d  f       N= f)Nr  r   r  r  rc  re  r  r   r   r   r   rU   rR  r   r   r3   )re   rn   r)   r   rg   r  r1   )ro   rp   rr   r  s2rl  rX  s          ry   -test_zscore_constant_input_2d_nan_policy_omit8TestZscore.test_zscore_constant_input_2d_nan_policy_omit  sb   JJ0tT2662tRVVT24 5 N2NOaF;B PBJJ!T266(B)+C(@)+FFBFF(C(E F 	G N2NOaF;B PBJJ(H*+Q66(:*,QFFRCE(B(D E 	F PO POs   E1$F1
F 
Fc           	         UR                  [        R                  [        R                  [        R                  [        R                  // SQ/5      n[        R                  " USSS9n[        X1R                  [        R                  [        R                  [        R                  [        R                  // SQ/5      5        g )N)r   r   r  r  r   r   r  rf  )re   r   rn   rg   r  r1   r  s       ry   test_zscore_2d_all_nan_row%TestZscore.test_zscore_2d_all_nan_row  s     JJ802 3LLvA6::'G'='? @ 	Ar|   c                 ~    UR                  SUR                  5      n[        R                  " USS S9n[	        X25        g )Nr`  r   r  )r   rn   rg   r  r2   )ro   rp   rs   r2  s       ry   test_zscore_2d_all_nan!TestZscore.test_zscore_2d_all_nan%  s2     GGFBFF#LLvD9r|   rr   )r4   r   r6   c                 h    UR                  U5      n[        R                  " U5      n[        X15        g r!  )re   rg   r  r2   )ro   rr   rp   r2  s       ry   test_zscore_empty_input"TestZscore.test_zscore_empty_input,  s$    JJqMLLOr|   c                    [         R                  R                  S5      nUR                  S5      n[         R                  " U5      n[         R
                  R                  X45      nSUR                  S'   [        R                  " USS  5      n[         R                  " [         R                  " U5      5      (       a   e[        R                  " U5      n[        USS  U5        [        R                  " US S9n[        USS  U5        US   USS & [        R                  " [        SS9   [        R                  " U5      nS S S 5        [!        USS  [         R"                  5        [        R                  " [        SS9   [        R                  " US S9nS S S 5        [!        USS  [         R"                  5        g ! , (       d  f       N= f! , (       d  f       N== f)	Ni_ rZ   Tr   r   rT   r  r   )r   r  r  standard_normal
zeros_liker}  masked_arraymaskrg   r  anyr|  r   r   rd  r   r   rn   )ro   rp   r  rr   r  rs   r  r   s           ry   $test_zscore_masked_element_0_gh19039/TestZscore.test_zscore_masked_element_0_gh190392  sW    ii##G,#}}QEEq'q	ll1QR5!66"((3-((((ll1oAB%ll14(AB%!!"\\.0LM,,q/C NSWbff%\\.0LM,,qt,C NSWbff% NM NMs   )F:>G:
G
G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   rb  r  r'   r  r   r   r|   ry   r  r    s*   05.
.5
%% .MN0 O0
5 [[ VW5 X5* [[ VWF XF& [[ VWA XA [[ VW X [[S288B<)1D"EF G
 & &r|   r  c                   *    \ rS rSrS r\S 5       rSrg)TestGZscoreiK  c           	         [         R                  " / SQ5      n[        R                  " UR                  U5      5      n[         R                  " U[        R
                  " U5      -  5      [         R                  " [        R                  " USS95      -  n[        X1R                  XAR                  S5      R                  S95        g )Nr  r   rQ  r   rI   )	r   re   rg   gzscoreloggmeangstdr1   rJ   )ro   rp   rr   r2  r  s        ry   test_gzscore_normal_array%TestGZscore.test_gzscore_normal_arrayM  s{    JJ|$MM"**Q-(&&U[[^+,rvvejj6K/LL::gZZ^5I5I:JKr|   c                    [         R                  " / SQ5      n/ SQn[         R                  R                  XS9n[        R
                  " U5      nSS[         R                  SS/n[         R                  R                  XRS9n[        UR                  5       UR                  5       5        [        UR                  UR                  5        [        U[         R                  R                  5      (       d   eg )N)r   r3   r`   r4   r5   )r   r   r   r   r   r  g0jg`ȿg/A?g(/?)r   r   r}  r  rg   r  r!  r   
compressedr  r8  MaskedArray)ro   rr   r  mxr2  r  s         ry   test_gzscore_masked_array%TestGZscore.test_gzscore_masked_arrayS  s    HH%&UU-MM"#_bffn"$%%$$W$8(:(:(<=-!RUU..////r|   r   N)r   r   r   r   r  r'   r  r   r   r|   ry   r  r  K  s    L 
0 
0r|   r  c            
          \ rS rSrS rS rS rS rS r\	R                  R                  S/ SQ5      S	 5       r\	R                  R                  S
S\R                  " \R                  SS/5      4S\R                  " \R                  \R                  S/5      4/5      S 5       r\	R                  R                  SS/ SQ4S/5      S 5       rS rSrg)TestMedianAbsDeviationia  c                     [         R                  " SSSSSSSSSSSS	S
S
S
SSSSSSSS[         R                  /5      U l        [         R                  " / SQ5      U l        g )N皙@r  r>   皙@r  333333@=
ףp=@r  (\
@r  r?   r  皙@)\(@Q@)r  r  r  r  r>   r  r  r  r  r  r  r  r  r  r  r?   r  r  r  r  r  r  r  g33333<@)r   r   rn   dat_nandatr  s    ry   setup_class"TestMedianAbsDeviation.setup_classb  sg    xxtS#sCc!%tT4c3!$c3S$bff!N O 88 ? @r|   c                     [        [        R                  " U R                  S S9S5        U R                  R	                  SS5      n[        R                  " USS9n[
        R                  " / SQ5      n[        X#5        g )NrT   gQ?r7   r5   r   )gףp=
?r<   ?ro  )r   rg   median_abs_deviationr  ri   r   re   r   )ro   r  madmad_expecteds       ry   test_median_abs_deviation0TestMedianAbsDeviation.test_median_abs_deviationj  s_    E66txxdK!	#hhq!$((15zz"9:!#4r|   c                 Z    [         R                  " U R                  SS9n[        US5        g )Nr   r   g(\?)rg   r  r  r   )ro   r  s     ry   test_mad_nan_omit(TestMedianAbsDeviation.test_mad_nan_omitr  s"    ((&IC&r|   c                     [         R                  " SSSS[         R                  // SQ/5      n[        R                  " USS9n[        U[         R                  " [         R                  S/5      5        g )Nr   r   r   r   )r   r   rM   r   r   r   rT   r   r   rn   rg   r  r   )ro   rr   r  s      ry   test_axis_and_nan(TestMedianAbsDeviation.test_axis_and_nanv  sV    HHsCc2662/1 2((3S"((BFFC=12r|   c           	          [         R                  " SSSSS[         R                  [         R                  /5      n[        R
                  " USS9n[        US5        g )	Nr   r4   r5   r7   r  r   r   r   )r   r   rn   r!  rg   r  r   )ro   r2  r  s      ry   test_nan_policy_omit_with_inf4TestMedianAbsDeviation.test_nan_policy_omit_with_inf|  sC    HHaAq"bffbff56((v>S#r|   rU   )r   r   r3   Nc           	          [         R                  " S5      n[        R                  " X!S9n[	        U[         R
                  " UR                  US9[         R                  S95        g )N)r4   r   r5   rT   
fill_value)r   rb  rg   r  r   	full_likerg  rn   )ro   rU   rr   r  s       ry   test_size_zero_with_axis/TestMedianAbsDeviation.test_size_zero_with_axis  sD    HHY((6S",,quu$u'7BFFKLr|   znan_policy, expectedr   r=   r  c           	      r   [         R                  " [         R                  [         R                  [         R                  [         R                  [         R                  [         R                  /SSSS[         R                  [         R                  // SQ/5      n[        R                  " X1SS9n[        XB5        g )Nr   r6   r4   r7   )r6   r7   r8   r:   r:   rZ   r  r  )ro   r   r  rr   r  s        ry   test_nan_policy_with_axis0TestMedianAbsDeviation.test_nan_policy_with_axis  su     HHrvvrvvrvvrvvrvvrvvF!Q2662662)+ , ((JS#r|   zaxis, expectedr   )r>   r   r  )Nr@   c                     [         R                  " SSSS[         R                  // SQ/ SQ/5      n[        R                  " U[         R
                  SUS9n[        XBS	S	S
9  g )Nr   r3   r5   r:   )r   r   r   r   r\   )r  r  r  r  r   )centerr   rU   rF  r  )r   r   rn   rg   r  rj   r   )ro   rU   r  rr   r  s        ry   test_center_mean_with_nan0TestMedianAbsDeviation.test_center_mean_with_nan  sY     HHq!Q266*&-/ 0 ((277v.24E>r|   c                     [         R                  " [        SS9   [        R                  " / SQSS9  S S S 5        g ! , (       d  f       g = f)Ncallabler   )r   r3   r4   r6   r  r  )r   r   r,  rg   r  r  s    ry   test_center_not_callable/TestMedianAbsDeviation.test_center_not_callable  s,    ]]9J7&&|B? 877s	   ;
A	)r  r  N)r   r   r   r   r  r  r  r  r  r   r   r
  r  r   r   rn   r
  r  r  r   r   r|   ry   r  r  a  s    @5'3
 [[V_5M 6M
 [[3%rxxc0B'CD*BHHbffbffc5J,KLNO$O$ [[- "23[AC?C?@r|   r  c                 p    [        [        U 5      US5        U  H  n[        UR                  UL 5        M     g)z
Checks that all of the warnings from a list returned by
`warnings.catch_all(record=True)` are of the required type and that the list
contains expected number of warnings.
znumber of warningsN)r   r  r   category)	warn_listexpected_typeexpected_lenwarn_s       ry   _check_warningsr    s0     Y/CD-/0 r|   c                       \ rS rSrS rS r\R                  R                  S/ \	R                  " S5      /5      S 5       rS rS rS	 rS
 rS rS rS rS rS rSrg)TestIQRi  c                     [         R                  " S5      S-  n[         R                  R                  U5        [	        [
        R                  " U5      S5        g )Nr9   r<   r  )r   r   r  r  r   rg   iqrr  s     ry   rZ  TestIQR.test_basic  s8    IIaL3
		!UYYq\4(r|   c           	         [         R                  " S5      n[        R                  " U5        [        R                  " US 5        [        R                  " US5        [        R                  " US5        [        R                  " US S5        [        R                  " US SS5        [        R                  " US SSS	5        [        R                  " US S
SSS5        [        R                  " US SSSSS5        g )Nr  r   r_  )rZ   Z   )r  r  r   )r  r8  r=   r  )r  r  r  r   lineargٿr   r  T)r   r  rg   r   )ro   rt  s     ry   test_apiTestIQR.test_api  s    GGFO		!		!T		!Q		!V		!T8$		!T8S)		!T8S+6		!T8XwA		!T8T67DAr|   rr   r   c                     [         R                  " [        [        S9   [	        [
        R                  " U5      [        R                  5        S S S 5        g ! , (       d  f       g = fr  )	r   rd  r   r   r   rg   r   r   rn   r  s     ry   r  TestIQR.test_empty  s5    \\,4IJ1rvv. KJJs   /A
A$c                 6   [         R                  " S5      n[        [        R                  " U5      S5        [        [        R                  " USS9[         R                  " S5      5        [        [        R                  " USS9[         R                  " S5      5        [        [        R                  " USS	9S5        [        [        R                  " US
S	9S5        [        [        R                  " USS	9S5        [        [        R                  " USS	9S5        [        [        R                  " USS	9S5        [         R                  " S5      [         R                  " S5      -  n[        [        R                  " USS9[         R                  " S5      5        [        [        R                  " USS9[         R                  " S5      5        [        [        R                  " USS9[         R                  " SS5      5        [        [        R                  " USS9[         R                  " S5      5        [        [        R                  " USS9[         R                  " SS5      5        [        [        R                  " USS9[         R                  " SS5      5        g )N)r8   r5   r   r   rT   r5   r   r8   r$  interpolationmidpointnearestr  r  r5   r6   r7   r7   )r6   r7   )r5   r7   r3   r  r>   r_  r   r3   r6   r   r  )	r   r  r   rg   r   r	   rb  r   r   r  s      ry   test_constantTestIQR.test_constant  s   GGFOUYYq\3'599QQ/!=599QQ/!=UYYq93?UYYq
;SAUYYq	:C@UYYq8#>UYYq93? GGI1-599QQ/&1AB599QQ/&1AB599QQ/1EF599QV4bhhqkB599QV4bgganE599QV4bgganEr|   c                     [         R                  " S5      S-   n[        [        R                  " US   5      S5        [        [        R                  " U5      S5        [        [        R                  " USS9S/5        g )Nr   r   r   r   Tr$  )r   r   r   rg   r   r	   r  s     ry   test_scalarlikeTestIQR.test_scalarlike  sS    IIaL3UYYqt_c*UYYq\3'599Q6>r|   c                    [         R                  " S5      R                  S5      n[        [        R
                  " U5      S5        [        [        R
                  " USS9[         R                  " SS5      5        [        [        R
                  " USS9[         R                  " S	S
5      5        [        [        R
                  " USS9S5        [        [        R
                  " USS9S5        g )Nr  r  r   r   rT   r6   rM   r   r4   r   r_  r  )r   r   ri   r   rg   r   r	   r   r  s     ry   test_2DTestIQR.test_2D  s    IIbM!!&)UYYq\3'599QQ/B@599QQ/B@599QV4c:599QV4c:r|   c                    [         R                  R                  SS9n[         R                  " U/S-  5      n[        R
                  " U5      n[        [        R
                  " USS9U5        [         R                  " USS5      n[        [        R
                  " USS9U5        UR                  SS	5      n[        [        R
                  " US
S9U5        UR                  SS	5      n[        [        R
                  " USS9[        R
                  " US S95        [        [        R
                  " USS9[        R
                  " USS95        [         R                  " S5      n[         R                  R                  U5        UR                  S5      n[        [        R
                  " USS9S   [        R
                  " US S 2S S 2S S 2S4   R                  5       5      5        [        [        R
                  " USS9S	   [        R
                  " US S 2S S 2S	S S 24   R                  5       5      5        [        [        R
                  " USS9S   [        R
                  " US S 2S S 2SS S 24   R                  5       5      5        [        [        R
                  " USS9S   [        R
                  " USS S 2S S 2S S 24   R                  5       5      5        [        [        R
                  " USS9S   [        R
                  " USS	S S 2S S 24   R                  5       5      5        [        [        R
                  " USS9S   [        R
                  " USS S 2S S 2S	4   R                  5       5      5        [        [        R
                  " USS9S   [        R
                  " USS S 2SS S 24   R                  5       5      5        [        [        [        R
                  USS9  [        [        [        R
                  USS9  g )N)G   r  r  rZ   r_  rT   r`   r   r  r   r/  r  r   i  r4   r6   r8   r[   r   r   r4   )r4   r   r  r3   )r4   r   r3   r4   r3   )r   rV  )r   r4   r3   r3   r5   r  )r   r  r  dstackrg   r   r   moveaxisswapaxesr   r  ri   r  r   r&   r   )ro   orr   qrt  s        ry   r  TestIQR.test_axis  s   II(+IIqcBhIIaLUYYqv.2KK2q!UYYqv.2JJq!UYYqv.2JJq!UYYqy1YYqt,	.UYYqt,YYqq)	+ IIn% 			!IIm$UYYqy1!4YYq1Q{0023	5UYYqy1!4YYq1a{0023	5UYYqz215YYq1a{0023	5UYYqy1!4YYq1Qqz//12	4UYYqv.t4YYqAa{0023	5UYYqw/5YYqAq!}2245	7UYYqv.t4YYqAq|1134	6 	iAA6j%))QV<r|   c                    [         R                  " S5      n[        [        R                  " U5      S5        [        [        R                  " USS9S5        [        [        R                  " USS9S5        [        [        R                  " USS9S5        [        [        [        R                  US	S9  [        [        [        R                  U[         R                  S
4S9  [        [        [        R                  USS9  g )Nr6   r3   )r  g     U@r  r>   )g      )@r8  )rZ   r  g?)r   r  r  )r   r  <   )
r   r   r   rg   r   r   r   r   rn   r,  r  s     ry   test_rngTestIQR.test_rng  s    IIaLUYYq\1%UYYqj137UYYqj137EIIaX6<j%))QH=j%))QRVVRLAiA;?r|   c                 ~   [         R                  " S5      n[         R                  " S5      n[        [        R                  " U5      S5        [        [        R                  " U5      S5        [        [        R                  " USS9S5        [        [        R                  " USS9S5        [        [        R                  " USS9S5        [        [        R                  " USSS	9S
5        [        [        R                  " USS9S5        [        [        R                  " USS9S5        [        [        R                  " USSS	9S5        [        [        R                  " USS9S5        [        [        R                  " USS9S5        [        [        R                  " USS9S5        [        [        R                  " USS9S5        [        [        R                  " USSS	9S5        [        [        R                  " USS9S5        S H  n[        R                  " X#S9  M     [        [        [        R                  USS9  g )Nr6   r5   r3   r=   r$  r*  r  )r  P   )r  r+  r4   r  r-  r   r,  r>   )inverted_cdfaveraged_inverted_cdfclosest_observationinterpolated_inverted_cdfhazenweibullmedian_unbiasednormal_unbiasedr   )r   r   r   rg   r   r   r   )ro   rr   rs   r  s       ry   test_interpolationTestIQR.test_interpolation  s   IIaLIIaLUYYq\1%UYYq\3'UYYq91=UYYq93?UYYq91=UYYqhhGKUYYq91=UYYq8!<UYYqhgFJUYYq8!<UYYq	:A>UYYq	:A>UYYq
;Q?UYYqhjI3OUYYq
;Q?*F IIa.	* 	j%))QhGr|   c                    [         R                  " S5      n[        [        R                  " US SS9R
                  S5        [        [        R                  " USSS9R
                  S5        [        [        R                  " USSS9R
                  S5        [        [        R                  " US	SS9R
                  S
5        [        [        R                  " USSS9R
                  S5        [        [        R                  " USSS9R
                  S5        [        [        R                  " USSS9R
                  S5        [        [        R                  " US SS9R
                  S5        [        [        R                  " USSS9R
                  S5        [        [        R                  " USSS9R
                  S5        [        [        R                  " US	SS9R
                  S5        [        [        R                  " USSS9R
                  S5        [        [        R                  " USSS9R
                  S5        [        [        R                  " USSS9R
                  S5        g )Nr;  Fr  r   r3   )r4   r6   r[   r_  )r8   r[   )r   r4   )r6   r8   )r   r  r   r   r3   r4   r$  r<  r   TrV  )r4   r6   r   r[   )r   r   r8   r[   )r   r6   r8   r   )r4   r   r8   r[   )r   r   r8   r   )r   r  r   rg   r   r  r  s     ry   r%  TestIQR.test_keepdims=  s   GGM"UYYqte<BBBGUYYqq59??LUYYqv>DDgNUYYqv>DDfMUYYqte<BBJOUYYq,?EErJUYYqy5AGGNUYYqtd;AA<PUYYqq48>>NUYYqv=CC]SUYYqv=CC\RUYYqtd;AA=QUYYq,>DDlSUYYqy4@FFUr|   c           	      B   [         R                  " S5      R                  S5      n[        [        R
                  " USS9S5        [        [        R
                  " USS9S5        [        [        R
                  " USS9S5        [         R                  US'   [        R                  " S	S
9   [        R                  " S5        [        [        R
                  " USS9[         R                  5        [        [        R
                  " USSS9SS[         R                  SS/5        [        [        R
                  " USSS9S[         R                  S/5        S S S 5        [        R                  " S	S
9   [        R                  " S5        [        [        R
                  " USS9S5        [        [        R
                  " USSS9[         R                  " SS5      5        [        [        R
                  " USSS9/ SQ5        S S S 5        [        [        [        R
                  USS9  [        [        [        R
                  USSS9  [        [        [        R
                  USSS9  [        [        [        R
                  USS9  g ! , (       d  f       GN3= f! , (       d  f       N= f)N      .@r  r  r   r8   r   r   r  Tr   alwaysr   r  r6   r   r3   rC   )r3   r>   r3   barfood)r   r   ri   r   rg   r   rn   warningscatch_warningssimplefilterr   r   r   r  s     ry   test_nanpolicyTestIQR.test_nanpolicyP  s   IIdO##F+ 	UYYq[91=UYYqV4a8UYYqW5q9 &&$$$D1!!(+1=!11EQ1-/11ERVVQ) 2 $$D1!!(+18#>11@"''!Q-P11@+N	 2 	j%))Q7Cj%))QQ7Kj%))QQ7K 	j%))Q9E) 21 21s   *B(I>.BJ>
J
Jc           
          [         R                  " S5      R                  S5      n[        [        R
                  " USS9S5        [        [        R
                  " USS9S5        [        [        R
                  " USS9S	5        [         R                  US
'   [        R                  " SS9   [        R                  " S5        [        [        R
                  " USSS9[         R                  5        [        [        R
                  " USSS9[         R                  5        [        [        R
                  " USSS9[         R                  5        [        [        R
                  " USSSS9S[         R                  S/5        [        [        R
                  " USSSS9[         R                  " S[         R                  S/5      S-  5        [        [        R
                  " USSSS9S[         R                  S/5        S S S 5        [        [        R
                  " USSS9S5        [        [        R
                  " USSS9S5        [        [        R
                  " USSS9S5        [        [        [        R
                  USS9  g ! , (       d  f       N= f)NrY  r  r   r)  r8   r  g=V^w@r   r?   r  TrZ  r[  r  )r)  r   r   )rU   r)  r   r3   gF7k?r   rC   g	I1=@g      @r   )r   r   ri   r   rg   r   r   rn   r]  r^  r_  r   r   r   r  s     ry   
test_scaleTestIQR.test_scalep  s   IIdO##F+ 	UYYq,a0EIIax8-HUYYq,c2 &&$$$D1!!(+1CKH"&&Q1HMrvvV1CKH"&&Q11C.9;=>NL		!!85@!B "!RVVQ 89 DF 11CKPRVVQ) 2" 	UYYq?EEIIaxFK+	-UYYq?F 	j%))Qh?/ 21s   *EI??
Jr   N)r   r   r   r   rZ  r%  r   r   r
  r   r   r  r0  r3  r6  r  rG  rS  r%  r`  rd  r   r   r|   ry   r  r    su    )

B [[S2ryy|"45/ 6/F,?;'=R	@ HDV&F@!@r|   r  c                      \ rS rSrSr/ SQrSr\R                  R                  S5        \R                  R                  S5      r\R                  R                  SSS	/5      \R                  R                  S
\" SS5      5      \R                  R!                  S5      S 5       5       5       r\R                  R                  SSS	/5      \R                  R                  SS5      \R                  R!                  S5      S 5       5       5       rS rS r\R                  R                  S/ SQ5      \R                  R                  SSS/5      S 5       5       rS rS rS rS r\R                  R                  S/ SQ5      \R                  R                  S/ SQ5      \R                  R                  S S!S"/5      \R                  R!                  S5      S# 5       5       5       5       rS$rg!)%TestMomentsi  aC  
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.
rI  r     r  r  rZ   )rZ   r3   zm, crV  )Nr   r   z?ignore:divide by zero encountered in divide:RuntimeWarning:daskc                 0   [         R                  R                  S5      nUR                  UR                  US95      n[        R
                  " XbUS9nUc  UR                  USS9OUnUR                  Xc-
  U-  SS9UR                  S   -  n[        XxSS9  g )Nl   rHZ r  r  r   rT   缉ؗҜ<rG  )
r   r  r  re   rg   momentrj   rg  r  r1   )	ro   r  r  rs  rp   r  rr   r   r  s	            ry    test_moment_center_scalar_moment,TestMoments.test_moment_center_scalar_moment  s     ii##$78JJszztz,-ll1*"#)BGGAAGffaeaZaf(3u-r|   rs  c                 X   [         R                  R                  S5      nUR                  UR                  US95      n/ SQn[        R
                  " XVUS9nUR                  U Vs/ s H'  n[        R
                  " XXUS9UR                  S4   PM)     sn5      n	[        Xy5        g s  snf )Nl   %~.}~= r  rV  r  .)	r   r  r  re   rg   rk  r  newaxisr2   )
ro   r  rs  rp   r  rr   r  r   r  r  s
             ry   test_moment_center_array_moment+TestMoments.test_moment_center_array_moment  s     ii##$78JJszztz,-ll1*iiPQRPQ1a15bjj#oFPQRS! Ss   &.B'c                   ^ TR                  U R                  5      n[        R                  " TR                  U R                  5      5      n[        UTR                  S5      5        [        R                  " US5      n[        UTR                  S5      5        [        R                  " US5      n[        UTR                  S5      5        [        R                  " US5      n[        UTR                  S5      5        [        R                  " US5      n[        UTR                  S5      5        [        R                  " US5      n[        UTR                  S	5      5        [        R                  " U/ S
Q5      n[        UTR                  / SQ5      5        [        R                  " US5      n[        UTR                  S5      5        Sn[        R                  " [        US9   [        R                  " US5        S S S 5        [        R                  " U/ SQ5      n[        UTR                  / SQ5      5        U4S jn[        T5      (       a*  [        R                  " [        SS9   U" 5         S S S 5        g [        R                  R                  5        nUR                  [         S5        UR                  [         S5        U" 5         S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f! , (       d  f       g = f)Nr   r   r   r   r3         ?r4   r5        @r  )r   rs  r   rt  z)All elements of `order` must be integral.r   333333?)r   r3   r4   r   c                    > [         R                  " TR                  / 5      5      n [        U TR                  TR                  5      5        [         R                  " TR                  / TR
                  S95      n [        U TR                  TR                  TR
                  S95        [         R                  " TR                  S5      SS9n [        U TR                  S5      5        [         R                  " TR                  / /5      SS9n [        U TR                  TR                  /5      5        [         R                  " TR                  / /5      SS/SS9n [        U TR                  S5      5        g )	NrI   r  r   rT   r:  r   orderrU   )r3   r   )rg   rk  re   r2   rn   r   rb  rG  )rs   rp   s    ry   
test_cases+TestMoments.test_moment.<locals>.test_cases  s   RZZ^,AArzz"&&12RZZ"**Z=>AArzz"&&

zCDRXXf-A6AArxx~.RZZ-A6AArzz266(34RZZ-aV!DAArxx/0r|   zSee documentation for...zMean of empty slice.zinvalid value)re   rS  rg   rk  rK  r1   r   r   r   r+   rd  r   r   r"  r   r   r   )ro   rp   rS  rs   r  ry  r   s    `     ry   test_momentTestMoments.test_moment  s   ::dmm,LLD$8$89:2::c?+LL1%2::c?+LL1%2::c?+LL1%2::d+,LL1%2::c?+LL1%2::f-. LL<02::&:;< LL3'2::c?+=]]:W5LL3' 6LL#342::&:;<
	1 B<<08RS TS --/3

>+AB

>?; 0/- 65& TS 0/s$   $K)K&4K7
K#&
K47
Lc                 j   [         R                  " S5      n[         R                  US'   [        [        R
                  " US5      [         R                  5        [        [        R
                  " USS9S5        [        [        [        R
                  USS9  [        [        [        R
                  USS9  g )	Nr   r:   r3   r   r   r   r   r   )	r   r   rn   r   rg   rk  r   r   r   r  s     ry   r  TestMoments.test_nan_policy  sn    IIcNvv!U\\!Q'0ELLv>Dj%,,gFj%,,hGr|   rJ   )r   r   
complex128zexpect, orderr_  r  c           	         US:X  a%  [        U5      (       a  [        R                  " 5         [        XA5      nUR	                  [
        R                  R                  S5      US9n[        R                  " XSS9n[        XdR	                  X!S95        [        R                  " UR                  US5      SUS9n[        XdR                  SX!S95        [        R                  " UR                  US	5      S
US9n[        XdR                  SX!S95        [        R                  " UR                  US	5      S US9n[        XdR                  SX!S95        g )Nr  r6   rI   rx  )r7   r6   r   )rU   rx  )r6   r  r3   )r   r3   r5   r6   r   )r,   r   skiprl  re   r   r  r  rg   rk  r2   broadcast_tor   )ro   rJ   expectrx  rp   rr   rs   s          ry   test_constant_moments!TestMoments.test_constant_moments  s    ,8B<<KKM"JJryy~~a(J6LL(::f::;LLF3!5I7747=>LLO<1$&77<7EFLLO<4$&772v7;<r|   c                 >   UR                  UR                  S5      S5      n[        R                  " U5      S   R	                  UR
                  5      n[        R                  " UR                  U5      SSS9n[        X1R                  SUR
                  /5      SS	9  g )
Nr   r  r  r3   r   rT   rs  rF  rG  )
ri   r   rk   rl   rm   rn   rg   rk  re   r1   )ro   rp   rM  mms       ry   test_moment_propagate_nan%TestMoments.test_moment_propagate_nan  sq     JJryy}g.FF1IdO'\\"**Q-3JJbff~6UCr|   c                     [         R                  " [        SS9   [        R                  " UR                  / SQ5      / S9  S S S 5        g ! , (       d  f       g = f)Nz1`order` must be a scalar or a non-empty 1D array.r   r  r  )r   r   r   rg   rk  re   ro   rp   s     ry   test_moment_empty_order#TestMoments.test_moment_empty_order  sA    ]]: .E FLLL1<F F Fs   'A


Ac                     UR                  S5      n[        R                  " USS9n[        R                  " USS9n[        X45        g )NrZ   r4   )rk  r  )r   rg   rk  r2   )ro   rp   rr   r   r  s        ry   test_rename_moment_order$TestMoments.test_rename_moment_order  s9     IIbMll1Q'll1A&!r|   c                     U R                   [        R                  " U R                   5      -
  n[        [        R                  " US5      R                  5       [
        R                  " U R                   S5      5        g )Nr  )testcase_moment_accuracyr   rj   r   r   rg   rk  )ro   
tc_no_means     ry   test_moment_accuracy TestMoments.test_moment_accuracy'  sY     33 = =>?
R0557T%B%BBG	Ir|   rx  rU   rV  r  Nr   c           	          [         R                  R                  S5      nUR                  SS9n[        R                  " UR                  U5      X#US9nUR                  [        XbX4S95      n[        Xx5        g )Nl   hU~)r6   r7   r8   r  )rU   r  )rj   )r   r  r  rg   rk  re   r!   r1   )	ro   rp   rx  rU   r  r  rr   r   r  s	            ry   test_moment_array_api!TestMoments.test_moment_array_api/  s_     ii##N3JJIJ&ll2::a=%6Jjj4=>!r|   r   )r   r   r   r   r8  rS  rK  r   r  r  r  r  r   r   r
  r   r   rl  rp  r{  r  r  r  r  r  r  r  r   r   r|   ry   rg  rg    s     HOIINN4!yy~~b1[[Vb']3[[VW\<%HI[[I. J 4
. [[Vb']3[[S,/[[I" 0 4
"3jH [[W&JK[[_vv.>?= @ L=&D="I [[Wl3[[VZ0[[Xay1[[I" 2 1 4"r|   rg  c                   .    \ rS rSrSr/ SQr/ SQrS rSrg)SkewKurtosisTesti=  r   rI  )gp=
ף?g?߾?gD9?gQI?g}?5^Ic                    UR                  / 5      n[        U5      (       a8  [        R                  " [        [
        S9   U R                  U5      nS S S 5        Od[        R                  R                  5        nUR                  [        S5        UR                  [        S5        U R                  U5      nS S S 5        [        WUR                  UR                  5      5        g ! , (       d  f       N4= f! , (       d  f       NE= f)Nr   Mean of empty slicezinvalid value encountered)re   r+   r   rd  r   r   stat_funr   r"  r   r   r   r2   rn   )ro   rp   rr   r   r   s        ry   test_empty_1dSkewKurtosisTest.test_empty_1dB  s    JJrNB<<08MNmmA& ON --/3

>+@A

>+FGmmA&	 0
 	RZZ/0 ON 0/s   C$8>C5$
C25
Dr   N)	r   r   r   r   rK  rS  testmathworksr  r   r   r|   ry   r  r  =  s    OH<M1r|   r  c                      \ rS rSrS r\R                  R                  S5      S 5       rS r	S r
S rS r\" S	S
9S 5       r\R                  R                  S/ SQ5      \R                  R                  SSS	/5      S 5       5       rSrg)TestSkewiP  c                 .    [         R                  " U5      $ r!  )rg   skewr  s     ry   r  TestSkew.stat_funR  s    zz!}r|   zEignore:invalid value encountered in scalar divide:RuntimeWarning:daskc                 X   [         R                  " UR                  U R                  5      5      n[	        X!R                  UR
                  5      5        [         R                  " UR                  U R                  5      5      n[	        X!R                  S5      SS9  [         R                  " UR                  U R                  5      SS9n[	        X!R                  S5      SS9  [         R                  " UR                  U R                  5      5      n[	        X!R                  S5      SS9  g )Ng7l*ҿ绽|=rG  r   biasg2۠ۿr   )rg   r  re   rK  r1   rn   r  rS  )ro   rp   rs   s      ry   test_skewnessTestSkew.test_skewnessU  s    
 JJrzz$"6"678::bff-. JJrzz$"4"456::&78uEJJrzz$"4"45A>::&89FJJrzz$--01::c?7r|   c                    [         R                  " S5      n[         R                  US'   [         R                  " SS9   [	        [
        R                  " U5      [         R                  5        S S S 5        [	        [
        R                  " USS9S5        [        [        [
        R                  USS9  [        [        [
        R                  US	S9  g ! , (       d  f       Nj= f)
Nr   r:   r  r  r   r   r   r   r   )	r   r   rn   r  r   rg   r  r   r   r  s     ry   r  TestSkew.test_nan_policye  s    IIcNvv![[*A/ +UZZf5r:j%**aGDj%**aHE	 +*s   /C
Cc                 V    [        [        R                  " [        S5      5      S5        g )NrZ   r   )r   rg   r  r   r  s    ry   test_skewness_scalarTestSkew.test_skewness_scalaro  s    UZZr
+S1r|   c                    UR                  S5      nUR                  US5      n[        R                  " U5      S   R	                  UR
                  5      n[        R                  " SS9   [        R                  " UR                  U5      SS9nS S S 5        [        WUR                  SUR
                  /5      5        g ! , (       d  f       N6= f)	Nr   r  r  r  r  r   rT   r   )r   ri   rk   rl   rm   rn   r   r  rg   r  re   r2   )ro   rp   rM  r  s       ry   test_skew_propagate_nan TestSkew.test_skew_propagate_nans  s     IIbMJJq'"FF1IdO'[[*

2::a=q1A +2::q"&&k23 +*s   *%B??
Cc                    UR                  UR                  S/5      S5      n[        U[        SS9   [	        [
        R                  " U5      UR                  UR                  5      5        [	        [
        R                  " US-  5      UR                  UR                  5      5        [	        [
        R                  " US-  5      UR                  UR                  5      5        [	        [
        R                  " USS9UR                  UR                  5      5        UR                  S/S	-  5      n[	        [
        R                  " U5      UR                  UR                  5      5        S
UR                  SS5      S-  -   n[	        [
        R                  " U5      UR                  UR                  5      5        S S S 5        g ! , (       d  f       g = f)N9ѿrZ   Precision loss occurredr   g      CFr  g,@r8   r         r5   rj  )	repeatre   r)   r   r2   rg   r  rn   r   ro   rp   rM  s      ry   test_skew_constant_value!TestSkew.test_skew_constant_value}  s.   IIbjj+/4N2KLEJJqM2::bff+=>EJJqx0"**RVV2DEEJJqx0"**RVV2DEEJJqu5rzz"&&7IJ 

D6!8$AEJJqM2::bff+=>RYYsA&u,,AEJJqM2::bff+=> MLLs   F	G
GTr   c                 "   [         R                  " [        SS9   [        R                  R                  S5      nUR	                  SS9nSUS S 2S4'   [        R                  " UR                  U5      5        S S S 5        g ! , (       d  f       g = f)Nr  r   l   :"z` )r  rZ   r  )\(?r   )	r   rd  r   r   r  r  rg   r  re   )ro   rp   r  rM  s       ry   test_precision_loss_gh15554$TestSkew.test_precision_loss_gh15554  se    
 \\.0IJ))''4C

	
*AAadGJJrzz!}%	 KJJs   AB  
BrU   r`   r   r3   Nr  Fc                    ^ [         R                  R                  S5      nTR                  UR                  S5      5      nU4S jn[        R
                  " XRUS9nU" XRUS9n[        Xx5        g )N   f#"r  c                    > Uc  TR                  U S5      n SnTR                  XSS9nTR                  X-
  S-  US9nTR                  XS9nXES-  -  nU(       d"  U R                  U   nXgS-
  U-  S-  US	-
  -  -  nU$ )
Nr  r   Tr  r4   rT   r   r<   r   )ri   rj   r   r  )	rM  rU   r  rj   mu3r   r   r  rp   s	           ry   skewness-TestSkew.test_vectorization.<locals>.skewness  s    |JJq%(771$77D''18a-d'3C&&&&Cq.CGGDMSA#-S99Jr|   )rU   r  )r   r  r  re   rg   r  r1   )	ro   rp   rU   r  r  rr   r  r   r  s	    `       ry   test_vectorizationTestSkew.test_vectorization  s[    
 ii##M2JJszz),-	 jjD1q$/!r|   r   N)r   r   r   r   r  r   r   r   r  r  r  r  r  r   r  r
  r  r   r   r|   ry   r  r  P  s     [[O88F24?  && '& [[V%56[[VeT]3" 4 7"r|   r  c                   @   \ rS rSrS r\R                  R                  S5      S 5       rS r	S r
S rS r\R                  R                  S	/ S
Q5      \R                  R                  SSS/5      \R                  R                  SSS/5      S 5       5       5       rSrg)TestKurtosisi  c                 .    [         R                  " U5      $ r!  )rg   kurtosisr  s     ry   r  TestKurtosis.stat_fun  s    ~~a  r|   z1ignore:invalid value encountered in scalar dividec                 "   [         R                  " UR                  U R                  5      5      nUR	                  U5      (       d   e[         R                  " UR                  U R
                  5      SSSS9n[        X!R                  S5      5        [         R                  " UR                  U R
                  5      SSS9n[        X!R                  S5      5        [         R                  " UR                  U R                  5      SS5      n[        X!R                  S5      5        UR                  S5      nUR                  US:H  UR                  U5      n[        [         R                  " U5      UR                  UR                  5      5        g )	Nr   r   fisherr  gO߻S@gx|N@g=
ףp=?r   r9   )rg   r  re   rK  r|  r  r1   rS  r   rT  rn   r2   )ro   rp   rs   rr   s       ry   test_kurtosisTestKurtosis.test_kurtosis  s    NN2::d&:&:;<xx{{{ NN2::d&8&891QQO::o67 NN2::d&8&89!!L::&789NN2::dmm4a;::d+,IIcNHHQ!VRVVQ'q)2::bff+=>r|   c                    [         R                  " S5      n[         R                  US'   [        [        R
                  " USS9S5        [        [        [        R
                  USS9  [        [        [        R
                  USS9  g )Nr   r:   r   r   Gzr   r   )r   r   rn   r   rg   r  r   r   r  s     ry   test_kurtosis_nan_policy%TestKurtosis.test_kurtosis_nan_policy  sU    IIcNvv!ENN1@)Lj%..!Hj%..!Ir|   c                 v    [        [        [        R                  " / SQ5      5      [        R
                  5        g )Nr  )r   typerg   r  r   r   r  s    ry   test_kurtosis_array_scalar'TestKurtosis.test_kurtosis_array_scalar  s    T%..34bjjAr|   c                 &   [         R                  " S5      R                  SS5      R                  [        5      n[         R
                  US'   [        R                  " USSS9n[         R                  R                  US[         R
                  /S	S
9  g )Nr9   r3   r`   r  r   r  r  g(\rF  rG  )
r   r   ri   r  r  rn   rg   r  r"  r   )ro   rM  r  s      ry   test_kurtosis_propagate_nan(TestKurtosis.test_kurtosis_propagate_nan  si     IIaL  B'..u5&&$NN11=


""1ubffoE"Br|   c           	         UR                  S/S-  5      n[        U[        SS9   UR                  [        R
                  " USS95      (       d   eUR                  [        R
                  " U[        S5      -  SS95      (       d   eUR                  [        R
                  " U[        S5      -  SS95      (       d   eUR                  [        R
                  " USSS95      (       d   e S S S 5        g ! , (       d  f       g = f)	Nr  rZ   r  r   F)r  l           r  )re   r)   r   r|  rg   r  r  r  s      ry   test_kurtosis_constant_value)TestKurtosis.test_kurtosis_constant_value  s    JJ}R'(N2KL88ENN1U;<<<<88ENN1uU|+;EJKKKK88ENN1uU|+;EJKKKK88ENN1UGHHHH	 MLLs   CC55
DrU   r  r  FTr  c                    ^ [         R                  R                  S5      nTR                  UR                  S5      5      nU4S jn[        R
                  " XbX4S9nU" XbX4S9n	[        X5        g )Nr  r.  c                 L  > Uc  T	R                  U S5      n SnT	R                  XSS9nT	R                  X-
  S-  US9nT	R                  XSS9nU(       a  XVS-  -  S	-
  nO8U R                  U   nUS
-
  US-
  US	-
  -  -  US
-   U-  US-  -  S	US
-
  -  -
  -  nU(       a  U$ US	-   $ )Nr  r   Tr  r5   rT   rU   r   r3   r4   r   )ri   rj   r   r  )
rM  rU   r  r  rj   mu4mu2r   r  rp   s
            ry   r  1TestKurtosis.test_vectorization.<locals>.kurtosis  s    |JJq%(771$77D''18a-d'3C&&!&4CFlQ&GGDMs!!}-!a%3sAv1E1Q31OP !3-cAg-r|   )rU   r  r  )r   r  r  re   rg   r  r1   )
ro   rp   rU   r  r  r  rr   r  r   r  s
    `        ry   r  TestKurtosis.test_vectorization  s[     ii##M2JJszz),-	.& nnQDq$>!r|   r   N)r   r   r   r   r  r   r   r   r  r  r  r  r  r
  r  r   r   r|   ry   r  r    s    ! [[ ST? U?>JBCI [[V%56[[VeT]3[[Xt}5" 6 4 7"r|   r  c           	      8   [        SSS9n[        R                  " SSS9nU " [        R                  " [        R
                  XS95      n/ n[        R                  " 5          [        R                  " S5        [        [        UR                  5      5       H  n[        R                  " [        5         [        R                   " USUS9n[        R"                  " US	:  5      (       a@  [        R"                  " [        R$                  " U5      5      (       a  UR'                  U5        S S S 5        M     S S S 5        [(        R*                  " U5        U " [(        R,                  R/                  U5      5      nX54$ ! , (       d  f       M  = f! , (       d  f       N^= f)
NF)	allow_nanallow_infinityr   r3   )min_dimsmin_side)rJ   elementsr  errorrw  r   )dictnpstarray_shapesarraysr   r   r]  r^  r_  r  r  r  
contextlibsuppress	Exceptionrg   rk  r  r  rQ  
hypothesisassume
strategiessampled_from)drawr  r  r  ok_axesrU   r   s          ry   ttest_data_axis_strategyr    s    eE:Hq15E "**xMND G 
	 	 	"g&#djj/*D$$Y/ll4qt<66#'??rvvbkk#.>'?'?NN4( 0/ + 
# g 
%%227;<D: 0/ 
#	"s&    AF2A5E9'F9
FF
Fc                   z   \ rS rSr/ SQr/ SQrSrSrSrSr	Sr
S	rS
rSr\	S-  rS\	S-  -
  r\R"                  R%                  S5      \R"                  R%                  S5      S 5       5       rS r\R"                  R%                  S5      S 5       r\" SSS9\R"                  R/                  S/ SQ5      S 5       5       rS r\" SSS9\R"                  R4                  \R8                  " \R:                  R=                  SS5      \" 5       S9\R"                  R/                  SS S!/5      S" 5       5       5       5       r S#r!g$)%TestStudentTesti6  rR  r   r   )r   r   r   r   r   gMXzg4/?gMXzgFX5t?gMXz?r3   r   r  r  c                 .   [        5        n[        R                  " SSS9   UR                  [        S5        [        U5      (       d  UR                  S5      OSn[        R                  " US5      u  pES S S 5        S S S 5        [        WUR                  UR                  5      5        [        WUR                  UR                  5      5        [        R                  " UR                  U R                  5      S5      u  pE[        XAR                  U R                  5      5        [        XQR                  U R                  5      5        [        R                  " UR                  U R                  5      S5      nSn[        XgUS9  [        R                  " UR                  U R                   5      S5      u  pE[        XAR                  U R"                  5      5        [        XQR                  U R$                  5      5        [        R                  " UR                  U R                  5      S	5      u  pE[        XAR                  U R&                  5      5        [        XQR                  U R(                  5      5        [        R                  " UR                  U R                  5      S
5      u  pE[        XAR                  U R*                  5      5        [        XQR                  U R,                  5      5        g ! , (       d  f       GN= f! , (       d  f       GN= f)Nr  r  divide!Degrees of freedom <= 0 for slicer   r   r   r@  r?  rp   r   r   )r   r   r  r   r   r+   re   rg   ttest_1sampr2   rn   X1r1   T1_0P1_0r   X2T2_0P2_0T1_1P1_1T1_2P1_2)ro   rp   r   rM  trg  r   rB  s           ry   test_onesampleTestStudentTest.test_onesampleI  s     CHX>JJ~'JK&.rll

2A$$Q+DA ? !
 	2::bff-.2::bff-.  DGG!4b9::dii01::dii01

477 3R8,
C3  DGG!4b9::dii01::dii01  DGG!4b9::dii01::dii01  DGG!4b9::dii01::dii019 ?> ! s#   LAK34L3
L	=L
Lc           	         [        U5      (       dZ  UR                  SSSUR                  /5      nSn[        R                  " [
        US9   [        R                  " USSS9  S S S 5        g [        R                  R                  SS	S
SS9n[        R                  US'   [        R                  " SS9   [        [        R                  " US5      [        R                  [        R                  45        [        [        R                  " USSS9S5        [        [        [        R                  USSS9  [        [        [        R                  USSS9  S S S 5        g ! , (       d  f       g = f! , (       d  f       g = f)Nr   r   r   %Use of `nan_policy` and `keepdims`...r   r   r   r6   rZ   3   it r(  r)  r  r  r  r  r  rM   )g̈́^Bg/kCm?r   r   )r+   re   rn   r   r   NotImplementedErrorrg   r  ra  r  r   r  r	   r   r   r   )ro   rp   rr   r  s       ry   test_onesample_nan_policy)TestStudentTest.test_onesample_nan_policyk  s   ||

BB/0A=G2'B!!!RF; CJJNNq'NJ"[[*u00C8266266:JK%e&7&736&R&QS*e&7&7CGT*e&7&7C%-/ +* CB +*s   E2BE*
E'*
E8z+ignore:divide by zero encountered in dividec                    Sn[         R                  " [        US9   [        R                  " UR                  U R                  5      SSS9  S S S 5        [        R                  " UR                  U R                  5      SSS9u  p4[        XAR                  U R                  5      5        [        X1R                  U R                  5      5        [        R                  " UR                  U R                  5      SSS9u  p4[        XAR                  U R                  5      5        [        X1R                  U R                  5      5        g ! , (       d  f       GN= f)	N8`alternative` must be 'less', 'greater', or 'two-sided'.r   r   r  r  r   r  r  )r   r   r   rg   r  re   r	  r1   P1_1_lr  P1_1_g)ro   rp   r  r  rg  s        ry   test_1samp_alternative&TestStudentTest.test_1samp_alternative  s    L]]:W5bjj127K 6   DGG!4bfM::dkk23::dii01  DGG!4biP::dkk23::dii01 65s   0E
E	jax.numpyGeneric stdtrit mutates array.r   r  rX  c                    [         R                  R                  S5      nSnUR                  USSS9nUR                  5       nUR	                  S5      R
                  nUR	                  XWS9nUR	                  XgS9nSS	/S
[         R                  /[         R                  * S/S.n[        R                  " XVUS9n	U	R                  SS9n
[        U
R                  UR	                  X   S   5      5        [        U
R                  UR	                  X   S   5      5        [        U	R                  UR	                  US-
  5      5        g )Nl   <PleH rZ   r=   r3   r  r(  r)  r   rI   gÍ]?g$(}w@gS1?g]@r  r  r  )popmeanr  333333?confidence_levelr   r   )r   r  r  r  re   rJ   r!  rg   r  r  r1   r  r  r2   df)ro   rp   r  r  r  rr   r)  rJ   r  r   r  s              ry   test_1samp_ci_1d TestStudentTest.test_1samp_ci_1d  s    ii##$78JJA3aJ0**, 

3%%JJqJ&**W*2/1CD-rvv6!235 L$$d$;

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

1Q30r|   c                     [         R                  " UR                  S5      S5      nSn[        R                  " [
        US9   UR                  SS9  S S S 5        g ! , (       d  f       g = f)Nr   r   4`confidence_level` must be a number between 0 and 1.r   rZ   r+  )rg   r  r   r   r   r   r  )ro   rp   r   r  s       ry   test_1samp_ci_iv TestStudentTest.test_1samp_ci_iv  sL    		#3H]]:W5##R#8 655s   A
A)Tz	Too slow.r   rF  g?)alpha	data_axisr  r  c                    Uu  pVUR                  U5      n[        R                  " USX6S9nUR                  US9u  pUS:X  a  UOU	n
UR	                  XS9n
[        R                  " XZX6S9n[        UR                  5      nUR                  U5        UR                  UR                  SU-
  UR                  S9U5      n[        UR                  U5        g )Nr   r  r+  r  rT   r   rI   )re   rg   r  r  expand_dimsr?  r  r  r  r   r1   r?  )ro   r4  r5  r  rp   r  rU   r   lr  r)  r  r  s                ry   test_pvalue_ciTestStudentTest.test_pvalue_ci  s     
zz$b,7D&&&>"i/!Q...4;RTZZ 		$oobjj5

jCUK

C(r|   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.  r2  rw  r  givenr  floatsr  r9  r   r   r|   ry   r   r   6  sj    
B	BDDDDDDDDAXF$(^F[[ WX[[ VW2 X Y2@/( [[ MN2 O2 k*JK[[],LM1 N L109 d;7[[J1188H 8 :<[[]VY,?@) A<  8
)r|   r   c                      \ rS rSrS r\R                  R                  S/ SQ5      S 5       r\R                  R                  S/ SQ5      S 5       r	\R                  R                  S/ SQ5      S	 5       r
\R                  R                  S/ S
Q5      S 5       r\R                  R                  S/ SQ5      S 5       r\R                  R                  S/ SQ5      S 5       r\R                  R                  S/ S
Q5      S 5       r\R                  R                  SS/ SQ4S/ SQ4S/ SQ4S/ SQ4/5      S 5       r\R                  R                  SS/ SQ4S/ SQ4S/ SQ4S/ SQ4/5      S 5       rS/ S\R$                  4S\R$                  /S\R$                  4S\R$                  // SQ\R$                  \R$                  \R$                  /4SSS/SS\R$                  /SS \R$                  /4S!SS\R$                  // SQ/ S"Q4S!SS/S#S\R$                  /S#S\R$                  /4S!\R$                  \R$                  // SQ\R$                  \R$                  \R$                  /4/r\R                  R                  S$\5      S% 5       rS&SSS'\R$                  // S(QS)4S&/ S(QSSS'\R$                  /S)4/r\R                  R                  S*\5      S+ 5       r\R                  R                  S,/ S-Q5      S. 5       rS/rg0)1TestPercentileOfScorei  c                 .    [         R                  " U0 UD6$ r!  )rg   percentileofscore)ro   argskwargss      ry   fTestPercentileOfScore.f  s    &&777r|   zkind, result))r  r  )rj   #   strictr  )weakr  c                 B    / SQn[        U R                  USUS9U5        g )N
r   r3   r4   r5   r6   r7   r8   r9   r:   rZ   r5   kindr   rC  ro   rL  r  rM  s       ry   test_unique!TestPercentileOfScore.test_unique  s"    
 ,TVVAqtV,f5r|   ))r  r  )rj   r  rF  )rH  r  c                 B    / SQn[        U R                  USUS9U5        g )N)
r   r3   r4   r5   r5   r6   r7   r8   r9   r:   r5   rK  rM  rN  s       ry   test_multiple2$TestPercentileOfScore.test_multiple2  "    
 +TVVAqtV,f5r|   ))r  r  )rj   r  rF  )rH  rF  c                 B    / SQn[        U R                  USUS9U5        g )N)
r   r3   r4   r5   r5   r5   r6   r7   r8   r9   r5   rK  rM  rN  s       ry   test_multiple3$TestPercentileOfScore.test_multiple3  rT  r|   ))r  r  )rj   r  rF  )rH  r  c                 B    / SQn[        U R                  USUS9U5        g )N)
r   r3   r4   r6   r7   r8   r9   r:   rZ   r[   r5   rK  rM  rN  s       ry   test_missing"TestPercentileOfScore.test_missing  s"    
 -TVVAqtV,f5r|   c                 B    / SQn[        U R                  USUS9U5        g )N
rZ   r  r  r  r  rF  F   rJ  r#  r  r  rK  rM  rN  s       ry   r>  (TestPercentileOfScore.test_large_numbers  s"    
 6TVVArV-v6r|   c                 B    / SQn[        U R                  USUS9U5        g )N)
rZ   r  r  r  r  r  r  rF  r]  rJ  r  rK  rM  rN  s       ry   test_large_numbers_multiple32TestPercentileOfScore.test_large_numbers_multiple3  s"    
 5TVVArV-v6r|   c                 B    / SQn[        U R                  USUS9U5        g )N
rZ   r  r  r  rF  r]  rJ  r#  r  n   r  rK  rM  rN  s       ry   test_large_numbers_missing0TestPercentileOfScore.test_large_numbers_missing  s"    
 7TVVArV-v6r|   r  )r   rZ   r  r  rj   )r   r6   _   r  rG  )r   r   r#  r  rH  c                 F    / SQn[        U R                  U/ SQUS9U5        g )Nrc  )r   rZ   rd  r+  rK  rM  rN  s       ry   test_boundaries%TestPercentileOfScore.test_boundaries  s#    
 7TVVA0tV<fEr|   )r   rZ   r  )r   r6   rg  )r   r   r#  c           
          SSSSSSSSS	[         R                  7/
n[        U R                  U[         R                  * S[         R                  7/US
9U5        g )Nr   r3   r4   r5   r6   r7   r8   r9   r:   rK  )r   r!  r   rC  rN  s       ry   test_infTestPercentileOfScore.test_inf	  sP    
 1aAq!Q0TVVARVVG44V@&Ir|   r  r   r  r3   r  r  r   )r   r  r  r   zpolicy, a, score, resultc                 8    [        U R                  X#US9U5        g )Nr   rM  )ro   policyrM  r  r  s        ry   test_nans_ok"TestPercentileOfScore.test_nans_ok  s    TVVAV8&Ar|   r   r4   r  r   zpolicy, a, score, messagec                 t    [        [        US9   U R                  X#US9  S S S 5        g ! , (       d  f       g = f)Nr   r   )r   r   rC  )ro   ro  rM  r  r  s        ry   test_nans_fail$TestPercentileOfScore.test_nans_fail$  s(    :W5FF1F/ 655s   )
7r  ))r7   r`  r3   r   r4   )r3   r   r   r4   c                     [         R                  " / SQ5      nUR                  U5      nUS-  n/ SQn[        U R	                  X#SS9U5        g )N)r   r   r3   r4   r5   r6   rZ   rJ  r  rK  )r   r   ri   r   rC  )ro   r  rM  r{  resultss        ry   test_ndTestPercentileOfScore.test_nd)  sF     HH'(5!)+TVVAFV3W=r|   r   N)r   r   r   r   rC  r   r   r
  rO  rR  rV  rY  r>  r`  re  ri  rl  r   rn   casesrp  rs  rx  r   r   r|   ry   r>  r>    sf   8 [[^ .< =6	=6 [[^ .< =6	=6 [[^ .< =6	=6 [[^ .< =6	=6 [[^ .< =7	=7 [[^ .< =7	=7 [[^ .< =7	=7 [[^v7H.I/5.G/7.I/57H.I.K LF	LF [[^v|.D/5z.B/7.D/5|.D.F GJ	GJ 2q"&&)BFF8Q/BFF8Y0HIAq6Aq"&&>BRVV3DEq!RVVni>q!fq!RVVnq"bffo>rvvrvv&	BFFBFFBFF3KLNE [[7?B @B 
1aBFF#Y	(	*	)aArvv.	(	*E [[8%@0 A0 [[W ' >>r|   r>  Case)f_obsf_exprR  rU   chi2r  mod_logcr)r5   r9   r\   r9   r5   r3   r<   r\   r=   r9   r   rP  gfx(@)r3   r   r\   r3   r  r   r         ?g{T4@)r4   r6   r8   r:   r   r   r   c                   D   \ rS rSrS r\R                  R                  S\5      \R                  R                  S/ SQ5      S 5       5       r	S r
S r\R                  R                  S\5      \R                  R                  S/ S	Q5      S
 5       5       rS rS rS rSrg)TestPowerDivergenceiv  c           	         UR                  S5      R                  nUR                  XS9nUb  UR                  X(S9OUnUc  [        U5      n	O)Ub  UR                  X5      OU4n
U
S   R                  U   n	[        5        nUR                  [        S5        [        R                  " XUXES9u  p[        XR                  XhS95        US:X  d  US:X  a0  [        R                  " XUUS9u  p[        XR                  XhS95        S S S 5        [        R                   " U5      n[        R                  R                  R                  UU	S-
  U-
  5      n[        WUR                  XS95        g ! , (       d  f       Nn= f)	Nr   rI   r   r  r}  rR  rU   lambda_r   pearson)r}  rR  rU   )re   rJ   r.   broadcast_arraysr  r   r   r   rg   power_divergencer1   	chisquarer   distributionsr~  sf)ro   r|  r}  rR  rU   r  expected_statrp   rJ   num_obsr  r   statrg  
expected_ps                  ry   check_power_divergence*TestPowerDivergence.check_power_divergencey  sU   

2$$

5
.272C

5
.<enG;@;Lb))%7!8 Qiood+G CJJ~'<=,, %%)<GD D**]*"HI!|w)3//%4/35jjj&LM ! zz$((--00181t1CE
2::j:>?! ! s   BE,,
E:caselambda_stat))Nr~  r  r~  )r   r~  log-likelihoodr  mod-log-likelihoodr  cressie-readr  rP  r  c           	          Uu  pE[        X5      nU R                  UR                  UR                  UR                  UR
                  XFU5        g r!  )rl  r  r|  r}  rR  rU   ro   r  r  rp   r  attrr  s          ry   rZ  TestPowerDivergence.test_basic  sA     $+##DJJ

DIItyy$+B	@r|   c           
      t   [         S   n[         S   n[        R                  " UR                  UR                  45      n[        R                  " [        R                  " UR                  5      [        R
                  " UR                  5      -  UR                  45      nUR                  U5      nUb  UR                  U5      OUnU R                  XESSSUR                  UR                  /US9  U R                  XESSSUR                  UR                  /US9  U R                  XESSSUR                  UR                  /US9  U R                  XESSSUR                  UR                  /US9  UR                  UR                  UR                  5      S5      nU R                  US SS SUR                  US9  g )	Nr   r   r  r  r  r  r  r>  )power_div_1d_casesr   vstackr|  	ones_likerj   r}  re   r  r~  r  r  r  ri   )ro   rp   case0case1r|  r}  f_obs_reshapes          ry   r  TestPowerDivergence.test_axis  s   "1%"1%		5;;45		2<<4RWWU[[5II ;;( ) 

5!%*%6

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

2::ekk#:FC##dAt%** 	$ 	-r|   c                 z   [         S   n[         S   n[        R                  " UR                  UR                  45      R                  n[        R                  " [        R
                  " UR                  5      [        R                  " UR                  5      -  UR                  45      R                  nUR                  UR                  /nUR                  S5      R                  nUR                  XGS9nUR                  XWS9nUR                  XgS9nUR                  S/S//5      n[        R                  " XEUS9u  p[        X5        [        R                  " XEUS   S9u  p[        R                  " XEUS   S9u  pUR                  XR                  S S 24   XR                  S S 24   4SS9n[        X5        g )	Nr   r   r   rI   rQ  r  r  rT   )r  r   r  r|  r   r  rj   r}  r~  re   rJ   rg   r  r1   r  ro  )ro   rp   r  r  r|  r}  expected_chi2rJ   rR  r  rg  r  p0p1r  s                  ry   test_ddof_broadcasting*TestPowerDivergence.test_ddof_broadcasting  sn    #1%"1%		5;;4577		2<<4RWWU[[5II ;;( ))* 	 UZZ0

2$$

5
.

5
.

=
> zzA3*%((DA, &&u$t*E&&u$t*EYY::q= 12jj!m3DEAYN
&r|   )r  r  r  r  r  c           
          Uu  pE[        X5      n[        R                  " 5          U R                  UR                  UR
                  UR                  UR                  XFU5        S S S 5        g ! , (       d  f       g = fr!  )rl  r]  r^  r  r|  r}  rR  rU   r  s          ry   test_empty_cases$TestPowerDivergence.test_empty_cases  sY     $+$$&''

DJJ		499, '&&s   ?A--
A;c                 6   [         S   R                  n[         S   R                  n[         S   R                  n[         S   R                  nUR                  S5      R                  nUR                  X&S9n[        R                  " X#UUSS9nSn[        XxUS9  g )Nr   r   rI   r  r  r  r  )
r  r|  r}  rR  rU   re   rJ   rg   r  r   )	ro   rp   r|  r}  rR  rU   rJ   r   rB  s	            ry   'test_power_divergence_result_attributes;TestPowerDivergence.test_power_divergence_result_attributes  s    "1%++"1%++!!$))!!$))

2$$

5
. $$Ud*.	C,
C3r|   c                 @   UR                  SS/SS//5      nUR                  SS/SS//5      nSn[        R                  " [        US	9   [        R
                  " X!R                  SS
/5      S9  S S S 5        [        R                  " [        US	9   [        R
                  " X#SS9  S S S 5        [        R
                  " X#S9u  pV[        XQR                  SS/5      5        [        XaR                  SS/5      5        g ! , (       d  f       N= f! , (       d  f       Nn= f)Nr   r7        >@rM   rY  g     A@g      9@For each axis slice...r         N@r}  r   )r}  rU   g̑m@gUUU@gj^4;?g4;?)re   r   r   r   rg   r  r1   )ro   rp   r|  r}  r  r  r  s          ry   test_power_divergence_gh_122822TestPowerDivergence.test_power_divergence_gh_12282  s    

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

RISz23*]]:W5""5

C:0FG 6]]:W5""5A> 6++E?
jj*j)ABCjj*j)ABC 6555s   
&C>D>
D
Dc           	         UR                  / SQ5      nSnUR                  SUR                  S   S-   5      nUR                  UR	                  U5      UR	                  UR                  X4-  5      5      -  5      nUR                  XSU-  -   5      nUR                  X!R                  S S 24   XaR                  S S 24   45      R                  nUR                  / SQ5      nUR                  US5      n[        UR                  S   5       H>  nXS4   XS4   p[        R                  " US S 2S4   US S 2S4   U	S9u  p[        XS	S
9  M@     g )N)rY  r        ,@g      1@rM   r  r   r   r   r   r   r   r  r   r   r   r   r   g*kqr   r   ) g      $g    @r  g     r@r  gffffffP@g       gLD@rt  g      A@rR  g     =@rs  g     :@r   g8@r<   gffffff7@gq=
ףp?g7@r   g333336@r=   g6@r   gfffff6@r   g8@rM   g     A@r   g     j@)r`   r3   r   )r  g{Gzt?r  )re   r   r  r  rg  expr  ro  r   ri   r  rg   r  r1   )ro   rp   obsbetar  r4  expected_countstable4table5r  r  r  rg  s                ry   /test_power_divergence_against_cressie_read_dataCTestPowerDivergence.test_power_divergence_against_cressie_read_data  s9    jj @ AIIb#))A,+,rvvc{RVVBFF46N%;;<&&a0 C

A.+JJM:< ==>Q 	   & FG,v||A'A%+qD\6Q$<],,VAaC[&1+5<>GDDd;	 (r|   r   N)r   r   r   r   r  r   r   r
  r  rZ  r  r  power_div_empty_casesr  r  r  r  r   r   r|   ry   r  r  v  s    @@ [[V%78[[]	./@	/ 9
@-: 'D [[V%:;[[]	./,	/ <
,4D-<r|   r  c                   h    \ rS rSrS rS r\R                  R                  SSS/5      S 5       r	Sr
g	)
TestChisquarei;  c                     [        [        SS9   UR                  SS/5      nUR                  SS/5      n[        R                  " X#S9  S S S 5        g ! , (       d  f       g = f)Nr  r   r   r7  r  r  r  )r   r   re   rg   r  )ro   rp   r|  r}  s       ry   test_chisquare_12282a#TestChisquare.test_chisquare_12282a=  sL     :-EFJJSz*EJJSz*EOOE/ GFFs   ;A
A!c                    [         R                  R                  S5      nSnUR                  SSUS9nUR	                  U5      nUR                  U5      nUR                  XTR                  S9n[        R                  " XTSSS	9nXT-
  UR                  U5      -  nUR                  US
-  5      n[        UR                  U5        [        UR                  X8R                  S95      n	[        UR                  U	R                  U5      5        g )Nl   *m{m rZ   r  r>  r  rI   r`   F)r}  rR  	sum_checkr3   )r   r  r  r  poissonre   rJ   rg   r  rJ  rg  r1   r@  r%   r?  r  )
ro   rp   r  r  lamrr   r   r2  r@  r  s
             ry   test_chisquare_12282b#TestChisquare.test_chisquare_12282bF  s     ii##$45kk$1k-KKjjoJJq		J*ooauEW$FF1a4L	y1A__=>

BEE)$45r|   zn, dtype)r+  r+  )i@B r  c           	      Z   [        X25      nUR                  US/US9nUR                  US-  US-  /US9n[        R                  " XE5      nUu  px[	        XsR                  XR                  S5      R
                  S9SS9  [        UR                  U5        [        UR                  U5        g )Nr   rI   r3   r   vIh%<=r  )	rl  re   rg   r  r1   rJ   r2   r@  r?  )	ro   r  rJ   rp   r  r  r   r  rg  s	            ry   #test_chiquare_data_types_attributes1TestChisquare.test_chiquare_data_types_attributesY  s     "jj!Quj-jj!q&!q&)j7ooc'jj**R.2F2FjGeTt,

A&r|   r   N)r   r   r   r   r  r  r   r   r
  r  r   r   r|   ry   r  r  ;  s8    06& [[Z.:L)MN
' O
'r|   r  c            	         [        / SQ5      [        / SQ5      [        / SQ5      [        / SQ5      /n [        / SQ5      [        / SQ5      [        / SQ5      [        / SQ5      /n[        / S	Q5      [        / S
Q5      [        / SQ5      [        / SQ5      /n[        [        R                  " U S   U S   U S   U S   5      S5        [        [        R                  " US   US   US   US   5      S5        [        [        R                  " US   US   US   US   5      S5        [	        [
        [        R                  US   US   5        Sn[        R                  " U 6 n[        XC5        [        [        R                  " U S   U S   U S   U S   5      S5        [        [        R                  " US   US   US   US   5      S5        [	        [
        [        R                  US   US   5        g )N)g"~j?g^I+?gI+?gjt?gMbX9?gʡE?x&?-?g?r   Gz?g+?gv?g9v?)g~jt?gx?gOn?r  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?
ףp=
?)r5   r4   r6   r4   r6   r4   r3   r6   r5   r5   r5   r4   )r3   r3   r   r3   r4   r   r3   r4   r3   r   r   r4   )r3   r5   r4   r4   r5   r4   r4   r5   r5   r   r3   r   )r4   r6   r5   r4   r5   r5   r4   r4   r4   r5   r5   r5   )r   g#@rD   r  g$@)g333333@g@g@r?   g@)r  r  rA   r   @)g!@g!@333333 @ffffff
@g333333"@r   r   r3   r4   )gNt$@gBv?)g
__2@g5"]i2?)g\(\%@g+ԋ?r  )r   r   rg   friedmanchisquarer   r   r   r  )r  r  r  rB  r   s        ry   test_friedmanchisquarer  g  s   
  8 9
 9 :
 : ;
 9 :
;B )
*
)
*
)
*
)
*
,B &
'
%
&
%
&
%
&
(B
 e55beBqE"Q%1NDFe55beBqE"Q%1NFHe55beBqE"Q%1N9;*e55beBqEB )J

!
!2
&C( f66r!ube79!ubeEDF f66r!ube79!ubeE9; *f66r!uRUCr|   c                   @    \ rS rSrSr S
S jrS
S jrS rS rS r	Sr
g	)
TestKSTesti  zLTests kstest and ks_1samp agree with K-S various sizes, alternatives, modes.c                     [         R                  " USX%S9n[        R                  " X4/5      n[	        [        R                  " U5      XS9  g Nra  r  r  rX  )rg   kstestr   r   r   	ro   rr   r  expected_statisticexpected_probr  r  r  r  s	            ry   _testOneTestKSTest._testOne  s9    a[L88/?@!"((6"2HNr|   c                     [         R                  " USX#S9n[         R                  " U[         R                  R                  X#S9n[        [        R                  " U5      XdS9  g r  )rg   r  ks_1sampra  cdfr   r   r   )ro   rr   r  r  r  r  result_1samps          ry   _test_kstest_and_ks1samp#TestKSTest._test_kstest_and_ks1samp  sE    a[L~~a2=J!"((6"2LRr|   c                 |    [         R                  " SSS5      nSn[        R                  " US5      n[	        X25        g )Nr`   r   r:   r  ra  )r   r6  rg   r  r   ro   rr   rB  r   s       ry   test_namedtuple_attributes%TestKSTest.test_namedtuple_attributes  s1    KKAq!,
ll1f%C,r|   c                    [         R                  " SSS5      nU R                  US5        [         R                  " SSS5      nU R                  US5        / SQnU R                  US5        U R                  USS	S
9  U R                  USS	S
9  g )Nr`   r   r:   r  r  
r  Q?g333333g(\?Q?g(\ſg{GzgHzG?g\(\gGzr  r  r  r  )r   r6  r  r  s     ry   test_agree_with_ks_1samp#TestKSTest.test_agree_with_ks_1samp  s    KKAq!%%a5KKR#%%a5N%%a5%%a%A%%ag%>r|   c                    [         R                  * SS[         R                  /n[        R                  " U[        R                  R
                  5      n[        R                  " U[        R                  R
                  SS9n[         R                  " [         R                  " U5      5      (       d   e[        X#5        [         R                  " UR                  5      (       a   e[         R                  " UR                  5      (       a   eg )Nr   r   T)_no_deco)r   r!  rg   r  cauchyr  r  r  r   r|  r@  r?  )ro   r  r   r  s       ry   test_pm_inf_gh20386TestKSTest.test_pm_inf_gh20386  s     Arvv&ll4!1!12ll4!1!1DAvvbkk#&''''S88CMM****88CJJ'''''r|   r   NautorX   )r   r   r   r   r8  r  r  r  r  r  r   r   r|   ry   r  r    s%    V ')OS-
?	(r|   r  c                       \ rS rSrSr SS jrS rS rS rS r	\
R                  R                  S\R                  \R                  /5      \
R                  R                  S	/ S
Q5      S 5       5       rSrg)TestKSOneSamplei  zQ
Tests kstest and ks_samp 1-samples with K-S various sizes, alternatives, modes.
c                     [         R                  " U[         R                  R                  X%S9n[        R
                  " X4/5      n[        [        R
                  " U5      XS9  g )Nr  rX  )rg   r  ra  r  r   r   r   r  s	            ry   r  TestKSOneSample._testOne  sA    5::>>{V88/?@!"((6"2HNr|   c                     [         R                  " SSS5      nSn[        R                  " U[        R                  R
                  5      n[        X25        g )Nr`   r   r:   r  )r   r6  rg   r  ra  r  r   r  s       ry   r  *TestKSOneSample.test_namedtuple_attributes  s9    KKAq!,
nnQ

/C,r|   c                 0   [         R                  " SSS5      nU R                  USSS5        [         R                  " SSS5      nU R                  USS	S
5        / SQnU R                  USSS5        U R                  USSSSS9  U R                  USSSSS9  g )Nr`   r   r:   r  g|N?g7.s?r  r  g{CTp?g M<b*?r  gZL?g86J4?r  g+?r  r  r  gHD?gr?r   r6  r  r  s     ry   test_agree_with_r!TestKSOneSample.test_agree_with_r  s    KKAq!a&9;NOKKR#a&9;OPNa&79JKa$57HwWa!24EGTr|   c                     [         R                  R                  SSSS9nU R                  USSSSS	9  U R                  US
SS5        U R                  USSS5        g )Nr5  r  h:)r(  r  r  r  ghх?g7?asympr  r  g^h?r  gv!ԉ}?g*z)?)rg   ra  r  r  r  s     ry   test_known_examples#TestKSOneSample.test_known_examples  s`    JJNNs9NEa&9;O" 	 	$a!46JKa$9;NOr|   c           	         [        [        R                  " [        [        R                  SS5      5      5        [        [        SS9   [        SSS5        S S S 5        [        [        R                  " [        SSS5      5      5        [        R                  " / SQ5      n[        [        USS	5      R                  [        [        [        /S
9  g ! , (       d  f       N= f)Nr   Tzn is not integral: 1.5r   r=   r`   ))r  r   Tr   )r  皙?Tr   )r  r   Tr   )r  gTr   )          ?Tr   )r  r  Fr   )r  r<   Tgb?)r  r<   FgiNq>)r        ?Tgv(?)r  r  TgT	?)@  g\(\?Fr   )r        ?Fg(>)r  gQ?Fg@c?)r        ?FgX+ʳP?r  r4   )dtypes)r   r   r|  r   rn   r   r   re   r   checkintr  bool)ro   datasets     ry   test_ks1samp_allpaths%TestKSOneSample.test_ks1samp_allpaths  s    D123:-EFCD! GQ-./** 
 4 	'9a066sE4>P6Q= GFs   C
Cksfunc*alternative, x6val, ref_location, ref_sign))r  r7   r7   r   )r  r8   r8   r`   )r  r7   r7   r   )r  r8   r8   r`   c                     [         R                  " S5      S-   nX6S'   [        R                  " SS9R                  nU" XgUS9n[        UR                  SSS9  UR                  U:X  d   eUR                  U:X  d   eg )	NrZ   r<   r7   rc  r  rL  rF  r  )	r   r   rg   r  r  r   r@  statistic_locationstatistic_sign)	ro   r&  r  x6valref_locationref_signrr   r  r   s	            ry   test_location_sign"TestKSOneSample.test_location_sign  su     IIbMC!mm"%))Q5s7%%555!!X---r|   r   Nr  )r   r   r   r   r8  r  r  r  r  r$  r   r   r
  rg   r  r  r.  r   r   r|   ry   r	  r	    s|    
 ')O-UP!RF [[Xenn'EF[[I78

.8 G
.r|   r	  c                      \ rS rSrSr SS jrS rS rS rS r	S r
S	 rS
 r\R                  R                  S 5       r\R                  R                  S 5       rS rS r\R                  R(                  S 5       r\R                  R(                  S 5       r\R                  R                  S 5       rS r\R                  R                  S 5       r\R                  R5                  S/ S/4S// 4/ / 445      S 5       r\R                  R(                  S 5       rS r\R                  R5                  S\R>                  \R@                  /5      \R                  R5                  S/ SQ5      S 5       5       r!Sr"g) TestKSTwoSamplesi-  z<Tests 2-samples with K-S various sizes, alternatives, modes.c                     [         R                  " XX6S9n[        R                  " XE/5      n[	        [        R                  " U5      U5        g )Nr  )rg   ks_2sampr   r   r   )	ro   r  r  r  r  r  r  r  r  s	            ry   r  TestKSTwoSamples._testOne0  s7    ?88/?@!"((6"2H=r|   c                    U R                  S/S/SSS5        U R                  S/S/SSS5        U R                  S/S/SSS5        U R                  S/S/SSS5        U R                  S/S/SSS5        U R                  S/S/SSS5        g )	Nr   r   r  r   r  r<   r  r   )r  r  s    ry   	testSmallTestKSTwoSamples.testSmall6  s    qcA3UC8qcA3	5#6qcA3s3qcA3UC8qcA3	5#6qcA3s3r|   c                 h   [         R                  " SS/5      nUS-   nUS-
  n[         R                  " / SQ5      nU R                  X$SSS5        U R                  X$SSS5        U R                  X$S	SS5        U R                  X4SS
S5        U R                  X4SS
S5        U R                  X4S	SS5        g )Nr   r   r  r  r  rX  r  rM  r  rP  rp  rO  r   r   r   r  ro   r  data1pdata1mr  s        ry   testTwoVsThreeTestKSTwoSamples.testTwoVsThree>  s    #s$)f['3?fY=fVWc:f['3?fY=fVQ4r|   c                 h   [         R                  " SS/5      nUS-   nUS-
  n[         R                  " / SQ5      nU R                  X$SSS5        U R                  X$SSS	5        U R                  X$S
SS5        U R                  X4SSS5        U R                  X4SSS5        U R                  X4S
SS5        g )Nr   r   r  rI  r  r<   g?r  g?r  r  皙?r  ro  r5  r   r9  r:  s        ry   testTwoVsFourTestKSTwoSamples.testTwoVsFourJ  s    #s$-.f['7CfY@fVWg>f['6BfY@fVQ4r|   c                 D   [         R                  " SSS5      nUS-   S-   nUS-   S-
  nU R                  XSSS5        U R                  XSSS	5        U R                  XS
SS5        U R                  XSSS5        U R                  XSSS5        U R                  XS
SS5        g )Nr   r  r3   rL  r  r  g~z?r  gz;.B?r  r   r   {Gz?gn2IU?r  )ro   x100	x100_2_p1	x100_2_m1s       ry   test100_100TestKSTwoSamples.test100_100W  s    {{1c3'1HsN	1HsN	d{I?QRdy)=OPdvq#6d{IsCdy)=NOdvq#6r|   c                 t   [         R                  " SSS5      n[         R                  " SSS5      nUS-   S-   nUS-   S-
  nU R                  XSSS5        U R                  XS	SS
5        U R                  XSSS5        U R                  XSSS5        U R                  XS	SS5        U R                  XSSS5        g )Nr   r  rd  r  rL  r  g?g@߿?r  g}n?r  r   g:[?g]O);?gѫ);?r   r   r  )ro   rE  x110
x110_20_p1
x110_20_m1s        ry   test100_110TestKSTwoSamples.test100_110b  s    {{1c3'{{1c3'BY_
BY_
d\CWXd	<AUVd15d\CWXd	<AUVdS9r|   c                 *   [         R                  " S/S-  S/S-  -   S/S-  -   S/S-  -   [        S9nUS-   n[         R                  " S/S-  S/S-  -   S/S-  -   S/S-  -   [        S9n[         R                  " S/S-  S/S-  -   S/S-  -   S	/S-  -   [        S9nU R                  XS
SS5        U R                  XSSS5        U R                  XSSS5        U R                  X4S
SS5        U R                  X4SSS5        U R                  X4SSS5        g )Nr3   r4   r5   r6   r7   rI   r   rZ   r8   r  g      ?g^dH?r  gQl6y?r  r   r   gVdEVdE?g(f^?g!?gii?g+ ϖ?)r   r   r!  r  )ro   x2233x3344x2356x3467s        ry   testRepeatedValues#TestKSTwoSamples.testRepeatedValueso  s!   !qA37*aS1W4sQw>cJ	!qA37*aS2X5a?sK!rQC!G+qcBh6!q@LeK9KLeIv7JKeFFC8eK>PQeI{<NOeFJ8JKr|   c                    [         R                  " / SQ5      nU R                  XS-   SSS5        U R                  XS-   SSS5        U R                  XS-   SS	S5        U R                  XS
-   SSS5        U R                  XS
-   SSS5        U R                  XS
-   SS	S5        U R                  XS
-
  SSS5        U R                  XS
-
  SS	S5        U R                  XS
-
  SSS5        g )Nr  r   r  rX  r   r  r  r  r   r<   r9  )ro   r  s     ry   testEqualSizesTestKSTwoSamples.testEqualSizes{  s    )e1Wk5#>e1Wi=e1WfeR8e3YUC@e3Y	5$?e3Yr:e3YUC@e3Y	5#>e3Yt<r|   c           
         Su  pSU-  U-  S-  S-  n[         R                  " SSU5      U-
  n[         R                  " SSU5      nU R                  XESSU-  U-  SSS	9  U R                  XESSU-  U-  SS
S	9  U R                  XESSU-  U-  SS
S	9  U R                  XESSU-  U-  SS
S	9  [        5        nSnUR	                  [
        U5        U R                  XESSU-  U-  SSS	9  U R                  XESSU-  U-  SSS	9  S S S 5        [        R                  " SS9 n[        R                  " S5        U R                  XESSU-  U-  SSS	9  [        U[
        S5        S S S 5        g ! , (       d  f       Nl= f! , (       d  f       g = f)N)r&  iX  r   r3   r   r+  r  g     @@r  r  r  r  g2JE?r  g     @@gsW\nc?)ks_2samp: Exact calculation unsuccessful.r  TrZ  r[  
r   r6  r  r   r   r   r]  r^  r_  r  	ro   n1n2deltarr   rs   r   r  r	  s	            ry   testMiddlingBoth!TestKSTwoSamples.testMiddlingBoth  s    Br	!AKK3#e+KK3#aK"r)93! 	 	#aK"r)93" 	 	$aIv{R'79K" 	 	$aFEBJO5G" 	 	$ CAGJJ~w/MM!	6B;+;=O&  (MM!
R9K&  ( ! $$D1Q!!(+MM!
R9K&  (A~q1	 21 !  21   4AE%AE6%
E36
Fc           
         Su  pSU-  U-  S-  S-  n[         R                  " SSU5      U-
  n[         R                  " SSU5      nU R                  XESSU-  U-  SSS	9  U R                  XESSU-  U-  SS
S	9  U R                  XESSU-  U-  SSS	9  U R                  XESSU-  U-  SSS	9  [        5        nSnUR	                  [
        U5        U R                  XESSU-  U-  SSS	9  U R                  XESSU-  U-  SSS	9  S S S 5        [        R                  " SS9 n[        R                  " S5        U R                  XESSU-  U-  SSS	9  [        U[
        S5        S S S 5        g ! , (       d  f       Nl= f! , (       d  f       g = f)N)r  L  r   r3   r   r+  r  g     ȹ@r  r  r  r  gZ?r  g     @@g@J?r[  r  TrZ  r[  r\  r]  s	            ry   testMediumBothTestKSTwoSamples.testMediumBoth  s    Br	!AKK3#e+KK3#aK"r)93" 	 	$aK"r)93! 	 	#aIv{R'79K" 	 	$aFFRK"$46H" 	 	$  CAGJJ~w/MM!	6B;+;=O&  (MM!b(8:L&  ( ! $$D1Q!!(+MM!b(8:L&  (A~q1	 21 !  21rc  c                 "   Su  pUS-  nSU-  U-  S-  S-  n[         R                  " SSU5      U-
  n[         R                  " SSU5      nU R                  XVSS	U-  S
5        U R                  XVSSU-  S5        U R                  XVSS	U-  S5        g )N)'  rd  r  r   r3   r   r+  r  r  g    `@g      <r  g     @g򼉷?r  gimb:r  )ro   r^  r_  lcmr`  rr   rs   s          ry   	testLargeTestKSTwoSamples.testLarge  s    gBr	!AKK3#e+KK3#aK38NOaIus{4GHaFGcM3IJr|   c           	          [         R                  R                  S5      nUR                  SS9nUR                  SS9S-  nU R	                  X#SSSS	S
9  U R	                  X#SSSSS
9  g )N@ i  r  i  r=   r  gC?      <r  r  r  r   r  r  r  r  ro   r  rr   rs   s       ry   test_gh11184TestKSTwoSamples.test_gh11184  sw    ii##F+JJDJ!JJDJ!C'aK)<>T" 	 	$aK)<>T" 	 	$r|   c           	         [         R                  R                  S5      nUR                  SS9nUR                  SS9S-  nU R	                  X#SSSS	S
9  U R	                  X#SSSSS
9  U R	                  X#SSSS	S
9  U R	                  X#SSSS	S
9  g )Nrn  ri  r  i'  r=   r  g 	_r!?gAD5r  r  ro  r  r  gלN#y7r  gvqw?rp  rq  s       ry   test_gh11184_bigger$TestKSTwoSamples.test_gh11184_bigger  s     ii##F+JJEJ"JJEJ"S(aK)<>T" 	 	$aK)<>T" 	 	$aI':<R" 	 	$aF$79O" 	 	$r|   c                 f   [         R                  R                  S5      n[        SSS5       H  nUR	                  US9nUR	                  US-   SS9n[
        R                  " X4SS	9R                  n[
        R                  " X4S
S	9R                  n[        USU-  5        [        USU-  5        M     g )Nrn  r  i.  r  rZ   r<   r  r(  r  r  r  r4   )	r   r  r  r  r  rg   r3  r?  r   )ro   r  rr   vals1vals2r  r  s          ry   test_gh12999TestKSTwoSamples.test_gh12999  s    ii##F+tUD)AJJQJ(EJJQV#J6ENN5g>EEENN5g>EEEeQY/eQY/ *r|   c           
      H   Su  pUS-  nSU-  U-  S-  S-  n[         R                  " SSU5      U-
  n[         R                  " SSU5      nU R                  XVSSU-  S	S
S9  U R                  XVSSU-  SSS9  U R                  XVSSU-  S	SS9  U R                  XVSSU-  S5        U R                  XVSSU-  S5        [        5        nSnUR	                  [
        U5        U R                  XVSSU-  SSS9  U R                  XVSSU-  SSS9  S S S 5        g ! , (       d  f       g = f)N)ri  i*  r  r   r3   r   r+  r  g     @gkHY?r  r  gLɔ.?r  r  r  g.LbG2?r  r   gr?֎?r[  )r   r6  r  r   r   r   )	ro   r^  r_  rj  r`  rr   rs   r   r  s	            ry   testLargeBothTestKSTwoSamples.testLargeBoth  sL    gBr	!AKK3#e+KK3#aK6H" 	 	$aK6H" 	 	$aK6H! 	 	#aIus{4FGaFD3J0BC CAGJJ~w/MM!	53;8J&  (MM!s
4F&  ( !  s   AD
D!c                 R    Sn[         R                  " SS/S/5      n[        X!5        g )Nr  r   r3   r4   )rg   r3  r   ro   rB  r   s      ry   testNamedAttributes$TestKSTwoSamples.testNamedAttributes  s%    ,
nnaVaS)C,r|   c           	          SSK JnJn  U" SSSS5        U" SSSS5        [        R                  " SS9   [        [        USS	SS5        [        [        US
SSS5        S S S 5        g ! , (       d  f       g = f)Nr   )_count_paths_outside_method!_compute_outer_prob_inside_methodr   r  i  r   r  re  iK  r>  )scipy.stats._stats_pyr  r  r   r  r   FloatingPointError)ro   r  r  s      ry   test_some_code_paths%TestKSTwoSamples.test_some_code_paths  sk    	

 	*!Q15#D!Q5[[),.Ia,,.Ia, *))s   )A%%
A3r  r   c                 (   [         R                  " [        [        S9   [        R
                  " U6 n[        UR                  [        R                  5        [        UR                  [        R                  5        S S S 5        g ! , (       d  f       g = fr  )r   rd  r   r   rg   r3  r   r@  r   rn   r?  ro   r  r   s      ry   test_argument_checking'TestKSTwoSamples.test_argument_checking  sS     \\,4IJ..$'C/RVV, KJJ   AB
Bc                    [         R                  R                  S5        Sn[        R                  R                  USSS9nUS-   n[        R                  " X#SSS9  [        R                  " X#S	SS9  [        R                  " X#S
SS9  g)zEnsure gh-12218 is fixed.Na i    r   r   r'  r  r  r  r  r  N)r   r  r  rg   r  r  r3  )ro   r^  rvs1rvs2s       ry   test_gh12218TestKSTwoSamples.test_gh12218'  sm    
 			x }}  bb :axtywGtvGDt{Ir|   c                 >   [         R                  R                  SS9nUR                  SS9S-   nUR                  SS9nSn[        R                  " [
        US9   [        R                  " X#S	S
9n[        UR                  SSS9  S S S 5        g ! , (       d  f       g = f)Ni{fr  iq  r  r<   iq  z(ks_2samp: Exact calculation unsuccessfulr   r  r  r   rr  rG  )
r   r  r  r   rd  r   rg   r3  r   r?  )ro   r  r  r  r  r   s         ry   test_warnings_gh_14019'TestKSTwoSamples.test_warnings_gh_140194  s     ii###2


$s*


$<\\.8..6BCCJJ6 988s   +B
Br&  r'  ))r  皙@r  r   )r  ffffff@r   r`   )r  r  r  r   )r  r  r   r`   c                    [         R                  " S[         R                  S9nUR                  5       nX6S'   [        R
                  " XgUS9nUR                  S:X  d   eUR                  U:X  d   eUR                  U:X  d   eg )NrZ   rI   r7   r  rL  )	r   r   r   rb   rg   r3  r@  r)  r*  )	ro   r&  r  r+  r,  r-  rr   rs   r   s	            ry   r.  #TestKSTwoSamples.test_location_sign@  st     IIb

+FFH!nnQ{;}}###%%555!!X---r|   r   N)r  )#r   r   r   r   r8  r  r6  r=  rA  rH  rN  rU  rX  r   r   r  ra  rf  rk  rr  rw  ru  r{  r~  r  r  r
  r  r  r  rg   r  r3  r.  r   r   r|   ry   r1  r1  -  s   F >4
55	7:
L
= [[2 26 [[2 28	K$ [[$ $ [[	0 	0 [[( (.- [[, ,  [[VrA3i1#rRH%EF- G- [[
J 
J
7 [[Xenn'EF[[I;<

.< G
.r|   r1  c            	         Su  pX * /X/4n[         R                  " SSS5      n[         R                  " SSS5      n[         R                  " [         R                  " SSS5      [         R                  " SSS5      /5      n[         R                  " [         R                  " SSS5      [         R                  " SSS5      /5      n[        R                  " X4SS9u  px[        Xx/X45        [        R                  " UR                  UR                  SS9u  px[        Xx/U5        [        R                  " XVSS9u  px[        Xx/U5        [        5        n	[         R                  " SSS	9   U	R                  [        S
5        [        R                  " SS5      u  pxS S S 5        S S S 5        [        [         R                  " U5      5        [        [         R                  " U5      5        Sn
[        R                  " X4SS9n[        X5        [         R                  " XUU/5      n[         R                  " XfU/5      n[        R                  " XSS9u  px[        [         R                  " U5      U 5        [        [         R                  " U5      U5        [!        UR"                  S5        [        R                  " [         R$                  " USS5      [         R$                  " USS5      SS9u  px[        [         R                  " U5      U 5        [        [         R                  " U5      U5        [!        UR"                  S5        ['        [(        [        R                  X4SS9  [        R                  " X4SSS9u  px[+        USUS-  -
  5        [+        Xp5        [        R                  " X4SSS9u  px[+        XS-  5        [+        Xp5        [         R,                  R/                  S5      n[        R0                  R3                  SSSUS9n[         R4                  US'   [        R0                  R3                  SSSUS9[        R0                  R3                  SSUS9-   n[         R4                  US'   [         R                  " SS9   [7        [        R                  " X5      [         R4                  [         R4                  45        S S S 5        [        [        R                  " UUSS 9S!5        ['        [(        [        R                  UUS"S 9  ['        [(        [        R                  UUS#S 9  [8        R:                  " [        S$S%9   [        R                  " / S&Q/ S'Q5      u  pxS S S 5        [!        [         R                  " U5      U4[         R<                  S45        [         R                  " SS9   [!        [        R                  " / S&Q/ S&Q5      [         R4                  [         R4                  45        [         R                  " S[         R4                  /S(S//5      n[!        [        R                  " U[         R>                  " S)5      5      S[         R4                  /S[         R4                  /45        S S S 5        [         R@                  " S*5      n['        [(        [        R                  URC                  S+5      URC                  S,5      5        S- n[         RD                  " U5      n[         R4                  US S 2S.S/24'   [         R4                  US S 2S0S124'   [8        R:                  " [F        [H        S%9   [        R                  " XVSSS 9u  pS S S 5        [8        R:                  " [F        [H        S%9   [        R                  " XVSSSS29u  pxS S S 5        [+        XpS3S49  [         R                  " SS9   [+        UU" XS5      S3S49  S S S 5        [8        R:                  " [F        [H        S%9   [        R                  " XVSSSS29u  pxS S S 5        [+        XpS3S49  [         R                  " SS9   [+        UU" XS5      S3S49  S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN&= f! , (       d  f       GN%= f! , (       d  f       GNZ= f! , (       d  f       GN-= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       g = f)5N)gu?gȵI?r   r  r  gKX@r   rT   r  r  r  r   r   r  r`  r3   r=  r  r  r  r  r  r  r6   rZ     r  r&  r5  )r)  r  r  r  r   r   )ghm#1?gry̧?r   r   r  r   r  r  r`   r>  r  )r9   r4   r3   r4   r5   c                 L    U S:  a  US:X  d  U S:  a  US:X  a  US-  $ SUS-  -
  $ Nr   r  r  r3   r   r   r  rg  alts      ry   converttest_ttest_rel.<locals>.convert  3    EcVmQ3)3Cq5LAE{r|   r  r  r  r  rj  rr  r  )%r   r6  r   rg   	ttest_relr   r   r   r  r   r   r   r|  r   r?  absr   r  r@  r   r   r   r  r  ra  r  rn   r	   r   rd  r!  rb  r   ri   	vectorizer   r   )trrM  tprr  r  rvs1_2Drvs2_2Dr  rg  r   rB  r   rvs1_3Drvs2_3Dr  rr   rs   ananr  	converters                       ry   test_ttest_relr  S  sK   4EBs8RG
C;;qS!D;;tF3'DhhAc#.D0LMNGhhD4bkk!C6LMNG
//$1
-CAqeRG,
//'))WYYQ
7CAqeC(
//'
3CAqeC( 
	KK:

>#FGr2& ; 
 BHHQKBHHQK )J
//$1
-C( ii12Gii12G
//'
3CAbffQi,bffQi,&!??2;;w15;;w15 !#DA bffQi,bffQi,&! *eootwO??4A6BDAAq2a4x A??4A9EDAA!tA ))


)C

1BSsCAVVAcF	ARc	D	c#	>
?AVVAcF	X	&5??102662662BC 
' eooavFGI*eooq!H*eooq!I 
n,E	Fy)4 
G"&&)Q"&&!-	X	&U__Y	:RVVRVV<LM xx!RVVr1g./U__T288F+;<"&&kArvv;/	1 
' 			"A*eooqyy/@))I&( W%IGAr"uHGAr"uH	(0A	B1H 
C 
(0A	Bw*0fF 
C A&	X	&9RV45A 
' 
(0A	Bw*0iI 
C A&	X	&9RY7eD 
'	&} ;: 
	\ 
'	& 
G	F 
'	&. 
C	B 
C	B 
'	& 
C	B 
'	&s   a&0`?a:?a#8a5$Cb-b+b++b=#c#c ?
a		a
a #
a25
b
b
b(+
b:=
c
c 
c.c                  j   [         R                  SSS/n / SQn[        R                  " XSS9n[        R                  " XSS9n[	        UR
                  UR
                  * SS9  [	        UR                  UR                  SS9  [        R                  " US	S  U S	S  5      n[	        X4SS9  [	        US
SS9  g )Nr   r   r   r   r   r   r   r   r   rF  rG  r   )rV  grh|?-C6?)r   rn   rg   r  r   r@  r?  )rr   rs   r  r  r3s        ry   test_ttest_rel_nan_2nd_argr    s    	c3AA	&	1B	&	1BBLL2<<-e<BIIryyu5 
12!"	&BB' B40r|   c                  J   [         R                  " [        [        S9   [        R
                  " / / 5      n S S S 5        [        W [        R                  R                  5      (       d   e[        U [        R                  [        R                  45        g ! , (       d  f       Nd= fr  )r   rd  r   r   rg   r  r8  	_stats_pyTtestResultr   r   rn   )r  s    ry   #test_ttest_rel_empty_1d_returns_nanr    sh     
(0E	FR( 
Gfeoo99::::"&&"&&)* 
G	Fs   B
B"b, expected_shaper   r6   r   r  r   r   r   r4   r   c                    [         R                  " S5      n[         R                  R                  5        nUR	                  [
        [        5        [        R                  " X SS9nS S S 5        [        W[        R                  R                  5      (       d   e[         R                  " U[         R                  S9n[        UR                  U5        [        UR                   U5        g ! , (       d  f       N= f)Nr4   r   r   r`   rT   r  )r   rG  r"  r   r   r   r   rg   r  r8  r  r  r   rn   r   r@  r?  )rY  expected_shaperM  r   r  expected_values         ry   test_ttest_rel_axis_size_zeror    s     	A		%	%	'3

%'<=B/ 
( feoo99::::WW^?N!!>2/ 
(	's   0C((
C6c                  \   [         R                  " S5      n [         R                  " S5      n[        R                  " XSS9n[	        U[        R
                  R                  5      (       d   e[        UR                  R                  S5        [        UR                  R                  S5        g N)r   r9   r   r6   r9   r   r   rT   r6   r   )r   rG  rg   r  r8  r  r  r   r@  r  r?  )rM  rY  r  s      ry    test_ttest_rel_nonaxis_size_zeror    sw    
 	A
A__Q*Ffeoo99::::!!''0$$f-r|   r  rX  c                 r   [         R                  R                  S5      nSnUR                  USSS9nUR                  USSS9nSS/S[         R                  /[         R                  * S	/S
.n[
        R                  " X4U S9nUR                  SS9n[        XuU    5        [        UR                  US-
  5        g )Nl   C67l:  rZ   r=   r3   r'  gZ?Ygi{a?g8 gC?r(  r  r*  r+  r   )r   r  r  r  r!  rg   r  r  r   r   r-  )r  r  r  rr   rs   r  r   r  s           ry   test_ttest_rel_ci_1dr    s     ))

 3
4C
A

s!
,A

q
*A ,->?)2662VVG013C //!K
8C		 	 $	 	7BBK()1r|   ztest_fun, argsrZ   c                     U " U6 nSn[         R                  " [        US9   UR                  SS9  S S S 5        g ! , (       d  f       g = f)Nr1  r   rZ   r+  )r   r   r   r  )test_funrA  r   r  s       ry   test_ttest_ci_ivr    s=    
 D/CDG	z	14 
2	1	1s	   :
Ar  c                V   ^ Tc  [        X5      OTmSU4S jjnU" X5      U" X5      -   $ )Nc                    > TR                  U 5      n TR                  XS9nTR                  XSS9nU R                  U   nX#U4$ )NrT   r   r  )re   rj   r   r  )rr   rU   mur   nobsrp   s        ry   _stats_desc_stats.<locals>._stats+  sI    JJqMWWQW"ffQaf0wwt}}r|   r:  )r(   )r  r  rU   rp   r  s      ` ry   _desc_statsr  (  s/    $&J	 BB "fR...r|   c                 
   U R                  S5      nU R                  S5      nU R                  X* /5      nU R                  X"/5      nU R                  SSS5      nU R                  SSS5      nU R                  XV/5      nU R                  Xe/5      n[        R                  " XVSS9n	U	u  p[        X5        [        X5        [        R                  " [        XV5      6 n	U	u  p[        X5        [        X5        [        R                  " UR                  UR                  SS9n	[        U	R                  U5        [        U	R                  U5        [        R                  " [        UR                  UR                  5      6 n	[        U	R                  U5        [        U	R                  U5        [        R                  " XxSS9n	[        U	R                  U5        [        U	R                  U5        [        R                  " [        XxSS96 n	[        U	R                  U5        [        U	R                  U5        S	n[        R                  " [        US
9   [        R                  " XVSS9  S S S 5        [        UR                  UR                  5      n[        R                  " [        US
9   [        R                  " USS06  S S S 5        [        R                  " XVSS9u  p[        USUS-  -
  5        [        X5        [        R                  " XVSS9u  p[        XS-  5        [        X5        [        R                  " UR                  UR                  SSS9n[        UR                  UR                  5      n[        R                  " USS06n[        UR                  UR                  5        [        UR                  UR                  5        [        R                  " UR                  UR                  SSS9n[        UR                  UR                  5      n[        R                  " USS06n[        UR                  UR                  5        [        UR                  UR                  5        U R                  U R                  5      nU R                  U R!                  UR"                  S   5      S:H  UU5      n[        R                  " XVSS9n	[%        U	R                  U5        [%        U	R                  U5        [        R                  " [        XV5      6 n	[%        U	R                  U5        [%        U	R                  U5        g ! , (       d  f       GN= f! , (       d  f       GN= f)N	ru?g8Mѱ?r6   i   r  r   r   rT   r  r   r  r  r  r  r3   r  r  )re   r  r6  rg   	ttest_indr1   ttest_ind_from_statsr  r   r@  r?  r   r   r   rn   rT  r   r  r2   )rp   r  rM  tr_2Dpr_2Dr  r  r  r  r   r  rg  r  rA  r  r  NaNs                    ry   test_ttest_indr  5  s    
&	'B	'	(BHHb#YEHHbXE;;q#s#D;;q#s#Dhh|$Ghh|$G
//$1
-CDAAA

$
$k$&=
>CDAAA
//'))WYYQ
7CCMM5)CJJ&

$
$k'))WYY&G
HCCMM5)CJJ&
//'
3CCMM5)CJJ&

$
$k'&K
LCCMM5)CJJ& IG	z	1': 
2 wyy')),D	z	1""D@@ 
2 ??46:DAAqBqDz"A??49=DAA!tA ??799giiaVLDwyy')),D%%t@@DDNNDNN3DKK-??799giiaVLDwyy')),D%%t@@DDNNDNN3DKK- **RVV
C88BIIdjjm,13=D
//$1
-CCMM3'CJJ$

$
$k$&=
>CCMM3'CJJ$M 
2	1 
2	1s   U $U 
U
U!c            	      "   [         R                  " SSS5      n [         R                  " SSS5      n[         R                  " X/5      n[         R                  " X/5      n[         R                  " X"U/5      n[         R                  " X3U/5      n[         R                  R                  S5      n[        R                  R                  SSSUS9n[         R                  US	'   [        R                  R                  SSS	US9n[         R                  " S
S9   [        [        R                  " Xx5      [         R                  [         R                  45        S S S 5        [        [        R                  " XxSS9S5        [        [        [        R                  XxSS9  [        [        [        R                  XxSS9  [         R"                  " [$        SS9   [        R                  " / SQ/ SQ5      u  pS S S 5        ['        [         R(                  " W	5      W
4[         R*                  S45        [         R                  " S
S9   ['        [        R                  " / SQ/ SQ5      [         R                  [         R                  45        [         R                  " S[         R                  /SS//5      n['        [        R                  " U[         R,                  " S5      5      S[         R                  /S[         R                  /45        S S S 5        [         R                  US S 2S S 2SS24'   [         R                  US S 2S S 2SS24'   S n[         R.                  " U5      n[        R                  " XESSS9u  p[        R                  " XESSSS9u  p[1        XSS 9  [1        X" XS5      SS 9  [        R                  " XESSS!S9u  p[1        XSS 9  [1        X" XS!5      SS 9  g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f)"Nr6   r  r  r   r  rZ   r  r  r&  r  r  r   r   )guͷ?g*,?r   r   r  r   r  r  r   r`   r>  r  r7   r\   c                 L    U S:  a  US:X  d  U S:  a  US:X  a  US-  $ SUS-  -
  $ r  r   r  s      ry   r  *test_ttest_ind_nan_policy.<locals>.convert  r  r|   r  r  )rU   r   r  rr  r  r  )r   r6  r   r?  r  r  rg   ra  r  rn   r  r	   r  r   r   r   r   rd  r   r   r  r!  rb  r  r   )r  r  r  r  r  r  r  rr   rs   r  rg  r  r  r  r  rM  s                   ry   test_ttest_ind_nan_policyr    s   ;;q#s#D;;q#s#Dhh|$Ghh|$Gii734Gii734G ))


)C

1BSsCAVVAcF

1BSsCA	X	&5??102662662BC 
' eooavFHJ*eooqH*eooqI 
n,E	Fy)4 
G"&&)Q"&&!-	X	&U__Y	:RVVRVV<LM xx!RVVr1g./U__T288F+;<"&&kArvv;/	1 
' 66GAq"R%K&&GAq!B$J W%I__WA&IFB??7!'-/DAA&Ay0u=??7!'02DAA&Ay3%@S 
'	& 
G	F 
'	&s%   ?OO-<CO?
O*-
O<?
Pc                  z   [        5        n [        R                  " SS9   U R                  [        S5        [
        R                  " SS5      u  pS S S 5        S S S 5        [        R                  " W5      (       d   e[        R                  " W5      (       d   eg ! , (       d  f       NQ= f! , (       d  f       NZ= f)Nr  r  r  r   r   )r   r   r  r   r   rg   r  r|  )r   r  rg  s      ry   test_ttest_ind_scalarr    sv    		R[[%B

>#FGr2& &C	 88A;;;88A;;;	 &C%B		s"   B,0BB,
B)	%B,,
B:z&ignore:Arguments...:DeprecationWarningc                   h   \ rS rSrSr\R                  R                  S5        \R                  " \R                  " S\-  S-  5      \R                  R                  S\-  S-  5      45      r
\R                  " \R                  " \S-  5      S-   \R                  R                  \S-  5      45      r\R                  " S5      r\R                  " S5      S-   rSS	/rSS/r\R                  R                  S5        \R"                  R%                  S
SSS9R'                  SS
5      R(                  r\R"                  R%                  SSSS9rSS/rSS/r/ SQr\
\SS0\4\
R(                  \R(                  SS0\4\
SSS24   \SSS24   SS0\S   4\
SSS24   R5                  5       \SSS24   R5                  5       SS0\S   4\
\SSS.\4\
\\R                  R7                  S5      SS.\4\\SS0S4\\SSS.\4\\0 S4\
\\R                  R9                  S5      SS.\4/
r\R>                  R@                  \R>                  RC                  S\5      S 5       5       r"S r#S r$S r%S r&\R>                  RO                  5       S  5       r(S! r)S" r*S# r+\R>                  RC                  S$/ S%Q5      \R>                  RC                  S&S'S(/5      S) 5       5       r,\R>                  RC                  S$/ S%Q5      \R>                  RC                  S&S'S(/5      S* 5       5       r-S+ r.\/" SS,S-9S. 5       r0S/r1g)0Test_ttest_ind_permutationsi  r  r   r4   r5   r  rZ   r   r3   r6   r&  r'  r9   g'^P?gCq?g$R?)g=B?g?goŜ?gp?g'^?rU   N)r  rU   	equal_varTr`   )rU   r  rX  za,b,update,p_dc                     S SS.nS SSSS.nUR                  U5        UR                  U5        [        R                  " X40 UD6u  px[        R                  " X40 UD6u  p[        XyS5        [        X5        g )NFrU   r  r  r   )rU   r  permutationsr  r6   )updaterg   r  r   )ro   rM  rY  r  p_d	options_a	options_pstat_ar  stat_pr?  s              ry   test_ttest_ind_permutations7Test_ttest_ind_permutations.test_ttest_ind_permutations  sw     "6	!%)1>	  OOA6I6	;;!&!4!&.r|   c                    [         R                  R                  S5      nSnUR                  SUS5      nUR                  SUS5      nSSS.nUR	                  SS9  [
        R                  " X440 UD6n[
        R                  " XC40 UD6nUR	                  S	S9  [
        R                  " X440 UD6n[
        R                  " XC40 UD6n	UR	                  S
S9  [
        R                  " X440 UD6n
[
        R                  " XC40 UD6n[        UR                  UR                  5        [        UR                  U
R                  5        [        UR                  UR                  * 5        [        UR                  U	R                  * 5        [        U
R                  UR                  * 5        [        U
R                  UR                  5        [        UR                  U	R                  5        [        UR                  UR                  5        UR                  S:*  n[        UR                  U   U	R                  U   -   U
R                  U   5        [        UR                  U)    UR                  U)    -   U
R                  U)    5        g )Nr   r4   r3   r   r  )rU   r  r  r  r  r  r<   
r   r  r  r  r  rg   r  r   r@  r?  )ro   r  NrM  rY  r  res_g_abres_g_bares_l_abres_l_bares_2_abres_2_bar  s                ry    test_ttest_ind_exact_alternative<Test_ttest_ind_permutations.test_ttest_ind_exact_alternative  s   ii##A&HHQ1HHQ15	Y/??1595??1595V,??1595??1595[1??1595??1595 	X''););<X''););< 	X''(*<*<)<=X''(*<*<)<=X''(*<*<)<= 	X__hoo6 	X__hoo6X__hoo6#%X__T*X__T-BB__T*	,X__dU+hoote.DD__dU+	-r|   c                    [         R                  R                  S5      nSnUR                  U5      nUR                  U5      n[        R
                  " X45      n[        R
                  " X4SS9n[        R
                  " X4SS9n[        R
                  " X4[         R                  S9nUR                  UR                  :w  d   eUR                  UR                  :X  d   eUR                  UR                  :X  d   eg )Nr   r4   r  r  )r   r  r  r  rg   r  r!  r?  )	ro   r  r  rM  rY  r  r  r  r  s	            ry   test_ttest_ind_exact_selection:Test_ttest_ind_permutations.test_ttest_ind_exact_selection/  s    ii##A&HHQKHHQKq$q$7q!4q"&&9{{dkk))){{dkk))){{dkk)))r|   c                 v   [         R                  R                  S5      nUR                  S5      nUR                  S5      n[         R                  " X#45      n[        U5      [        U5      peSn[        XGUS5      u  n  n	[        [        U5      5      n
U
[        XV-   U5      :X  d   e[        U5      U
:X  d   eg )Nr   r4   r5   r_  T)	r   r  r  r  r  r  r   rm   r   )ro   r  rM  rY  r  nanbr  t_statr  n_uniques              ry   !test_ttest_ind_exact_distribution=Test_ttest_ind_permutations.test_ttest_ind_exact_distribution=  s     ii##A&HHQKHHQK~~qf%QQB24r3791 s6{#5"----6{h&&&r|   c                    [         R                  R                  S5      nSnUR                  SSU5      nUR                  SU5      nSSSS.nUR	                  SS	9  [
        R                  " X440 UD6n[
        R                  " XC40 UD6nUR	                  S
S	9  [
        R                  " X440 UD6n[
        R                  " XC40 UD6n	[        UR                  UR                  5        [        UR                  UR                  * 5        [        UR                  U	R                  * 5        [        UR                  UR                  -   SSUS   S-   -  -   5        [        UR                  U	R                  -   SSUS   S-   -  -   5        g )Nr   r  r3   r4   r`   r  )rU   r  r  r  r  r  r   r  r  )
ro   r  r  rM  rY  r  r  r  r  r  s
             ry   #test_ttest_ind_randperm_alternative?Test_ttest_ind_permutations.test_ttest_ind_randperm_alternativeP  s`   ii##A&HHQ1HHQNqI	Y/??1595??1595V,??1595??1595 	X''););< 	X''(*<*<)<=X''(*<*<)<= 	X__x6In59::	<X__x6In59::	<r|   c                 L   [         R                  R                  S5      nSnUR                  US5      nUR                  US5      nSSS.nUR	                  SS9  [
        R                  " X440 UD6nUR	                  SS9  [
        R                  " X440 UD6nUR	                  S	S9  [
        R                  " X440 UD6n[        UR                  UR                  -   S
S
US   S
-   -  -   5        UR                  S:*  n	[        SUR                  U	   -  UR                  U	   SS9  [        SS
UR                  U	)    -
  -  UR                  U	)    SS9  [        SUR                  U	)    -  UR                  U	)    SS9  [        SS
UR                  U	   -
  -  UR                  U	   SS9  g )Nr   r  r5   r  r  r  r  r  r  r  r   r  r<   r3   rD  rG  )
r   r  r  r  r  rg   r  r   r?  r   )
ro   r  r  rM  rY  r  r  r  r  r  s
             ry   $test_ttest_ind_randperm_alternative2@Test_ttest_ind_permutations.test_ttest_ind_randperm_alternative2m  s   ii##A&HHQNHHQN%*A>	Y/??1595V,??1595[1??1595 	X__x6In59::	<
 #%HOOD11 -D	:Qxu556 .T	;HOOTE22 .T	;Qxt445 -D	:r|   c                    [         R                  R                  S5      nSnUR                  US5      nUR                  US5      n[         R                  US'   [         R                  US'   [         R                  US'   [         R                  US'   SSS.nUR                  S	S
9  [        [        SS9   [        R                  " X440 UD6nS S S 5        [        5        nUR                  [        S5        UR                  SS
9  [        R                  " X440 UD6n[         R                  " U5      R                  SS9[         R                  " U5      R                  SS9-  n[        R                  " US S 2U) 4   US S 2U) 4   40 UD6n	[        UR                   U   [         R                  5        [        UR"                  U   [         R                  5        [%        UR                   U)    U	R                   5        [%        UR"                  U)    U	R"                  5        [        R                  " UR'                  5       UR'                  5       40 UD6n[         R                  " UR                   5      (       d   e[         R                  " UR"                  5      (       d   e S S S 5        g ! , (       d  f       GN= f! , (       d  f       g = f)Nr   r  r6   r6   r   )r9   r3   )r:   r4   r  r	  r   r   r   r   r   r  rT   )r   r  r  r  rn   r  r   r   rg   r  r   r   r   r|  r  r   r?  r@  r   r  )
ro   r  r  rM  rY  r  r   r   r  r  s
             ry   $test_ttest_ind_permutation_nanpolicy@Test_ttest_ind_permutations.test_ttest_ind_permutation_nanpolicy  s   ii##A&HHQNHHQN&&$&&$&&$&&$%)1=	 	G,:-LM//!4)4C N  CJJ~'784//!4)4C88A;???*RXXa[__!_-DDD??1QX;!dU(IyIDD)2662t,bff5CJJu-t{{;CMM4%0$..A //!'')QWWYD)DC88CJJ''''88CMM****# ! 	 NM ! s   4J,GJ>,
J;>
Kc           	         [        [        SS9   [        R                  " U R                  U R
                  SS9  S S S 5        [        [        SS9   [        R                  " U R                  U R
                  SS9  S S S 5        [        [        SS9   [        R                  " U R                  U R                  SSSS	9  S S S 5        g ! , (       d  f       N= f! , (       d  f       Nc= f! , (       d  f       g = f)
NzPermutations must ber   ra   r 	  r=   z'hello' cannot be usedr   hello)r  r  rU   )r   r   rg   r  r  b2rM  rY  r  s    ry   'test_ttest_ind_permutation_check_inputsCTest_ttest_ind_permutations.test_ttest_ind_permutation_check_inputs  s    :-CDOODGGTWW2> E:-CDOODGGTWW3? E:-EFOODFFDFF)0q: GF	 EDDDFFs#   +C+C-C)
C
C&)
C7c                     Sn[         R                  R                  US5      n[         R                  R                  US5      n[        R                  " X#SS9R
                  n[        SU;  5        SU;  d   eg )NrZ   r  r   r 	  r   )r   r  r  rg   r  r?  print)ro   r  rM  rY  p_valuess        ry   )test_ttest_ind_permutation_check_p_valuesETest_ttest_ind_permutations.test_ttest_ind_permutation_check_p_values  s`    IINN1b!IINN1b!??1a8??c!"("""r|   r  r  r  )r\   )r3   r\   c                    [         R                  R                  S5      nUR                  US9nUR                  SS9n[        SS9n[         R                  R                  S5      n[        R
                  " SSU0UD6n[        R                  " XESXS	9nS
 n	[         R                  R                  S5      n[        R                  " XE4U	4SUUS.UD6n
[        UR                  U
R                  5        [        UR                  U
R                  5        [        R                  " XESUS9n
[        UR                  U
R                  5        [        UR                  U
R                  SS9  g )N   Nvf_aB r  r]     rn     N\Sju	 r  r`   rU   r  r  c                 @    [         R                  " XUS9R                  $ NrT   rg   r  r@  rr   rs   rU   s      ry   r@  FTest_ttest_ind_permutations.test_permutation_method.<locals>.statistic      %//!T*J*T*T#Tr|   )rU   r  r  r  r  r  r   )r   r  r  r  rg   r  r  permutation_testr   r@  r?  r   )ro   r  r  r  rr   rs   rB  r  r   r@  r  s              ry   test_permutation_method3Test_ttest_ind_permutations.test_permutation_method  s*    ii##$45JJEJ"JJBJ#& ii##O4((;S;F;ooaT 	Uyy$$_5$$aVY HRS1<H@FH 	S]]CMM2SZZ, ooaES]]CMM2

CJJT:r|   c                    [         R                  R                  S5      nUR                  US9nUR                  SS9n[        SS9nS n[         R                  R                  S5      nUR                  UR                  /n[
        R                  " XE44XSUS	.UD6n	[         R                  R                  S5      nUR                  UR                  /n[
        R                  " SS
U0UD6n
[
        R                  " XESXS9n[        UR                  U	R                  5        [        UR                  U	R                  5        [
        R                  " SSS0UD6n
[
        R                  " XESXS9n[        UR                  U	R                  5        [        UR                  U	R                  5        [
        R                  " XESUS9n	[        UR                  U	R                  5        [        UR                  U	R                  SS9  g )Nr 	  r  r]   r!	  r"	  c                 @    [         R                  " XUS9R                  $ r&	  r'	  r(	  s      ry   r@  FTest_ttest_ind_permutations.test_monte_carlo_method.<locals>.statistic  r*	  r|   r#	  r`   )r  r@  rU   r  r  r$	  r  r  r  r  r   )r   r  r  r  r  rg   monte_carlo_testr  r  r   r@  r?  r   )ro   r  r  r  rr   rs   rB  r@  r  r  r  r   s               ry   test_monte_carlo_method3Test_ttest_ind_permutations.test_monte_carlo_method  s    ii##$45JJEJ"JJBJ#& 	Uii##O4""C$7$78$$aV HPR1<H@FH ii##O4""C$7$78'':C:6:ooaTS]]CMM2SZZ, ''FOFvFooaTS]]CMM2SZZ, ooaES]]CMM2

CJJT:r|   c                     Sn[         R                  " [        US9   [        R                  " / SQ/ SQSS9  S S S 5        g ! , (       d  f       g = f)NzC`method` must be an instance of `PermutationMethod`, an instance...r   r  r.  	migratoryr  )r   r   r   rg   r  rA  s     ry    test_resampling_input_validation<Test_ttest_ind_permutations.test_resampling_input_validation  s1    W]]:W5OOIyE 655s   A  
AUses NumPy for pvalue, CIcpu_onlyr   c                    UR                  U R                  5      UR                  U R                  5      p2Sn[        U5      (       a  [        R
                  " X#SS9  O7[        R                  " [        US9   [        R
                  " X#SS9  S S S 5        Sn[        R                  R                  S5      n[        R                  " US9n[        U5      (       a  [        R
                  " X#US9  g [        R                  " [        US9   [        R
                  " X#US9  S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)	Nz;Use of `permutations` is compatible only with NumPy arrays.rZ   r 	  r   z?Use of resampling methods is compatible only with NumPy arrays.l   /gGy r  r  )re   r  r	  r+   rg   r  r   r   r  r   r  r  r  )ro   rp   r  r	  r  r  r  s          ry   %test_permutation_not_implement_for_xpATest_ttest_ind_permutations.test_permutation_not_implement_for_xp	  s    DGG$bjj&9BOB<<OOB42'BR8 C Tii##$45((S1B<<OOB622'Bv6 CB CB CBs   7D(	D9(
D69
Er   )2r   r   r   r   r  r   r  r  r  r   rM  rY  r  r	  r  b3rg   ra  r  ri   r   r  r  r  p_d_genp_d_bigr   r  r  paramsr   r   thread_unsafer
  r  r  r	  r	  r	  r  r	  r	  r	  r	  r,	  r2	  r6	  r   r<	  r   r   r|   ry   r  r    sh   
A IINN1
		299QqS!V$bii&6&6qsAv&>?@A
		299QT?S("))*:*:1a4*@ABA 
2B	2	B QB
QB IINN1::>>ar"  $$+GCOAA 	::>>ar>4D<
 C~&G+G 
A{C 	
accFA;$	
1a4!AqD'FD>3q62	
1a4	1QT7>>+fd^SVD	
A1-s3	
A		 5 5a 8!DcJ	R+t$f-	tb!4g>	RS	
A		 5 5a 8!DgN
F [[[[-v6
/ 7 
/(-T*'&<: [[: :B"+H:# [[],LM[[Wug&67; 8 N;4 [[],LM[[Wug&67; 8 N;BF
 t,GH7 I7r|   r  c                      \ rS rSr\R
                  R                  5       \R
                  R                  SSSS.SS00 // SQS	9\R
                  R                  S
SS/S
S/S	9S 5       5       5       r\R
                  R                  SSSS.SS00 // SQS	9\R
                  R                  SSS/5      S 5       5       r	Sr
g)Test_ttest_ind_commoni  kwdsr+  r   r	  trimr5  )r  rF	  basic)idsr  TFunequal_varc           	      Z   [         R                  R                  S5        [         R                  R                  SSSSSS5      n[         R                  R                  SSSSS5      n[        R
                  " X44S	S
0UD6nSu  pgnX6S S 2US S 2SS S 24   n	US S 2SS S 2US S 24   n
[        R
                  " X4S	S0UD6n[        UR                  US S 2XxS S 24   UR                  5        [        UR                  US S 2XxS S 24   UR                  5        [         R                  " [         R                  " US5      S
S5      n[         R                  " [         R                  " US5      S
S5      nUR                  S S n[         R                  " U5      n[         R                  " U5      n[        S U 5       6  HE  nUU   nUU   n[        R
                  " UU4S	S0UD6nUR                  UU'   UR                  UU'   MG     [        XR                  5        [        UUR                  5        g )Nr   r6   r5   r8   r   r7   r9   r3   rU   ra   )r3   r4   r   rV  r   r   r   r   r3   r   r`   r6   r   r5   r   r   r   c              3   8   #    U  H  n[        U5      v   M     g 7fr!  r  .0r  s     ry   	<genexpr>=Test_ttest_ind_common.test_ttest_many_dims.<locals>.<genexpr>A  s      95aq5   )r   r  r  r  rg   r  r   r@  r?  r@  tiler  rb  r   r   )ro   rE	  r  rM  rY  r   r  r  r  r  r	  r  rr   rs   r  
statisticspvaluesindicesxiyir  s                        ry   test_ttest_many_dims*Test_ttest_ind_common.test_ttest_many_dims"  s    			qIINN1aAq!,IINN1aAq)ooa44t4 a!Q1a q!Q1}r7B7$7S]]1aq=1^^	%SZZ1aA.[[	" KK#56B?KK#56B?XXe_
((5/ 95 9:G7B7B??2r;;d;D"&..Jw#{{GG ; 	
MM2,r|   )rF	  r  rG	  rU   r`   c                 R   [         R                  R                  S5      nUR                  SSS9R	                  S5      nUR                  SSS9R	                  S5      n[         R
                  US   S   S'   [         R
                  US   S   S	'   [         R                  " [         R                  " XE-   US
95      n[        5        n[         R                  " SS9   UR                  [        S5        UR                  [        S5        [        R                  " XE4SU0UD6nS S S 5        S S S 5        [         R                  " WR                  5      n	[        X5        [         R                  " UR                   5      n
[        X5        g ! , (       d  f       Nm= f! , (       d  f       Nv= f)Nl   AoI;rZ   )r6   r4   rZ   r  r  r   r3   r4   r7   rT   r  r  z'invalid value encountered in less_equalr  rU   )r   r  r  integersr  rn   r|  rg  r   r  r   r   rg   r  r?  r	   r@  )ro   rE	  rU   r  rM  rY  r  r   r   p_nansstatistic_nanss              ry   test_nans_on_axis'Test_ttest_ind_common.test_nans_on_axisK  s8    ii##$9:LL*L-44W=LL*L-44W=VV!Q
VV!Q
 88BFF15t45  CX)FJJ~@BJJ~'@A//!:T:T:C	 *G 
 #**%6,#--0>4 *G)F  s%   FAF F
F	F
F&r   N)r   r   r   r   r   r   rw  r
  rZ	  r`	  r   r   r|   ry   rD	  rD	    s     [[[[VsA&N'-rlB&8!B  D [[[4-"-}!=  ?!-?D !-F [[VsA&N'-rlB&8!B  D [[Vb!W-5 .D5r|   rD	  c            	       x   \ rS rSr/ SQ/ SQSSS// SQ/ SQSS	S// SQ/ SQS
SS// SQ/ SQSSS// SQ/ SQSSS//r\R                  R                  S\5      S 5       rS r	S r
\R                  R                  SS5      S 5       rS r\" SSS9S  5       r\R                  R                  S!/ S"Q5      S# 5       rS$rg%)&Test_ttest_trimii  r  r  r  g@g9(?ger5  )rL  g33333`@r\   g33333^@g(\P@rG   gfffffڇ@gBM)u?g]@gyd?g	s5v@g{Gz?r  r  r  r   ffffff?r   r
  r
  rO  rf	  rf	  rB   g@r  r?   r<   r
  g333333@r  r  g@r  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                 \    [         R                  " XUSS9u  pg[        XdSS9  [        XsSS9  g)a8  
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rF	  r  rF  rG  Nrg   r  r   )ro   rM  rY  rM  r  rF	  r@  r?  s           ry   test_ttest_compare_r$Test_ttest_trim.test_ttest_compare_r}  s.    @ "OOAtuM		E2/r|   c                 p    / SQn/ SQn[         R                  " XSSS9u  p4[        USSS9  [        US	SS9  g )
N)r\   rX   r  r  r  ,   r\   rX   r  r  r  ro	  )rc   r,  rX   r\   r     r  rc   r,  rX   r\   r  rp	  r  g
ףp=
?Frj	  gRbv?r  rG  gOi?rk	  ro   rM  rY  r@  r?  s        ry   test_compare_SAS Test_ttest_trim.test_compare_SAS  s=     =D "OOAseL	t4	8$7r|   c                 n    / SQn/ SQn[         R                  " XSS9u  p4[        USSS9  [        USSS9  g	)
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
re	  rg	  r5  rF	  gR?r  rG  g^Nrk	  rq	  s        ry   test_equal_varTest_ttest_trim.test_equal_var  s<    & DC!OOAr:	 3%@	#5EBr|   z	alt,pr,tr))r  gjΜ>5?rh	  )r  gn4aƂW?rh	  c                 n    / SQn/ SQn[         R                  " XESSUS9u  pg[        XrSS9  [        XcSS9  g)	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')
re	  rg	  r5  F)rF	  r  r  r  rG  Nrk	  )ro   r  rM  r  rM  rY  r@  r?  s           ry   test_alternatives!Test_ttest_trim.test_alternatives  s=     DC!OOArU8;=	/	E2r|   c           
         Sn[        [        US9   Sn[        R                  " [        US9   [
        R                  " SS/SS/SSS9  S S S 5        S S S 5        [        [        US9   S	n[        R                  " [        US9   [
        R                  " SS/SS/SSSS
9  S S S 5        S S S 5        g ! , (       d  f       Nn= f! , (       d  f       Nw= f! , (       d  f       N9= f! , (       d  f       g = f)Nz>Use of `permutations` is incompatible with with use of `trim`.r   z5Arguments {'permutations'} are deprecated, whether...r   r3   r4   r5  )rF	  r  z9Arguments {.*'random_state'.*} are deprecated, whether...)rF	  r  r  )r   r  r   rd  DeprecationWarningrg   r  )ro   r   r  s      ry   test_errors_unsupported'Test_ttest_trim.test_errors_unsupported  s    P.e<MG0@AARaH A =
 .e<QG0@AARa-.0 A =< A@ =< A@ =<sF   CB1	C'C$C C$1
B?	;C
C
C!	C$$
C2Tr8	  r9	  c                 ,   SnUR                  S5      UR                  S5      S-   pC[        U5      (       a  [        R                  " X4SS9  g [        R
                  " [        US9   [        R                  " X4SS9  S S S 5        g ! , (       d  f       g = f)Nz3Use of `trim` is compatible only with NumPy arrays.rZ   r   rL  ru	  r   )r   r+   rg   r  r   r   r  )ro   rp   r  rM  rY  s        ry   r<	  5Test_ttest_trim.test_permutation_not_implement_for_xp  sc    Gyy}biimAo1B<<OOAs+2'B3/ CBBs   &B
BrF	  )gɿr<   r   c                     Sn[        [        US9   [        R                  " SS/SS/US9  S S S 5        g ! , (       d  f       g = f)Nz/Trimming percentage should be 0 <= `trim` < .5.r   r   r3   ru	  )r   r   rg   r  )ro   rF	  r   s      ry   test_trim_bounds_error&Test_ttest_trim.test_trim_bounds_error  s5    A:U3OOQFQF6 433s	   5
Ar   N)r   r   r   r   rA	  r   r   r
  rl	  rr	  rv	  ry	  r}	  r   r<	  r	  r   r   r|   ry   rc	  rc	  i  s   	O%8:M			1?	/	5	1?	/	6	@	@	,b	2
H
  "34Db	JKF& [[-v6!0 7!0F8C4 [[[N3	3 0 t,GH0 I0 [[V\27 37r|   rc	  c                   <   \ rS rSr\R
                  " SS9r/ SQ\S'   SSS\R                  * S	/\S
'   SSSS\R                  /\S'   / SQ\S'   SSS\R                  * S/\S'   SSSS\R                  /\S'   SSS\R                  \R                  /\S'   SSS\R                  \R                  /\S'   SSS\R                  \R                  /\S'   S S!S"\R                  \R                  /\S#'   S S!S$\R                  \R                  /\S%'   S S!S&\R                  \R                  /\S''   \	R                  R                  S(/ S)Q5      \	R                  R                  S*S+S,/5      \	R                  R                  S-S.S//5      \" S0S1S29S3 5       5       5       5       rS4rg5)6Test_ttest_CIi  )r4   r3   r3   r6   )r  )gͿe13@gv7?gę"Ͽg8 {M(?r  r	  r	  gv7?gx_?r  g
/?gD .ɿ)r3   r   r   )reϿ-</&@g?JJ?gbտg3Պ?)r   r   r   r	  r	  g?JJ?gF?)r   r   r   g{?gads2ѿ)r3   r   r   gs"%οr,  gW"?)r   r   r   gW"?r   r   r   g:T'?)r3   r   r   g:пrX   g0:5?r  g0:5?r  g be?)r3   r   r   r  rX  r  FTrF	  r   r5  r#  r$  r%  c                    U(       a  U(       a  [         R                  " S5        U(       a&  [        U5      (       d  [         R                  " S5        [        R
                  R                  S5      nUR                  UR                  S5      5      nUR                  UR                  S5      5      n[        R                  " XgUX#S9nSSS	S
.n	U R                  X   [        U5      [        [        R                  " U5      5      4   n
U
u  ppnSn[        UR                  UR                  U5      US9  [        UR                  UR                  U5      US9  [        UR                   UR                  U5      US9  U(       dZ  UR#                  S5      n[        UR$                  UR                  U5      US9  [        UR&                  UR                  U5      US9  g g )Nz3Discrepancy in `main`; needs further investigation.z*`trim` is only compatible with NumPy inputl   'Nk' r[   r]   )r  r  rF	  r   r   r3   rX  r  r  rN  )r   xfailr+   r  r   r  r  re   rg   r  r   r!  ceilr1   r@  r-  r?  r  r  r  )ro   r  r  rF	  rp   r  rr   rs   r   r  r  r@  r-  r?  r  r  r  r  s                     ry   test_confidence_interval&Test_ttest_CI.test_confidence_interval)  s_   
 LLNOKKDEii##$78JJszz"~&JJszz"~&ooa(1> &'a@ff\.IBGGDM@RRS+.(	vDrzz)'<4H

2T:

BJJv$6TB((-BBFFBJJsO$?BGGRZZ%5DA r|   r   N)r   r   r   r   r   rG  r   r!  rn   r   r   r
  r   r	  r   r   r|   ry   r	  r	    s   < 	|$ANAgJibffWlKAgJiM266JAgJLAgJibffWlKAgJiL"&&IAgJ%r+=rvvrvvNAgJ%r+=rvvrvvNAgJ%r+=rvvrvvNAgJ%r+=rvvrvvNAgJ%r+=rvvrvvNAgJ%r+=rvvrvvNAgJ[[],LM[[[5$-8[[VaX.k*JKB L / 9 NBr|   r	  c            	      *   [         R                  R                  S5        [         R                  R                  SSSSSS5      n [         R                  R                  SSSSS5      n[	        X4S	S
9n[         R
                  " U S5      n [         R
                  " US   S5      n[        S UR                   5       6  HT  nUu  pEpgpXpR                  S	   :  a  XXVXxU	4   X$XVXxU	4   :X  d   eM1  XXVXpR                  S	   -
  X4   X$XVXxU	4   :X  a  MT   e   g )Nr   r6   r5   r4   r   r7   r9   r3   ra   rT   rK	  )N.rL	  c              3   8   #    U  H  n[        U5      v   M     g 7fr!  rN	  rO	  s     ry   rQ	  .test__broadcast_concatenate.<locals>.<genexpr>T  s     5W588WrS	  )r   r  r  r  r   rT	  r   r  )
rM  rY  rs  indexr  r  r  r8  r  r  s
             ry   test__broadcast_concatenater	  J  s    IINN1
		q!Q1a(A
		q!Q1%AvB/A
%&A
)01A5QWW56 aAwwr{?aA%&!qQ1,<*====a''"+oq34Q1:J8KKKK 7r|   c                   j   \ rS rSr\" \R                  5      S 5       r\R                  R                  S5      \R                  R                  S5      S 5       5       rS rS r\R                  R                  S\R                   " S	5      S
4\R                   " S5      S4/5      S 5       rS rS rSrg)TestTTestIndi\  c                 @   UR                  / SQ5      nUR                  / SQ5      nUR                  S5      nUR                  S5      n[        R                  " X#SS9u  pg[        Xe5        [        Xt5        [        R                  " [        X#5      SS06u  pg[        Xe5        [        Xt5        UR                  / SQ5      nUR                  S	5      nUR                  S
5      n[        R                  " X#SS9u  pg[        Xe5        [        Xt5        [        R                  " [        X#5      SS06u  pg[        Xe5        [        Xt5        UR                  S5      nUR                  S5      nUR                  S5      nUR                  S5      n	UR                  XU* /5      n
UR                  XD/5      nUR                  SSS5      nUR                  SSS5      nUR                  SSS5      nUR                  X/5      nUR                  X/5      n[        R                  " XSSS9u  pg[        Xe5        [        Xt5        [        R                  " [        X5      SS06u  pg[        Xe5        [        Xt5        [        R                  " XSSS9u  pg[        Xh5        [        Xy5        [        R                  " [        X5      SS06u  pg[        Xh5        [        Xy5        [        R                  " UR                  UR                  SSS9n[        UR                  U
5        [        UR                  U5        [        UR                  UR                  5      n[        R                  " USS06n[        UR                  U
5        [        UR                  U5        [        R                  " UUSSS9n[        UR                  U
5        [        UR                  U5        [        UUSS9n[        R                  " USS06n[        UR                  U
5        [        UR                  U5        g )Nr  rd	  g9(?geFr  r  rI  gJ?g9ʿr  g@[?gωұ?ghG?r   r  r  r6   r  r   r  rT   )re   rg   r  r1   r  r  r  r6  r   r@  r?  )ro   rp   rM  rY  rM  r  r  rg  	tr_uneq_n	pr_uneq_nr  r  rvs3r  r  r  r  r   rA  s                      ry   test_ttest_ind_with_uneq_var)TestTTestInd.test_ttest_ind_with_uneq_var^  sI    JJ|$JJ'ZZ+,ZZ-.qu5));q+<NNJJ'(ZZ+,ZZ-.qu5));q+<NN ZZ*+JJ23	ZZ+,JJ23	"c#""{{1c2&{{1c3'{{1c3'((D<(((D<(tUC));t+BTeTtUC%%));t+BTeT%%oogiieLu-

E*799gii0(($@%@u-

E*oogwQ%Hu-

E*7G!4(($@%@u-

E*r|   0ignore:divide by zero encountered:RuntimeWarning/ignore:invalid value encountered:RuntimeWarningc                    UR                  S5      nUR                  S5      n[        U[        SS9   [        R
                  " X#SS9u  pES S S 5        [        WUR                  UR                  * 5      5        [        WUR                  S5      5        [        R                  " SS9   [        R
                  " X"SS9u  pE[        XAR                  UR                  5      5        [        XQR                  UR                  5      5        UR                  S	UR                  /S
S	//5      n[        R
                  " XaR                  S5      SS9u  pE[        XAR                  S[        R                  /5      5        [        XQR                  S[        R                  /5      5        S S S 5        g ! , (       d  f       GNh= f! , (       d  f       g = f)Nr4   r  r   Fr	  r   r  r  r   r`   r>  r   )rb  r  r)   r   rg   r  r2   re   r!  r   r  rn   )ro   rp   rr   rs   r  rg  r  s          ry   test_ttest_ind_zero_division)TestTTestInd.test_ttest_ind_zero_division  sA    HHQKGGAJN2KL??159DA M 	2::rvvg./2::b>*[[X&??159DAAzz"&&12Azz"&&12 ::266{RG45D??4&)9UKDAAzz2rvv,78Azz2rvv,78 '& ML '&s   F+'C;F=+
F:=
Gc                 b   [         R                  SSS/n/ SQn[        R                  " XSS9n[        R                  " X!SS9n[	        UR
                  UR
                  * SS9  [	        UR                  UR                  SS9  [        R                  " X!S	S  5      n[	        XESS9  [	        US
SS9  g )Nr   r   r   r  r   r   rF  rG  r   )g8HgW@?)r   rn   rg   r  r   r@  r?  )ro   rr   rs   r  r  r  s         ry   test_ttest_ind_nan_2nd_arg'TestTTestInd.test_ttest_ind_nan_2nd_arg  s    VVS#s# __Qf5__Qf5r||m%@		29959 __Q!"&U+ 	G"	$r|   c                 R   [        U5      (       a\  [        R                  " [        [        S9   [
        R                  " UR                  / 5      UR                  / 5      5      nS S S 5        O5[
        R                  " UR                  / 5      UR                  / 5      5      n[        W[
        R                  R                  5      (       d   eUR                  UR                  5      S   n[        UR                  U5        [        UR                  U5        g ! , (       d  f       N= f)Nr   r   )r+   r   rd  r   r   rg   r  re   r8  r  r  rn   r2   r@  r?  ro   rp   r   r  s       ry   #test_ttest_ind_empty_1d_returns_nan0TestTTestInd.test_ttest_ind_empty_1d_returns_nan  s     B<<08MNoobjjnbjjnE ON //"**R."**R.AC#u::;;;;jj $s+

C( ONs   6D
D&r  r  r  r  r  c                    UR                  S5      nUR                  XR                  S9n[        R                  R                  5        nUR                  [        [        5        [        R                  " XASS9nS S S 5        [        W[        R                  R                  5      (       d   eUR                  X#R                  S9n[!        UR"                  U5        [!        UR$                  U5        g ! , (       d  f       N= f)Nr  rI   r`   rT   r  )rG  re   rJ   r   r"  r   r   r   r   rg   r  r8  r  r  r   rn   r2   r@  r?  )ro   rY  r  rp   rM  r   r   r  s           ry   test_ttest_ind_axis_size_zero*TestTTestInd.test_ttest_ind_axis_size_zero  s     HHYJJqJ(ZZ))+sJJ)+@A//!R0C , #u::;;;;FFC~6

N3 ,+s   	0C22
D c                 8   UR                  S5      nUR                  S5      n[        R                  " X#SS9n[        U[        R                  R
                  5      (       d   eUR                  R                  S:X  d   eUR                  R                  S:X  d   eg r  	rG  rg   r  r8  r  r  r@  r  r?  ro   rp   rM  rY  r   s        ry    test_ttest_ind_nonaxis_size_zero-TestTTestInd.test_ttest_ind_nonaxis_size_zero  s}    
 HHYHHYooa+#u::;;;;}}""V+++zz6)))r|   c                 8   UR                  S5      nUR                  S5      n[        R                  " X#SS9n[        U[        R                  R
                  5      (       d   eUR                  R                  S:X  d   eUR                  R                  S:X  d   eg )N)r   r8   r   r  r   rT   r  r	  r	  s        ry   2test_ttest_ind_nonaxis_size_zero_different_lengths?TestTTestInd.test_ttest_ind_nonaxis_size_zero_different_lengths  s}     HHYHHYooa+#u::;;;;}}""V+++zz6)))r|   r   N)r   r   r   r   r0   rg   r  r	  r   r   r   r	  r	  r	  r
  r   rG  r	  r	  r	  r   r   r|   ry   r	  r	  \  s    u112N+ 3N+` [[: [[999,$*) [[0 hhy16:XXi0&9;<4<4
**r|   r	  c                       \ rS rSr\R
                  R                  SSS9S 5       r\R
                  R                  S5      S 5       r	Sr
g	)
TestTTestIndFromStatsi  Tz"Other backends don't like integersr   c                    UR                  SS/5      UR                  SS/5      p2UR                  SS/5      UR                  SS/5      pTUR                  SS/5      UR                  SS	/5      pv[        R                  " X$XcXW5        g )
Nr   r3   r4   r5   r6         r     )re   rg   r  )ro   rp   mean1mean2std1std2nobs1nobs2s           ry   test_gh5686!TestTTestIndFromStats.test_gh5686  sy     zz1a&)2::q!f+=uZZA'QF);dzz3*-rzz3*/Eu""5dJr|   r	  c           
         UR                  S5      nUR                  S5      nUR                  UR                  5      n[        R                  " X"X2X#SS9n[	        UR
                  U5        [	        UR                  U5        g )Nr   r   Fr	  )re   rn   rg   r  r2   r@  r?  )ro   rp   zerosixr  r   s         ry   %test_ttest_ind_from_stats_inputs_zero;TestTTestIndFromStats.test_ttest_ind_from_stats_inputs_zero$  se     zz"~jjnjj ((S38:s+

C(r|   r   N)r   r   r   r   r   r   r   r	  r   r	  r   r   r|   ry   r	  r	    sV    [[!!$'K " MKMK [[ QR) S)r|   r	  TzTest uses ks_1sampr9	  r	  c                 x   [         R                  R                  S5      nU R                  UR	                  SS95      nU R                  UR	                  SS95      nUR                  SS9n[        R                  " X#SSS9n[         R                  " UR                  5      n[        R                  " U[        R
                  " 5       R                  5      R                  S	:  d   e[        [         R                  " Xd5      US
S9  [        R                  " X2SSS9n[         R                  " UR                  5      n[        R                  " U[        R
                  " 5       R                  5      R                  S	:  d   e[        [         R                  " Xd5      US
S9  U R                  / SQ5      U R                  S/5      p2[        R                  " X#SS9n[        U 5      U R                  :X  a  SOSn[        UR                   U R                  S5      US9  [        UR                  U R                  S5      US9  g )Nl   bQ )ri  r3   r  )ri  r   r  Tr`   )r  rU   rL  r  rG  )r3   r4   r6   r=   r	  r  r  gzNd?r  gJ?)r   r  r  re   r  r  rg   r  r?  r  r  r   quantiler-   r   r1   r@  )rp   r  rr   rs   rC  r   r?  r  s           ry   test_ttest_uniform_pvaluesr	  0  s    ))


0C


3::::./A


3::::./AA
//!$R
8CZZ

#F>>&%--/"5"56==CCCBKK*AD9
//!$R
8CZZ

#F>>&%--/"5"56==CCCBKK*AD9
 ::i "**cU"3q
//!$
/C#B'2::545DCMM2::o#>TJCJJ

> :Fr|   c                     UR                  US:H  5      nUR                  US:H  5      nU S:  U-  U S:  U-  -  nUR                  XaS-  SUS-  -
  5      $ )Nr  r  r   r3   r   )re   rT  )r  rg  r  rp   r  r  r  s          ry   _convert_pvalue_alternativer	  N  sa     ::cVm$Djj	)*G
a%4QUg-.A88AsA!G$$r|   r  r  c                    Su  pn[         R                  R                  SSXU4S9nU R                  U5      nU R	                  SX#45      n[         R
                  " XESS9u  pg[         R
                  " USSS9u  p[         R
                  " US S 2SS4   S5      u  p[        XhS	S
9  [        US   U
S	S
9  [        UR                  X#45        U R	                  USU45      n[         R
                  " XESS9u  pg[         R
                  " USSS9u  p[         R
                  " USS S 2S4   S5      u  p[        XhS	S
9  [        US   U
S	S
9  [        UR                  X45        U R	                  XS45      n[         R
                  " XESS9u  pg[         R
                  " USSS9u  p[         R
                  " USSS S 24   S5      u  p[        XhS	S
9  [        US   U
S	S
9  [        UR                  X45        [         R
                  " U R                  / SQ5      S5      u  p[        U R                  U5      U R                  U R                  5      5        [        XR                  S5      5        [         R
                  " US S 2S S 2S S 24   S5      u  p[         R
                  " US S 2S S 2S S 24   SSS9u  p[        XSU 5      n[        UU5        [        X5        [         R
                  " US S 2S S 2S S 24   SSS9u  p[        XSU 5      n[        UU5        [        X5        [        R                  " SS9   [         R
                  " U R                  / SQ5      S5      n[        UR                  U R                  U R                   5      5        [        UR"                  U R                  U R                   5      5        U R                  S[        R                   /SS//5      n[         R
                  " US5      n[        UR                  U R                  SU R                   /5      5        [        UR"                  U R                  SU R                   /5      5        S S S 5        g ! , (       d  f       g = f)NrZ   r  r  r6   rZ   r'  r   r   rT   r   rr  r  r  r3   )r   r   r   r   r  r  r  r  r	  rR  )rg   ra  r  re   r  r  r1   r   r  r2   r  r!  r	  r   r  r@  rn   r?  )rp   r^  r_  n3rvn1r)  ri  r  rj  p2rk  p3r  rg  r  rM  pcr   r  s                      ry   test_ttest_1samp_newr	  W  s   
 JBB::>>ar>=D::dD ggq"k"Gt15FBtRa0FBtAq!G}b1FBB'BtHbu-B8$ggr1bk"Gt15FBtRa0FBtAq!G}b1FBB'BtHbu-B8$ggrqk"Gt15FBtRa0FBtAq!G}b1FBB'BtHbu-B8$ RZZ5r:DABFF1Irzz"&&12Azz"~&tAq!G}b1FBT!Q']BIFDA	$RY	;BArAT!Q']BFCDA	$RVR	8BArA		"

< 8"=rzz"&&'9:

BJJrvv$67 zzB<#r34b)rzz2rvv,'?@

BJJBFF|$<= 
#	"	"s   0D%Q
Q,z(Only NumPy has nan_policy='omit' for nowr   c                 
   Su  pn[         R                  R                  SSXU4S9nU R                  U5      nU R                  USS2SS2S	S
24'   [         R
                  " US S 2S S 2S S 24   SSS9u  pV[         R
                  " US S 2S S 2S S 24   SSSS9u  px[        XVSU 5      n	[        X5        [        Xu5        [         R
                  " US S 2S S 2S S 24   SSSS9u  px[        XVSU 5      n	[        X5        [        Xu5        g )N)r6   rZ   r  r6   rZ   r'  r   r3   r   r4   r5   r9   r   r   r   r  rj  r  )rg   ra  r  re   rn   r  r	  r1   )
rp   r^  r_  r	  r	  r  rM  r  rg  r	  s
             ry   test_ttest_1samp_new_omitr	    s    JBB::>>ar>=D::dD&&D1ac1Q3tAq!G}bVDFBT!Q']B6)24DA	$RY	;BAAT!Q']B6)/1DA	$RVR	8BAAr|   r#  r$  r%  c                 ~   [         R                  R                  S5      nUR                  SS9nU R                  U5      nSnU R                  UR                  SS95      n[        R
                  " [        US9   [        R                  " X$SS9  S S S 5        U R                  UR                  S	S95      n[        R                  " X$SS9nUR                  R                  S
:X  d   eUR                  5       u  pgU R                  USS9nU R                  USS9n[        R                  " X&SS9nU R                  U R                  SU R                  S9UR                  R                  5      n[!        UR                  U5        [        R                  " X'SS9n[!        UR                  U5        g ! , (       d  f       GN%= f)Nl   iI}pC )r   r  r  r  z%`popmean.shape\[axis\]` must equal 1.)r6   r3   r  r   rV  )r)  rU   )r6   r   r  )r6   r  rT   g?rI   )r   r  r  re   r   r   r   rg   r  r@  r  r  r7  r  r   r?  r1   )	rp   r  rr   r  r)  r   r8  r  r  s	            ry   test_ttest_1samp_popmean_arrayr	    sd    ))

 3
4C


$A


1A6Gjj45G	z	1!26 
2 jj45G


AR
8C==')))""$DA
qr"A
qr"A


Ar
2C
//"**T*<cjj>N>N
OCCJJ$


Ar
2CCJJ$! 
2	1s   9F--
F<c                       \ rS rSr\R
                  R                  S5      S 5       rS rS r	S r
S rS rS	 rS
 rSrg)TestDescribei  r  c                    [        5        n[        R                  " SSS9   UR                  [        S5        [
        R                  " UR                  S5      S   5      u  p4pVpxS S S 5        S S S 5        WS:X  d   e[        WS   UR                  S5      5        [        US   UR                  S5      5        [        WUR                  S5      5        [        WUR                  UR                  5      5        [        WUR                  UR                  5      5        [        WUR                  UR                  5      5        g ! , (       d  f       N= f! , (       d  f       N= f)Nr  r  r  r   r   r   r   )
r   r   r  r   r   rg   describere   r2   rn   )	ro   rp   r   r  r  r  r  skkurts	            ry   test_describe_scalar!TestDescribe.test_describe_scalar  s     Ckk(8<JJ~'JK$)NN2::b>"3E$F!A1 = ! Avv1rzz#/1rzz#/2::c?+2::bff-.BJJrvv./bjj01 =< ! s#   EAE$E
E	E
E"c                 V   UR                  UR                  S5      UR                  SS5      45      nSnUR                  / SQ5      UR                  / SQ5      4nUR                  / SQ5      nUR                  / SQ5      nUR                  S	/S
-  5      nUR                  S/S
-  5      n[        R
                  " U5      u  pppX:X  d   e[        U
S   US   5        [        U
S   US   5        [        XS
UR                  UR                  5      R                  -  S9  [        XS
UR                  UR                  5      R                  -  S9  [        X5        [        X5        [        R
                  " UR                  SS9u  pppX:X  d   e[        U
S   US   5        [        U
S   US   5        [        XS
UR                  UR                  5      R                  -  S9  [        XS
UR                  UR                  5      R                  -  S9  [        X5        [        X5        g )Nr  r3   r5   r   r6   r   r   r   r   r   r   r   r   ffffff?r	  r	  r	  )rO  rO  rO  rO  H,p ?r5   TUUUUUr   r   r  rT   )r  r  r   re   rg   r	  r2   r1   r   rJ   epsr   ro   rp   rr   ncmmcmcvcskckurtcr  r  r  r  r	  r	  s                  ry   test_describe_numbers"TestDescribe.test_describe_numbers  s   IIrwwv(;<=zz*+RZZ8H-IJZZ,-ZZ,-jj-.23

./!34 %q 1qRww1s1v&1s1v&A(9(=(=$=>A(9(=(=$=> $ %qss ;qRww1s1v&1s1v&A(9(=(=$=>A(9(=(=$=> $r|   c                 "   [         R                  " S5      n[         R                  US'   Su  p#SnSnSnSn[        R                  " USS	9u  ppp[        X5        [        X5        [        X5        [        X5        [        X5        [        XS
S9  g )Nr   r:   )r:   )r   r   r   rC   r   gGzr   r   r]   rX  )r   r   rn   rg   r	  r   r   )ro   rr   r	  r	  r	  r	  r	  r	  r  r  r  r  r	  r	  s                 ry   describe_nan_policy_omit_test*TestDescribe.describe_nan_policy_omit_test  s    IIcNvv!!# %qV DqRQRQQ!"*!$r:r|   c                    UR                  S5      nUR                  US:H  UR                  U5      n[        U5      (       a8  [        R
                  " [        SS9   [        R                  " USS9  S S S 5        O7[        R
                  " [        SS9   [        R                  " USS9  S S S 5        [        R                  " USS9u  p4pVpxUR                  UR                  5      S	   n	US
:X  d   e[        US   U	5        [        US   U	5        [        XY5        [        Xi5        [        Xy5        [        X5        [        U5      (       a  U R                  5         O[        U5      (       a8  [        R
                  " [        SS9   [        R                  " USS9  S S S 5        O9Sn
[        R
                  " [        U
S9   [        R                  " USS9  S S S 5        Sn
[        R
                  " [        U
S9   [        R                  " USS9  S S S 5        g ! , (       d  f       GNt= f! , (       d  f       GN= f! , (       d  f       Nl= f! , (       d  f       N}= f! , (       d  f       g = f)Nr   r:   not supported for lazy arraysr   r   r   r   r  r   rZ   r   r   r   z8nan_policy='omit' is incompatible with non-NumPy arrays.r   r   )r   rT  rn   r*   r   r   r,  rg   r	  r   re   r2   r+   r	  )ro   rp   rr   r  r  r  r  r	  r	  r  r  s              ry   test_describe_nan_policy_other+TestDescribe.test_describe_nan_policy_other  s   IIcNHHQT2661%y0OPqW5 QP z1PQqW5 R !&q[ IqRjj $Bww1s#1s# "B<<..01y0OPqV4 QP QGz9qV4 : 1]]:W5NN12 657 QP RQ  QP :9 65s<   HH(H:>I7I
H%(
H7:
I
I
I*c                 r    [         R                  " [        R                  " S5      5      nSn[	        X5        g )NrM   )r  minmaxrj   variancer  r  )rg   r	  r   r   r   )ro   r  rB  s      ry   test_describe_result_attributes,TestDescribe.test_describe_result_attributes+  s'     		".S
F/r|   c                 8   UR                  UR                  S5      UR                  SS5      45      nSnUR                  / SQ5      UR                  / SQ5      4nUR                  / SQ5      nUR                  / SQ5      nUR                  S	/S
-  5      nUR                  S/S
-  5      n[        R
                  " USS9u  pppX:X  d   e[        U
S   US   5        [        U
S   US   5        [        X5        [        X5        [        X5        [        X5        g )Nr  r	  r   r6   r	  r	  r	  )Q?r
  r
  r
  r	  r5   r	  r   rQ  r   r  r  r   re   rg   r	  r2   r1   r	  s                  ry   test_describe_ddofTestDescribe.test_describe_ddof2  s    IIrwwv(;<=zz*+RZZ8H-IJZZ,-ZZ01jj-.23

./!34 %qq 9qRww1s1v&1s1v& $r|   c                    UR                  UR                  S5      UR                  SS5      45      nSnUR                  S5      UR                  S5      4nUR                  S5      nUR                  S5      nUR                  S5      nUR                  S	5      n[        R
                  " US S
9u  pppX:X  d   e[        U
S   US   5        [        U
S   US   5        [        X5        [        X5        [        X5        [        X5        g )Nr  r	  r   r  r   r	  ga+?gE,p ?gUUUUUUrT   r   r   r
  r	  s                  ry   test_describe_axis_none$TestDescribe.test_describe_axis_noneC  s    IIrwwv(;<= zz#

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

./ !&qt <qRww1s1v&1s1v& $r|   c                     Sn[         R                  " [        US9   [        R                  " UR                  / 5      5        S S S 5        g ! , (       d  f       g = f)NzThe input must not be empty.r   )r   r   r   rg   r	  re   ro   rp   r  s      ry   test_describe_empty TestDescribe.test_describe_emptyY  s5    0]]:W5NN2::b>* 655s   &A
Ar   N)r   r   r   r   r   r   r   r	  r	  r	  r	  r	  r
  r
  r

  r   r   r|   ry   r	  r	    sI    [[ VW2 X2%4;"!3F0%"%,+r|   r	  c                   b    \ rS rSr\R
                  R                  S/ SQ5      S 5       rS rSr	g)NormalityTestsi_  r  rX  c                    U R                   n[        [        U5      nUR                  U R                  S   5      nUR                  U R                  S   5      n0 nUS;   aA  US;   a%  US:X  a  US-  OSUS-  -
  nUS:X  a  SU-
  OUnXS'   O[
        R                  " S	5        UR                  S
5      S-  nU" U40 UD6n	U	u  p[        X5        [        X5        [        U	SUS9  g )Nr   r   >   r  r  >   skewtestkurtosistestr  r3   r
  r  z,`alternative` not available for `normaltest`)rV  r`   r   r   r3   r   rV  r`   r   r   r3   r   rV  r`   r   r   r3   r   rV  r`   r   r   r3   r   r  r  )		test_namerl  rg   re   case_refr   r  r1   r   )ro   r  rp   r
  r  ref_statisticri  rB  rr   r   res_statistic
res_pvalues               ry   test_against_RNormalityTests.test_against_Ra  s     NN	5),zz$--"23ZZa 01
--88-8F-BZ\*UV,
-6*-DQz\*
(3}%JKJJ./2q#F#$'!5
/C!8R@r|   c                    [        [        U R                  5      nUR                  S5      nUR	                  UR
                  UR                  S9nUR                  US:H  XC5      n[        R                  " SS9   U" U5      n[        UR                  U5        [        UR                  U5        S S S 5        g ! , (       d  f       g = f)Nr  rI   rp	  r  r  )rl  rg   r
  r   re   rn   rJ   rT  r   r  r2   r@  r?  )ro   rp   r  rr   r  r   s         ry   test_nanNormalityTests.test_nan  s    5$..1IIcNjjqwwj/HHQ"Wc%[[*1+CCMM3/CJJ, +**s   95B77
Cr   N)
r   r   r   r   r   r   r
  r
  r
  r   r   r|   ry   r
  r
  _  s.    [[],LMA NA<	-r|   r
  c                   (    \ rS rSrSrSrS rS rSrg)TestSkewTesti  r
  )gvO?gbH`?c                     [         R                  R                  SSSS9nUR                  U5      n[         R                  " USS9R
                  n[        XAR                  SUR                  S9S	S
9  g )Nr   ri  {   )rM  r  r  r  r  r   rI   g?̔>rG  )rg   skewnormr  re   r
  r?  r1   rJ   )ro   rp   r  a1_xpr  s        ry   test_intuitiveTestSkewTest.test_intuitive  s[    ^^!%cB

2~~e;BBjjEKKj@tLr|   c                    [         R                  " UR                  S5      5        UR                  S5      n[        U5      (       a  [        OSn[
        R                  " [        US9   [         R                  " U5      nUR                  UR                  5      n[        UR                  U5        [        UR                  U5        S S S 5        g ! , (       d  f       g = f)Nr   r   z1`skewtest` requires at least 8 valid observationsr   )rg   r
  r   r+   r   r   rd  r   re   rn   r2   r@  r?  )ro   rp   rr   r  r   r  s         ry   "test_skewtest_too_few_observations/TestSkewTest.test_skewtest_too_few_observations  s     	ryy~&IIcN,4RLL(K 	\\,G<..#C**RVV$CCMM3/CJJ,	 =<<s   (AC
Cr   N)	r   r   r   r   r
  r
  r!
  r$
  r   r   r|   ry   r
  r
    s    I9HM-r|   r
  c                   .    \ rS rSrSrSrS rS rS rSr	g)	TestKurtosisTesti  r
  )gglg2J@?c                     [         R                  R                  SSS9nUR                  U5      n[         R                  " USS9R
                  n[        XAR                  SUR                  S9SS	9  g )
Nri  r
  )r  r  r  r  r   rI   rF  rG  )rg   laplacer  re   r
  r?  r1   rJ   )ro   rp   r  a2_xpr  s        ry   r!
  TestKurtosisTest.test_intuitive  s[    ]]E<

2!!%Y?FFjjEKKj@uMr|   c           
         / SQn[         R                  " [        U5       VVs/ s H  u  p4[         R                  " XC5      PM     snn5      nUR	                  XQR
                  S9n[        R                  " U5      S   S:  d   eg s  snnf )N)
rD  r   :   r8   r   )   r   r   r      rI   r   r  )r   hstack	enumerater   re   r   rg   r
  )ro   rp   r  r  rs  rr   s         ry   test_gh9033_regression'TestKurtosisTest.test_gh9033_regression  so     7II61BC1Brwwq}1BCDJJq

J+!!!$Q'$... Ds   "B
c                    [         R                  " UR                  S5      5        [        U5      (       a  [        OSn[
        R                  " [        US9   [         R                  " UR                  S5      5      nUR                  UR                  5      n[        UR                  U5        [        UR                  U5        S S S 5        g ! , (       d  f       g = f)NrM   z(`kurtosistest` requires at least 5 validr   r   )rg   r
  r   r+   r   r   rd  r   re   rn   r2   r@  r?  )ro   rp   r  r   r  s        ry   &test_kurtosistest_too_few_observations7TestKurtosisTest.test_kurtosistest_too_few_observations  s     	299S>*,4RLL(B 	\\,G<$$RYYr]3C**RVV$CCMM3/CJJ,	 =<<s   A-C
Cr   N)
r   r   r   r   r
  r
  r!
  r2
  r5
  r   r   r|   ry   r'
  r'
    s    I:HN/-r|   r'
  c                   "    \ rS rSrSrSrS rSrg)TestNormalTesti  
normaltest)gاc@g?c                    [         R                  " UR                  S5      5        [        R                  " [
        5         [         R                  " UR                  S5      5      nUR                  UR                  5      n[        UR                  U5        [        UR                  U5        S S S 5        g ! , (       d  f       g = f)Nr   r   )rg   r9
  r   r   rd  r   re   rn   r2   r@  r?  r	  s       ry   test_too_few_observations(TestNormalTest.test_too_few_observations  sy    2' \\,-""299R=1C**RVV$CCMM3/CJJ,	 .--s    A-B66
Cr   N)r   r   r   r   r
  r
  r;
  r   r   r|   ry   r8
  r8
    s    I9H	-r|   r8
  c                       \ rS rSr\R
                  R                  S5        \R
                  R                  SS5      u  rr	\
R                  R                  S/ SQ5      S 5       rS rS	 rS
rg)TestRankSumsi  r   r3   rZ   r  r  c                     [         R                  " U R                  U R                  US9R                  n[         R
                  " U R                  U R                  SUS9R                  n[        X#5        g )Nr  F)use_continuityr  )rg   ranksumsrr   rs   r?  mannwhitneyur   )ro   r  r  r  s       ry   test_ranksums_result_attributes,TestRankSums.test_ranksums_result_attributes  sZ     ~~dffdff*577=v 	!!$&&$&&.9;;A6 	#r|   c                 r    [         R                  " U R                  U R                  5      n[	        US5        g )Nr  )rg   rA
  rr   rs   r   r  s     ry   test_ranksums_named_results(TestRankSums.test_ranksums_named_results  s%    nnTVVTVV,C!89r|   c                     [        [        SS9   [        R                  " U R                  U R
                  SS9  S S S 5        g ! , (       d  f       g = f)Nz`alternative` must be 'less'r   r   r  )r   r   rg   rA
  rr   rs   r  s    ry   r  "TestRankSums.test_input_validation  s2    :-KLNN466466x@ MLLs   +A
Ar   N)r   r   r   r   r   r  r  r  rr   rs   r   r   r
  rC
  rF
  r  r   r   r|   ry   r>
  r>
    sZ    IINN199>>!R DAq[[],LM$ N$:Ar|   r>
  c                   R    \ rS rSrS r\" SS9S 5       r\" SSS9S	 5       rS
 rSr	g)TestJarqueBerai  c                     / SQnUR                  U5      nUR                  SS/5      n[        R                  " U5      n[        UR                  US   5        [        UR
                  US   5        g )N)g8MK~Ŀg/?g6r=TgGg!J_l gq"?gPHK?r   r   )re   rg   jarque_berar1   r@  r?  )ro   rp   rr   r  r   s        ry   test_jarque_bera_against_R)TestJarqueBera.test_jarque_bera_against_R  s^    
;JJqMjj*O<="s1v.

CF+r|   Tr  c                 t   [         R                  R                  S5        [         R                  R                  SSS5      n[        R
                  " [        U5      5      =nu  pE[        R
                  " [        U5      5      =nu  px[        R
                  " UR                  SS5      5      =n	u  pXGs=:X  a:  U
s=:X  a3  UR                  s=:X  a"  UR                  s=:X  a  U	R                  :X  d   e   eXXs=:X  a:  Us=:X  a3  UR                  s=:X  a"  UR                  s=:X  a  U	R                  :X  d   e   eg )Nr  r   r   r_  r3   P  )r   r  r  r  rg   rM
  r?  tupleri   r@  r?  )ro   rp   rr   jb_test1JB1r  jb_test2JB2r	  jb_test3JB3r	  s               ry   test_jarque_bera_array_like*TestJarqueBera.test_jarque_bera_array_like  s     			y!IIQ6*"..tAw7773"..uQx8873"..qyyE/BCC73bSbH$6$6b(:L:LbPXPbPbbbbbbV2VVHOOVxVVVVVr|   array_api_strictzNoisy; see TestSkewr%  c                 N   UR                  / 5      n[        R                  " [        [        S9   [
        R                  " U5      nUR                  UR                  5      n[        UR                  U5        [        UR                  U5        S S S 5        g ! , (       d  f       g = fr  )re   r   rd  r   r   rg   rM
  rn   r2   r@  r?  )ro   rp   rr   r   r  s        ry   %test_jarque_bera_too_few_observations4TestJarqueBera.test_jarque_bera_too_few_observations  sj    JJrN\\,4IJ##A&C**RVV$CCMM3/CJJ,	 KJJs   AB
B$c                 l   [         R                  R                  SS9nUR                  UR                  SS95      n[        R
                  " US S9n[        R
                  " UR                  US5      5      n[        UR                  UR                  5        [        UR                  UR                  5        [        R
                  " USS9n[        R
                  " USS S 24   5      u  pg[        R
                  " USS S 24   5      u  p[        UR                  UR                  Xh/5      5        [        UR                  UR                  Xy/5      5        [        R
                  " UR                  SS9n
[        UR                  U
R                  5        [        UR                  U
R                  5        g )	NiKr  )r3   r  r  rT   r  r   r   )r   r  r  re   rg   rM
  ri   r2   r@  r?  r1   r  r   )ro   rp   r  rr   r   r  s0r  s1r  resTs              ry   r  TestJarqueBera.test_axis  s5   ii###3JJszzwz/0-

1e 45s}}5

CJJ/*""1QT7+""1QT7+rxx'9:

BHHbX$67  1-t~~6

DKK0r|   r   N)
r   r   r   r   rN
  r   rY
  r]
  r  r   r   r|   ry   rK
  rK
    sE    , d#
W $
W (1FG- H-1r|   rK
  c                   L    \ rS rSr/ SQr/ SQrSrS rS rS r	S r
S	 rS
 rSrg)TestMannWhitneyUi,  )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@rX   c                 ^   [         R                  " U R                  U R                  SS9u  p[         R                  " U R                  U R                  SS9u  p4[         R                  " U R                  U R                  SS9u  pV[         R                  " U R                  U R                  SS9u  px[	        X$5        [	        Xh5        [        X&:g  5        [	        US5        [	        US5        [	        US5        [	        US5        [        USU R                  S9  [        USU R                  S9  g )	Nr  r  r    r-  g=_A?r  glPz.?rg   rB
  rf   Yr   r   r
   r  	ro   u1r  u2r	  u3r	  u4p4s	            ry   test_mannwhitneyu_one_sided,TestMannWhitneyU.test_mannwhitneyu_one_sided>  s    ##DFFDFFG##DFFDFF	J##DFFDFF	J##DFFDFFGRRRRRRB 1t?O?OPB 3AQAQRr|   c                 $   [         R                  " U R                  U R                  SS9u  p[         R                  " U R                  U R                  SS9u  p4[	        X$5        [	        US5        [	        US5        [        USU R                  S9  g )Nr  r  rg
  r-  glPz.?r  rg   rB
  rf   ri
  r   r
   r  ro   rk
  r  rl
  r	  s        ry   test_mannwhitneyu_two_sided,TestMannWhitneyU.test_mannwhitneyu_two_sidedN  sp    ##DFFDFFL##DFFDFFLRRRB 2(,(8(8	:r|   c                 f   [         R                  " U R                  U R                  SSS9u  p[         R                  " U R                  U R                  SSS9u  p4[         R                  " U R                  U R                  SSS9u  pV[         R                  " U R                  U R                  SSS9u  px[	        X$5        [	        Xh5        [        X&:g  5        [	        US5        [	        US5        [	        US5        [	        US5        [        USU R                  S9  [        US	U R                  S9  g )
NFr  r  r  rg
  r-  gii5?r  g22?rh
  rj
  s	            ry   &test_mannwhitneyu_no_correct_one_sided7TestMannWhitneyU.test_mannwhitneyu_no_correct_one_sidedX  s    ##DFFDFFE068##DFFDFFE09;##DFFDFFE09;##DFFDFFE068 	RRRRRRB 1t?O?OPB 4$BRBRSr|   c                 (   [         R                  " U R                  U R                  SSS9u  p[         R                  " U R                  U R                  SSS9u  p4[	        X$5        [	        US5        [	        US5        [        USU R                  S9  g )NFr  r  rg
  r-  g22?r  rs
  rt
  s        ry   &test_mannwhitneyu_no_correct_two_sided7TestMannWhitneyU.test_mannwhitneyu_no_correct_two_sidedl  s|    ##DFFDFFE0;=##DFFDFFE0;= 	RRRB 4(,(8(8	:r|   c                    [         R                  " / SQ5      n[         R                  " / SQ5      n[        [        R                  " XSS9S5        [        [        R                  " XSS9S5        [        [        R                  " XSS9S	5        g )
N)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  )     @g ?չ>r  )r~
  g&)E?r  )r~
  g?չ?)r   r   r   rg   rB
  r  s      ry   test_mannwhitneyu_ones'TestMannWhitneyU.test_mannwhitneyu_onesx  s|    HH . /& HH & ' 	**1VD:	< 	**1YG2	4**1[I5	7r|   c                 r    Sn[         R                  " U R                  U R                  SS9n[	        X!5        g )Nr  r  r  )rg   rB
  rf   ri
  r   r  s      ry   #test_mannwhitneyu_result_attributes4TestMannWhitneyU.test_mannwhitneyu_result_attributes  s+    ,
  VDC,r|   r   N)r   r   r   r   rf   ri
  r  rp
  ru
  rx
  r{
  r
  r
  r   r   r|   ry   re
  re
  ,  s9    	-A	NA KS :T(
:)7V-r|   re
  c                      / SQn / SQn[        [        R                  " X5      S   SS5        Sn[        R                  " X5      n[        X25        [	        UR
                  UR                  5        g )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(@rn  r	  r  g333333@ffffff@g333333@r?   r  皙	@r   r  r  r>   r  ffffff@ @333333?r
  r=   ?r
  ru  ru  r  r@  rM  rp  r<   r5  r5  rL  r   g/"?r6   r=  )r   rg   pointbiserialrr   r   r>  r@  )rr   rs   rB  r   s       ry   test_pointbiserialr
    s_    	A	&A ,,Q215wB +J


q
$C(#--0r|   c                     [         R                  " / SQ5      n [        R                  " U 5      n/ SQn[	        US   U5        [         R                  " / SQ5      n[        R                  " U5      n[         R                  " / SQ5      n[	        US   U5        [        R                  " X5      u  pV[        XQS   5        [        XdS   5        [        R                  " XU 5      u  pVn[        XQS   5        [        XdS   5        [        XqS   5        [         R                  " S5      n [         R                  " / SQ/ SQ/5      n[        [        R                  " U S	U -  5      US
S9  [        SS5      n	[         R                  " / SQ5      n
[         R                  " X5      n[         R                  " / SQ5      n[         R                  " X5      n[        R                  " U5      n[        US   USS9  g )N)r   r3   r5   )r8   rV  r8   r   )r   r4   r7   r:   )r  r   r   r  r6   )㪪@I?g&>ڿr
  r
  )5@㪪@gIr
  r
  r3   r9   rX  r[   )r6   r[   r:   r4   r3   r3   )g_v	@g1%?g"u?gZӼ?g!u @gq&@r5   )
r   r   rg   obrientransformr   r   r   r   r  r  )r  ri  r  r  rj  rM  rY  rs  r  valuesrepsr  transformed_valuess                ry   test_obrientransformr
    s   	)	B			r	"BHBqE8$	,	B			r	"Bxx'HBqE8$   (DAqEqE ##BB/GA!qEqEqE 
1BXXDFHIF e33B"=vqQ 1b\F88'(D99V"D #< =yy+2H""4(FfQi1=r|   r  )rU   rJ   r  weightsc                    U=(       d    U R                   n[        U5      S:X  a  Uu  pxOUu  pynU R                  XsS9nU R                  XS9nUb  U R                  XSS9OUn[        U5      S:X  a  U4OUW	4nU" XbX5S.6n
[        XUS9  g )Nr3   rI   )rU   rJ   r
  r  )r   r  re   r1   )rp   mean_funrU   rJ   r  r
  rA  
array_liker  rg  rr   s              ry   check_equal_xmeanr
    s     RZZE
4yA~"
G!%
wJ4Jjjj.G292Ebjjj.7GINJ=QD$@AAT*r|   c                  8    [        U S[        R                  0UD6$ Nr
  )r
  rg   r  rA  rB  s     ry   check_equal_gmeanr
        dCU[[CFCCr|   c                  8    [        U S[        R                  0UD6$ r
  )r
  rg   hmeanr
  s     ry   check_equal_hmeanr
    r
  r|   c                  8    [        U S[        R                  0UD6$ r
  )r
  rg   pmeanr
  s     ry   check_equal_pmeanr
    r
  r|   c                      \ rS rSr\R
                  R                  S5      S 5       rS r\R
                  R                  S5      \R
                  R                  S5      S 5       5       r	\R
                  R                  S5      S 5       r
S	 rS
 r\R
                  R                  S5      S 5       rS r\R
                  R                  S5      S 5       r\" SSS9S 5       rS rS rS r\S 5       rSrg)	TestHMeani  r  c                 $    / SQnSn[        X#US9  g N)r   r   r3   r   r  r
  ro   rp   rM  r  s       ry   test_0TestHMean.test_0  s    !,r|   c                 D    / SQnSn[        X#US9  / SQnSn[        X#US9  g )Nr\  g=b#A@r  r  gQ?r
  r
  s       ry   test_1dTestHMean.test_1d
  s*    5!,:!,r|   r  c                 N    [         R                  " SS/5      nSn[        X#USS9  g )Nr   r   r   rp   r  r   r   r
  r
  s       ry   test_1d_with_zeroTestHMean.test_1d_with_zero  s'     HHaV!#6r|   r	  c                     [         R                  " / SQ5      nSn[        R                  " [        US9   [        X!R                  USS9  S S S 5        g ! , (       d  f       g = f)Nr   r   r`   z$The harmonic mean is only defined...r   r   r
  )r   r   r   rd  r   r
  rn   )ro   rp   rM  r  s       ry   test_1d_with_negative_value%TestHMean.test_1d_with_negative_value  sA     HHZ 8\\.8aBS9 988s   A
A!c                 Z    / SQ/ SQ/ SQ/nSn[        [        R                  " U5      X1S9  g )NrZ   r  r  r  r  rF  r]  rJ  r#  r  rd  x   gmWUC@r  )r
  r   r   r
  s       ry   test_2dTestHMean.test_2d%  s'    /1DE"((1+w6r|   c                 `    / SQ/ SQ/ SQ/n[         R                  " / SQ5      n[        X#SUS9  g )Nr
  r
  r
  )U|ϊ6@g4.=C@JQ6LsJ@E]P@r   rU   rp   r
  r
  s       ry   test_2d_axis0TestHMean.test_2d_axis0+  s+    /1DE((OP!14r|   c                 `    / SQ/ SQ/ SQ/n[         R                  " / SQ5      n[        X#SUS9  g )NrZ   r   r  r  r
  r
  )r
  r   r
  r
  r   r
  r
  r
  s       ry   test_2d_axis0_with_zero!TestHMean.test_2d_axis0_with_zero1  s+    .0CD((GH!14r|   c                 `    / SQ/ SQ/ SQ/n[         R                  " / SQ5      n[        X#SUS9  g )Nr
  r
  r
  )g3333333@O@y@Y@r   r
  r
  r
  s       ry   test_2d_axis1TestHMean.test_2d_axis17  s+    /1DE((<=!14r|   c                 `    / SQ/ SQ/ SQ/n[         R                  " / SQ5      n[        X#SUS9  g )Nr
  r
  r
  )r   r
  r
  r   r
  r
  r
  s       ry   test_2d_axis1_with_zero!TestHMean.test_2d_axis1_with_zero=  s+    .0CD((;<!14r|   T,array-likes only supported for NumPy backendr   c                 ~    / SQn/ SQnSn[         R                  " X#S9n[        U[        R                  " U5      SS9  g )Nr3   rZ   r7   rZ   r6   r4   r   r
  h㈵>r  )rg   r
  r1   r   re   ro   rp   rM  r
  r  r   s         ry   test_weights_1d_listTestHMean.test_weights_1d_listC  s8      kk!-RZZ0t<r|   c                     [         R                  " / SQ5      n[         R                  " / SQ5      nSn[        X$USUS9  g )Nr
  r
  r4   r
  r
  r  rp   )r   re   r
  ro   rp   rM  r
  r  s        ry   test_weights_1dTestHMean.test_weights_1dS  s3     JJz"**Z(!gDRHr|   c           	          [         R                  " SS/SS/SS//5      n[         R                  " SS/SS/SS//5      n[         R                  " SS/5      n[        X$SUSUS	9  g )
Nr3   r6   rZ   r7   r   r4   r   r
  rU   r
  r  rp   r
  r
  s        ry   test_weights_2d_axis0TestHMean.test_weights_2d_axis0[  sh     HHq!fr1g1v./((RGaVaV45((Aq6"!1gDRPr|   c           	          [         R                  " / SQ/ SQ/5      n[         R                  " / SQ/ SQ/5      n[         R                  " SS/5      n[        X$SUSUS	9  g )
Nr
  r8   r8   r8   r
  r  r4   r8   r   r
  r
  r
  r
  s        ry   test_weights_2d_axis1TestHMean.test_weights_2d_axis1c  sL     HHj),-((J	23((Aq6"!1gDRPr|   c           	          [         R                  " / SQ5      n[         R                  R                  / SQ/ SQS9nSn[         R                  n[        X$US[         R                  US9  g )Nr3   rZ   r7   r  rZ   r6   r4   r  r   r   r   r   r  r4   r
  r
  r  rJ   rp   )r   r   r}  r
  r   r
  s        ry   test_weights_masked_1d_array&TestHMean.test_weights_masked_1d_arrayk  sM     HH^$%%++n<+@UU!gD "

r	3r|   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|   ry   r
  r
    s,   [[ WX- Y-
- [[ WX[[ VW7 X Y7
 [[:::75 [[ WX5 Y5
5 [[ WX5 Y5
 =
=	
=IQQ 3 3r|   r
  c                   (   \ rS rSr\R
                  R                  S5      S 5       rS rS r	S r
S rS r\R
                  R                  S5      S	 5       r\R
                  R                  S
5      S 5       r\" SSS9S 5       rS r\S 5       rSrg)	TestGMeaniw  z<ignore:divide by zero encountered in log:RuntimeWarning:daskc                 $    / SQnSn[        X#US9  g r
  r
  r
  s       ry   r
  TestGMean.test_0y  s     !,r|   c                     / SQnSn[        X#US9  / SQn[        SS5      n[        X#SUS9  [        / SQ[        5      n[        SS5      n[        X#UR                  US	9  g )
Nr\  gsŤF@r  r  r  r  rr  r  rp   )rJ   rp   )r
  r   r   r   r
  s       ry   r
  TestGMean.test_1d  s[    5!,w/!5R8,(w/!BJJ2>r|   c                 2    / SQ/ SQ/ SQ/nSn[        X#US9  g )Nr
  r
  r
  g/,$qJ@r  r
  r
  s       ry   r
  TestGMean.test_2d  s    /1DE!,r|   c                     / SQ/ SQ/ SQ/n[         R                  " / SQ5      n[        X#SUS9  [        / SQ/ SQ/ SQ/5      n[        / SQ5      n[        X#SSUS	9  g )
Nr
  r
  r
  )g4@A@g5H@g`8|wЭN@gm~&+R@r   r
  r  rr  rU   r  rp   r   r   r
  r
  s       ry   r
  TestGMean.test_2d_axis0  sT    /1DE((NO!14<|<=%!15R@r|   c                     / SQ/ SQ/ SQ/n[         R                  " / SQ5      n[        X#SUS9  [        / SQ/ SQ/ SQ/5      n[        SS	5      n[        XDU/5      n[        X#SS
US9  g )Nr
  r
  r
  )gD" 6"6@gcP@g
ҧZ@r   r
  r  r  r  rr  r
  )r   r   r
  r   )ro   rp   rM  r  r  s        ry   r
  TestGMean.test_2d_axis1  sd    /1DE((CD!14<|<=-)q	"!15R@r|   c                 8    [        / SQ5      nSn[        X#SUS9  g )N)g}Ô%ITrz  gu <7~rz  r  r
  )r   r
  r
  s       ry   test_large_valuesTestGMean.test_large_values  s    '(!5R8r|   c                     / SQnSn[         R                  " SS9   [        X#US9  S S S 5        g ! , (       d  f       g = f)N)
rZ   r  r  r  r  rF  r]  rJ  r#  r   r   r  r	  r  )r   r  r
  r
  s       ry   test_1d_with_0TestGMean.test_1d_with_0  s0    
 4[[X&aR0 '&&s   /
=z;ignore:invalid value encountered in log:RuntimeWarning:daskc                     / SQn[         R                  n[         R                  " SS9   [        X#US9  S S S 5        g ! , (       d  f       g = f)N)
rZ   r  r  r  r  rF  r]  rJ  r#  r`   r  r  r  )r   rn   r  r
  r
  s       ry   test_1d_negTestGMean.test_1d_neg  s4    
 5&&[[*aR0 +**s	   =
ATr
  r   c                 ~    / SQn/ SQnSn[         R                  " X#S9n[        U[        R                  " U5      SS9  g )Nr  r3   r6   r7   r5   r4   GZ*oG8@r
  r
  r  )rg   r  r1   r   re   r
  s         ry   r
  TestGMean.test_weights_1d_list  s8     !
 kk!-RZZ0t<r|   c                     [         R                  " / SQ5      n[         R                  " / SQ5      nSn[        X$USUS9  g )Nr  r  r  r
  r
  r
  r
  s        ry   r
  TestGMean.test_weights_1d  s3     HH_%((?+!gDRHr|   c           	          [         R                  " / SQ5      n[         R                  R                  / SQ/ SQS9nSn[         R                  n[        X$US[         R                  US9  g )Nr  )r3   r6   r7   r5   r4   r6   )r   r   r   r   r   r   r  r  r
  r
  )r   r   r}  r
  r   r
  s        ry   r
  &TestGMean.test_weights_masked_1d_array  sP     HH'(%%++07I+JUU!gD "

r	3r|   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|   ry   r
  r
  w  s    [[F--
?-A	A9
 [[F11 [[E11 ==	=I 3 3r|   r
  c            
          \ rS rSrS rS rS rS r\R                  R                  S5      \R                  R                  S5      S 5       5       rS	 r\R                  R                  S
SS/SS/SS//S4\R                  " SS/SS/SS//5      S4/5      S 5       r\R                  R                  S
/ SQ/ SQ/ SQ/S4/ SQ/ SQ/ SQ/S4/5      S 5       r\R                  R                  S
/ SQ/ SQ/ SQ/S4/ SQ/ SQ/ SQ/S4/5      S 5       rS r\" SSS9S 5       r\S 5       r\R                  R                  S / S!Q5      S" 5       rS#rg$)%	TestPMeani  c                 X    [         R                  " X-  5      U R                  -  SU-  -  $ r  )r   rg  r  rM  rg  s     ry   pmean_referenceTestPMean.pmean_reference  s$    qtqvv%1--r|   c                 r    [         R                  " X U-  -  5      [         R                  " U5      -  SU-  -  $ r  )r   rg  )rM  rg  r
  s      ry   wpmean_referenceTestPMean.wpmean_reference  s-    wA~&8AaC@@r|   c                    [         R                  " [        SS9   [        R                  " UR                  / SQ5      UR                  S/5      5        S S S 5        [         R                  " [        SS9   [        R                  " UR                  / SQ5      UR                  S/5      5        S S S 5        g ! , (       d  f       Ni= f! , (       d  f       g = f)NzPower mean only defined forr   r  r   )r   r   r   rg   r
  re   r  s     ry   test_bad_exponentTestPMean.test_bad_exponent  s    ]]:-JKKK

9-rzz1#? L]]:-JKKK

9-rzz1#? LK LKKKs   9B649C6
C
Cc                 2   / SQSp2[         R                  [        R                  " U5      U5      n[	        X#XAS9  / SQSp2[         R                  [        R                  " U5      U5      n[	        X#XAS9  / SQSp2[        R
                  " S5      n[	        X#XAS9  g )Nr\  r?   r  g      r  r3   rC   )r  r  r   r   r
  rJ  ro   rp   rM  rg  r  s        ry   r
  TestPMean.test_1d  sx    8#1++BHHQK;!/8$1++BHHQK;!/Q1''9:!/r|   r  r  c                 R    [         R                  " SS/5      Sp2Sn[        X#USUS9  g )Nr   r   r`   r   r
  )r   r   r
  r   s        ry   r
  TestPMean.test_1d_with_zero  s+     xxA1!cb9r|   c                     [         R                  " / SQ5      Sp2Sn[        R                  " [        US9   [        X#UR                  US9  S S S 5        g ! , (       d  f       g = f)Nr
  Gz?z!The power mean is only defined...r   r  )r   r   r   rd  r   r
  rn   )ro   rp   rM  rg  r  s        ry   r
  %TestPMean.test_1d_with_negative_value  sA    xx
#T15\\.8aBFFr2 988s   A
A"r  rZ   r  r  rF  r#  r  rs  r<   c                 l    [         R                  [        R                  " U5      U5      n[	        XXCS9  g )Nr  r  r  r   r   r
  )ro   rM  rg  rp   r  s        ry   test_2d_axisnoneTestPMean.test_2d_axisnone  s(     ++BHHQK;!/r|   r
  r
  r
  r
  c                 $   [        [        US   5      5       VVs/ s HU  n[        R                  [        R
                  " [        [        U5      5       Vs/ s H
  oQU   U   PM     sn5      U5      PMW     nnn[        XUSUS9  g s  snf s  snnf )Nr   r
  )r  r  r  r  r   r   r
  )ro   rM  rg  rp   r  r  r  s          ry   r
  TestPMean.test_2d_axis0  s     3qt9%	
 & %%5Q=9=aA$q'=9:A &	 	 
 	!aB7	 :
s   ;BB'BBc                     U Vs/ s H-  n[         R                  [        R                  " U5      U5      PM/     nn[	        XUSUS9  g s  snf )Nr   r
  r(  )ro   rM  rg  rp   a_r  s         ry   r
  TestPMean.test_2d_axis1)  sC     IJJ"9,,RXXb\1=J!aB7 Ks   4Ac           	          / SQSp2/ SQn[         R                  [        R                  " U5      X45      n[	        X#XTSUS9  g )Nr
  ރBr
  r
  r
  )r  r  r   r   r
  ro   rp   rM  rg  r
  r  s         ry   r
  TestPMean.test_weights_1d2  s6    ;1,,RXXa[!E!tKr|   Tr
  r   c                     / SQSp2/ SQn[         R                  [        R                  " U5      X45      n[        R
                  " X#US9n[        U[        R                  " U5      SS9  g )Nr
  r1  r
  r
  r
  r  )r  r  r   r   rg   r
  r1   re   )ro   rp   rM  rg  r
  r  r   s          ry   r
  TestPMean.test_weights_1d_list8  sQ    
 ;1,,RXXa[!E kk!0RZZ0t<r|   c           
          [         R                  " / SQ5      Sp2[         R                  R                  / SQ/ SQS9n[         R                  " X$S9n[         R                  n[	        X#XTS[         R
                  US9  g )	Nr
  r   r
  r
  r  r
  r
  r
  )r   r   r}  averager
  r   r2  s         ry   r
  &TestPMean.test_weights_masked_1d_arrayF  sV    xx'1%%++n<+@**Q0UU!t "

r	3r|   )rU   fun_namerg  ))Nr  g3E#@)r   r  r   )r   r
  r`   c           
         ^ US:X  a  U4S jnO[        [        U5      n[        R                  " SS/SS/SS//5      n[        R                  " SS/SS/SS//5      nU" XaUS	9n[	        UTXUS
US9  g )Nr  c                 2   > [         R                  U TU5      $ r!  )r  r  )rM  rU   r
  rg  s      ry   fun&TestPMean.test_weights_2d.<locals>.funW  s     11!Q@@r|   r3   r6   rZ   r7   r   r4   )rU   r
  r
  r
  )rl  rg   r   r   r
  )	ro   rU   r9  rg  rp   r<  rM  r
  r  s	      `     ry   test_weights_2dTestPMean.test_weights_2dO  s     ))A %*CHHq!fr1g1v./((RGaVaV45aG4!QG$SUVr|   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|   ry   r  r    s   .A@0 [[ VW[[ WX: Y X:
3 [[8b"XCy
)4	0
((RHr2hS	2
3S	9	;
0
0 [[-/B
CT	J,.A
BC	H	J
8
8 [[-/B
CT	J,.A
BC	H	J
8
8L ==	= 3 3 [[!		W	Wr|   r  c            	          \ rS rSr\R
                  " S5      S-   R                  5       rSr\R                  " \S5      R                  5       r
S r\" SSS	9S
 5       r\S 5       r\R"                  R%                  S5      \R"                  R%                  S5      \R"                  R'                  SSS\R(                  \R*                  45      S 5       5       5       rS rS rS rS rS rS rS rSrg)TestGSTDia  r  r   gv aZ@r  c                     [         R                  " UR                  U R                  5      5      n[	        X!R                  U R
                  5      5        g r!  )rg   r  re   array_1dr1   gstd_array_1dro   rp   gstd_actuals      ry   test_1d_arrayTestGSTD.test_1d_arrayh  s4    jjDMM!:;ZZ0B0B%CDr|   Tz$Only NumPy supports array-like inputr   c                     [         R                  " [        U R                  5      5      n[	        X R
                  5        g r!  )rg   r  rR
  rC  r   rD  rE  s      ry    test_1d_numeric_array_like_input)TestGSTD.test_1d_numeric_array_like_inputl  s'    jjt}}!56%7%78r|   c                     Sn[         R                  " [        [        4US9   [        R
                  " S5        S S S 5        g ! , (       d  f       g = f)Nz.could not convert string to float|The DType...r   z*You cannot take the logarithm of a string.)r   r   r   r,  rg   r  r	
  s      ry   #test_raises_error_non_numeric_input,TestGSTD.test_raises_error_non_numeric_inputq  s4    B]]J	2'BJJCD CBBs   A
Ar  r  	bad_valuer   r`   c                    UR                  U R                  U/-   5      n[        R                  " U5      (       aK  [	        U5      (       d;  Sn[
        R                  " [        US9   [        R                  " U5      nS S S 5        O[        R                  " U5      n[        WUR                  [        R                  5      5        g ! , (       d  f       N8= f)Nz3The geometric standard deviation is only defined...r   )re   rC  r   r  r*   r   rd  r   rg   r  r2   rn   )ro   rO  rp   rr   r  r   s         ry   test_returns_nan_invalid_value'TestGSTD.test_returns_nan_invalid_valuew  s     JJt}}	{23;;y!!-*:*:KGnG<jjm =< **Q-CRZZ/0	 =<s   &C
Cc                     UR                  / SQUR                  SSS//5      n[        R                  " USS9n[	        X1R                  S[
        R                  /5      5        g )N)r   r   r   r   r   r3   r4   rT   r5   )re   rn   rg   r  r1   r   )ro   rp   rM  rF  s       ry   test_propagates_nan_values#TestGSTD.test_propagates_nan_values  sK    JJ1a'89:jj+ZZBFF%<=r|   c                     UR                  U R                  5      n[        R                  " X"R                  S   S9n[        X1R                  UR                  5      5        g )Nr   rQ  )re   rC  rg   r  r  r2   rn   r   s       ry   )test_ddof_equal_to_number_of_observations2TestGSTD.test_ddof_equal_to_number_of_observations  s?    JJt}}%jj,ZZ/0r|   c                     UR                  U R                  5      n[        R                  " US S9nUR                  U R                  5      n[        X45        g r&	  )re   array_3drg   r  rD  r1   ro   rp   rr   rF  r  s        ry   test_3d_arrayTestGSTD.test_3d_array  s@    JJt}}%jj.jj++,)r|   c                     UR                  U R                  5      n[        R                  " USS9nUR                  SS/5      n[	        X45        g )Nr  rT   g~d@g<
?re   rZ  rg   r  r1   r[  s        ry   test_3d_array_axis_type_tuple&TestGSTD.test_3d_array_axis_type_tuple  s?    JJt}}%jj0jj*j12)r|   c                     UR                  U R                  5      n[        R                  " USS9nUR                  / SQ/ SQ/ SQ/5      n[	        X45        g )Nr   rT   )gĶ?@gQӫ@g֌@gן7R@)g%Ȁ@ge@gv6B5 @g _?)gE ?gީ?gk̊Y?g%:?r_  ro   rp   rr   rF  gstd_desireds        ry   test_3d_array_axis_0TestGSTD.test_3d_array_axis_0  sJ    JJt}}%jj+zzOOO#
 
 	2r|   c                     UR                  U R                  5      n[        R                  " USS9nUR                  / SQ/ SQ/5      n[	        X45        g )Nr   rT   )gN@g85@g'ĥ?gwth?)gHnaX?gG?gBu?gE?r_  rc  s        ry   test_3d_array_axis_1TestGSTD.test_3d_array_axis_1  sG    JJt}}%jj+zzLL#
  	2r|   c                     UR                  U R                  5      n[        R                  " USS9nUR                  / SQ/ SQ/5      n[	        X45        g )Nr3   rT   )gt80?gі?g?)gۘ]~?gmT6(?g	G?r_  rc  s        ry   test_3d_array_axis_2TestGSTD.test_3d_array_axis_2  sG    JJt}}%jj+zz??#
  	2r|   r   N)r   r   r   r   r   r   r   rC  rD  ri   rZ  rG  r   rJ  r'   rM  r   r   r   r
  r!  rn   rQ  rT  rW  r\  r`  re  rh  rk  r   r   r|   ry   rA  rA  a  s    		)$q(002H"Mzz(I.557HE d+QR9 S9 E E
 [[ WX[[ VW[[[1b"&&"&&*AB1 C X Y1>
1
**333r|   rA  c            	         [         R                  " [         R                  " SSS5      [         R                  " SSS5      [         R                  " SSS5      45      n SnS	n/ S
Qn[        X5       H3  u  pE[	        [
        R                  " X!U5      R                  USSU 3S9  M5     [	        [
        R                  " SSS5      R                  SSS9  g )NrL  r5  r6   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|>r\   z
fail forp=)r  err_msgr  r  gVݶ3;r  )r   r  r6  r;  r
   rg   	binomtestr?  )ppr  rr   rw  rg  r   s         ry   test_binomtestrr    s    	S#q1T43T435 
6B 	AA(G b"EOOA!4;;S(*j4D	F # C5<</$&(r|   c                     SS// SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ S	Q/ S
Q/
n [        SS5       HP  n[        US-   5       Vs/ s H$  n[        R                  " X!S5      R                  PM&     nn[	        X0US-
     SS9  MR     g s  snf )Nr   )r<   r   r<   )r  r   r   r  )r  r  r   r  r  )r        ?r   r   rt  r  )r        ?      ?r   rv  ru  r  )r  r        ?r   r   rw  r  r  )	      ?      ?     ?     @?r   r{  rz  ry  rx  )
      p?      ?      ?     @?r   r   r  r~  r}  r|  )      `?      ?      ?      ?      ?r   r  r  r  r  r  r   r[   r<   rZ   rX  )r  rg   rp  r?  r   )r  r  r  r  s       ry   test_binomtest2r    s     
c
 +8G		*	E	D" 1b\;@Q<H<ac*11<HDqs)R8 Hs    +Bc                  "   [        SS5       V Vs/ s H>  n [        SS5        H*  n[        R                  " X U-  SU-  5      R                  PM,     M@     nn n[	        U[
        R                  " [        U5      [        5      5        [
        R                  " / SQ5      n[
        R                  " / SQ5      n[        SS5       V Vs/ s HA  n [        SS5        H-  n[        R                  " U S-   X-  SU-  5      R                  PM/     MC     nn n[        SS5       V Vs/ s HA  n [        SS5        H-  n[        R                  " U S-
  X-  SU-  5      R                  PM/     MC     nn n[        XTSS9  [        XcSS9  g s  snn f s  snn f s  snn f )	Nr   r[   r3   r   )Zr<   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?rv  g
ņB?g  ?g$?g{dU'?gD:B?gwV?gR0Nf?gOq?r{  g[k^?g T+?gO?gggh(?gP-@?gOQ?g}^?gV7_i?r  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?)Zr<   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?rv  gqIb?g  @N?g1Y?g5?gO?gc-?gk?g )?r{  glMV?g?$?gT*r?gCqRv?grx?gωZ?gExY?g<T ?r  gJ9Ͻd?g `Ԗt?gT?gEz?gQ?g7C<*?g<?g~ K?r  g8?g~ȍEt?g⿒?g<v?gHE:?g8Z$?gbº5?gvC?r  g`Yw?gA?$??gE=?g4?g3?g{G9?gp?gH ?r  gz6f?g¯F?g(+?g	$V?gq^ws?g!?gXNJ?gK?r  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?r]   rX  )r  rg   rp  r?  r   r   r  r  r!  r   r   )r  r  r  binom_testm1binom_testp1res4_p1res4_m1s          ry   test_binomtest3r    so    1b\9!5B<a OOAsBqD)00+7 1! 	 9rwws4y#./ 88 
 LP 88 
 L@ a<$1eArl qsACA.55.: 6$  < a<$1eArl qsACA.55.: 6$  < r:r:q9d<<s   AE?AFAFc                   &    \ rS rSrS rS rS rSrg)TestTrimiD  c           
      \   [         R                  " S5      n[        [         R                  " [        R
                  " US5      5      [         R                  " S5      5        [        [         R                  " [        R
                  " US5      5      [         R                  " S5      5        [        [         R                  " [        R
                  " USSS95      [         R                  " SS5      5        [        [         R                  " [        R
                  " US	SS95      [         R                  " S
S5      5        [        [        R
                  " US5      / 5        [        [        R
                  " USSS9/ 5        [        [        R
                  " / S5      / 5        [        [        R
                  " / S	SS9/ 5        [        [        R
                  " / S5      / 5        [         R                  " S5      R                  SS5      n[         R                  " SS5      R                  SS5      nSn[        R
                  " USSUS9n[        [         R                  " XCS9U5        Sn[        R
                  " UR                  SSUS9n[        [         R                  " XCS9UR                  5        g )Nr[   rL  rZ   r5  r:   left)tailr3   tE]t?r4   r   rP  r  r7   r5   r6   r   )r  rU   rT   r   )r   r   r   sortrg   trim1ri   r   )ro   rM  r  rU   trimmeds        ry   
test_trim1TestTrim.test_trim1F  s   IIbMRWWU[[C01299R=ARWWU[[C01299Q<@RWWU[[Cf=>YYq"%	'RWWU[[E?@YYq"%	'U[[C("-U[[Cf5r: 	U[[S)2.U[[U8"=U[[T*B/ IIbM!!!Q'ii2&&q!,++a6=RWWW0#6++acc3V$?RWWW0#%%8r|   c           
         [         R                  " S5      n[        [         R                  " [        R
                  " US5      5      [         R                  " SS5      5        [        [         R                  " [        R
                  " US5      5      [         R                  " / SQ5      5        [        [         R                  " [        R
                  " [         R                  " S5      R                  SS	5      S5      5      [         R                  " S	S
5      R                  S	S	5      5        [        [         R                  " [        R
                  " [         R                  " S5      R                  S	S5      R                  S5      5      [         R                  " / SQ/ SQ/5      5        [        [        [        R
                  [         R                  " S5      R                  S	S5      R                  S5        [        [        R
                  " / S5      / 5        [        [        R
                  " / S5      / 5        [        [        R
                  " / S5      / 5        g )Nr[   r  r4   r9   r5  )r3   r4   r5   r6   r7   r8   r9   r  r7   r5   r  rX  )r3   r9   rX   r  )r4   r:   r  rW   rP  rL  )r   r   r   r  rg   trimbothr   ri   r   r   r   )ro   rM  s     ry   test_trimbothTestTrim.test_trimbothb  ss   IIbMRWWU^^Au56		!QHRWWU^^As34XX34	6RWWU^^BIIbM,A,A!Q,GMNYYq"%--a3	5RWWU^^BIIbM,A,A!Q,G,I,I,02 3XX~~>?	A 	j%..iim++Aq133T	; 	U^^B,b1U^^B.3U^^B-r2r|   c                 (   [         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " S5      R                  SS5      US S 24   n[         R                  " S5      R                  SSSS9US S 24   n[	        [
        R                  " US5      [         R                  " / S	Q5      5        [	        [
        R                  " US5      [         R                  " / S
Q5      5        [         R                  " / SQ5      n[         R                  " S5      R                  SS5      US S 24   n[	        [
        R                  " US5      [         R                  " / SQ5      5        / SQn[	        [
        R                  " US5      S5        [	        [
        R                  " / SQS5      S5        [         R                  R                  S5        [         R                  R                  SSS9nS HP  n[
        R                  " USUS9n[
        R                  " [         R                  " XS5      S5      n	[	        X5        MR     [
        R                  " USS S9n[
        R                  " UR                  5       S5      n	[	        X5        [        [        [
        R                  US5        [	        [
        R                  " / S5      [         R                  5        [	        [
        R                  " / S5      [         R                  5        g )N)r5   r9   r3   r   r:   r6   rZ   r   r8   r4   r7   )r4   r6   r   r   r3   r5   r  r7   r5   Fr  rX  )r>   rD   g      -@g     4@r  )r   r   r4   r3   )r   r   r  r  r  r  )r8   r[   r\   rW   r   r7   r,  r   r6   r   r  rZ   rc   r:   r  r  r  r  r3   rX   r5   r]   r9   r4   rY   )r6   r5   r4   r   r3   r   r>   rh  r  )r6   r7   r5   r8   r  )r   r   r3   r4   r`   rT   r   rp  r   )r   r   r   ri   r   rg   	trim_meanr  r  randintr@  r  r   r   rn   )
ro   rM  idxr  r  idx4a4rU   r  r  s
             ry   test_trim_meanTestTrim.test_trim_meant  s   HH78hh)*YYr]""1a(a0YYr]""1as"3CF;U__R.XX45	7U__R.XX23	5xx%YYr]""1a(q1U__R.XX;<	>%U__Q-t4U__]D93? 			tIIb|4$D??1d6D??2;;q#:DAD$ %
 q$T2qwwy$/T j%//1c: 	U__R-rvv6U__R-rvv6r|   r   N)r   r   r   r   r  r  r  r   r   r|   ry   r  r  D  s    983$$7r|   r  c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestSigmaClipi  c                 "   [         R                  " [         R                  " SSS5      [         R                  " SSS5      45      nSn[        R                  " U5      u  p4n[        UR                  5       U:  5        [        UR                  5       U:  5        [        XCR                  5       X#R                  5       -  -
  5        [        XSR                  5       X#R                  5       -  -   5        [        UR                  UR                  5        g )Nr  r_      r   r  r6   r5   r   r  r6  rg   	sigmaclipr   minmaxr   rj   r   r  ro   rM  factrs  r  upps         ry   test_sigmaclip1TestSigmaClip.test_sigmaclip1  s    NNBKKT26Ar18MNOooa(##S&&(T%%'\12S&&(T%%'\12QVVQVV$r|   c                 <   [         R                  " [         R                  " SSS5      [         R                  " SSS5      45      nSn[        R                  " XU5      u  p4n[        UR                  5       U:  5        [        UR                  5       U:  5        [        XCR                  5       X#R                  5       -  -
  5        [        XSR                  5       X#R                  5       -  -   5        [        UR                  S5        [        UR                  S	5        g )
Nr  r_   r  r   r  r6   r=   r5   $   r  r  s         ry   test_sigmaclip2TestSigmaClip.test_sigmaclip2  s    NNBKKT26Ar18MNOooat4##S&&(T%%'\12S&&(T%%'\12QVVQQVVR r|   c                 (   [         R                  " [         R                  " SSS5      [         R                  " SSS5      45      nSn[        R                  " XU5      u  p4n[        UR                  5       U:  5        [        UR                  5       U:  5        [        XCR                  5       X#R                  5       -  -
  5        [        XSR                  5       X#R                  5       -  -   5        [        U[         R                  " SSS5      5        g )Nr  r_   r[   r4   ?)r   r  r6  rg   r  r   r  r  r   rj   r   r  s         ry   test_sigmaclip3TestSigmaClip.test_sigmaclip3  s    NNBKKT26KKc157 8ooat4##S&&(T%%'\12S&&(T%%'\12QCr23r|   c                     [         R                  " [         R                  " SSS5      [         R                  " SSS5      45      nSn[        R                  " XU5      nSn[        X45        g )	Nr  r_   r[   r  r  r4   r  )clippedr  r  )r   r  r6  rg   r  r   )ro   rM  r  r   rB  s        ry    test_sigmaclip_result_attributes.TestSigmaClip.test_sigmaclip_result_attributes  sV    NNBKKT26KKc157 8ooat,2
C,r|   c                 v    [         R                  " S5      n[        [        R                  " U5      S   U5        g )NrZ   r   )r   r  r   rg   r  r  s     ry   test_std_zeroTestSigmaClip.test_std_zero  s'    GGBKU__Q'*A.r|   r   N)
r   r   r   r   r  r  r  r  r  r   r   r|   ry   r  r    s    %	!	4-/r|   r  c                       \ rS rSrS r\R                  R                  SSS// 4SS/S4SS/S/4/5      S 5       rS r	S r
S	 rS
 rS rS rS rS rSrg)TestAlexanderGoverni  c                 |   / SQ/ SQ/ SQ/ SQ/nU Vs/ s H&  n[         R                  " U[         R                  S9PM(     nnU Vs/ s H&  n[         R                  " U[         R                  S9PM(     nnU Vs/ s H&  n[         R                  " U[         R                  S9PM(     nnU Vs/ s H&  n[         R                  " U[         R
                  S9PM(     nn[        R                  " U6 n[        R                  " U6 n[        R                  " U6 n	[        R                  " U6 n
UR                  UR                  s=:X  a"  U	R                  s=:X  a  U
R                  :X  d   e   eUR                  UR                  s=:X  a"  U	R                  s=:X  a  U
R                  :X  d   e   eg s  snf s  snf s  snf s  snf )N)	r]   r]   r]   r]   r]   r]   r]   r\   r\   )	rX   r]   r\   r\   r\   r\   r\   r[   r[   )	rX   rX   r]   r]   r]   r]   r]   r\   r\   )	r  rX   r]   r]   r]   r\   r\   r\   r[   rI   )
r   re   r   r  r+  r   rg   alexandergovernr?  r@  )ro   rA  arg
args_int16
args_int32
args_uint8args_float64	res_int16	res_int32	res_uint8res_float64s              ry   test_compare_dtypes'TestAlexanderGovern.test_compare_dtypes  s   44446 BFF#bjjBHH5
FAEF#bjjBHH5
FAEF#bjjBHH5
FEIJTc

3bjj9TJ)):6	)):6	)):6	++\:  I$4$4 7  7$/$6$67 	8 7 	8 7##y':': =##='2'<'<= 	> = 	> = GFFJs   -F*-F/9-F4,-F9r  r   r3   c                 (   [         R                  " [        [        S9   [        R
                  " U6 n[        UR                  [        R                  5        [        UR                  [        R                  5        S S S 5        g ! , (       d  f       g = fr  )r   rd  r   r   rg   r  r   r@  r   rn   r?  r  s      ry   test_too_small_inputs)TestAlexanderGovern.test_too_small_inputs  sU     \\,4IJ''.C/RVV, KJJr  c                 ^   [         R                  " SS9   [        R                  " SS/[         R                  [         R                  /5      nS S S 5        [        WR                  [         R                  5        [        UR                  [         R                  5        g ! , (       d  f       NW= f)Nr  r  r   r3   )	r   r  rg   r  r!  r   r@  rn   r?  r  s     ry   test_bad_inputs#TestAlexanderGovern.test_bad_inputs  sc    [[*''A0@AC +S]]BFF+SZZ( +*s   8B
B,c                 $   / SQn/ SQn/ SQn[         R                  " U5      [         R                  " U5      [         R                  " U5      p2n[        R                  " XU5      n[	        UR
                  S5        [	        UR                  S5        g)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r   re   rg   r  r   r@  r?  )ro   r  twoeightsolns        ry   test_compare_r"TestAlexanderGovern.test_compare_r  sn    :"	I7 **S/2::c?BJJu<M%$$Su5(=>%;<r|   c                 z   / SQn/ SQn/ SQn[         R                  " U5      [         R                  " U5      [         R                  " U5      p2n[        R                  " XU5      n[	        UR
                  SSS9  [	        UR                  SSS9   [	        UR
                  S	5        [	        UR                  S
5        g)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@r  rG  g R8߱?r  g.UikL@g&Zݱ?Nr  )ro   youngmiddleoldr  s        ry   test_compare_scholar(TestAlexanderGovern.test_compare_scholar2  s    08GZZ.

60BBJJsOs$$UC8T:W48	: 	1Z0r|   c                 D   / SQn/ SQn[         R                  " U5      [         R                  " U5      p![        R                  " X5      n[	        UR
                  SSS9  [	        UR                  SSS9   [	        UR
                  S5        [	        UR                  S5        g	)
a  
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
  rG  gOZ}?g9$?g6MDd}?Nr  )ro   r  r  r  s       ry   test_compare_scholar3)TestAlexanderGovern.test_compare_scholar3e  s|    "! BBB$$R,t<XD9	8 		2Y/r|   c                 6   [         R                  " / SQ5      [         R                  " S[         R                  /5      4n[        R                  " U6 n[        UR                  [         R                  5        [        UR                  [         R                  5        g )Nr  r   r   re   rn   rg   r  r   r?  r@  )ro   rA  r   s      ry   test_nan_policy_propagate-TestAlexanderGovern.test_nan_policy_propagate  sZ    zz,'QK)@@##T*SZZ(S]]BFF+r|   c                     [         R                  " / SQ5      [         R                  " S[         R                  /5      4n[        [        SS9   [
        R                  " USS06  S S S 5        g ! , (       d  f       g = f)Nr  r   r   r   r   r   )r   re   rn   r   r   rg   r  )ro   rA  s     ry   test_nan_policy_raise)TestAlexanderGovern.test_nan_policy_raise  sQ    zz,'QK)@@:-LM!!4<G< NMMs   A--
A;c                    [         R                  " SSS[         R                  S/5      [         R                  " S[         R                  SS/5      4n[         R                  " / SQ5      [         R                  " / SQ5      4n[        R                  " US	S
06n[        R                  " U6 n[        UR                  UR                  5        [        UR                  UR                  5        g )Nr   r3   r4   r5   r  r  r  )r   r  r  r   r   r  )ro   args_nanargs_no_nanres_nan
res_no_nans        ry   test_nan_policy_omit(TestAlexanderGovern.test_nan_policy_omit  s    ::q!Q23RZZBFFBPR@S5TTjj.

;0GG''EfE**K8
W^^Z%6%67W&&
(<(<=r|   c                    [         R                  " / SQ5      n[         R                  " / SQ5      n[        R                  " [        SS9   [
        R                  " X5      nS S S 5        [        WR                  [         R                  5        [        UR                  [         R                  5        g ! , (       d  f       NW= f)Nr^  r`  r  r   )r   re   r   rd  r   rg   r  r   r@  rn   r?  )ro   r  r  r   s       ry   rh  'TestAlexanderGovern.test_constant_input  ss    ZZ-.ZZ-.\\.0LM''/C NS]]BFF+SZZ( NMs   
B22
C r   N)r   r   r   r   r  r   r   r
  r  r  r  r  r  r  r  r  rh  r   r   r|   ry   r  r    sz    >( [[Vq!fb\QFA;!Q!$NO- P-)B=H11f10f,=
>)r|   r  c            	       &   \ rS rSrS rS rS rS rS rS r	S r
S	 r\R                  R                  S
\R                   " / SQ5      \R                   " / SQ5      \R"                  S44\R                   " / SQ5      \R                   " / SQ5      \R$                  \R$                  44/5      S 5       r\R                  R                  S/ SQ5      S 5       rS rS rS rS r\R                  R                  SS/ SQ4/5      S 5       rS rS rSrg)TestFOneWayi  c                 n    [         R                  " SS/SS/5      u  p[        US5        [        US5        g )Nr   r3   r   r   )rg   f_onewayr   ro   r  rg  s      ry   test_trivialTestFOneWay.test_trivial  s0    ~~q!fq!f-QQr|   c                     [         R                  " SS/SS/5      u  p[        US5        [        US[        R
                  " S5      -
  SS9  g )	Nr   r3   r5   r   r   r<   rr  r  )rg   r  r   r   r   rJ  r   s      ry   rZ  TestFOneWay.test_basic  sA     ~~q!fq!f-Q1rwws|+%8r|   c                 v    / SQ/ SQ/ SQ/n[         R                  " USS06u  p#[        USSS9  [        US	SS9  g )
Ng(\5IgHz'D@gףp=
2g
ףp=A@g333333g)\(?gq=
ףp7@r@   g333333.@gRQ#@gzG'@rr  g=
ףp#@gGz."@gp=
ף
@r  FgM;yQ?rr  r  gWe?rg   r  r   )ro   samplesr  rg  s       ry   test_unequal_varTestFOneWay.test_unequal_var  sE    =+35 ~~w8%8& 	,59,59r|   c                     / SQ/ SQ/ SQ/nSn[         R                  " [        US9   [        R                  " USS06  S S S 5        g ! , (       d  f       g = f)Nr  r  r  z(Expected a boolean value for 'equal_var'r   r  False)r   r   r,  rg   r  )ro   r
  r  s      ry   test_equal_var_input_validation+TestFOneWay.test_equal_var_input_validation  sD    =+35 =]]9G4NNG7w7 544s   A
Ac                 l    [         R                  " S/S// SQ5      u  p[        USSS9  [        USSS9  g )Nr3   r  rp  rF  r  r  r	  r   s      ry   test_known_exactTestFOneWay.test_known_exact  s4     ~~qcA3	23U+3U+r|   c                     [         R                  " SS/[         R                  S9n[         R                  " SS/[         R                  S9n[        R                  " X5      u  p4[        USSS9  g )	N    rI       gŸ?rr  r  )r   r   uint16rg   r  r   )ro   rM  rY  r  rg  s        ry   test_large_integer_array$TestFOneWay.test_large_integer_array  sQ    HHc3Zryy1HHc3Zryy1~~a# 	.U;r|   c                     [         R                  " SS/[         R                  S9n[         R                  " SS/[         R                  S9n[        R                  " X5      nSn[        X45        g )Nr  r  rI   r  r  r  )r   r   r  rg   r  r   )ro   rM  rY  r   rB  s        ry   test_result_attributes"TestFOneWay.test_result_attributes  sM    HHc3Zryy1HHc3Zryy1nnQ",
C,r|   c                 :   / SQnU GHu  nSn[         R                  R                  [         R                  R                  [         R                  R	                  [
        5      SU5      5      n[        U5       nUR                  5       R                  S5      nS S S 5        WSS  Vs/ s H*  nUR                  5       (       d  M  UR                  5       PM,     nn[        R                  " USS9n	U	R                  u  pU
R                  [        5      n
[        R                  " U
5      n[!        US	   S
   5      nU Vs/ s H	  oX:H     PM     nn["        R$                  " U6 nSnUU;   a  Sn['        US	   XSSU 3S9  GMx     g ! , (       d  f       N= fs  snf s  snf )N)z
SiRstv.datz
SmLs01.datz
SmLs02.datz
SmLs03.datzAtmWtAg.datz
SmLs04.datz
SmLs05.datz
SmLs06.dat
SmLs07.dat
SmLs08.dat
SmLs09.datr  zdata/nist_anova
r  r/  rF  )skiprowsr   r`   )r   r!  r"  r  zFailing testcase: )r  ro  )ospathabspathjoindirname__file__openreadsplitstripr   loadtxtr   r  r!  uniquer  rg   r  r   )ro   	filenames	test_caser  fnamerC  contentline	certifieddatafrs   rr   catyr  xlistr   hard_tcs                    ry   	test_nistTestFOneWay.test_nist   sT   ?	 #IDGGOOBGGLL1J1BI%O PEe&&(... 29"R. *.$ JJL &.I *JJur2E77DAA99Q<Dil2&'A(,-1qvYE-..%(C AGG#CFA&8$DF- # * .s   7 F&FF<F
F	za, b, expected)r  r  r  r
  r   c                     Sn[         R                  " [        R                  US9   [        R                  " X5      u  pVU(       d	   Xc:H  5       e S S S 5        g ! , (       d  f       g = f)N%Each of the input arrays is constant;r   )r   rd  rg   re  r  )ro   rM  rY  r  r   rC  rg  s          ry   rh  TestFOneWay.test_constant_input   sI     6\\%44C@>>!'DA#am#1 A@@s   )A
A'rU   )rV  r`   r   r   c                 r   [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/5      n[         R                  " / SQ/ SQ/ SQ/ SQ/ S	Q/ S
Q/ SQ/ SQ/5      n[         R                  " / SQ/ SQ/ SQ/ SQ/5      nUS;   a'  UR                  nUR                  nUR                  nSnOSnSn[        R                  " [
        R                  US9   [
        R                  " X#XAS9u  pxS S S 5        S Hx  n	[
        R                  " [         R                  " X)U5      [         R                  " X9U5      [         R                  " XIU5      5      u  p[        WU	   U
SS9  [        WU	   USS9  Mz     S H  n	[        R                  " [
        R                  US9   [
        R                  " [         R                  " X)U5      [         R                  " X9U5      [         R                  " XIU5      5      u  p[        WU	   U
5        [        WU	   U5        S S S 5        M     g ! , (       d  f       GN:= f! , (       d  f       M  = f)N)r   r5   r4   r4   )r3   r6   r4   r4   )r4   r7   r4   r4   r(  )r4   r   r6   r4   )r5   r7   r6   r4   )r5   r4   r6   r4   )r   r6   r6   r4   )r6   r6   r6   r4   )r3   r4   r6   r4   )r9   r3   r6   r4   )r3   r3   r6   r4   )r5   r4   r5   r4   )r5   r3   r5   r4   )r6   r5   r5   r4   r`   r   r   r   r>  r   rT   r_  rr  r  r`  )r   r   r   r   rd  rg   re  r  taker   r   )ro   rU   rM  rY  rs  	take_axisrE  rC  rg  r  fjpjs               ry   test_2d_inputsTestFOneWay.test_2d_inputs+  s   HHl""""	$ %
 HHl"""""""$ % HHl"""$ %
 7?AAAII:\\%44HE>>!5DA F
 A^^BGGA)$<$&GGA)$<$&GGA)$<>FB AaD"51AaD"51  Ae88Ii(@(*i(@(*i(@B QqT2&QqT2& JI  FE JIs   
HA8H'
H$'
H6	c           
         S[         R                  " SS5      R                  SSS5      -  nS[         R                  " SS5      R                  SS	S5      -  n[         R                  " S[         R                  " SS
5      R                  SSS5      -  5      n[        R
                  " XUSS9u  pEUR                  S:X  d   eUR                  S:X  d   e[        UR                  S   5       Ho  n[        UR                  S   5       HP  n[        R
                  " XS S 2U4   X&S S 2U4   X6S S 2U4   5      u  p[        XXg4   5        [        XXg4   5        MR     Mq     g )Nr   r      r5   r6   r8   r3      r9   q   rT   )r5   r8   r   )	r   r   ri   cosrg   r  r  r  r   )
ro   rM  rY  rs  rC  rg  r  r  fijpijs
             ry   test_3d_inputsTestFOneWay.test_3d_inputs[  s%   biiY'//1a88biiY'//1a88FF1RYYsI.66q!Q??@~~aAA.ww&   ww&   qwwqz"A1771:& >>!q!G*a1aj!q!G*MqtW-qtW- ' #r|   c                     [         R                  " [        [        S9   [        R
                  " / SQ/ / SQ5      n[        U[        R                  [        R                  45        S S S 5        g ! , (       d  f       g = f)Nr   r  r  )	r   rd  r   r   rg   r  r   r   rn   r)  s     ry   test_length0_1d_error!TestFOneWay.test_length0_1d_errorl  sH    \\,4IJ^^Ir<@F"&&"&&!12 KJJs   AA..
A<c                    [         R                  " [        [        S9   Sn[        R
                  " SU45      n[        R
                  " SU45      n[        R
                  " SU45      n[        R                  " X#U5      u  pV[        R                  " U4[        R                  S9n[        XW5        [        Xg5        S S S 5        g ! , (       d  f       g = f)Nr   r4   r5   r   r6   r  )r   rd  r   r   r   r  rg   r  r   rn   r   )ro   ncolsrM  rY  rs  rC  rg  r  s           ry   test_length0_2d_error!TestFOneWay.test_length0_2d_errorr  s    \\,4IJEE
#AE
#AE
#A>>!*DA77E87D!! KJJs   BC
Cc                     [         R                  " [        5         [        R                  " S/S/S/S/5      n[        U[        R                  [        R                  45        S S S 5        g ! , (       d  f       g = f)NrZ   r[   r\   r]   )r   rd  r   rg   r  r   r   rn   r)  s     ry   test_all_length_oneTestFOneWay.test_all_length_one}  sN    \\,-^^RD2$rd;F"&&"&&!12 .--s   AA,,
A:rA  r   r  c                 ~    Sn[        [        US9   [        R                  " U6   S S S 5        g ! , (       d  f       g = f)Nz$At least two samples are required...r   )r   r,  rg   r  )ro   rA  r  s      ry   test_too_few_inputsTestFOneWay.test_too_few_inputs  s)    89G4NND! 544s   .
<c                     [         R                  " S5      n[         R                  " S5      n[        [        5         [        R
                  " XSS9  S S S 5        g ! , (       d  f       g = f)Nr  r6   r5   r3   rT   )r   r  r   r&   rg   r  ro   rM  rY  s      ry   test_axis_errorTestFOneWay.test_axis_error  s>    GGFOGGFO9%NN1a( &%%   A
A)c                     [         R                  " S5      n[         R                  " S5      n[        [        5         [        R
                  " XSS9  S S S 5        g ! , (       d  f       g = f)Nr  r_  r   rT   )r   r  r   r   rg   r  r`  s      ry   test_bad_shapesTestFOneWay.test_bad_shapes  s>    GGFOGGFO:&NN1a( '&&rc  N)r   r   r   r   r  rZ  r  r  r  r  r  r;  r   r   r
  r   r   r!  rn   rh  rF  rO  rR  rV  rY  r\  ra  re  r   r   r|   ry   r  r    s   9:88,<-F@ [[-	,	)!4rvvqkB	,	,!7"&&"&&9IJ0
 $	$ [[V^4-' 5-'^."3	"3
 [[Vb9,%78" 9"
))r|   r  c                   P    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rSrg)TestKruskali  c                    S/nS/n[         R                  " X5      u  p4[        US5        [        U[         R                  R
                  R                  US5      5        [         R                  " [        R                  " U5      [        R                  " U5      5      u  p4[        US5        [        U[         R                  R
                  R                  US5      5        g )Nr   r3   r   )	rg   kruskalr   r
   r  r~  r  r   r   ro   rr   rs   hrg  s        ry   test_simpleTestKruskal.test_simple  s    CC}}Q"QAu2277::1a@A}}RXXa["((1+6QAu2277::1a@Ar|   c                    / SQn/ SQn[         R                  " X5      u  p4[        USSS9  [        U[         R                  R                  R                  SS5      5        [         R                  " [        R                  " U5      [        R                  " U5      5      u  p4[        USSS9  [        U[         R                  R                  R                  SS5      5        g )Nr   r4   r6   r8   r:   r3   r5   r7   r9   rZ   r  rZ   r  r   )rg   rj  r
   r  r~  r  r   r   rk  s        ry   rZ  TestKruskal.test_basic  s    }}Q"Au"5Au2277::5!DE}}RXXa["((1+6Au"5Au2277::5!DEr|   c                 h    S/nSS/nSnSnX4-  n[         R                  " X5      u  pg[        Xe5        g )Nr   r3   rt  r  )rg   rj  r   ro   rr   rs   h_uncorrr  r  rl  rg  s           ry   test_simple_tieTestKruskal.test_simple_tie  s=    CF*?}}Q" 	Q!r|   c                     / SQn/ SQnSnS[        S5      S-  -
  nX4-  n[        R                  " X5      u  pg[        Xe5        g )N)r   r   r   r3   )r3   r3   r3   r3   r   r        )r  rg   rj  r
   rt  s           ry   test_another_tieTestKruskal.test_another_tie  sE    >5,-::?}}Q"A(r|   c                     / SQn/ SQnSS/nSnS[        S5      S-  -
  nXE-  n[        R                  " XU5      u  px[        Xv5        [        U[        R                  R
                  R                  US5      5        g )Nr  rC  r3   rM   r   ry  rz  )r  rg   rj  r
   r  r~  r  )	ro   rr   rs   r2  ru  r  r  rl  rg  s	            ry   test_three_groupsTestKruskal.test_three_groups  ss    FG5,-::?}}Q1%A(Au2277::1a@Ar|   c                    / SQn/ SQn/ n[         R                  " [        [        S9   [	        [
        R                  " XU5      [        R                  [        R                  45        S S S 5        g ! , (       d  f       g = f)Nr  rC  r   )	r   rd  r   r   r   rg   rj  r   rn   )ro   rr   rs   r2  s       ry   r  TestKruskal.test_empty  sP    \\,4IJqQ/"&&"&&1AB KJJs   A A11
A?c                 Z    / SQn/ SQn[         R                  " X5      nSn[        X45        g )Nrp  rq  r  )rg   rj  r   )ro   rr   rs   r   rB  s        ry   test_kruskal_result_attributes*TestKruskal.test_kruskal_result_attributes  s'    mmA!,
C,r|   c                    [         R                  " S5      n[         R                  US'   [        [        R
                  " X5      [         R                  [         R                  45        [        [        R
                  " XSS9S5        [        [        [        R
                  XSS9  [        [        [        R
                  XSS9  g )Nr   r:   r   r   r  r   r   )	r   r   rn   r   rg   rj  r   r   r   r  s     ry   r  TestKruskal.test_nan_policy  su    IIcNvv!U]]1(266266*:;EMM!6BJOj%--'Jj%--(Kr|   c                     Sn[         R                  R                  U5      n[         R                  R                  U5      S-   n[        R                  " X#5      u  pESn[        XV5        g )NrQ
  r  r   )r   r  r  rg   rj  r
   )ro   r  rr   rs   rl  rg  r  s          ry   test_large_no_samples!TestKruskal.test_large_no_samples  sM    IIOOAIIOOA#}}Q"A(r|   c                     Sn[         R                  " [        US9   [        R                  " 5         S S S 5        g ! , (       d  f       g = f)Nz-Need at least two groups in stats.kruskal\(\)r   )r   r   r   rg   rj  rA  s     ry   test_no_args_gh20661 TestKruskal.test_no_args_gh20661  s*    B]]:W5MMO 655s	   ;
A	r   N)r   r   r   r   rm  rZ  rv  r{  r~  r  r  r  r  r  r   r   r|   ry   rh  rh    s9    BF	")
BC-L)r|   rh  c                      \ rS rSr\R
                  R                  S/ SQ5      S 5       r\R
                  R                  S/ SQSS4/ S	QS
S4/5      S 5       r/ SQr	\R
                  R                  S/ SQ5      \R
                  R                  S\	5      S 5       5       r
\R
                  R                  S\	5      S 5       r\R
                  R                  S\	5      \R
                  R                  SSS/5      S 5       5       rSrg)TestCombinePvaluesi  z+method, expected_statistic, expected_pvalue))r  g'"x-@g({#H?)stoufferv!:@/?)r  gQ4gF?)tippettr  gL^i?)mudholkar_georgegzP@guKqN?c                     / SQn[         R                  " UR                  U5      US9n[        UR                  UR                  U5      5        [        UR
                  UR                  U5      5        g )Nr  r5  rO  r  )rg   combine_pvaluesre   r1   r@  r?  )ro   rp   r  r  r  rr   r   s          ry   test_reference_values(TestCombinePvalues.test_reference_values  sR     ##BJJqM&Arzz2D'EF

BJJ$?@r|   z,weights, expected_statistic, expected_pvaluer   r   r   r  r  )r   r   r   ga;?grmT?c                    UR                  / SQ5      n[        R                  " USUR                  U5      S9n[        UR                  UR                  U5      5        [        UR
                  UR                  U5      5        g )Nr  r  )r  r
  )re   rg   r  r1   r@  r?  )ro   rp   r
  r  r  rr   r   s          ry   test_weighted_stouffer)TestCombinePvalues.test_weighted_stouffer	   s^     JJ}%##Aj"**WBUVrzz2D'EF

BJJ$?@r|   )r  r  r  r  r  rr  )singler  r  r  c                    Su  pE[         R                  R                  S5      nUS:X  an  UR                  UR	                  UR                  U5      5      XE45      nUR                  UR                  UR                  SSU5      S5      US S 2SS 24   /SS9nOjUS	:X  a/  UR                  UR                  SSU5      XT45      R                  nO5US
:X  a/  UR                  UR	                  UR                  SSXE4S95      SS9nUR	                  [        WR                  S   5       Vs/ s H*  n[        [        R                  " XxS S 24   US9S   5      PM,     sn5      n	UR!                  U	SS  U	S S -
  S:  5      (       d   eg s  snf )N)rZ   r8   l	   TrU(	"b-= r  rL  rN  rA  r   rT   r  r  r   r  r  r`   )r   r  r  r  re   r  ri   r6  r   r  r  r  r  r  rg   r  r  )
ro   rr  r  rp   r  r  r  pvaluessr  combined_pvaluess
             ry   test_monotonicity$TestCombinePvalues.test_monotonicity   s|    ii##$KL hrzz#**Q-'@1&IHyy"**R[[c1-Ew"O"*1ab5/"39: ! <Hr{{3Q'?!HJJH wwrzz#++a!+*HIPQwRH::8>>!,-'
- %''AvFqIJ-'
  vv&qr*-=cr-BBaGHHHH	'
s   '1Fc                     [         R                  " UR                  / SQ5      US9n[        UR                  US   5        [        UR
                  US   5        g )Nr  r  r   r   )rg   r  re   r2   r@  r?  )ro   r  rp   r   s       ry   rZ  TestCombinePvalues.test_result5   sA    ##BJJ}$=fMs1v.

CF+r|   rU   r   r   c                 V   [         R                  R                  S5      nUR                  UR                  SS95      nUS:X  a  UR                  OUn[
        R                  " XRUS9nUcg  UR                  US5      n[
        R                  " XQS9n[        UR                  UR                  5        [        UR                  UR                  5        g US:X  a  UR                  OUnUSS S 24   USS S 24   p[
        R                  " XS9n
[
        R                  " XS9n[        UR                  S   U
R                  5        [        UR                  S   UR                  5        [        UR                  S   U
R                  5        [        UR                  S   UR                  5        g )	Nl   2'$FV r3   rZ   r  r   )rU   r  r  r  r   )r   r  r  re   r   rg   r  ri   r1   r@  r?  )ro   r  rU   rp   r  rr   r   r  r  r  ref0ref1s               ry   r  TestCombinePvalues.test_axis;   sB   
 ii##O4JJszzwz/0AIACCA##A@<

1e$A''9CCMM3==9CJJ

3AIACCA1a4!AqD'B$$R7$$R7a($..9a($..9

1t{{3

1t{{3r|   r   N)r   r   r   r   r   r   r
  r  r  r  r  rZ  r  r   r   r|   ry   r  r    s-    [[5	GHAHA [[ 	7
)+>	?
)+=	>	@	AA	AA OG[[Y(CD[[Xw/I 0 EI0 [[Xw/, 0,
 [[Xw/ [[VaV,4 - 04r|   r  c                   6    \ rS rSrSrS rS rS rS rS r	Sr
g	)
TestCdfDistanceValidationiW   z[
Test that _cdf_distance() (via wasserstein_distance()) raises ValueErrors
for bad inputs.
c           	          [        [        [        R                  S/S/S/SS/5        [        [        [        R                  S/S/SS/5        g )Nr   r3   r5   r4   r   r   r   rg   wasserstein_distancer  s    ry   &test_distinct_value_and_weight_lengths@TestCdfDistanceValidation.test_distinct_value_and_weight_lengths]   sG     	j%"<"<cA3aV	-j%"<"<qcA3AOr|   c                     [        [        [        R                  SS/S/SS/5        [        [        [        R                  SS/S/SS/S/5        g )Nr   r   r3   r4   r  r  s    ry   test_zero_weight*TestCdfDistanceValidation.test_zero_weightd   sN     	j%"<"<!fqcAq6	+j%"<"<!fqcAq6A3	0r|   c           	      X    [        [        [        R                  SS/SS/SS/SS/5        g )Nr   r   r3   r4   r`   r  r  s    ry   test_negative_weights/TestCdfDistanceValidation.test_negative_weightsl   s-    j%"<"<!fq!fq!fq"g	7r|   c                     [        [        [        R                  / SS/5        [        [        [        R                  S// 5        g r   r  r  s    ry   test_empty_distribution1TestCdfDistanceValidation.test_empty_distributionq   s2     	j%"<"<b1a&Ij%"<"<qc2Fr|   c           	      v    [        [        [        R                  / SQSS/S[        R
                  S/SS/5        g )Nr  r   )r   r   rg   r  r   r!  r  s    ry   test_inf_weight)TestCdfDistanceValidation.test_inf_weightw   s0    j%"<"<!Q!RVVQ!Q	Ar|   r   N)r   r   r   r   r8  r  r  r  r  r  r   r   r|   ry   r  r  W   s#    
P07
GAr|   r  c                   t   \ rS rSrSrS r\R                  R                  SS5      \R                  R                  SS5      \R                  R                  SS	5      S
 5       5       5       r	\R                  R                  SS5      \R                  R                  SS5      \R                  R                  SS5      S 5       5       5       r
\R                  R                  SS5      \R                  R                  SS5      \R                  R                  SS5      S 5       5       5       rS r\R                  R                  SS5      \R                  R                  SS5      \R                  R                  SS5      S 5       5       5       r\R                  R                  SS5      \R                  R                  SS5      \R                  R                  SS5      S 5       5       5       rS r\R                  R                  S/ SQ5      \R                  R                  S/ SQ5      S 5       5       rS rg!)"TestWassersteinDistanceNDi}   z7Tests for wasserstein_distance_nd() output values.
    c                    / SQn/ SQn[         R                  " X5      n[        R                  " / SQ5      n[        R                  " / SQ5      n[        R                  " XE-  5      [        R                  " U5      -  n[        X65        g )N)r  r  r  r  r  r  r  r  r  r  )r5   r3   r7   r   r  )r  r  r=  r=  r=  r	  r	  r	  r	  r	  r	  r	  )r8   r   )r   r   rM   r   r   r   )r   gw@r   re  r   r   )rg   wasserstein_distance_ndr   r   rg  r   )ro   r  r  r   flowdistr  s          ry   test_published_values/TestWassersteinDistanceND.test_published_values   sg    
"" ++A1 xx01xx@AffT[!"&&,.!r|   n_value)r5   r  rE  r	  )r4   r5   r8   max_repeats)r6   rZ   c                    [         R                  R                  S5      nUR                  SX2[        S9nUR                  X!4S9n[         R
                  " XeSS9nUR                  [         R                  " U5      5      n[         R
                  " [         R                  " [        U5      5      U5      n	[         R                  " XS9n
UR                  [        U5      5      nX{   X   p[        R                  " XgX5      n[        USSS	9  g )
Nl   na{F.aP	 r   )r  rJ   r  r   rT   r
  rF  rG  )r   r  r  r]	  r!  r  rg  r   r  bincountr  rg   r  r   )ro   r	  r  r  r  repeatsu_valuesv_values	v_weightsrange_repeat	u_weightsr	  r   s                ry   test_same_distribution_nD3TestWassersteinDistanceND.test_same_distribution_nD   s     ii##$<=,,q+3,G::G?:399XQ7JJrvvg/	yy3w<!8'BKK@	I/&oy/?)++H	UQU+r|   nu)r9   r:   &   nv)r9   r\   rc   )r4   r6   r  c                 r   [         R                  R                  S5      nUR                  X4S9n[         R                  " X#45      nUR                  US9nUR                  US9n[         R                  " [         R
                  R                  USS9US9n	[        R                  " XVXx5      n
[        X5        g )N   }&=:! r  r   rT   r
  )
r   r  r  rb  r7  r+  ra  rg   r  r   )ro   r  r  r	  r  r  r  r  r  r  r   s              ry   test_collapse_nD*TestWassersteinDistanceND.test_collapse_nD   s     ii##$89::B::.88RJ'JJBJ'	JJBJ'	jjq99M++H	U!r|   )r9   r   r  )r   r3   r7   c                    [         R                  R                  S5      nUR                  X4S9nUR                  X#4S9nUR                  US9nUR                  US9n[        R                  " XVXx5      n	UR                  SUSS9u  pUR                  X4S9n[         R                  " XZUSS9n[         R                  " Xz[         R                  " U5      SS9n[        R                  " XVXx5      n[        X5        g )Nr  r  r   r3   rT   )	r   r  r  rg   r  r]	  insertrb  r   )ro   r  r  r	  r  r  r  r  r  r  add_rownrows	add_valuer   s                 ry   test_zero_weight_nD-TestWassersteinDistanceND.test_zero_weight_nD   s    
 ii##$89::B::.::B::.JJBJ'	JJBJ'	++H	Ua!4JJUMJ2	99X	BIIi"((5/J	++H	U!r|   c                     SS/SS//[         R                  [         R                  * //SS/p2n[        R                  " XU5      n[	        U[         R                  5        [         R
                  " SS9   [         R                  [         R                  //[         R                  [         R                  * //p![        R                  " X5      n[	        U[         R                  5        S S S 5        g ! , (       d  f       g = f)Nr   r3   r  r  )r   r!  rg   r  r   r  rn   )ro   uvvvuwdistances        ry   test_inf_values)TestWassersteinDistanceND.test_inf_values   s     !fq!f%"&&(9':QF00<Xrvv&[[*vvrvv&'266BFF7*;)<44R<H266* +**s   3A3C//
C=r	  )r   r4   r6   c                    [         R                  R                  S5      nUR                  X4S9nUR                  X#4S9nUR                  US9nUR                  US9n[        R                  " XVXx5      n	UR                  SU5      n
UR                  5       n[         R                  " XZUSS9n[         R                  " XjUSS9n[        R                  " XVXx5      n[        X5        g )Nl   Lq/ r  r   r   rT   )r   r  r  rg   r  r]	  r  r   )ro   r  r  r	  r  r  r  r  r  r  add_dimr  r   s                ry   test_multi_dim_nD+TestWassersteinDistanceND.test_multi_dim_nD   s    
 ii##$78::B::.::B::.JJBJ'	JJBJ'	++H	U,,q$'JJL	99X	B99X	B++H	U!r|   )r8   r]   r  )r3   r5   r8   c                    [         R                  R                  S5      nUR                  X4S9nUR                  X#4S9nUR                  US9nUR                  US9n[        R                  " XVXx5      n	[        R
                  " U5      n
U
R                  US9nUR                  US9n[        R                  " X[-  U-   Xk-  U-   Xx5      n[        X5        g )Nl   uAh~r  r  )r   r  r  rg   r  ortho_groupr  r   )ro   r  r  r	  r  r  r  r  r  r  r  	transformshiftr   s                 ry   test_orthogonal_nD,TestWassersteinDistanceND.test_orthogonal_nD   s     ii##N3::B::.::B::.JJBJ'	JJBJ'	++H	U  &HH#H.	


%++H,@5,H)1)=)E)2? 	!r|   c                    [         R                  R                  S5      n[        R                  " [
        SS9   UR                  SS9nUR                  SS9n[        R                  " X#5      nS S S 5        [        R                  " [
        SS9   UR                  SS9nUR                  S	S9n[        R                  " X#5      nS S S 5        [        R                  " [
        S
S9   UR                  SS9nUR                  SS9n[        R                  " X#5      nS S S 5        g ! , (       d  f       N= f! , (       d  f       Nv= f! , (       d  f       g = f)Nl   e36^[Y{lz Invalid input values. The inputsr   )r5   rZ   r  r  )r7   r3   r8   z Invalid input values. Dimensions)r  )r4   r  z(Invalid input values. If two-dimensionalr  r>  )r   r  r  r   r   r   rg   r  )ro   r  r  r  r  s        ry   test_error_code)TestWassersteinDistanceND.test_error_code   s   ii##$>?]]:-OPzz{z3Hzzyz1H--hAA Q ]]:-OPzzuz-Hzzwz/H--hAA Q ]]:<>zzwz/Hzzvz.H--hAA	> > QP QP> >s#   5D#5D4%5E#
D14
E
Eu_size)r   rZ   r  v_sizec                 h   [         R                  R                  S5      nUR                  US4S9nUR                  US4S9nUR                  5       nUR                  5       n[        R
                  " Xg5      n[        R                  " XE5      n	[        R                  " Xg5      n
[        X5        [        X5        UR                  US9nUR                  US9n[        R
                  " XgX5      n[        R                  " XEX5      n	[        R                  " XgX5      n
[        X5        [        X5        g )Nl   Ku@* r   r  )r   r  r  r  rg   r  r  r   )ro   r  r  r  r  r  u_values_flatv_values_flatd1d2d3r  r  s                ry   test_optimization_vs_analytical9TestWassersteinDistanceND.test_optimization_vs_analytical!  s	    ii##K0::FA;:/::FA;:/ ( ( ''E**8>**=HJJFJ+	JJFJ+	''(1>**8(1>**=(1>r|   r   N)r   r   r   r   r8  r  r   r   r
  r  r  r  r  r  r  r  r  r   r   r|   ry   r  r  }   s   "& [[Y4[[VY/[[]G4, 5 0 5," [[T:.[[T;/[[VZ0" 1 0 /" [[T;/[[T;/[[VY/" 0 0 0" 	+ [[T<0[[T<0[[VY/" 0 1 1"" [[T;/[[T;/[[VY/" 0 0 0"$B  [[X{3[[X{3  4 4 r|   r  c                   B    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
rg)TestWassersteinDistancei,!  z4Tests for wasserstein_distance() output values.
    c                 D   [        [        R                  " SS/S/SS/S/5      S5        [        [        R                  " SS/S/SS/S/5      S5        [        [        R                  " SS/S/SS/S/5      S5        [        [        R                  " / SQ/ SQ5      S5        g )	Nr   r   r<   r4   r  r3   r  r  r   rg   r  r  s    ry   rm  #TestWassersteinDistance.test_simple0!  s     	&&1vsQFQC@	 	22FQC!Q!&	 	22FQC!Q!&	 	22y"	r|   c           	          [        [        R                  " / SQ/ SQ5      S5        [        [        R                  " / SQSS// SQSS/5      S5        g 	Nr  ru  r   )r   r   r   r5   r5   r   rV  r4   )r   rg   r  r  s    ry   test_same_distribution.TestWassersteinDistance.test_same_distribution@!  sE     	U//	9EqI&&|aV'3aV=	r|   c           	      0   [        [        R                  " S/S/5      S5        [        [        R                  " S/S/5      S5        [        [        R                  " / SQ/ SQ5      S5        [        [        R                  " / SQ/ S	Q/ S
Q/ SQ5      S5        g )Nr   r   r  r6   rZ   r  )r[   r\   r]   rX   r  )r@   g@r
  )r
  r8   r  )r4   r   r   )r   r4   r   r>   r  r  s    ry   
test_shift"TestWassersteinDistance.test_shiftI!  sz     	22A3<a@22B4!=rB&&8LM	 	&&'0)=	r|   c           
          [        [        R                  " / SQ/ SQ/ SQ/ SQ5      [        R                  " / SQ/ SQ/ SQ/ SQ5      5        g N)r   r   r   r   r   r   r6   )r   r4   r4   r4   r4   r5   r5   )r   r   r   r   r   r   r   )r6   r   r   )r   r5   r4   r   r3   r5   r  r  s    ry   test_combine_weights,TestWassersteinDistance.test_combine_weightsV!  s?     	&&%'<%'<> &&y)'0)=		>r|   c                    [         R                  " SSS5      n[         R                  " U5      n[        [        R
                  " X5      [         R                  " [         R                  " U5      5      5        [         R                  " [        U5      5      nUS S S2   n[        [        R
                  " XX45      [         R                  " [         R                  " U5      US95        g )Nr  r  rO  r`   r
  )
r   r   r  r   rg   r  rj   r  r  r7  )ro   r  r  r  r  s        ry   test_collapse%TestWassersteinDistance.test_collapse`!  s     IIc2s#MM!&&q,GGBFF1I	  IIc!f%	ddO	&&qYBJJrvvay)4	6r|   c           
          [        [        R                  " / SQSS// SQSS/5      [        R                  " SS/SS/SS/SS/5      5        g N)r   r3   r_  r   r	  r3   r  r  s    ry   r  (TestWassersteinDistance.test_zero_weightp!  sN    &&~1v'01a&:&&1v1v1v1vF	Hr|   c                    [        [        R                  " SS[        R                  /SS/5      [        R                  5        [        [        R                  " SS[        R                  /[        R                  * S/5      [        R                  5        [        [        R                  " S[        R                  * [        R                  /SS/5      [        R                  5        [        5        nUR                  [        S5        [        [        R                  " SS[        R                  /[        R                  S/5      [        R                  5        S S S 5        g ! , (       d  f       g = fNr   r3   r   )	r   rg   r  r   r!  r   r   r   rn   ro   r   s     ry   r  'TestWassersteinDistance.test_inf_valuesw!  s     	&&1bff~1v>FF	 	&&1bff~|DFF	 	&&BFF7BFF';aVDFF	  CJJ~'78**Aq"&&>BFFA;G !     /A'E
E-r   N)r   r   r   r   r8  rm  r  r  r  r  r  r  r   r   r|   ry   r  r  ,!  s+     >6 Hr|   r  c                   <    \ rS rSrSrS rS rS rS rS r	S r
S	rg
)TestEnergyDistancei!  z/Tests for energy_distance() output values.
    c                    [        [        R                  " SS/S/SS/S/5      [        R                  " S5      S-  5        [        [        R                  " SS/S/SS/S/5      [        R                  " S5      S-  5        [        [        R                  " SS/S/SS/S/5      S5        [        [        R                  " / SQ/ S	Q5      [        R                  " S5      S
-  5        g )Nr   r   r3   r<   r4   r  r   r  r  rd  r   rg   energy_distancer   rJ  r  s    ry   rm  TestEnergyDistance.test_simple!  s     	!!1a&1#1vs;GGAJO	 	E11FQC!Q!&GGAJ	 	E11FQC!Q!&	 	!!)Y7GGAJ**	,r|   c           	          [        [        R                  " / SQ/ SQ5      S5        [        [        R                  " / SQSS// SQSS/5      S5        g r  )r   rg   r  r  s    ry   r  )TestEnergyDistance.test_same_distribution!  sB     	U**9i@!D!!,Aq!fM	r|   c                     [        [        R                  " S/S/5      [        R                  " S5      5        [        [        R                  " S/S/5      [        R                  " S5      S-  5        g )Nr   r   r3   r  r6   gS[:XL	@r  r  s    ry   r  TestEnergyDistance.test_shift!  sS     	E111#s;RWWQZH!!2$,GGAJ	!r|   c           
          [        [        R                  " / SQ/ SQ/ SQ/ SQ5      [        R                  " / SQ/ SQ/ SQ/ SQ5      5        g r  r   rg   r  r  s    ry   r  'TestEnergyDistance.test_combine_weights!  s<     	!!"79N"79NP!!)Y	9M	Or|   c           
          [        [        R                  " / SQSS// SQSS/5      [        R                  " SS/SS/SS/SS/5      5        g r  r%  r  s    ry   r  #TestEnergyDistance.test_zero_weight!  sK    !!.1a&)aVL!!1a&1a&1a&1a&A	Cr|   c                    [        [        R                  " SS[        R                  /SS/5      [        R                  5        [        [        R                  " SS[        R                  /[        R                  * S/5      [        R                  5        [        [        R                  " S[        R                  * [        R                  /SS/5      [        R                  5        [        5        nUR                  [        S5        [        [        R                  " SS[        R                  /[        R                  S/5      [        R                  5        S S S 5        g ! , (       d  f       g = fr  )	r   rg   r  r   r!  r   r   r   rn   r  s     ry   r  "TestEnergyDistance.test_inf_values!  s     	U**Aq"&&>Aq6BBFFK!!1a.BFF7A,?FF	 	!!1rvvgrvv"6A?FF	  CJJ~'78%%q!RVVnrvvqkB !  r  r   N)r   r   r   r   r8  rm  r  r  r  r  r  r   r   r|   ry   r  r  !  s'    , !OCr|   r  c                       \ rS rSr/ SQr/ SQrSrS rS rS r	S r
S	 rS
 r\R                  R                  SS/ 0S/ 0/ / S./5      S 5       rS rS rS rS rS rSrg)TestBrunnerMunzeli!  )r   r3   r   r   r   r   r   r   r   r   r3   r5   r   r   r4   r4   r5   r4   r   r3   r4   r   r   r6   r5   r]   c                    [         R                  " U R                  U R                  SS9u  p[         R                  " U R                  U R                  SS9u  p4[         R                  " U R                  U R                  SS9u  pV[         R                  " U R                  U R                  SS9u  px[	        X$U R
                  S9  [	        XhU R
                  S9  [        X&:g  5        [	        USU R
                  S9  [	        USU R
                  S9  [	        USU R
                  S9  [	        USU R
                  S9  [	        USU R
                  S9  [	        USU R
                  S9  g )	Nr  r  r  r  |	&	@|	&	gҏGg?g@-pL?)rg   brunnermunzelrf   ri
  r
   r  r   rj
  s	            ry   test_brunnermunzel_one_sided.TestBrunnerMunzel.test_brunnermunzel_one_sided!  s(   $$TVVTVVH$$TVVTVVK$$TVVTVVK$$TVVTVVHB0@0@AB0@0@AB 2(,(8(8	:B 3(,(8(8	:B 2(,(8(8	:B 3(,(8(8	:B 5(,(8(8	:B 3(,(8(8	:r|   c                 Z   [         R                  " U R                  U R                  SS9u  p[         R                  " U R                  U R                  SS9u  p4[	        X$U R
                  S9  [	        USU R
                  S9  [	        USU R
                  S9  [	        USU R
                  S9  g )Nr  r  r  r/  r0   ҏGw?rg   r1  rf   ri
  r
   r  rt
  s        ry   test_brunnermunzel_two_sided.TestBrunnerMunzel.test_brunnermunzel_two_sided!  s    $$TVVTVVM$$TVVTVVMB0@0@AB 2(,(8(8	:B 3(,(8(8	:B 5(,(8(8	:r|   c                 ^   [         R                  " U R                  U R                  5      u  p[         R                  " U R                  U R                  5      u  p4[	        X$U R
                  S9  [	        USU R
                  S9  [	        USU R
                  S9  [	        USU R
                  S9  g )Nr  r/  r0  r5  r6  rt
  s        ry   test_brunnermunzel_default,TestBrunnerMunzel.test_brunnermunzel_default!  s    $$TVVTVV4$$TVVTVV4B0@0@AB 2(,(8(8	:B 3(,(8(8	:B 5(,(8(8	:r|   c           	          SnSnSn[        US;  5        [        [        [        R                  U R
                  U R                  UUU5        g )Nr  r  r  r(  r   r   r   rg   r1  rf   ri
  ro   r  distributionr   s       ry   $test_brunnermunzel_alternative_error6TestBrunnerMunzel.test_brunnermunzel_alternative_error"  sI     
#CCDj))ffff!" 	"r|   c                 Z   [         R                  " U R                  U R                  SS9u  p[         R                  " U R                  U R                  SS9u  p4[	        X$U R
                  S9  [	        USU R
                  S9  [	        USU R
                  S9  [	        USU R
                  S9  g )Nr  r?  r  r/  r0  g "H[?r6  rt
  s        ry   $test_brunnermunzel_distribution_norm6TestBrunnerMunzel.test_brunnermunzel_distribution_norm"  s    $$TVVTVV(K$$TVVTVV(KB0@0@AB 2(,(8(8	:B 3(,(8(8	:B 5(,(8(8	:r|   c           	          SnSnSn[        US;  5        [        [        [        R                  U R
                  U R                  UUU5        g )Nr  r  r  )r  r  r=  r>  s       ry   %test_brunnermunzel_distribution_error7TestBrunnerMunzel.test_brunnermunzel_distribution_error"  sH    ! 
?23j))ffff!" 	"r|   kwarg_updaters   rr   rY  c                 ^   U R                   U R                  S.nUR                  U5        [        R                  " [
        [        S9   [        R                  " S0 UD6u  p4S S S 5        [        W[        R                  5        [        W[        R                  5        g ! , (       d  f       NC= f)NrY  r   r   )rf   ri
  r  r   rd  r   r   rg   r1  r   r   rn   )ro   rI  rB  r@  r?  s        ry   test_brunnermunzel_empty_imput0TestBrunnerMunzel.test_brunnermunzel_empty_imput)"  st     vvDFF+l#\\,4IJ % 3 3 =f =I KY'VRVV$ KJs   B
B,c                 v   SSSSSSSSSSSSSS[         R                  /n/ SQn[        R                  " XSS9u  p4[        R                  " X!SS9u  pV[	        U[         R                  5        [	        U[         R                  5        [	        U[         R                  5        [	        U[         R                  5        g )Nr   r3   r5   r-  r  r   )r   rn   rg   r1  r   ro   rf   ri
  rk
  r  rl
  r	  s          ry   &test_brunnermunzel_nan_input_propagate8TestBrunnerMunzel.test_brunnermunzel_nan_input_propagate3"  s    1aAq!Q1aArvv>-$$QkB$$QkBR R R R r|   c                     SSSSSSSSSSSSSS[         R                  /n/ SQnSnSnSn[        [        [        R
                  UUUUU5        [        [        [        R
                  UUUUU5        g )Nr   r3   r5   r-  r  r  r   )r   rn   r   r   rg   r1  )ro   rf   ri
  r  r?  r   s         ry   "test_brunnermunzel_nan_input_raise4TestBrunnerMunzel.test_brunnermunzel_nan_input_raise>"  s    1aAq!Q1aArvv>-!
j))!" 	" 	j))!" 	"r|   c                 L   SSSSSSSSSSSSSS[         R                  /n/ SQn[        R                  " XSS9u  p4[        R                  " X!SS9u  pV[	        XFU R
                  S9  [	        USU R
                  S9  [	        US	U R
                  S9  [	        US
U R
                  S9  g )Nr   r3   r5   r-  r   r   r  r/  r0  r5  )r   rn   rg   r1  r
   r  rN  s          ry   !test_brunnermunzel_nan_input_omit3TestBrunnerMunzel.test_brunnermunzel_nan_input_omitT"  s    1aAq!Q1aArvv>-$$Qf=$$Qf=B0@0@AB 2(,(8(8	:B 3(,(8(8	:B 5(,(8(8	:r|   c                     / SQn/ SQnSn[         R                  " [        US9   [        R                  " XSS9  SSS5        g! , (       d  f       g= f)zktests that a warning is emitted when p is nan
p-value with t-distributions can be nan (0/0) (see gh-15843)
r  r  zDp-value cannot be estimated|divide by zero|invalid value encounteredr   r  rC  N)r   rd  r   rg   r1  r  s       ry   test_brunnermunzel_return_nan/TestBrunnerMunzel.test_brunnermunzel_return_nanb"  s=     T\\.437 544s   A
Ac                     / SQn/ SQn[         R                  " [        SS9   [        R                  " XSS9u  p4SSS5        [        WS5        g! , (       d  f       N= f)	z^tests that a p is 0 for datasets that cause p->nan
when t-distribution is used (see gh-15843)
r  r  zdivide by zeror   r  rC  Nr   )r   rd  r   rg   r1  r   )ro   rr   rs   r  rg  s        ry   test_brunnermunzel_normal_dist0TestBrunnerMunzel.test_brunnermunzel_normal_distm"  sK     \\.0@A&&q(CDA BQ BAs   A
Ar   N)r   r   r   r   rf   ri
  r  r2  r7  r:  r@  rD  rG  r   r   r
  rK  rO  rR  rU  rX  r[  r   r   r|   ry   r,  r,  !  s    2A)AK:.::"	:" [[^sBi#r46R.@.B C%C%	!",:	8	r|   r,  c                      \ rS rSrSrS r\R                  R                  S/ SQ/ SQSS\	R                  * S	S
/SSS\	R                  S//5      S 5       r\R                  R                  S/ SQ/ SQ/5      S 5       r\R                  R                  SSS/5      \R                  R                  SS
S/5      \R                  R                  SSS/5      S 5       5       5       rS rSrg)TestQuantileTestiy"  zYTest the non-parametric quantile test,
including the computation of confidence intervals
c                 B   / SQnSn[         R                  " [        US9   [        R                  " U/5        S S S 5        Sn[         R                  " [        US9   [        R                  " USS/S9  S S S 5        Sn[         R                  " [        US9   [        R                  " US	S
/S9  S S S 5        [         R                  " [        US9   [        R                  " USS9  S S S 5        [         R                  " [        US9   [        R                  " USS9  S S S 5        Sn[         R                  " [        US9   [        R                  " USS9  S S S 5        Sn[         R                  " [        US9   [        R                  " U5      R                  S5        S S S 5        g ! , (       d  f       GNv= f! , (       d  f       GNM= f! , (       d  f       GN$= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr  z/`x` must be a one-dimensional array of numbers.r   z`q` must be a scalar.r   r3   )rC  z-`p` must be a float strictly between 0 and 1.r<   r  )rg  rs  z`alternative` must be one of...z	one-sidedr  r1  )r   r   r   rg   quantile_testr  )ro   rr   r  s      ry   test_quantile_test_iv&TestQuantileTest.test_quantile_test_iv~"  sn   C]]:W5$ 6 *]]:W5aV, 6 B]]:W5c4[1 6]]:W5Q' 6]]:W5T* 6 4]]:W5{; 6 I]]:W5"66q9 65) 65 65 655555 65 65sS   F'F9GGG.?G?8&H'
F69
G
G
G+.
G<?
H
Hzp, alpha, lb, ub, alternative)rO  rn  gX݊?g蜶?r  )r<   rN  g-tA?gP"?r  r  rn  g{gA?r  r@  rN  gg @r  c                     [         R                  " [         R                  " SSS5      5      n[        R                  " XaUS9n[        UR                  U5      X4/SS9  g )Nr   r  r  )rg  r  rF  r  )r   r  r   rg   r`  r   r  )ro   rg  r4  lbubr  rr   r   s           ry   test_R_ci_quantile#TestQuantileTest.test_R_ci_quantile"  sJ      FF299Qd+,!!!kB//6uMr|   zq, p, alternative, ref)ru  rO  r  gͯI	?)r  r<   r  gɍQ%e?c                     [         R                  " [         R                  " SSS5      5      n[        R                  " XQX#S9n[        UR                  USS9  g )Nr   r  r  rC  rg  r  r;   r  )r   r  r   rg   r`  r   r?  )ro   rC  rg  r  r  rr   r   s          ry   test_R_pvalueTestQuantileTest.test_R_pvalue"  sA     FF299Qd+,!!!AG

Ce4r|   r  
continuousdiscreter  r4  c                    [        S[        U5      -  [        U5      -   U-  5      n[        R                  R	                  U5      nUS:X  a!  UR                  SS9u  pgUR                  SS9nO3UR                  SSSS9nUR                  5       nUR                  SS5      n[        R                  " XXbS9n	U	R                  US	9n
US
:X  a  XR                  :*  nOXR                  :  nX    H-  n[        R                  " XXbS9n	U	R                  SU-
  :  a  M-   e   X)     H-  n[        R                  " XXbS9n	U	R                  SU-
  :  a  M-   e   g )Nr8   rl  r3   r  r  r   r[   ri  r+  r  )r!  r  r   r  r  r]	  rg   r`  r  r  r  r?  )ro   r  r  r4  r  r  rg  rC  r  r   r  i_insiderr   s                ry   test_pval_ci_match#TestQuantileTest.test_pval_ci_match"  sC    As4yL3{#33U:;ii##D)<::1:%DA**#*&C,,q"3,/C

AQ#A!!#aI$$e$< & gg~Hff}HA%%c!MC::E	)))  YA%%c!MC::E	)))  r|   c                    / SQnSn[         R                  " USSSS9n[        UR                  USS9  S	/S
-  S/S-  -   n[         R                  " SSS9R                  S
S9n[         R                  " USSSS9n[        UR                  USS9  g )N)                                    rA        geX?r~  r  r  ri  r
  r  ;   r9   rV   h   r<   p   )rg  r  r  rF  r  r  rG  )rg   r`  r   r?  r   rh  )ro   rr   pvalue_expectedr   s       ry   test_match_conover_examples,TestQuantileTest.test_match_conover_examples"  s     !!!sdL

O$? DFbT5\!++s377!7<!!!rSiH

O%@r|   r   N)r   r   r   r   r8  ra  r   r   r
  r   r!  rf  rj  rp  r  r   r   r|   ry   r^  r^  y"  s   :6 [['	G	F
rvvg/	8
s%rvvy	9	;NN [[ 	2	1	3
5
5 [[VlJ%?@[[]VY,?@[[WsDk2$* 3 A A$*LAr|   r^  c                       \ rS rSr\R
                  R                  S5        \R
                  R                  SS5      r\R
                  R                  SS5      r	SSS	S
\4SSS	S
\	4SSS	S
/ SQ/ SQ/ SQ/4SSS	S/ SQ/ SQ/ SQ/4SSSS/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/ SQ/4SSSS/ S Q/ S Q/ S Q/ S Q/ S Q/ S Q/ S Q/ S Q/ S Q/ S Q/ S Q/ S Q/ S Q/ S!Q/ S"Q/ S"Q/ S"Q/ S"Q/ S"Q/ S"Q/ S"Q/4S#S$SS/ S%Q/ S%Q/ S&Q/4S'S(SS/ S)Q/ S)Q/ S)Q/ S)Q/ S)Q/ S)Q/ S*Q/ S+Q/ S+Q/ S+Q/
4S,S-SS/ S Q/ S Q/ S Q/ S Q/ S Q/ S Q/ S Q/ S Q/ S Q/ S Q/ S Q/ S Q/ S!Q/ S"Q/ S"Q/ S"Q/ S"Q/ S"Q/ S"Q/4S.S/SS/ S0Q/ S0Q/ S1Q/ S2Q/4S3S4SS/ S Q/ S Q/ S Q/ S Q/ S Q/ S Q/ S Q/ S Q/ S Q/ S!Q/ S"Q/4/r
\R                  R                  S5\
5      S6 5       rS7S8SS/ S9Q/ S:Q/4S;S<SS/ S9Q/ S9Q/ S9Q/ S=Q/ S>Q/4S?S@SS/ SAQ/ SAQ/ SAQ/ SAQ/ SAQ/ SAQ/ SAQ/ SAQ/ SAQ/ SBQ/ SCQ/ SCQ/ SCQ/ SCQ/ SCQ/4/r\R                  R                  S5\
5      \R                  R!                  5       SD 5       5       rSE rSF rSG rSHrgI)JTestPageTrendTesti#  r   r4   r  rZ      i2  g:hў?Fr  i  gsH?i,0  gY@?)rP  rN  I   rE  rN  `   r  r  r.
  r  rL  1   rK  +   r]  rN  rJ  rJ  rQ  r  rV   r  rJ  r  r  )D   r  rF  "   ro	  r  A   X   rW   rK  r/  r  r  C   E   r.  r  r  r  W   r]  r  r  r  r  )rK  r]   U   rE  O   r\   \   V   rW   @   r   r  r  rc   r   Y   r9  r  r  r  6   r]   B   r  r  i
  gXY?r  )r=   r   g @r6   r  r[   )r6   r5   r?   rZ   r  rW   )r  r
  rZ   r\   rX   r  iL  gs˜?T)r5   r4   r3   r   )r4   r5   r   r3   r     gĞ?)r4   r3   r   ru  r     g>K=?)r7   r6   r5   r4   r3   r   )r   r4   r5   r6   r3   r7   i  gqူ?)r6   r5   r4   r3   r   )r5   r   r4   r3   r6   r     ga?i  g;?)r8   r7   r6   r5   r4   r3   r   )r7   r6   r8   r5   r4   r3   r   r  u   g[^6?zL, p, ranked, method, datac                     [         R                  R                  S5        [        R                  " XSUS9n[        XR                  5        [        X&R                  5        [        XFR                  5        g Nr  )rankedr  
r   r  r  rg   page_trend_testr   r@  r   r?  r  ro   Lrg  r  r  r  r   s          ry   test_accuracyTestPageTrendTest.test_accuracyC#  sH    
		r##DGQ&::&VZZ(r|   i  g-lpW?)
rZ   r:   r9   r8   r7   r6   r5   r4   r3   r   )
r   r9   r5   r8   r7   r6   r:   r4   r3   rZ   i*  gh[?)
r:   r3   r9   r8   r7   r6   r5   r4   rZ   r   rJ  i  g&]2?)r9   r8   r7   r6   r5   r4   r3   r   )r   r4   r6   r7   r5   r8   r3   r9   r  c                     [         R                  R                  S5        [        R                  " XSUS9n[        XR                  5        [        X&R                  5        [        XFR                  5        g r  r  r  s          ry   test_accuracy2 TestPageTrendTest.test_accuracy2`#  sJ     			r##DGQ&::&VZZ(r|   c                 0   [         R                  R                  S5        Su  p[         R                  " SUS-   5      n[         R                  R	                  [         R                  " U5      5      n[         R                  R                  X5      n[        R                  " USS9n[        R                  " U5      n[        R                  " USS9n[        R                  " USS9n	[        R                  " XcS9n
[        R                  " US S 2U4   X4   S9n[        UR                  UR                  5        [        UR                  U	R                  5        [        UR                  U
R                  5        [        UR                  UR                  5        g )	Nr  )rZ   r  r   rT   Tr  F)predicted_ranks)r   r  r  r   r  r  rg   rankdatar  r   r@  )ro   r  r  r  permr  ranksr  r  r  res4res5s               ry   test_optionsTestPageTrendTest.test_optionsi#  s   
		r))Aqs+yy$$RYYq\2yy~~a#t!,$$U+$$U48$$T%8$$UL$$U1d7^5D5JLT^^T^^4T^^T^^4T^^T^^4T^^T^^4r|   c                    [         R                  R                  S5        / SQ/ SQ/ SQ/ SQ/ SQ/ SQ/n[         R                  " U5      R                  n[         R
                  " SS	5      n[        R                  " US
USS9n[        UR                  S5        [        UR                  SSS9  [        R                  " US
USS9n[        UR                  S5        [        UR                  SSS9  g )Nr  )r  r  o   )rM  r#  k   )g      y   )rE  r	  ry  )rK        )   r
  t   r   r8   Fr  )r  r  r  i  gy&1l?r5   rX  r  gHPsb?)r   r  r  r   r   r   rg   r  r   r@  r   r?  )ro   r  r  r   s       ry   test_Ames_assay!TestPageTrendTest.test_Ames_assay{#  s    
		r/Cxx~))Aq/##D4C+79 	S]]C(CJJ:##D4C+24 	S]]C(CJJ:r|   c                 v   [        [        SS9   [        R                  " S 5        S S S 5        [        [        SS9   [        R                  " / 5        S S S 5        [        [        SS9   [        R                  " SS/5        S S S 5        [        [        SS9   [        R                  " S///5        S S S 5        [        [        SS9   [        R                  " [        R
                  R                  SS5      5        S S S 5        [        [        SS9   [        R                  " [        R
                  R                  SS5      5        S S S 5        Sn[        [        US9   [        R                  " / SQ/ SQ// S	QS
9  S S S 5        [        [        US9   [        R                  " / SQ/ SQ// SQS
9  S S S 5        [        [        US9   [        R                  " / SQ/ SQ// SQS
9  S S S 5        [        [        US9   [        R                  " / SQ/ SQ/SS
9  S S S 5        [        [        SS9   [        R                  " / SQ/ SQ/S5        S S S 5        [        [        SS9   [        R                  " / SQ/ SQ/S5        S S S 5        [        [        SS9   [        R                  " / SQSS[        R                  //SS9  S S S 5        [        [        SS9   [        R                  " / SQ/ SQ/SS9  S S S 5        [        [        SS9   [        R                  " / SQ/ SQ/SS9  S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNG= f! , (       d  f       GN#= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN{= f! , (       d  f       GNL= f! , (       d  f       GN,= f! , (       d  f       g = f)Nz`data` must be a 2d array.r   r   r3   zPage's L is only appropriater4   z+`predicted_ranks` must include each integerr  r  )r  r  )r  r3   r4   )r   r3   r4   r4   r  z`data` is not properly ranked)r   r3   r4   Tr  z`data` contains NaNsFr  z`method` must be inekki)r  r  z`ranked` must be boolean.)r  r  )	r   r   rg   r  r   r  r  rn   r,  rA  s     ry   r  'TestPageTrendTest.test_input_validation#  s   :-IJ!!$' K:-IJ!!"% K:-IJ!!1a&) K:-IJ!!QC5'* K :-KL!!"))..A"67 M:-KL!!"))..A"67 M @:W5!!	9'=2;= 6 :W5!!	9'=2=? 6 :W5!!	9'=2>@ 6 :W5!!	9'=2;= 6
 :-LM!!9i"8$? N:-LM!!9i"8$? N :-CD!!9q!RVVn"=).0 E :-BC!!	9'=)/1 D 9,GH!!	9'=)/1 IHW KJJJJJJJ MLLL
 65 65 65 65
 NMMM ED DC IHs   L.M )MM$5M65N NN,N><O.O""O4+PP	P*.
L= 
M
M!$
M36
N
N
N),
N;>
O
O"
O14
P
P
P'*
P8r   N)r   r   r   r   r   r  r  r  	data_3_25
data_10_26tsr   r   r
  r  ts2r  r  r  r  r  r   r   r|   ry   r  r  #  s    IINN1		q"%IB'J $e\9
E%ulJ
G$e\===	>? %ug%#&() "D',l,l,l,()
 "D'y)Y	9y)Y	9y)Y	9y)-.
 "D' 24FGI"D'_o_o_o
 "D'y)Y	9y)Y	9y)Y	9
 !4!#8!#8:; "D'y)Y	9y)Y	CDO*
BX [[92>) ?) #T7,,./ $dG,.M,.M,./ $dG%'?%'?%'?%'?%'?%'?%'?%'(C* [[92>[[)  ?)5$;*/1r|   r  iv5z	fun, argsc                     U " USS06nU " USS06n[        X#5        U R                   S3n[        R                  " [        [
        R                  " U5      S9   U " USSS.6  S S S 5        g ! , (       d  f       g = f)Nr  r  r  z#() got multiple values for argumentr   )r  r  )r   r   r   r   r,  reescape)r<  rA  r   r  errs        ry   test_rename_mode_methodr  #  si     t
$G
$C#7#Dll^>
?C	y		#	7T'0 
8	7	7s   
A++
A9c                       \ rS rSrS rS rS rS r\R                  R                  S/ SQ5      \R                  R                  SS	S
/5      S 5       5       r\R                  R                  SS	S
/5      S 5       rSrg)TestExpectilei#  c                     [         R                  R                  S5      nUR                  SS9n[        [        R
                  " USS9[         R                  " U5      5        g )Nr  r  r  r<   r4  )r   r  r  r   rg   	expectilerj   ro   r  rr   s      ry   test_same_as_meanTestExpectile.test_same_as_mean#  sC    ii##B'JJBJ5rwwqzBr|   c                     [         R                  R                  S5      nUR                  SS9n[        [        R
                  " USS9[         R                  " U5      5        g )Nr  r  r  r   r  )r   r  r  r   rg   r  aminr  s      ry   test_minimumTestExpectile.test_minimum#  C    ii##B'JJBJ3RWWQZ@r|   c                     [         R                  R                  S5      nUR                  SS9n[        [        R
                  " USS9[         R                  " U5      5        g )Nr  r  r  r   r  )r   r  r  r   rg   r  amaxr  s      ry   test_maximumTestExpectile.test_maximum#  r  r|   c                   ^	 [         R                  R                  S5      nS m	U	4S jnSnUR                  U5      nUR                  5       nUR                  U5      n[        R                  " XEUS9nU" XEU5      n[        Xx5        g )Nl   b@lN c                 ~    [         R                  " XS9nSU-
  XAU :*  '   [         R                  " XC-  X-
  S-  -  5      $ )Nr  r   r3   )r   r  rg  )r  rM  r4  r
  r	  s        ry   r<  'TestExpectile.test_weights.<locals>.fun#  s;    Q1AE	A1fI66!+
233r|   c                    > [         R                  " U 5      [         R                  " U 5      4n[        R                  " TUXU4S9R
                  $ )N)bracketrA  )r   r  r  r   minimize_scalarrr   )rM  r4  r
  r  r<  s       ry   
expectile2.TestExpectile.test_weights.<locals>.expectile2#  sC    ffQi*G++C23G1DFFGaHr|   rZ   r
  )r   r  r  rg   r  r   )
ro   r  r  r  rM  r4  r
  r   r  r<  s
            @ry   test_weightsTestExpectile.test_weights#  su    
 ii##$78	4
	H
 JJqM

**Q-ooa87+!r|   r4  )r5  g?r<   g/#    ?r@  r  r  r>  c                    [         R                  R                  S5      nUR                  US9nS H4  n[	        [
        R                  " [         R                  " X%S9US9U5        M6     UR                  5       n[	        [
        R                  " XE-   US9[
        R                  " XAS9U-   5        [	        [
        R                  " XE-
  US9[
        R                  " XAS9U-
  5        [	        [
        R                  " XT-  US9U[
        R                  " XAS9-  5        UR                  USS9nUS:X  a  S	 nOUS:  a  S
 nOS nU" [
        R                  " [         R                  XF-      US9[
        R                  " XAS9[
        R                  " XaS9-   5        UR                  USS9n[
        R                  " XAS9[
        R                  " XaS9::  d   eUR                  USS9nS HZ  nU" [
        R                  " SU-
  U-  XV-  -   US9SU-
  [
        R                  " XAS9-  U[
        R                  " XaS9-  -   5        M\     [	        [
        R                  " U* US9[
        R                  " USU-
  S9* 5        g)ub  
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  r  )r  r   r<   )r  r  r  rZ   rx  r<   c                     [        X5        g r!  )r   rM  rY  s     ry   	assert_op:TestExpectile.test_expectile_properties.<locals>.assert_op;$  s
    %r|   c                     X:  d   eg r!  r   r  s     ry   r  r  ?$      uur|   c                     X:  d   eg r!  r   r  s     ry   r  r  C$  r  r|   r6   )rL  r<   r@  r   N)r   r  r  r  r   rg   r  r   exponentiallogisticr_)ro   r4  r  r  rr   rs  rs   r  s           ry   test_expectile_properties'TestExpectile.test_expectile_properties$  s'   $ ii##B'JJAJ
 Aa >eL  OOOOAE/OOA+a/	
 	OOAE/OOA+a/	
 	OOAE///	
 LLaRL(C<& S[ 	OOBEE!%L6OOA+ooa-.	
 JJA1J%OOA+uq/NN	
N LLaRL( A1a!#U;177EOOA334 ! 	OOQBe,__Qag..	
r|   c                    [         R                  R                  S5      nUR                  SUS9n/ n[         R                  " S[         R
                  " S5      S5      n[         R                  SUSUS S	S	2   -
  S4    H&  nUR                  [        R                  " X6S
95        M(     [         R                  " [         R                  " U5      S:  5      (       d   eg )Nr  r3   )rM  r  r  r<   r  r   r   r`   r  )r   r  r  paretologspacelog10r  rQ  rg   r  r  diff)ro   r  r  rr   e_list	alpha_seqr4  s          ry   test_monotonicity_in_alpha(TestExpectile.test_monotonicity_in_alphag$  s    ii##B'JJJ#KKRXXc]C8	UU1iYv2v->)>ABEMM%//!9: Cvvbggfo)****r|   r   N)r   r   r   r   r  r  r  r  r   r   r
  r  r  r   r   r|   ry   r  r  #  s    C
A
A
"4 [[: [[S2t*-_
 ._
B [[S2t*-+ .+r|   r  c            	       h   \ rS rSr/ SQrS/ SQ\R                  \R                  S/rS r	\
S 5       r\R                  R                  S\S	S
/ / SQ//-   5      S 5       r\R                  R                  S\5      S 5       r\R                  R                  S\5      S 5       r\R                  R                  S\5      S 5       r\R                  R                  SSS/ SQ/5      \R                  R                  SSS/5      \R                  R                  SSS/5      S 5       5       5       rS rSrg)TestLMomentis$  )yףp=
?r  p=
ף?r=   r
  r  r=   r<   r   rs  r
  {Gz?g@(\?gףp=
?
ףp=
?g)\(?gRQ @ru  {Gz?ffffff @r  g{Gz@gRQ?gGz@gQ?(\?r  gzG?g
ףp=
?gQ?ffffff?gGz
@g(\?g(\?gQ?q=
ףp?g(\@Q?gGz	@r%  Q?r  p=
ף @r  gp=
ף@gq=
ףp@gRQ?Gz?g
ףp=
?rM  gHzG?g      @r%  gQ?r  r  RQ?r  gQ?p=
ף?gQ@gGz?gQ?gp=
ף?q=
ףp?r
  gp=
ף?gQ?r  r  g@r  g)\( @gzG@r  r  gGz?g(\?r  333333?)\(?rs  r  gGz@r@  g(\?g=
ףp=?r  r  gHzG?{Gz?r  g
ףp=
?gףp=
?r  r  r  gQ?r	  g?r  r  g(\?r  gQ?gffffff@gQ?g?r
  gGz?r  g{Gz?gHzG@r	  r  r  g\(\?g(\?r  g(\?r=   )r   r3   r?   za duckc                     Sn[         R                  " [        US9   [        R                  " [
        R                  " U R                  [
        R                  S95        S S S 5        g ! , (       d  f       g = fNz*`sample` must be an array of real numbers.r   rI   )	r   r   r   rg   lmomentr   r   r  r  rA  s     ry   test_dtype_ivTestLMoment.test_dtype_iv$  s@    >]]:W5MM"((499BMMBC 655s   AA''
A5c                     Sn[         R                  " [        US9   [        R                  " [
        R                  " U R                  [        S95        S S S 5        g ! , (       d  f       g = fr  )	r   r   r   rg   r  r   r   r  rA  rA  s     ry   test_dtype_iv_non_numeric%TestLMoment.test_dtype_iv_non_numeric$  s<    >]]:W5MM"((499F;< 655s   8A
A+rx  r   r`   r  c                     Sn[         R                  " [        US9   [        R                  " U R
                  US9  S S S 5        g ! , (       d  f       g = f)Nz*`order` must be a scalar or a non-empty...r   r  r   r   r   rg   r  r  )ro   rx  r  s      ry   test_order_ivTestLMoment.test_order_iv$  s3    >]]:W5MM$))51 655    A
ArU   c                     Sn[         R                  " [        US9   [        R                  " U R
                  US9  S S S 5        g ! , (       d  f       g = f)Nz"`axis` must be an integer, a tupler   rT   r  )ro   rU   r  s      ry   test_axis_ivTestLMoment.test_axis_iv$  s3    6]]:W5MM$))$/ 655r"  sortedc                     Sn[         R                  " [        US9   [        R                  " U R
                  US9  S S S 5        g ! , (       d  f       g = f)Nz`sorted` must be True or False.r   )r&  r  )ro   r&  r  s      ry   test_sorted_ivTestLMoment.test_sorted_iv$  s3    3]]:W5MM$))F3 655r"  standardizec                     Sn[         R                  " [        US9   [        R                  " U R
                  US9  S S S 5        g ! , (       d  f       g = f)Nz$`standardize` must be True or False.r   )r*  r  )ro   r*  r  s      ry   test_standardize_ivTestLMoment.test_standardize_iv$  s3    8]]:W5MM$))= 655r"  r   r5   r  FTc                 >   [         R                  " / SQ5      nU(       d  USS === US   -  sss& U(       a   [         R                  " U R                  5      OU R                  n[        R
                  " XQX#S9n[        Xd[         R                  " U5      S-
     5        g )N)g0ʻEH?gk?gz[?g+3 ?r3   r   )r*  r&  )r   re   r  r  rg   r  r   )ro   rx  r*  r&  r  r  r   s          ry   test_lmomentTestLMoment.test_lmoment$  sw     jj B C Gs1vG%+rwwtyy!mmD[PE!21!456r|   c                    [         R                  n[         R                  " U R                  5      n[        R
                  " UR                  U5      5      n[        R
                  " U5      nUR                  R                  U:X  d   e[        X4SS9  [         R                  n[         R                  " / SQ5      n[        R
                  " UR                  U5      5      n[        R
                  " UR                  [         R                  5      5      nUR                  R                  [         R                  :X  d   e[        X4SS9  g )Nr  r  r  rF  )r   r   re   r  rg   r  r  rJ   r  r   int64r   )ro   rJ   sampler   r  s        ry   
test_dtypeTestLMoment.test_dtype$  s    

DII&mmFMM%01mmF#yy~~&&&t,O,mmFMM%01mmFMM"**56yy~~+++u-r|   r   N)r   r   r   r   r  r   rn   r!  not_integersr  r'   r  r   r   r
  r   r$  r(  r,  r/  r4  r   r   r|   ry   r  r  s$  sN   
ND bffbffh?LD
 = =
 [[WlaR)5M&MN2 O2
 [[V\20 30
 [[X|44 54
 [[]L9> :>
 [[Wq!\&:;[[]UDM:[[Xt}57 6 ; <7".r|   r  c                      \ rS rSr\R
                  R                  S/ SQ5      \R
                  R                  SSS/5      \R
                  R                  SSS/5      S	 5       5       5       rS
 r\R
                  R                  S5      \R
                  R                  S5      S 5       5       r
\R
                  R                  S5      S 5       r\" SS9S 5       rS r\R
                  R                  S5      S 5       rS rS rSrg)TestXP_Meani$  rU   Nr   r`   )rV  r3   r
  NTr  Fc                    [         R                  R                  S5      nUR                  S5      nUR                  U5      nS =pU(       a:  UR                  S5      nUR                  U5      n	[         R                  " Xh5      u  ph[        XyX$S9n
[         R                  " XhX$S9n[        XR                  U5      5        g )N   -fH r  r   )r
  rU   r  )r   r  r  re   r  r#   r7  r1   )ro   rp   rU   r
  r  r  rr   x_xpr	  w_xpr   r  s               ry   test_xp_mean_basicTestXP_Mean.test_xp_mean_basic$  s     ii##N3JJy!zz!}

6"A::a=D&&q,DAtHjjDDZZ_-r|   c                     UR                  S5      UR                  S5      p2Sn[        R                  " [        US9   [        X#S9  S S S 5        g ! , (       d  f       g = f)Nr   r6   z/Array shapes are incompatible for broadcasting.r   r
  )r   rb  r   r   r   r#   )ro   rp   rr   r	  r  s        ry   test_non_broadcastable"TestXP_Mean.test_non_broadcastable$  s@    yy~rxx{1C]]:W5Q" 655s   
A
Ar  r  c                    UR                  / SQ5      n[        UR                  / SQ5      US9n[        X1R                  UR                  5      5        [        UR                  / SQ5      US9n[        X1R                  [        R
                  * 5      5        [        UR                  / SQ5      US9n[        X1R                  [        R
                  5      5        g )Nr  r  r
  )r   r   r   )r   r   r   )re   r#   r1   rn   r   r!  )ro   rp   r
  r   s       ry   test_special_casesTestXP_Mean.test_special_cases$  s     **]+rzz,/AZZ/0rzz,/AZZ01rzz,/AZZ/0r|   r	  c                 (   UR                  S5      nUS:H  nUR                  X1R                  U5      n[        U5      (       a-  [        R
                  " [        SS9   [        USS9  S S S 5        O,[        R
                  " [        SS9   [        USS9  S S S 5        [        U5      n[        USS9nUR                  UR                  5      n[        XF5        [        XV5        [        US	S9nUR                  X#)    5      n[        Xv5        UR                  S
5      nUR                  X1R                  U5      n[        UR                  S5      US	S9nUR                  X#)    5      n[        Xv5        g ! , (       d  f       N= f! , (       d  f       N= f)Nr   r4   r	  r   r   r   r   r  r   rZ   )r
  r   )r   rT  rn   r*   r   r   r,  r#   r   re   r2   rj   r1   r  )	ro   rp   rr   r  r  r  r  r   r
  s	            ry   r  TestXP_Mean.test_nan_policy$  sF    IIcNQHHT661% y0OPw/ QP z1PQw/ R {k2jj "" qV,ggah! ''"+((41ryy~w6Jggah!/ QP RQs   E2	F2
F 
Fr  c                 R   UR                  S5      nUR                  US:H  UR                  U5      nSn[        R                  " [
        US9   [        U[        R                  -  SS9nUR                  UR                  5      n[        XE5        S S S 5        g ! , (       d  f       g = fNr   r4   zAfter omitting NaNs...r   r   r   )
r   rT  rn   r   rd  r   r#   r   re   r2   ro   rp   rr   r  r   r  s         ry   test_nan_policy_warns!TestXP_Mean.test_nan_policy_warns%  sx    IIcNHHQ!VRVVQ' +\\.81rvv:&9C**RVV$CC% 988   AB
B&c                 F   Sn[         R                  " [        US9   [        UR	                  / 5      5      nUR	                  UR
                  5      n[        X45        S S S 5        Sn[         R                  " [        US9   [        UR	                  / /5      SS9nUR	                  UR
                  /5      n[        X45        S S S 5        [        UR	                  / /5      SS9nUR	                  / 5      n[        X45        g ! , (       d  f       N= f! , (       d  f       NV= fNz,One or more sample arguments is too small...r   z2All axis-slices of one or more sample arguments...r   rT   r   )r   rd  r   r#   re   rn   r2   ro   rp   r  r   r  s        ry   r  TestXP_Mean.test_empty#%  s    @\\,G<2::b>*C**RVV$CC% =
 G\\,G<2::rd+!4C**bffX&CC% =
 rzz2$'a0jjn! =< =<   AD AD
D
D 4ignore:overflow encountered in reduce:RuntimeWarningc           	         UR                  UR                  5      R                  n[        R                  " X"/[        R                  S9nUR	                  U5      n[        R
                  " SS9   [        U5      n[        R                  " U5      n[        R                  R                  U[        R                  5        [        XQR	                  U5      5        S S S 5        [        XAR                  S9nUR	                  [        R                  " [        R                  " U[        R                  S95      5      n[        XV5        g ! , (       d  f       Ns= f)NrI   r  )over)r   r   r  r   re   r  r#   rj   r"  r   r!  r1   r   ro   rp   r  x_npr<  r   r  s          ry   r4  TestXP_Mean.test_dtype4%  s     hhrzz"&&zz3*BJJ7zz$ [[h'4.C''$-CJJ##C0CC1	 ( t::.jjD

!CDE! ('s   /A*E
Ec                     UR                  S5      nUR                  S5      n[        [        U5      [        U5      5        [        [        X2S9[        X3S95        g )NrZ   r   r
  )r   r2   r#   r   s       ry   test_integerTestXP_Mean.test_integerH%  sB    IIbMIIcNXa[1.0FGr|   c                 @   [         R                  R                  S5      nUR                  S5      u  p4pV[        UR	                  X4S-  -   5      UR	                  XVS-  -   5      S9n[         R
                  " X4S-  -   XVS-  -   S9n[        XqR	                  U5      5        g )Nr;  )r5   r  r  r
  )r   r  r  r#   re   r7  r1   )	ro   rp   r  rr   rs   wxwyr   r  s	            ry   r   TestXP_Mean.test_complex_gh22404O%  s~    ii##N3zz'*brzz!d(+RZZU
5KLjjrT22:6ZZ_-r|   r   )r   r   r   r   r   r   r
  r>  rA  r   rD  r  r   rK  r  r4  rZ  r  r   r   r|   ry   r8  r8  $  s   [[V%;<[[Yt5[[Z%7. 8 6 =. # [[ WX[[ VW1 X Y1 [[9""@ &	& '	&"" [[>"""H.r|   r8  c                      \ rS rSr\R
                  R                  S/ SQ5      \R
                  R                  SSS/5      \R
                  R                  SSS	/5      \R
                  R                  S
SS/5      S 5       5       5       5       rS rS r	\
" SS9S 5       r\
" SS9S 5       rS r\R
                  R                  S5      S 5       rS rS rSrg)
TestXP_VariW%  rU   r9  r  FTr   r   r   r   r  r   c                    [         R                  R                  S5      nUR                  S5      n[         R                  nUS:X  a>  UR                  UR                  S9S:  n	[         R
                  Xy'   [         R                  nUR                  U5      n
[        XX4US9n[        5        nUR                  [        S5        U" XrX4S9nS S S 5        [        XR                  W5      5        g ! , (       d  f       N)= f)	Nr;  r  r   r  r<   )rU   r  r   r   r  )rU   r  rR  )r   r  r  r   r  rn   nanvarre   r$   r   r   r   r1   )ro   rp   rU   r  r   r   r  rr   var_refnan_maskr<  r   r   r  s                 ry   test_xp_var_basicTestXP_Var.test_xp_var_basicX%  s    
 ii##N3JJy!&&zzqwwz/#5H&&AKiiGzz!}d!+-  CJJ~'JK!KC ! 	ZZ_-	 ! s   +C,,
C:c                     [        UR                  SS/5      SS9n[        X!R                  UR                  5      5        g )Nr   r   r4   r~   )r$   re   r1   rn   )ro   rp   r   s      ry   rD  TestXP_Var.test_special_casesq%  s0    bjj"b*q9ZZ/0r|   c                 F   UR                  S5      nUS:H  nUR                  X1R                  U5      n[        U5      n[        USS9nUR	                  UR                  5      n[        XF5        [        XV5        [        USS9nUR                  X#)    5      n[        Xv5        g )Nr   r4   r  r   r   )r   rT  rn   r$   re   r2   r   r1   )ro   rp   rr   r  r  r  r  r   s           ry   r  TestXP_Var.test_nan_policyv%  s    IIcNQHHT661% qzq[1jj "" aF+ffQuX!r|   r  c                 R   UR                  S5      nUR                  US:H  UR                  U5      nSn[        R                  " [
        US9   [        U[        R                  -  SS9nUR                  UR                  5      n[        XE5        S S S 5        g ! , (       d  f       g = frI  )
r   rT  rn   r   rd  r   r$   r   re   r2   rJ  s         ry   rK   TestXP_Var.test_nan_policy_warns%  sx    IIcNHHQ!VRVVQ' +\\.8!bff*8C**RVV$CC% 988rM  c                     Sn[         R                  " [        US9   [        UR	                  SSUR
                  /5      SS9  S S S 5        g ! , (       d  f       g = f)Nr   r   r   r3   r   r   )r   r   r   r$   re   rn   r	
  s      ry   r   TestXP_Var.test_nan_policy_raise%  s@     2]]:W5BJJ1bff~.7C 655s   'A
Ac                 F   Sn[         R                  " [        US9   [        UR	                  / 5      5      nUR	                  UR
                  5      n[        X45        S S S 5        Sn[         R                  " [        US9   [        UR	                  / /5      SS9nUR	                  UR
                  /5      n[        X45        S S S 5        [        UR	                  / /5      SS9nUR	                  / 5      n[        X45        g ! , (       d  f       N= f! , (       d  f       NV= frO  )r   rd  r   r$   re   rn   r2   rP  s        ry   r  TestXP_Var.test_empty%  s    @\\,G<"**R.)C**RVV$CC% =
 G\\,G<"**bT*3C**bffX&CC% =
 bjj"&Q/jjn! =< =<rR  rS  c           	      X   UR                  UR                  5      R                  n[        R                  " X"S-  /[        R                  S9nUR	                  U5      n[        U5      n[        R                  " U5      n[        R                  R                  U[        R                  5        [        XQR	                  U5      5        [        XAR                  S9nUR	                  [        R                  " [        R                  " U[        R                  S95      5      n[        XV5        g )Nr3   rI   )r   r   r  r   re   r$   r   r"  r   r!  r1   r   rV  s          ry   r4  TestXP_Var.test_dtype%  s     hhrzz"&&zz3A,bjj9zz$dmffTl


RVV,ZZ_- d**-jj

4rzz BCD!r|   c                     UR                  S5      nUR                  S5      n[        [        U5      [        U5      5        g )NrZ   r   )r   r2   r$   r   s       ry   rZ  TestXP_Var.test_integer%  s.    IIbMIIcN
GAJ/r|   c                    [         R                  R                  S5      nUR                  S5      u  p4[        UR	                  X4S-  -   5      5      n[         R
                  " X4S-  -   5      n[        XQR	                  U5      SS9  g )Nr;  )r3   r  r  F)check_dtype)r   r  r  r$   re   r   r1   r  s          ry   r  TestXP_Var.test_complex_gh22404%  se    ii##N3zz'"bjjrT*+ffQ2XZZ_%@r|   r   N)r   r   r   r   r   r   r
  rf  rD  r  r   rK  r  r  r   r4  rZ  r  r   r   r|   ry   ra  ra  W%  s    [[V%;<[[Z%7[[\Aq62[[\K+@A. B 3 8 =.*1
"" &	& '	& &D 'D"" [[>""0Ar|   ra  c           	         [         R                  R                  S5      nUR                  SS9nU R                  U5      nSn[	        X4U S9u  pV[        XPR                  U5      5        [        Xd5        S n[	        X4U S9u  pV[        XPR                  UR                  5       5      5        [        US5        Sn[	        US   X@S9u  pV[        XPR                  [         R                  " US   5      5      5        [        Xd5        g )	Nl   ~Mr  r  r   r
  r   r3   r  )	r   r  r  re   r    r2   r   r  
atleast_1d)rp   r  r  rr   rU   x_outaxis_outs          ry   test_chk_asarrayr}  %  s    
))


.C		#B


2AD"1B7OEE::b>* D"1B7OEE::bhhj121D"1W:D@OEE::bmmBwK&@AB r|   numpyz,These parameters *are* compatible with NumPyc                 N   U R                  / SQ5      nSn[        R                  " [        US9   [        R
                  " USS9  S S S 5        [        R                  " [        US9   [        R
                  " USS9  S S S 5        g ! , (       d  f       NF= f! , (       d  f       g = f)Nr  r  r   r   r   Tr$  )re   r   r   r  rg   r  )rp   rr   r  s      ry   'test_axis_nan_policy_keepdims_nanpolicyr  %  sn     	

< A5G	*'	:

1( 
;	*'	:

1t$ 
;	: 
;	:	:	:s   B&B
B
B$r:  )r8  r%  r  r]  collectionsr   	itertoolsr   hypothesis.extra.numpyextrar~  r  r  r  numpy.testingr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   scipy.statsrg   scipy.stats.mstatsr  scipy.stats._mstats_basic_mstats_basicr  scipy.stats._ksstatsr   scipy.special._testutilsr   scipy.specialr   scipyr   common_testsr   scipy.stats._axis_nan_policyr   r   r   r   r   r   r  r   r    r!   r"   r#   r$   r%   scipy._lib._utilr&   scipy.conftestr'   scipy._lib._array_apir(   r)   r*   r+   r,   r-   r.   r/   r0   scipy._lib._array_api_no_0dr1   r2   scipy._lib.array_api_extra_libarray_api_extrark   lazy_xp_modulesr   r   r  rf   r0  r   r   r   r   r  rF   r   r   r:  r  ry  r  r  r  r  rB	  r  r  r  r  r  r  r  r"  r  r  r  r  r  rL  rI  r]  r[  r  r  r  r  r  r  r  rk  rg  r  r  r  r  r  r  	compositer  r  r   r>  PowerDivCaser  r  r   r  r  r  r  r  r  r  r	  r1  r  r  r  r
  rG  r  r  r  r  r  r  r  r  r  r  r  r   r  rD	  rc	  r	  r	  r	  r	  r	  r	  r  r	  r	  r	  r	  r	  r
  r
  r
  r
  r'
  r9
  r8
  r>
  rM
  rK
  re
  r
  r
  r
  r
  r
  r
  r
  r
  r  r
  r
  r  r  rA  rr  r  r  r  r  r  r  rh  r  r  r  r  r  r  r,  r^  r  r  r  r  rr   rs   wilcoxonr  ra  r  r3  r  r  r  r  r8  ra  r}  r  r   r|   ry   <module>r     s   
 	  "  % %  . . .
  * / /   # # 0 0 ( -   -T TU U U & .G G G I ( (';;//  

u% %(  !&(	 238
:DeLDeL3U;KT KT\p# p#f 5>>"E> E> #E>PDL DLN{6 {6|~5 ~5VV:r4 < 3 3$TE TEnY2x	*&R+ +(n# n#b0D)3"rN rNjf3 f3R 599+E +E +E\ 5::j" j" j"Z 5<< f& f& !f&R 5==!0 0 "0*<@ <@~1f@ f@R 5<< e" e" !e"P1 1& 5::_" _" _"D 5>>"`"# `" #`"F    !< 5$$%J) J) &J)Zp> p>f & }Dqt"&&+266$<78AbffSkMAbffTlN:;I	K }N"&&+"&&,6266#;FGAbffSkMBrvvd|O;asmKL1	2 }AAD"&&+266$<78AbffSkMAbffTlN:;I	K |<aaQa1+ : r!!Qa1
 rxxBr
+--!!" rxxBr
+!!# 4 5))*A< A< +A<H 5??#(' (' $('V4Dn+( +(`Z. Z.~c. c.L	rEj1*+ ,88I.788I.79:0:0
. (HI J. ) ,,ryy}a.@A ??RYYr]BIIbM,JKMN5N5
/d 
/ 5??E$>$>?Q% @Q%h7At DEM7 M7 FM7`
 DEG5 G5 FG5TQ7 Q7h 5??#IB IB $IBXL$ 5??#y* y* $y*x 5--.) ) /), t4HIMNG O JG8% STRS5$$%9> & T U 9>x $'QR S, 5$$%k2RS% T &%: 5>>"N+ N+ #N+b*- *-Z 5>>"-> - #-6 5%%&-~ - '-B 5##$-^ - %- A A. 5$$%61 61 &61r{- {-|1"(>V 15D+ DDD 5;;q3 q3  q3h 5;;n3 n3  n3b 5;;tW tW  tWn 5::R3 R3 R3j(.90[;|T7 T7n,/ ,/^i) i)X\) \)~X Xx 5(()b4 b4 *b4J#A #ALl  l ^[ [|@ @Fi iXHA HAV{1 {1| 	iiI&JJrNJJrN  >>A40 >>Auzz~~+>? >>Aq62 <<!Q011X+ X+vT. T.nJ. J.ZqA qAh!* '"PQ
% R
%r|   