
    doi&                    
   S r SSK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  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&r&  SS	K'J(r(  SS
K)J*r*J+r+  SSK,J-r-  SSK.J/r/J0r0J1r1J2r2J3r3J4r4  SSK5J6r6J7r7J8r8J9r9J:r:J;r;  SSK<J=r=  SSK>J?r?  SSK@JArAJBrBJCrCJDrDJErEJFrFJGrGJHrHJIrIJJrJJKrK  SSKLJMrMJNrN  SSKOJPs  JQrR  \!/rS\R                  R                  rU\R                  R                  rV \" / SQ\W5      rX\" / SQ\W5      rY\" / SQ\W5      rZ\" / SQ\W5      r[\" / SQ\W5      r\\" / SQ\W5      r]\" / SQ\W5      r^ " S S5      r_ " S S5      r`\I" \!R                  5       " S S5      5       rb " S  S!5      rc " S" S#5      rd " S$ S%5      re\R                  R                  S&S'9S( 5       rgS) rhS* ri\R                  R                  S&S'9S+ 5       rj " S, S-5      rkS. rlS/ rmS0 rnS1 ro " S2 S35      rpS4 rqS5 rrS6 rs " S7 S85      rt\I" \!R                  5       " S9 S:5      5       rv\I" \!R                  5       " S; S<5      5       rx\I" \!R                  5       " S= S>5      5       rz\I" \!R                  5       " S? S@5      5       r|\I" \!R                  5       " SA SB5      5       r~\I" \!R                  5       " SC SD5      5       rSE r\I" \!GR                  5       " SF SG5      5       r\I" \!GR                  5       " SH SI5      5       r " SJ SK5      r\I" \!GR                  5       " SL SM\5      5       r\I" \!GR                  5       " SN SO\5      5       r\GR                  GR                  SP 5       r\I" \!GR                  5       " SQ SR5      5       r " SS ST5      r\" SU/ SVQ5      r\" / SWQSSSSXSYSX\GR$                  " SZ5      -  S[\GR$                  " S\5      -  -   -  SYS]\GR$                  " S^5      -  S]\GR$                  " S_5      -  -   -  S`SV9\" / SWQ/ SaQSSSbSYSX\GR$                  " S^5      -  S]\GR$                  " SZ5      -  -   S]\GR$                  " Sc5      -  -   -  SYSY\GR$                  " SZ5      -  Sd\GR$                  " S^5      -  -   SY\GR$                  " Se5      -  -   -  SfSV9\" / SWQS]SSSXSYSX\GR$                  " SZ5      -  S[\GR$                  " S\5      -  -   -  SYS]\GR$                  " S^5      -  S]\GR$                  " S_5      -  -   -  S`SV9\" / SgQ/ SgQSSSSSSSV9/r\" / SSSSSSSSV9\" \R6                  " / / / /5      GR(                  SSS/ ShQ/ ShQ/ ShQ/ ShQSV9\" \R6                  " / / / /5      SSS/ / / / SV9/r\I" \!GR,                  5       " Si Sj5      5       r\I" \!GR0                  5       " Sk Sl5      5       r\I" \!GR4                  5       " Sm Sn5      5       r " So Sp5      r\I" \!GR:                  5       " Sq Sr5      5       r " Ss St5      rSu rSv rSw r\R                  GRG                  Sx\GRH                  " Sy5      Sz4\GRH                  " S{5      S|4/5      S} 5       rS~ r\R                  GRG                  S/ SQ5      S 5       r\R                  GRG                  S\!GR                  \R8                  " S5      S44\!GRP                  \R8                  " S5      \R8                  " S5      44/5      S 5       rSSS.S jjr\I" \!GRV                  \!GRX                  5      S 5       rS rS r\R                  GRa                  S5       " S S5      5       r " S S5      r " S S5      r\I" \!GRV                  5       " S S5      5       rS r\I" \!GRV                  5       " S S5      5       r\I" \!GRX                  5       " S S5      5       r\R                  R                  SSS9\R                  GRa                  S5      \R                  GRa                  S5      S 5       5       5       rS r\R                  GRt                  \R                  GRa                  S5      \R                  GRa                  S5      \I" \!GR                  5      S 5       5       5       5       r\U" SSS9S 5       r\I" \!GR                  5      \R                  R                  SSS'9S 5       5       r\I" \!GR|                  5       " S S5      5       r " S S5      r\I" \!GR                  5       " S S\5      5       r\I" \!GR                  5       " S S\5      5       r\I" \!GR                  5       " S S\5      5       r " S S5      r\I" \!GR                  5       " S S5      5       rS rS rSSSSS.S jrS rS rS r\I" \!GR                  5       " S S5      5       r\I" \!GR                  5       " S S5      5       r\I" \!GR                  5       " S S5      5       r\I" \!GR                  5       " S S5      5       rS rS rS r " S S5      r\I" \!GR                  5       " S S5      5       r\I" \!GR                  5       " S S5      5       r\I" \!GR                  5       " S S5      5       r\I" \!GR                  5       " S S5      5       r\I" \!GR                  5       " S S5      5       r\I" \!GR                  5       " S S5      5       r " S S5      r " S S5      r " S S5      r " S S5      r\I" \!GR                  5       " S S5      5       r " S S5      r " S S5      r\GR                  GR                  S5      r\GR                  S5      r\GR                  S5      r\R                  GRG                  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\I" \!GR                  5       " S S5      5       r " S S5      r " S S5      rS Gr g)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assert_array_less)raises)arrayarangefloat32power)kolmogn)FuncData)optimizespecial   )check_named_results)_broadcast_concatenateSmallSampleWarningtoo_small_nd_omittoo_small_nd_not_omittoo_small_1d_omittoo_small_1d_not_omit)_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_ravelxp_swapaxes)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)TestTrimmedStatsM   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
             X/var/www/html/land-ocr/venv/lib/python3.13/site-packages/scipy/stats/tests/test_stats.py
test_tmeanTestTrimmedStats.test_tmeanQ   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                 f   [        [        R                  " S5      S5        [        R                  " S5      n[        R
                  US'   [        R                  " 5          [        R                  " S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:   ignore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   warningscatch_warningsfilterwarningsRuntimeWarningassert_raises
ValueErrorro   rp   rr   msgs       ry   test_tmin_scalar_and_nanpolicy/TestTrimmedStats.test_tmin_scalar_and_nanpolicy        	UZZ]A&IIcNvv!$$&##Ho~NA&92>1Cz5

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

12 6 '& 65 65 '&=   AD"+D D"D/D" 
D	
D"
D	D""
D0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        [        R                  " 5          [        R                  " SS[        5        UR                  UR                  S5      S5      n[        R                  " USS
S9n[        X1R	                  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   r   zAll-NaN slice encounteredr   r   r[   )r   rU   r4   r8   )r   r2   rg   tmaxre   ri   rk   rl   rm   rn   r   r   r   r   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: $$&##5~G

299R=&1A**Q2A6CCQ2rvv,>!?@ '&&s   B I
I#c                 f   [        [        R                  " S5      S5        [        R                  " S5      n[        R
                  US'   [        R                  " 5          [        R                  " S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   )r   rg   r   r   r   rn   r   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dprecr.   rg   rh   rz   r   pytestmarkr   r   r   r   r   r   skip_xp_backendsr   r   r   r   r   r   r   r   __static_attributes__r   r|   ry   rF   rF   M   s~   HHRZZ **Eu{{#,/ $,/\ uzz"[[H2 #28 uzz"4 #4 uzz"= #=* dSU3U3 uzz"A #A0 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                   D   \ 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\	R                  R!                  S5      \	R                  R!                  S5      S 5       5       r\	R                  R!                  S5      \	R                  R!                  S5      S 5       5       r\	R                  R!                  S5      S 5       r\" SS9\	R                  R                  S/ SQ5      S 5       5       rS r\	R                  R!                  S5      S 5       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      \	R                  R!                  S5      S* 5       5       r!S+ r"\	R                  R                  S$/ S,Q5      \	R                  R                  S/ SQ5      S- 5       5       r#S.r$g/)0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                 x   UR                  / SQ5      nUR                  / SQ5      nSn[        [        R                  XAS9   [        R                  " X#5      u  pV[        XQR                  UR                  5      5        [        XaR                  UR                  5      5        S S S 5        g ! , (       d  f       g = f)NMbX?r^  r^  rh|?v/?gsh|??An input array is constantr   rp   re   r'   rg   ConstantInputWarningr   r1   rn   ro   rp   rr   rs   r   r   ps          ry   test_constant_input TestPearsonr.test_constant_input  s~     JJ,-JJ,-*333F>>!'DAAzz"&&12Azz"&&12 GFF   A!B++
B9rJ   r   r   c                 x   [        [        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                  XaS9   [
        R                  " XE5        S S S 5        g ! , (       d  f       g = f)Nr3   rI   r4   r7   z/An input array is nearly constant; the computedrc  )getattrr   re   rK  r'   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?77sJ NN1  KJJs   B++
B9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|   4ignore:invalid value encountered:RuntimeWarning:dask5ignore:divide by zero encountered:RuntimeWarning:daskc                 $   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                 x   UR                  SS/5      nUR                  SS/5      nSn[        [        R                  XAS9   [        R                  " X#5      u  pV[        XQR                  UR                  5      5        [        XaR                  UR                  5      5        S S S 5        g ! , (       d  f       g = f)Nr^  r`  ra  rb  rc  rd  rf  s          ry   test_length_two_constant_input+TestPearsonr.test_length_two_constant_input  s    
 JJu~&JJu~&*333F>>!'DAAzz"&&12Azz"&&12 GFFrj  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_gh177959  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_oneA  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_validationP  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_pvaluer  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US'   SUS'   UR                  U5      UR                  U5      peSn[	        [
        R                  XqS9   [
        R                  " XVS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u  US'   US'   UR                  U5      UR                  U5      peSn[	        [
        R$                  XqS9   [
        R                  " XVS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                  " XVS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NN= f! , (       d  f       N= f)Nl   U!Jr5   r6   r   )r   .r3   )r   .rb  rc  rT   rI   r   )g     ?g      @r   r   r   r   z!An input array is nearly constantr   r5   r`   )r   r`   r`   r   )r   r  r  re   r'   rg   re  r   r  rn   r   r2   r@  r?  r  r  allisfiniterm  r  r1   )ro   rp   r  x0y0rr   rs   r  r   r  nansr  s               ry   test_nd_special_cases"TestPearsonr.test_nd_special_cases  s    ii##N3F#SZZ%7B6
6
zz"~rzz"~1.337J..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 K 24"T(zz"~rzz"~1577wNNN1a( O JJAAAB89JJAAAB89wwqznnQ+$$&rzz/'BC

D)&&9 KJ  ONs   F
MM*
M'*
M8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 [[ VW[[ WX# Y X# [[ VW[[ WX# Y X# [[ LM
3 N
3& d#[[CHI6I $6F [[ WX# Y# 4D [[2[[ OP[[],LM[[]KM2M N Q 
2( [[[[],LM) N )& [[VaV,3 -3 
$G0 [[ VW[[ WX$' Y X$'L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_preciseH  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_gh4130`  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  r2  r3  s      ry   test_gh9231TestFisherExact.test_gh9231v  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   rG   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_numbers}  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   rF  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&  rj  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(  r4  r7  r   r   r  r?  rC  rH  rS  rW  r  r[  rd  r  rl  rp  xslowrv  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'S&r(g')(TestCorrSpearmanri&  r   c                 L    [         R                  R                  S5      U l        g )NiGr   r  r  r  ro   s    ry   setup_methodTestCorrSpearmanr.setup_method/  s    99((3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_scalar2  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  r}  s    ry   test_uneven_lengths%TestCorrSpearmanr.test_uneven_lengths6  s*    j%//9q!fEj%//9a@r|   c                    U R                   R                  S5      nU R                   R                  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   r5   r3   r6   r6   r   rT   )
r  standard_normalrg   r  r@  r  r   r?  r   r   ro   rr   rs   s      ry   test_uneven_2d_shapes'TestCorrSpearmanr.test_uneven_2d_shapes:  s    HH$$V,HH$$V,q$..44>>>qssACCa077==GGGj%//1a@j%//133<r|   c           	         U R                   R                  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 )N)r5   r4   r3   rT   r   )r  r  r   r   rg   r  r   flattenro   rr   s     ry   test_ndim_too_high$TestCorrSpearmanr.test_ndim_too_highD  s|    HH$$Y/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_policyM  sx    IIcNvv!5??102662662BC5??1FC%	'j%//1GLj%//1HMr|   c                    [         R                  R                  S5      nUR                  S5      nSn[         R                  US S 2U4'   [         R                  " X#SS9n[
        R                  " USS9u  pV[
        R                  " U5      u  px[         R                  " [         R                  " XSSS9USS9n[         R                  " [         R                  " XcSS9USS9n[        XWS	S
9  [        XhS	S
9  g )Nl   LG r6   rZ   r7   r   rT   r   r   r   rs  rG  )r   r  r  rn   deleterg   r  r   )	ro   r  rr   krs   corxpxcorypys	            ry   test_nan_policy_bug_12458+TestCorrSpearmanr.test_nan_policy_bug_12458V  s    ii##J/JJw&&!Q$IIa#??18??1%yy43QQ?YYryyQ/;/U+r|   c                    SnSnU R                   R                  X4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   rn   rg   r  r  r@  r   )	ro   mnrr   corrr?  jr  r   s	            ry   test_nan_policy_bug_12411+TestCorrSpearmanr.test_nan_policy_bug_12411c  s    HH$$aV,&&$66%qq[Ia" 1 FK1XNXQ$a41;;XN  	 "" O "s   -C 7C7CCc                 d    [         R                  " [        [        5      nUS   n[        US5        g r   )rg   r  rf   r
   r   s      ry   test_sXXTestCorrSpearmanr.test_sXXn  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_sXBIGs  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_sXLITTLEx  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_sXHUGE}  %    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  rc  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 rN  r<   r   r   )gonj?)Wn%?r  )r   r  RandomStaterandr   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   r|   ry   rz  rz  &  s    4#A=KN,	##
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
5$(8 G6r|   rz  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_arrays1  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   rP  )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_draws4  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_1@  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_policiesC  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_lengthsL  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_valueQ  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  rR  r   rn   r   rg   r  r  s      ry   #test_gh_issue_6061_windows_overflow6TestCorrSpearmanr2.test_gh_issue_6061_windows_overflowX  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)Nrb  r   r3   r3   r3   r3   r   r3   )r   warnsrg   re  r  r   r   rn   )ro   warn_msgr   rg  s       ry   	test_tie0TestCorrSpearmanr2.test_tie0e  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_tie1s  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_tie2  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  rb  r   r   rT   	r   r   r   rL  rg   re  r  r   rn   )ro   z1z2z3rM  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?rb  r   r_  )ro   rr   rs   rM  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   rf  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  rY  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   rn  )	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)  r4  r8  r;  r?  rB  rG  rN  rV  r[  rc  rg  rj  ro  r   r   r  rw  r   r   r|   ry   r  r  $  s|    71@
1KN9
!P$$&$ 	$A=. [[],LM5 N5r|   r  zfails in parallel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  rt  )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  r|  )g?>r}  )g}'}'r~  )
r   r3   r3   r5   r5   r7   r7   r9   r:   r:   )
r   r3   r5   r5   r5   r5   r9   r9   r9   rZ   gok|?rY  gffffff?rt  r  r  bananarmsr\   r3   r   r\   r3   r   r5   r8   r   r   )g}+޿g`=i?r=  rJ  rK  One or more sample...r   r,  r-  r.  r   rP  )g\zf?g^n)=r7  g#q?r   r:   r   r   )r   g/>r  r  r  )r   r  )r   g&?r   r   r>  rE  rI   i  r  )rg   
kendalltaur
   r   r   r   r   r   r   r   r>  r@  rn   r   rL  r   r  r  r  r1  r2  r3  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  rF  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 )	NrQ  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  seed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  rm  r   rn  )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   rv  s	            ry   
exact_test$TestKendallTauAlternative.exact_test5  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   rL  r   r  ro   r  r  r  rr   rs   r  s          ry   test_against_R_n1+TestKendallTauAlternative.test_against_R_n1@  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_n2J  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_c0S  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_c1\  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_correlationf  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_correlationbp  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_171y  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  rY  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   rn  )r   rn   rg   r  r   r   r   r   )
ro   r  r  r  r  rs  rt  ru  rv  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  rF  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))Nr  r  gs$F)additivegROoc                     gNr   r   rr   s    ry   <lambda>"test_weightedtau.<locals>.<lambda>  s    Qr|   )weigherr  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   rL  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   rL  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  4  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>.wkq@  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>.weigherP  s    QU|r|   r  r4   rZ   rI   r3   r^   )r   r  r  r  rF  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  >  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                   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)TestRegressionig  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_linregressBIGXh  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_regressXXr  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   rL  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  r-  rZ   r  rm  r   rn  r  r  r  r   r3   r  )r   r.  r/  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   r;  H   >   r1  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  rJ  r  r  r?  r  r   )ro   rr   rs   r  rR  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   r.  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  r-  rZ   r  )rJ  r  r  r?  r  r   )
r   r.  r/  rg   r  r    r   r0  r   dir)ro   rr   rs   r  r1  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   r_  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)$r-  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^@rP  rP  gffffff@g1u@g@g     8@g     X@333333&@g33333]@gfffffl@g@fffff|@r<   )$rM  g,u@gfffff]@     @r  ri  g     @     4@g|@33333W@gy@rP  rM  gP@gfffff@4u@rk  g%@gm@gl@g     0@gfffffƋ@gfffff]@rP  rh  gl@ro  rl  rm  rn  gffffff$@gffffff]@g̜l@g33333@g33333|@r-  g?g!пr3   gpX?r   gh-h*<?gg?)	rg   r  r   rJ  r  r  r?  r  r   r_  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  r-  rZ   r  r   )	r   r.  r/  rg   r  polyfitr   rJ  r  )ro   rr   rs   r  polys        ry   test_compare_to_polyfit&TestRegression.test_compare_to_polyfit2	  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   rL  r   rg   r  r   r  r  ro   r   s     ry   test_empty_inputTestRegression.test_empty_input>	  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:   r   invalidr6   )r   r   rn   errstaterg   r  r    r   r0  r	   r   r   )ro   rr   r  r1  s       ry   test_nan_inputTestRegression.test_nan_inputC	  s    IIcNvv![[*%%a+F + 
62&'6BFF9Q;/V,,bff5 +*s   B;;
C	c                    [         R                  R                  S5      n[         R                  " S5      nUR                  S5      nSn[	        [
        US9   [        R                  " X#5        S S S 5        g ! , (       d  f       g = f)Nl   ,w* rZ   z$Cannot calculate a linear regressionr   )r   r  r  rc  r   r   rg   r  )ro   r  rr   rs   r   s        ry   test_identical_xTestRegression.test_identical_xP	  sY    ii##J/HHRLJJrN4:S1Q" 211s   A77
Br   N)r   r   r   r   r"  r%  r*  r2  r5  rK  rT  rX  r\  r`  rc  rp  ru  ry  r  r  r   r   r|   ry   r  r  g  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   N   gQ?separater5   r   gQ@r3   rP  gGz@r   )rg   theilslopesr   r   r   r   )rJ  r  lowerupperr   rr   rs   s          ry   test_theilslopesr  Y	  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   rN  r9   r8   r5   r3   r   )r   r5   r6   rZ   ra   r  r  r   a1a2a3r}  s    ry   r~  "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?   2         ?)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   rF  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   r0  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   rD  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S r\	R                  R                  S\" SS	5      5      S
 5       rS rS r\" SSS9S 5       r\" SSS9\	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       5       r\	R                  R                  S\" SS5      5      S 5       rS rS rS rS  r\	R                  R                  S!S"S#/5      S$ 5       rS% r\	R                  R9                  S&5      \	R                  R                  S'\R:                  " S(5      \R:                  " S)5      /5      S* 5       5       rS+ rS,r g-).TestModei
  c                 ,   [        [        [        US9   [        R                  " UR                  / 5      5      u  p#S S S 5        [        WUR                  UR                  5      5        [        WUR                  S5      5        g ! , (       d  f       NO= f)Nrc  r   )r'   r   r   rg   modere   r2   rn   )ro   rp   valscountss       ry   r  TestMode.test_empty
  sa    +3HRP ::bjjn5LD Qbjj01

2/ QPs   (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   )ro   r  r  s      ry   r  TestMode.test_scalar
  s9    zz"~T288RD>*VRXXqc]+r|   c                     UR                  / SQ5      n[        R                  " U5      n[        US   UR                  S5      5        [        US   UR                  S5      5        g )Nr4   r6   r   rZ      r4   r3   r7   r9   r7   rZ   r7   r   r7   r   r4   re   rg   r  r2   )ro   rp   data1r  s       ry   rZ  TestMode.test_basic
  sK    

BCzz% QA/QA/r|   c           
      |   / SQn/ SQn/ SQn/ SQn/ SQnUR                  X#XEU/5      n[        R                  " US SS9n[        US   UR                  S	//5      5        [        US
   UR                  S//5      5        [        R                  " USSS9n[        US   UR                  / SQ/5      5        [        US
   UR                  / SQ/5      5        [        R                  " US
SS9n[        US   UR                  S/S/S/S	/S	//5      5        [        US
   UR                  S/S/S/S/S//5      5        g )NrZ   rZ      (   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  	ro   rp   r  data2data3data4data5arrr  s	            ry   test_axes_keepdimsTestMode.test_axes_keepdims#
  s(        jj%e<=zz#D48QbTF!34QaSE!23zz#A5Q-=,>!?@Q\N!;<zz#A5QbTB4"tbT,J!KLQaS1#sQC!,E!FGr|   c                 J   / SQn/ SQn/ SQn/ SQn/ SQnUR                  X#XEU/5      n[        R                  " US S9n[        US   UR                  S5      5        [        US	   UR                  S
5      5        [        R                  " USS9n[        US   UR                  / SQ5      5        [        US	   UR                  / SQ5      5        [        R                  " US	S9n[        US   UR                  / SQ5      5        [        US	   UR                  / SQ5      5        g )Nr  r  r  r  r  rT   r   r  r   r9   r  r  )rZ   rZ   r  r  r  )r3   r5   r4   r5   r4   r  r  s	            ry   	test_axesTestMode.test_axes7
  s         jj%e<=zz#D)QB0QA/zz#A&Q,<!=>QL!9:zz#A&Q,@!ABQO!<=r|   rU   r   c                 l   [         R                  R                  S5      nUR                  UR                  S5      5      n[        R
                  " XDR                  U-   S9n[        R
                  " XAS9n[        UR
                  UR
                  5        [        UR                  UR                  5        g )Nl   q!<M )rZ   r[   r\   r]   rT   )	r   r  r  re   rg   r  ndimr2   count)ro   rU   rp   r  rM  r  r  s          ry   test_negative_axes_gh_15375$TestMode.test_negative_axes_gh_15375K
  sv    ii##J/JJszz"234zz!&&+.zz!'		499-

DJJ/r|   c                 *   UR                  / SQ5      nUR                  / 5      n[        R                  " U5      nSn[        XEUS9  [	        [
        [        US9   [        R                  " U5      nS S S 5        [        WXQS9  g ! , (       d  f       N= f)Nr  )r  r  rp   rc  )re   rg   r  r   r'   r   r   )ro   rp   r  r  r  rB  actual2s          ry   test_mode_result_attributes$TestMode.test_mode_result_attributesT
  sq    

BC

2E"&
F26+3HRPjj'G QGZ7 QPs   B
Bc                    UR                  S[        R                  SSSSSSSSSSS/5      n[        R                  " U5      n[        US	   UR                  SUR                  S
95        [        US   UR                  S5      5        g )Nr4   r6   r   rZ   r  r3   r7   r9   r   rI   )re   r   rn   rg   r  r2   rJ   )ro   rp   r  r  s       ry   test_nan_propagateTestMode.test_nan_propagate^
  sr    

Arvvq!RQ1aBJKE"q	2::au{{:#CDq	2::a=1r|   Tlazy arrays don't do 'raise'.r   c                    UR                  S[        R                  SSSSSSSSSSS/5      n[        R                  " US	S
9n[        UR                  UR                  S5      5        [        UR                  UR                  S5      5        [        [        [        R                  USS
9  [        [        [        R                  USS
9  g )Nr4   r6   r   rZ   r  r3   r7   r9   r   r   r   r   r   )	re   r   rn   rg   r  r2   r  r   r   )ro   rp   r  r   s       ry   test_nan_omitTestMode.test_nan_omitd
  s    

Arvvq!RQ1aBJKjj62"**R.1		2::a=1j%**eHj%**eIr|   zlazy arrays don't do 'omit'.data)r4   r6   r   r   r   r4   r6   r   )r4   r6   r   r  Fc                     [         R                  " UR                  U5      SUS9nU(       a"  [        US   S   UR                  S5      5        g [        US   UR                  S5      5        g )Nr   )r   r  r   r   )rg   r  re   r2   )ro   r  r  rp   r  s        ry   test_smallest_equalTestMode.test_smallest_equalm
  sR     BJJt,(SF1IaL"**R.9F1Irzz"~6r|   ra   c                    [         R                  R                  S5      nUR                  UR	                  SS9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 )Ni:r4   r5   r6   r  Fr  )r   r  r  re   uniformrg   r  rF  r  popr$  r	   r  )ro   rU   rp   r  rM  r   reference_shapes          ry   test_mode_shape_gh_9955 TestMode.test_mode_shape_gh_9955|
  s    ii##I.JJs{{	{23jj6qww-D!


%%chhnnoF


%%ciiooGr|   c                     UR                  S[        R                  S[        R                  /5      n[        R                  " U5      nUR                  UR                  5      (       a  UR                  S:X  d   eg Nr3   r   )re   r   rn   rg   r  r  r  ro   rp   rM  r   s       ry   !test_nan_policy_propagate_gh_9815*TestMode.test_nan_policy_propagate_gh_9815
  sU     JJ2661bff-.jjmxx!!cii1n44nr|   c                 f   U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g )N)r   r3   r4   r   r   Fr  )r   r4   r   T)r   r   r4   r   )rc  rg   r  r  r  r'  s       ry   test_keepdims_emptyTestMode.test_keepdims_empty
  s    HH\"jjU3xx~~=I=====jjT2xx~~@L@@@@@r|   c                 (   UR                  SSS[        R                  /SS[        R                  S//5      n[        R                  " USSS9n[        UR                  UR                  SS/5      5        [        UR                  UR                  SS/5      5        [        R                  " USSS9n[        UR                  UR                  S/S//5      5        [        UR                  UR                  S/S//5      5        UR                  U5      n[        R                  " US SS9n[        R                  " [        U5      SS	9n[        UR                  UR                  5        [        UR                  UR                  5        UR                  R                  UR                  R                  s=:X  a  S
:X  d   e   e[        R                  " US SS9n[        R                  " [        U5      SS	9n[        [        UR                  5      [        UR                  5      5        UR                  R                  S:X  d   e[        [        UR                  5      [        UR                  5      5        UR                  R                  S:X  d   eg )Nr   r4   Fr  r   r   r3   Tr  r   r  )	re   r   rn   rg   r  r2   r  r/   r  )selfselfrp   rM  r   r  s        ry   test_keepdims_nonemptyTestMode.test_keepdims_nonempty
  s   JJAq"&&)Aq"&&!+<=>jjU3"**b"X"67		2::q!f#56jjT2"**rdRD\":;		2::sQCj#9:JJqMjj6jj!u5#((+		399-xx~~5255555jj5jj!t4*HSXX,>?xx~~'''+Xcii-@Ayy&(((r|   c                 :   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 )Nr   r3   r6   Fr   )rU   r  r   )r   r3   r6   )r3   r   r3   T)r  r   r   r  )
r   rn   rg   r  r	   r  r   r  r  r   )ro   rM  r   r  s       ry   test_keepdims_nan_omitTestMode.test_keepdims_nan_omit
  s   +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)Nr  r  r   F)rM  rU   r  r   r^  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   rc  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   r>  r>  r   r  r  r3   r  r4   rT   )r   rL  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::RuntimeWarningr@  r  r7  c                    UR                  U5      n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U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       N]= f)Nr   r   Tr  r   r  )
re   r  r   rL  r   r   rg   r  rj   r  )ro   r@  rp   r   r  s        ry   test_gh17214TestMode.test_gh17214
  s     JJqM66Q;08MNjj= ON **QTD9CggadTg21v||s1v||EsyyEIEEEEE ONs   C
Cc                     " S S5      n[         (       a  SOSn[        R                  " [        US9   [        R
                  " U" [        R                  " S5      5      5        S S S 5        [         (       a  SOSn[        R                  " [        US9   [        R
                  " [        R                  " S[        S95        S S S 5        g ! , (       d  f       Nm= f! , (       d  f       g = f)	Nc                   $    \ 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(  )rK  r  object)ro   rJ   rb   s      ry   	__array__BTestMode.test_raise_non_numeric_gh18254.<locals>.ArrLike.__array__  s    ww~~f--r|   rJ  )NN)r   r   r   r   rL  rP  r   r   r|   ry   ArrLikerH  	  s    .r|   rR  z'...only boolean and numerical dtypes...zCannot interpret...r   r4   z*Argument `a` is not recognized as numeric.rI   )	r-   r   r   r:  rg   r  r   r   rO  )ro   rR  r  s      ry   test_raise_non_numeric_gh18254'TestMode.test_raise_non_numeric_gh18254  s    	. 	. AP<- 	 ]]9G4JJwryy|,- 5 AP<D 	]]9G4JJryy&12 54 54
 54s   1C.C
C
C*r   N)!r   r   r   r   r  r  rZ  r  r  r   r   r  r  r  r  r  r   r  r   rn   r  r#  r(  r+  r0  r3  r=  rA  r   emptyrD  rS  r   r   r|   ry   r  r  
  s   0,
0H(>( [[VU2q\20 3082 .MNJ OJ .LM[[V	
BFFAq!Q	
BFFAq	&  [[Z%77 8 N7 [[VU2q\2H 3H5A)4)6 [[\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  rQ  r   r  c                 "   UR                  U R                  5      S   n[        U5      (       a=  [        R                  " [
        [        S9   [        R                  " U5      nS S S 5        Oj[        R                  " 5          [        R                  " S[        5        [        R                  " S[        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   r   )re   scalar_testcaser)   r   rL  r   r   rg   semr   r   simplefilterUserWarningr   r  )ro   rp   rY  rs   s       ry   test_sem_scalarTestSEM.test_sem_scalar"  s     **T%9%9:2>B<<08MNIIo. ON ((*%%h<%%h?IIo. + xx{{{ ON +*s   C/AD /
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   rZ  r1   r  r   wherern   r2   )ro   rp   rb  rs   r  rr   s         ry   test_semTestSEM.test_sem5  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   rZ  r   r   r   s      ry   test_sem_nan_policyTestSEM.test_sem_nan_policyA  sX     IIcNvv!UYYqV46HIj%))Q7Cj%))Q8Dr|   r   N)r   r   r   r   rb  rY  r   r   r   r]  rd  r   rg  r   r   r|   ry   rW  rW    sX      HO[[ LM N$
: dGIEIEr|   rW  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)TestZmapiK  zx, yrQ  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  r@  s         ry   	test_zmapTestZmap.test_zmapN  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   rl  r1   
ro   rp   rr   t1t2t3z0r`  z0_expectedz1_expecteds
             ry   test_zmap_axisTestZmap.test_zmap_axis[  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 
Nrq  )r   r   r   r   r   )rU   ra  )      r  r<   r<   g3Ey?)      r  r<   r=   g4?r   rv  ro   rp   rr   r@  r|  r}  s         ry   test_zmap_ddofTestZmap.test_zmap_ddoft  s{    JJ,,. / JJq!!,jj!78*Ejj!78D!Q$-!Q$-r|   ra  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   ra  r   r6   r`  )re   r   rn   rg   rl  r1   )ro   ra  rp   scorescomparer@  r  s          ry   test_zmap_nan_policy_omit"TestZmap.test_zmap_nan_policy_omit  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`   r  r7      )r   r5   r   r  r   r   r   )r   rU   ra  r`  )ri   r   r   r.  rn   re   r  rg   rl  stackr1   )ro   ra  rp   r  r  compare_0_notnacompare_1_notnar@  r  r  r  s              ry   #test_zmap_nan_policy_omit_with_axis,TestZmap.test_zmap_nan_policy_omit_with_axis  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|   Tr  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  r  ra   r3   r8   r\   zinput contains nanr   r   r   )re   rn   r   r   r   rg   rl  )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;r~  r}  c                 D   UR                  S5      nUR                  S5      nUR                  UR                  * UR                  UR                  /5      n[        [        SUS9   [        R                  " X#5      nS S S 5        [        WU5        g ! , (       d  f       N= f)Nr4   Precision loss occurred...rc  )
r   r  re   r#  rn   r'   r   rg   rl  r2   )ro   rp   r  r  r  r   s         ry   test_degenerate_inputTestZmap.test_degenerate_input  sw     1''!*jj266'26626623/KPRS**V-C TS! TSs   %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   rl  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  rm  r~  r  r  r  r   r  r   r  r  r   r   r|   ry   rj  rj  K  s    [[
,	-
,	-	/
%
%)2
. [[VaV,	  -	  [[VaV,% -%( .MN< O< [[ WX[[ VW" X Y" [[ WX" Y"r|   rj  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)
TestZscore  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 rp  re   rg   r  r1   rw  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 r  r  r  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   r@  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   r@  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   r  r`  )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[        [        SU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  rc  )	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!|$/KPRSQA T277177BFF34 TSs   A55
Br}  c                 (   UR                  / SQ/ SQ/5      n[        [        SU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        [        [        SU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[        [        SUS9   [        R                  " US S9nS S S 5        [        XQR                  XaR                  5      5        g ! , (       d  f       GN= f! , (       d  f       GNU= f! , (       d  f       NW= f)Nr   r   r   r   r   r  r        *@r  rc  r   rT   rR  r   r   r`   )r4   r7   )re   r'   r   rg   r  r1   rn   r2   r  ri   r  r  	full_like)ro   rp   rr   r{  r`  r@  rs   s          ry   test_zscore_constant_input_2d(TestZscore.test_zscore_constant_input_2d
  s   JJ002 3/KPRSaa(B TBJJtT(B)+c3(?(A B 	C /KPRSaa(B TBHHbjj"&&"&&"&&"&&1Q&R&+ll1QT7&;&= > 	? LL&::ell2::a3G&H!''RSGGFO/KPRSQT*A T<<6623! TS
 TS TSs#   GG1H
G.1
H 
Hc                 (   UR                  / SQSSSUR                  /SSUR                  S//5      nSnSn[        [        SU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        [        [        SU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  rr  rt  r  rc  r   r   r   rU   rR  r   r   r3   )re   rn   r'   r   rg   r  r1   )ro   rp   rr   r  s2r{  r`  s          ry   -test_zscore_constant_input_2d_nan_policy_omit8TestZscore.test_zscore_constant_input_2d_nan_policy_omit   sd   JJ0tT2662tRVVT24 5 /KPRSaF;B TBJJ!T266(B)+C(@)+FFBFF(C(E F 	G /KPRSaF;B TBJJ(H*+Q66(:*,QFFRCE(B(D E 	F TS TSs   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  ru  )re   r   rn   rg   r  r1   r  s       ry   test_zscore_2d_all_nan_row%TestZscore.test_zscore_2d_all_nan_row4  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 )Nra  r   r  )r   rn   rg   r  r2   )ro   rp   rs   r@  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   r@  s       ry   test_zscore_empty_input"TestZscore.test_zscore_empty_inputD  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  r  
zeros_liker  masked_arraymaskrg   r  anyr  r   r   rL  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_gh19039J  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   rc  r  r%   r  r   r   r|   ry   r  r    s*   05.
.5
%% .MN0 O0
5 [[ VW4 X4* [[ 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)TestGZscoreic  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   r`  r   rI   )	r   re   rg   gzscoreloggmeangstdr1   rJ   )ro   rp   rr   r@  r  s        ry   test_gzscore_normal_array%TestGZscore.test_gzscore_normal_arraye  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  r0  MaskedArray)ro   rr   r  mxr@  r  s         ry   test_gzscore_masked_array%TestGZscore.test_gzscore_masked_arrayk  s    HH%&UU-MM"#_bffn"$%%$$W$8(:(:(<=-!RUU..////r|   r   N)r   r   r   r   r  r%   r  r   r   r|   ry   r  r  c  s    L 
0 
0r|   r  c                   h   \ 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                  SS/4S\R                  \R                  S/4/5      S 5       r\	R                  R                  SS/ SQ4S/5      S 5       rS rSrg)TestMedianAbsDeviationiy  c                 p    SSSSSSSSSSSS	S
S
S
SSSSSSSS[         R                  /U l        / SQ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   rn   dat_nandatr}  s    ry   r~  #TestMedianAbsDeviation.setup_method{  sL    dCc3SdD$S#sS#sCtRVVE6r|   c                 N   [        [        R                  " UR                  U R                  5      S S9UR                  S5      5        UR                  UR                  U R                  5      S5      n[        R                  " USS9nUR                  / SQ5      n[        X45        g )NrT   gQ?)r7   r5   r   )gףp=
?r<   ?rg  )r1   rg   median_abs_deviationre   r  ri   )ro   rp   r  madmad_expecteds        ry   test_median_abs_deviation0TestMedianAbsDeviation.test_median_abs_deviation  sx    222::dhh3GdS

5)	+jjDHH-v6((15zz"9:*r|   c                     [         R                  " UR                  U R                  5      SS9n[	        X!R                  S5      5        g )Nr   r   g(\?)rg   r   re   r  r1   )ro   rp   r  s      ry   test_mad_nan_omit(TestMedianAbsDeviation.test_mad_nan_omit  s2    ((DLL)AfUZZ-.r|   c                     UR                  SSSS[        R                  // SQ/5      n[        R                  " USS9n[        X1R                  [        R                  S/5      5        g )Nr   r   r   r   )r   r   rM   r   r   r   rT   )re   r   rn   rg   r   r1   )ro   rp   rr   r  s       ry   test_axis_and_nan(TestMedianAbsDeviation.test_axis_and_nan  sT    JJc3RVV413 4((3ZZ67r|   c           	          UR                  SSSSS[        R                  [        R                  /5      n[        R
                  " USS9n[        X1R                  S5      5        g )	Nr   r4   r5   r7   r  r   r   r   )re   r   rn   r#  rg   r   r1   )ro   rp   r@  r  s       ry   test_nan_policy_omit_with_inf4TestMedianAbsDeviation.test_nan_policy_omit_with_inf  sI    JJ1aB78((v>ZZ_-r|   rU   )r   r   r3   Nc           
      D   UR                  S5      nUS;   a  [        [        S[        S9O[        R
                  " 5       nU   [        R                  " X1S9nS S S 5        [        WUR                  UR                  X1S9UR                  S95        g ! , (       d  f       N@= f)N)r4   r   r5   >   Nr   	too smallrc  rT   
fill_value)rc  r'   r   r   
contextlibnullcontextrg   r   r1   r  rh  rn   )ro   rU   rp   rr   contextr  s         ry   test_size_zero_with_axis/TestMedianAbsDeviation.test_size_zero_with_axis  s~    HHYi' 1L-7-C-C-E 	,,Q:C R\\"&&&*>266\RS Ws   B
Bznan_policy, expectedr   r=   r  c           	      r   US:X  a&  [        U5      (       d  [        R                  " S5        UR                  [        R
                  [        R
                  [        R
                  [        R
                  [        R
                  [        R
                  /SSSS[        R
                  [        R
                  // SQ/5      nUS:X  a  [        [        S[        S	9O[        R                  " 5       nU   [        R                  " XASS
9n[        XcR                  U5      5        S S S 5        g ! , (       d  f       g = f)Nr   z8nan_policy='omit' with n-d input only supported by NumPyr   r6   r4   r7   )r6   r7   r8   r:   r:   rZ   r  rc  r  )r)   r   skipre   r   rn   r'   r   r  r  rg   r   r1   )ro   r   r  rp   rr   r  r  s          ry   test_nan_policy_with_axis0TestMedianAbsDeviation.test_nan_policy_with_axis  s     vhrllKKRSJJHAq!RVVRVV4+- .
 !F* 1L0:0F0F0H 	,,QANCCH!56 WWs   /0D((
D6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   r1   )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                  " UR                  / SQ5      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   re   ro   rp   s     ry   test_center_not_callable/TestMedianAbsDeviation.test_center_not_callable  s5    ]]9J7&&rzz,'?K 877   'A


A)r  r  N)r   r   r   r   r~  r  r  r	  r  r   r   r  r  r   rn   r  r  r$  r   r   r|   ry   r  r  y  s    6+/8.
 [[V_5T 6T [[3%S'9:*RVVRVVS,ABDE7E7 [[- "23[AC?C?L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\R
                  R                  S/ SQ5      S 5       rS r\R
                  R                  SSS9S	 5       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\R
                  R                  SSS9S 5       rS r\R
                  R                  SSS9S 5       rS rSrg)TestIQRi  rJ   Nr   r   c           	         [         R                  " S5      S-  n[         R                  R                  U5        Uc  [	        U5      O
[        X!5      n[        [        R                  " UR                  X1S95      UR                  SUS95        g )Nr9   r<   rI   r  )
r   r   r  r  r+   rl  r2   rg   iqrre   ro   rJ   rp   rr   s       ry   rZ  TestIQR.test_basic  sj    IIaL3
		!(- $72;M		"**Q*"<=

4u
5	7r|   c                 r   U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        g )
Nr  r   r`  )rZ   Z   )r  r  r   r  r:  r=   r  r  rg   r2  ro   rp   ru  s      ry   test_apiTestIQR.test_api  sy    GGFO		!		!T		!Q		!V		!T8$		!T8S)		!T8S+6r|   	jax.numpyzlazy -> no nan_policyry  c           	          UR                  S5      n[        R                  " US SSSS5        [        R                  " US SSSS	S
5        g )Nr  )r  r  r  r   linearr7  gٿr   r  Tr8  r9  s      ry   test_api_eagerTestIQR.test_api_eager  s=    GGFO		!T8XwA		!T8T67DAr|   rr   r   c                     [        [        [        US9   [        [        R
                  " UR                  U5      5      UR                  UR                  5      5        S S S 5        g ! , (       d  f       g = fNrc  )r'   r   r   r2   rg   r2  re   rn   )ro   rr   rp   s      ry   r  TestIQR.test_empty  sE    +3HRPEIIbjjm4bjj6HI QPPs   A	A&&
A4c                    UR                  S5      nUR                  S5      n[        [        R                  " U5      U5        [        [        R                  " USS9UR                  S5      5        [        [        R                  " USS9UR                  S5      5        [        [        R                  " USS	9U5        [        [        R                  " US
S	9U5        [        [        R                  " USS	9U5        [        [        R                  " USS	9U5        [        [        R                  " USS	9U5        UR                  S5      UR                  S5      -  n[        [        R                  " USS9UR                  S5      5        [        [        R                  " USS9UR                  S5      5        [        [        R                  " USS9UR                  SS5      5        [        [        R                  " USS9UR                  S5      5        [        [        R                  " USS9UR                  SS5      5        [        [        R                  " USS9UR                  SS5      5        g )N)r8   r5   r   r   rT   r5   r   r8   r>  interpolationmidpointnearestr  r  r5   r6   r7   r   )r6   r7   )r5   r7   r3   r  r>   r`  r7   r   r3   r6   r   r   r3   )r  re   r2   rg   r2  rc  r   r   )ro   rp   rr   zerors   s        ry   test_constantTestIQR.test_constant  s   GGFOzz#		!d+		!!,bhhqk:		!!,bhhqk:		!8<dC		!:>E		!9=tD		!7;TB		!8<dC GGI2.		!!,bhhv.>?		!!,bhhv.>?		!!,bggfc.BC		!&1288A;?		!&12771b>B		!&12771b>Br|   c                 L   UR                  S5      S-   n[        [        R                  " US   5      UR	                  S5      5        [        [        R                  " U5      UR	                  S5      5        [        [        R                  " USS9UR	                  S/5      5        g )Nr   r   r   r   Tr.  )r   r2   rg   r2  re   r   s      ry   test_scalarlikeTestIQR.test_scalarlike  sl    IIbMC		!A$C9		!bjjo6		!d3RZZ5FGr|   c                    UR                  UR                  S5      S5      n[        [        R                  " U5      UR                  S5      5        [        [        R                  " USS9UR                  SS5      5        [        [        R                  " USS9UR                  S	S
5      5        [        [        R                  " USS9UR                  S5      5        [        [        R                  " USS9UR                  S5      5        g )Nr  r  r   r   rT   r6   rM   r   r4   r   r`  r  )ri   r   r2   rg   r2  re   r   r   s      ry   test_2DTestIQR.test_2D  s    JJryy}f-		!bjjo6		!!,bggan=		!!,bggan=		!&12::c?C		!&12::c?Cr|   c                    [         R                  R                  SS9n[         R                  " U/S-  5      nUR	                  U5      UR	                  U5      p2UR                  [        R                  " U5      S5      n[        [        R                  " USS9U5        UR                  USS5      n[        [        R                  " US	S9U5        [        USS
US9n[        [        R                  " USS9U5        [        USS
US9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UR	                  U5      n[        [        R                  " USS9S   [        R                  " [        US S 2S S 2S S 2S4   5      5      5        [        [        R                  " USS9S
   [        R                  " [        US S 2S S 2S
S S 24   5      5      5        [        [        R                  " USS9S   [        R                  " [        US S 2S S 2SS S 24   5      5      5        [        [        R                  " USS9S   [        R                  " [        USS S 2S S 2S S 24   5      5      5        [        [        R                  " USS9S	   [        R                  " [        USS
S S 2S S 24   5      5      5        [        [        R                  " USS9S	   [        R                  " [        USS S 2S S 2S
4   5      5      5        [        [        R                  " USS9S   [        R                  " [        USS S 2SS S 24   5      5      5        [        R                   " ["        SS9   [        R                  " USS9  S S S 5        [        R                   " [$        SS9   [        R                  " USS9  S S S 5        g ! , (       d  f       NF= f! , (       d  f       g = f)N)G   r  r  rZ   )rZ   r`  rT   r`   r   r  r   r  rJ  r  r   i  r4   r6   r8   r[   r   r   r4   )r4   r   r  r3   )r4   r   r3   r4   r3   )r   rN  r   r4   r3   r3   z`axis` is out of bounds...r   r5   z`axis` must contain only...r  )r   r  r  dstackre   broadcast_torg   r2  r2   moveaxisr0   r   r  ri   r/   r   r   r$   r   )ro   rp   orr   qru  s         ry   r  TestIQR.test_axis  s/   II(+IIqcBhzz!}bjjm1OOEIIaL%0		!&115KK2q!		!&115!Q2&		!&115!Q2&		!)4		!$/	1		!$/		!!,	. IIn% 			!IIm$JJqM		!)4Q7		(1QqAX;"78	:		!)4Q7		(1Qq!AX;"78	:		!*5a8		(1Qq!AX;"78	:		!)4Q7		(1Qq1W:"67	9		!&1$7		(1Q!AX;"78	:		!'248		(1Q1aZ="9:	<		!&1$7		(1Q1QY<"89	; ]]9,HIIIaa  J]]:-JKIIaf% LK JIKKs   )P? Q?
Q
Qc                 t   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9UR	                  S5      5        [        [        R                  " USS9UR	                  S5      5        S	n[
        R                  " [        US
9   [        R                  " USS9  S S S 5        Sn[
        R                  " [        US
9   [        R                  " U[        R                  S4S9  S S S 5        Sn[
        R                  " [        US
9   [        R                  " USS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       NY= f! , (       d  f       g = f)Nr6   r   )r  g     U@r  r>   )g      )@r:  )rZ   r  g?z2Elements of `rng` must be in the range \[0, 100\].r   )r   r  z`rng` must not contain NaNs.r  z%`rng` must be a two element sequence.)r   r  <   )r   r2   rg   r2  re   r   r   r   r   rn   r:  ro   rp   rr   r  s       ry   test_rngTestIQR.test_rngA  s   IIaL		!bjjn5		!4bjjoF		!4bjjoF		!2BJJsODG]]:W5IIaX& 6 1]]:W5IIabffb\* 6 :]]9G4IIa[) 54 65 65 54s$   &F&F(F)
F
F&)
F7c                    UR                  S5      nUR                  S5      n[        [        R                  " U5      UR	                  S5      5        [        [        R                  " U5      UR	                  S5      5        [        [        R                  " USS9UR	                  S5      5        [        [        R                  " USS9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        [        [        R                  " USS9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        [        [        R                  " USS9UR	                  S5      5        [        [        R                  " USS9UR	                  S5      5        [        [        R                  " USS9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        [        [        R                  " USS9UR	                  S5      5        S H  n[        R                  " X4S9  M     [
        R                  " [        SS9   [        R                  " USS9  S S S 5        g ! , (       d  f       g = f)Nr6   r5   r   r=   r>  rE  r  )r  P   )r  rF  r   r  rH  r   rG  r>   )inverted_cdfaveraged_inverted_cdfclosest_observationinterpolated_inverted_cdfhazenweibullmedian_unbiasednormal_unbiasedz`method` must be one of...r   r   )r   r2   rg   r2  re   r   r   r   )ro   rp   rr   rs   r  s        ry   test_interpolationTestIQR.test_interpolationT  s   IIaLIIaL		!bjjn5		!bjjo6		!8<bjjnM		!8<bjjoN		!8<bjjnM		!J

2	(		!8<bjjnM		!7;RZZ^L		!I

2	(		!7;RZZ^L		!9=rzz"~N		!9=rzz"~N		!:>

2O		!L

3	)		!:>

2O*F IIa.	* ]]:-IJIIax0 KJJs   L//
L=c                    U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 )NrX  Fr  r   r3   )r4   r6   r[   r`  )r8   r[   )r   r4   )r6   r8   )r   r  r   r   r3   r4   r.  rY  r   Tr^  )r4   r6   r   r[   )r   r   r8   r[   )r   r6   r8   r   )r4   r   r8   r[   )r   r   r8   r   )r  r   rg   r2  r  r   s      ry   test_keepdimsTestIQR.test_keepdimsz  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           
         UR                  UR                  S5      S5      n[        [        R                  " USS9UR                  S5      5        [        [        R                  " USS9UR                  S5      5        [        [        R                  " USS9UR                  S5      5        [        R                  " U5      S   R                  UR                  5      n[        [        R                  " USS9UR                  UR                  5      5        [        [        R                  " US	SS
9UR                  SSUR                  SS/5      5        [        [        R                  " USSS
9UR                  SUR                  S/5      5        [        [        R                  " USS9UR                  S5      5        S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       NH= f! , (       d  f       g = f)N      .@r  r  r   r   r   r   rK  r   r  r6   r   r3   rC   r   r   r   barfood)ri   r   r2   rg   r2  re   rk   rl   rm   rn   r   r   r   re  s       ry   test_nanpolicyTestIQR.test_nanpolicy  s   JJryy/ 			!<bjjnM		!7BH		!8"**R.I FF1IdO'		!<

266*	,		!!D

Aq"&&!Q#78	:		!!D

Arvvq>2	4 			!7CI1]]:W5IIaG, 6 1]]:W5IIaI. 65 65
 65s   H1I1
H?
ITz=nan_policy w/ multidimensional arrays only available w/ NumPyr   c                 N   UR                  UR                  S5      S5      nUR                  US'   [        [        R
                  " USSS9UR                  SS5      5        [        [        R
                  " US	SS9UR                  / S
Q5      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S9  S S S 5        g ! , (       d  f       NG= f! , (       d  f       g = f)Nry  r  rK  r   r   r  r6   rM   r   )r3   r>   r3   r   r   r   )ri   r   rn   r2   rg   r2  r   re   r   r   r   re  s       ry   test_nanpolicy_ndTestIQR.test_nanpolicy_nd  s     JJryy/&&$		!!?2	(		!!?

;/	1 2]]:W5IIaaG4 6]]:W5IIaaG4 65 6555s   -D%D
D
D$c                 b   UR                  UR                  S5      S5      n[        [        R                  " USS9UR                  S5      5        [        [        R                  " USS9UR                  S5      5        [        [        R                  " USS9UR                  S	5      5        [        R                  " U5      S
   R                  UR                  5      nUR                  UR                  5      n[        [        R                  " USSS9U5        [        [        R                  " USSS9U5        [        [        R                  " USSS9U5        [        [        R                  " USSS9UR                  S5      5        [        [        R                  " USSS9UR                  S5      5        [        [        R                  " USSS9UR                  S5      5        Sn[        R                  " [        US9   [        R                  " USS9  S S S 5        g ! , (       d  f       g = f)Nry  r  r   )r0  r   r  g=V^w@r   r?   rK  r  )r0  r   r   rC   g	I1=@g      @z"foobar not a valid scale for `iqr`r   r   )ri   r   r2   rg   r2  re   r1   rk   rl   rm   rn   r   r   r   )ro   rp   rr   rn   r  s        ry   
test_scaleTestIQR.test_scale  s~   JJryy/ 			!3/B@		!84bjj6OP		!3/CA FF1IdO'jj 		!3;GM		!8LcR		!3;GM		!36BBJJsOT		!8G

?3	5		!36BBJJtDTU 7]]:W5IIax( 655s   H  
H.c           	      6   UR                  UR                  S5      S5      n[        R                  " U5      S   R	                  UR
                  5      n[        [        R                  " USSSS9UR                  S[        R
                  S/5      5        [        [        R                  " USS	SS9UR                  S[        R
                  S/5      S
-  5        [        [        R                  " USSSS9UR                  S[        R
                  S/5      5        g )Nry  r  rK  r   r   r  )rU   r0  r   r3   r  gF7k?r   )ri   r   rk   rl   rm   rn   r2   rg   r2  re   r   r1   r   s      ry   test_scale_nanpolicy_ndTestIQR.test_scale_nanpolicy_nd  s     JJryy/FF1IdO'		!!3;O

Arvvq>2	4		!!8T

Arvvq>2Y>	@		!!3;O

Arvvq>2	4r|   c                     UR                  S5      S-  n[        R                  " USS9n[        R                  " U5      n[        X45        g )Nr   r<   )r:  r  r  )r   rg   r2  r2   ro   rp   rr   r   r  s        ry   test_rng_orderTestIQR.test_rng_order  s9    IIbMCiix(iil!r|   r   N)r   r   r   r   r   r   r  rZ  r:  r   r?  r   r   r  rM  rP  rS  r  rf  rr  rv  r{  r~  r  r  r  r   r   r|   ry   r/  r/    s$    [[W&BC7 D77 [[!!+6M!NB OB
 [[S2ryy|"45J 6JC.HD+&Z*&$1LV&/8 [[!!$N " P5P5)2 [[!!$N " P
4P
4"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.
rQ  r   l   Jf r  r  rZ   )rZ   r3   zm, cru  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   rh  r  r1   )	ro   r  r  rt  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|   rt  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  ru  r"  .)	r   r  r  re   rg   r  r  newaxisr2   )
ro   r  rt  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g ! , (       d  f       NK= f)Nr   r   r   r   r3         ?r4   r5        @r  )r   r  r   r  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   rW  r   orderrU   )r3   r   )rg   r  re   r2   rn   r   rc  rU  )rs   rp   s    ry   
test_cases+TestMoments.test_moment.<locals>.test_cases1  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|   )	re   rb  rg   r  rY  r1   r   r   r   )ro   rp   rb  rs   r  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 65s   $I
I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   r  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[        R
                  R                  S5      nUR                  UR                  S5      US9n[        R                  " XcS9n[        XtR                  X!S95        [        R                  " UR                  US5      SUS9n[        XtR                  S	X!S95        [        R                  " UR                  US
5      SUS9n[        XtR                  SX!S95        [        R                  " UR                  US
5      S US9n[        XtR                  SX!S95        g )Nr  l   1G r6   rI   r  )r7   r6   r   )rU   r  )r6   r!  r3   )r   r3   r5   r6   r   )r*   r   r  rl  r   r  r  re   rg   r  r2   r^  r   )ro   rJ   expectr  rp   r  rr   rs   s           ry   test_constant_moments!TestMoments.test_constant_momentsE  s    ,8B<<KKM"ii##J/JJszz!}EJ2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   r  rF  rG  )
ri   r   rk   rl   rm   rn   rg   r  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   r  re   r#  s     ry   test_moment_empty_order#TestMoments.test_moment_empty_orderd  sA    ]]: .E FLLL1<F F Fr&  c                     UR                  S5      n[        R                  " USS9n[        R                  " USS9n[        X45        g )NrZ   r4   )r  r  )r   rg   r  r2   r  s        ry   test_rename_moment_order$TestMoments.test_rename_moment_orderj  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   r  )ro   
tc_no_means     ry   test_moment_accuracy TestMoments.test_moment_accuracyr  sY     33 = =>?
R0557T%B%BBG	Ir|   r  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   r  re   r   r1   )	ro   rp   r  rU   r  r  rr   r   r  s	            ry   test_moment_array_api!TestMoments.test_moment_array_apiz  s_     ii##N3JJIJ&ll2::a=%6Jjj4=>!r|   r   )r   r   r   r   r8  rb  rY  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     HO
))



+C"zz"~[[Vb']3[[VW\<%HI[[I. J 4
. [[Vb']3[[S,/[[I" 0 4
")1VH [[W&JK[[_vv.>?= @ L=(D="I [[Wl3[[VZ0[[Xay1[[I" 2 1 4"r|   r  c                   .    \ rS rSrSr/ SQr/ SQrS rSrg)SkewKurtosisTesti  r   rQ  )gp=
ף?g?߾?gD9?gQI?g}?5^Ic                     UR                  / 5      n[        [        [        US9   U R	                  U5      nS S S 5        [        WUR                  UR                  5      5        g ! , (       d  f       N4= frB  )re   r'   r   r   stat_funr2   rn   r   s       ry   test_empty_1dSkewKurtosisTest.test_empty_1d  sT    JJrN+3HRP--"C Q 	RZZ/0 QPs   A%%
A3r   N)	r   r   r   r   rY  rb  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)TestSkewi  c                 .    [         R                  " U5      $ r(  )rg   skewr  s     ry   r  TestSkew.stat_fun  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   rY  r1   rn   r  rb  )ro   rp   rs   s      ry   test_skewnessTestSkew.test_skewness  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_policy  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_scalar  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_nan  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[        [        SU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 occurredrc  g      CFr  g,@r8   r         r5   r  )	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/HRP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+=> QPPs   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   rL  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    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   rY  r  r  r1   rb  r   rc  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[        [        SU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  rc  F)r  l           r  )re   r'   r   r  rg   r  r  r  s      ry   test_kurtosis_constant_value)TestKurtosis.test_kurtosis_constant_value2  s    JJ}R'(/HRP88ENN1U;<<<<88ENN1uU|+;EJKKKK88ENN1uU|+;EJKKKK88ENN1UGHHHH	 QPPs   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  rI  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>.kurtosisD  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  errorr  r   )dictnpstarray_shapesarraysr   r   r   r   r[  r  r  r  r  suppress	Exceptionrg   r  r  r  rR  
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                      \ 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\" SSS9S 5       r\R"                  R%                  S5      S 5       r\" SSS9\R"                  R1                  S/ SQ5      S 5       5       rS r\" SSS9\R"                  R6                  \R:                  " \R<                  R?                  S S!5      \ " 5       S"9\R"                  R1                  SS#S$/5      S% 5       5       5       5       r!S&r"g')(TestStudentTesti{  rR  r   r   )r   r   r   r   r   gMXzg4/?gMXzgFX5t?gMXz?r3   r   r~  r}  c                 P   [         R                  " 5          [        R                  " SSS9   [         R                  " SS[
        5        [        U5      (       d  UR                  S5      OSn[        R                  " US5      u  p4S 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  p4[        X1R                  U R                  5      5        [        XAR                  U R                  5      5        [        R                  " UR                  U R                  5      S5      nSn[!        XVUS9  [        R                  " UR                  U R"                  5      S5      u  p4[        X1R                  U R$                  5      5        [        XAR                  U R&                  5      5        [        R                  " UR                  U R                  5      S	5      u  p4[        X1R                  U R(                  5      5        [        XAR                  U R*                  5      5        [        R                  " UR                  U R                  5      S
5      u  p4[        X1R                  U R,                  5      5        [        XAR                  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?  r  r   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   rM  trg  r   rB  s          ry   test_onesampleTestStudentTest.test_onesample  s    $$&HX>##=~O&.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1; ?> '&s#   LALL
L	L
L%c                    [         R                  R                  SSSSS9n[        R                  US'   UR                  U[        U5      S9n[         R                  " US5      n[        UR                  UR                  UR                  5      5        [        UR                  UR                  UR                  5      5        g )	Nr6   rZ   3   t r/  r0  r  r  r  rI   rM   )rg   rb  r  r   rn   re   r+   r&  r2   r@  r?  r   s       ry   #test_onesample_nan_policy_propagate3TestStudentTest.test_onesample_nan_policy_propagate  s    JJNNq'NJ"JJq 0 4J53'rzz"&&'9:

BJJrvv$67r|   Tr  r   c                    [         R                  R                  SSSSS9n[        R                  US'   UR                  U[        U5      S9n[         R                  " USS	S
9n[        UR                  UR                  S5      5        [        UR                  UR                  S5      5        [        R                  " [        SS9   [         R                  " USSS
9  S S S 5        [        R                  " [        SS9   [         R                  " USSS
9  S S S 5        g ! , (       d  f       NG= f! , (       d  f       g = f)Nr6   rZ   r5  r6  r7  r  rI   rM   r   r   g̈́^Bg/kCm?r   r   r   znan_policy must be one ofr   )rg   rb  r  r   rn   re   r+   r&  r1   r@  r?  r   r   r   r   s       ry   $test_onesample_nan_policy_omit_raise4TestStudentTest.test_onesample_nan_policy_omit_raise  s    JJNNq'NJ"JJq 0 4J536:rzz2E'FG

BJJ/C$DE]]:-LMa9 N ]]:-HIa: JI NM JIs   D>D/
D,/
D=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  r1  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r<  Generic stdtrit mutates array.ry  r  rY  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/  r0  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   rG  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   rI  )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)z	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  rI  r  rT   r   rI   )re   rg   r&  r  expand_dimsrF  r  r!  r^  r   r1   r?  )ro   rR  rS  r  rp   r  rU   r   lr  rG  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/  r0  r+  r,  r?  r@  r   r   r   r2  r8  r   r;  rA  r  rL  rP  rx  r  givenr  floatsr  rW  r   r   r|   ry   r  r  {  s    
B	BDDDDDDDDAXF$(^F[[ WX[[ VW2 X Y2B8 .MN; O;  [[ 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S0rg1)2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   ra  ro   rj  r  rM  s       ry   test_unique!TestPercentileOfScore.test_unique  s"    
 ,TVVAqtV,f5r|   ))r  r  )rj   r  rd  )rf  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   ri  rk  rl  s       ry   test_multiple2$TestPercentileOfScore.test_multiple2  "    
 +TVVAqtV,f5r|   ))r  r  )rj   r  rd  )rf  rd  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   ri  rk  rl  s       ry   test_multiple3$TestPercentileOfScore.test_multiple3%  rr  r|   ))r  r  )rj   r  rd  )rf  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   ri  rk  rl  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  rd  F   ri  r6  r  r  ri  rk  rl  s       ry   r?  (TestPercentileOfScore.test_large_numbers5  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  rd  r{  ri  r  ri  rk  rl  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  rd  r{  ri  r6  r  n   r  ri  rk  rl  s       ry   test_large_numbers_missing0TestPercentileOfScore.test_large_numbers_missingE  s"    
 7TVVArV-v6r|   r  )r   rZ   r  r  rj   )r   r6   _   r  re  )r   r   r6  r  rf  c                 F    / SQn[        U R                  U/ SQUS9U5        g )Nr  )r   rZ   r  r-  ri  rk  rl  s       ry   test_boundaries%TestPercentileOfScore.test_boundariesM  s#    
 7TVVA0tV<fEr|   )r   rZ   r  )r   r6   r  )r   r   r6  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:   ri  )r   r#  r   ra  rl  s       ry   test_infTestPercentileOfScore.test_infU  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   rk  )ro   policyrM  r  r  s        ry   test_nans_ok"TestPercentileOfScore.test_nans_oke  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   ra  )ro   r  rM  r  r  s        ry   test_nans_fail$TestPercentileOfScore.test_nans_failp  s(    :W5FF1F/ 655s   )
7r  ))r7   ra  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   rh  r  ri  )r   r   ri   r   ra  )ro   r  rM  r  resultss        ry   test_ndTestPercentileOfScore.test_ndu  sF     HH'(5!)+TVVAFV3W=r|   c                     Sn[         R                  " [        US9   [        R                  " [
        R                  " S5      S5        S S S 5        g ! , (       d  f       g = f)Nz`a` must be 1-dimensional.r   r  r   )r   r   r   rg   r^  r   r  rB  s     ry   test_multidimensional_error1TestPercentileOfScore.test_multidimensional_error  s;     /]]:W5##BGGFOQ7 655s   ,A
Ar   N)r   r   r   r   ra  r   r   r  rm  rp  rt  rw  r?  r~  r  r  r  r   rn   casesr  r  r  r  r   r   r|   ry   r\  r\    sk   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 ' >>8r|   r\  Case)f_obsf_expra  rU   chi2r  mod_logcr)r5   r9   r\   r9   r5   r3   r<   r\   r=   r9   r   rQ  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)TestPowerDivergencei  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	[
        R                  " 5          [
        R                  " S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   zMean of empty slicer  ra  rU   lambda_r   pearson)r  ra  rU   )re   rJ   r,   broadcast_arraysr  r   r   r   r   rg   power_divergencer1   	chisquarer   distributionsr  sf)ro   r  r  ra  rU   r  expected_statrp   rJ   num_obsr  statrg  
expected_ps                 ry   check_power_divergence*TestPowerDivergence.check_power_divergence  s]   

2$$

5
.272C

5
.<enG;@;Lb))%7!8 Qiood+G$$&##H.C^T,, %%)<GD D**]*"HI!|w)3//%4/35jjj&LM ' zz$((--00181t1CE
2::j:>?! '&s   B	E==
Fcaselambda_stat))Nr  r  r  )r   r  log-likelihoodr  mod-log-likelihoodr  cressie-readr  rQ  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  ra  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   r`  r  r  rT   )r  r   r  r  r   r  rj   r  r  re   rJ   rg   r  r1   r  r  )ro   rp   r  r  r  r  expected_chi2rJ   ra  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  ra  rU   r  s          ry   test_empty_cases$TestPowerDivergence.test_empty_cases6  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  ra  rU   re   rJ   rg   r  r   )	ro   rp   r  r  ra  rU   rJ   r   rB  s	            ry   'test_power_divergence_result_attributes;TestPowerDivergence.test_power_divergence_result_attributesC  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   r>        >@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_12282Q  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@r  g      A@rR  g     =@r  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  rh  expr  r  r   ri   r  rg   r  r1   )ro   rp   obsbetar  rR  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    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   r>  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  rE  r  rI   r`   F)r  ra  	sum_checkr3   )r   r  r  r   poissonre   rJ   rg   r  rJ  rh  r1   r@  r#   r?  r  )
ro   rp   r  r  lamrr   r   r@  r@  r*  s
             ry   test_chisquare_12282b#TestChisquare.test_chisquare_12282b  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-  r9  )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_attributes  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                      \ rS rSr/ SQ/ SQ/ SQ/ SQ/rSr/ SQ/ SQ/ S	Q/ S
Q/rSr/ SQ/ SQ/ SQ/ SQ/rSr	\
R                  R                  S/ SQ5      \
R                  R                  S\\4\\4\\	4/5      S 5       5       rS rSrg)TestFriedmanChiSquarei  )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=
?)gNt$@gBv?)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   )g
__2@g5"]i2?)r   g#@rD   r  g$@)g333333@g@g@r?   g@)r  r  rA   r   @)g!@g!@333333 @ffffff
@g333333"@)g\(\%@g+ԋ?rJ   r0  z	data, refc                    [        U5      (       a,  UR                  S:  a  US:X  a  [        R                  " S5        Uc  UO
[	        XA5      nU Vs/ s H  oTR                  XQS9PM     nn[        R                  " U6 n[        UR                  UR                  US   US95        [        UR                  UR                  US   US95        g s  snf )N2.0r   (NumPy doesn't preserve dtype pre-NEP 50.rI   r   r   )r)   __version__r   r  rl  re   rg   friedmanchisquarer1   r@  r?  )ro   rJ   r  r  rp   r   r   s          ry   test_against_references-TestFriedmanChiSquare.test_against_references  s     B<<BNNU2ui7GKKBCGB,><@AD5

5
.DA%%t,rzz#a&z'FG

BJJs1vUJ$CD Bs   Cc                    Sn[         R                  " [        US9   [        R                  " UR                  U R                  S   5      UR                  U R                  S   5      5        S S S 5        g ! , (       d  f       g = f)Nz At least 3 samples must be givenr   r   r   )r   r   r   rg   r  re   r  ro   rp   r  s      ry   test_too_few_samples*TestFriedmanChiSquare.test_too_few_samples  sS    4]]:W5##BJJtwwqz$:BJJtwwqz<RS 655s   AA55
Br   N)r   r   r   r   r  ref1r  ref2r  ref3r   r   r  r	  r  r   r   r|   ry   r  r    s    
9:;:
;B 2D /
.
.
.
0B 4D %
#
#
#
%B 'D[[W&BC[[[B:DzB:*NOE P DETr|   r  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 Nrb  r  r  rP  )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_1samprb  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%  rb  )r   r.  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   r.  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+  r0  r   r   r|   ry   r  r    s%    V ')OS-
?	(r|   r  c                   n   \ rS rSrSrSS.S jr\R                  R                  S/ SQ5      S 5       r	\R                  R                  S/ SQ5      S	 5       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.
r2  r*  c                    XgR                   :X  a  SOSn[        R                  " U[        R                  X%S9n	UR                  X6S9n
UR                  XFS9n[        U	R                  XS9  [        U	R                  XS9  g )NgvIh%,=h㈵>r  rI   r  )	r   rg   r  r   ndtrre   r1   r@  r?  )ro   rr   r  r  r  r  rJ   rp   r  r   ref_statisticrj  s               ry   r  TestKSOneSample._testOne!  se    +unnQ+Q

#5
CZZZ;
}@

J:r|   rJ   r0  c           
         [        U5      (       a,  UR                  S:  a  US:X  a  [        R                  " S5        Uc  [	        U5      O
[        X!5      nUR                  SSSUS9nU R                  USS	S
XS9  UR                  SSSUS9nU R                  USSSXS9  / SQnUR                  X1S9nU R                  USSSXS9  U R                  USSSSXS9  U R                  USSSSXS9  g )Nr  r   !Pre-NEP 50 doesn't respect dtypesr`   r   r:   rI   r  g|N?g7.s?rJ   rp   r&  r  g{CTp?g M<b*?r'  gZL?g86J4?r  g+?r  )r  rJ   rp   r  gHD?gr?)	r)   r  r   r  r+   rl  r.  r  re   r3  s       ry   test_agree_with_r!TestKSOneSample.test_agree_with_r*  s"    B<<BNNU2u	7IKK;<(- $72;MKKAqK.a&9;N! 	 	* KKR%K0a&9;O! 	 	* OJJqJ&a&79J! 	 	*a$57Hw! 	 	*a!24EG! 	 	*r|   c           
      ~   [        U5      (       a,  UR                  S:  a  US:X  a  [        R                  " S5        Uc  [	        U5      O
[        X5      n[        R                  R                  SSSS9nUR                  X2S9nU R                  US	S
SSXS9  U R                  USS
SXS9  U R                  USSSXS9  g )Nr  r   r;  r-  r  ih:)r/  r  r  rI   r  ghх?g7?asymp)r  rp   rJ   r  g^h?)rp   rJ   r  gv!ԉ}?g*z)?)r)   r  r   r  r+   rl  rg   rb  r  re   r  )ro   rp   rJ   rr   s       ry   test_known_examples#TestKSOneSample.test_known_examplesA  s     B<<BNNU2u	7IKK;<(- $72;MJJNNs9NEJJqJ&a&9;O"r 	 	8a!46J 	 	*a$9;N 	 	*r|   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   )rE  rF  Fr   )rE  r<   Tgb?)rE  r<   FgiNq>)rE        ?Tgv(?)rE  r  TgT	?)@  g\(\?Fr   )rH        ?Fg(>)rH  gQ?Fg@c?)rH        ?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_allpathsQ  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  r   r   r   )r  r   r   r`   )r  r   r   r   )r  r   r   r`   c                    UR                  S5      S-   n[        R                  " U5      S   R                  U5      nS nU" UR	                  U5      XS9n	UR
                  UR                  :X  a  SOSn
[        U	R                  UR	                  S5      U
S	9  [        U	R                  UR	                  U5      5        [        U	R                  UR	                  XVR                  S
95        g )Nr   r<   r7   c                     U S-  $ )Nr   r   r  s    ry   r  /TestKSOneSample.test_location_sign.<locals>.cdf  s
    1s7Nr|   r  rF  r  rM  r  rI   )r   rk   rl   rm   re   rJ   r   r1   r@  r2   statistic_locationstatistic_signint8)ro   rR  r  x6valref_locationref_signrp   rr   r  r   r  s              ry   test_location_sign"TestKSOneSample.test_location_signt  s     IIcNS FF1IaLU#"RZZ]CA2::-u4rzz#TB..

<0HI**BJJxwwJ,OPr|   r   N)r   r   r   r   r8  r  r   r   r  r=  rA  rP  rg   r  r  r]  r   r   r|   ry   r4  r4    s    
 ; [[W&BC* D*, [[W&BC* D*!RF [[Xenn'EF[[I9:
Q: GQr|   r4  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._testOne  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.testSmall  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  rN  r  rQ  rh  rP  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  rQ  r  r<   g?r  g?r  r  皙?r  rg  r-  r   rh  ri  s        ry   testTwoVsFourTestKSTwoSamples.testTwoVsFour  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   rM  r  r  g~z?r  gz;.B?r  r   r   g{Gz?gn2IU?r   r.  r  )ro   x100	x100_2_p1	x100_2_m1s       ry   test100_100TestKSTwoSamples.test100_100  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  r  r  rM  r  g?g@߿?r  g}n?r  r   g:[?g]O);?gѫ);?r   r   rs  )ro   rt  x110
x110_20_p1
x110_20_m1s        ry   test100_110TestKSTwoSamples.test100_110  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   rM  r  )ro   x2233x3344x2356x3467s        ry   testRepeatedValues#TestKSTwoSamples.testRepeatedValues  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<   rh  )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           
      0   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  [        R                  " 5          Sn[        R
                  " S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     @@r2  r*  r@  r  g2JE?r  g     @@gsW\nc?)ks_2samp: Exact calculation unsuccessful.r   r  Trecordalways	r   r.  r  r   r   r   r   r[  r-  ro   n1n2deltarr   rs   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" 	 	$$$&AG##Hg~FMM!	6B;+;=O&  (MM!
R9K&  ( ' $$D1Q!!(+MM!
R9K&  (A~q1	 21 '& 21   ?AE6,AF6
F
Fc           
      0   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  [        R                  " 5          Sn[        R
                  " S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*  r2  r  gZ?r  g     @@g@J?r  r   r  Tr  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" 	 	$ $$&AG##Hg~FMM!	6B;+;=O&  (MM!b(8:L&  ( ' $$D1Q!!(+MM!b(8:L&  (A~q1	 21 '& 21r  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)'  r  r  r   r3   r   r-  r  r  g    `@g      <r  g     @g򼉷?r  gimb:rs  )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  r  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 )Nr  r  r  i'  r=   r  g 	_r!?gAD5r@  r*  r  r  r  gלN#y7r  gvqw?r  r  s       ry   test_gh11184_bigger$TestKSTwoSamples.test_gh11184_bigger3  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 )Nr  r  i.  r  rZ   r<   r  r/  r  r*  r@  r4   )	r   r  r  r  r  rg   rb  r?  r   )ro   r  rr   vals1vals2r  r@  s          ry   test_gh12999TestKSTwoSamples.test_gh12999B  s    ii##F+tUD)AJJQJ(EJJQV#J6ENN5g>EEENN5g>EEEeQY/eQY/ *r|   c           
      j   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        [        R                  " 5          Sn[        R
                  " S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)r  i*  r  r   r3   r   r-  r  g     @gkHY?r@  r*  gLɔ.?r  r2  r  g.LbG2?r  r   gr?֎?r  r   )r   r.  r  r   r   r   r   )ro   r  r  r  r  rr   rs   r  s           ry   testLargeBothTestKSTwoSamples.testLargeBothN  sT    gBr	!AKK3#e+KK3#aK6H" 	 	$aK6H" 	 	$aK6H! 	 	#aIus{4FGaFD3J0BC$$&AG##Hg~FMM!	53;8J&  (MM!s
4F&  ( '&&s   AD$$
D2c                 R    Sn[         R                  " SS/S/5      n[        X!5        g )Nr%  r   r3   r4   )rg   rb  r   )ro   rB  r   s      ry   testNamedAttributes$TestKSTwoSamples.testNamedAttributesf  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|  r  iK  rE  )scipy.stats._stats_pyr  r  r   r~  r   FloatingPointError)ro   r  r  s      ry   test_some_code_paths%TestKSTwoSamples.test_some_code_pathsl  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Nr   )r   rL  r   r   rg   rb  r   r@  r   rn   r?  )ro   r  r   s      ry   test_argument_checking'TestKSTwoSamples.test_argument_checking}  sS     \\,4IJ..$'C/RVV, KJJs   AB
Bc                    [         R                  R                  S5      nSn[        R                  R                  USSUS9nUS-   n[        R                  " X4SSS9  [        R                  " X4S	SS9  [        R                  " X4S
SS9  g)zEnsure gh-12218 is fixed.l   9B i    r   r   )r  r/  r0  r  r  r@  r  r  r  N)r   r  r  rg   r   r  rb  )ro   r  r  rvs1rvs2s        ry   test_gh12218TestKSTwoSamples.test_gh12218  ss    
 ii##J/}}  bb L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   rs  rG  )
r   r  r  r   rL  r   rg   rb  r   r?  )ro   r  r  r  r  r   s         ry   test_warnings_gh_14019'TestKSTwoSamples.test_warnings_gh_14019  s     ii###2


$s*


$<\\.8..6BCCJJ6 988s   +B
BrR  rS  ))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  rM  )	r   r   r   rb   rg   rb  r@  rW  rX  )	ro   rR  r  rZ  r[  r\  rr   rs   r   s	            ry   r]  #TestKSTwoSamples.test_location_sign  st     IIb

+FFH!nnQ{;}}###%%555!!X---r|   r   N)r2  )#r   r   r   r   r8  r  re  rl  rp  rw  r}  r  r  r   r   r  r  r  r  r  rx  r  r  r  r  r  r  r  r  r  rg   r  rb  r]  r   r   r|   ry   r`  r`    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|   r`  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        [        R                  " 5          [         R                  " SSS	9   [        R                  " S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.                  R1                  S5      n[        R2                  R5                  SSSUS9n[         R6                  US'   [        R2                  R5                  SSSUS9[        R2                  R5                  SSUS9-   n[         R6                  US'   [         R                  " SS9   [9        [        R                  " X5      [         R6                  [         R6                  45        S S S 5        [        [        R                  " XSS 9S!5        [)        [*        [        R                  XS"S 9  [)        [*        [        R                  XS#S 9  [:        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      [         R6                  [         R6                  45        [         R                  " S[         R6                  /S(S//5      n[#        [        R                  " U[         R@                  " S)5      5      S[         R6                  /S[         R6                  /45        S S S 5        [         RB                  " S*5      n[)        [*        [        R                  URE                  S+5      URE                  S,5      5        S- n[         RF                  " U5      n[         R6                  US S 2S.S/24'   [         R6                  US S 2S0S124'   [:        R<                  " [H        [J        S%9   [        R                  " XVSSS 9u  pS S S 5        [:        R<                  " [H        [J        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        [:        R<                  " [H        [J        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%  ra  r3   rZ  r  r  r  r	  r  Na r6   rZ     r7  r-  r-  )r0  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   r1  rg  alts      ry   converttest_ttest_rel.<locals>.convert  3    EcVmQ3)3Cq5LAE{r|   r  r  r  r  rr  rs  r  )&r   r.  r   rg   	ttest_relr   r   r   r   r~  r   r   r   r  r   r]  absr   r  r_  r   r   r   r  r  rb  r  rn   r	   r   rL  r#  rc  r   ri   	vectorizer   r   )trrU  tprr  r  rvs1_2Drvs2_2Dr1  rg  rB  r   rvs1_3Drvs2_3Dr  rr   rs   ananr  	converters                      ry   test_ttest_relr    sQ   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:9>	K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 
' eooav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16a'a?a1b2Cb;b'9b99c1c1c.
a	a
a.1
b 
b
b$'
b69
c
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   )rN  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   rL  r   r   rg   r  r0  	_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                  " 5          [        R                  " S[
        [        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   r`   rT   r  )r   rU  r   r   r   r   r   rg   r  r0  r  r  r   rn   r   r@  r?  )rY  expected_shaperM  r  expected_values        ry   test_ttest_rel_axis_size_zeror  E  s     	A		 	 	"*?ASTB/ 
# feoo99::::WW^?N!!>2/ 
#	"s   6C%%
C3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   rU  rg   r  r0  r  r  r   r@  r  r?  )rM  rY  r  s      ry    test_ttest_rel_nonaxis_size_zeror  W  sw    
 	A
A__Q*Ffeoo99::::!!''0$$f-r|   r  rY  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   rE  gZ?Ygi{a?g8 gC?rF  r  rH  rI  r   )r   r  r  r  r#  rg   r  r  r   r   rK  )r  r  r  rr   rs   r  r   r  s           ry   test_ttest_rel_ci_1dr  d  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)NrO  r   rZ   rI  )r   r   r   r  )test_funr_  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|   rW  )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  r.  rg   	ttest_indr1   ttest_ind_from_statsr	  r   r@  r?  r   r   r   rn   rc  r   r  r2   )rp   r  rU  tr_2Dpr_2Dr  r  r  r  r   r1  rg  r  r_  r  r  NaNs                    ry   test_ttest_indr	    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  r7  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  rs  r  r  )r   r.  r   r]  r  r  rg   rb  r  rn   r~  r	   r
	  r   r   r   r   rL  r   r   r  r#  rc  r  r   )r  r  r  r  r  r  r  rr   rs   r1  rg  r  r  r  r  rU  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                     [         R                  " 5          [        R                  " SS9   [         R                  " S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   r   rg   r
	  r  )r1  rg  s     ry   test_ttest_ind_scalarr	  #  s    		 	 	"BKK$A9>	Kr2& %B	" 88A;;;88A;;; %B$A	"	"s"   B=6B,!B=,
B:	6B==
Cz&ignore:Arguments...:DeprecationWarningc                      \ rS rSrSr\R                  R                  S5      r\R                  " \R                  " S\-  S-  5      \R                  S\-  S-  5      45      r\R                  " \R                  " \S-  5      S-   \R                  \S-  5      45      r\R                  " S5      r\R                  " S5      S-   rSS	/rSS/r\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   R7                  5       \SSS24   R7                  5       SS0\S   4\\SSS.\4\\\R                  R9                  S5      SS.\4\\SS0S4\\SSS.\4\\0 S4\\\R                  R                  S5      SS.\4/
r\R>                  RA                  S/ SQ5      \R>                  RA                  SSS/5      S  5       5       r!\R>                  RA                  S/ SQ5      \R>                  RA                  SSS/5      S! 5       5       r"S" r#S#r$g)$Test_ttest_ind_permutationsi-  r  i
r4   r5   r  rZ   r   r3   r6   r-  r7  r9   g'^P?gCq?g$R?)g=B?g?goŜ?gp?g'^?rU   r   N)r  rU   	equal_varTr`   )rU   r  rX  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]     ro     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>.statistice      %//!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   r`  r  r   r@  r  s              ry   test_permutation_method3Test_ttest_ind_permutations.test_permutation_methodV  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   r`  r@  r  r  r  r   s               ry   test_monte_carlo_method3Test_ttest_ind_permutations.test_monte_carlo_methodr  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  rI  	migratoryr  )r   r   r   rg   r
	  rB  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r   )%r   r   r   r   Nr   r  r  r  r  r   rM  rY  r  b2r  b3rg   rb  r  ri   r   r  r  p_dp_d_genp_d_bigr   r  paramsr   r   r  r&	  r,	  r0	  r   r   r|   ry   r	  r	  -  s   
A ))

	
*C
		299QqS!V$cjj1a&89:A
		299QT?S(#**QT*:;<A 
2B	2	B QB
QB ::>>ar"  66=gc1oaa 	::>>ar#>FD<
 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 [[],LM[[Wug&67; 8 N;4 [[],LM[[Wug&67; 8 N;BFr|   r	  c                   p   \ rS rSr\R
                  R                  5       \R
                  R                  SSS00 /SS/S9\R
                  R                  SSS	/SS
/S9S 5       5       5       r\R
                  R                  SSS00 /SS/S9\R
                  R                  SSS/5      S 5       5       r	Sr
g)Test_ttest_ind_commoni  kwdstrimr-  basic)idsr	  TFunequal_varc           	         [         R                  R                  S5      nUR                  S5      nUR                  S5      n[        R                  " XE4SS0UD6nSu  pxn	XGS 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XS S 24   UR                  5        [        UR                  US S 2XS 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     [        UUR                  5        [        UUR                  5        g )Nl   H-F )r6   r5   r5   r8   r   r7   r5   r   r9   r3   r7   rU   ra   )r3   r4   r   r   rN  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>  s      95aq5   )r   r  r  rg   r
	  r   r@  r?  r_  tiler  rc  r   r   )ro   r;	  r	  r  rM  rY  r   r  r  r  r  r3	  r  rr   rs   r  
statisticspvaluesindicesxiyir  s                         ry   test_ttest_many_dims*Test_ttest_ind_common.test_ttest_many_dims  s    ii##J/JJ)*JJ'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 ; 	
CMM2,r|   rU   r`   r   c                    [         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[        R                  " 5          [         R                  " SS9   [        R                  " SS[        5        [        R                  " S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  rh  r   r   r~  r   r   rg   r
	  r?  r	   r@  )
ro   r;	  rU   r  rM  rY  r  r   p_nansstatistic_nanss
             ry   test_nans_on_axis'Test_ttest_ind_common.test_nans_on_axis  sE    ii##$9:LL*L-44W=LL*L-44W=VV!Q
VV!Q
 88BFF15t45 $$&H(E##C^U##H.GX//!:T:T:C	 )F&
 #**%6,#--0>4 )F(E&&s%   F/%AF7F/
F,	(F//
F=r   N)r   r   r   r   r   r   rx  r  rQ	  rW	  r   r   r|   ry   r:	  r:	    s    [[[[VvrlB%7"('!2  4[[[4-"-}!=  ?!-?4 
!-F [[VvrlB%7"('!2  4[[Vb!W-5 .45r|   r:	  c            	       r   \ 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SS9S 5       r\R                  R                  S / S!Q5      S" 5       rS#rg$)%Test_ttest_trimi  r  rD  r  g@g9(?ger-  )rD  g33333`@r\   g33333^@g(\P@r  gfffffڇ@gBM)u?g]@gyd?g	s5v@g{Gz?r  r  rD  r   ffffff?r   r  r  rP  r]	  r]	  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r<	  r	  rF  rG  Nrg   r
	  r   )ro   rM  rY  rU  r  r<	  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  rE  ,   r\   rX   r  r  rE  rf	  )rc   r.  rX   r\   r     r  rc   r.  rX   r\   r  rg	  r  g
ףp=
?Fra	  gRbv?r  rG  gOi?rb	  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
r\	  r^	  r-  r<	  gR?r  rG  g^Nrb	  rh	  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?r_	  )r  gn4aƂW?r_	  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')
r\	  r^	  r-  F)r<	  r	  r  r  rG  Nrb	  )ro   r  rU  r  rM  rY  r@  r?  s           ry   test_alternatives!Test_ttest_trim.test_alternativesC  s=     DC!OOArU8;=	/	E2r|   TzUses NumPy for pvalue, CIcpu_onlyr   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   rM  rl	  r   )r   r)   rg   r
	  r   r   NotImplementedError)ro   rp   r  rM  rY  s        ry   %test_permutation_not_implement_for_xp5Test_ttest_trim.test_permutation_not_implement_for_xpW  sc    Gyy}biimAo1B<<OOAs+2'B3/ CBBs   &B
Br<	  )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   rl	  )r   r   rg   r
	  )ro   r<	  r   s      ry   test_trim_bounds_error&Test_ttest_trim.test_trim_bounds_errora  s5    A:U3OOQFQF6 433s	   5
Ar   N)r   r   r   r   r8	  r   r   r  rc	  ri	  rm	  rp	  r   rv	  ry	  r   r   r|   ry   rZ	  rZ	    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  t,GH0 I0 [[V\27 37r|   rZ	  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_CIih  )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  rY  r	  FTr<	  r   r-  r<  rC  ry  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	  r<	  r   r   r3   rY  r  r  rO  )r   xfailr)   r  r   r  r  re   rg   r
	  r   rM  ceilr1   r@  rK  r?  r  r  r  )ro   r  r	  r<	  rp   r  rr   rs   r   r  r  r@  rK  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   rU  r   r#  rn   r   r   r  r   r	  r   r   r|   ry   r|	  r|	  h  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      n U R                  S5      nU R                  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  pVpxpXR                  S   :  a  XXgXU
4   X5XgXU
4   :X  d   eM1  X%XgXR                  S   -
  X4   X5XgXU
4   :X  a  MT   e   g )
Nl   e~Z )r6   r5   r5   r4   r   r7   rA	  ra   rT   rB	  )N.rC	  c              3   8   #    U  H  n[        U5      v   M     g 7fr(  rE	  rF	  s     ry   rH	  .test__broadcast_concatenate.<locals>.<genexpr>  s     5W588WrJ	  )r   r  r  r   rK	  r   r  )r  rM  rY  rt  indexr  r  r  rV  r  r  s              ry   test__broadcast_concatenater	    s     ))



+C

%&A

?#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  r[	  g9(?geFr	  r	  rQ  gJ?g9ʿr	  g@[?gωұ?ghG?r   r  r  r6   r		  r   )rU   r	  rT   )re   rg   r
	  r1   r	  r	  r  r.  r   r@  r?  )ro   rp   rM  rY  rU  r  r1  rg  	tr_uneq_n	pr_uneq_nr	  r	  rvs3r  r  r  r  r   r_  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[        [        SU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  rc  Fr	  r   r   r  r   r`   r\  r   )rc  r  r'   r   rg   r
	  r2   re   r#  r   r~  rn   )ro   rp   rr   rs   r1  rg  r  s          ry   test_ttest_ind_zero_division)TestTTestInd.test_ttest_ind_zero_division  sA    HHQKGGAJ/HRP??159DA Q 	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 '& QP '&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_arg6  s    VVS#s# __Qf5__Qf5r||m%@		29959 __Q!"&U+ 	G"	$r|   c                    [        [        [        US9   [        R                  " UR                  / 5      UR                  / 5      5      nS S S 5        [        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)Nrc  r   )r'   r   r   rg   r
	  re   r0  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_nanK  s     +3HRP//"**R."**R.AC Q#u::;;;;jj $s+

C( QPs   6C
Cr  r  r  r  r  c                     UR                  S5      nUR                  XR                  S9n[        R                  " 5          [        R
                  " S[        [        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   r`   rT   r  )rU  re   rJ   r   r   r   r   r   rg   r
	  r0  r  r  r   rn   r2   r@  r?  )ro   rY  r  rp   rM  r   r  s          ry   test_ttest_ind_axis_size_zero*TestTTestInd.test_ttest_ind_axis_size_zeroU  s     HHYJJqJ($$&##H.CEWX//!R0C ' #u::;;;;FFC~6

N3 '&s    6C//
C=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  	rU  rg   r
	  r0  r  r  r@  r  r?  ro   rp   rM  rY  r   s        ry    test_ttest_ind_nonaxis_size_zero-TestTTestInd.test_ttest_ind_nonaxis_size_zerog  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_lengthss  s}     HHYHHYooa+#u::;;;;}}""V+++zz6)))r|   r   N)r   r   r   r   r.   rg   r	  r	  r   r   r   r	  r	  r	  r  r   rU  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   rL  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_1samprr	  r}  r~  c                 B   [         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R                  U R                  S5      5        [        UR                  U R                  S5      5        g )Nl   bQ )r  r3   r  )r  r   r  Tr`   )r	  rU   rM  r  rG  )r   r   rM   r=   r	  gzNd?gJ?)r   r  r  re   r  r   rg   r
	  r?  r  r  r   quantiler1   r@  )rp   r  rr   rs   ra  r   r?  s          ry   test_ttest_uniform_pvaluesr	    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
 ::l#RZZ%6q
//!$
/CCMM2::o#>?CJJ

> :;r|   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   rc  )r1  rg  r  rp   r  r  r  s          ry   _convert_pvalue_alternativer	    sa     ::cVm$Djj	)*G
a%4QUg-.A88AsA!G$$r|   c                 $	   [         R                  R                  S5      nSu  p#n[        R                  R                  SSX#U4US9nU R                  U5      nU R                  SX445      n[        R                  " XVSS9u  px[        R                  " US	SS9u  p[        R                  " US S 2SS4   S	5      u  p[        XyS
S9  [        US   US
S9  [        UR                  X445        U R                  USU45      n[        R                  " XVSS9u  px[        R                  " US	SS9u  p[        R                  " USS S 2S4   S	5      u  p[        XyS
S9  [        US   US
S9  [        UR                  X$45        U R                  X#S45      n[        R                  " XVSS9u  px[        R                  " US	SS9u  p[        R                  " USSS S 24   S	5      u  p[        XyS
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  nn[        R                  " US S 2S S 2S S 24   S	SS9u  p[        UUS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[        UUS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)Ni@rZ   r  r  r6   rZ   r7  r   r   rT   r   rs  r  r  r3   )r   r   r   r   r  r  r  r   r	  rR  )r   r  r  rg   rb  r  re   r  r&  r1   r   r  r2   r  r#  r	  r~  r@  rn   r?  )rp   r  r  r  n3rvn1rG  rx  r  ry  p2rz  p3r1  rg  r  rU  pcr   r  s                       ry   test_ttest_1samp_newr	    s   
 ))


)CJBB::>>ar3>OD::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	$RY	;BArAT!Q']BFCDA	$RVR	8BArA		"

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

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

BJJBFF|$<= 
#	"	"s   D%R
Rz(Only NumPy has nan_policy='omit' for nowr   c                 J   [         R                  R                  S5      nSu  p#n[        R                  R                  SSX#U4U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  pg[        R                  " US S 2S S 2S S 24   SSSS9u  p[        XgSU 5      n
[        X5        [        X5        [        R                  " US S 2S S 2S S 24   SSSS9u  p[        XgSU 5      n
[        X5        [        X5        g )Nl   U] )r6   rZ   r  r6   rZ   r7  r   r3   r   r4   r5   r9   r   r   r   r  rr  r  )r   r  r  rg   rb  r  re   rn   r&  r	  r1   )rp   r  r  r  r	  r	  r  rU  r1  rg  r	  s              ry   test_ttest_1samp_new_omitr	     s   
))



+CJBB::>>ar3>OD::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<  rC  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   rN  )rG  rU   )r6   r   r  )r6   r  rT   g?rI   )r   r  r  re   r   r   r   rg   r&  r@  r  r  rU  r^  r   r?  r1   )	rp   r  rr   r  rG  r   rV  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      \R
                  R                  S5      S 5       5       rS rS r	S r
S rS	 rS
 rS rSrg)TestDescribei7  r}  r~  c                    [         R                  " 5          [        R                  " SSS9   [         R                  " SS[
        5        [        R                  " UR                  S5      S   5      u  p#pEpgS 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   r   rg   describere   r2   rn   )ro   rp   r  r  r  r  skkurts           ry   test_describe_scalar!TestDescribe.test_describe_scalar9  s    $$&kk(8<##=~O$)NN2::b>"3E$F!A1 = '
 Avv1rzz#/1rzz#/2::c?+2::bff-.BJJrvv./bjj01 =< '&s#   E%A	E5E%
E"	E%%
E3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	  )rP  rP  rP  rP  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_numbersI  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]   rP  )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_testc  s    IIcNvv!!# %qV DqRQRQQ!"*!$r:r|   c                 D   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         OG[        U5      (       a7  [        R
                  " [        S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N:= f! , (       d  f       GNL= f! , (       d  f       Nl= f! , (       d  f       g = f)Nr   r:   not supported for lazy arraysr   r   r   r   r  r   rZ   r   r   r   r   r   )r   rc  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_othert  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 1]]:W5NN12 65/ QP RQ  QP 65s0   GG.H =H
G+.
G= 
H
H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   r`  r   r  r  r   re   rg   r	  r2   r1   r	  s                  ry   test_describe_ddofTestDescribe.test_describe_ddof  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_none  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   r  s      ry   test_describe_empty TestDescribe.test_describe_empty  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	  7  sa    [[ VW[[ WX2 Y X2%4;"3>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  rY  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`)rN  r`   r   r   r3   r   rN  r`   r   r   r3   r   rN  r`   r   r   r3   r   rN  r`   r   r   r3   r   r%  r  )		test_namerl  rg   re   case_refr   r  r1   r   )ro   r  rp   r
  r  r8  rj  r`  rr   r   res_statistic
res_pvalues               ry   test_against_RNormalityTests.test_against_R  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   rg	  r   r|  )rl  rg   r
  r   re   rn   rJ   rc  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   r  {   )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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   rc  )rg   r
  r   r'   r   r   re   rn   r2   r@  r?  ro   rp   rr   r   r	  s        ry   "test_skewtest_too_few_observations/TestSkewTest.test_skewtest_too_few_observations   s|     	ryy~&IIcN+3HRP..#C**RVV$CCMM3/CJJ,	 QPPs   
AB11
B?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 )
Nr  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)
r<  r   :   r8   r   )   r   r   r      rI   r   r  )r   hstack	enumerater   re   r   rg   r
  )ro   rp   r  r  rt  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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   rc  r   )rg   r
  r   r'   r   r   re   rn   r2   r@  r?  r	  s       ry   &test_kurtosistest_too_few_observations7TestKurtosisTest.test_kurtosistest_too_few_observations"  s{     	299S>*+3HRP$$RYYr]3C**RVV$CCMM3/CJJ,	 QPP   A-B//
B=r   N)
r   r   r   r   r
  r
  r
  r'
  r*
  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        [        [        [
        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)Nr   rc  r   )rg   r/
  r   r'   r   r   re   rn   r2   r@  r?  r	  s       ry   test_too_few_observations(TestNormalTest.test_too_few_observations3  s{    2' +3HRP""299R=1C**RVV$CCMM3/CJJ,	 QPPr,
  r   N)r   r   r   r   r
  r
  r1
  r   r   r|   ry   r.
  r.
  .  s    I9H-r|   r.
  c                       \ rS rSr\R
                  R                  S5      r\R                  S5      u  rr	\
R                  R                  S/ SQ5      S 5       rS rS rS	rg
)TestRankSumsi>     hZ 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_attributesC  sZ     ~~dffdff*577=v 	!!$&&$&&.9;;A6 	#r|   c                 r    [         R                  " U R                  U R                  5      n[	        US5        g )Nr%  )rg   r9
  rr   rs   r   rx  s     ry   test_ranksums_named_results(TestRankSums.test_ranksums_named_resultsL  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   r9
  rr   rs   r}  s    ry   r  "TestRankSums.test_input_validationP  s2    :-KLNN466466x@ MLLs   +A
Ar   N)r   r   r   r   r   r  r  r  rr   rs   r   r   r  r;
  r>
  r  r   r   r|   ry   r4
  r4
  >  sX    
))



+C::gDAq[[],LM$ N$:Ar|   r4
  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)TestJarqueBeraiU  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_RW  s^    
;JJqMjj*O<="s1v.

CF+r|   Tr  c                 P   [         R                  R                  S5      nUR                  SS9n[        R
                  " [        U5      5      =nu  pV[        R
                  " [        U5      5      =nu  p[        R
                  " UR                  SS5      5      =n
u  pXXs=:X  a:  Us=:X  a3  UR                  s=:X  a"  UR                  s=:X  a  U
R                  :X  d   e   eXis=:X  a:  Us=:X  a3  UR                  s=:X  a"  UR                  s=:X  a  U
R                  :X  d   e   eg )Nl   uT rW  r  r3   P  )r   r  r  r  rg   rE
  rF  tupleri   r@  r?  )ro   rp   r  rr   jb_test1JB1r  jb_test2JB2r	  jb_test3JB3r	  s                ry   test_jarque_bera_array_like*TestJarqueBera.test_jarque_bera_array_liked  s     ii##J/V,"..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 TestSkewry  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   rL  r   r   rg   rE
  rn   r2   r@  r?  r
  s        ry   %test_jarque_bera_too_few_observations4TestJarqueBera.test_jarque_bera_too_few_observationsq  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   rE
  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   rF
  r   rQ
  rU
  r  r   r   r|   ry   rC
  rC
  U  sE    , d#
W $
W (1FG- H-1r|   rC
  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(@rf  r  r  g333333@ffffff@g333333@r?   r  皙	@r   r  r  r>   r  ffffff@ @333333?ra
  r=   ?rb
  r  r  rD  ro  rN  rh  r<   r-  r-  rM  r   g/"?r6   r=  )r   rg   pointbiserialrr   r   r>  r@  )rr   rs   rB  r   s       ry   test_pointbiserialrd
    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   rN  r8   r   )r   r4   r7   r:   )r  r   r   r  r6   )㪪@I?g&>ڿrg
  rf
  )5@㪪@gIri
  rh
  r3   r9   rP  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  rx  r  r  ry  rM  rY  rt  r  valuesrepsr  transformed_valuess                ry   test_obrientransformrn
    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   ro
  r  )r   r  re   r1   )rp   mean_funrU   rJ   r  ro
  r_  
array_liker  rg  rr   s              ry   check_equal_xmeanrs
    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$ Nrq
  )rs
  rg   r  r_  r`  s     ry   check_equal_gmeanrw
        dCU[[CFCCr|   c                  8    [        U S[        R                  0UD6$ ru
  )rs
  rg   hmeanrv
  s     ry   check_equal_hmeanr{
    rx
  r|   c                  8    [        U S[        R                  0UD6$ ru
  )rs
  rg   pmeanrv
  s     ry   check_equal_pmeanr~
    rx
  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 )Nrz  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   rL  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  rd  r{  ri  r6  r  r  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_zero  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_axis1  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   ro
  r6  r  )rg   rz
  r1   r   re   ro   rp   rM  ro
  r  r   s         ry   test_weights_1d_listTestHMean.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
  r4   r6  ro
  r  rp   )r   re   r{
  ro   rp   rM  ro
  r  s        ry   test_weights_1dTestHMean.test_weights_1d8  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   r6  rU   ro
  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   r6  r
  r
  r
  s        ry   test_weights_2d_axis1TestHMean.test_weights_2d_axis1H  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   r6  ro
  r  rJ   rp   )r   r   r  r{
  r   r
  s        ry   test_weights_masked_1d_array&TestHMean.test_weights_masked_1d_arrayP  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)	TestGMeani\  z<ignore:divide by zero encountered in log:RuntimeWarning:daskc                 $    / SQnSn[        X#US9  g r
  rw
  r
  s       ry   r
  TestGMean.test_0^  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 )
Nrz  gsŤF@r  r  r  r  rs  r  rp   r<  )rw
  r   r   r   r
  s       ry   r
  TestGMean.test_1df  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_2du  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  rs  rU   r  rp   r   r   rw
  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  rs  r
  )r   r   rw
  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   rw
  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  rd  r{  ri  r6  r   r   r   r	  r  )r   r~  rw
  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  rd  r{  ri  r6  r`   r   r|  r  )r   rn   r~  rw
  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
  r6  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
  r6  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
  r6  r
  )r   r   r  rw
  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
  \  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S$rg%)&	TestPMeani  c                 X    [         R                  " X-  5      U R                  -  SU-  -  $ r  )r   rh  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   rh  )rM  rg  ro
  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        g ! , (       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KKs   9A
A*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 )Nrz  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   rL  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  rd  r6  r  r  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
  r6  r
  )r
  r
  r   r   r~
  ro   rp   rM  rg  ro
  r  s         ry   r
  TestPMean.test_weights_1d  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
  r  r
  r
  r6  r  )r
  r
  r   r   rg   r}
  r1   re   )ro   rp   rM  rg  ro
  r  r   s          ry   r
  TestPMean.test_weights_1d_list  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
  r6  r
  )r   r   r  averager~
  r   r	  s         ry   r
  &TestPMean.test_weights_masked_1d_array)  sV    xx'1%%++n<+@**Q0UU!t "

r	3r|   )rU   fun_namerg  ))Nr
  g3E#@)r   r  r   )r   rz
  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   ro
  rg  s      ry   fun&TestPMean.test_weights_2d.<locals>.fun:  s     11!Q@@r|   r3   r6   rZ   r7   r   r4   )rU   ro
  r6  r
  )rl  rg   r   r   r~
  )	ro   rU   r  rg  rp   r  rM  ro
  r  s	      `     ry   test_weights_2dTestPMean.test_weights_2d2  s     ))A %*CHHq!fr1g1v./((RGaVaV45aG4!QG$SUVr|   c                     Sn[         R                  " [        US9   [        R                  " S/[
        R                  5        S S S 5        g ! , (       d  f       g = f)Nz*Power mean only implemented for finite `p`r   r3   )r   r   ru	  rg   r}
  r   r#  rB  s     ry   test_infinite_p_gh23111!TestPMean.test_infinite_p_gh23111C  s8     ?]].g>KKRVV$ ?>>   'A
Ar   N)r   r   r   r   r
  r
  r
  r
  r   r   r   r
  r
  r  r   r   r   r
  r
  r
  r   r
  r%   r
  r  r  r   r   r|   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SS9S 5       rS rS rS rS rS rSrg)TestGSTDiK  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_arrayR  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  rJ
  r  r   r  r   s      ry    test_1d_numeric_array_like_input)TestGSTD.test_1d_numeric_array_like_inputV  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_input[  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   r  r   r  r(   r   rL  r   rg   r  r2   rn   )ro   r*  rp   rr   r  r   s         ry   test_returns_nan_invalid_value'TestGSTD.test_returns_nan_invalid_valuea  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  r!  s       ry   test_propagates_nan_values#TestGSTD.test_propagates_nan_valuesn  sK    JJ1a'89:jj+ZZBFF%<=r|   r<  z returns subnormal instead of nanry  c                     UR                  U R                  5      n[        R                  " X"R                  S   S9n[        X1R                  UR                  5      5        g )Nr   r`  )re   r  rg   r  r  r2   rn   r   s       ry   )test_ddof_equal_to_number_of_observations2TestGSTD.test_ddof_equal_to_number_of_observationss  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  r  r1   ro   rp   rr   r!  r  s        ry   test_3d_arrayTestGSTD.test_3d_arrayy  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 )NrK  rT   g~d@g<
?re   r5  rg   r  r1   r6  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   r!  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:  r>  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:  r>  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   r  r  ri   r5  r"  r   r%  r%   r(  r   r   r   r  r#  rn   r,  r/  xfail_xp_backendsr2  r7  r;  r@  rC  rF  r   r   r|   ry   r  r  K  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>
 {+MN1 O1
**333r|   r  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 )NrM  r-  r6   r  g?rH  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  r.  r<  r
   rg   	binomtestr?  )ppr  rr   r  rg  r   s         ry   test_binomtestrN    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  )rG  r  r   r  rG  )rI        ?r   r   rP  rI  )rJ        ?      ?r   rR  rQ  rJ  )rF  rG        ?r   r   rS  rG  rF  )	      ?      ?     ?     @?r   rW  rV  rU  rT  )
      p?      ?      ?     @?r   r   r[  rZ  rY  rX  )      `?      ?      ?      ?      ?r   r`  r_  r^  r]  r\  r   r[   r<   rZ   rP  )r  rg   rL  r?  r   )r  r  r  r  s       ry   test_binomtest2ra    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?rR  g
ņB?g  ?g$?g{dU'?gD:B?gwV?gR0Nf?gOq?rW  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?rR  gqIb?g  @N?g1Y?g5?gO?gc-?gk?g )?rW  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?rc  g8?g~ȍEt?g⿒?g<v?gHE:?g8Z$?gbº5?gvC?rd  g`Yw?gA?$??gE=?g4?g3?g{G9?gp?gH ?re  gz6f?g¯F?g(+?g	$V?gq^ws?g!?gXNJ?gK?rf  g4P?g<q?gdV;?gy?g$w?gU<vO?gMX?g	șz*?rg  giqSp?gMM?g0V$)?g]
yi/Q?gl?gl?g3Ȇ?gѾ_c?r]   rP  )r  rg   rL  r?  r   r   r  r  rM  r   r   )r  r  r  binom_testm1binom_testp1res4_p1res4_m1s          ry   test_binomtest3rl    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g)TestTrimi/  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[   rM  rZ   r-  r:   left)tailr3   tE]t?r4   r   rQ  r  r7   r5   r6   r   )rq  rU   rT   r   )r   r   r   sortrg   trim1ri   r   )ro   rM  r  rU   trimmeds        ry   
test_trim1TestTrim.test_trim11  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[   rr  r4   r9   r-  )r3   r4   r5   r6   r7   r8   r9   r  r7   r5   r  rX  )r3   r9   rX   r  )r4   r:   r  rW   rQ  rM  )r   r   r   rs  rg   trimbothr   ri   r   r   r   )ro   rM  s     ry   test_trimbothTestTrim.test_trimbothM  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|   r   N)r   r   r   r   rv  rz  r   r   r|   ry   rn  rn  /  s    983r|   rn  c                       \ rS rSrS r\R                  R                  SSS9\R                  R                  SSS9S 5       5       rSr	g	)
TestTrimMeani`  c                 6   [         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R                  U5      S5      UR                  / SQ5      5        [	        [
        R                  " UR                  U5      S5      U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R                  U5      S5      UR                  / SQ5      5        / SQn[	        [
        R                  " UR                  U5      S5      UR                  S5      5        [	        [
        R                  " UR                  / SQ5      S5      UR                  S5      5        [         R                  R                  S5      nUR                  SSS9nUR                  U5      nS HK  n	[
        R                  " USU	S9n
[
        R                  " UR                  XyS5      S5      n[	        X5        MM     [
        R                  " USS S9n
[
        R                  " [        U5      S5      n[	        X5        [        R                  " [        SS9   [
        R                  " US5        S S S 5        g ! , (       d  f       g = f)N)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>   r5
  r  )r6   r7   r5   r8   r  )r   r   r3   r4   r`   rT   r   zProportion too big.r   rh  )r   r   r   ri   r2   rg   	trim_meanre   r  r  rT	  r_  r/   r   r   r   )ro   rp   idxr  r  idx4a4rM  r  rU   r  r  s               ry   test_trim_meanTestTrimMean.test_trim_meanb  s3   hh)*YYr]""1a(a0YYr]""1as"3CF;

2=

#9:	<

2=

#78	: xx%YYr]""1a(q1

2=

#@A	C%

1t<bjj>NO

3E(FM

3	) ii##J/LL,L/JJqM$D??1d6D??2;;q#:DADD' %
 q$T2x{D1#]]:-BCOOAs# DCCs   )L


Lr<  lazy -> no _axis_nan_policyry  
dask.arrayc                    [         R                  " [        SS9   [        [        R
                  " UR                  / 5      S5      UR                  UR                  5      5        S S S 5        [         R                  " [        SS9   [        [        R
                  " UR                  / 5      S5      UR                  UR                  5      5        S S S 5        g ! , (       d  f       Nz= f! , (       d  f       g = f)Nr  r   r   rh  )r   rL  r   r2   rg   r  re   rn   r#  s     ry   ry  TestTrimMean.test_empty_input  s     \\,K@EOOBJJrNC@"**RVVBTU A\\,K@EOOBJJrNC@"**RVVBTU A@ A@@@s   A
CA
C)
C&)
C7r   N)
r   r   r   r   r  r   r   r   ry  r   r   r|   ry   r}  r}  `  sR    %$P [[!!+6S!T[[!!,7T!UV V UVr|   r}  c                   2    \ rS rSrS rS rS rS rS rSr	g)	TestSigmaClipi  c                    UR                  UR                  SSS5      UR                  SSS5      45      nSn[        R                  " U5      u  pEnUR	                  U5      U:  d   eUR                  U5      U:  d   e[        XQR                  U5      X1R                  U5      -  -
  5        [        XaR                  U5      X1R                  U5      -  -   5        UR                  UR                  :X  d   eg )Nr  r_      r   r>  r6   r5   
r  r.  rg   	sigmaclipminmaxr2   rj   r   r  ro   rp   rM  factrt  r  upps          ry   test_sigmaclip1TestSigmaClip.test_sigmaclip1  s    IIr{{3b1{{2sA.0 1ooa(vvay3vvay3WWQZ$vvay.89WWQZ$vvay.89ww!''!!!r|   c                    UR                  UR                  SSS5      UR                  SSS5      45      nSn[        R                  " X#U5      u  pEnUR	                  U5      U:  d   eUR                  U5      U:  d   e[        XQR                  U5      X1R                  U5      -  -
  5        [        XaR                  U5      X1R                  U5      -  -   5        UR                  S:X  d   eUR                  S	:X  d   eg )
Nr  r_   r  r   r>  r6   r=   )r5   )$   r  r  s          ry   test_sigmaclip2TestSigmaClip.test_sigmaclip2  s    IIr{{3b1{{2sA.0 1ooat4vvay3vvay3WWQZ$vvay.89WWQZ$vvay.89ww$ww%r|   c                    UR                  UR                  SSS5      UR                  SSS5      45      nSn[        R                  " X#U5      u  pEnUR	                  U5      U:  d   eUR                  U5      U:  d   e[        XQR                  U5      X1R                  U5      -  -
  5        [        XaR                  U5      X1R                  U5      -  -   5        [        XAR                  SSS5      5        g )Nr  r_   r[         Y      Ir4   ?)	r  r.  rg   r  r  r  r2   rj   r   r  s          ry   test_sigmaclip3TestSigmaClip.test_sigmaclip3  s    IIr{{3b1{{5$24 5ooat4vvay3vvay3WWQZ$vvay.89WWQZ$vvay.89;;sD"56r|   c                     UR                  UR                  SSS5      UR                  SSS5      45      nSn[        R                  " X#U5      nSn[	        XEUS	9  g )
Nr  r_   r[   r  r  r4   r  )clippedr  r  r  )r  r.  rg   r  r   )ro   rp   rM  r  r   rB  s         ry    test_sigmaclip_result_attributes.TestSigmaClip.test_sigmaclip_result_attributes  sX    IIr{{3b1{{5$24 5ooat,2
C3r|   c                 l    UR                  S5      n[        [        R                  " U5      S   U5        g )NrZ   r   )r  r2   rg   r  r   s      ry   test_std_zeroTestSigmaClip.test_std_zero  s'    GGBK*1-q1r|   r   N)
r   r   r   r   r  r  r  r  r  r   r   r|   ry   r  r    s    	"
 	742r|   r  c            	          \ rS rSrS r\" SSS9\" SSS9\R                  R                  SSS	// 4SS	/S	4SS	/S	/4/5      S
 5       5       5       r	\R                  R                  S5      S 5       rS rS rS rS r\" SSS9\" SSS9S 5       5       r\" SSS9\" SSS9S 5       5       r\" SSS9\" SSS9S 5       5       r\" SSS9\" SSS9\R                  R                  S/ SQ5      S 5       5       5       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  r9  r   rg   alexandergovernr?  r@  )ro   r_  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<  z%Requires `_axis_nan_policy` decoratorry  r  r  r   r3   c                    [        U5      nUR                  US   US9UR                  US   US94n[        R                  " [        [
        S9   [        R                  " U6 nS S S 5        [        WR                  UR                  UR                  5      5        [        UR                  UR                  UR                  5      5        g ! , (       d  f       Nm= f)Nr   rI   r   r   )r+   re   r   rL  r   r   rg   r  r2   r@  rn   r?  )ro   r  rp   rJ   r   s        ry   test_too_small_inputs)TestAlexanderGovern.test_too_small_inputs  s    
 !$zz$q'z/DG51QQ\\,4IJ''.C Krzz"&&'9:

BJJrvv$67 KJs   C


Cr	  c                 Z   UR                  SS/5      UR                  UR                  UR                  /5      4n[        R                  " U6 n[	        UR
                  UR                  UR                  5      5        [	        UR                  UR                  UR                  5      5        g )Nr   r   )re   r#  rg   r  r2   r@  rn   r?  )ro   rp   samplesr   s       ry   test_bad_inputs#TestAlexanderGovern.test_bad_inputs  sw     **b"X&

BFFBFF3C(DD##W-rzz"&&'9:

BJJrvv$67r|   c                 B   / SQn/ SQn/ SQnUR                  U5      UR                  U5      UR                  U5      pCn[        R                  " X#U5      n[        UR                  UR                  S5      5        [        UR
                  UR                  S5      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re   rg   r  r1   r@  r?  )ro   rp   r  twoeightsolns         ry   test_compare_r"TestAlexanderGovern.test_compare_r  s    :"	I7 **S/2::c?BJJu<M%$$Su5

3H(IJRZZ0F%GHr|   c                    / SQn/ SQn/ SQnUR                  U5      UR                  U5      UR                  U5      pCn[        R                  " X#U5      n[        UR                  UR                  S5      SS9  [        UR
                  UR                  S5      SS9   [        UR                  UR                  S	5      S
S9  [        UR
                  UR                  S5      S
S9  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@>r  g&Zݱ?Nr  )ro   rp   youngmiddleoldr  s         ry   test_compare_scholar(TestAlexanderGovern.test_compare_scholar5  s    08GZZ.

60BBJJsOs$$UC8

6(:FRZZ%8tD	: 	

8(<4HRZZ
%;$Gr|   c                    / SQn/ SQnUR                  U5      UR                  U5      p2[        R                  " X#5      n[        UR                  UR                  S5      SS9  [        UR
                  UR                  S5      SS9   [        UR                  UR                  S5      SS	9  [        UR
                  UR                  S
5      SS	9  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?r6  rG  gOZ}?g9$?r  r  g6MDd}?Nr  )ro   rp   r  r  r  s        ry   test_compare_scholar3)TestAlexanderGovern.test_compare_scholar3h  s    "! BBB$$R,

8(<4HRZZ%9E	8 	

9(=DIRZZ	%:Fr|   c                 F   UR                  / SQ5      UR                  SUR                  /5      4n[        R                  " U6 n[	        UR
                  UR                  UR                  5      5        [	        UR                  UR                  UR                  5      5        g )NrQ  r   re   rn   rg   r  r2   r?  r@  )ro   rp   r_  r   s       ry   test_nan_policy_propagate-TestAlexanderGovern.test_nan_policy_propagate  sm    zz*+RZZBFF-DD##T*

BJJrvv$67rzz"&&'9:r|   c                     UR                  / SQ5      UR                  SUR                  /5      4n[        [        SS9   [        R
                  " USS06  S S S 5        g ! , (       d  f       g = f)NrQ  r   r   r   r   r   )re   rn   r   r   rg   r  )ro   rp   r_  s      ry   test_nan_policy_raise)TestAlexanderGovern.test_nan_policy_raise  sT     zz*+RZZRVV-EE:-LM!!4<G< NMMs   A
A-c                    UR                  SSSUR                  S/5      UR                  SUR                  SS/5      4nUR                  / SQ5      U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   rp   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

(9(9:)):+?+?@r|   c                    UR                  / SQ5      nUR                  / SQ5      n[        R                  " [        SS9   [        R
                  " X#5      nS S S 5        [        WR                  UR                  UR                  5      5        [        UR                  UR                  UR                  5      5        g ! , (       d  f       Nm= f)Nr]  r_  r  r   )
re   r   rL  r   rg   r  r2   r@  rn   r?  )ro   rp   r  r  r   s        ry   rh  'TestAlexanderGovern.test_constant_input  s     ZZ-.ZZ-.\\.0LM''/C Nrzz"&&'9:

BJJrvv$67 NMs    B>>
CrU   r  c                     [         R                  R                  S5      nSn[        S5       Vs/ s H  oSR                  U5      PM     nnU Vs/ s H  oqR	                  U5      PM     nn[
        R                  " USU06n	[
        R                  " USU06n
[        U
R                  UR	                  U	R                  5      5        [        U
R                  UR	                  U	R                  5      5        g s  snf s  snf )Nl   >030 )r[   r\   r4   rU   )
r   r  r  r  re   rg   r  r1   r@  r?  )ro   rp   rU   r  r  r  r  sample
xp_samplesr  r   s              ry   test_2d_input!TestAlexanderGovern.test_2d_input  s    
 ii##$89.3Ah7h::e$h77>?wVjj(w
?##W848##Z;d;rzz#--'@A

BJJszz$:; 8?s   C6C;r   N)r   r   r   r   r  r   r   r   r  r  r   r  r  r  r  r  r  r  rh  r  r   r   r|   ry   r  r    s   >* k*QRl+RS[[Vq!fb\QFA;!Q!$NO8 P T S8 [[ QR8 S8BIH1Hf1Gf; k*QRl+RS= T S=
 k*QRl+RSA T SA k*QRl+RS8 T S8 k*QRl+RS[[V\2	< 3 T S	<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	S r
S rS	 rS
 r\R                  R                  S/ SQ5      S 5       r\R                  R                  S5      \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       5       r\R                  R+                  SSS9\R                  R+                  SSS9\R                  R                  S/ SQ5      S 5       5       5       r\R                  R+                  SSS9\R                  R+                  SSS9S 5       5       rS r\R                  R+                  SSS9\R                  R+                  SSS9S 5       5       rS r\R                  R+                  SSS9\R                  R+                  SSS9\R                  R                  S S!/ S"Q4/5      S# 5       5       5       r\R                  R+                  SSS9\R                  R+                  SSS9S$ 5       5       r\R                  R+                  SSS9\R                  R+                  SSS9S% 5       5       rS!rg&)'TestFOneWayi  c                     [         R                  " UR                  SS/5      UR                  SS/5      5      u  p#[        X!R                  S5      5        [        X1R                  S5      5        g )Nr   r3   r   r   rg   f_onewayre   r2   ro   rp   r  rg  s       ry   test_trivialTestFOneWay.test_trivial  sN    ~~bjj!Q0"**aV2DE::c?+::c?+r|   rJ   r0  c                 r   [        U5      (       a,  UR                  S:  a  US:X  a  [        R                  " S5        Uc  S O
[	        X!5      n[
        R                  " UR                  SS/US9UR                  SS/US95      u  p4[        X2R                  SUS95        [        XBR                  S	US95        g )
Nr  r   r  r   r3   rI   r5   r   gf3þ?)
r)   r  r   r  rl  rg   r  re   r2   r1   )ro   rJ   rp   r  rg  s        ry   rZ  TestFOneWay.test_basic  s     B<<BNNU2ui7GKKBC72+=~~bjj!Quj= jj!Quj=?::c:78::l%:@Ar|   c                    [        U5      (       a,  UR                  S:  a  US:X  a  [        R                  " S5        Uc  S O
[	        X!5      nUR                  / SQUS9UR                  / SQUS9UR                  / SQUS9/n[        R                  " USS	06u  pE[        XBR                  S
US95        [        XRR                  SUS95        g )Nr  r   r  g(\5IgHz'D@gףp=
2g
ףp=A@g333333g)\(?rI   gq=
ףp7@r@   g333333.@gRQ#@gzG'@rj  g=
ףp#@gGz."@gp=
ף
@r	  FgM;yQ?gWe?)	r)   r  r   r  rl  re   rg   r  r1   )ro   rJ   rp   r  r  rg  s         ry   test_unequal_varTestFOneWay.test_unequal_var  s     B<<BNNU2ui7GKKBC72+=::HPU:V::6e:D::>e:LN ~~w8%8& 	::&7u:EF::&7u:EFr|   c                 
   UR                  / SQ5      UR                  / SQ5      UR                  / SQ5      /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re   r   r   r:  rg   r  )ro   rp   r  r  s       ry   test_equal_var_input_validation+TestFOneWay.test_equal_var_input_validation  sc    ::HI::67::>?A =]]9G4NNG7w7 544s   A44
Bc                    [         R                  " UR                  S/5      UR                  S/5      UR                  / SQ5      5      u  p#[        X!R                  S5      5        [        X1R                  S5      5        g )Nr3   r  rh  r  )rg   r  re   r1   r  s       ry   test_known_exactTestFOneWay.test_known_exact  sX     ~~bjj!orzz1# jj35::c?+::c?+r|   c                     UR                  SS/UR                  S9nUR                  SS/UR                  S9n[        R                  " X#5      u  pE[	        XAR                  S5      5        g )N    rI       gŸ?)re   uint16rg   r  r1   )ro   rp   rM  rY  r  rg  s         ry   test_large_integer_array$TestFOneWay.test_large_integer_array  sZ    JJSzJ3JJSzJ3~~a# 	::&9:;r|   c                     UR                  SS/UR                  S9nUR                  SS/UR                  S9n[        R                  " X#5      nSn[	        XEUS9  g )Nr  r  rI   r  r   r%  r  )re   r  rg   r  r   )ro   rp   rM  rY  r   rB  s         ry   test_result_attributes"TestFOneWay.test_result_attributes  sS    JJSzJ3JJSzJ3nnQ",
C3r|   	test_case)SiRstvSmLs01SmLs02SmLs03AtmWtAgSmLs04SmLs05SmLs06SmLs07SmLs08SmLs09c                 n   US-   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  oR#                  XU:H     5      PM     nn[$        R&                  " U6 nSnUU;   a  Sn[)        US	   UR#                  XbR*                  S9US9  g ! , (       d  f       GN= fs  snf s  snf )Nz.datr  zdata/nist_anova
r  r1  rd  )skiprowsr   r`   )r  r  r  r  rI   r  )ospathabspathjoindirname__file__openreadsplitstripr   loadtxtr   r  rM  uniquer  re   rg   r  r1   r   )ro   r  rp   filenamer  fnamera  contentline	certifieddatafrs   rr   catyr  xlistr   hard_tcs                     ry   	test_nistTestFOneWay.test_nist"  sY    v%RWW__X-F->!J K%[AffhnnT*G .5bn &nd

 "TZZ\n	 &

52.wwHHSMyy|)A,r"#0451A1fI&5nne$ 1DA

1JJ
 ?dK% [& 6s   2 F!F->F-7F2
F*r   za, b, expected)r  r  r  r
  r   c                     [         R                  " UR                  U5      UR                  U5      5      u  pV[        XTR                  US   5      5        [        XdR                  US   5      5        g r  r  )ro   rM  rY  r  rp   ra  rg  s          ry   rh  TestFOneWay.test_constant_input@  sP     ~~bjjmRZZ];::hqk23::hqk23r|   r<  r  ry  r  rU   )rN  r`   r   r   c                    [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/[         R                  S9n[         R                  " / SQ/ SQ/ SQ/ S	Q/ S
Q/ SQ/ SQ/ SQ/[         R                  S9n[         R                  " / SQ/ SQ/ SQ/ SQ/[         R                  S9nUS;   a'  UR                  nUR                  nUR                  nSnOSn[        R
                  " UR                  U5      UR                  U5      UR                  U5      US9u  pxS H  n	[        R
                  " [         R                  " X9U5      [         R                  " XIU5      [         R                  " XYU5      5      u  p[        Xy   UR                  U
5      5        [        X   UR                  U5      5        M     S H  n	[        R
                  " [         R                  " X9U5      [         R                  " XIU5      [         R                  " XYU5      5      u  p[        Xy   UR                  U
5      5        [        X   UR                  U5      5        M     g )N)r   r5   r4   r4   )r3   r6   r4   r4   )r4   r7   r4   r4   r6  rI   )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   rT   r`  ra  )	r   r   r   r   rg   r  re   taker1   )ro   rU   rp   rM  rY  rt  	take_axisra  rg  r  fjpjs               ry   test_2d_inputsTestFOneWay.test_2d_inputsK  s    HHl""""	$ ,.::	7
 HHl"""""""$ ,.::7 HHl"""$ ,.::7
 7?AAAII~~bjjmRZZ]BJJqM#')
 A^^BGGA)$<$&GGA)$<$&GGA)$<>FB AD"**R.1AD"**R.1  A^^BGGA)$<$&GGA)$<$&GGA)$<>FB AD"**R.1AD"**R.1 r|   c           
         UR                  SUR                  SSUR                  S9-  S5      nUR                  SUR                  SSUR                  S9-  S5      nUR                  SUR                  SS	UR                  S9-  S
5      nUR                  U5      n[        R
                  " X#USS9u  pVU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   X7S S 2U4   XGS S 2U4   5      u  p[        XXx4   5        [        XXx4   5        MR     Mq     g )Nr   r   g     a@rI   )r5   r6   r8   r3   g      l@)r5   r9   r8   g     @\@)r5   r5   r8   rT   )r5   r8   r   )	ri   r   r   cosrg   r  r  r  r1   )ro   rp   rM  rY  rt  ra  rg  r  r  fijpijs              ry   test_3d_inputsTestFOneWay.test_3d_inputs{  s7    JJq3
"**EEyQJJq3
"**EEyQJJq3
"**EEyQFF1I~~aAA.ww&   ww&   qwwqz"A1771:& >>!q!G*a1aj!q!G*MqtW-qtW- ' #r|   c           	         [        [        [        US9   [        R                  " UR                  / SQ5      UR                  / 5      UR                  / SQ5      5      n[        UR                  UR                  UR                  5      5        [        UR                  UR                  UR                  5      5        S S S 5        g ! , (       d  f       g = f)Nrc  r  )r   rM   r   r   )
r'   r   r   rg   r  re   r2   r@  rn   r?  )ro   rp   r  s      ry   test_length0_1d_error!TestFOneWay.test_length0_1d_error  s    +3HRP^^BJJ|$<bjjn$&JJ/?$@BFF,,bjj.@AFMM2::bff+=>	 QPPs   B(C
Cc                 h   [        [        [        US9   SnUR                  SU45      nUR                  SU45      nUR                  SU45      n[        R
                  " X4U5      u  pgUR                  U4UR                  S9n[        Xh5        [        Xx5        S S S 5        g ! , (       d  f       g = f)Nrc  r4   r5   r   r6   r  )	r'   r   r   r  rg   r  r   rn   r2   )	ro   rp   ncolsrM  rY  rt  ra  rg  r   s	            ry   test_length0_2d_error!TestFOneWay.test_length0_2d_error  s     +3HRPEE
#AE
#AE
#A>>!*DA77E877DA$A$ QPPs   BB##
B1c                    UR                  S/5      UR                  S/5      UR                  S/5      UR                  S/5      4n[        [        US9   [        R                  " U6 n[        UR                  UR                  UR                  5      5        [        UR                  UR                  UR                  5      5        S S S 5        g ! , (       d  f       g = f)NrZ   r[   r\   r]   r  )	re   r'   r   rg   r  r2   r@  rn   r?  )ro   rp   r  r  s       ry   test_all_length_oneTestFOneWay.test_all_length_one  s    **bT"BJJt$4bjj"6F

TVSWHXX+3^^W-FF,,bjj.@AFMM2::bff+=> 433s   A2C
Czlazy->reduced input validationr_  r   r  c                     U Vs/ s H  o2R                  U5      PM     nnSn[        R                  " [        US9   [        R
                  " U6   S S S 5        g s  snf ! , (       d  f       g = f)Nz$At least two samples are required...r   r  )ro   r_  rp   r  r  s        ry   test_too_few_inputsTestFOneWay.test_too_few_inputs  sQ     ,004C

3408]]9G4NND! 54 144s   AA
A,c                     UR                  S5      nUR                  S5      n[        R                  " [        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   rp   rM  rY  s       ry   test_axis_errorTestFOneWay.test_axis_error  sD     GGFOGGFO]]9%NN1a( &%%   A
A*c                     UR                  S5      nUR                  S5      n[        R                  " [        5         [        R
                  " X#SS9  S S S 5        g ! , (       d  f       g = f)Nr  rK  r   rT   )r  r   r   r   rg   r  rL  s       ry   test_bad_shapesTestFOneWay.test_bad_shapes  sD     GGFOGGFO]]:&NN1a( '&&rO  N)r   r   r   r   r  r   r   r  rZ  r  r  r  r  r  r+  r   r   r   r#  rn   rh  r   r5  r;  r>  rB  rE  rH  rM  rQ  r   r   r|   ry   r  r    s   , [[W&BC	B D	B [[W&BCG DG>8,<4 [[[	12L2L6 [[)[[-	,	)!4rvvrlC	,	,!7"&&"&&9IJ0
 4	 *
4 [[!!+6S!T[[!!,7T!U[[V^4+2 5 V U+2Z [[!!+6S!T[[!!,7T!U. V U.$? [[!!+6S!T[[!!,7T!U	% V U	%? [[!!+6V!W[[!!,7W!X[[Vb9,%78" 9 Y X" [[!!+6V!W[[!!,7W!X) Y X) [[!!+6V!W[[!!,7W!X) Y X)r|   r  c                      \ rS rSrS rS r\R                  R                  S/ SQ5      S 5       r	S r
S rS	 r\R                  R                  S
SS9S 5       r\R                  R                  S
SS9S 5       rS rS rSrg)TestKruskali  c                     [         R                  " S/S/5      u  p[        US5        [        U[         R                  R                  US5      5        g )Nr   r3   r   )rg   kruskalr   r   r  r  )ro   hrg  s      ry   test_array_likeTestKruskal.test_array_like  s;    }}aS1#&Q5::==A./r|   c           	      4   UR                  S/5      nUR                  S/5      n[        R                  " X#5      u  pE[        XAR                  S5      5        [	        U5      n[        XQR                  [        R
                  R                  SS5      US95        g )Nr   r3   r   rI   )re   rg   rV  r1   r+   r  r  )ro   rp   rr   rs   rW  rg  rJ   s          ry   test_simpleTestKruskal.test_simple  sn    JJsOJJsO}}Q"::c?+ $::ejjmmAq&9:GHr|   rJ   )r   r   Nc           	         US:X  a*  [         R                  S:  a  [        R                  " S5        Uc  [	        U5      O
[        X5      nUR                  / SQUS9nUR                  / SQUS9n[        R                  " X45      u  pV[        XQR                  SUS95        [        XaR                  [        R                  R                  SS5      US95        g )	Nr   2z*Scalar dtypes only respected after NEP 50.)r   r4   r6   r8   r:   rI   )r3   r5   r7   r9   rZ   rr  r   )r   r  r   r  r+   rl  re   rg   rV  r1   r  r  )ro   rp   rJ   rr   rs   rW  rg  s          ry   rZ  TestKruskal.test_basic  s    I"..3"6KKDE(- $72;MJJeJ4JJ'uJ5}}Q"::d%:89::ejjmmD!&<E:JKr|   c                 $   S/nSS/n[         R                  " UR                  U5      UR                  U5      5      u  pESnSnUR                  Xg-  5      n[        XH5        [	        U[
        R                  " UR                  S5      U5      5        g )Nr   r3   rP  r  r   )rg   rV  re   r2   r1   r   chdtrc	ro   rp   rr   rs   rW  rg  h_uncorrr  r  s	            ry   test_simple_tieTestKruskal.test_simple_tie  su    CF}}RZZ]BJJqM:*::ho. 	$7>>"**R.(CDr|   c                 D   / SQn/ SQn[         R                  " UR                  U5      UR                  U5      5      u  pESnS[        S5      S-  -
  nUR                  Xg-  5      n[	        XH5        [	        U[
        R                  " UR                  S5      U5      5        g )N)r   r   r   r3   )r3   r3   r3   r3   r   r        r   rg   rV  re   r  r1   r   ra  rb  s	            ry   test_another_tieTestKruskal.test_another_tie  s}    }}RZZ]BJJqM:>5,-::::ho.$7>>"**R.(CDr|   c                 l   / SQn/ SQnSS/n[         R                  " UR                  U5      UR                  U5      UR                  U5      5      u  pVSnS[        S5      S-  -
  nUR                  Xx-  5      n	[	        XY5        [	        U[
        R                  " UR                  S5      U	5      5        g )	Nr  rJ  r3   rM   r   rg  rh  r   ri  )
ro   rp   rr   rs   r@  rW  rg  rc  r  r  s
             ry   test_three_groupsTestKruskal.test_three_groups  s    F}}RZZ]BJJqM2::a=IG5,-::::ho.$7>>"**R.(CDr|   r<  r  ry  c                    UR                  / SQ5      nUR                  / SQ5      nUR                  / UR                  S9n[        R                  " [        [
        S9   [        R                  " X#U5      nS S S 5        [        WR                  UR                  UR                  5      5        [        UR                  UR                  UR                  5      5        g ! , (       d  f       Nm= f)Nr  rJ  rI   r   )re   rJ   r   rL  r   r   rg   rV  r2   r@  rn   r?  )ro   rp   rr   rs   r@  r   s         ry   r  TestKruskal.test_empty  s     JJy!JJy!JJrJ)\\,4IJ--a(C Krzz"&&'9:

BJJrvv$67 KJs   C
C+c                 
   UR                  S5      nUR                  US'   [        R                  " X"5      n[	        UR
                  UR                  UR                  5      5        [	        UR                  UR                  UR                  5      5        [        R                  " X"SS9n[	        UR
                  UR                  S5      5        [	        UR                  UR                  S5      5        [        R                  " [        SS9   [        R                  " X"S	S9  S S S 5        [        R                  " [        S
S9   [        R                  " X"SS9  S S S 5        g ! , (       d  f       NF= f! , (       d  f       g = f)Nr   r:   r   r   r   r   r   r   r   r   r   )r   rn   rg   rV  r2   r@  re   r?  r   r   r   r   s       ry   r  TestKruskal.test_nan_policy  s    IIcNvv!mmA!rzz"&&'9:

BJJrvv$67mmAV4rzz#7

BJJsO4]]:-LMMM!73 N ]]:-KLMM!84 ML NM MLs   E#E4#
E14
Fc                 B   Sn[         R                  R                  S5      nUR                  UR	                  U5      5      nUR                  UR	                  U5      S-   5      n[
        R                  " XE5      u  pg[        XqR                  SUR                  S95        g )NrI
  ykr  r   rI   )	r   r  r  re   r  rg   rV  r1   rJ   )ro   rp   r  r  rr   rs   rW  rg  s           ry   test_large_samplesTestKruskal.test_large_samples%  s{    ii##J/JJs**1-.JJs**1-23}}Q"::b:89r|   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   rV  r  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   rX  r[  r   r   r  rZ  rd  rj  rm  r   r  r  ru  rx  r   r   r|   ry   rT  rT    s    0
I [[W&BCL DLE
EE [[!!+6S!T8 U8 [[!!+6S!T5 U5$:r|   rT  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Q5      S 5       5       rSrg)TestCombinePvaluesi4  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  r-  rP  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  ro
  )re   rg   r  r1   r@  r?  )ro   rp   ro
  r  r  rr   r   s          ry   test_weighted_stouffer)TestCombinePvalues.test_weighted_stoufferL  s^     JJ}%##Aj"**WBUVrzz2D'EF

BJJ$?@r|   )r  r  r  r|  r  r{  )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  rM  rO  r0  r   rT   r  r  r   r  r  r`   )r   r  r  r^  re   r  ri   r.  r   rs  r   r  r  r  rg   r  r  )
ro   r{  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   r[  TestCombinePvalues.test_resultx  sA    ##BJJ}$=fMs1v.

CF+r|   rU   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 r6
  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  ref0r  s               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  r[  r  r   r   r|   ry   r{  r{  4  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/[[V\24 3 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	)
TestCdfDistanceValidationi  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_weight  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_weights  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_distribution  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_weight  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    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  r  r7   r   r  )r  r  rZ  rZ  rZ  r6   r   r  r  r  r  r  r  )r8   r   )r   r   rM   r   r   r   )r   gw@r   rt  r   r   )rg   wasserstein_distance_ndr   r   rh  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  rc  r
  )r4   r5   r8   max_repeatsr  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  rT	  rM  r  rh  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  rc  r  r2  rb  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   rE  )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  rT	  insertrc  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  rT	  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-dimensionalr6
  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_analyticalP   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)TestWassersteinDistanceim   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   r[  #TestWassersteinDistance.test_simpleq   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  r  r   )r   r   r   r5   r5   r   r^  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_shift   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_weights   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  rP  r`   r
  )
r   r   r  r   rg   r  rj   r  r  r  )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   rW  r   r	  r3   r  r}  s    ry   r  (TestWassersteinDistance.test_zero_weight   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        [
        R                  " [        SS9   [        [        R                  " SS[        R                  /[        R                  S/5      [        R                  5        S S S 5        g ! , (       d  f       g = fNr   r3   r   r   )	r   rg   r  r   r#  r   rL  r   rn   r}  s    ry   r  'TestWassersteinDistance.test_inf_values   s     	&&1bff~1v>FF	 	&&1bff~|DFF	 	&&BFF7BFF';aVDFF	 \\.@**Aq"&&>BFFA;G A@@   >AE
E&r   N)r   r   r   r   r8  r[  r  r  r  r  r  r  r   r   r|   ry   r  r  m   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  rs  r   rg   energy_distancer   rJ  r}  s    ry   r[  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        [
        R                  " [        SS9   [        [        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   rL  r   rn   r}  s    ry   r  "TestEnergyDistance.test_inf_values   s     	U**Aq"&&>Aq6BBFFK!!1a.BFF7A,?FF	 	!!1rvvgrvv"6A?FF	 \\.@%%q!RVVnrvvqkB A@@r  r   N)r   r   r   r   r8  r[  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\R                  R                  S
S/ 0S/ 0/ / S./5      S 5       rS rS rS r\R                  R                  SSS/5      S 5       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   c                    UR                  U R                  5      UR                  U R                  5      p2[        R                  " X#SS9u  pE[        R                  " X2SS9u  pg[        R                  " X#SS9u  p[        R                  " X2SS9u  p[        XW5        [        X5        XY:w  d   e[        XAR                  S5      5        [        XaR                  S5      5        [        XR                  S5      5        [        XR                  S5      5        [        XQR                  S5      5        [        XR                  S5      5        g )Nr  r  r  |	&	@|	&	gҏGg?g@-pL?re   rf   Yrg   brunnermunzelr1   )ro   rp   rf   r  u1r  u2r	  u3r	  u4p4s               ry   test_brunnermunzel_one_sided.TestBrunnerMunzel.test_brunnermunzel_one_sided!  s    zz$&&!2::dff#51$$Qv>$$QyA$$QyA$$Qv>xxJJ'9:;JJ':;<JJ'9:;JJ':;<JJ'<=>JJ':;<r|   c                    UR                  U R                  5      UR                  U R                  5      p2[        R                  " X#SS9u  pE[        R                  " X2SS9u  pg[        XQR                  U5      5        [        XAR                  S5      5        [        XaR                  S5      5        [        XQR                  S5      5        g )Nr  r  r  r   ҏGw?r  ro   rp   rf   r  r  r  r  r	  s           ry   test_brunnermunzel_two_sided.TestBrunnerMunzel.test_brunnermunzel_two_sided%!  s    zz$&&!2::dff#51$$Q{C$$Q{CJJrN+JJ'9:;JJ':;<JJ'<=>r|   c                    UR                  U R                  5      UR                  U R                  5      p2[        R                  " X#5      u  pE[        R                  " X25      u  pg[        XW5        [        XAR                  S5      5        [        XaR                  S5      5        [        XQR                  S5      5        g )Nr  r  r&  r  r'  s           ry   test_brunnermunzel_default,TestBrunnerMunzel.test_brunnermunzel_default0!  s    zz$&&!2::dff#51$$Q*$$Q*JJ'9:;JJ':;<JJ'<=>r|   c                     SnSnSnUS;  d   eSn[         R                  " [        US9   [        R                  " UR                  U R                  5      UR                  U R                  5      X#U5        S S S 5        g ! , (       d  f       g = f)Nr  r1  r  rF  r>  r   r   r   r   rg   r  re   rf   r  ro   rp   r  distributionr   r  s         ry   $test_brunnermunzel_alternative_error6TestBrunnerMunzel.test_brunnermunzel_alternative_error;!  sq     
"BBBBL]]:W5

466 2BJJtvv4F +:G 655   AA??
Bc                    UR                  U R                  5      UR                  U R                  5      p2[        R                  " X#SS9u  pE[        R                  " X2SS9u  pg[        XQR                  U5      5        [        XAR                  S5      5        [        XaR                  S5      5        [        XQR                  S5      5        g )Nr  r0  r  r  g "H[?r  r'  s           ry   $test_brunnermunzel_distribution_norm6TestBrunnerMunzel.test_brunnermunzel_distribution_normE!  s    zz$&&!2::dff#51$$QA$$QAJJrN+JJ'9:;JJ':;<JJ'<=>r|   c                     SnSnSnUS;  d   eSn[         R                  " [        US9   [        R                  " UR                  U R                  5      UR                  U R                  5      X#U5        S S S 5        g ! , (       d  f       g = f)Nr  r  r  )r1  r  z&distribution should be 't' or 'normal'r   r.  r/  s         ry   %test_brunnermunzel_distribution_error7TestBrunnerMunzel.test_brunnermunzel_distribution_errorN!  sp    ! 
?222:]]:W5

466 2BJJtvv4F +:G 655r3  kwarg_updaters   rr   rQ  c                    U R                   U R                  S.nUR                  U5        UR                  5        VVs0 s H  u  pEXBR	                  U[        U5      S9_M      nnn[        [        [        US9   [        R                  " S0 UD6u  pgS S S 5        [        WUR	                  UR                  5      5        [        WUR	                  UR                  5      5        g s  snnf ! , (       d  f       N_= f)NrQ  rI   rc  r   )rf   r  updateitemsre   r+   r'   r   r   rg   r  r2   rn   )ro   r;  rp   r`  keyvalr@  r?  s           ry   test_brunnermunzel_empty_imput0TestBrunnerMunzel.test_brunnermunzel_empty_imputX!  s     vvDFF+l#"(,,.2"0hc jj,<R,@jAA"0 	 2+3HRP % 3 3 =f =I Q	2::bff#56

266 232PPs   %C%9C++
C9c                    UR                  SSSSSSSSSSSSSSUR                  /5      nUR                  / SQ5      n[        R                  " X#SS9u  pE[        R                  " X2SS9u  pg[	        XAR                  UR                  5      5        [	        XQR                  UR                  5      5        [	        XaR                  UR                  5      5        [	        XqR                  UR                  5      5        g )Nr   r3   r5   r4   r4   r5   r4   r   r3   r4   r   r   r6   r   r  r   )re   rn   rg   r  r2   r'  s           ry   &test_brunnermunzel_nan_input_propagate8TestBrunnerMunzel.test_brunnermunzel_nan_input_propagated!  s    JJ1aAq!Q1aAq"&&IJJJ9:$$QkB$$QkBJJrvv./JJrvv./JJrvv./JJrvv./r|   c                    UR                  SSSSSSSSSSSSSSUR                  /5      nUR                  / SQ5      nSnSnSnSn[        R                  " [        US	9   [
        R                  " X#XEU5        S S S 5        [        R                  " [        US	9   [
        R                  " X2XEU5        S S S 5        g ! , (       d  f       NI= f! , (       d  f       g = f)
Nr   r3   r5   rD  r  r1  r   r   r   )re   rn   r   r   r   rg   r  )ro   rp   rf   r  r  r0  r   r  s           ry   "test_brunnermunzel_nan_input_raise4TestBrunnerMunzel.test_brunnermunzel_nan_input_raiseo!  s    JJ1aAq!Q1aAq"&&IJJJ9:!
1]]:W5kL 6]]:W5kL 65 6555s   B;C;
C	
Cc                    UR                  SSSSSSSSSSSSSS[        R                  /5      nUR                  / SQ5      n[        R                  " X#SS9u  pE[        R                  " X2SS9u  pg[        XW5        [        XAR                  S5      5        [        XaR                  S5      5        [        XQR                  S	5      5        g )
Nr   r3   r5   rD  r   r   r  r  r&  )re   r   rn   rg   r  r1   r'  s           ry   !test_brunnermunzel_nan_input_omit3TestBrunnerMunzel.test_brunnermunzel_nan_input_omit|!  s    JJ1aAq!Q1aAq"&&IJJJ9:$$Qf=$$Qf=JJ'9:;JJ':;<JJ'<=>r|   vectorized_callFTc                 L   UR                  / SQ5      nUR                  / SQ5      nU(       a8  UR                  X345      R                  nUR                  XD45      R                  nSn[        [        XRS9   [
        R                  " X4S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  rM   r   r   r   r   zDp-value cannot be estimated|divide by zero|invalid value encounteredrc  r1  r5  N)re   r  r   r'   r   rg   r  )ro   rM  rp   rr   rs   r   s         ry   test_brunnermunzel_return_nan/TestBrunnerMunzel.test_brunnermunzel_return_nan!  s{    
 JJ|$JJ+,! ""A! ""ATs:37 ;::s   6B
B#c                    UR                  / SQ5      nUR                  / SQ5      n[        [        SUS9   [        R                  " X#SS9u  pESSS5        [        WUR                  S5      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  rO  zdivide by zerorc  r  r5  Nr   )re   r'   r   rg   r  r2   )ro   rp   rr   rs   r  rg  s         ry   test_brunnermunzel_normal_dist0TestBrunnerMunzel.test_brunnermunzel_normal_dist!  sd     JJ|$JJ+,/?BG&&q(CDA H2::b>* HGs   A22
B r   N)r   r   r   r   rf   r  r#  r(  r+  r1  r6  r9  r   r   r  rA  rE  rH  rK  rP  rS  r   r   r|   ry   r  r  !  s     	3A)A=&	?	?G?G [[^sBi#r46R.@.B C4C4	0M	? [[.>8 ?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)TestQuantileTesti!  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   )ra  z-`p` must be a float strictly between 0 and 1.r<   r  )rg  r  z`alternative` must be one of...z	one-sidedr  rO  )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)rP  rJ  gX݊?g蜶?r  )r<   rO  g-tA?gP"?r  r  rJ  g{gA?r  ro  rO  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   rX  r   r  )ro   rg  rR  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)r  rP  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  ra  rg  r  r;   r  )r   r  r   rg   rX  r   r?  )ro   ra  rg  r  r  rr   r   s          ry   test_R_pvalueTestQuantileTest.test_R_pvalue!  sA     FF299Qd+,!!!AG

Ce4r|   r  
continuousdiscreter  rR  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   rd  r3   r  r  r   r[   ra  rI  r  )rM  r  r   r  r  rT	  rg   rX  r  r  r  r?  )ro   r  r  rR  r  r  rg  ra  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)                                    r9        geX?rv  r  r  ra  r6  r  ;   r9   rV   h   r<   p   )rg  r  r  rd  r  r  rG  )rg   rX  r   r?  binomri  )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  rY  r   r   r  r   r#  r^  rb  rh  r~  r   r   r|   ry   rV  rV  !  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|   rV  c                       \ rS rSrS r\R                  R                  S5      r\R                  S5      r	\R                  R                  S5      r\R                  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/ S/Q/ S/Q/ S0Q/ S1Q/4S2S3S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                  S4\5      S5 5       rS6S7SS/ S8Q/ S9Q/4S:S;SS/ S8Q/ S8Q/ S8Q/ 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/ SAQ/ SBQ/ SBQ/ SBQ/ SBQ/ SBQ/4/r\R                  R                  S4\5      \R                  R#                  5       SC 5       5       rSD rSE rSF rSGrgH)ITestPageTrendTesti."  c                 L    [         R                  R                  S5      U l        g )Nrt  r|  r}  s    ry   r~  TestPageTrendTest.setup_method/"  s    99((4r|   l   /*s )r4   r  )rZ      i2  g<n?Fr  iu  gRn@?i,0  gY@?)rH  rF  I   rc  rF  `   r  ry  r#
  r  rD  1   rC  +   r{  rF  rK  rK  rI  r  rV   r  ri  r  r  )D   r  rd  "   rf	  r  A   X   rW   rC  r1  r  r  C   E   r0  r  r  r  W   r{  r  r  r  r  )rC  r]   U   rc  O   r\   \   V   rW   @   r   r  r  rc   r   Y   rV  r  r  r  6   r]   B   r5  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   r  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                  " XSUS9n[        XR                  5        [	        X&R
                  5        [        XFR                  5        g N)rankedr  rg   page_trend_testr   r@  r   r?  r  ro   Lrg  r  r  r  r   s          ry   test_accuracyTestPageTrendTest.test_accuracyq"  s8    ##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   rh  i  g&]2?)r9   r8   r7   r6   r5   r4   r3   r   )r   r4   r6   r7   r5   r8   r3   r9   r  c                     [         R                  " XSUS9n[        XR                  5        [	        X&R
                  5        [        XFR                  5        g r  r  r  s          ry   test_accuracy2 TestPageTrendTest.test_accuracy2"  s:     ##DGQ&::&VZZ(r|   c                    [         R                  R                  S5      nSu  p#[         R                  " SUS-   5      nUR	                  [         R                  " U5      5      nUR                  X#4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                  " XtS9n[
        R                  " US S 2U4   XE   S9n[        UR                  U	R                  5        [        UR                  U
R                  5        [        UR                  UR                  5        [        UR                  UR                  5        g )	Ni7
)rZ   r  r   rT   Tr  F)predicted_ranks)
r   r  r  r   r  rg   rankdatar  r   r@  )ro   r  r  r  r  permr  ranksr  r  r  res4res5s                ry   test_optionsTestPageTrendTest.test_options"  s   ii##I.))Aqs+ryy|,zz1&!t!,$$U+$$U48$$T%8$$UL$$U1d7^5D5JLT^^T^^4T^^T^^4T^^T^^4T^^T^^4r|   c                    / 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 )N)r  r  o   )rE  r6  k   )g      y   )r=  r	  rg  )rL        )   r
  t   r   r8   Fr  )r  r  r  i  gy&1l?r5   rP  r  gHPsb?)
r   r   r   r   rg   r  r   r@  r   r?  )ro   r  r  r   s       ry   test_Ames_assay!TestPageTrendTest.test_Ames_assay"  s    /Cxx~))Aq/##D4C+79 	S]]C(CJJ:##D4C+24 	S]]C(CJJ:r|   c                 x   [        [        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        [        R
                  R                  S5      n[        [        SS9   [        R                  " UR                  S5      5        S S S 5        [        [        SS9   [        R                  " UR                  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Nq= 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   l   s' zPage's L is only appropriater[  r\  z+`predicted_ranks` must include each integerr  r  )r  r  )rD  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:  )ro   r  r  s      ry   r  'TestPageTrendTest.test_input_validation"  s   :-IJ!!$' K:-IJ!!"% K:-IJ!!1a&) K:-IJ!!QC5'* K ii##J/:-KL!!#**V"45 M:-KL!!#**V"45 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HY 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%'&M7#&N	!NN-	N?=O/O##O5+PP
P+/
L>
M
M"%
M47
N	
N
N*-
N<?
O
O #
O25
P
P
P(+
P9r  N)r   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   5" ))



+C

7#I
))



+CH%J .%y
A/5,

C$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( [[93?[[)  @)5$;&0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  r_  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<   rR  )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  rh  )r  rM  rR  ro
  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)bracketr_  )r   r  r  r   minimize_scalarrr   )rM  rR  ro
  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  rR  ro
  r   r  r  s
            @ry   test_weightsTestExpectile.test_weights#  su    
 ii##$78	4
	H
 JJqM

**Q-ooa87+!r|   rR  )r-  g?r<   g/#    ?ro  r  r  rE  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   r  r<   c                     [        X5        g r(  )r   rM  rY  s     ry   	assert_op:TestExpectile.test_expectile_properties.<locals>.assert_ope#  s
    %r|   c                     X:  d   eg r(  r   r  s     ry   r  r  i#      uur|   c                     X:  d   eg r(  r   r  s     ry   r  r  m#  r  r|   r6   )rM  r<   ro  r   N)r   r  r  r  r   rg   r  r   exponentiallogisticr_)ro   rR  r  r  rr   rt  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  rR  rg   r  r  diff)ro   r  r  rr   e_list	alpha_seqrR  s          ry   test_monotonicity_in_alpha(TestExpectile.test_monotonicity_in_alpha#  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            	          \ rS rSr/ SQrS/ SQ\R                  \R                  /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\R                  R                  SSS/5      S 5       rSrg)TestLMomenti#  )yףp=
?r  p=
ף?r=   ra
  r)  r=   r<   r   r  r_
  {Gz?g@(\?gףp=
?
ףp=
?g)\(?gRQ @r  {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=
?rN  gHzG?g      @r
  gQ?r  r  RQ?r
  gQ?p=
ף?gQ@gGz?gQ?gp=
ף?q=
ףp?rb
  gp=
ף?gQ?r  r  g@r  g)\( @gzG@r  r   gGz?g(\?r  333333?)\(?r  r   gGz@ro  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?   c                     Sn[         R                  " [        US9   [        R                  " UR                  U R                  U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   lmomentre   r  r  r  s      ry   test_dtype_ivTestLMoment.test_dtype_iv#  sB    >]]:W5MM"**TYYbmm*DE 655s   9A
A,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  rO  rB  s     ry   test_dtype_iv_non_numeric%TestLMoment.test_dtype_iv_non_numeric#  s<    >]]:W5MM"((499F;< 655s   8A
A+r  r   r`   r  c                     Sn[         R                  " [        US9   [        R                  " UR                  U R                  5      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  re   r  )ro   r  rp   r  s       ry   test_order_ivTestLMoment.test_order_iv#  s<    >]]:W5MM"**TYY/u= 655   /A
A"rU   c                     Sn[         R                  " [        US9   [        R                  " UR                  U R                  5      US9  S S S 5        g ! , (       d  f       g = f)Nz`axis` must be an integerr   rT   r  )ro   rU   rp   r  s       ry   test_axis_ivTestLMoment.test_axis_iv#  s<    -]]:W5MM"**TYY/d; 655r  sortedc                     Sn[         R                  " [        US9   [        R                  " UR                  U R                  5      US9  S S S 5        g ! , (       d  f       g = f)Nz`sorted` must be True or False.r   )r!  r  )ro   r!  rp   r  s       ry   test_sorted_ivTestLMoment.test_sorted_iv#  s<    3]]:W5MM"**TYY/? 655r  standardizec                     Sn[         R                  " [        US9   [        R                  " UR                  U R                  5      US9  S S S 5        g ! , (       d  f       g = f)Nz$`standardize` must be True or False.r   )r%  r  )ro   r%  rp   r  s       ry   test_standardize_ivTestLMoment.test_standardize_iv#  s<    8]]:W5MM"**TYY/[I 655r  r   r5   r  FT	presortedc                 j   UR                  / SQ5      nU(       d+  [        R                  " U5      SS  R                  US   5      nU(       a  [	        U R
                  5      OU R
                  nUR                  U5      n[        R                  " XaX#S9n[        XuUR                  U5      S-
     5        g )N)g0ʻEH?gk?gz[?g+3 ?r3   r   )r%  r!  )	re   rk   rl   multiplyr!  r  rg   r  r1   )ro   r  r%  r)  rp   r  r  r   s           ry   test_lmomentTestLMoment.test_lmoment#  s     jj B C &&+ab/**3q62C$-vdii 499zz$mmD[SE!21!456r|   c                    UR                   nUR                  U R                  5      n[        R                  " UR                  X25      5      nUR                  [        R                  " U5      U5      n[        XESS9  UR                  nUR                  / SQ5      n[        R                  " UR                  X25      5      n[        R                  " UR                  U[        U5      5      5      n[        XE5        g )Nr  r  r!  )	r   re   r  rg   r  r  r1   int64r+   )ro   rp   rJ   r  r   r  s         ry   
test_dtypeTestLMoment.test_dtype#  s    

DII&mmBIIf45iif-u5t,O,mmBIIf45mmBIIf.>r.BCD!r|   c                    [         R                  R                  S5      nUR                  SS9n[        R                  " UR                  U5      US9nUR                  [        R                  " XAS95      n[        XV5        g )Nl   jU3a )rZ   r[   r  rT   )r   r  r  rg   r  re   r1   )ro   rU   rp   r  rr   r   r  s          ry   r  TestLMoment.test_axis#  s`     ii##$9:JJHJ%mmBJJqM5jjq45!r|   r   N)r   r   r   r   r  mathrn   r#  not_integersr  r%   r  r   r   r  r  r  r#  r'  r,  r0  r  r   r   r|   ry   r  r  #  sy   
ND dhh9LF
 = =
 [[WlaR)5M&MN> O>
 [[V\2< 3<
 [[X|4@ 5@
 [[]L9J :J
 [[Wq!\&:;[[]UDM:[[[5$-87 9 ; <7$" [[VaV," -"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`   )rN  r3   ro
  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   )ro
  rU   r  )r   r  r  re   r  r!   r  r1   )ro   rp   rU   ro
  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   rc  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   ro
  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   )ro
  r   )r   rc  rn   r(   r   r   r:  r!   r   re   r2   rj   r1   r  )	ro   rp   rr   r  r  r  r  r   ro
  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   rc  rn   r   rL  r   r!   r   re   r2   ro   rp   rr   r  r   r  s         ry   test_nan_policy_warns!TestXP_Mean.test_nan_policy_warnsJ$  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   rL  r   r!   re   rn   r2   ro   rp   r  r   r  s        ry   r  TestXP_Mean.test_emptyV$  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   r0  TestXP_Mean.test_dtypeg$  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_integer{$  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   r  r1   )	ro   rp   r  rr   rs   wxwyr   r  s	            ry   r   TestXP_Mean.test_complex_gh22404$  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=  r@  r   rC  r  r   rJ  r  r0  rY  r  r   r   r|   ry   r7  r7  #  s   [[V%;<[[Yt5[[Z%7. 8 6 =. # [[ WX[[ VW1 X Y1 [[9""@ &	& '	&"" [[>"""H.r|   r7  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_Vari$  rU   r8  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[        R                  " 5          [        R                  " S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   r$  )rU   r  ra  )r   r  r  r   r  rn   nanvarre   r"   r   r   r   r   r1   )ro   rp   rU   r  r   r   r  rr   var_refnan_maskr;  r   r  s                ry   test_xp_var_basicTestXP_Var.test_xp_var_basic$  s    
 ii##N3JJy!&&zzqwwz/#5H&&AKiiGzz!}d!+- $$&##=~O!KC '
 	ZZ_- '&s   6$C==
D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   rC  TestXP_Var.test_special_cases$  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   rc  rn   r"   re   r2   r   r1   )ro   rp   rr   r  r  r  r  r   s           ry   r  TestXP_Var.test_nan_policy$  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rH  )
r   rc  rn   r   rL  r   r"   r   re   r2   rI  s         ry   rJ   TestXP_Var.test_nan_policy_warns$  sx    IIcNHHQ!VRVVQ' +\\.8!bff*8C**RVV$CC% 988rL  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5r  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rN  )r   rL  r   r"   re   rn   r2   rO  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! =< =<rQ  rR  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   rU  s          ry   r0  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   rY  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  re  rC  r  r   rJ  r  r  r   r0  rY  r  r   r   r|   ry   r`  r`  $  s    [[V%;<[[Z%7[[\Aq62[[\K+@A. B 3 8 =.,1
"" &	& '	& &D 'D"" [[>""0Ar|   r`  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|   rW  (  r8  r4  r  r  r   collectionsr   	itertoolsr   hypothesis.extra.numpyextranumpyr  r  r  numpy.testingr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   scipy.statsrg   scipy.stats._mstats_basic_mstats_basicr  scipy.stats._ksstatsr   scipy.special._testutilsr   scipyr   r   common_testsr   scipy.stats._axis_nan_policyr   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-   r.   r/   r0   scipy._lib._array_api_no_0dr1   r2   scipy._lib.array_api_extra_libarray_api_extrark   lazy_xp_modulesr   r   rH  r  rf   r(  r   r   r   r   r  rF   r   r   r:  r  rz  r  thread_unsafer  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rZ  rW  rl  rj  r  r  r  r  r   r  r-  r2  r/  r  r  r  r  r  r  r  r  	compositer  r&  r  r\  PowerDivCaser  r  r   r  r  r  r  r  r  r  r  r  r4  r`  r  r  r  r  rU  r  r  r  r  r  r	  r
	  r	  r	  r	  r	  r   r	  r:	  rZ	  r|	  r	  r	  r	  r	  r	  r  r	  r	  r	  r	  r	  r
  r
  r
  r
  r
  r/
  r.
  r4
  rE
  rC
  rd
  rn
  rs
  rw
  r{
  r~
  rz
  r
  r  r
  r}
  r
  r  r  rN  ra  rl  rn  r  r}  r  r  r  r  r  r  rV  rT  r  r{  r  r  r  r  r  r  rV  r  r  r  r  rr   rs   wilcoxonrb  r  rb  r  r  r  r  r  r7  r`  r|  r   r|   ry   <module>r     s    	 	  "  % %  ? ? ?  * / /   0 0 ( - # -T TU U & .0 0 0 0 I ( (';;// KK11  

u% %(  !&(	 238
:DeLDeL3U;LT LT^p# p#f 5>>"L> L> #L>^DL DLN{6 {6|~5 ~5T "56V: 7V:r4 < "563 73$TE TEnY2x	*&Ro# o#d0D)3"rN rNj 5::I3 I3 I3X 599+E +E +E\ 5::j" j" j"Z 5<< f& f& !f&R 5==!0 0 "0* 5--.GL GL /GLT1 599U" U" U"p 5<< \" \" !\"~
1 
1 5::_" _" _"D 5>>"`"# `" #`"F    !< 5$$%Q) Q) &Q)hw8 w8t & }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 5**+-T -T ,-T`+( +(` 5>>"jQ jQ #jQ^c. c.L	sEl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jF jF FjFZD5 D5NC7 C7L 5??#IB IB $IBXL$ 5??#v* v* $v*r 5--.) ) /), t4HIRSST< U T J<6% STRS5$$%:> & T U :>z $'QR S. 5$$%k2RS% T &%: 5>>"L+ L+ #L+^*- *-Z 5>>"-> - #-2 5%%&-~ - '-> 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;;y% y%  y%x 5::S3 S3 S3l(.90[;|.3 .3b 5??#0V 0V $0Vf 5??#.2 .2 $.2b 5(()C< C< *C<L 5>>"t) t) #t)n 5==!k k "k\ 5(()`4 `4 *`4F#A #ALl  l ^Z Zz? ?D 5&&'S+ S+ (S+lHA HAV{1 {1| 	iiI&JJrNJJrN  >>A40 >>Auzz~~+>? >>Aq62 <<!Q011X+ X+v 5==!\" \" "\"~J. J.ZrA rAj!r|   