
    Cpj                       S r SSKrSSKrSSKrSSKJr  SSKJr  SSKJ	s  J
r  SSKrSSKrSSKJrJrJrJrJrJrJr  SSKrSSKJr  SSK
JrJrJr  SSK
rSSK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)J*r*J+r+J,r,J-r-  SSK.J/r/J0r0J1r1J2r2J3r3J4r4  SSK5J6r6  SSK7J8r8  SSK9J:r:J;r;J<r<J=r=J>r>J?r?J@r@JArAJBrBJCrCJDrDJErEJFrFJGrGJHrHJIrIJJrJ  SSKKJLrLJMrMJNrN  SSKOJPs  JQrR  SSK5JSrS  \/rT\R                  R                  rV\R                  R                  rW \" / SQ\X5      rY\" / SQ\X5      rZ\" / SQ\X5      r[\" / SQ\X5      r\\" / SQ\X5      r]\" / SQ\X5      r^\" / SQ\X5      r_ " S S5      r` " S S5      ra\B" \R                  5       " S S 5      5       rc " S! S"5      rd " S# S$5      re " S% S&5      rf\B" \R                  5       " S' S(5      5       rh\B" \R                  5       " S) S*5      5       ri " S+ S,5      rj\B" \R                  5       " S- S.5      5       rl " S/ S05      rm\B" \R                  5       " S1 S2\m5      5       ro\B" \R                  5       " S3 S4\m5      5       rq " S5 S65      rr\B" \R                  5       " S7 S85      5       rt\B" \R                  5       " S9 S:5      5       rv\B" \R                  5       " S; S<5      5       rx\B" \R                  5       " S= S>5      5       rz\B" \R                  5       " S? S@5      5       r|\B" \R                  5       " SA SB5      5       r~\B" \R                  5       " SC SD5      5       r\B" \GR                  5       " SE SF5      5       r " SG SH5      r\B" \GR                  5       " SI SJ\5      5       r\B" \GR                  5       " SK SL\5      5       r\GR                  GR                  SM 5       r\B" \GR                  5       " SN SO5      5       r " SP SQ5      r\" SR/ SSQ5      r\" / STQSSSSUSVSU\GR                  " SW5      -  SX\GR                  " SY5      -  -   -  SVSZ\GR                  " S[5      -  SZ\GR                  " S\5      -  -   -  S]SS9\" / STQ/ S^QSSS_SVSU\GR                  " S[5      -  SZ\GR                  " SW5      -  -   SZ\GR                  " S`5      -  -   -  SVSV\GR                  " SW5      -  Sa\GR                  " S[5      -  -   SV\GR                  " Sb5      -  -   -  ScSS9\" / STQSZSSSUSVSU\GR                  " SW5      -  SX\GR                  " SY5      -  -   -  SVSZ\GR                  " S[5      -  SZ\GR                  " S\5      -  -   -  S]SS9\" / SdQ/ SdQSSSSSSSS9/r\" / SSSSSSSSS9\" \R2                  " / / / /5      GR"                  SSS/ SeQ/ SeQ/ SeQ/ SeQSS9\" \R2                  " / / / /5      SSS/ / / / SS9/r\B" \GR&                  5       " Sf Sg5      5       r\B" \GR*                  5       " Sh Si5      5       r\B" \GR.                  5       " Sj Sk5      5       r\B" \GR2                  5       " Sl Sm5      5       r\B" \GR6                  5       " Sn So5      5       r\B" \GR:                  5       " Sp Sq5      5       r\R                  GR?                  Sr5      \R                  GR?                  Ss5      \B" \GR@                  5       " St Su5      5       5       5       r\R                  GRE                  Sv\J" \GR                  \R4                  " Sw5      S45      \J" \GR@                  \R4                  " Sw5      \R4                  " Sw5      45      /5      Sx 5       rSSSy.Sz jjr\B" \GRJ                  \GRL                  5       " S{ S|5      5       r\B" \GRJ                  5      \V" S}S~S9\R                  GR?                  S5       " S S5      5       5       5       r\B" \GRJ                  5       " S S5      5       r\B" \GRJ                  5       " S S5      5       r\B" \GRJ                  5       " S S5      5       r\B" \GRJ                  5       " S S5      5       r\B" \GRL                  5       " S S5      5       r\B" \GR                  5       " S S5      5       r\B" \GR^                  5       " S S5      5       r " S S5      r\B" \GRd                  5       " S S\5      5       r\B" \GRh                  5       " S S\5      5       r\B" \GRl                  5       " S S\5      5       r " S S5      r\B" \GRr                  5       " S S5      5       r\B" \GRv                  5       " S S5      5       r\B" \GRz                  5       " S S5      5       rSSSSS.S jrS rS rS r\B" \GR                  5       " S S5      5       r\B" \GR                  5       " S S5      5       r\B" \GR                  5       " S S5      5       r\B" \GR                  5       " S S5      5       r " S S5      r\B" \GR                  5       " S S5      5       r\B" \GR                  5       " S S5      5       r\B" \GR                  5       " S S5      5       r\B" \GR                  5       " S S5      5       r\B" \GR                  5       " S S5      5       r\B" \GR                  5       " S S5      5       r " S S5      r " S S5      r " S S5      r " S S5      r\B" \GR                  5       " S S5      5       r\S" SSS5      S 5       r\B" \GR                  5       " S S5      5       r " S S5      r\B" \GR                  5       " S S5      5       r\B" \GR                  5       " S S5      5       r\B" \25       " S S5      5       r\B" \35       " S S5      5       r\R                  GR                  SSS9S 5       r\V" SSS9\R                  GRE                  S\J" \GR                  5      \J" \GR6                  5      \J" \GR:                  5      \J" \GR2                  5      /5      S 5       5       rg)zTest functions for stats module

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

Additional tests by a host of SciPy developers.
    N)
namedtuple)product)assert_assert_equalassert_almost_equalassert_array_almost_equalassert_array_equalassert_approx_equalassert_allclose)raises)arrayarangepower)kolmogn)FuncData)optimizespecial   )check_named_results)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_result_typeis_jaxis_cupyxp_copy
xp_promotemake_xp_pytest_param)xp_assert_closexp_assert_equalxp_assert_less)_apply_over_batch)	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            	       l   \ 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\R                  R-                  S\
R(                  \
R.                  /5      S 5       r\" S	S
S9\R                  R-                  S\" \
R(                  S5      \" \
R.                  S5      /5      S 5       5       r\	" \
R.                  5      S 5       r\	" \
R(                  \
R.                  5      S 5       r\" S	SS9\	" \
R(                  \
R.                  5      S 5       5       r\	" \
R>                  5      S 5       r Sr!g)TestTrimmedStatsN   c           	      j   [        U5      nUR                  [        US9n[        R                  " USS5      n[        XAR                  S5      5        [        R                  " USSS9n[        R                  " US S9n[        XV5        UR                  UR                  S5      S	5      n[        R                  " US S
9n[        XAR                  U5      5        [        R                  " USS
9n[        XAR                  USS
95        [        R                  " USS
9n[        XAR                  USS
95        [        R                  " USS S9n[        XAR                  S5      5        [        R                  " USSS9n/ SQn[        XAR                  U5      5        [        R                  " USSSS9n/ SQn[        XAR                  U5      5        [        R                  " U5      SSS 24   R                  UR                  SS9n	[        R                  " U	SSS9nSSSSUR                  UR                  UR                  /n[        XAR                  U5      5        [        R                  " USSS9nSSS S!UR                  UR                  UR                  UR                  UR                  /	n[        XAR                  U5      5        [        R                  " USS"SS9nSSS S!UR                  UR                  UR                  UR                  UR                  /	n[        XAR                  U5      5        g )#Ndtyper8   r>   TT      @)FFlimits	inclusiverT        O@r?   r=   axisr   r   )r8   =   )rT   rZ   g     ?@)r8      )         '@r?   
            TF)rT   rU   rZ   )      %@r^   r?   r_   r`   ra   rb   T)copy)r   rb   r=   rE   rF   rG   r:   r_      r\   FT)r(   asarrayXstatstmeanr4   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/pdf-tiff/venv/lib/python3.13/site-packages/scipy/stats/tests/test_stats.py
test_tmeanTestTrimmedStats.test_tmeanR   ss   (,JJqJ.KK6<0::c?+[[6^D[[4(zz"))C.&1KK4(774=)KK1%774a701KK1%774a701KKW48::d+,KKW15.::f-.KKWAN0::f-.tRW-11"&&t1DKKgA>S#sBFFBFFBFF;::f-.KKW15RRH::f-.KKW"/a9r2r266266266266266J::f-.    z>ignore:invalid value encountered in divide:RuntimeWarning:daskc                    UR                  [        R                  5       5      n[        R                  " USSS9n[        X1R                  S5      5        [        R                  " US S9n[        X1R                  USS95        UR                  UR                  S5      S	5      n[        R                  " US S
9n[        X1R                  USS95        [        R                  " USS
9n[        X1R                  SS5      5        [        R                  " USS
9n[        X1R                  SS5      5        [        R                  " USSSS9n[        US   UR                  S5      5        [        R                  " USSSS9n[        US   UR                  S5      5        [        US   UR                  UR                  5      5        g )NrP   rQ   rS   g@rV   r   
correctionrW   rX   rY   r   r=   g     v@)r?   g㪪@r   r;   )rT   rZ   rU   rC   r   r<   g@)rj   rk   tolistrl   tvarr4   varrn   r   fullr5   rs   )rt   ru   rw   rx   r{   s        r~   	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 )NrP   rQ   gBĆ/H@rV   r   r   )rj   rk   r   rl   tstdr4   stdrt   ru   rw   rx   s       r~   	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   rU         ?r;   r8          @r   rY   )r   r         @      @       @r?      r:   r:   r:   )r   rZ   r>   ra   )r   r5   rl   tminrj   rn   rp   rq   rr   rs   nprt   ru   rw   ress       r~   	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   tfunc                 (    [        U" S5      S5        g )Nr:   )r   )rt   r   s     r~   test_tmin_tmax_scalar_input,TestTrimmedStats.test_tmin_tmax_scalar_input   s    T!Wa r   T'lazy -> reduced nan_policy capabilities
eager_onlyreasonz	tfun, refr         "@c                 H   UR                  S5      nUR                  US'   [        U" USS9UR                  U5      5        Sn[	        [
        US9   U" USS9  S S S 5        Sn[	        [
        US9   U" US	S9  S S S 5        g ! , (       d  f       N/= f! , (       d  f       g = f)
Nr   r>   omit
nan_policyThe input contains nan valuesmatchraisenan_policy must be one of...foobar)r   rs   r5   rj   assert_raises
ValueError)rt   r   refru   rw   msgs         r~   test_tmin_tmax_nanpolicy)TestTrimmedStats.test_tmin_tmax_nanpolicy   s     IIcNvv!Q62BJJsOD-:S1w' 2,:S1x( 21 21 21s   B1B
B
B!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   r?   
upperlimitF)r   rU   r   r         @r   rY   )r         @rR   r   r   ignorezAll-NaN slice encounteredr   r   r`   )r   rZ   r9   r=   )r   r5   rl   tmaxrj   rn   rp   rq   rr   rs   warningscatch_warningsfilterwarningsRuntimeWarningr   r   s       r~   	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                 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 )Nr_   rN   r8   r;   r   r;   r:   r?   r<   r   r   r9   r   r   )rn   r   int16Tr%   r(   rO   r5   rl   r   rj   r   rs   )rt   ru   rw   expect_dtypes       r~   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 dtypec                     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   r5   rl   r   r   rt   ru   rw   s      r~   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)r9   r>   ri   rS   )r   rR   r   r   r   r   r   rA   re   r_   rV   )rj   rk   r   rl   tsemr4   r   r)   )rt   ru   rw   rx   y_refs        r~   	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+   rl   rm   r   r   pytestmarkr   r   r   r   r   r   parametrizer   r   skip_xp_backendsr3   r   r   r   r   r   r   __static_attributes__r   r   r~   rK   rK   N   s   HHRZZ **Eu{{#,/ $,/\ uzz"[[H2 #28 uzz"4 #4 uzz"= #=* [[Vejj%**%=>! ?! .WX[[[+?

B+O+?

B+O+Q R	)R Y	) uzz"A #A0 uzz5::.O /O .UVuzz5::.3 / W3 uzz"T #Tr   rK   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   )rl   pearsonrrk   r
   rt   rx   rs      r~   test_pXXTestPearsonrWilkinson.test_pXX  s%    NN1QaDAc"r   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rl   r   rk   BIGr
   r   s      r~   
test_pXBIG TestPearsonrWilkinson.test_pXBIG  s%    NN1S!aDAc"r   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rl   r   rk   LITTLEr
   r   s      r~   test_pXLITTLE#TestPearsonrWilkinson.test_pXLITTLE   s%    NN1V$aDAc"r   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rl   r   rk   HUGEr
   r   s      r~   test_pXHUGE!TestPearsonrWilkinson.test_pXHUGE%  %    NN1T"aDAc"r   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rl   r   rk   TINYr
   r   s      r~   test_pXTINY!TestPearsonrWilkinson.test_pXTINY*  r  r   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rl   r   rk   ROUNDr
   r   s      r~   test_pXROUND"TestPearsonrWilkinson.test_pXROUND/  s%    NN1U#aDAc"r   c                 d    [         R                  " [        [        5      nUS   n[        US5        g r   )rl   r   r   r
   r   s      r~   test_pBIGBIG"TestPearsonrWilkinson.test_pBIGBIG4  s%    NN3s#aDAc"r   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rl   r   r   r   r
   r   s      r~   test_pBIGLITTLE%TestPearsonrWilkinson.test_pBIGLITTLE9  s%    NN3v&aDAc"r   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rl   r   r   r   r
   r   s      r~   test_pBIGHUGE#TestPearsonrWilkinson.test_pBIGHUGE>  %    NN3t$aDAc"r   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rl   r   r   r  r
   r   s      r~   test_pBIGTINY#TestPearsonrWilkinson.test_pBIGTINYC  r  r   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rl   r   r   r  r
   r   s      r~   test_pBIGROUND$TestPearsonrWilkinson.test_pBIGROUNDH  s%    NN3u%aDAc"r   c                 d    [         R                  " [        [        5      nUS   n[        US5        g r   )rl   r   r   r
   r   s      r~   test_pLITTLELITTLE(TestPearsonrWilkinson.test_pLITTLELITTLEM  s%    NN6&)aDAc"r   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rl   r   r   r   r
   r   s      r~   test_pLITTLEHUGE&TestPearsonrWilkinson.test_pLITTLEHUGER  %    NN6$'aDAc"r   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rl   r   r   r  r
   r   s      r~   test_pLITTLETINY&TestPearsonrWilkinson.test_pLITTLETINYW  r   r   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rl   r   r   r  r
   r   s      r~   test_pLITTLEROUND'TestPearsonrWilkinson.test_pLITTLEROUND\  s%    NN6%(aDAc"r   c                 d    [         R                  " [        [        5      nUS   n[        US5        g r   )rl   r   r   r
   r   s      r~   test_pHUGEHUGE$TestPearsonrWilkinson.test_pHUGEHUGEa  %    NN4%aDAc"r   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rl   r   r   r  r
   r   s      r~   test_pHUGETINY$TestPearsonrWilkinson.test_pHUGETINYf  r*  r   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rl   r   r   r  r
   r   s      r~   test_pHUGEROUND%TestPearsonrWilkinson.test_pHUGEROUNDk  %    NN4&aDAc"r   c                 d    [         R                  " [        [        5      nUS   n[        US5        g r   )rl   r   r  r
   r   s      r~   test_pTINYTINY$TestPearsonrWilkinson.test_pTINYTINYp  r*  r   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rl   r   r  r  r
   r   s      r~   test_pTINYROUND%TestPearsonrWilkinson.test_pTINYROUNDu  r1  r   c                 d    [         R                  " [        [        5      nUS   n[        US5        g r   )rl   r   r  r
   r   s      r~   test_pROUNDROUND&TestPearsonrWilkinson.test_pROUNDROUNDz  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/  r3  r6  r9  r   r   r   r~   r   r     sp    #
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#r   r   c                   2   \ 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\	R                  R                  S/ SQ5      S 5       rS r\	R                  R!                  S5      S 5       rS r\	R                  R1                  S5      \	R                  R3                  S5      \	R                  R                  SS5      \	R                  R                  SS5      S  5       5       5       5       r\	R                  R6                  \	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-).TestPearsonri  c                     [         R                  " UR                  [        5      UR                  [        5      5      nSn[	        X#US9  [        UR                  UR                  5        g )Ncorrelationpvalueru   )rl   r   rj   rk   r   r5   r@  	statistic)rt   ru   r   
attributess       r~   test_pearsonr_result_attributes,TestPearsonr.test_pearsonr_result_attributes  sC    nnRZZ]BJJqM:.
C37r   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   r8   r   rl   r   r4   rj   r   sqrtspacingrt   ru   ar   probs        r~   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         rH  rI  r   r8   r   rK  rN  s        r~   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re   r   r   )r   r   r9   LXz?UUUUUU?)rj   rl   r   r4   )rt   ru   rO  br   rP  s         r~   
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   ru   rj   r$   rl   ConstantInputWarningr   r4   rs   rt   ru   rw   rx   r   r   ps          r~   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rO   float32r   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                  XbS9   [
        R                  " XE5        S S S 5        g ! , (       d  f       g = f)Nr8   rN   r9   r<   z/An input array is nearly constant; the computedre  )getattrr   rj   rM  r$   rl   NearConstantInputWarningr   )rt   rO   ru   npdtyperw   rx   r   s          r~   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?rN   )goȟg`
,gzg2l?g>??'ge;E?g3R?rj   r   rl   r   r4   rt   ru   rw   rx   r   ri  s         r~   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   rN   r=   rY  g͗~-?)rj   r   r   rl   r   r4   rv  s         r~   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irN   )gDig<'(½igmQiZbtig*D{?gݣ?ru  rv  s         r~   !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   rR   rj   rl   r   r5   confidence_interval
rt   ru   rw   rx   r   r   ri  onelowhighs
             r~   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   rR   r  r  s
             r~   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`  rb  rc  rd  re  rf  rh  s          r~   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Frl  z$alternative, pval, rlow, rhigh, sign))	two-sided?gmgƎ?r   )lessK˅?rT  g?
?r   )greater.?gդζr   r   )r  r  gfǎgl?re   )r  r  rT  gդζ?re   )r  r  g?
r   re   c                    UR                  / SQ5      nUR                  / SQ5      U-  n[        R                  " XxUS9n	[        U	R                  UR                  SU-  5      5        [        U	R
                  UR                  U5      5        U	R                  5       n
[        U
R                  UR                  U5      5        [        U
R                  UR                  U5      5        g )Nr   r   r   r   )r   r   rA   r   alternativeg?)	rj   rl   r   r4   rC  rA  r  r  r  )rt   r  pvalrlowrhighsignru   rw   rx   resultcis              r~   test_basic_exampleTestPearsonr.test_basic_example  s     JJ'(JJ()D0+>(("**5G5L*MNrzz$'78'')

4 01E!23r   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;rI  )r   rl   r   r4   rA  rj   )rt   ru   rw   rx   test_greater	test_lesss         r~   (test_negative_correlation_pvalue_gh177955TestPearsonr.test_negative_correlation_pvalue_gh17795*  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   )rR   g      g      *r   r   Hz>rI  )rj   rl   r   r4   r  r5   r  s
             r~   #test_length3_r_exactly_negative_one0TestPearsonr.test_length3_r_exactly_negative_one2  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   r8   r9   r:   z3`x` and `y` must have the same length along `axis`.r   r;   "`x` and `y` must be broadcastable.r   r8   (`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...r9   
asymptoticmethodexact)r   r   r   rl   r   r  )rt   rw   rx   messager   s        r~   test_input_validation"TestPearsonr.test_input_validationA  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r_   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  r8   d   )r8     sizerngr8   rvsi  r  re   )r  r  rZ   r  rZ   rH  rtol{Gz?MbP?r  rJ  r  )r   randomdefault_rngnormalrl   PermutationMethodMonteCarloMethodr   r   rC  rA  r   )rt   r  r  r  r  rw   rx   methodsr  r   r   res2s               r~   test_resampling_pvalue#TestPearsonr.test_resampling_pvaluec  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  re   r  l   |#(AkPrandom_stater  gQ?rI  r  )	r   r  r  r  rl   r   BootstrapMethodr  r   )
rt   r  r  rw   rx   r   r  res_ciref_cires_ci2s
             r~   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   rZ   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?   r_   r8   r  rY   r   )r   r  r  r  rl   r   r  r   rangeshaper   rC  rA  r  r  )rt   rZ   r  r  rw   rx   r   r  ires_ici_is              r~   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  rY   )r   r  r  r  rl   r   r  ravelr   rC  rA  )	rt   r  r  rw   rx   r   r  r   ci_refs	            r~   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   rB   rY   z2`x` and `y` must have the same length along `axis`r8   r   r   r  r  r9   r;   z:`method` must be `None` if arguments are not NumPy arrays.r_   r  )	onesr   r   r   rl   r   r&   r   r  )rt   ru   rw   rx   r  s        r~   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r:   r;   r   r   .r8   r   .rd  re  rY   rN   r   )g     ?g      @r   r   r   r   z!An input array is nearly constantr   r:   re   )r   re   re   r   )r   r  r  rj   r$   rl   rg  r   r  rs   r   r5   rC  rA  r  r  allisfiniterp  r  r4   )rt   ru   r  x0y0rw   rx   r  r   r  nansr  s               r~   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)r9   r_   r_   r   rY   re   )r   r  r  rl   r   r   rC  rt   ru   r  rw   rx   r   r   s          r~   test_different_dimensionality*TestPearsonr.test_different_dimensionality  sf     ii##$56JJwJJrNnnQ*nnQ+S]]CMM2r   r   r   Nc                    [         R                  R                  S5      nUR                  SS9u  pV[        R
                  " UR                  U5      UR                  U5      X#S9n[        R
                  " XVX#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 )Ni8)r8   r_   r`   r  rZ   r  )r   r  r  r  rl   r   rj   r4   rC  rA  r  r  r  )rt   ru   rZ   r  r  rw   rx   r   r   r  r  s              r~   test_array_apiTestPearsonr.test_array_api   s     ii##J/zz{z+nnRZZ]BJJqM"&AnnQFrzz#--'@A

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

BJJvzz$:;RZZ%<=r   r   N)$r   r   r   r   rE  rQ  rU  r\  rj  r   r   r   rr  rw  rz  r~  r   r  r  r  r  r  r  r  	fail_slowxfail_on_32bitr  slowr  r  r  r  r  r  r  r   r   r   r~   r=  r=    s   8PP/	3 [[Wy)&<=
! >
!MOL [[ VW[[ WX# Y X# [[ VW[[ WX# Y X# [[ LM
3 N
3& [[CHI4I4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?r:   significantr  r8   r  r;   g,Ԛ?r=   r>   g2c?r<   r_   gY
A?      g_?r      gO^M?r   gօa?r9   r   ggE?g$I$I?)rl   fisher_exactr
   )rt   r  r   s      r~   r\  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  r8   r  r;   )gAn&	?g}K
T?r=   r>   )g	7?g?r   r_   )g!@j)A?r  r  )gU!a?gKY?r   r  )g7X?g~ltP?)gFu|?r   r   )r   gQN^?r:   gaa?)r   r   gaa?r9   r`   T)decimalverbose)r   infrl   r  rj   testingr   )rt   tablisttableres_rr   s        r~   test_preciseTestFisherExact.test_precise:  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 )Nr<   %   l      r   gmt?   r   f   g,:^   0   i  i\B  gNQ8rl   r  r   rt   rw   r   s      r~   test_gh4130TestFisherExact.test_gh4130R  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rI  r2  r3  s      r~   test_gh9231TestFisherExact.test_gh9231h  s8     w'7!34  #A/r   c                     / SQn[        U/ SQ5       H.  u  p#[        R                  " SS/SU//5      S   n[        XBSS9  M0     [        R                  " S	S
/SS//5      S   n[        USSS9  g )N)g?=gNuP=gs=)K   L   M   i(E  i  i)  r   r:   r  iPF  i8 r  i_ g^K=?)ziprl   r  r
   )rt   pvalsr  numr   s        r~   test_large_numbers"TestFisherExact.test_large_numberso  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   r<   )r   r   r   rl   r  r   r   rt   r  s     r~   test_raisesTestFisherExact.test_raisesz  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   r;   r_   r   )rl   r  r   r   rs   )rt   tablesr&  	oddsratior  s        r~   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 )#Nr8   r=   r>   r-  i,     r\   r<   i     i   i  r   r9   r   r:   gI[?gq}!?r   g2\&gQp6g:O_?g a?皙?ffffff??333333?UUUUUU?rZ  r  r  r  r  )rJ  r  )r=  appendrl   r  r   )rt   rG  r>  r&  r  r   s         r~   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   r8   r?   i")rl   r  )rt   oddsrA  s      r~   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   rl   r  r   rC  rA  )rt   r  r&  r   s       r~   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 r8   r=   r>   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   r9   r8   r9   )r   r  r  rj   r   r   r   rl   r  r  r  r  normr  zerosr$  r   )rt   r  r&  r  r  s        r~   $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r_   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_  r8   r=   r>   r   rY   r   r  r  g{Gzd?rI  )r   r  r  rj   rl   r  rA  random_tablesumpmfr  r   r   rC  r  )rt   r  r&  r   
ref_pvalueref_statr  r   s           r~   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   r8   r8   r   r   r   r   )r8   r   r   r8   r9   r   r   )r   r   r   r   r8   r=   r9   )r   r   r8   r   r   r   r   )r   r   r   r   r   r   r   gk$?l   |Kr  r  gMb@?rI  i )r  n_resamples)
r   rj   r  r  rl   r  r  r   rA  r  )rt   r&  rk  r  r  r   s         r~   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   r9   r:   r  +=rI  )
r   r  r  rl   r  r  rj   r  r   rA  )
rt   r  r  rO  r[  cdr&  r   r   s
             r~   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   r;  r\  r(  r4  r7  r   r   r  r@  rD  rI  rT  rX  r   r\  re  r  rm  rq  xslowrw  r   r   r   r~   r  r    s   .6907,0 [[8 8-, :DC
 [[],LM7 N7
N> [[2[[.  ." [[2[[;  ;: [[L Lr   r  c                   2   \ 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S/5      S 5       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  rt   s    r~   setup_methodTestCorrSpearmanr.setup_method!  s    99((3r   c                     [         R                  " SS5      n[        [        R                  " U5      R                  5       5        g )Nr   r   )rl   	spearmanrr   r   isnanr  )rt   rx   s     r~   test_scalarTestCorrSpearmanr.test_scalar$  s)    OOB#!"r   c                     [        [        [        R                  / SQSS/5        [        [        [        R                  / SQS5        g )Nr   r8   r   r>   r?   )r   r   rl   r  r~  s    r~   test_uneven_lengths%TestCorrSpearmanr.test_uneven_lengths(  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r:   r9   r:   r8   r;   r;   r   rY   )
r  standard_normalrl   r  rC  r  r   rA  r   r   rt   rw   rx   s      r~   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)r:   r9   r8   rY   r   )r  r  r   r   rl   r  r   flattenrt   rw   s     r~   test_ndim_too_high$TestCorrSpearmanr.test_ndim_too_high6  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   rs   r	   rl   r  r   r   r  s     r~   test_nan_policy!TestCorrSpearmanr.test_nan_policy?  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 r;   r_   r<   r   rY   r   r   r   rt  rI  )r   r  r  rs   deleterl   r  r   )	rt   r  rw   krx   corxpxcorypys	            r~   test_nan_policy_bug_12458+TestCorrSpearmanr.test_nan_policy_bug_12458H  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 )Nr;   r_   r   r   )r9   re   r   	propagaterZ   r   )	r  r  r   rs   rl   r  r  rC  r   )	rt   mnrw   corrrA  jr  r   s	            r~   test_nan_policy_bug_12411+TestCorrSpearmanr.test_nan_policy_bug_12411U  s    HH$$aV,&&$66%qq[Ia" 1 FK1XNXQ$a41;;XN  	 "" O "s   -C 7C7CCrZ   r   r   c           	         [         R                  " S5      n[         R                  " SS5      US S 2S4'   [         R                  " SS5      * US S 2S4'   [         R                  " [         R                  [         R                  [         R                  [         R                  /[         R                  [         R                  [         R                  [         R                  /[         R                  [         R                  SS/[         R                  [         R                  SS//5      nUS:X  a  UR
                  n[        R                  " [        R                  R                  5         [        R                  " X!S	9nS S S 5        [        WR                  U5        [        UR                  SU-  S
S9  g ! , (       d  f       N== f)N)r_   r:   r   r_   r8   r9   r   rT  r   rY   gJz5rI  )r   rd  r   r   rs   r   r   warnsrl   _warnings_errorsrg  r  r   rC  rA  )rt   rZ   rk   r  r   s        r~   test_constant_input_gh22816-TestCorrSpearmanr.test_constant_input_gh22816`  s   HHW))Ar"!Q$99Q##!Q$xx"&&"&&"&&"&&9&&"&&"&&"&&9&&"&&"c2&&"&&#r24 5 19A\\%00EEF//!/C Gt,

AdF7 GFs   &F22
G c                 d    [         R                  " [        [        5      nUS   n[        US5        g r   )rl   r  rk   r
   r   s      r~   test_sXXTestCorrSpearmanr.test_sXXq  s%    OOAa aDAc"r   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rl   r  rk   r   r
   r   s      r~   
test_sXBIGTestCorrSpearmanr.test_sXBIGv  s%    OOAc"aDAc"r   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rl   r  rk   r   r
   r   s      r~   test_sXLITTLETestCorrSpearmanr.test_sXLITTLE{  s%    OOAf%aDAc"r   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rl   r  rk   r   r
   r   s      r~   test_sXHUGETestCorrSpearmanr.test_sXHUGE  %    OOAd#aDAc"r   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rl   r  rk   r  r
   r   s      r~   test_sXTINYTestCorrSpearmanr.test_sXTINY  r  r   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rl   r  rk   r  r
   r   s      r~   test_sXROUNDTestCorrSpearmanr.test_sXROUND  s%    OOAe$aDAc"r   c                 d    [         R                  " [        [        5      nUS   n[        US5        g r   )rl   r  r   r
   r   s      r~   test_sBIGBIGTestCorrSpearmanr.test_sBIGBIG  s%    OOC$aDAc"r   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rl   r  r   r   r
   r   s      r~   test_sBIGLITTLE!TestCorrSpearmanr.test_sBIGLITTLE  s%    OOC'aDAc"r   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rl   r  r   r   r
   r   s      r~   test_sBIGHUGETestCorrSpearmanr.test_sBIGHUGE  %    OOC%aDAc"r   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rl   r  r   r  r
   r   s      r~   test_sBIGTINYTestCorrSpearmanr.test_sBIGTINY  r  r   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rl   r  r   r  r
   r   s      r~   test_sBIGROUND TestCorrSpearmanr.test_sBIGROUND  s%    OOC&aDAc"r   c                 d    [         R                  " [        [        5      nUS   n[        US5        g r   )rl   r  r   r
   r   s      r~   test_sLITTLELITTLE$TestCorrSpearmanr.test_sLITTLELITTLE  s%    OOF6*aDAc"r   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rl   r  r   r   r
   r   s      r~   test_sLITTLEHUGE"TestCorrSpearmanr.test_sLITTLEHUGE  %    OOF4(aDAc"r   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rl   r  r   r  r
   r   s      r~   test_sLITTLETINY"TestCorrSpearmanr.test_sLITTLETINY  r  r   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rl   r  r   r  r
   r   s      r~   test_sLITTLEROUND#TestCorrSpearmanr.test_sLITTLEROUND  s%    OOF5)aDAc"r   c                 d    [         R                  " [        [        5      nUS   n[        US5        g r   )rl   r  r   r
   r   s      r~   test_sHUGEHUGE TestCorrSpearmanr.test_sHUGEHUGE  %    OOD&aDAc"r   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rl   r  r   r  r
   r   s      r~   test_sHUGETINY TestCorrSpearmanr.test_sHUGETINY  r  r   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rl   r  r   r  r
   r   s      r~   test_sHUGEROUND!TestCorrSpearmanr.test_sHUGEROUND  %    OOD'aDAc"r   c                 d    [         R                  " [        [        5      nUS   n[        US5        g r   )rl   r  r  r
   r   s      r~   test_sTINYTINY TestCorrSpearmanr.test_sTINYTINY  r  r   c                 d    [         R                  " [        [        5      nUS   n[	        US5        g r   )rl   r  r  r  r
   r   s      r~   test_sTINYROUND!TestCorrSpearmanr.test_sTINYROUND  r  r   c                 d    [         R                  " [        [        5      nUS   n[        US5        g r   )rl   r  r  r
   r   s      r~   test_sROUNDROUND"TestCorrSpearmanr.test_sROUNDROUND  s%    OOE%(aDAc"r   c                     [         R                  " [        [        5      nSn[        X5        [	        UR
                  UR                  5        g )Nr?  )rl   r  rk   r   r   r@  rC  )rt   r   rD  s      r~    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   r8   r9   r:   r;   r<   )r   r8   r9   r:   r<   r;   )rl   r  r   rj   r   r   rt   x1x2res1r  s        r~   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   r9   r:   r;   r<   r8   r   )r   rs   rl   r  rj   r   r   )rt   r   r  r  r  r  s         r~   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 )Nr<   )r   r   r8   r9   r;   r:   )r   re   3+?)re   r   3+)r  r  r   r9   r9   rN   g+Hs]s?r8   r   )r   r   r   rj   r   rl   r  rd  floatr   rC  rA  )rt   r  r  x3rw   actualexpected_correxpected_pvalues           r~   
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   rR   ffffff@r   ffffff"@ffffff@g333333@皙@)rA   r   ffffff@ffffff@r   r  ffffff@r   r  r   r   r   r   r8   )gacJC?g%ln?g_0nYt!޿ư>r  )r   r   rs   r   r   rl   r  rC  )rt   rw   r  r   s       r~   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 rO  rA   r   r   )gonj?)Wn%?r  )r   r  RandomStaterandr   rl   r  rC  rs   astypeint32r   )rt   r  r  rw   r  rO  r[  r  r  res3expecteds              r~   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   r;  r  r  r  r  r  r  r  r  r   r   r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r"  r   r   r   r~   r{  r{    s    4#A=KN,	# [[VaV,8 -8 #
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
5$(8 G6r   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\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   r8   r9   r:   r;   r;   r<   r=   r>   r=   gh
C?gR?r   r   )rl   r  r
   rt   r  r  r!  r   s        r~   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   rl   r  r   rs   r~  s    r~   test_empty_arrays$TestCorrSpearmanr2.test_empty_arrays4  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   rQ  )gCzYW?ge*=r   )r   r  r  r   r  dotlinalgcholeskyrl   r  r
   )rt   r  rw   r  r!  r   s         r~   test_normal_draws$TestCorrSpearmanr2.test_normal_draws7  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   r8   r   r   )r
   rl   r  r~  s    r~   test_corr_1TestCorrSpearmanr2.test_corr_1C  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   rs   r	   rl   r  r   r   r   r  s     r~   test_nan_policies$TestCorrSpearmanr2.test_nan_policiesF  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   rl   r  r  s      r~   test_unequal_lengths'TestCorrSpearmanr2.test_unequal_lengthsO  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 )Nr   r8   r9   r:   r>   r=   r<   r   r   r9   )r   rs   rl   r  r   r  s        r~   test_omit_paired_value)TestCorrSpearmanr2.test_omit_paired_valueT  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  r_   i  i  r   r   r   gV-?)listr  rS  r   rs   r   rl   r  r  s      r~   #test_gh_issue_6061_windows_overflow6TestCorrSpearmanr2.test_gh_issue_6061_windows_overflow[  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)Nrd  r   r8   r8   r8   r8   r   r8   )r   r  rl   rg  r  r   r   rs   )rt   warn_msgr   ri  s       r~   	test_tie0TestCorrSpearmanr2.test_tie0h  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 )Nr  )r   r   r   r   )r   rC   rC   r   )rl   r  r   r   )rt   rw   rx   xryrsrprs          r~   	test_tie1TestCorrSpearmanr2.test_tie1v  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   r8   rC   r8   )r   r9   rC   r:   r   r8   rC   r9   r:   r   r   )r   rs   rl   r  r   )rt   r  ry   r  rz   sr1sr2s          r~   	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   rH  rd  r   r   rY   	r   r   r   r  rl   rg  r  r   rs   )rt   z1z2z3rS  r   ri  s          r~   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?rd  r   rd  )rt   rw   rx   rS  r   ri  s         r~   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   rk  r8   rY   )r   r   r   r   rl   r  r  s      r~   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   r8   r  `alternative` must be 'less'...r   	ekki-ekki)rl   r  r
   r   r   r   r*  s        r~   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  rZ  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   rs  )	r   rs   r	   rl   r  r   r   r   r   )	rt   r  r  r  x1nanx2nan
res_actualres_expectedr  s	            r~   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   r;  r+  r/  r:  r>  rA  rE  rI  rN  rT  r[  r`  rh  rl  ro  rt  r   r   r   r|  r   r   r   r~   r%  r%  '  s|    71@
1KN9
!P$$&$ 	$A=. [[],LM5 N5r   r%  c                      \ rS rSr\R
                  R                  S/ SQ/ SQSS4/ SQ/ SQSS4/ S	Q/ S
QSS4/ SQ/ SQSS4/ SQ/ SQSS4/ SQ/ SQSS4/ SQ/ SQSS4/ SQ/ SQSS4/ SQ/ SQSS4/ SQ/ SQSS4/
5      \R
                  R                  SSS /5      S! 5       5       rS" rS# r	\R
                  R                  SSS /5      S$ 5       r
\R
                  R                  S%/ S&Q/ S&Q4/ S'Q/ S&Q4/ S&Q/ S'Q4/5      \R
                  R                  SSS /5      S( 5       5       r\R
                  R                  S)/ S*Q5      S+ 5       rS, rS- r\R
                  R                  S.S/9S0 5       rS1 rS2rg3)4TestKendallTaui  zx, y, statistic, pvalue)r;   r8   r   r9   r<   r:   r=   r>   )r;   r8   r<   r9   r   r>   r=   r:   r   r   )	r   r;   r8   r   r9   r<   r:   r=   r>   )	r;   r8   r   r<   r9   r   r>   r=   r:   )r;   r8   r   r9   r<   r:   r=   )r;   r8   r<   r9   r   r=   r:   gJ$I¿gmK?)r8   r   r9   r<   r:   r=   r>   )r8   r<   r9   r   r>   r=   r:   gJkaa?)
r   r   r8   r9   r:   r;   r<   r=   r>   r?   gxO~>)
r   r8   r   r9   r:   r;   r<   r=   r>   r?   g?>?gaV>)
r   r8   r   r9   r:   r<   r;   r=   r>   r?   g}'}'?go&5>)
r?   r>   r=   r<   r;   r:   r9   r8   r   r   rT  )
r?   r=   r>   r<   r;   r:   r9   r8   r   r   g?>)
r?   r=   r>   r<   r;   r9   r:   r8   r   r   g}'}'variantr[  ru  c                     [         R                  " UR                  U5      UR                  U5      US9n[        US   UR                  U5      5        [        US   UR                  U5      5        g )Nr  r   r   )rl   
kendalltaurj   r4   )rt   rw   rx   rC  rA  r  ru   r   s           r~   test_kendalltau_no_ties&TestKendallTau.test_kendalltau_no_ties  sV    . rzz!}bjjmWMA

9 56A

6 23r   c                    UR                  / SQ5      nUR                  / SQ5      nSn[        [        R                  " X#SS9S   UR                  U5      5        Sn[        [        R                  " X#SS9S   UR                  U5      5        UR                  / S	Q5      nUR                  / S
Q5      nSn[        R                  " XV5      n[	        US   UR                  US   5      5        [	        US   UR                  US   5      5        UR                  / SQ5      n[        [        R                  " X"SS9S   UR                  S5      5        [        [        R                  " X"SS9S   UR                  S5      5        g )N
r   r8   r8   r:   r:   r<   r<   r>   r?   r?   )
r   r8   r:   r:   r:   r:   r>   r>   r>   r_   gok|?r[  r  r   gffffff?ru  ra   r8   r   ra   r8   r   r:   r=   r   r   )g}+޿g`=i?r   r=  r   g#q?)rj   r4   rl   r  r
   )rt   ru   rw   rx   r!  r  r  r   s           r~   test_kendalltau_ties#TestKendallTau.test_kendalltau_ties  s9    JJ56JJ67((s;A>

8@TU((s;A>

8@TU
 ZZ)*ZZ(>r&CFBJJx{$;<CFBJJx{$;< JJy!((s;A>

3P((s;A>

:@VWr   c                    UR                  / SQ5      nUR                  / SQ5      nSn[        R                  " [        US9   [        R
                  " X#SS9  S S S 5        Sn[        R                  " [        US9   [        R
                  " X#SS9  S S S 5        S	n[        R                  " [        US9   [        R
                  " X#S
S9  S S S 5        [        [        SUS9   [        R
                  " UR                  / 5      UR                  / 5      5      nS S S 5        [        WR                  UR                  UR                  5      5        [        UR                  UR                  UR                  5      5        [        R                  " [        SS9   [        R
                  " UR                  S/5      UR                  S/5      5      u  pgS S S 5        [        WUR                  [        R                  5      5        [        WUR                  [        R                  5      5        [        R                  " S5      n[        R                  " S5      nSn[        R                  " [        US9   [        R
                  " X#5        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 = f)Nr  
r   r8   r8   r:   r:   r:   r>   r>   r>   r_   z(Ties found; exact method cannot be used.r   r  r  z$Unknown `method` 'banana' specified.bananaz"Unknown `variant` 'rms' specified.rmsr  One or more sample...re  r   r   rD  /Array shapes are incompatible for broadcasting.)rj   r   r   r   rl   r  r$   r   r5   rC  rs   rA  r  r   r   )rt   ru   rw   rx   r  r   taup_values           r~    test_input_validation_edge_cases/TestKendallTau.test_input_validation_edge_cases  s   JJ56JJ67 =]]:W5Q'2 6 9]]:W5Q(3 6 7]]:W5Q51 6 +3JrR""2::b>2::b>BC Srzz"&&'9:

BJJrvv$67 \\,4KL ++BJJsORZZ_MLC MRZZ/0BFF!34 IIcNIIcNC]]:W5Q" 65; 65
 65
 65 SR ML 65sH   J;J#4J5!6K:K1K+
J #
J25
K
K
K(+
K9c                     UR                  / SQ5      nUR                  / SQ5      nSn[        R                  " X4US9n[        XeUS9  [	        UR
                  UR                  5        g )Nr  r  r?  r  rB  )rj   rl   r  r   r5   r@  rC  )rt   r  ru   r  r  rD  r   s          r~   test_attributesTestKendallTau.test_attributesE  sS    ZZ67ZZ78.
rw7C37r   x, yrQ  rR  c                 ,   UR                  U5      UR                  U5      p![        R                  " XUS9n[        UR                  UR                  UR
                  5      5        [        UR                  UR                  UR
                  5      5        g )Nr  )rj   rl   r  r5   rC  rs   rA  )rt   rw   rx   r  ru   r   s         r~   test_degenerate_input$TestKendallTau.test_degenerate_inputO  sc     zz!}bjjm1qW5rzz"&&'9:

BJJrvv$67r   rO   Nrm  r   c           	      T   Uc  [        U5      O
[        X!5      n[        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UR                  US   US9nUR                  US   US9nS	n[        R                  " Xg5      n	[        U	S   UR                  US   US95        [        U	S   UR                  US   US95        g )
Nr2  r   r3  r4  r   rQ  r   rN   )g\zf?g^n)=)r(   ro  r   r  r  r   r  r7  r8  r9  rj   rl   r  r4   )
rt   rO   ru   r  rw   r  r   r  r!  r   s
             r~   test_large_arrays TestKendallTau.test_large_arrays\  s    ). $72;Mii##D)HHcjjQacj:jjQacj:< =c
c
FF299%%d+Q/ZZ!EZ*ZZ!EZ*@r&A

8A;e
 DEA

8A;e
 DEr   c                    [         R                  " S5      n[         R                  US'   UR                  UR	                  5       5      n[
        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      SS9  [
        R                  " X"SS	S
9n[        UR                  UR                  S5      5        [        UR                  UR                  S5      SS9  Sn[        R                  " [        US9   [
        R                  " X"SS9  S S S 5        Sn[        R                  " [        US9   [
        R                  " X"SS9  S S S 5        g ! , (       d  f       NH= f! , (       d  f       g = f)Nr   r?   r   r   r   g/>r  r  r  )r   r  g&?r   r   r   r   r   )r   r   rs   rj   r   rl   r  r5   rC  rA  r4   r   r   r   )rt   ru   rw   r   r  s        r~   r  TestKendallTau.test_nan_policym  sb   IIcNvv!JJqxxz"q$rzz"&&'9:

BJJrvv$67q7rzz#7

BJJ|$<5Iq|Lrzz#7

BJJ/E$FUS1]]:W5Qg6 6 1]]:W5Qh7 65	 65 65s   G-G>-
G;>
Hc                    UR                  / SQ5      nUR                  [        R                  SSS/5      n[        R                  " X#SS9n[        R                  " USS  USS  5      n[        UR                  UR                  SS9  g )	Nr  333333@333333@r   r   r   rH  rI  )rj   r   rs   rl   r  r4   rC  )rt   ru   rw   rx   r1r2s         r~   "test_kendalltau_nan_2nd_arg_gh61341TestKendallTau.test_kendalltau_nan_2nd_arg_gh6134  sp    JJ'(JJS#./av6aeQqrU+bll?r   zfails in parallelr   c                 p   SS K nUR                  S5        / SQnSnUR                  UR                  X4S95      nUR                  UR                  X4S95      n[        R
                  " XV5      n[        UR                  UR                  S5      5        [        UR                  UR                  S5      SS	9  g )
Nr   i_ r   r8   r9   r:   r;   r<   r=   i@ r  g*8_2\S?gd`TR?gMb`?rI  )	r  seedrj   choicesrl   r  r4   rC  rA  )rt   ru   r  classes	n_samplesrw   rx   r   s           r~    test_kendalltau_gh18139_overflow/TestKendallTau.test_kendalltau_gh18139_overflow  s    
 	G'	JJv~~g~;<JJv~~g~;<q$rzz2G'HI 	

BJJv$6TBr   c                    Sn[         R                  " US-   5      R                  [        5      n[         R                  " US-   5      R                  [        5      n[         R                  US'   UR                  UR                  5       5      UR                  UR                  5       5      pC[        R                  " X4SSS9u  pV[        XaR                  S5      5        g )N   r   re   r  r   )r  r   r   )
r   r   r  r  rs   rj   r   rl   r  r5   )rt   ru   r  rw   rx   _r  s          r~   !test_kendall_tau_large_nan_policy0TestKendallTau.test_kendall_tau_large_nan_policy  s    IIa!e##E*IIa!e##E*"zz!((*%rzz!((*'=1""1FKjjo.r   r   N)r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  thread_unsafer  r  r   r   r   r~   r  r    s   [[6 
"#;S#F	$&A3L	 5~}U	 5~sK	')G	 	"	')G	/	1	')G	/	1	')G	!	#	')G	0	2	')G	0	2%9 * [[Yc
34 4+,4
X4$#L [[Yc
38 48 [[V	I	I	I& 
 [[Yc
38 48 [[W&BCF DF 84@ [[&9:C ;C"/r   r  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                    / SQn/ SQn[         R                  " UR                  U5      UR                  U5      SS9nUS   S:  d   e[         R                  " UR                  U5      UR                  U5      SS9n[        US   UR                  US   5      5        [	        US   UR                  SUS   S-  -
  5      5        [         R                  " UR                  U5      UR                  U5      S	S9n[        US   UR                  US   5      5        [	        US   UR                  US   S-  5      5        UR                  5         [         R                  " UR                  U5      UR                  U5      SS9nUS   S:  d   e[         R                  " UR                  U5      UR                  U5      S	S9n[        US   UR                  US   5      5        [	        US   UR                  SUS   S-  -
  5      5        [         R                  " UR                  U5      UR                  U5      SS9n[        US   UR                  US   5      5        [	        US   UR                  US   S-  5      5        [        R                  " [        S
S9   [         R                  " UR                  U5      UR                  U5      SS9  S S S 5        g ! , (       d  f       g = f)Nr'  r(  r  r  r   r  r   r8   r  rr  r   rs  )	rl   r  rj   r5   r4   reverser   r   r   )rt   ru   r  r  r!  r   s         r~   &test_kendalltau_alternative_asymptotic@TestKendallTauAlternative.test_kendalltau_alternative_asymptotic  sS     ##BJJrNBJJrN0;={Q rzz"~rzz"~6RA

8A; 78A

1a+@ AB rzz"~rzz"~9UA

8A; 78A

8A;? ;< 	

 ##BJJrNBJJrN0;={Q rzz"~rzz"~9UA

8A; 78A

1a+@ AB rzz"~rzz"~6RA

8A; 78A

8A;? ;<]]:-NORZZ^RZZ^U POOs   5K
K&)r  r  r  )r   r   rA   )r   RUUUU?ZUUUU?)g~?r  r  )?r   r  )ˮ[?r   r  )g?gSǌ?gSǌ?)g:
?g3
?g<t'.?)gN  A?gss?gYss?c                 $   UR                  U5      UR                  U5      p!U(       a  U* nUS-  n[        R                  " XSUS9n[        UR                  UR                  U5      5        [        UR
                  UR                  U5      5        g )Nre   r  r`  )rj   rl   r  r4   rC  rA  )	rt   rw   rx   r  revstat_expected
p_expectedru   r   s	            r~   
exact_test$TestKendallTauAlternative.exact_test  so    zz!}bjjm1ARMqGMrzz-'@A

BJJz$:;r   Fr9   Tzalternative, p_expected, revc                     S/S/pe[         R                  n[        R                  " [        SS9   U R                  XVXXrUS9  S S S 5        g ! , (       d  f       g = f)Nr   r8   r  r   rB  )r   rs   r   r  r   r  rt   r  r  r  ru   rw   rx   r  s           r~   test_against_R_n1+TestKendallTauAlternative.test_against_R_n1  sH    sQC1\\,4KLOOA+MRTOU MLLs   A
Ac           
      :    SS/SS/peSnU R                  XVXXrUS9  g )Nr   r8   r9   r:   g?rB  r  r  s           r~   test_against_R_n2+TestKendallTauAlternative.test_against_R_n2  s*    1v1v1*kbQr   c           
      :    / SQ/ SQpeSnU R                  XVXXrUS9  g )Nr  r   rB  r  r  s           r~   test_against_R_c0+TestKendallTauAlternative.test_against_R_c0  s"    )1kbQr   c           
      :    / SQ/ SQpeSnU R                  XVXXrUS9  g )NrH  )r   r8   r:   r9   gVUUUUU?rB  r  r  s           r~   test_against_R_c1+TestKendallTauAlternative.test_against_R_c1  s"    \1*kbQr   c           
      :    / SQ/ SQpeSnU R                  XVXXrUS9  g )Nr'  )r   r;   r:   r8   r9   r   rB  r  r  s           r~   test_against_R_no_correlation7TestKendallTauAlternative.test_against_R_no_correlation"  s"    1kbQr   c           
      :    / SQ/ SQpeSnU R                  XVXXrUS9  g )Nr   r8   r9   r:   r;   r<   r=   r>   )r>   r<   r   r9   r8   r;   r:   r=   r   rB  r  r  s           r~   test_against_R_no_correlationb8TestKendallTauAlternative.test_against_R_no_correlationb,  s#    ')A1kbQr   c           
      <    / SQn/ SQnSnU R                  XVXXrUS9  g )N)	g333333F@g33333F@g33333D@gfffffJ@gYF@gF@gYI@gF@gN@)	g@@rC   rR   @r   g@ffffff@r  gqq?rB  r  r  s           r~   test_against_R_lt_171/TestKendallTauAlternative.test_against_R_lt_1715  s(     C9*kbQr   c           
          [         R                  R                  S5      nUR                  S5      R	                  5       nUR                  S5      R	                  5       nSnU R                  XgXXUS9  g )Nr   r  gUm*,rB  r   r  r  r  r   r  	rt   r  r  r  ru   r  rw   rx   r  s	            r~   test_against_R_lt_171b0TestKendallTauAlternative.test_against_R_lt_171bB  s[    ii##A&HHSM  "HHSM  ",kbQr   c           
          [         R                  R                  S5      nUR                  S5      R	                  5       nUR                  S5      R	                  5       nSnU R                  XgXXUS9  g )Nr      gH4?rB  r  r  s	            r~   test_against_R_lt_171c0TestKendallTauAlternative.test_against_R_lt_171cN  s[    ii##A&HHSM  "HHSM  "*kbQr   zalternative, revc                    [         R                  R                  S5      nUR                  UR	                  S5      R                  5       5      nUR                  UR	                  S5      R                  5       5      n[        R                  " XVSUS9n[        R                  " XVS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  rj   r  r   rl   r  r5   r4   )	rt   r  r  ru   r  rw   rx   res0r  s	            r~   test_gt_171%TestKendallTauAlternative.test_gt_171Y  s    ii##A&JJsxx}++-.JJsxx}++-.W+N\{SQa)Qat4r   r  )r  r  r  rZ  c           	         / SQn/ SQnU[         R                  /-   nU[         R                  /-   nUR                  U5      UR                  U5      pTUR                  U5      UR                  U5      pv[        R                  " XgXS9n[        UR                  UR                  UR                  5      5        [        UR                  UR                  UR                  5      5        [        R                  " XgSXS9n[        R                  " XEUUS9n	[        UR                  U	R                  5        [        UR                  U	R                  5        Sn
[        R                  " [        U
S9   [        R                  " XgSXS9  S S S 5        S	n
[        R                  " [        U
S9   [        R                  " XgS
X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  r  r   r   r   r   rs  )r   rs   rj   rl   r  r5   rC  rA  r   r   r   )rt   r  r  ru   r  r  rx  ry  rz  r{  r  s              r~   r  )TestKendallTauAlternative.test_nan_policyc  s    bffXbffXBBBzz%("**U*;u %%e-3N

,,bjj.@A
))2::bff+=> %%ev-3N
''v4?A
,,l.D.DE
))<+>+>? 2]]:W5Ug$*E 6
 1]]:W5Uk$*E 65 65 65s   -G'G
G
G&r   N).r   r   r   r   r  alternativesr   rs   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  rM  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   r~   r  r    s   )Vl 4LFFBFFBFF#DD2D>D>?DJCKGK< c,ugai89L(4.4&(CDEI [[;YGV HV c,ugai89L(4.4&(CDEI [[;YGR HR
 c,ugai89L(4.4&(CDEI [[;YGR HR
 c,ugai89L(4.4&(CDEI [[;YGR HR
 3|-=wqyIJSx8H/I"&+ ,,N [[;^LR MR
 #l,=wqyIJCh7H.I!%q* ++M [[;]KR LR
 #lJ	BCChz.BTF1HMNOM [[;]KR LR 3|[5'!)DESx/D"&+ ,,N [[;^LR MR 3|[5'!)DESx/D"&+ ,,N [[;^LR MR L5'!)45L4&(345K [[/=5 >5 [[X'>?[[],LM!E N @!Er   r  c                   &    \ rS rSrS rS rS rSrg)TestWeightedTaui  c                 Z   / SQn/ SQn[         R                  " X5      u  p4[        US5        [        [        R
                  U5        [         R                  " XSS9u  p4[        US5        [        [        R
                  U5        [         R                  " XS S9u  p4[        US	5        [        [        R
                  U5        [         R                  " X5      nS
n[        XV5        [        UR                  UR                  5        [         R                  " XS S9u  p4[        US5        [        [        R
                  U5        [         R                  " X!S S9u  p4[        US5        [        [        R
                  U5        [         R                  " XS SS9u  p4[        US5        [        [        R
                  U5        [         R                  " X!S SS9u  p4[        US5        [        [        R
                  U5        [         R                  " XSS9u  p4[        US5        [        [        R
                  U5        [         R                  " XSS S9u  p4[        US	5        [        [        R
                  U5        [         R                  " X!SS S9u  p4[        US	5        [        [        R
                  U5        [         R                  " [        R                  " U[        R                  S9U5      u  p4[        US5        [         R                  " [        R                  " U[        R                  S9U5      u  p4[        US5        [         R                  " [        R                  " U[        R                  S9[        R                  " U[        R                  S95      u  p4[        US5        [        R                  " [        SS9   [         R                  " / / 5      u  p4S S S 5        [        [        R
                  U5        [        [        R
                  U5        [        R                  " [        SS9   [         R                  " S/S/5      u  p4S 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  p4[        US5        SS[        R
                  SS/n[         R                  " X5      u  p4[        US5        / S QnS!S"S#S![        R
                  /n[         R                  " X5      u  p4[        US5        S$S%[        R
                  S$S%/n[         R                  " X5      u  p4[        US5        / S&Qn/ S'Qn[         R                  " X5      u  p4[        US(5        S$S%[        R
                  S$[        R
                  /n[         R                  " X5      u  p4[        US(5        [        R
                  S"S#[        R
                  [        R
                  /n[         R                  " X5      u  p4[        US(5        g ! , (       d  f       GN= f! , (       d  f       GNU= f))Nr  r  gs$F)additivegROoc                     gNr   r   rw   s    r~   <lambda>2TestWeightedTau.test_weightedtau.<locals>.<lambda>  s    r   )weigherr  r?  )rankgڿgn)r  r  g @ڿg[đ(gIکnTc                     gr  r   r  s    r~   r  r        Ar   )r  r  c                     gr  r   r  s    r~   r  r    r  r   rN   r  r   r   r   r   r   r8   r:   r=   ra   r8   )      (@r   r   r  r   r   r   r   r  r   )r  r   r   r  r   )r   r   r   r   r   gt34+)rl   weightedtaur
   r   r   rs   r   r@  rC  rj   r   r   r   r  r   r   r   )rt   rw   rx   r  r  r   rD  s          r~   test_weightedtau TestWeightedTau.test_weightedtau  s   ((.C!56RVVW%((>C!56RVVW%(({CC!56RVVW% %.
C,S__cmm4 ((D9C!45RVVW%((D9C!45RVVW%((D5IC!56RVVW%((D5IC!56RVVW%((E:C!56RVVW%((D+NC!56RVVW%((D+NC!56RVVW%((ARZZ)H!LC!56((ARXX)FJC!56((ARZZ)H)+ARZZ)HJC!56\\,4KL ,,R4LC MRVVS!RVVW%\\,4KL ,,aS1#6LC MRVVS!RVVW%j%"3"3aVYGj%"3"3aVaVYO1a ((.C!56BFFB"((.C!56'#sC(((.C!563c*((.C!56'%((.C!453bff-((.C!45VVS#rvvrvv.((.C!45K ML MLs   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   r  r   rl   r  r   rs   rC  s     r~   test_segfault_issue_9710(TestWeightedTau.test_segfault_issue_9710  sd    
 >\\,G<qcC5)qcC5)rvvh-	 =<<s   AA??
Bc           
      $   S nS n[         R                  R                  S5      n[        SS5       H  n/ n[        U5       H  nXV/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" XWXU
5      n[        R                  " XWXU
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   rL  )rw   rx   r  r  addtotconcdiscuvr  r  ws                r~   wkq:TestWeightedTau.test_weightedtau_vs_quadratic.<locals>.wkq  s%   ())C)$))!%A-s1v?;>GDG$wtw'77 )GDG,<< 414<FA414<FA4!$;14!$;!$+!$+IDTAD[QTAD[AD14KAD14KID @ K27737#33bggcg6FFFr   c                     SU S-   -  $ )Nr   r   r   r  s    r~   r  >TestWeightedTau.test_weightedtau_vs_quadratic.<locals>.weigher  s    Q<r   *   r9   r_   rN   r8   rc   )r   r  r  r  rM  shuffler   r#  intprl   r  rC  r
   )rt   r+  r  r  srO  r  r[  r  r  r$  r!  r
  s                r~   test_weightedtau_vs_quadratic-TestWeightedTau.test_weightedtau_vs_quadratic  s    	G 	  ii##B'qAA1XSU
 QAKKNKKN99SV2773D1X(C"1<H"..qTCHRRF'9 )
 D!  r   r   N)r   r   r   r   r  r  r3  r   r   r   r~   r  r    s    Y6x
.&"r   r  c                       \ rS rSrS rS rS rS rS r\	R                  R                  S/ SQ5      S	 5       r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)TestRegressioni  c                    UR                   n[        R                  " UR                  [        5      UR                  [
        5      5      n[        UR                  UR                  SUS95        [        UR                  UR                  SUS95        UR                  SUS9n[        UR                  USS9  [        UR                  USS9  g )Ng   ؃חArN   r   r   r  rI  )r   rl   
linregressrj   rk   r   r4   	interceptrvaluestderrintercept_stderr)rt   ru   rO   r  zeros        r~   test_linregressBIGX"TestRegression.test_linregressBIGX  s    

!!"**Q-CA(("**Ye**LMrzz#Uz'CD zz#Uz+t$7//DAr   c                    [         R                  " UR                  [        R	                  5       5      UR                  [        R	                  5       5      5      n[        UR                  UR                  S5      SS9  [        UR                  UR                  S5      5        [        UR                  UR                  S5      SS9  [        UR                  UR                  S5      SS9  g )Nr   rH  rI  r   r  )
rl   r8  rj   rk   r   r4   r9  r:  r;  r<  rt   ru   r  s      r~   test_regressXXTestRegression.test_regressXX*  s    
 !!"**QXXZ"8"**QXXZ:PQ(("**S/Frzz#7rzz#TB//CtLr   c                 X   [         R                  " UR                  [        R	                  5       5      UR                  [
        R	                  5       5      5      n[        UR                  UR                  S5      5        [        [         R                  SUS9   [         R                  " UR                  [        R	                  5       5      UR                  [
        R	                  5       5      5      R                  nS S S 5        [        UR                  W5        g ! , (       d  f       N%= f)Nr   zAn input array...re  )rl   r8  rj   rk   r   ZEROr4   r9  r$   rg  r   rC  r:  )rt   ru   r  
ref_rvalues       r~   test_regressZEROX TestRegression.test_regressZEROX?  s    
 !!"**QXXZ"8"**T[[]:ST(("**S/:33;NSUV

188:(>(*

4;;=(ACCL9  W 	z2 WVs   A$D
D)c                 J   UR                  SSS5      nSUR                  SSS5      -  S-   nX1R                  UR                  SSS5      5      -   n[        R                  " X#5      n[        n[        XE5      (       d   e[        UR                  UR                  S5      5        g )Nr   r  皙?r_   r  g4_Qc?)	linspacesinrl   r8  r   
isinstancer4   r;  rj   )rt   ru   rw   rx   r  lrs         r~   test_regress_simple"TestRegression.test_regress_simpleK  s    KK3$"++ac**R/r{{1b#.//!!!'&%%%%rzz2G'HIr   c                    UR                  SSS5      nSUR                  SSS5      -  S-   nX1R                  U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  rJ  r_   r  rr  r   rs  r  r  r  r   r8   r  )
rK  rL  r   r   r   rl   r8  r4   rA  r:  )rt   ru   rw   rx   r  r  r   s          r~   test_regress_alternative'TestRegression.test_regress_alternativeV  s   KK3$"++ac**R/r{{1b#.//]]:-NOQ{; P +> &9Q$++/%:; )<T[[1_5{{dkk8T[[88888 POs   *E
ErO   r  c           
      d   Uc  UO
[        X!5      nUR                  / SQUS9nUR                  / SQUS9n[        R                  " X4SS9n[	        UR
                  UR                  SUS95        [	        UR                  UR                  SUS95        [	        UR                  UR                  UR                  SUS95      5        [	        UR                  UR                  S	US95        [	        UR                  UR                  S
US95        [	        UR                  UR                  SUS95        g )N)
                              rN   )
?   Q   8   [   /   9   r;  H   >   r1  r  r  gؗh?gJK@:Cgag?g->g5ՒO?g]؊E @)ro  rj   rl   r8  r4   sloper9  r:  rL  rA  r;  r<  )rt   rO   ru   rw   rx   r   s         r~   test_regress_against_R%TestRegression.test_regress_against_Rk  s     GB,>JJIQVJWJJ?uJMq=		2::oU:#KLrzz2C5z'QR

BGGBJJ}EJ,R$ST

BJJ/@J$NO

BJJeJ$LM,,bjjPUj.VWr   c                   ^ [         R                  " S5      n[         R                  " SS5      nUSS/==   S-  ss'   USS/==   S-  ss'   [        R                  " TR	                  U5      TR	                  U5      5      nU4S j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`   r;   r   r   r   re   c                 8   > [        U TR                  U5      SS9$ )Nrt  rI  )r4   rj   )rw   rx   ru   s     r~   	assert_ae1TestRegression.test_linregress.<locals>.assert_ae  s    "1bjjm%@@r   r   rR   gePUn?g.bt>gڽE?gʺL7?)r   r   rl   r8  rj   rg  r9  r:  rA  r;  r<  )rt   ru   rw   rx   r  rm  s    `    r~   test_linregressTestRegression.test_linregress  s    IIbMIIa	A+!	A+!!!"**Q-A?	A&,,$&""C(&--!12&--1&--!56&))+>?r   c                    Su  p#UR                   nUR                  USU-  X4S9nUR                  SU-  X#US9n[        R                  " XV5      nUR                  S:  d   e[        UR                  UR                  SUS95        UR                  UR                  5      (       a   eUR                  UR                  5      (       a   eg )N)gJr 11順 r8   rN   re   rT  )
r   rK  rl   r8  r:  r4   rj   r  r;  r<  )rt   ru   rO  r  rO   rw   rx   r  s           r~    test_regress_simple_negative_cor/TestRegression.test_regress_simple_negative_cor  s     

KK1q5!K1KKAq5K1!!!' }}"""rzz#Uz'CD 88FMM****88F3344444r   c                 :   UR                  SSS5      nSUR                  SSS5      -  S-   nX1R                  UR                  SSS5      5      -   n[        R                  " X#5      n[        n[        XE5      (       d   eSn[        XFUS9  S[        U5      ;   d   eg )	Nr   r  rJ  r_   r  )rg  r9  r:  rA  r;  rB  r<  )rK  rL  rl   r8  r   rM  r   dir)rt   ru   rw   rx   r  rN  rD  s          r~   !test_linregress_result_attributes0TestRegression.test_linregress_result_attributes  s    KK3$"++ac**R/r{{1b#.//!!!' &%%%% J
F26!S[000r   c                    UR                  S5      nUR                  SS5      n[        R                  " X#5      n[        UR                  UR                  S5      5        [        UR                  UR                  S5      5        [        UR                  UR                  S5      5        UR                  UR                  5      n[        UR                  U5        [        UR                  U5        [        UR                  U5        g )Nr8   r9   r;   r   r   )r   rl   r8  r4   rg  rj   r9  r:  rs   r5   rA  r;  r<  rt   ru   rw   rx   r  NaNs         r~   test_regress_two_inputs&TestRegression.test_regress_two_inputs  s    IIaLIIaO!!!'bjjo6(("**S/:rzz#7jj s+s+//5r   c                    UR                  S5      nUR                  S5      n[        R                  " X#5      n[	        UR
                  UR                  S5      5        [	        UR                  UR                  S5      5        UR                  UR                  5      n[        UR                  U5        [        UR                  U5        [        UR                  U5        [        UR                  U5        g )Nr   r8   r   r   )r   r  rl   r8  r4   rg  rj   r9  rs   r5   r:  rA  r;  r<  rz  s         r~   'test_regress_two_inputs_horizontal_line6TestRegression.test_regress_two_inputs_horizontal_line  s    IIbMGGAJ!!!' 	bjjo6(("**S/:jj s+s+s+//5r   c                    / SQn/ SQn[         R                  " UR                  U5      UR                  U5      5      n[        UR                  UR                  S5      5        [        UR
                  UR                  S5      5        [        UR                  S-  UR                  S5      5        [        UR                  UR                  S5      SS	9  UR                  R                  UR                  :X  aK  [        UR                  UR                  S
5      5        [        UR                  UR                  S5      5        g g )N)$rJ  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^@rQ  rQ  gffffff@g1u@g@g     8@g     X@333333&@g33333]@gfffffl@g@fffff|@rA   )$rN  g,u@gfffff]@     @r  r  g     @     4@g|@33333W@gy@rQ  rN  gP@gfffff@4u@r  g%@gm@gl@g     0@gfffffƋ@gfffff]@rQ  r  gl@r  r  r  r  gffffff$@gffffff]@g̜l@g33333@g33333|@rJ  g?g!пr8   gpX?r   g#aMR/rI  gh-h*<?gg?)rl   r8  rj   r4   rg  r9  r:  rA  rO   r   r;  r<  )rt   ru   rw   rx   r  s        r~   test_nist_norrisTestRegression.test_nist_norris  s    77 !!"**Q-A?bjj1A&BC(("**5G*HIq("**5F*GHrzz#UC=="**,FMM2::6F+GHF33RZZ@P5QR -r   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                  " UR                  U5      UR                  U5      5      n[         R                  " X#S5      n[        UR                  UR                  US   5      5        [        UR                  UR                  US   5      5        g )Nr   r  rJ  r_   r  r   )
r   rK  rL  rl   r8  rj   polyfitr4   rg  r9  )rt   ru   rw   rx   r  polys         r~   test_compare_to_polyfit&TestRegression.test_compare_to_polyfit  s    KK3$"++ac**R/	RVVBKK2s+,,!!"**Q-A?zz!" 	bjja&9:(("**T!W*=>r   c                    UR                  SS/5      nUR                  SS/5      n[        R                  " X#5      nUR                  UR                  5      n[	        UR
                  U5        [	        UR                  U5        [	        UR                  U5        [        UR                  UR                  S5      5        [        UR                  UR                  S5      5        g )Nr   r   )rj   rl   r8  rs   r5   rA  r;  r<  r4   rg  r9  )rt   ru   rw   rx   r   r{  s         r~   (test_linregress_two_points_nan_inference7TestRegression.test_linregress_two_points_nan_inference  s    JJBx JJBx q$jj 

C(

C(,,c2 			2::c?3rzz#7r   c                    [        [        SUS9   [        R                  " UR	                  / 5      UR	                  / 5      5      nUR	                  UR
                  5      n[        UR                  U5        [        UR                  U5        [        UR                  U5        [        UR                  U5        [        UR                  U5        [        UR                  U5        S S S 5        g ! , (       d  f       g = f)Nr  re  )r$   r   rl   r8  rj   rs   r5   rg  r9  r:  rA  r;  r<  rt   ru   r   r{  s       r~   test_empty_inputTestRegression.test_empty_input	  s    +3JrR""2::b>2::b>BC**RVV$CCIIs+CMM3/CJJ,CJJ,CJJ,C00#6 SRRs   CC..
C<c                    [         R                  " S5      n[         R                  US'   UR                  UR	                  5       5      n[         R
                  " SS9   [        R                  " X"5      nS S S 5        [        n[        WU5      (       d   eUR                  UR                  5      n[        UR                  U5        [        UR                  U5        [        UR                  U5        [        UR                  U5        [        UR                  U5        [        UR                   U5        g ! , (       d  f       N= f)Nr   r?   r   invalid)r   r   rs   rj   r   errstaterl   r8  r   rM  r5   rg  r9  r:  rA  r;  r<  )rt   ru   rw   r  rN  r{  s         r~   test_nan_inputTestRegression.test_nan_input	  s    IIcNvv!JJqxxz"[[*%%a+F + &"%%%%jj c*((#.s+s+s+//5 +*s   D55
Ec                    [         R                  R                  S5      nUR                  S5      nUR	                  UR                  S5      R                  5       5      n[         R                  " SS9   [        R                  " X45      nS S S 5        UR	                  UR                  5      n[        WR                  U5        [        UR                  U5        [        UR                  U5        [        UR                  U5        [        UR                  U5        [        UR                   U5        g ! , (       d  f       N= f)Nl   ,w* r_   r   r  )r   r  r  rd  rj   r   r  rl   r8  rs   r5   rg  r9  r:  rA  r;  r<  )rt   ru   r  rw   rx   r   r{  s          r~   test_identical_xTestRegression.test_identical_x-	  s    ii##J/HHRLJJszz"~,,./[[*""1(C +jj 		3's+

C(

C(

C(,,c2 +*s   3D22
E r   N)r   r   r   r   r>  rB  rG  rO  rR  r   r   r   rh  ro  rs  rw  r|  r  r  r  r  r  r  r  r   r   r   r~   r6  r6    s    
B
M*
3	J9* [[W&BCX DX&@,5&1 66 S8
?8 	76&3r   r6  c                   (   \ 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      \R                  R                  S	SS/5      S
 5       5       5       5       rSr	g)HistFunctionsTesti<	  c           
         [        [        U R                  5      nUR                  S5      nSnSnUR	                  S5      nSn[
        R                  " [        US9   U" X4S5        S S S 5        [
        R                  " [        US9   U" X4S5        S S S 5        [
        R                  " [        US9   U" X4US S S2   5        S S S 5        Sn[
        R                  " [        US9   U" UR                  X1R                  5      XE5        S S S 5        [
        R                  " [        US9   U" X4XQR                  XaR                  5      5        S S S 5        [        U5      (       d/  S	n[
        R                  " [        US9   U" X4XV* 5        S S S 5        g g ! , (       d  f       GN5= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)
Nr  r_   )r   r  z,If specified, `defaultreallimits` must be...r   r  re   z8`a` and \(if specified\) `weights` must have real dtype.z#All `weights` must be non-negative.)ro  rl   histfunr   r  r   r   r   r  
complex128r%   )rt   ru   r  rO  numbinsdefaultreallimitsweightsr  s           r~   r  'HistFunctionsTest.test_input_validation=	  sd   %.IIbM#''"+@]]:W5A# 6]]:W5A	* 6]]:W5A 1$B$ 78 6 N]]:W5BIIa/L 6]]:W5A 199Wmm3TU 6 W%%;Gz9$5x@ :9 & 655555 6555
 :9sH   
F
F&2F8%#G	)#G?G+
F#&
F58
G	
G
G(+
G9rO   r  edge_pointsFTspecify_limitsspecify_weightsc           
         [         R                  R                  S5      n[        UR	                  SS5      5      nU(       a  U(       d  [
        R                  " S5        U(       aR  [        U5      (       d,  US:w  a  [        U5      (       d  US:w  a&  [        U5      (       a  [
        R                  " S5        [         R                  " UR                  S5      U5      nU(       a=  [         R                  " [         R                  " UR                  S5      5      U5      n	U	n
ORS	UR                  5       UR                  5       -
  -  US
-
  -  nUR                  5       U-
  UR                  5       U-   4n
S n	U(       aj  [         R                  " XU
SS9u  p[         R                  " XR	                  SUR                   S9R#                  5       5      n[         R$                  " X/US9nU(       a0  [         R                  " UR                  UR                   5      U5      OS n[         R                  " XU
SS9u  nn[         R                  " XU
USS9u  nnUc  ['        U5      O
[)        XQ5      n[)        [*        U R,                  5      nUc  UOUR/                  XS9nU" UR/                  XS9XyU5      nUR/                  UUS9nXR0                  :X  a  SOSnU[*        R2                  :X  a'  UR5                  U5      n[7        UR8                  UUS9  OKUc  UR                   S   OUR;                  U5      nUR/                  UU-  US9n[7        UR<                  UUS9  [7        UR>                  UR/                  US   US95        [7        UR@                  UR/                  US
   US   -
  US95        [7        URB                  UR/                  URD                  [;        UR#                  5       5      -
  5      5        g )Nl   =k r_   r  z2Limits must be specified to determine edge points.r   z<Some backends are having trouble with edge point arithmetic.r  r8   rA   r   F)binsr  densityr;   r  rN   )r  r  r  r  r@   gh㈵>r  r   )#r   r  r  intintegersr   skipr/   r'   r0   r  sortmaxmin	histogramrepeatr  r   concatr(   ro  rl   r  rj   r   cumfreqcumulative_sumr4   cumcountri  	frequencyr   binsizeextrapointsr  )rt   rO   r  r  r  ru   r  nbinsrO  rT   range_r2  r  edgesa2r  
bin_countsref_binsref_histr  r   r  ref_cumcountdenref_frequencys                            r~   test_against_reference(HistFunctionsTest.test_against_referenceW	  s    ii##J/CLLR()~KKLMF2JJ % 2x|| % 2wr{{KKVWIIcjjou-YYrwwszz!}5u=FF 1557*+uqy9Aeegk1557Q;/FF||AOHA5,,qu{{,"C"J"J"LMB		1'/A;J"))CJJqww/7PT!||AQVW
Hll1+2EC! ). $72;M%.$_'"**W*2Rbjjj0%I::he:4+uemm#,,X6LCLL,TB '!''!*RVVG_CJJx|5JAMCMM=tD

8A;e
(LMRZZhqk0IQVZ%WXAFFSARARAT=U4U)VWr   r   N)
r   r   r   r   r  r   r   r   r  r   r   r   r~   r  r  <	  s    A4 [[W&BC[[]UDM:[[-t}=[[.>2X ? > ; D2Xr   r  c                       \ rS rSrSrS rSrg)TestCumfreqi	  r  c                    UR                  / SQ5      n[        R                  " USS9u  p4pV[        X1R                  / SQ5      5        [        R                  " USSS9u  p4pVUS:X  d   eSn[        R                  " USSS9n[	        XUS	9  g )
Nr   r:   r8   r   r9   r   r:   r  )r   r   rR   r   )rB   r;   )r  r  r9   )r  r   r  r  rB  )rj   rl   r  r5   r   )	rt   ru   rw   cumfreqslowlimr  r  rD  r   s	            r~   test_cumfreqTestCumfreq.test_cumfreq	  s    JJ)*16q!1L.'**-=">?16qH26.'a J
mmAqHEC3r   r   N)r   r   r   r   r  r  r   r   r   r~   r  r  	  s    G4r   r  c                   $    \ rS rSrSrS rS rSrg)TestRelfreqi	  relfreqc                     UR                  / SQ5      n[        R                  " USS9u  p4pV[        X1R                  / SQ5      5        Sn[        R                  " USS9n[	        XUS9  g )Nr  r:   r  )rA   K}\UU?r  r  )r  r   r  r  rB  )rj   rl   r  r4   r   )	rt   ru   rO  relfreqsr  r  r  rD  r   s	            r~   test_relfreqTestRelfreq.test_relfreq	  sZ    JJ)*16q!1L.'**-V"WX K
mmAq)C3r   c                     / SQn[         R                  " USS9u  n    n[         R                  " [        R                  " U5      SS9u  n    n[	        X$5        g )Nr  r:   r  )rl   r  r   rj   r5   )rt   rO  r   r  r   s        r~   test_relfreq_array_like#TestRelfreq.test_relfreq_array_like	  sG    }}Q2Q1}}RZZ]A>Q1!r   r   N)r   r   r   r   r  r  r  r   r   r   r~   r  r  	  s    G4"r   r  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)r9   r:   r;   r_   rf   r<   )r9   rk  r>   r=   r:   r8   r   )r   r:   r;   r_   rf   r  r  r   a1r  a3r~  s    r~   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 )	Nr>   rA   r   r   r  rD   2         ?)r   r   rl   scoreatpercentiler  s     r~   r\   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 )Nr_   r  rE   r8   r=   r  r   r>   )limitr   r_   r  r_   r  7   r   r_   rF   fractioninterpolation_methodr  r  rl   r  r   rM  r  r   r   rt   scoreatpercs     r~   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 )Nr_   r  lowerr  r:   higherr;   r  r  r  r  r  r  r  r   r  r  s     r~   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 )Nr>   rA   )r   rD   r  )r   r  r  ra   r9   r:   )r   r   r  r  r   rY   )r   r:   r>   )Q?gQ@g(\ @r9   r=   r`   )
r   r   r   rl   r  r   r   rM  ndarrayrn   )rt   rw   r!  r   r  	expected2s         r~   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 )Nra   r9   r:   )r  r  r  )g      @rF         &@)r8   r9   r:   r;   )r:   r;   r<   r=   )r>   r?   r_   r`   r   rY   )      ?g      @g     !@)rB   rF         #@r  r   r   r   r   )r:   r:   r9   r  r   r   r9   )rl   r  r   rn   r   r   r  )rt   r  rw   r0r  scores         r~   	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   r8   ra  r   r  e   re   )r   r   rl   r  r~  s    r~   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   rl   r  r   rs   r   r~  s    r~   
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  r\  r  r  r  r  r  r  r   r   r   r~   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)Nre  r   )r$   r   r   rl   moderj   r5   rs   )rt   ru   valscountss       r~   r  TestMode.test_empty0
  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   )rl   r"  r   r   r   )rt   r#  r$  s      r~   r  TestMode.test_scalar6
  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r9   r;   r   r_      r9   r8   r<   r>   r<   r_   r<   r   r<   r   r9   rj   rl   r"  r5   )rt   ru   data1r#  s       r~   r\  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r_   r_      (   r_   r_   r_   r_   r  r_   r  r  r0  r0  r0  r0  r1  r0  r0  r0  TrZ   keepdimsr   r0  r   r>   r_   r_   r0  r0  r8   r9   r9   r8   r_   r  r8   r:   r9   r+  	rt   ru   r,  data2data3data4data5arrr#  s	            r~   test_axes_keepdimsTestMode.test_axes_keepdimsA
  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/  r2  r3  r4  r5  rY   r   r0  r   r>   r8  r9  )r_   r_   r  r0  r0  )r8   r:   r9   r:   r9   r+  r:  s	            r~   	test_axesTestMode.test_axesU
  s         jj%e<=zz#D)QB0QA/zz#A&Q,<!=>QL!9:zz#A&Q,@!ABQO!<=r   rZ   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 )r_   r`   ra   rb   rY   )	r   r  r  rj   rl   r"  ndimr5   count)rt   rZ   ru   r  rO  r  r  s          r~   test_negative_axes_gh_15375$TestMode.test_negative_axes_gh_15375i
  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"  rH  rB  re  )rj   rl   r"  r   r$   r   r   )rt   ru   r,  r;  r
  rD  actual2s          r~   test_mode_result_attributes$TestMode.test_mode_result_attributesr
  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 )Nr9   r;   r   r_   r*  r8   r<   r>   r   rN   )rj   r   rs   rl   r"  r5   rO   )rt   ru   r,  r
  s       r~   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 )Nr9   r;   r   r_   r*  r8   r<   r>   r   r   r   r   r   )	rj   r   rs   rl   r"  r5   rH  r   r   )rt   ru   r,  r   s       r~   test_nan_omitTestMode.test_nan_omit
  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)r9   r;   r   r   r   r9   r;   r   )r9   r;   r   r7  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   r7  r   r   )rl   r"  rj   r5   )rt   rV  r7  ru   r  s        r~   test_smallest_equalTestMode.test_smallest_equal
  sR     BJJt,(SF1IaL"**R.9F1Irzz"~6r   rf   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:r9   r:   r;   r  Fr6  )r   r  r  rj   uniformrl   r"  rM  r  popr$  r	   rH  )rt   rZ   ru   r  rO  r   reference_shapes          r~   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 Nr8   r   )rj   r   rs   rl   r"  r  rH  rt   ru   rO  r   s       r~   !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   r8   r9   r   r   Fr6  )r   r9   r   T)r   r   r9   r   )rd  rl   r"  r  rH  rc  s       r~   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   r9   Fr6  r   r   r8   Tr7  r   r  )	rj   r   rs   rl   r"  r5   rH  r,   r  )selfselfru   rO  r   r   s        r~   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   r8   r;   Fr   )rZ   r7  r   )r   r8   r;   )r8   r   r8   T)r7  r   r   r  )
r   rs   rl   r"  r	   rH  r   r  r  r   )rt   rO  r   r   s       r~   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)rO  rZ   r7  r   rc  r8   r9   r9   r9   asdfqwerr  r_   rN   z=Argument `a` is not....|An argument has dtype...|The DType...r   r   )r   r  rs   rl   r"  r	   rH  rO   uint8r   rd  r   r   	TypeError)rt   r   r  rV  r   my_dtypetestr  s           r~   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   rD  rD  r   r  r  r8   r  r9   rY   )r   r  r   r   rl   r"  r   rs   r   r   r   r   r   )rt   r   r   rO  zs        r~   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  r=  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   Tr6  r   r  )
rj   r  r   r  r   r   rl   r"  ro   r  )rt   r|  ru   r   r   s        r~   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     r~   __init__ATestMode.test_raise_non_numeric_gh18254.<locals>.ArrLike.__init__(  s    r   Nc                 @    U R                   R                  [        5      $ r.  )r  r  object)rt   rO   rg   s      r~   	__array__BTestMode.test_raise_non_numeric_gh18254.<locals>.ArrLike.__array__+  s    ww~~f--r   r  )NN)r   r   r   r   r  r  r   r   r   r~   ArrLiker  '  s    .r   r  z'...only boolean and numerical dtypes...zCannot interpret...r   r9   z*Argument `a` is not recognized as numeric.rN   )	r*   r   r   rv  rl   r"  r   r   r  )rt   r  r  s      r~   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  r\  r@  rC  r   r   r   r  rI  rM  rP  r   rT  r   rs   rX  r_  rd  rg  rl  ro  ry  r}  r   emptyr  r  r   r   r   r~   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:  r  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   )rj   scalar_testcaser&   r   r  r   r   rl   semr   r   simplefilterUserWarningr   r  )rt   ru   r  rx   s       r~   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   ddofr8   rA   r   r?   )
rj   testcaserl   r  r4   r#  r   wherers   r5   )rt   ru   r  rx   r  rw   s         r~   test_semTestSEM.test_semS  s    ::dmm,IIh::l34		(3qA#wnD		(3	5 IIcNHHQ!VRVVQ'		!bjj&89r   Tr   r   c                    UR                  S5      nUR                  US'   [        [        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)Nr   r?   r   r   gH=6?r   r   r   r   r   )	r   rs   r4   rl   r  rj   r   r   r   rt   ru   rw   r  s       r~   test_sem_nan_policyTestSEM.test_sem_nan_policy_  s    IIcNvv!		!7DV9WX1]]:W5IIaG, 60]]:W5IIaH- 65 65 65s   *C#C
C
C!r   N)r   r   r   r   r  r  r   r   r   r  r  r   r  r   r   r   r~   r  r  :  sS      HO[[ LM N$
: .WX	. Y	.r   r  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)TestZmapil  r  r  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   )rj   ro   r   rl   zmapr4   )rt   rw   rx   ru   r!  r|  s         r~   	test_zmapTestZmap.test_zmapo  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   rY   r   r8   r   rT  rT  r   r   gLXz?)r   rT  r   rT  rj   rl   r  r4   
rt   ru   rw   t1t2t3z0re  z0_expectedz1_expecteds
             r~   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 
Nr  )r   r   r   r   r   )rZ   r  )      r  rA   rA   g3Ey?)      r  rA   rB   g4?r   r  rt   ru   rw   r|  r  r  s         r~   test_zmap_ddofTestZmap.test_zmap_ddof  s{    JJ,,. / JJq!!,jj!78*Ejj!78D!Q$-!Q$-r   r  r   r8   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 )Nrf   re   r8   r=   ra   r   r  r   r;   r  )rj   r   rs   rl   r  r4   )rt   r  ru   scorescomparer|  r   s          r~   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   r8   re   r  r<      )r   r:   r   r  r   r   r   )r   rZ   r  r  )rn   r   r   rK  rs   rj   r  rl   r  stackr4   )rt   r  ru   r  r  compare_0_notnacompare_1_notnar|  r  r  r!  s              r~   #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   TrR  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  rf   r8   r=   ra   zinput contains nanr   r   r   )rj   rs   r   r   r   rl   r  )rt   ru   r  r  s       r~   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)Nr9   Precision loss occurred...re  )
r   r  rj   r#  rs   r$   r   rl   r  r5   )rt   ru   r  r  r   r   s         r~   r  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 )NrH  )r                 ?re   r  )y      ?        y       @        y      @        y      @        )rl   r  rj   r4   )rt   ru   r   r   s       r~   test_complex_gh22404TestZmap.test_complex_gh22404  s<    jjL12::>N3OPjj9:!r   r   N)r   r   r   r   r   r   r   r  r  r  r  r  r   r  r   r  r  r   r   r   r~   r  r  l  s    [[
,	-
,	-	/
%
%)2
. [[VaV,	  -	  [[VaV,% -%( .MN< O< [[ WX[[ VW" X Y" [[ WX" Y"r   r  c                      \ rS rSrS rS rS rS rS rS r	\
" SS	S
9S 5       rS r\R                  R                  S5      S 5       r\R                  R                  S5      S 5       r\R                  R                  S5      S 5       r\R                  R                  S5      S 5       r\R                  R)                  S\R,                  " / 5      \R.                  " S5      /5      S 5       r\S 5       rSrg)
TestZscorei  c                     [         R                  " UR                  / SQ5      5      n/ SQn[        X!R                  U5      5        g )NrH  )gOT\wg%ܿg%?gOT\w?)rl   zscorerj   r4   )rt   ru   rx   desireds       r~   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 r  rj   rl   r  r4   r  s
             r~   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         r~   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   r8   r:   r;   r  r   )rj   r   rs   rl   r  r5   r   r  rt   ru   rw   r|  s       r~   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   r8   r:   r;   r   r   gIHb=gIHb=gIHb=?gIHb=?)rj   rs   rl   r  r4   rt   ru   rw   r|  r!  s        r~   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   rR   r   r   r   r   r  r  )rj   rs   rl   r  r  r4   r  s        r~   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   TrR  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   r8   r:   r;   zThe input contains nan...r   r   r   )rj   rs   r   r   r   rl   r  r   s      r~   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ʡEr9   r  re  )	rj   r$   r   rl   r  r5   r   r  rs   r  s       r~   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  re  r   rY   rT  r   r   re   )r9   r<   )rj   r$   r   rl   r  r4   rs   r5   r  rn   r  r  	full_like)rt   ru   rw   r  re  r|  rx   s          r~   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  r  r  r  re  r   r   r   rZ   rT  r   r   r8   )rj   rs   r$   r   rl   r  r4   )rt   ru   rw   r2  s2r  re  s          r~   -test_zscore_constant_input_2d_nan_policy_omit8TestZscore.test_zscore_constant_input_2d_nan_policy_omitA  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  r  )rj   r   rs   rl   r  r4   r  s       r~   test_zscore_2d_all_nan_row%TestZscore.test_zscore_2d_all_nan_rowU  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 )Nrb  r   r  )r   rs   rl   r  r5   )rt   ru   rx   r|  s       r~   test_zscore_2d_all_nan!TestZscore.test_zscore_2d_all_nan^  s2     GGFBFF#LLvD9r   rw   )r9   r   r;   c                 h    UR                  U5      n[        R                  " U5      n[        X15        g r.  )rj   rl   r  r5   )rt   rw   ru   r|  s       r~   test_zscore_empty_input"TestZscore.test_zscore_empty_inpute  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_ r_   Tr   r   rY   r  r   )r   r  r  r  
zeros_likemamasked_arraymaskrl   r  anyr  r   r   r  r   r   rs   )rt   ru   r  rw   r  rx   r   r   s           r~   $test_zscore_masked_element_0_gh19039/TestZscore.test_zscore_masked_element_0_gh19039k  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   rd  r  r"   r  r   r   r   r~   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)TestGZscorei  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 )NrH  r   r  r   rN   )	r   rj   rl   gzscoreloggmeangstdr4   rO   )rt   ru   rw   r|  r  s        r~   test_gzscore_normal_array%TestGZscore.test_gzscore_normal_array  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   r8   re   r9   r:   )r   r   r   r   r   r  g0jg`ȿg/A?g(/?)r   r   r  r  rl   r  r#  r   
compressedr  rM  MaskedArray)rt   rw   r  mxr|  r  s         r~   test_gzscore_masked_array%TestGZscore.test_gzscore_masked_array  s    HH%&UU-MM"#_bffn"$%%$$W$8(:(:(<=-!RUU..////r   r   N)r   r   r   r   r"  r"   r)  r   r   r   r~   r  r    s    L 
0 
0r   r  c                      \ rS rSrS rS r\" SSS9S 5       rS r\" SSS9S	 5       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)TestMedianAbsDeviationi  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  rC   皙@r  333333@=
ףp=@r  (\
@r  rD   r  皙@)\(@Q@)r.  r.  r  r  rC   r/  r  r0  r1  r1  r  r2  r  r  r  rD   r  r3  r3  r3  r3  r4  r5  g33333<@)r   rs   dat_nandatr~  s    r~   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 )NrY   gQ?)r<   r:   r   )gףp=
?rA   g?r  )r4   rl   median_abs_deviationrj   r7  rn   )rt   ru   r7  madmad_expecteds        r~   test_median_abs_deviation0TestMedianAbsDeviation.test_median_abs_deviation  sx    222::dhh3GdS

5)	+jjDHH-v6((15zz"9:*r   	jax.numpyzlazy -> no nan_policy="omit"r  c                     [         R                  " UR                  U R                  5      SS9n[	        X!R                  S5      5        g )Nr   r   g(\?)rl   r:  rj   r6  r4   )rt   ru   r;  s      r~   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   rR   r   r   r   rY   )rj   r   rs   rl   r:  r4   )rt   ru   rw   r;  s       r~   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   r9   r:   r<   r  r   r   r   )rj   r   rs   r#  rl   r:  r4   )rt   ru   r|  r;  s       r~   test_nan_policy_omit_with_inf4TestMedianAbsDeviation.test_nan_policy_omit_with_inf  sI    JJ1aB78((v>ZZ_-r   rZ   )r   r   r8   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)r9   r   r:   >   Nr   	too smallre  rY   
fill_value)rd  r$   r   r   
contextlibnullcontextrl   r:  r4   r  ri  rs   )rt   rZ   ru   rw   contextr;  s         r~   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   rB   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   r;   r9   r<   )r;   r<   r=   r?   r?   r_   rJ  re  r  )r&   r   r  rj   r   rs   r$   r   rM  rN  rl   r:  r4   )rt   r   r!  ru   rw   rO  r;  s          r~   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   )rC   r   r  )NrE   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   r8   r:   r?   )r   r   r   r   ra   )rV  rV  r  r  r   )centerr   rZ   rH  r  )r   r   rs   rl   r:  ro   r4   )rt   rZ   r!  rw   r;  s        r~   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   r8   r9   r;   r  rW  )r   r   rv  rl   r:  rj   rt   ru   s     r~   test_center_not_callable/TestMedianAbsDeviation.test_center_not_callable  s5    ]]9J7&&rzz,'?K 877   'A


A)r7  r6  N)r   r   r   r   r  r=  r   rA  rD  rG  r   r   r   rP  r   rs   rS  rX  r^  r   r   r   r~   r,  r,    s   6+ k*HI/ J/8 k*HI. J.
 [[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                   z   \ rS rSr\R
                  R                  S/ SQ5      S 5       rS 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SS9S 5       r\	" SSS9S 5       rS rS rS r\	" SSS9S 5       rS rS rS rg!)"TestIQRi  rO   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 )Nr>   rA   rN   r  )
r   r   r  r0  r(   ro  r5   rl   iqrrj   rt   rO   ru   rw   s       r~   r\  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   ra  )r_   Z   )r0  r  r   r  r:  rB   r  r  rl   rd  rt   ru   rv  s      r~   test_apiTestIQR.test_api  sy    GGFO		!		!T		!Q		!V		!T8$		!T8S)		!T8S+6r   r?  r   r  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   linearri  gٿr   r  Trj  rk  s      r~   test_api_eagerTestIQR.test_api_eager  s=    GGFO		!T8XwA		!T8T67DAr   rw   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Nre  )r$   r   r   r5   rl   rd  rj   rs   )rt   rw   ru   s      r~   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)r=   r:   r   r   rY   r:   r   r=   ro  interpolationmidpointnearestr  r  r:   r;   r<   r   )r;   r<   )r:   r<   r8   r  rC   ra  r<   r   r8   r;   r   r   r8   )r  rj   r5   rl   rd  rd  r   r   )rt   ru   rw   r=  rx   s        r~   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   Trj  )r   r5   rl   rd  rj   r   s      r~   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   rY   r;   rR   r   r9   r   ra  r  )rn   r   r5   rl   rd  rj   r   r   s      r~   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  r_   )r_   ra  rY   re   r   r  r   rB  r{  r  r   i  r9   r;   r=   r`   r   r   r9   )r9   r   rE  r8   )r9   r   r8   r9   r8   )r   rk  r   r9   r8   r8   z`axis` is out of bounds...r   r:   z`axis` must contain only...r  )r   r  r  dstackrj   broadcast_torl   rd  r5   moveaxisr-   r   r0  rn   r,   r   r   r!   r   )rt   ru   orw   qrv  s         r~   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)Nr;   r   )r  g     U@r  rC   )g      )@r:  r_   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   r4   rl   rd  rj   r   r   r   r   rs   rv  r  s       r~   test_rngTestIQR.test_rngY  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)Nr;   r:   r   rB   ro  rv  r  )r  P   )r  rw  r   r  ry  r   rx  rC   )inverted_cdfaveraged_inverted_cdfclosest_observationinterpolated_inverted_cdfhazenweibullmedian_unbiasednormal_unbiasedz`method` must be one of...r   r   )r   r5   rl   rd  rj   r   r   r   )rt   ru   rw   rx   r  s        r~   test_interpolationTestIQR.test_interpolationl  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 )Nr  Fr6  r   r8   )r9   r;   r`   ra  )r=   r`   )r   r9   )r;   r=   r   r  r   r   r8   r9   rj  r  r   Trc  )r9   r;   r   r`   )r   r   r=   r`   )r   r;   r=   r   )r9   r   r=   r`   )r   r   r=   r   )r  r   rl   rd  r  r   s      r~   test_keepdimsTestIQR.test_keepdims  s   GGM"UYYqte<BBBGUYYqq59??LUYYqv>DDgNUYYqv>DDfMUYYqte<BBJOUYYq,?EErJUYYqy5AGGNUYYqtd;AA<PUYYqq48>>NUYYqv=CC]SUYYqv=CC\RUYYqtd;AA=QUYYq,>DDlSUYYqy4@FFUr   z(lazy -> reduced nan_policy capabilitiesyc           
         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   r|  r   r  r;   r   r8   rH   r   r   r   barfood)rn   r   r5   rl   rd  rj   rp   rq   rr   rs   r   r   r   r  s       r~   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/ NumPynp_onlyr   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)Nr  r  r|  r   r   r  r;   rR   r   )r8   rC   r8   r   r   r   )rn   r   rs   r5   rl   rd  r   rj   r   r   r   r  s       r~   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                 Z   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        g )
Nr  r  r   r6  r   r  g=V^w@r   rD   )rn   r   r5   rl   rd  rj   r4   r   s      r~   test_scale_no_nansTestIQR.test_scale_no_nans  sr    JJryy/		!3/B@		!84bjj6OP		!3/CAr   c                    UR                  UR                  S5      S5      n[        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        g )	Nr  r  r|  r   r  r6  r   r  r   )
rn   r   rp   rq   rr   rs   rj   r5   rl   rd  )rt   ru   rw   rs   s       r~   test_scale_with_nansTestIQR.test_scale_with_nans  s    JJryy/FF1IdO'jj 		!3;GM		!8LcR		!3;GMr   c                     UR                  S5      nSn[        R                  " [        US9   [        R
                  " USS9  S S S 5        g ! , (       d  f       g = f)Nr  z"foobar not a valid scale for `iqr`r   r   r  )r   r   r   r   rl   rd  r  s       r~   test_invalid_scaleTestIQR.test_invalid_scale  s<    IIdO6]]:W5IIax( 655s   A
Ac                    UR                  UR                  S5      S5      n[        R                  " U5      S   R	                  UR
                  5      n[        [        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        g )Nr  r  r|  r   r   r  rH   r  g	I1=@r   g      @)rn   r   rp   rq   rr   rs   r5   rl   rd  rj   r4   r   s      r~   test_scale_nan_policy_omit"TestIQR.test_scale_nan_policy_omit  s    JJryy/FF1IdO'		!36BBJJsOT		!8G

?3	5		!36BBJJtDTUr   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 )Nr  r  r|  r   r   r  )rZ   r6  r   r8   r  gF7k?r   )rn   r   rp   rq   rr   rs   r5   rl   rd  rj   r   r4   r   s      r~   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   rA   )r:  r  r  )r   rl   rd  r5   rt   ru   rw   r   r   s        r~   test_rng_orderTestIQR.test_rng_order  s9    IIbMCiix(iil!r   r   N)r   r   r   r   r   r   r   r\  rl  r   rp  r   r   r  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r~   rb  rb    s!    [[W&BC7 D77 k*STB UB
 [[S2ryy|"45J 6JC.HD+&Z*&$1LV& k*TU/ V/8 dNP5P5BN) k*STV UV
4"r   rb  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      5      S 5       5       r\R                  R                  SSS	/5      \R                  R                  SS5      S 5       5       rS r\" SSS9S 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      S' 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.
r  r   l   Jf r/  r  r_   )r_   r8   zm, cr  Nr   r   c                 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   rY   缉ؗҜ<rI  )
r   r  r  rj   rl   momentro   ri  r  r4   )	rt   r  r  ru  ru   r  rw   r   r   s	            r~    test_moment_center_scalar_moment,TestMoments.test_moment_center_scalar_moment  s     ii##$78JJszztz,-ll1*"#)BGGAAGffaeaZaf(3u-r   ru  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  r  r\  .)	r   r  r  rj   rl   r  r  newaxisr4   )
rt   r  ru  ru   r  rw   r  r   r  r   s
             r~   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                    UR                  U R                  5      n[        R                  " UR                  U R                  5      5      n[        X1R                  S5      5        [        R                  " US5      n[        X1R                  S5      5        [        R                  " US5      n[        X1R                  S5      5        [        R                  " US5      n[        X1R                  S5      5        [        R                  " US5      n[        X1R                  S5      5        [        R                  " US5      n[        X1R                  S	5      5        [        R                  " U/ S
Q5      n[        X1R                  / SQ5      5        [        R                  " US5      n[        X1R                  S5      5        [        R                  " U/ SQ5      n[        X1R                  / SQ5      5        g )Nr   r   r   r   r8         ?r9   r:        @rH  )r   r  r   r  )r   r8   r9   r   )rj   r  rl   r  r  r4   )rt   ru   r  rx   s       r~   test_momentTestMoments.test_moment'  sL   ::dmm,LLD$8$89:::c?+LL1%::c?+LL1%::c?+LL1%::d+,LL1%::c?+LL1%::f-. LL<0::&:;< LL3'::c?+LL#34::&:;<r   r?  zarray value-dependent errorr  c                     UR                  U R                  5      nSn[        R                  " [        US9   [
        R                  " US5        S S S 5        g ! , (       d  f       g = f)Nz)All elements of `order` must be integral.r   333333?)rj   r  r   r   r   rl   r  )rt   ru   r  r  s       r~   test_order_input_validation'TestMoments.test_order_input_validationD  sA    ::dmm,=]]:W5LL3' 655s   A
A&c           	         Sn[        [        X!S9   [        R                  " UR	                  / 5      5      n[        X1R	                  UR                  5      5        S S S 5        [        [        X!S9   [        R                  " UR	                  / UR                  S95      n[        X1R	                  UR                  UR                  S95        S S S 5        Sn[        [        X!S9   [        R                  " UR	                  / /5      SS9n[        X1R	                  UR                  /5      5        S S S 5        [        R                  " UR                  S5      SS9n[        X1R                  S	5      5        [        R                  " UR	                  / /5      SS/SS
9n[        X1R                  S5      5        g ! , (       d  f       GNe= f! , (       d  f       GN= f! , (       d  f       N= f)NzOne or more sample arguments...re  rN   zAll axis-slices of one or morer   rY   r  r   r  orderrZ   )r8   r   )
r$   r   rl   r  rj   r5   rs   rm  rd  r  )rt   ru   r  rx   s       r~   test_zero_sizeTestMoments.test_zero_sizeK  sW   3+7BRZZ^,AAzz"&&12 C +7BRZZ"**Z=>AAzz"&&

zCD C 3+7BRZZ-A6AAzz266(34 C LL&)288D>*LLRD)!Qa@88F+,! CB CB
 CBs&   A
F91AG%AG9
G
G
G+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?   r8   r   r   r   r   r   )	r   r   rs   r   rl   r  r   r   r   r  s     r~   r  TestMoments.test_nan_policy_  sn    IIcNvv!U\\!Q'0ELLv>Dj%,,gFj%,,hGr   rO   )rm  r   r  zexpect, orderra  r  c           
      h   US:X  a(  [        U5      (       a  Sn[        R                  " U5        [        XA5      n[        R
                  R                  S5      nUR                  UR                  S5      US9n[        R                  " XsS9n[        XR                  X!S95        Sn[        [        XTS9   [        R                  " UR                  US	5      S
US9n[        XR                  SX!S95        S S S 5        [        [        XTS9   [        R                  " UR                  US5      SUS9n[        XR                  SX!S95        S S S 5        [        R                  " UR                  US5      S US9n[        XR                  SX!S95        g ! , (       d  f       N= f! , (       d  f       N_= f)Nr  z?torch can't round complex input; data-apis/array-api-compat#407l   1G r;   rN   r  z-Precision loss occurred in moment calculationre  )r<   r;   r   )rZ   r  )r;   r'  r8   )r   r8   r:   r;   r   )r'   r   r  ro  r   r  r  rj   rl   r  r5   r$   r   r  r   )	rt   rO   expectr  ru   r  r  rw   rx   s	            r~   test_constant_moments!TestMoments.test_constant_momentsg  sS    ,8B<<WGKK "ii##J/JJszz!}EJ2LL(::f::;Aw>R__Q7auMAAwwtVwAB ? w>R__Q@q#(*AAww|VwIJ ?
 LLO<4$&772v7;< ?> ?>s   4A F
A F#
F #
F1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  r8   r   rY   r  rH  rI  )
rn   r   rp   rq   rr   rs   rl   r  rj   r4   )rt   ru   rO  mms       r~   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   rH  r  )r   r   r   rl   r  rj   r]  s     r~   test_moment_empty_order#TestMoments.test_moment_empty_order  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 )Nr_   r9   )r  r  )r   rl   r  r5   r  s        r~   test_rename_moment_order$TestMoments.test_rename_moment_order  s9     IIbMll1Q'll1A&!r   c                     U R                   [        R                  " U R                   5      -
  n[        [        R                  " US5      R                  5       [
        R                  " U R                   S5      5        g )Nr/  )testcase_moment_accuracyr   ro   r   r   rl   r  )rt   
tc_no_means     r~   test_moment_accuracy TestMoments.test_moment_accuracy  sY     33 = =>?
R0557T%B%BBG	Ir   r  rZ   rX  rW  Nr   c           	      .   [         R                  R                  S5      nUR                  SS9n[        R                  " UR                  U5      X#US9nUc  UO[         R
                  " U5      nUR                  [        XbX4S9S   5      n[        Xx5        g )Nl   hU~)r;   r<   r=   r  )rZ   rW  r\  r   )r   r  r  rl   r  rj   r   r4   )	rt   ru   r  rZ   rW  r  rw   r   r   s	            r~   test_moment_array_api!TestMoments.test_moment_array_api  sx     ii##N3JJIJ&ll2::a=%6J!>rzz&/Ajj4?CD!r   r   )r   r   r   r   r;  r  r  r   r  r  r  r  r   r   r   rM  r   r  r  r  r   r  r  r  r  r  r  r  r  r  r   r   r   r~   r  r    s     HO
))



+C"zz"~[[Vb']3[[VT',*M%NO. P 4. [[Vb']3[[S,/" 0 4"=: k*GH( I(-(H [[W&JK[[_vv.>?= @ L=0D="I [[Wl3[[VZ0[[Xbz2" 3 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   r  )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rs  )rj   r$   r   r   stat_funr5   rs   r   s       r~   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   r  r  testmathworksr  r   r   r   r~   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	 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.  )rl   skewr  s     r~   r  TestSkew.stat_fun  s    zz!}r   r  c                 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*ҿ绽|=rI  r   biasg2۠ۿr   )rl   r  rj   r  r4   rs   r  r  )rt   ru   rx   s      r~   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   rs   r  r   rl   r  r   r   r  s     r~   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 )Nr_   r   )r   rl   r  r   r~  s    r~   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   rY   r   )r   rn   rp   rq   rr   rs   r   r  rl   r  rj   r5   )rt   ru   rO  r2  s       r~   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ѿr_   Precision loss occurredre  g      CFr	  g,@r=   r         r:   r  )	r  rj   r$   r   r5   rl   r  rs   r   rt   ru   rO  s      r~   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c                    [        [        SU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  re  l   :"z` )r  r_   r  )\(?r   )r$   r   r   r  r  rl   r  rj   )rt   ru   r  rO  s       r~   test_precision_loss_gh15554$TestSkew.test_precision_loss_gh15554  sc     /HRP))''4C

	
*AAadGJJrzz!}%	 QPPs   AA66
BrZ   re   r   r8   Nr
  FTc                    ^ [         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   Tr6  r9   rY   r   rA   r   )rn   ro   r   r  )	rO  rZ   r
  ro   mu3r   r   r  ru   s	           r~   skewness-TestSkew.test_vectorization.<locals>.skewness  s    |JJq%(771$77D''18a-d'3C&&&&Cq.CGGDMSA#-S99Jr   )rZ   r
  )r   r  r  rj   rl   r  r4   )	rt   ru   rZ   r
  r  rw   r%  r   r   s	    `       r~   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~   r  r    s     [[>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.  )rl   kurtosisr  s     r~   r  TestKurtosis.stat_fun  s    ~~a  r   r  c                 "   [         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   r>   )rl   r,  rj   r  r  r  r4   r  r   r  rs   r5   )rt   ru   rx   rw   s       r~   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   rs   r   rl   r,  r   r   r  s     r~   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   typerl   r,  r   r   r~  s    r~   test_kurtosis_array_scalar'TestKurtosis.test_kurtosis_array_scalarH  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 )Nr>   r8   re   r  r   r  r  g(\rH  rI  )
r   r   rn   r  r  rs   rl   r,  r$  r   )rt   rO  r  s      r~   test_kurtosis_propagate_nan(TestKurtosis.test_kurtosis_propagate_nanL  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  r_   r  re  F)r0  l           r/  )rj   r$   r   r  rl   r,  r  r  s      r~   test_kurtosis_constant_value)TestKurtosis.test_kurtosis_constant_valueU  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rZ   r   r
  FTr0  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"  rz  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   Tr6  r:   rY   rZ   r   r8   r9   r   )rn   ro   r   r  )
rO  rZ   r
  r0  ro   mu4mu2r   r  ru   s
            r~   r,  1TestKurtosis.test_vectorization.<locals>.kurtosisg  s    |JJq%(771$77D''18a-d'3C&&!&4CFlQ&GGDMs!!}-!a%3sAv1E1Q31OP !3-cAg-r   )rZ   r
  r0  )r   r  r  rj   rl   r,  r4   )
rt   ru   rZ   r
  r0  r  rw   r,  r   r   s
    `        r~   r'  TestKurtosis.test_vectorization^  s[     ii##M2JJszz),-	.& nnQDq$>!r   r   N)r   r   r   r   r  r   r   r   r1  r5  r9  r<  r?  r   r'  r   r   r   r~   r*  r*    s    ! [[ VW? X?>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   r8   )min_dimsmin_side)rO   elementsr  errorr  r   )dictnpstarray_shapesarraysr   r   r   r   r  r  r#  r  rM  suppress	Exceptionrl   r  r  r  rS  
hypothesisassume
strategiessampled_from)drawrM  r  rV  ok_axesrZ   r   s          r~   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')(TestTTest_1sampi  rT  r   r   )r   r   r   r   r   gMXzg4/?gMXzgFX5t?gMXz?r8   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   rC  rA  rB  r   r   )r   r   r   r  r   r   r&   rj   rl   ttest_1sampr5   rs   X1r4   T1_0P1_0r   X2T2_0P2_0T1_1P1_1T1_2P1_2)rt   ru   rO  tri  r   rD  s          r~   test_onesampleTestTTest_1samp.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 )	Nr;   r_   3   t r5  r6  r  r  r  rN   rR   )rl   rc  r  r   rs   rj   r(   rd  r5   rC  rA  r   s       r~   #test_onesample_nan_policy_propagate3TestTTest_1samp.test_onesample_nan_policy_propagate  s    JJNNq'NJ"JJq 0 4J53'rzz"&&'9:

BJJrvv$67r   TrR  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)Nr;   r_   rs  rt  ru  r  rN   rR   r   r   g̈́^Bg/kCm?r   r   r   nan_policy must be one ofr   )rl   rc  r  r   rs   rj   r(   rd  r4   rC  rA  r   r   r   r   s       r~   $test_onesample_nan_policy_omit_raise4TestTTest_1samp.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   rN  r  r   r  r  )r   r   r   rl   rd  rj   re  r4   P1_1_lrk  P1_1_g)rt   ru   r  ro  ri  s        r~   test_1samp_alternative&TestTTest_1samp.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.r  r  rZ  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 r_   rB   r8   r  r5  r6  r   rN   gÍ]?g$(}w@gS1?g]@r  r  r  )popmeanr  333333?confidence_levelr   r   )r   r  r  r  rj   rO   r#  rl   rd  r  r4   r  r  r5   df)rt   ru   r  r  r  rw   r  rO   r   r   r  s              r~   test_1samp_ci_1d TestTTest_1samp.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   r_   r  )rl   rd  r   r   r   r   r  )rt   ru   r   r  s       r~   test_1samp_ci_iv TestTTest_1samp.test_1samp_ci_iv  sL    		#3H]]:W5##R#8 655s   A
A)z	Too slow.r  rH  g?)alpha	data_axisr  r  c                    Uu  pVUR                  U5      n[        R                  " USX6S9nUR                  US9u  pUS:X  a  UOU	n
UR	                  XS9n
[        R                  " XZX6S9n[        UR                  5      nUR                  U5        UR                  UR                  SU-
  UR                  S9U5      n[        UR                  U5        g )Nr   r  r  r  rY   r   rN   )rj   rl   rd  r  expand_dimsrM  r  r]  r  r   r4   rA  )rt   r  r  r  ru   rV  rZ   r   lr(  r  r  r   s                r~   test_pvalue_ciTestTTest_1samp.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   re  rh  rf  rg  rk  rl  rm  rn  ri  rj  r~  r  r   r   r   rp  rv  r   rz  r  r   r  r  ry  rU  givenrW  floatsr[  r  r   r   r   r~   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TestPercentileOfScorei3  c                 .    [         R                  " U0 UD6$ r.  )rl   percentileofscore)rt   argskwargss      r~   fTestPercentileOfScore.f5  s    &&777r   zkind, result))r  r1  )ro   #   strictr0  )weakr1  c                 B    / SQn[        U R                  USUS9U5        g )N
r   r8   r9   r:   r;   r<   r=   r>   r?   r_   r:   kindr   r  rt   r  r  rO  s       r~   test_unique!TestPercentileOfScore.test_unique8  s"    
 ,TVVAqtV,f5r   ))r  -   )ro   r1  r  )r  r  c                 B    / SQn[        U R                  USUS9U5        g )N)
r   r8   r9   r:   r:   r;   r<   r=   r>   r?   r:   r  r  r  s       r~   test_multiple2$TestPercentileOfScore.test_multiple2@  "    
 +TVVAqtV,f5r   ))r  r  )ro   r  r  )r  r  c                 B    / SQn[        U R                  USUS9U5        g )N)
r   r8   r9   r:   r:   r:   r;   r<   r=   r>   r:   r  r  r  s       r~   test_multiple3$TestPercentileOfScore.test_multiple3H  r  r   ))r  r0  )ro   r0  r  )r  r0  c                 B    / SQn[        U R                  USUS9U5        g )N)
r   r8   r9   r;   r<   r=   r>   r?   r_   r`   r:   r  r  r  s       r~   test_missing"TestPercentileOfScore.test_missingP  s"    
 -TVVAqtV,f5r   c                 B    / SQn[        U R                  USUS9U5        g )N
r_   r  r0  r1  r  r  F   r  rh  r  r1  r  r  r  s       r~   r@  (TestPercentileOfScore.test_large_numbersX  s"    
 6TVVArV-v6r   c                 B    / SQn[        U R                  USUS9U5        g )N)
r_   r  r0  r1  r1  r1  r  r  r  r  r1  r  r  r  s       r~   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
r_   r  r0  r  r  r  r  rh  r  n   r1  r  r  r  s       r~   test_large_numbers_missing0TestPercentileOfScore.test_large_numbers_missingh  s"    
 7TVVArV-v6r   r  )r   r_   r  r  ro   )r   r;   _   r  r  )r   r   rh  r  r  c                 F    / SQn[        U R                  U/ SQUS9U5        g )Nr  )r   r_   r  r-  r  r  r  s       r~   test_boundaries%TestPercentileOfScore.test_boundariesp  s#    
 7TVVA0tV<fEr   )r   r_   r  )r   r;   r  )r   r   rh  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   r8   r9   r:   r;   r<   r=   r>   r?   r  )r   r#  r   r  r  s       r~   test_infTestPercentileOfScore.test_infx  sP    
 1aAq!Q0TVVARVVG44V@&Ir   r  r   r  r8   r  r  r   )r   r  r  r   zpolicy, a, score, resultc                 8    [        U R                  X#US9U5        g )Nr   r  )rt   policyrO  r  r  s        r~   test_nans_ok"TestPercentileOfScore.test_nans_ok  s    TVVAV8&Ar   r   r9   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   r  )rt   r  rO  r  r  s        r~   test_nans_fail$TestPercentileOfScore.test_nans_fail  s(    :W5FF1F/ 655s   )
7r  ))r<   rb  r8   r   r9   )r8   r   r   r9   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   r8   r9   r:   r;   r_   r  r  r  )r   r   rn   r   r  )rt   r  rO  r  resultss        r~   test_ndTestPercentileOfScore.test_nd  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   rl   r  r   r  rC  s     r~   test_multidimensional_error1TestPercentileOfScore.test_multidimensional_error  s;     /]]:W5##BGGFOQ7 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   rs   casesr  r  r  r  r   r   r   r~   r  r  3  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_expr  rZ   chi2r  mod_logcr)r:   r>   ra   r>   r:   r8   rA   ra   rB   r>   r   rR  gfx(@)r8   r   ra   r8   r  r   r         ?g{T4@)r9   r;   r=   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   rN   r   r   zMean of empty slicer  r  rZ   lambda_r   pearson)r  r  rZ   )rj   rO   r)   broadcast_arraysr  r   r   r   r   rl   power_divergencer4   	chisquarer   distributionsr  sf)rt   r  r  r  rZ   r  expected_statru   rO   num_obsrR  statri  
expected_ps                 r~   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  rR  r  c           	          Uu  pE[        X5      nU R                  UR                  UR                  UR                  UR
                  XFU5        g r.  )ro  r  r  r  r  rZ   rt   r  r  ru   r  attrr  s          r~   r\  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  rB  r  r  r  r  )power_div_1d_casesr   vstackr  	ones_likero   r  rj   r  r  r  r  r  rn   )rt   ru   case0case1r  r  f_obs_reshapes          r~   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   rN   r  r  r  rY   )r  r   r  r  r   r  ro   r  r  rj   rO   rl   r  r4   r  r  )rt   ru   r  r  r  r  expected_chi2rO   r  r  ri  r  p0p1r  s                  r~   test_ddof_broadcasting*TestPowerDivergence.test_ddof_broadcasting7  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.  )ro  r   r   r  r  r  r  rZ   r   s          r~   test_empty_cases$TestPowerDivergence.test_empty_casesY  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   rN   r  r  rc  rB  )
r  r  r  r  rZ   rj   rO   rl   r  r   )	rt   ru   r  r  r  rZ   rO   r   rD  s	            r~   'test_power_divergence_result_attributes;TestPowerDivergence.test_power_divergence_result_attributesf  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[        R                  " X#S9u  pE[        XAR                  S	S
/5      5        [        XQR                  SS/5      5        [	        U5      (       Ga  [        R                  " X!R                  SS/5      S9n[        UR                  UR                  UR                  UR                  /5      5        [        UR                  UR                  UR                  UR                  /5      5        [        R                  " X#SS9n[        UR                  UR                  UR                  UR                  /5      5        [        UR                  UR                  UR                  UR                  /5      5        UR                  SS/SS//5      n[        R                  " X#S9n[        UR                  UR                  US   UR                  /5      5        [        UR                  UR                  US   UR                  /5      5        g 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        g ! , (       d  f       NF= f! , (       d  f       g = f)Nr   rD        >@rR   r  g     A@      9@r  g̑m@gUUU@gj^4;?g4;?      N@r   )r  rZ   r   For each axis slice...r   )rj   rl   r  r4   r%   r5   rC  rs   rA  r   r   r   )rt   ru   r  r  r  r  r   r  s           r~   test_power_divergence_gh_122822TestPowerDivergence.test_power_divergence_gh_12282t  s   

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

RISz23++E?
jj*j)ABCjj*j)ABC((jj#s6LMCCMM2::rvvrvv6F+GHCJJ

BFFBFF3C(DE((!DCCMM2::rvvrvv6F+GHCJJ

BFFBFF3C(DE JJS	C:67E((<CCMM2::tAw6G+HICJJ

DGRVV3D(EF.Gz9&&uJJSz4JK :z9&&uB :9 :999s   #&K	*K	
K
K(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[        R                   " / SQ5      n[        R                  " US5      n[        UR                  S   5       H_  n[        XS4   5      [        XS4   5      p[        R                  " US S 2S4   US S 2S4   U	S9u  p[        XR                  U
5      S	S
9  Ma     g )N)r  r        ,@g      1@rR   r  r   r   r   r   r   r   r  r   r   r   r   r   g*kqr   r   ) g      $g    @r  g     r@r  gffffffP@       gLD@r  g      A@rT  g     =@r  g     :@r   g8@rA   gffffff7@gq=
ףp?g7@r   g333336@rB   g6@r   gfffff6@r   g8@rR   g     A@r   g     j@)re   r8   r   )r  g{Gzt?r  )rj   r   r  r  ri  expr  r  r   r   rn   r  r  rl   r  r4   )rt   ru   obsbetar  r  expected_countstable4table5r  r  r  ri  s                r~   /test_power_divergence_against_cressie_read_dataCTestPowerDivergence.test_power_divergence_against_cressie_read_data  sL    jj @ AIIb#))A,+,rvvc{RVVBFF46N%;;<&&a0 C

A.+JJM:< ==>Q 	   & FG,v||A'A%*6Q$<%8%!t:M],,VAqD\6!Q$<5<>GDD**]";$G	 (r   r   N)r   r   r   r   r  r   r   r   r  r\  r  r  power_div_empty_casesr  r  r  r(  r   r   r   r~   r  r    s    @@ [[V%78[[]	./@	/ 9
@-: 'D [[V%:;[[]	./,	/ <
,4C:-H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                    UR                  SS/5      nUR                  SS/5      n[        U5      (       as  [        R                  " X#S9n[	        UR
                  UR                  UR                  5      5        [	        UR                  UR                  UR                  5      5        g [        [        SS9   [        R                  " X#S9  S S S 5        g ! , (       d  f       g = f)Nr   rD  r  r  r  r  r   )
rj   r%   rl   r  r5   rC  rs   rA  r   r   )rt   ru   r  r  r   s        r~   test_chisquare_12282a#TestChisquare.test_chisquare_12282a  s     

C:&

C:&//%5CCMM2::bff+=>CJJ

266(:;z1IJ3 KJJs   8C
C$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 r_   r  rL  r  rN   re   F)r  r  	sum_checkr8   )r   r  r  r\  poissonrj   rO   rl   r  rL  ri  r4   rC  r    rA  r  )
rt   ru   r  r  lamrw   r   r|  rC  rh  s
             r~   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-  ru  )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   rN   r8   r   vIh%<=r  )	ro  rj   rl   r  r4   rO   r5   rC  rA  )	rt   r  rO   ru   r#  r"  r   r  ri  s	            r~   #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.  r4  r   r   r   r8  r   r   r   r~   r,  r,    s8    4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?)r:   r9   r;   r9   r;   r9   r8   r;   r:   r:   r:   r9   )r8   r8   r   r8   r9   r   r8   r9   r8   r   r   r9   )r8   r:   r9   r9   r:   r9   r9   r:   r:   r   r8   r   )r9   r;   r:   r9   r:   r:   r9   r9   r9   r:   r:   r:   )g
__2@g5"]i2?)r   g#@rI   r  g$@)g333333@g@g@rD   g@)r  r  rF   r   @)g!@g!@333333 @ffffff
@g333333"@)g\(\%@g+ԋ?rO   r  z	data, refc                 ,   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 )NrN   r   r   )ro  rj   rl   friedmanchisquarer4   rC  rA  )rt   rO   rV  r   ru   r   r   s          r~   test_against_references-TestFriedmanChiSquare.test_against_references  s     GB,><@AD5

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

BJJs1vUJ$CD Bs   B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   rl   rG  rj   r	  rt   ru   r  s      r~   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   rH  rL  r   r   r   r~   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 rS r\R                  R                  S/ SQ5      \R                  R                  S/ S	Q5      S
 5       5       rS rSrg)
TestKSTesti!  zLTests kstest and ks_1samp agree with K-S various sizes, alternatives, modes.c                 x   [         R                  " USX#S9n[         R                  " U[        R                  X#S9n[        UR                  UR                  5        [        UR                  UR                  5        [        UR                  UR                  5        [        UR                  UR                  5        g )Nrc  r  r"  )rl   kstestks_1sampr   ndtrr4   rC  rA  r5   statistic_locationstatistic_sign)rt   rw   r  r"  r!  r  result_1samps          r~   _test_kstest_and_ks1samp#TestKSTest._test_kstest_and_ks1samp%  s    a[L~~a2=J((,*@*@A|':':;1163L3LM--v/D/DEr   c                     UR                  SSS5      nSn[        R                  " U[        R                  5      n[        XCUS9  g )Nre   r   r?   rc  rB  )rK  rl   rU  r   rW  r   )rt   ru   rw   rD  r   s        r~   test_namedtuple_attributes%TestKSTest.test_namedtuple_attributes.  s7    KKAq!,
ll1gll+C3r   c                 *   UR                  SSS5      nU R                  US5        UR                  SSS5      nU R                  US5        / SQnUR                  U5      nU R                  US5        U R                  USS	S
9  U R                  USS	S
9  g )Nre   r   r?   r  r  
r4  Q?g333333g(\?Q?g(\ſg{GzgHzG?g\(\gGzr  r  r"  r  )rK  r[  rj   r   s      r~   test_agree_with_ks_1samp#TestKSTest.test_agree_with_ks_1samp5  s    KKAq!%%a5KKR#%%a5NJJqM%%a5%%a%A%%ag%>r   r  )autor  asympr  rZ  c                    [         R                  R                  S5      nUR                  S5      u  pVUR                  U5      UR                  U5      pe[        R
                  " XVX!S9n[        R                  " XVX!S9n[        UR                  UR                  5        [        UR                  UR                  5        [        UR                  UR                  5        [        UR                  UR                  5        g )Ni)r8   r?   r_   )r  r  )r   r  r  rj   rl   rU  ks_2sampr5   rC  rA  rX  rY  )	rt   r  r  ru   r  rw   rx   r   r   s	            r~   test_agree_with_ks_2samp#TestKSTest.test_agree_with_ks_2sampD  s     ii##I.zz*%zz!}bjjm1ll1[HnnQ{Js}}5

CJJ/..0F0FG**C,>,>?r   c                   ^ TR                  TR                  * SSTR                  /5      nU4S jn[        R                  " X#5      n[        R                  " X#SS9nTR	                  UR
                  5      (       d   eTR	                  UR                  5      (       d   eTR	                  UR                  5      (       d   eTR	                  UR                  5      (       d   e[        UR
                  UR
                  5        [        UR                  UR                  5        [        UR                  UR                  5        [        UR                  UR                  5        g )Nr   r   c                 b   > TR                  TR                  U 5      U * 5      TR                  -  $ r.  )atan2r  pi)rw   ru   s    r~   cdf+TestKSTest.test_pm_inf_gh20386.<locals>.cdfU  s'    88BLLOaR025588r   T)_no_deco)
rj   r#  rl   rU  r  rC  rA  rX  rY  r5   )rt   ru   r#  rr  r   r   s    `    r~   test_pm_inf_gh20386TestKSTest.test_pm_inf_gh20386Q  s    zzBFF7Aq"&&12	9ll4%ll4t4{{3==)))){{3::&&&&{{3112222{{3--....s}}5

CJJ/..0F0FG**C,>,>?r   r   N)rh  r]   )r   r   r   r   r;  r[  r^  rf  r   r   r   rl  ru  r   r   r   r~   rR  rR  !  s_    VF4? [[X'AB[[],LM	@ N C	@@r   rR  c                   t   \ 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Srg)TestKSOneSampleie  zQ
Tests kstest and ks_samp 1-samples with K-S various sizes, alternatives, modes.
rh  re  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㈵>rT  rN   r  )	r   rl   rV  r   rW  rj   r4   rC  rA  )rt   rw   r  expected_statisticexpected_probr"  rO   ru   r  r   ref_statisticrk  s               r~   _testOneTestKSOneSample._testOnek  se    +unnQ+Q

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

J:r   rO   r  c           
      f   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 )Nre   r   r?   rN   r  g|N?g7.s?rO   ru   ra  r  g{CTp?g M<b*?rb  gZL?g86J4?r  g+?r  )r"  rO   ru   r  gHD?gr?)r(   ro  rK  r~  rj   re  s       r~   test_agree_with_r!TestKSOneSample.test_agree_with_rt  s     ). $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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 )NrJ  r  ih:)r5  r  r  rN   r  ghх?g7?ri  )r"  ru   rO   r  g^h?)ru   rO   r  gv!ԉ}?g*z)?)r(   ro  rl   rc  r  rj   r~  )rt   ru   rO   rw   s       r~   test_known_examples#TestKSOneSample.test_known_examples  s     ). $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   rB   re   ))r  r   Tr   )r  皙?Tr   )r  r   Tr   )r  gTr   )          ?Tr   )r  r  Fr   )r  rA   Tgb?)r  rA   FgiNq>)r  g      ?Tgv(?)r  r  TgT	?)@  g\(\?Fr   )r  g      ?Fg(>)r  gQ?Fg@c?)r  g      ?FgX+ʳP?r  r9   )dtypes)r   r   r  r   rs   r   r   rj   r   checkr  r  bool)rt   datasets     r~   test_ks1samp_allpaths%TestKSOneSample.test_ks1samp_allpaths  s    D123:-EFCD! GQ-./** 
 4 	'9a066sE4>P6Q= GFs   C
Cksfunc*alternative, x6val, ref_location, ref_sign))r  r   r   r   )r  r   r   re   )r  r   r   r   )r  r   r   re   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   rA   r<   c                     U S-  $ )Nr   r   r  s    r~   rr  /TestKSOneSample.test_location_sign.<locals>.cdf  s
    1s7Nr   r  rH  r  rN  r  rN   )r   rp   rq   rr   rj   rO   r   r4   rC  r5   rX  rY  int8)rt   r  r  x6valref_locationref_signru   rw   rr  r   r  s              r~   test_location_sign"TestKSOneSample.test_location_sign  s     IIcNS FF1IaLU#"RZZ]CA2::-u4rzz#TB..

<0HI**BJJxwwJ,OPr   c                 4   [         R                  R                  S5      nUR                  S5      n[        R
                  " [        SS9   [        R                  " U[        R                  SS9  S S S 5        [        R
                  " [        SS9   [        R                  " U[        R                  SSS	9  S S S 5        [        R
                  " [        SS9   [        R                  " U[        R                  SS
S	9  S S S 5        [        R
                  " [        SS9   [        R                  " U[        R                  R                  SS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr/  r_   zInvalid value for methodr   any_other_stringr  typor  r`  r  )r   r  r  r  r   r   r   rl   rV  r   rW  rU  rc  rr  )rt   r  rw   s      r~   test_invalid_method_raises*TestKSOneSample.test_invalid_method_raises  s    ii##B'#]]:-GHNN1gll3EF I ]]:-GHNN1gll6'02 I ]]:-GHNN1gll6'-/ I ]]:-GHLLEJJNN3EF IH IH IH IH IHs0   
%E&E'&E8/F	
E$'
E58
F	
Fr   N)r   r   r   r   r;  r~  r   r   r   r  r  r  rl   rU  rV  r  r  r   r   r   r~   rx  rx  e  s    
 ; [[W&BC* D*( [[W&BC
* D
*!RF [[Xenn'EF[[I9:
Q: GQGr   rx  c                   T   \ rS 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S9S 5       5       r\R                  R9                  S/ S/4S// 4/ / 445      S 5       r\R                  R*                  S 5       r\R                  R9                  S/ SQ5      S 5       r\R                  R9                  S\ RB                  \ RD                  /5      \R                  R9                  S/ S Q5      S! 5       5       r#S"r$g#)%TestKSTwoSamplesi  z<Tests 2-samples with K-S various sizes, alternatives, modes.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)rt   	warn_listexpected_typeexpected_lenwarn_s        r~   _check_warnings TestKSTwoSamples._check_warnings  s0     	S^\3GHEENNm34 r   c                    UR                  U5      UR                  U5      p![        XSUS9n[        R                  " XX6S9u  pUR                  XHS9nUR                  XXS9n[	        X5        [	        XSS9  g )NTforce_floatingru   re  rN   rt  rI  )rj   r.   rl   rk  r4   )rt   r  r  r  r}  rk  r"  ru   rO   res_statistic
res_pvalues              r~   r~  TestKSTwoSamples._testOne  sn    BBBrdrB$)NN2;$R!

=
>ZZ
Z8
5
 	
U;r   c           	         U R                  S/S/SSSUS9  U R                  S/S/SSSUS9  U R                  S/S/SS	SUS9  U R                  S/S/SSSUS9  U R                  S/S/SS	SUS9  U R                  S/S/SSSUS9  g )
Nr   r   r  r   rB  r  rA   r  r   )r~  r]  s     r~   	testSmallTestKSTwoSamples.testSmall  s    qcA3UCB?qcA3	5#"=qcA3sr:qcA3UCB?qcA3	5#"=qcA3sr:r   c           	      H   UR                  SS/5      nUS-   nUS-
  nUR                  / SQ5      nU R                  X5SSSUS9  U R                  X5SSS	US9  U R                  X5S
SS	US9  U R                  XESSSUS9  U R                  XESSSUS9  U R                  XES
SSUS9  g )Nr   r   r  r  r  rZ  rB  r  rO  r  rR  r  rQ  r   rj   r~  rt   ru   r,  data1pdata1mr;  s         r~   testTwoVsThreeTestKSTwoSamples.testTwoVsThree  s    

C:&

?+f['32FfYDfVWcbAf['32FfYDfVQ;r   c           	      H   UR                  SS/5      nUS-   nUS-
  nUR                  / SQ5      nU R                  X5SSSUS9  U R                  X5S	SS
US9  U R                  X5SSSUS9  U R                  XESSSUS9  U R                  XES	SSUS9  U R                  XESSSUS9  g )Nr   r   r  r  r  rA   g?rB  r  g?r  r  皙?r  r  rJ  r   r  r  s         r~   testTwoVsFourTestKSTwoSamples.testTwoVsFour  s    

C:&

/0f['7rJfYBGfVWg"Ef['6bIfYBGfVQ;r   c           	      .   UR                  SSS5      nUS-   S-   nUS-   S-
  nU R                  X#SSSUS9  U R                  X#S	SS
US9  U R                  X#SSSUS9  U R                  X$SSSUS9  U R                  X$S	SSUS9  U R                  X$SSSUS9  g )Nr   r  r8   rN  r  r  gz?rB  r  gz;.B?r  r   r   g{Gz?gn2IU?rK  r~  )rt   ru   x100	x100_2_p1	x100_2_m1s        r~   test100_100TestKSTwoSamples.test100_100  s    {{1c3'1HsN	1HsN	d{I?PUWXdy)=OTVWdvq#"=d{IsrJdy)=NSUVdvq#"=r   c           	      T   UR                  SSS5      nUR                  SSS5      nUS-   S-   nUS-   S-
  nU R                  X$SSSUS	9  U R                  X$S
SSUS	9  U R                  X$SSSUS	9  U R                  X%SSSUS	9  U R                  X%S
SSUS	9  U R                  X%SSSUS	9  g )Nr   r  r  r  rN  r  g?g@߿?rB  r  g}n?r  r   g:[?g]O);?gѫ);?r   r   r  )rt   ru   r  x110
x110_20_p1
x110_20_m1s         r~   test100_110TestKSTwoSamples.test100_110(  s    {{1c3'{{1c3'BY_
BY_
d"$8R 	 	Ad	"$8R 	 	Adr 	 	#d"$8R 	 	Ad	"$8R 	 	Ad32 	 	'r   c           	         UR                  S/S-  S/S-  -   S/S-  -   S/S-  -   5      nUS-   n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                  X#S	S
SUS9  U R                  X#SS
SUS9  U R                  X#SSSUS9  U R                  XES	SSUS9  U R                  XESSSUS9  U R                  XESSSUS9  g )Nr8   r9   r:   r;   r<   r   r_   r=   r  g      ?g^dH?rB  r  gQl6y?r  r   r   gVdEVdE?g(f^?g!?gii?g+ ϖ?r  )rt   ru   x2233x3344x2356x3467s         r~   testRepeatedValues#TestKSTwoSamples.testRepeatedValues;  s6   

A37aS1W,sQw6!q@A	

A37aS1W,sRx71#'AB

A38qcAg-b8A37BCeK9KPRSeIv7JrReFFCB?eK>PUWXeI{<NSUVeFJ8JrRr   c           	         UR                  / SQ5      nU R                  X"S-   SSSUS9  U R                  X"S-   SSSUS9  U R                  X"S-   S	S
SUS9  U R                  X"S-   SSSUS9  U R                  X"S-   SSSUS9  U R                  X"S-   S	S
SUS9  U R                  X"S-
  SSSUS9  U R                  X"S-
  SS
SUS9  U R                  X"S-
  S	SSUS9  g )Nr  r   r  rZ  r   rB  r  r  r  r   rA   r  )rt   ru   r;  s      r~   testEqualSizesTestKSTwoSamples.testEqualSizesG  s    

?+e1Wk5#"Ee1WiDe1WfeRB?e3YUCBGe3Y	5$2Fe3YrbAe3YUCBGe3Y	5#"Ee3YtCr   c                 6   Su  p#SU-  U-  S-  S-  nUR                  SSU5      U-
  nUR                  SSU5      nU R                  XVSSU-  U-  SSUS	9  U R                  XVSSU-  U-  SS
US	9  U R                  XVSSU-  U-  SS
US	9  U R                  XVSSU-  U-  SS
US	9  [        R                  " 5          Sn[        R                  " SU[
        5        U R                  XVSSU-  U-  SSUS	9  U R                  XVSSU-  U-  SSUS	9  S S S 5        [        R                  " SS9 n[        R                  " S5        U R                  XVSSU-  U-  SSUS	9  U R                  U[
        S5        S S S 5        g ! , (       d  f       Ns= f! , (       d  f       g = f)N)r3  iX  r   r8         i@r   r  g     @@rh  r"  ru   ri  r  g2JE?r  g     @@gsW\nc?)ks_2samp: Exact calculation unsuccessful.r   r  Trecordalwaysr   rK  r~  r   r   r   r   r  r  	rt   ru   n1n2deltarw   rx   r  r*  s	            r~   testMiddlingBoth!TestKSTwoSamples.testMiddlingBothS  s    Br	!AKKD"%-KKD"%aK"r)93!b 	 	*aK"r)93"r 	 	+aIv{R'79K"r 	 	+aFEBJO5G"r 	 	+$$&AG##Hg~FMM!	6B;+;=O&2  /MM!
R9K&2  / ' $$D1Q!!(+MM!
R9K&2  /  NA6	 21 '& 21   9AE9(AF
9
F

Fc                 6   Su  p#SU-  U-  S-  S-  nUR                  SSU5      U-
  nUR                  SSU5      nU R                  XVSSU-  U-  SSUS	9  U R                  XVSSU-  U-  SS
US	9  U R                  XVSSU-  U-  SSUS	9  U R                  XVSSU-  U-  SSUS	9  [        R                  " 5          Sn[        R                  " SU[
        5        U R                  XVSSU-  U-  SSUS	9  U R                  XVSSU-  U-  SSUS	9  S S S 5        [        R                  " SS9 n[        R                  " S5        U R                  XVSSU-  U-  SSUS	9  U R                  U[
        S5        S S S 5        g ! , (       d  f       Ns= f! , (       d  f       g = f)N)r  L  r   r8   r  r   r  g     ȹ@ri  r  rh  r  gZ?r  g     @@g@J?r  r   r  Tr  r  r   r  r  s	            r~   testMediumBothTestKSTwoSamples.testMediumBotho  s    Br	!AKKD"%-KKD"%aK"r)93"r 	 	+aK"r)93!b 	 	*aIv{R'79K"r 	 	+aFFRK"$46H"r 	 	+ $$&AG##Hg~FMM!	6B;+;=O&2  /MM!b(8:L&2  / ' $$D1Q!!(+MM!b(8:L&2  /  NA6	 21 '& 21r  c           	         Su  p#US-  nSU-  U-  S-  S-  nUR                  SSU5      U-
  nUR                  SSU5      nU R                  XgSS	U-  S
US9  U R                  XgSSU-  SUS9  U R                  XgSS	U-  SUS9  g )N)'  r  r  r   r8   r  r         Y@r  g    `@g      <rB  r  g     @g򼉷?r  gimb:r  )rt   ru   r  r  lcmr  rw   rx   s           r~   	testLargeTestKSTwoSamples.testLarge  s    gBr	!AKKD"%-KKD"%aK38NSUVaIus{4GBOaFGcM3IbQr   c           
         [         R                  R                  S5      nUR                  SS9R	                  5       nUR                  SSS9R	                  5       nU R                  X4SSS	S
US9  U R                  X4SSS	SUS9  g )N@ i  r  i  rB   r  r6  r  gC?      <ri  r  r  r   r  r  r  r   r~  rt   ru   r  rw   rx   s        r~   test_gh11184TestKSTwoSamples.test_gh11184  s    ii##F+JJDJ!((*JJDJ,335aK)<>T"r 	 	+aK)<>T"r 	 	+r   c           
      X   [         R                  R                  S5      nUR                  SS9R	                  5       nUR                  SSS9R	                  5       nU R                  X4SSS	S
US9  U R                  X4SSSSUS9  U R                  X4SSSS
US9  U R                  X4SSSS
US9  g )Nr  r  r  i'  rB   r  r  g 	_r!?gAD5ri  r  r  r  r  gלN#y7r  gvqw?r  r  s        r~   test_gh11184_bigger$TestKSTwoSamples.test_gh11184_bigger  s     ii##F+JJEJ"))+JJEJ-446aK)<>T"r 	 	+aK)<>T"r 	 	+aI':<R"r 	 	+aF$79O"r 	 	+r   c                    [         R                  R                  S5      n[        SSS5       H  nUR	                  UR                  US95      nUR	                  UR                  US-   SS95      n[        R                  " XESS	9R                  n[        R                  " XES
S	9R                  n[        USU-  5        [        USU-  5        M     g )Nr  r  i.  r  r_   rA   r  r5  r  re  ri  r9   )
r   r  r  r  rj   r  rl   rk  rA  r6   )rt   ru   r  rw   vals1vals2r  ri  s           r~   test_gh12999TestKSTwoSamples.test_gh12999  s    ii##F+tUD)AJJszzz34EJJszzBSzABENN5g>EEENN5g>EEE5!e),5!e), *r   c                 \   Su  p#US-  nSU-  U-  S-  S-  nUR                  SSU5      U-
  nUR                  SSU5      nU R                  XgSSU-  S	S
US9  U R                  XgSSU-  SSUS9  U R                  XgSSU-  S	SUS9  U R                  XgSSU-  SUS9  U R                  XgSSU-  SUS9  [        R                  " 5          Sn[        R                  " SU[
        5        U R                  XgSSU-  SSUS9  U R                  XgSSU-  SSUS9  S S S 5        g ! , (       d  f       g = f)N)r  i*  r  r   r8   r   r-  r  g     @gkHY?ri  r  gLɔ.?r  rh  r  g.LbG2?rB  r  r   gr?֎?r  r   )rK  r~  r   r   r   r   )	rt   ru   r  r  r  r  rw   rx   r  s	            r~   testLargeBothTestKSTwoSamples.testLargeBoth  sf    gBr	!AKK3#e+KK3#aK6H"r 	 	+aK6H"r 	 	+aK6H!b 	 	*aIus{4F2NaFD3J0BrJ$$&AG##Hg~FMM!	53;8J&2  /MM!s
4F&2  / '&&s   AD
D+c                     Sn[         R                  " UR                  SS/5      UR                  S/5      5      n[        X2US9  g )Nrc  r   r8   r9   rB  )rl   rk  rj   r   )rt   ru   rD  r   s       r~   testNamedAttributes$TestKSTwoSamples.testNamedAttributes  s8    ,
nnRZZA/QCAC3r   T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  rL  )scipy.stats._stats_pyr		  r
	  r   r  r   FloatingPointError)rt   r		  r
	  s      r~   test_some_code_paths%TestKSTwoSamples.test_some_code_paths  sk    	

 	*!Q15#D!Q5[[),.Ia,,.Ia, *))s   )A%%
A3r  r   c                    [        [        [        US9   [        R                  " UR                  US   5      UR                  US   5      5      n[        UR                  UR                  [        R                  5      5        [        UR                  UR                  [        R                  5      5        S S S 5        g ! , (       d  f       g = f)Nre  r   r   )r$   r   r   rl   rk  rj   r5   rC  r   rs   rA  )rt   r  ru   r   s       r~   test_argument_checking'TestKSTwoSamples.test_argument_checking  s     +3HRP..DG!4bjja6IJCCMM2::bff+=>CJJ

266(:; QPPs   B"B??
Cc                 H   [         R                  R                  S5      nSnUR                  [        R
                  R                  X2S9R                  5       5      nUS-   n[        R                  " XESSS9  [        R                  " XESSS9  [        R                  " XES	SS9  g
)zEnsure gh-12218 is fixed.l   9B i    r  r  r   r  ri  rT  r  r  N)	r   r  r  rj   rl   r\  r  r   rk  )rt   ru   r  r  rvs1rvs2s         r~   test_gh12218TestKSTwoSamples.test_gh12218  s    
 ii##J/zz%--+++FMMOPaxtywGtvGDt{Ir   rO   r  c           	         Uc  [        U5      O
[        X!5      n[        R                  R	                  SS9nUR                  UR                  SS9S-   US9nUR                  UR                  SS9US9nSn[        [        XbS	9   [        R                  " XES
S9n[        UR                  UR                  SUS9SS9  S S S 5        g ! , (       d  f       g = f)Ni{fr  iq  r  rA   rN   iq  z(ks_2samp: Exact calculation unsuccessfulre  r  r  r   rt  rI  )r(   ro  r   r  r  rj   r$   r   rl   rk  r4   rA  )rt   rO   ru   r  r,  r;  r  r   s           r~   test_warnings_gh_14019'TestKSTwoSamples.test_warnings_gh_14019  s    (- $72;M ii###2

3::3:/#5U
C

3::3:/u
=<w>..6BCCJJ

2U
(C%P ?>>s   9C
Cr  r  ))r  皙@r	  r   )r  ffffff@r   re   )r  r	  r	  r   )r  r	  r   re   c                 j   UR                  SUR                  S9n[        U5      n[        R                  " U5      S   R                  U5      n[        R                  " XxUS9n	[        U	R                  UR                  SUR                  S9SS9  U	R                  U:X  d   eU	R                  U:X  d   eg )Nr   rN   r<   r  rN  rH  r  )r   r   r1   rp   rq   rr   rl   rk  r4   rC  rj   rX  rY  )
rt   r  r  r  r  r  ru   rw   rx   r   s
             r~   r  #TestKSTwoSamples.test_location_sign  s     IIcI,AJFF1IaLU#nnQ{;rzz#RZZz'HuU%%555!!X---r   r   N)rh  )%r   r   r   r   r;  r  r~  r  r  r  r  r  r  r  r   r   r  r  r  r  r  ry  r  r  r	  r	  r   r	  r   r	  r	  r	  rl   rU  rk  r  r   r   r   r~   r  r    s   F5 <;
<<	>'&
S
D [[7 76 [[7 78	R+ [[+ + [[	- 	- [[/ /.4 [[d#, $ ,  [[VrB4jB4*r2h%GH< I< [[
J 
J [[W&BCQ DQ [[Xenn'EF[[I;<

.< G
.r   r  z)ignore:divide by zero:RuntimeWarning:daskz(ignore:invalid value:RuntimeWarning:daskc                      \ rS rSrS rS rS r\" SSS9S 5       rS	 r	\" SS
S9S 5       r
\" SSS9S 5       rS r\" SSS9\R                  R                  S\R"                  " S5      S4\R"                  " S5      S4/5      S 5       5       rS r\" SSS9\R                  R                  S/ SQ5      S 5       5       rSrg )!TestTTestReli"  c           
         UR                  SUR                  S9nUR                  SUR                  S9nUR                  SSSUR                  S9nUR                  SSSUR                  S9nUR                  UR                  SSSUR                  S9UR                  SSSUR                  S9/5      nUR                  UR                  SSSUR                  S9UR                  SSSUR                  S9/5      n[        R
                  " XESS	9u  p[        X5        [        X5        [        R
                  " UR                  UR                  SS	9u  p[        XR                  X"* /5      5        [        XR                  X3/5      5        [        R
                  " XgSS	9u  p[        XR                  X"* /5      5        [        XR                  X3/5      5        g )
Nu?rN   ȵI?r   r  r  KX@r   rY   )rj   r   rK  r  rl   	ttest_relr4   r   )
rt   ru   trrZ  r	  r	  rvs1_2Drvs2_2Dro  ri  s
             r~   test_ttest_rel_xpTestTTestRel.test_ttest_rel_xp&  s    ZZ+2::Z>ZZ+2::Z>{{1c3bjj{9{{4BJJ{?((Ac3bjj9D&#RZZ@
 ((D&#RZZ@AsCrzz:
 t2wyy'))!<88RI./88RH-.wa888RI./88RH-.r   c           
         UR                   nUR                  SUS9nUR                  SUS9nUR                  X3* /5      UR                  XD/5      4nUR                  SSSUS9nUR                  SSSUS9nUR                  UR                  SSSUS9UR                  SSSUS9/5      nUR                  UR                  SSSUS9UR                  SSSUS9/5      n	[        R
                  " XgSS	9u  p[        X5        [        X5        [        R
                  " UR                  U	R                  SS	9u  p[        XS   5        [        XS   5        [        R
                  " XSS	9u  p[        XS   5        [        XS   5        [        R                  " 5          [        R                  " S
S
S9   [        R                  " S
S[        5        [        R
                  " UR                  S5      UR                  S5      5      u  pS S S 5        S S S 5        UR                  U
5      (       d   eUR                  U5      (       d   eSn[        R
                  " XgSS	9n[        XUS9  UR                  XU/5      nUR                  XU	/5      n[        R
                  " XSS	9u  p[        XR                  US   4S-  5      5        [        XR                  US   4S-  5      5        [        R
                  " UR!                  USS5      UR!                  USS5      SS	9u  p[        XR                  US   4S-  5      5        [        XR                  US   4S-  5      5        Sn["        R$                  " [&        US9   [        R
                  " XgSS9  S S S 5        [        R
                  " XgSSS9u  p[        XR                  SUS-  -
  5      5        [        XR                  U5      5        [        R
                  " XgSSS9u  p[        XR                  US-  5      5        [        XR                  U5      5        g ! , (       d  f       GN>= f! , (       d  f       GNH= f! , (       d  f       N= f)Nr#	  rN   r$	  r   r  r  r%	  r   rY   r   r`  rb  r   r   rc  rB  re   r9   r8   r}  r   rN  r  r  r  r  )r   rj   r  rK  rl   r&	  r4   r   r   r   r   r  r   r   r  r   r  r   r   r   )rt   ru   rO   r'	  rZ  tprr	  r	  r(	  r)	  ro  ri  rD  r   rvs1_3Drvs2_3Dr  s                    r~   test_ttest_relTestTTestRel.test_ttest_relK  s   

 ZZ+5Z9ZZ+5Z9hhCy!288RH#55{{1c3e{4{{4E{:((BKK35KAKKfcKGI J((BKKfcKGKK35KAC D t2oogii;q6"q6"oogQ7q6"q6" $$&HX>##=~O??2::b>2::b>BDA ? '
 xx{{{xx{{{ -
oodq1C3 ((Gg67((Gg67wb988SVIaK0188SVIaK01r{{7Aq9!{{7Aq9$%' 	88SVIaK0188SVIaK01 M]]:W5OODG< 6 tvF::a"Q$h/0::b>*tyI::bd+,::b>*I ?> '&8 65s1   Q/AP:Q:Q:
Q		Q
Q
Q,c                    [         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[        R                  R                  SSUS9-   n[         R                  US'   UR                  UR                  5       5      UR                  UR                  5       5      pC[        R                  " X35      n[        UR                  UR                  UR                  5      5        [        UR                  UR                  UR                  5      5        g )	NNa r;   r_     ru  r3  rJ  r6  r  r  )r   r  r  rl   rc  r  rs   rj   r   r&	  r5   rC  rA  )rt   ru   r  rw   rx   r   s         r~   test_nan_policy_propagate&TestTTestRel.test_nan_policy_propagate  s    ii##H-JJNNq3NG#ZZ^^#C^HZZ^^#Cc^BC#zz!((*%rzz!((*'=1ooa#rzz"&&'9:

BJJrvv$67r   Tz lazy->limited nan_policy supportr   c                    [         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[        R                  R                  SSUS9-   n[         R                  US'   UR                  UR                  5       5      UR                  UR                  5       5      pC[        R                  " X4S	S
9n[        UR                  UR                  S5      5        [        UR                  UR                  S5      5        Sn[        R                  " [        US9   [        R                  " X4SS
9  S S S 5        Sn[        R                  " [        US9   [        R                  " X4SS
9  S S S 5        g ! , (       d  f       NH= f! , (       d  f       g = f)Nr3	  r;   r_   r4	  ru  r3  rJ  r5	  r   r   ghm#1?gry̧?r   r   r   ry  r   )r   r  r  rl   rc  r  rs   rj   r   r&	  r4   rC  rA  r   r   r   )rt   ru   r  rw   rx   r   r  s          r~   r  TestTTestRel.test_nan_policy  sJ    ii##H-JJNNq3NG#ZZ^^#C^HZZ^^#Cc^BC#zz!((*%rzz!((*'=1ooav6rzz2E'FG

BJJ/A$BC1]]:W5OOAW5 6 .]]:W5OOAX6 65	 65 65s   F5G5
G
Gc                 Z   [        [        SUS9   [        R                  " UR	                  / SQ5      UR	                  / SQ5      5      u  p#S S S 5        [        UR                  W5      UR	                  UR                  5      5        [        WUR	                  S5      5        [        R                  " SS9   [        R                  " UR	                  / SQ5      UR	                  / SQ5      5      nS S S 5        [        WR                  UR	                  UR                  5      5        [        UR                  UR	                  UR                  5      5        UR	                  S[        R                  /S	S//5      n[        R                  " XQR                  S
5      5      n[        UR                  UR	                  S[        R                  /5      5        [        UR                  UR	                  S[        R                  /5      5        UR                  S5      nSn[        R                   " ["        US9   [        R                  " UR%                  US5      UR%                  US5      5        S S S 5        g ! , (       d  f       GN3= f! , (       d  f       GN= f! , (       d  f       g = f)Nr  re  r  r  r   r   r  r   rT  r  r   r   r  zXArray shapes are incompatible for broadcasting.|operands could not be broadcast togetherr   )r>   r9   r8   r9   r:   )r$   r   rl   r&	  rj   r5   absr#  r   r  rC  rs   rA  rd  r   r   r   r   rn   )rt   ru   ro  ri  r   ananrw   r  s           r~   test_edge_casesTestTTestRel.test_edge_cases  s   /HRP??2::i#8"**Y:OPDA Q 	q	2::bff#562::c?+[[*//"**Y"7I9NOC +rzz"&&'9:

BJJrvv$67zzB<#r34oodHHV$45rzz1bff+'>?

BJJ266{$;< IIbM>]]:W5OOBJJq&12::a3KL 65) QP +* 65s#   <I87:J
78J8
J

J
J*z"multidimensional 'omit' is np-onlyr  c           	         [         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                  US S 2SS24'   [         R                  US S 2SS24'   [         R                  S	 5       n[
        R                  " [        [        S
9   [        R                  " X#SSS9u  pVS S S 5        [
        R                  " [        [        S
9   [        R                  " X#SSSS9u  pxS S S 5        [        WWSS9  [         R                  " SS9   [        WU" UWS5      SS9  S S S 5        [
        R                  " [        [        S
9   [        R                  " X#SSSS9u  pxS S S 5        [        XuSS9  [         R                  " SS9   [        WU" UWS5      SS9  S S S 5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N}= f! , (       d  f       g = f)Nr   r  r  r%	  r  r0  r  r  c                 L    U S:  a  US:X  d  U S:  a  US:X  a  US-  $ SUS-  -
  $ Nr   r  r  r8   r   r   ro  ri  alts      r~   	converterETestTTestRel.test_multidimensional_nan_policy_omit.<locals>.converter  s3    A#-QUsi7G1uA;r   r   r   r   r   r  rw  rt  r  r   r  r  )r   r  rK  rs   	vectorizer   r  r   r   rl   r&	  r   r  )	rt   ru   r(	  r)	  rE	  r'	  rZ  ro  ri  s	            r~   %test_multidimensional_nan_policy_omit2TestTTestRel.test_multidimensional_nan_policy_omit  s   ((BKK34KKfc:< =((BKKfc:KK346 7FF2b5FF2b5 
	 
	
 \\,4EF__WqVLFB G \\,4EF??7Q.4&JDA G 	2E*[[*AyR8uE + \\,4EF??7Q.4)MDA G 	E*[[*AyR;%H +* GF GF +* GF +*s<   .H,H-H&&H7&I
H
H#&
H47
I
I"lazy -> limited nan_policy supportc                    UR                  UR                  SSS/5      nUR                  / SQ5      n[        R                  " X#SS9n[        R                  " X2SS9n[	        UR
                  UR
                  * 5        [	        UR                  UR                  5        [        R                  " USS  USS  5      n[	        UR
                  UR
                  5        [	        UR                  UR                  5        [	        UR
                  UR                  S5      S	S
9  [	        UR                  UR                  S5      S	S
9  g )Nr   r   r   r   r   r   r   r   r   r   r!  -C6?rI  grh|?)rj   rs   rl   r&	  r4   rC  rA  )rt   ru   rw   rx   r  r  r3s          r~   test_ttest_rel_nan_2nd_arg'TestTTestRel.test_ttest_rel_nan_2nd_arg  s     JJS#./JJ+,__Qf5__Qf5r||m4		299- __QqrUAabE*bll3		299- 	bjjoDA		2::f#5DAr   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                  UR                  5      5        [        UR                  UR                  UR                  5      5        g ! , (       d  f       N= frs  )r$   r   r   rl   r&	  rj   rM  	_stats_pyTtestResultr5   rC  rs   rA  rA  s      r~   #test_ttest_rel_empty_1d_returns_nan0TestTTestRel.test_ttest_rel_empty_1d_returns_nan  s     +3HRP__RZZ^RZZ^DF Q&%//"="=>>>>(("**RVV*<=rzz"&&'9:	 QPs   6C
C*
dask.arrayzdask fails this oner  b, expected_shaper   r;   r   r  r   r   r   r9   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N)r9   r   r   rN   r   re   rY   rK  )r  rj   rO   r   r   r   r   r   rl   r&	  rM  rR	  rS	  r   rs   r5   rC  rA  )rt   r[  expected_shaperu   rO  r  expected_values          r~   test_ttest_rel_axis_size_zero*TestTTestRel.test_ttest_rel_axis_size_zero  s     HHYJJqJ($$&##H.CEWX__Q3F ' &%//"="=>>>>FFC((.9~6 '&    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 N)r   r>   r   r;   r>   r   r   rY   r;   r   )	r  rl   r&	  rM  rR	  rS	  rC  r  rA  )rt   ru   rO  r[  r  s        r~    test_ttest_rel_nonaxis_size_zero-TestTTestRel.test_ttest_rel_nonaxis_size_zero  s    
 HHYHHYA.&%//"="=>>>>%%///}}""f,,,r   r?  z*needs stdtrit; lazy->can't use root finderr  rZ  c                    [         R                  R                  S5      nSnUR                  UR	                  USSS9R                  5       5      nUR                  UR	                  USSS9R                  5       5      nSS/S[         R                  /[         R                  * S	/S
.n[        R                  " XVUS9nUR                  SS9n	[        U	R                  UR                  Xq   S   5      5        [        U	R                  UR                  Xq   S   5      5        [        UR                  UR                  US-
  5      5        g )Nl   C67l:  r_   rB   r8   r  gZ?Ygi{a?g8 gC?r  r  r  r  r   r   )r   r  r  rj   r  r   r#  rl   r&	  r  r4   r  r  r  )
rt   r  ru   r  r  rw   rx   r   r   r  s
             r~   test_ttest_rel_ci_1d!TestTTestRel.test_ttest_rel_ci_1d*  s    ii##$78JJszzqcz;BBDEJJszzqaqz9@@BC 01BC-rvv6!457 ooa<$$d$;

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

1Q30r   r   N)r   r   r   r   r*	  r0	  r6	  r   r  r>	  rH	  rO	  rT	  r   r   r   r   r  r_	  rf	  ri	  r   r   r   r~   r!	  r!	  "  s   #/J?+B8 .PQ7 R7,M2 d+OPI QI@ .RSB TB,; l+@A[[0!xx	2F;!xx	2F;=>7> B7
- k*VW[[],LM1 N X1r   r!	  ztest_fun, argsr_   c                    ^ U " U4S jU 5       6 nSn[         R                  " [        US9   UR                  SS9  S S S 5        g ! , (       d  f       g = f)Nc              3   F   >#    U  H  nTR                  U5      v   M     g 7fr.  )rj   ).0argru   s     r~   	<genexpr>#test_ttest_ci_iv.<locals>.<genexpr>I  s     5RZZ__s   !r  r   r_   r  )r   r   r   r  )test_funr  ru   r   r  s     `  r~   test_ttest_ci_ivrr	  D  sE    
 55
6CDG	z	14 
2	1	1s   A
ArB  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$ )NrY   r   rC  )rj   ro   r   r  )rw   rZ   mur   nobsru   s        r~   _stats_desc_stats.<locals>._statsR  sI    JJqMWWQW"ffQaf0wwt}}r   r  )r#   )r  r  rZ   ru   rw	  s      ` r~   _desc_statsry	  O  s/    $&J	 BB "fR...r   c                   Z    \ rS rSrS r\" SSS9S 5       r\" SSS9S 5       rS rS	 r	S
r
g)TestTTestIndi\  c                 
   UR                  S5      nUR                  S5      nUR                  X"* /5      nUR                  X3/5      nUR                  SSS5      nUR                  SSS5      nUR                  Xg/5      nUR                  Xv/5      n	[        R                  " XgSS9n
U
u  p[        X5        [        X5        [        R                  " [        Xg5      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                  " XSS9n
[        U
R                  U5        [        U
R                  U5        [        R                  " [        XSS96 n
[        U
R                  U5        [        U
R                  U5        S	n[        R                  " [        US
9   [        R                  " XgS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                  " XgSS9u  p[        USUS-  -
  5        [        X5        [        R                  " XgS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                  " XgSS9n
[%        U
R                  U5        [%        U
R                  U5        [        R                  " [        Xg5      6 n
[%        U
R                  U5        [%        U
R                  U5        g ! , (       d  f       GN= f! , (       d  f       GN= f)N	ru?g8Mѱ?r;   i   r  r   r   rY   r}  r   rN  r  r  r  r8   r  r  )rj   r  rK  rl   	ttest_indr4   ttest_ind_from_statsry	  r   rC  rA  r   r   r   rs   r  r   r  r5   )rt   ru   r'	  rZ  tr_2Dpr_2Dr	  r	  r(	  r)	  r   ro  ri  r  r  r  r  r{  s                     r~   test_ttest_indTestTTestInd.test_ttest_ind^  s   ZZ*+ZZ+,"c#""{{1c3'{{1c3'((D<(((D<(oodq1((+d*ABoogii;u-

E*((+gii*KLu-

E*oogQ7u-

E*((+gQ*OPu-

E* M]]:W5OODg> 6 799gii0]]:W5&&DGD 6 tv>11:&tyAa4  wyy'))!P799gii0))4DVD7T[[1wyy'))!P799gii0))4DVD7T[[1 jj xx		$**Q-0A5sDAoodq1s+

C(((+d*ABs+

C(M 65 65s   U $U 
U
U!TrJ	  r   c                    [         R                  R                  S5      n[        R                  R                  SSSUS9n[        R                  R                  SSSUS9n[         R                  US'   UR                  UR                  5       5      UR                  UR                  5       5      pC[        R                  " X45      n[        UR                  UR                  UR                  5      5        [        UR                  UR                  UR                  5      5        [        [        SUS9   [        R                  " UR                  / S	Q5      UR                  / S
Q5      5      u  pgS S S 5        [        WUR                  UR                  * 5      5        [        WUR                  S5      5        UR                  / S	Q5      n[        R                  " X35      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                  " XR!                  S5      5      n[        UR                  UR                  SUR                  /5      5        [        UR                  UR                  SUR                  /5      5        g ! , (       d  f       GN= f)NiURr;   r_   r4	  ru  r3  r  re  r  r  r   r   re   r  r   )r   r  r  rl   rc  r  rs   rj   r   r	  r5   rC  rA  r$   r   r#  rd  )	rt   ru   r  rw   rx   r   ro  ri  r=	  s	            r~   test_special_casesTestTTestInd.test_special_cases  s    ii##H-JJNNq3NGJJNNq3NG#zz!((*%rzz!((*'=1ooa#rzz"&&'9:

BJJrvv$67 /HRP??2::i#8"**Y:OPDA Q2::rvvg./2::b>*JJy!ooa#rzz"&&'9:

BJJrvv$67 zzArvv;Q01oodHHV$45rzz1bff+'>?

BJJ266{$;< QPs   3<K,,
K;c                    [         R                  R                  S5      n[        R                  R                  SSSUS9n[        R                  R                  SSSUS9n[         R                  US'   UR                  UR                  5       5      UR                  UR                  5       5      pC[        R                  " X4SS9n[        R                  " X1R                  U5      )    USS9n[        UR                  UR                  5        [        UR                  UR                  5        S	n[        R                  " [         US
9   [        R                  " X4SS9  S S S 5        Sn[        R                  " [         US
9   [        R                  " X4SS9  S S S 5        g ! , (       d  f       NH= f! , (       d  f       g = f)Ni#r;   r_   r4	  ru  r3  r   r   r   r   r   ry  r   )r   r  r  rl   rc  r  rs   rj   r   r	  r  r4   rC  rA  r   r   r   )rt   ru   r  rw   rx   r   r   r  s           r~   test_ttest_ind_nan_policy&TestTTestInd.test_ttest_ind_nan_policy  s1   ii##H-JJNNq3NGJJNNq3NG#zz!((*%rzz!((*'=1ooav6ooa!oqVDs}}5

CJJ/1]]:W5OOAW5 6 .]]:W5OOAX6 65	 65 65s   F F1 
F.1
F?c                    [         R                  " SSS5      n[         R                  " SSS5      n[         R                  " X/5      n[         R                  " X!/5      n[         R                  " X3U/5      n[         R                  " XDU/5      n[         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                  " XVS
SS9u  p[        R                  " XVS
SSS9u  p[        XSS9  [        X" XS5      SS9  [        R                  " XVS
SSS9u  p[        XSS9  [        X" XS5      SS9  g )Nr;   r~	  r  r   r_   r  r<   ra   c                 L    U S:  a  US:X  d  U S:  a  US:X  a  US-  $ SUS-  -
  $ rB	  r   rC	  s      r~   convert5TestTTestInd.test_3D_nan_policy_omit.<locals>.convert  s3    A#-QUsi7G1uA;r   r   r   r  r  )rZ   r   r  rt  r  r  )	r   rK  r   r  rs   rG	  rl   r	  r   )rt   r	  r	  r(	  r)	  r.	  r/	  r	  rE	  r'	  rZ  ro  ri  s                r~   test_3D_nan_policy_omit$TestTTestInd.test_3D_nan_policy_omit  s1   {{1c3'{{1c3'((D<(((D<())Ww78))Ww78!vv1be ff1ad
	 LL)	fMwaF+13E*9RV45AwaF+46E*9RY7eDr   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  rb  r   r   )	r   r   r   r  r   r   rl   r	  r  )rt   ro  ri  s      r~   test_ttest_ind_scalar"TestTTestInd.test_ttest_ind_scalar  s    $$&H(E##=~O??2r*DA )F& xx{{{xx{{{ )F(E&&s"   B=6B,!B=,
B:	6B==
Cr   N)r   r   r   r   r	  r   r	  r	  r	  r	  r   r   r   r~   r{	  r{	  \  sN    Q)f .RS= T=: .RS7 T7(E>r   r{	  rV	  z&Dask doesn't support ResamplingMethodsr  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)$TestTTestIndResamplingi  r  i
r9   r:   r  r_   r   r8   r;   r3  ru  r>   g'^P?gCq?g$R?)g=B?g?goŜ?gp?g'^?rZ   r   N)r  rZ   	equal_varTre   )rZ   r  rZ  r  r  r  )ra   )r8   ra   c                 F   [         R                  R                  S5      nUR                  UR                  US9R	                  5       5      nUR                  UR                  SS9R	                  5       5      n[        SS9n[         R                  R                  S5      n[        R                  " SSU0UD6n[        R                  " XVSXS	9n	S
 n
[         R                  R                  S5      n[        R                  " XV4U
4SUUS.UD6n[        U	R                  UR                  5        [        U	R                  UR                  5        [        R                  " XVSUS9n[        U	R                  UR                  5        [        U	R                  UR                  SS9  g )N   Nvf_aB r  rb     rp     N\Sju	 r  re   rZ   r  r  c                 @    [         R                  " XUS9R                  $ NrY   )rl   r	  rC  )rw   rx   rZ   s      r~   rC  ATestTTestIndResampling.test_permutation_method.<locals>.statisticG  s    %//!T*J*T*T#Tr   )rZ   r  r  r  r  r  r   )r   r  r  rj   r   rO  rl   r  r	  permutation_testr4   rC  rA  )rt   r  r  ru   r  rw   rx   r  r  r   rC  r   s               r~   test_permutation_method.TestTTestIndResampling.test_permutation_method8  sN    ii##$45JJszzuz-4467JJszzrz*1134#& ii##O4((;S;F;ooaT 	Uii##O4$$aVY HRS1<H@FH 	s}}5

CJJ/ ooaEs}}5

CJJT:r   c                   ^ [         R                  R                  S5      nTR                  UR                  US9R	                  5       5      nTR                  UR                  SS9R	                  5       5      n[        SS9nU4S jn[         R                  R                  S5      nUR                  UR                  /n	[        R                  " XV4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                  " XVSXS9n[        UR                  U
R                  5        [        UR                  U
R                  5        [        R                  " SSS0UD6n[        R                  " XVSXS9n[        UR                  U
R                  5        [        UR                  U
R                  5        [        R                  " XVSUS9n
[        UR                  U
R                  5        [        UR                  U
R                  SS9  g )Nr	  r  rb   r	  r	  c                    > TR                  U 5      TR                  U5      p[        R                  " XUS9R                  $ r	  )rj   rl   r	  rC  )rw   rx   rZ   ru   s      r~   rC  ATestTTestIndResampling.test_monte_carlo_method.<locals>.statistic^  s1    ::a="**Q-q??1d3===r   r	  re   )r  rC  rZ   r  r  r	  r  r  rc  r  r   )r   r  r  rj   r   rO  r  rl   monte_carlo_testr  r	  r4   rC  rA  )rt   r  r  ru   r  rw   rx   r  rC  r  r   r  r   s      `         r~   test_monte_carlo_method.TestTTestIndResampling.test_monte_carlo_methodT  s    ii##$45JJszzuz-4467JJszzrz*1134#&	> 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}}5

CJJ/ ''FOFvFooaTs}}5

CJJ/ ooaEs}}5

CJJT:r   c                     Sn[         R                  " [        US9   UR                  / SQ5      UR                  / SQ5      pC[        R
                  " X4SS9  S S S 5        g ! , (       d  f       g = f)NzC`method` must be an instance of `PermutationMethod`, an instance...r   r  rz  	migratoryr  )r   r   r   rj   rl   r	  )rt   ru   r  rw   rx   s        r~    test_resampling_input_validation7TestTTestIndResampling.test_resampling_input_validationz  sH    W]]:W5::i("**Y*?qOOA5 655s   ;A  
A.r   )%r   r   r   r   Nr   r  r  r  r  r   rO  r[  r  b2r  b3rl   rc  r  rn   r   r	  r	  p_dp_d_genp_d_bigr   r  paramsr   r   r   r	  r	  r	  r   r   r   r~   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";H6r   r	  c            
       6   \ rS rSr\R
                  R                  SSS00 /SS/S9\R
                  R                  SSS	/SS
/S9S 5       5       r\R
                  R                  \R
                  R                  SSS00 /SS/S9\R
                  R                  SSS	/SS
/S9\	" SSS9\	" SSS9\	" SSS9S 5       5       5       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)TestTTestIndCommoni  kwdstrimrJ  basic)idsr	  TFunequal_varc           	      T   [         R                  R                  S5      nUR                  UR                  S5      R	                  5       5      nUR                  UR                  S5      R	                  5       5      n[
        R                  " XV4SS0UD6nSu  pn
XXS 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        g )	N   H-F r;   r:   r:   r=   r   r<   r:   r   r>   r8   r<   rZ   rf   )r8   r9   r   r   rk  )
r   r  r  rj   r   rl   r	  r4   rC  rA  )rt   r	  r	  ru   r  rO  r[  r   r  r  r  r  r	  r  s                 r~   test_ttest_many_dims_fast,TestTTestIndCommon.test_ttest_many_dims_fast  s     ii##J/JJszz"45<<>?JJszz/299;<ooa44t4 a!Q1a q!Q1}r7B7$7aA!m4dnnE

1aq=14;;?r   array_api_strictzindexing in test is too fancyr  r?  rV	  ztoo slowc                    [         R                  R                  S5      nUR                  S5      R                  5       nUR                  S5      R                  5       n[        R
                  " UR                  U5      UR                  U5      4SS0UD6n[         R                  " [         R                  " US5      SS5      n[         R                  " [         R                  " US5      SS5      n	UR                  UR                  5       5      UR                  U	R                  5       5      pUR                  S S n
UR                  U
5      nUR                  U
5      n[        S	 U
 5       6  H@  nX   nX   n[        R
                  " X4SS0UD6nUR                  X'   UR                  X'   MB     [        UR                  U5        [        UR                  U5        g )
Nr	  r	  r	  rZ   rf   )r   r   r   r   r8   r   re   )r;   r   r:   r   r   r   c              3   8   #    U  H  n[        U5      v   M     g 7fr.  )r  )rm	  r  s     r~   ro	  ?TestTTestIndCommon.test_ttest_many_dims_full.<locals>.<genexpr>  s      95aq5s   )r   r  r  r   rl   r	  rj   r  tiler  rd  r   rC  rA  r4   )rt   r	  r	  ru   r  rO  r[  r   rw   rx   r  
statisticspvaluesindicesxiyir   s                    r~   test_ttest_many_dims_full,TestTTestIndCommon.test_ttest_many_dims_full  sn    ii##J/JJ)*113JJ'..0oobjjmRZZ]LLtL KK#56B?KK#56B?zz!((*%rzz!((*'=1XXe_
((5/ 95 9:GBB??2;;d;D"&..J#{{G ; 	z2

G,r   rZ   re   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	'   UR                  UR                  5       5      UR                  UR                  5       5      peUR                  UR                  XV-   US
95      n[        R                  " 5          [         R                  " SS9   [        R                  " SS[        5        [        R                  " SS[        5        [        R                   " XV4SU0UD6nS S S 5        S S S 5        UR                  WR"                  5      n	[%        X5        UR                  UR&                  5      n
[%        X5        g ! , (       d  f       Nc= f! , (       d  f       Nl= f)Nl   AoI;r_   )r;   r9   r_   r  r  r   r8   r9   r<   rY   r   r  z'invalid value encountered in less_equalr  rZ   )r   r  r  r  r  rs   rj   r   r  ri  r   r   r  r   r   rl   r	  rA  r5   rC  )rt   r	  rZ   ru   r  rO  r[  r!  r   p_nansstatistic_nanss              r~   test_nans_on_axis$TestTTestIndCommon.test_nans_on_axis  sl    ii##$9:LL*L-44W=LL*L-44W=VV!Q
VV!Q
zz!((*%rzz!((*'=1 88BFF15tF45 $$&H(E##C^U##H.GX//!:T:T:C	 )F& #**%)#--01 )F(E&&s%   GAG*G
G	G
G&r   N)r   r   r   r   r   r   r   r	  ry  r   r	  r	  r   r   r   r~   r	  r	    st    [[VvrlB%7"('!2  4[[[4-"-}!=  ?@?4@ [[[[VvrlB%7"('!2  4[[[4-"-}!=  ?(1PQk*IJl:6- 7 K R?4 -2 [[VvrlB%7"('!2  4[[Vb!W-2 .42r   r	  c            	          \ 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      \R                  R                  S/ SQ5      S 5       5       rS r	S r
\R                  R                  SS5      S 5       r\R                  R                  S/ S Q5      S! 5       rS"rg#)$TestTTestTrimmedi  r  r  r0  g@g9(?gerJ  )      L@33333`@ra   33333^@(\P@rL   fffffڇ@gBM)u?g]@)r	  r	  r  r	  r	  g     S@r	  gyd?g	s5v@g{Gz?r/  r/  r  r   ffffff?r   r  r  rQ  r	  r	  rG   g@rD  rD   rA   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, trimrO   r  c                     Uc  UO
[        Xv5      nUR                  XS9UR                  X&S9p![        R                  " XUSS9u  p[	        XR                  XFS95        [	        XR                  X6S95        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
NrN   Fr	  r	  )ro  rj   rl   r	  r4   )
rt   rO  r[  rZ  r'	  r	  rO   ru   rC  rA  s
             r~   test_ttest_compare_r%TestTTestTrimmed.test_ttest_compare_r  sm    B GB,>zz!z)2::a:+E1!OOAtuM		::b:#>?

2
 ;<r   c                     / SQn/ SQnUR                  U5      UR                  U5      p2[        R                  " X#SSS9u  pE[        XQR                  S5      SS9  [        XAR                  S	5      SS9  g )
N)ra   r]      r  r  ,   ra   r]   r	  r  r  r	  )rh   r.  r]   ra   r0        rh   r.  r]   ra   r0  r	  r	  g
ףp=
?Fr	  gRbv?r  rI  gOi?rj   rl   r	  r4   rt   ru   rO  r[  rC  rA  s         r~   test_compare_SAS!TestTTestTrimmed.test_compare_SAS  sb     =Dzz!}bjjm1 "OOAseL	

8 44@	::h#7dCr   c                     / SQn/ SQnUR                  U5      UR                  U5      p2[        R                  " X#SS9u  pE[        XQR                  S5      5        [        XAR                  S5      5        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	  rJ  r	  gR?g^Nr	  r	  s         r~   test_equal_varTestTTestTrimmed.test_equal_var"  s]    & DCzz!}bjjm1!OOAr:	

+> ?@	::.@#ABr   z	alt,pr,tr))r  gjΜ>5?r	  )r  gn4aƂW?r	  c                     / SQn/ SQnUR                  U5      UR                  U5      pe[        R                  " XVSSUS9u  px[        XR                  U5      5        [        XtR                  U5      5        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	  rJ  F)r	  r	  r  Nr	  )	rt   rD	  rZ  r'	  ru   rO  r[  rC  rA  s	            r~   test_alternatives"TestTTestTrimmed.test_alternatives=  s`     DCzz!}bjjm1!OOArU8;=	

2/	::b>2r   r	  )gɿrA   r   c                     Sn[        [        US9   [        R                  " UR	                  SS/5      UR	                  SS/5      US9  S S S 5        g ! , (       d  f       g = f)Nz/Trimming percentage should be 0 <= `trim` < .5.r   r   r8   r	  )r   r   rl   r	  rj   )rt   r	  ru   r   s       r~   test_trim_bounds_error'TestTTestTrimmed.test_trim_bounds_errorQ  sG    A:U3OOBJJ1v.

Aq60BN 433s   9A
A!r   N)r   r   r   r   r	  r   r   r   r	  r	  r	  r	  r	  r   r   r   r~   r	  r	    s    
(;=PRTU	2O	/	5	4o	/	6	@	@	,b	2
H
  "34Db	JKF$ [[16:[[W&BC#= D ;#=JD C6 [[[N3	3  [[V\2O 3Or   r	  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TestTTestCIiX  )r9   r8   r8   r;   )r  )gͿe13@gv7?gę"Ͽg8 {M(?r  r	  r	  gv7?gx_?rY	  g
/?gD .ɿ)r8   r   r   )reϿ-</&@g?JJ?gbտg3Պ?)r   r   r   r	  r	  g?JJ?gF?)r   r   r   g{?gads2ѿ)r8   r   r   gs"%οr.  gW"?)r   r   r   gW"?r   r   r   g:T'?)r8   r   r   g:пr]   g0:5?)r   r   r   g0:5?r  g be?)r8   r   r   r  rZ  r	  FTr	  r   rJ  r?  r  r  c                    U(       a  U(       a  [         R                  " S5        U(       a&  [        U5      (       d  [         R                  " S5        [        R
                  R                  S5      nUR                  UR                  S5      5      nUR                  UR                  S5      5      n[        R                  " XgUX#S9nSSS	S
.n	U R                  X   [        U5      [        [        R                  " U5      5      4   n
U
u  ppnSn[        UR                  UR                  U5      US9  [        UR                  UR                  U5      US9  [        UR                   UR                  U5      US9  U(       dZ  UR#                  S5      n[        UR$                  UR                  U5      US9  [        UR&                  UR                  U5      US9  g g )Nz3Discrepancy in `main`; needs further investigation.z*`trim` is only compatible with NumPy inputl   'Nk' r`   rb   )r  r	  r	  r   r   r8   rZ  r  r  rP  )r   xfailr&   r  r   r  r  rj   rl   r	  r   r  ceilr4   rC  r  rA  r  r  r  )rt   r  r	  r	  ru   r  rw   rx   r   r  r   rC  r  rA  r  r  r  r  s                     r~   test_confidence_interval$TestTTestCI.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   r  r   r#  rs   r   r   r   r   r	  r   r   r   r~   r	  r	  X  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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\R                  R)                  SSS9\R                  R                  S5      \R                  R                  S5      \R                  R+                  SSS9S 5       5       5       5       rSrg)TestTTestIndMorei  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	  r  gJ?g9ʿr}	  g@[?gωұ?ghG?r   r  r  r;   r~	  r   )rZ   r	  rY   )rj   rl   r	  r4   r	  ry	  r  rK  r   rC  rA  )rt   ru   rO  r[  rZ  r'	  ro  ri  	tr_uneq_n	pr_uneq_nr	  r	  rvs3r	  r	  r(	  r)	  r   r  s                      r~   test_ttest_ind_with_uneq_var-TestTTestIndMore.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   z0ignore: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)Nr9   r  re  Fr
  r   r   r  r   re   r  r   )rd  r  r$   r   rl   r	  r5   rj   r#  r   r  rs   )rt   ru   rw   rx   ro  ri  r=	  s          r~   test_ttest_ind_zero_division-TestTTestIndMore.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   rL	  r   r   rH  rI  r   )g8HgW@?)r   rs   rl   r	  r   rC  rA  )rt   rw   rx   r  r  rN	  s         r~   test_ttest_ind_nan_2nd_arg+TestTTestIndMore.test_ttest_ind_nan_2nd_arg  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)Nre  r   )r$   r   r   rl   r	  rj   rM  rR	  rS	  rs   r5   rC  rA  r  s       r~   #test_ttest_ind_empty_1d_returns_nan4TestTTestIndMore.test_ttest_ind_empty_1d_returns_nan)  s     +3HRP//"**R."**R.AC Q#u::;;;;jj $s+

C( QPs   6C
CrW	  rX	  r  rY	  rZ	  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r\	  )r  rj   rO   r   r   r   r   r   rl   r	  rM  rR	  rS	  r   rs   r5   rC  rA  )rt   r[  r]	  ru   rO  r   r^	  s          r~   test_ttest_ind_axis_size_zero.TestTTestIndMore.test_ttest_ind_axis_size_zero3  s     HHYJJqJ($$&##H.CEWX//!R0C ' #u::;;;;FFC~6

N3 '&ra	  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 rc	  	r  rl   r	  rM  rR	  rS	  rC  r  rA  rt   ru   rO  r[  r   s        r~    test_ttest_ind_nonaxis_size_zero1TestTTestIndMore.test_ttest_ind_nonaxis_size_zeroE  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   r=   r   rd	  r   rY   re	  r
  r
  s        r~   2test_ttest_ind_nonaxis_size_zero_different_lengthsCTestTTestIndMore.test_ttest_ind_nonaxis_size_zero_different_lengthsQ  s}     HHYHHYooa+#u::;;;;}}""V+++zz6)))r   TzTest uses ks_1samp)cpu_onlyr   r  r  Fznot used in this test yetr  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                  " X4SSS9n[         R                  " UR                  5      n[        R                  " U[        R
                  " 5       R                  5      R                  S	:  d   e[        [         R                  " Xu5      US
S9  [        R                  " XCSSS9n[         R                  " UR                  5      n[        R                  " U[        R
                  " 5       R                  5      R                  S	:  d   e[        [         R                  " Xu5      US
S9  UR                  / SQ5      UR                  S/5      pC[        R                  " X4SS9n[        UR                  UR                  S5      5        [        UR                  UR                  S5      5        g )Nl   bQ )r  r8   r  )r  r   r  Tre   )r	  rZ   rN  r  rI  )r   r   rR   rB   r
  gzNd?gJ?)r   r  r  rj   r  r\  rl   r	  rA  rV  rr  r   quantiler4   rC  )rt   ru   r  rw   rx   r  r   rA  s           r~   test_ttest_uniform_pvalues+TestTTestIndMore.test_ttest_uniform_pvalues^  s}    ii##O4JJszzzz23JJszzzz23KKSK!ooad<CJJ'~~femmo&9&9:AACGGGF.=ooad<CJJ'~~femmo&9&9:AACGGGF.=
 zz,'SE):1ooad3rzz/'BC

BJJ~$>?r   r   N)r   r   r   r   r+   rl   r	  r
  r   r   r   r
  r
  r
  r   r   r  r
  r
  r
  r   uses_xp_capabilitiesr#
  r   r   r   r~   r
  r
    sA   u112N+ 3N+` [[: [[999,$*) [[0 hhy16:XXi0&9;<4<4
** [[!!48L!M[[ VW[[ WX[[%%e4O%P@ Q Y X N@r   r
  c                   \    \ rS rSrS r\R                  R                  S5      S 5       rSr	g)TestTTestIndFromStatsi~  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   r8   r9   r:   r;         r     )rj   rl   r	  )rt   ru   mean1mean2std1std2nobs1nobs2s           r~   test_gh5686!TestTTestIndFromStats.test_gh5686  sw    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
  )rj   rs   rl   r	  r5   rC  rA  )rt   ru   r=  sixr{  r   s         r~   %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   r2
  r   r   r   r6
  r   r   r   r~   r'
  r'
  ~  s-    K [[ QR) S)r   r'
  c                   $   \ rS rSrS r\R                  R                  \R                  R                  S5      \R                  R                  S5      S 5       5       5       r	\
" SSS9S	 5       r\R                  R                  S
SS9S 5       rSrg)TestTTest1Sampi  c                     UR                  US:H  5      nUR                  US:H  5      nUS:  U-  US:  U-  -  nUR                  XrS-  SUS-  -
  5      $ )Nr  r  r   r8   r   )rj   r  )rt   ro  ri  rD	  ru   r  r  r  s           r~   _convert_pvalue_alternative*TestTTest1Samp._convert_pvalue_alternative  sa     zz#-(**SI-.!et^Q' 12xxQ3AaC((r   r  r  c                 @	   [         R                  R                  S5      nSu  p4n[        R                  R                  SSX4U4US9nUR                  U5      nUR                  SXE45      n[        R                  " XgSS9u  p[        R                  " US	SS9u  p[        R                  " US S 2SS4   S	5      u  p[        XS
S9  [        US   US
S9  [        UR                  XE45        UR                  USU45      n[        R                  " XgSS9u  p[        R                  " US	SS9u  p[        R                  " USS S 2S4   S	5      u  p[        XS
S9  [        US   US
S9  [        UR                  X545        UR                  X4S45      n[        R                  " XgSS9u  p[        R                  " US	SS9u  p[        R                  " USSS S 24   S	5      u  p[        XS
S9  [        US   US
S9  [        UR                  X44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  pU R                  UUSU5      n[        UU5        [        UU5        [        R                  " US S 2S S 2S S 24   S	SS9u  pU R                  UUSU5      n[        UU5        [        UU5        [         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@r_   r  r  r;   r_   ru  r   r   rY   r   rt  r  r  r8   )r   r   r   r   r  r  r  r   r
  rT  )r   r  r  rl   rc  r  rj   r  rd  r4   r   r  r5   r<	  r#  r;
  r  rC  rs   rA  )rt   ru   r  r  r  n3rvn1r  r  r  r  p2r  p3ro  ri  r'	  rZ  pcr   r=	  s                        r~   test_ttest_1samp_new#TestTTest1Samp.test_ttest_1samp_new  s    ii##H-!
zz~~!2RRLs~Szz$ ''1b+&""4q9""4!4""41a="5U+4"51RXXx(''2q"+&""4q9""4!4""41a="5U+4"51RXXx(''21+&""4q9""4!4""41a="5U+4"51RXXx(   L!92>q	2::bff#56::b>*""41a="5B  aAg	J--b"iD22  aAgG--b"fbA22[[X&##BJJ|$<bACCMM2::bff+=>CJJ

266(:; ::BFF|c2Y78D##D"-CCMM2::r266l+CDCJJ

B<(@A '&&s   !D%R
RTr   r   c                 b   [         R                  R                  S5      nSu  p4n[        R                  R                  SSX4U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  px[        R                  " US S 2S S 2S S 24   SSSS9u  pU R                  XxSU5      n[        X5        [        X5        [        R                  " US S 2S S 2S S 24   SSSS9u  pU R                  XxSU5      n[        X5        [        X5        g )Nl   U] )r;   r_   r  r;   r_   ru  r   r8   r   r9   r:   r>   r   r   r   r  rw  r  )r   r  r  rl   rc  r  rj   rs   rd  r;
  r4   )rt   ru   r  r  r  r?
  r@
  r'	  rZ  ro  ri  rC
  s               r~   test_ttest_1samp_new_omit(TestTTest1Samp.test_ttest_1samp_new_omit  s   ii##J/ 
zz~~!2RRLs~Szz$ ffQqS!A#qs]""41a="H  aAgv-68--biD  aAgv-35--bfbAr   r?  r  r  c                 ~   [         R                  R                  S5      nUR                  SS9nUR                  U5      nSnUR                  UR                  SS95      n[        R
                  " [        US9   [        R                  " X5SS9  S S S 5        UR                  UR                  S	S95      n[        R                  " X5SS9nUR                  R                  S
:X  d   eUR                  5       u  pxUR                  USS9nUR                  USS9n[        R                  " X7SS9nUR                  UR                  SUR                  S9UR                  R                  5      n	[!        UR                  U	5        [        R                  " X8S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.)r;   r8   r  r   rk  )r  rZ   )r;   r   r  )r;   r  rY   g?rN   )r   r  r  rj   r   r   r   rl   rd  rC  r  r  r  r  r   rA  r4   )
rt   ru   r  rw   r  r  r   r  r(  r   s
             r~   test_ttest_1samp_popmean_array-TestTTest1Samp.test_ttest_1samp_popmean_array  sd   
 ii##$78JJKJ(JJqM:**SZZZZ89]]:W5ar: 6 **SZZZZ89<}}""g---&&(NN12N&NN12N&26oobjjRZZj@#**BRBRS

C(26

C(! 65s   9F--
F<r   N)r   r   r   r   r;
  r   r   r  r   rD
  r   rG
  rJ
  r   r   r   r~   r9
  r9
    s    ) [[[[ WX[[ VW:B X Y :Bx .WX Y, [[!!+6V!W) X)r   r9
  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SS9S 5       rSrg)TestDescribei  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`  rb  r   r   r   r   )r   r   r   r  r   r   rl   describerj   r5   rs   )rt   ru   r  r  r  r)  skkurts           r~   test_describe_scalar!TestDescribe.test_describe_scalar  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  r8   r:   r   r;   r   r   r   r   r   r   r   r   ffffff?rY
  rY
  rY
  )rQ  rQ  rQ  rQ  H,p ?r:   TUUUUUr   r   r  rY   )r  r  r   rj   rl   rO
  r5   r4   r   rO   epsr   rt   ru   rw   ncmmcmcvcskckurtcr  r  r  r)  rP
  rQ
  s                  r~   test_describe_numbers"TestDescribe.test_describe_numbers#  s   IIrwwv(;<=zz*+RZZ8H-IJZZ,-ZZ,-jj-.23

./!34 %q 1qRww1s1v&1s1v&A(9(=(=$=>A(9(=(=$=> $ %qss ;qRww1s1v&1s1v&A(9(=(=$=>A(9(=(=$=> $r   c                 "   [         R                  " S5      n[         R                  US'   Su  p#SnSnSnSn[        R                  " USS	9u  ppp[        X5        [        X5        [        X5        [        X5        [        X5        [        XS
S9  g )Nr   r?   )r?   )r   r   r   rH   r   gGzr   r   rb   r!  )r   r   rs   rl   rO
  r   r   )rt   rw   r^
  r_
  r`
  ra
  rb
  rc
  r  r  r  r)  rP
  rQ
  s                 r~   describe_nan_policy_omit_test*TestDescribe.describe_nan_policy_omit_test=  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   r_   r   r   r   r   r   )r   r  rs   r%   r   r   rv  rl   rO
  r   rj   r5   r&   rh
  )rt   ru   rw   r  r  r  r)  rP
  rQ
  r   r  s              r~   test_describe_nan_policy_other+TestDescribe.test_describe_nan_policy_otherN  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 )NrR   )rv	  minmaxro   variancer%  r,  )rl   rO
  r   r   r   )rt   r
  rD  s      r~   test_describe_result_attributes,TestDescribe.test_describe_result_attributesm  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  rU
  r   r;   rV
  rW
  rX
  )Q?rt
  rt
  rt
  rZ
  r:   r[
  r   r  r   r  r  r   rj   rl   rO
  r5   r4   r]
  s                  r~   test_describe_ddofTestDescribe.test_describe_ddoft  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  rU
  r   r  r   rY
  ga+?gE,p ?gUUUUUUrY   r   r   ru
  r]
  s                  r~   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   rl   rO
  rj   rK  s      r~   test_describe_empty TestDescribe.test_describe_empty  s5    0]]:W5NN2::b>* 655s   &A
Ar	  z"min/max don't accept boolean inputr  c                    [         R                  R                  S5      nSnUR                  UR                  U5      S:  5      n[        R
                  " U5      n[        UR                  UR                  X1R                  S95        [        UR                  S   UR                  U5      5        [        UR                  S   UR                  U5      5        [        USUS9n[        UR                  UR                  U5      5        [        UR                  UR!                  USS	95        [        UR"                  [        R$                  " U5      5        [        UR&                  [        R&                  " U5      5        g )
Nl   Dr+\ r  rA   rN   r   r   Tr  r   )r   r  r  rj   rl   rO
  r5   rv	  int64ro
  r  r  r2   r4   ro   rp
  r   r%  r  r,  )rt   ru   r  r  rw   r   s         r~   test_boolean_input_gh24847'TestDescribe.test_boolean_input_gh24847  s    ii##$45JJszz!}s*+nnQ"**Qhh*"?@

1rvvay1

1rvvay1q"5"''!*-bffQ1f&=>ejjm4ennQ&78r   r   N)r   r   r   r   r   r   r   rR
  rd
  rh
  rl
  rq
  rv
  ry
  r|
  r   r
  r   r   r   r~   rM
  rM
    s    [[ VW[[ WX2 Y X2%4;"3>0%"%,+
 (1UV9 W9r   rM
  c                   b    \ rS rSr\R
                  R                  S/ SQ5      S 5       rS rSr	g)NormalityTestsi  r  rZ  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  r8   r
  r  z,`alternative` not available for `normaltest`)rk  re   r   r   r8   r   rk  re   r   r   r8   r   rk  re   r   r   r8   r   rk  re   r   r   r8   r   rc  rB  )		test_namero  rl   rj   case_refr   r  r4   r   )rt   r  ru   r
  rq	  r}  rk  r  rw   r   r  r  s               r~   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  rN   r	  r   r  )ro  rl   r
  r   rj   rs   rO   r  r   r  r5   rC  rA  )rt   ru   rq	  rw   r{  r   s         r~   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   r~   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  {   )rO  r  r  r  r  r   rN   g?̔>rI  )rl   skewnormr  rj   r
  rA  r4   rO   )rt   ru   r  a1_xpr  s        r~   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   re  )rl   r
  r   r$   r   r   rj   rs   r5   rC  rA  rt   ru   rw   r   r{  s        r~   "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   r~   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   rN   rH  rI  )rl   laplacer  rj   r
  rA  r4   rO   )rt   ru   r  a2_xpr  s        r~   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)
rY  r   :   r=   r   )   r   r   r      rN   r   r  )r   hstack	enumerater   rj   r   rl   r
  )rt   ru   r$  r  ru  rw   s         r~   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)NrR   re  r   )rl   r
  r   r$   r   r   rj   rs   r5   rC  rA  r  s       r~   &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   r~   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   re  r   )rl   r
  r   r$   r   r   rj   rs   r5   rC  rA  r  s       r~   test_too_few_observations(TestNormalTest.test_too_few_observations  s{    2' +3HRP""299R=1C**RVV$CCMM3/CJJ,	 QPPr
  r   N)r   r   r   r   r
  r
  r
  r   r   r   r~   r
  r
    s    I9H-r   r
  c                   h    \ rS rSr\R
                  R                  S/ SQ5      S 5       rS rS r	Sr
g)	TestRankSumsi(  r  r  c                 @   [         R                  R                  S5      nUR                  S5      u  p4[        R                  " X4US9n[        R
                  " X4SUSS9n[        UR                  UR                  5        [        UR                  UR                  5        g )N   hZ r8   r_   r  Fr  )use_continuityr  r  )
r   r  r  rl   ranksumsmannwhitneyur   rA  rC  
zstatistic)rt   r  r  rw   rx   r  r  s          r~   test_ranksums_is_mannwhitneyu*TestRankSums.test_ranksums_is_mannwhitneyu*  sv    ii##J/zz'" ~~a<!!!u.9,PT[[18r   c                     [         R                  " [        R                  " S5      [        R                  " S5      5      n[	        US5        g )Nr_   rc  )rl   r
  r   r   r   )rt   r   s     r~   test_ranksums_named_results(TestRankSums.test_ranksums_named_results6  s-    nnRYYr]BIIbM:C!89r   c                     [        [        SS9   [        R                  " [        R
                  " S5      [        R
                  " S5      SS9  S S S 5        g ! , (       d  f       g = f)Nz`alternative` must be 'less'r   r_   r   r  )r   r   rl   r
  r   r   r~  s    r~   r  "TestRankSums.test_input_validation:  s:    :-KLNN299R="))B-XN MLLs   ?A
A%r   N)r   r   r   r   r   r   r   r
  r
  r  r   r   r   r~   r
  r
  (  s2    [[],LM	9 N	9:Or   r
  c                   >    \ rS rSrS r\" SS9S 5       rS rS rSr	g	)
TestJarqueBerai?  c                     / SQnUR                  U5      nUR                  SS/5      n[        R                  " U5      n[        UR                  US   5        [        UR
                  US   5        g )N)g8MK~Ŀg/?g6r=TgGg!J_l gq"?gPHK?r   r   )rj   rl   jarque_berar4   rC  rA  )rt   ru   rw   r   r   s        r~   test_jarque_bera_against_R)TestJarqueBera.test_jarque_bera_against_RA  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 rr  r  r8   P  )r   r  r  r  rl   r
  rM  tuplern   rC  rA  )rt   ru   r  rw   jb_test1JB1r  jb_test2JB2rA
  jb_test3JB3rB
  s                r~   test_jarque_bera_array_like*TestJarqueBera.test_jarque_bera_array_likeN  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   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)Nr   )rj   r   r  r   r   rl   r
  rs   r5   rC  rA  r
  s        r~   %test_jarque_bera_too_few_observations4TestJarqueBera.test_jarque_bera_too_few_observations[  sj    JJrN\\,4IJ##A&C**RVV$CCMM3/CJJ,	 KJJs   AB
B$c                 l   [         R                  R                  SS9nUR                  UR                  SS95      n[        R
                  " US S9n[        R
                  " UR                  US5      5      n[        UR                  UR                  5        [        UR                  UR                  5        [        R
                  " USS9n[        R
                  " USS S 24   5      u  pg[        R
                  " USS S 24   5      u  p[        UR                  UR                  Xh/5      5        [        UR                  UR                  Xy/5      5        [        R
                  " UR                  SS9n
[        UR                  U
R                  5        [        UR                  U
R                  5        g )	NiKr	  )r8   r  r  rY   r  r   r   )r   r  r  rj   rl   r
  rn   r5   rC  rA  r4   r  r   )rt   ru   r  rw   r   r   s0r  s1r  resTs              r~   r  TestJarqueBera.test_axisd  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   r
  r   r
  r
  r  r   r   r   r~   r
  r
  ?  s,    , d#
W $
W-1r   r
  c                       \ rS rSrS rSrg)TestPointBiserialRix  c                    / SQn/ SQn[         R                  " UR                  U5      UR                  U5      5      n[        US   UR                  S5      SS9  Sn[	        XEUS9  [        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(@r  r  r	  g333333@ffffff@g333333@rD   rE  皙	@r   r  r  rC   r  ffffff@ @333333?r
  rB   ?r
  r  r  r  r  rO  r  rA   rJ  rJ  rN  r   g/"?rz  rI  r?  rB  )rl   pointbiserialrrj   r4   r   r5   r@  rC  )rt   ru   rw   rx   r   rD  s         r~   test_pointbiserial%TestPointBiserialR.test_pointbiserialz  sp    * ""2::a="**Q-@A

7 3$? /
C37r   r   N)r   r   r   r   r
  r   r   r   r~   r
  r
  x  s    8r   r
  c                   ,    \ rS rSrS rS rS rS rSrg)TestObrientransformi  c                 J   UR                  / SQ5      n[        R                  " U5      nUR                  / SQ5      n[        US   S S  U5        UR                  / SQ5      n[        R                  " U5      nUR                  / SQ5      n[        US   S S  U5        [        R                  " X%5      u  px[        XsS   S S  5        [        XS   S S  5        [        R                  " X%U5      u  pxn	[        XsS   S S  5        [        XS   S S  5        [        XS   S S  5        g )N)r   r8   r:   )r   r!  r   r   )r   r9   r<   r?   )r  r   r   r  )rj   rl   obrientransformr4   )
rt   ru   r  r  r!  r  r  rO  r[  ru  s
             r~   r\  TestObrientransform.test_basic  s    ZZ	"""2&::m,1a(+ZZ%""2&::011a(+ $$R,a58$a58$ ''3aa58$a58$a58$r   c                     UR                  S5      nUR                  / SQ/ SQ/5      n[        R                  " USU-  5      n[	        US   US   5        [	        US   US   5        g )	Nr;   )㪪@I?g&>ڿr
  r
  )5@㪪@gIr
  r
  r8   r   r  r   r  )r   rj   rl   r
  r4   )rt   ru   r  r   r   s        r~   test_something"TestObrientransform.test_something  sh     YYq\jjHJLM ##B"-AF,AF,r   c                 h   [         R                  " SS5      n/ SQn[         R                  " X#5      n[         R                  " / SQ5      n[         R                  " XS5      n[        R
                  " UR                  U5      5      n[        US   S S  UR                  UR                  5       5      SS9  g )Nr;   r`   )r;   r`   r?   r9   r8   r8   )g_v	@g1%?g"u?gZӼ?g!u @gq&@r   r  r  )r   r   r  rj   rl   r
  r4   r   )rt   ru   valuesrepsrV  transformed_valuesr!  r  s           r~   test_reference"TestObrientransform.test_reference  s    1b!"yy&ZZ )B C99/6&&rzz$'78q	!bjj1B&C$Or   c                 .   [         R                  R                  S5      nUR                  S5      n[         R                  US'   UR	                  U5      n[        U5      (       d8  [        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S
   n[        XAR                  X1R                  5      5        UR                  U5      n[        R                  " USS9S
   n[        R                  " X5)    5      S
   n[        XE   X5   5        [        XE)    U5        g ! , (       d  f       N= f! , (       d  f       N= f)Nl   37j"Fzr_   r9   r   r   r   r   #nan_policy='raise' is not supportedr  r   r   )r   r  r  rs   rj   r%   r   r   r   rl   r
  rv  r5   r  r  r4   )rt   ru   r  rw   r   r  r   s          r~   r  #TestObrientransform.test_nan_policy  s7   ii##$:;JJrNvv!JJqM Qz1PQ%%aG< RQ y0UV%%aG< W ##A+>qA\\!VV45 HHQK##A&9!<##AbE*1-%B% RQ WVs   >E56F5
F
Fr   N)	r   r   r   r   r\  r
  r
  r  r   r   r   r~   r
  r
    s    %.	-	P&r   r
  )rZ   rO   r  r  c                 V   U=(       d    U R                   n[        U5      S:X  a  Uu  pxOUu  pynU R                  XsS9nU [        R                  :w  a  [        USU S9OS 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" XbUS.6n[        XUS9  g )Nr8   rN   Tr  rZ   r  r  )r   r#  rj   r   r  r.   r4   )ru   mean_funrZ   rO   r  r  r  
array_liker  ri  dtype_referencerw   s               r~   check_equal_xmeanr    s     RZZE
4yA~"
G!%
wJ4J+ &j"M+/ jjj8G292Ebjjj.7GINJ=QD$73AAT*r   c                  8    [        U S[        R                  0UD6$ Nr
  )r  rl   r   r  r  s     r~   check_equal_gmeanr        dCU[[CFCCr   c                  8    [        U S[        R                  0UD6$ r  )r  rl   hmeanr  s     r~   check_equal_hmeanr	    r  r   c                  8    [        U S[        R                  0UD6$ r  )r  rl   pmeanr  s     r~   check_equal_pmeanr    r  r   c                   l   \ rS rSr\R
                  R                  S5      S 5       r\R
                  R                  S/ SQ5      S 5       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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   r8   r   rB  )r	  rt   ru   rO  r  s       r~   test_0TestHMean.test_0  s    !,r   rO   Nr
  rm  r   c                 d    Uc  UO
[        X!5      n/ SQnSn[        X4XS9  / SQnSn[        X4XS9  g )Nr  g=b#A@r  rH  gQ?)ro  r	  rt   rO   ru   rO  r  s        r~   test_1dTestHMean.test_1d  s<    GB,> 6!E9:!E9r   r  c                 N    [         R                  " SS/5      nSn[        X#USS9  g )Nr   r   r   ru   r  r   r   r	  r  s       r~   test_1d_with_zeroTestHMean.test_1d_with_zero  s'     HHaV!#6r   c                     [         R                  " / SQ5      nSn[        [        X1S9   [	        X!R
                  USS9  S S S 5        g ! , (       d  f       g = f)Nr   r   re   z$The harmonic mean is only defined...re  r   r  )r   r   r$   r   r	  rs   )rt   ru   rO  r  s       r~   test_1d_with_negative_value%TestHMean.test_1d_with_negative_value  s=     HHZ 8w>aBS9 ?>>s   A
Ac                 Z    / SQ/ SQ/ SQ/nSn[        [        R                  " U5      X1S9  g )Nr_   r  r0  r1  r  r  r  r  rh  r  r  x   gmWUC@rB  )r	  r   r   r  s       r~   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   rZ   ru   r  r  s       r~   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r_   r   r0  r1  r$  r%  )r*  r   r+  r,  r   r-  r  r  s       r~   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       r~   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 )Nr1  r$  r%  )r   r5  r6  r   r-  r  r  s       r~   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r8   r_   r<   r_   r;   r9   r   r  rz  r  )rl   r  r4   r   rj   rt   ru   rO  r  r  r   s         r~   test_weights_1d_listTestHMean.test_weights_1d_list5  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?  r9   rz  r  r  ru   )r   rj   r	  rt   ru   rO  r  r  s        r~   test_weights_1dTestHMean.test_weights_1dE  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 )
Nr8   r;   r_   r<   r   r9   r   rz  rZ   r  r  ru   r  rF  s        r~   test_weights_2d_axis0TestHMean.test_weights_2d_axis0M  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>  r=   r=   r=   r?  r  r9   r=   r   rz  rJ  r  rF  s        r~   test_weights_2d_axis1TestHMean.test_weights_2d_axis1U  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r   r   r         E@r   rR   r   rS  r   r   r   r   r%  r   rz  r  r  rO   ru   )r   r   r  r	  r   rF  s        r~   test_weights_masked_1d_array&TestHMean.test_weights_masked_1d_array]  sO     HH'(%%++0|+DUU!gD "

r	3r   r   N)r   r   r   r   r   r   r   r  r   r  r  r   r'  r.  r2  r7  r:  r   rB  rG  rK  rO  r"   rW  r   r   r   r~   r  r    sf   [[ WX- Y-
 [[W&KL
: M
: [[ WX[[ VW7 X Y7
 [[ VW[[ WX: Y X:75 [[ WX5 Y5
5 [[ WX5 Y5
 =
=	
=IQQ 3 3r   r  c                   j   \ rS rSr\R
                  R                  S5      S 5       r\R
                  R                  S/ SQ5      S 5       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)	TestGMeanii  z<ignore:divide by zero encountered in log:RuntimeWarning:daskc                 $    / SQnSn[        X#US9  g r  r  r  s       r~   r  TestGMean.test_0k  s     !,r   rO   r  c                 |    Uc  UO
[        X!5      n/ SQnSn[        X4XS9  / SQn[        SS5      n[        X4USUS9  g )	Nr  gsŤF@r  rH  r  r  rt  )rO   r  ru   )ro  r  r   r  s        r~   r  TestGMean.test_1ds  sG    GB,> 6!E9w/!E"Er   c                 2    / SQ/ SQ/ SQ/nSn[        X#US9  g )Nr#  r$  r%  g/,$qJ@rB  r\  r  s       r~   r'  TestGMean.test_2d  s    /1DE!,r   c                     / SQ/ SQ/ SQ/n[         R                  " / SQ5      n[        X#SUS9  [        / SQ/ SQ/ SQ/5      n[        / SQ5      n[        X#SSUS	9  g )
Nr#  r$  r%  )g4@A@g5H@g`8|wЭN@gm~&+R@r   r-  rH  rt  rZ   r  ru   r   r   r  r  s       r~   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-  rH  r  r  rt  rc  )r   r   r  r   )rt   ru   rO  r  r)  s        r~   r7  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}Ô%ITr}  gu <7~r}  r7  r  ru   )r   r  r  s       r~   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)
r_   r  r0  r1  r  r  r  r  rh  r   r   r   r
  rB  )r   r  r  r  s       r~   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)
r_   r  r0  r1  r  r  r  r  rh  re   r   r  rB  )r   rs   r  r  r  s       r~   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'  r8   r;   r<   r:   r9   GZ*oG8@r@  rz  r  )rl   r   r4   r   rj   rA  s         r~   rB  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'  rs  rt  rz  rE  rd  rF  s        r~   rG  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 )N)r   r   r   r   rR   r   )r   rR   r   r   r   rR   )r   r   r   r   r   r   r%  rt  rz  rV  )r   r   r  r  r   rF  s        r~   rW  &TestGMean.test_weights_masked_1d_array  sP     HH-.%%++6=O+PUU!gD "

r	3r   r   N)r   r   r   r   r   r   r   r  r   r  r'  r.  r7  rj  rm  rp  r   rB  rG  r"   rW  r   r   r   r~   rZ  rZ  i  s    [[F--
 [[W&KL
F M
F-A	A9
 [[F11 [[E11 ==	=I 3 3r   rZ  c            
       >   \ rS 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	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\R                  R                  S&S'S(/ S)QS*4/5      S+ 5       rS,rg-).	TestPMeani  c                 X    [         R                  " X-  5      U R                  -  SU-  -  $ r  )r   ri  r  rO  ri  s     r~   pmean_referenceTestPMean.pmean_reference  s$    qtqvv%1--r   c                 r    [         R                  " X U-  -  5      [         R                  " U5      -  SU-  -  $ r  )r   ri  )rO  ri  r  s      r~   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   rl   r  rj   r]  s     r~   test_bad_exponentTestPMean.test_bad_exponent  s?    ]]:-JKKK

9-rzz1#? LKKs   9A
A*rO   r  c                 X   Uc  UO
[        X!5      n/ SQSpC[        R                  [        R                  " U5      U5      n[        X4XQUS9  / SQSpC[        R                  [        R                  " U5      U5      n[        X4XQUS9  / SQSpC[        R                  " S5      n[        X4XQUS9  g )Nr  rD   r  g      rH  r8   rH   )ro  r{  r~  r   r   r  rL  )rt   rO   ru   rO  ri  r  s         r~   r  TestPMean.test_1d  s    GB,>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   re   r   ri  )r   r   r  )rt   ru   rO  ri  r  s        r~   r  TestPMean.test_1d_with_zero  s+     xxA1!cb9r   c                     [         R                  " / SQ5      Sp2Sn[        [        XAS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...re  rB  )r   r   r$   r   r  rs   )rt   ru   rO  ri  r  s        r~   r   %TestPMean.test_1d_with_negative_value  s=    xx
#T15w>aBFFr2 ?>>s   A		
Ar}  r_   r  r  r  rh  r  r  rA   c                 l    [         R                  [        R                  " U5      U5      n[	        XXCS9  g )NrB  r{  r~  r   r   r  )rt   rO  ri  ru   r  s        r~   test_2d_axisnoneTestPMean.test_2d_axisnone  s(     ++BHHQK;!/r   r#  r$  r%  r1  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  )rt   rO  ri  ru   r  r  r  s          r~   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  )rt   rO  ri  ru   a_r  s         r~   r7  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?  rz  rE  )r{  r  r   r   r  rt   ru   rO  ri  r  r  s         r~   rG  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@  rz  r  )r{  r  r   r   rl   r  r4   rj   )rt   ru   rO  ri  r  r  r   s          r~   rB  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 )	NrR  r   rT  rU  r%  r@  rz  rV  )r   r   r  averager  r   r  s         r~   rW  &TestPMean.test_weights_masked_1d_array8  sX    xx*+Q1%%++0|+D**Q0UU!t "

r	3r   )rZ   fun_nameri  ))Nr  g3E#@)r   r   r   )r   r  re   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  )rO  rZ   r  ri  s      r~   fun&TestPMean.test_weights_2d.<locals>.funI  s     11!Q@@r   r8   r;   r_   r<   r   r9   r
  rz  rJ  )ro  rl   r   r   r  )	rt   rZ   r  ri  ru   r  rO  r  r  s	      `     r~   test_weights_2dTestPMean.test_weights_2dA  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   r8   )r   r   NotImplementedErrorrl   r  r   r#  rC  s     r~   test_infinite_p_gh23111!TestPMean.test_infinite_p_gh23111R  s8     ?]].g>KKRVV$ ?>>   'A
Azp, weights, ref)缉ؗҬ<NgDG@r  )r   r   r   r   r   r   r   g9K@c                     UR                  / SQ5      nUc  S OUR                  U5      n[        R                  " XRUS9n[        XqR                  U5      5        g )N)g      I@r  g     r@g     Q@r  r  r   r@  )rj   rl   r  r4   )rt   ru   ri  r  r   rw   r*  r   s           r~   test_small_p_gh23407TestPMean.test_small_p_gh23407Z  sK    8 JJ1
 ODG)<kk!*ZZ_-r   r   N)r   r   r   r   r~  r  r  r   r   r   r  r   r  r   r   r   r  r.  r7  rG  r   rB  r"   rW  r  r  r  r   r   r   r~   r{  r{    s,   .A@ [[W&KL= M= [[ 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% [[  -
 02CD)	
2	.32	.r   r{  c            	          \ rS rSr\R
                  " S5      S-   R                  5       rSr\R                  " \S5      R                  5       r
S r\" SSS	9S
 5       r\S 5       r\R"                  R%                  S5      \R"                  R%                  S5      \R"                  R'                  SSS\R(                  \R*                  45      S 5       5       5       rS rS rS rS rS rS rS rSrg)TestGSTDi  r  r   gv aZ@r;	  c                     [         R                  " UR                  U R                  5      5      n[	        X!R                  U R
                  5      5        g r.  )rl   r!  rj   array_1dr4   gstd_array_1drt   ru   gstd_actuals      r~   test_1d_arrayTestGSTD.test_1d_array  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.  )rl   r!  r
  r  r   r  r  s      r~    test_1d_numeric_array_like_input)TestGSTD.test_1d_numeric_array_like_input  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   rv  rl   r!  rK  s      r~   #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   re   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   )rj   r  r   r  r%   r   r  r   rl   r!  r5   rs   )rt   r  ru   rw   r  r   s         r~   test_returns_nan_invalid_value'TestGSTD.test_returns_nan_invalid_value  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   r8   r9   rY   r:   )rj   rs   rl   r!  r4   r   )rt   ru   rO  r  s       r~   test_propagates_nan_values#TestGSTD.test_propagates_nan_values  sK    JJ1a'89:jj+ZZBFF%<=r   c                     UR                  U R                  5      n[        R                  " X"R                  S   S9n[        X1R                  UR                  5      5        g )Nr   r  )rj   r  rl   r!  r  r5   rs   r   s       r~   )test_ddof_equal_to_number_of_observations2TestGSTD.test_ddof_equal_to_number_of_observations  s?    JJt}}%jj,ZZ/0r   c                     UR                  U R                  5      n[        R                  " US S9nUR                  U R                  5      n[        X45        g r	  )rj   array_3drl   r!  r  r4   rt   ru   rw   r  r   s        r~   test_3d_arrayTestGSTD.test_3d_array  s@    JJt}}%jj.jj++,)r   c                     UR                  U R                  5      n[        R                  " USS9nUR                  SS/5      n[	        X45        g )Nr|  rY   g~d@g<
?rj   r  rl   r!  r4   r  s        r~   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   rY   )gĶ?@gQӫ@g֌@gן7R@)g%Ȁ@ge@gv6B5 @g _?)gE ?gީ?gk̊Y?g%:?r  rt   ru   rw   r  gstd_desireds        r~   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   rY   )gN@g85@g'ĥ?gwth?)gHnaX?gG?gBu?gE?r  r  s        r~   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 )Nr8   rY   )gt80?gі?g?)gۘ]~?gmT6(?g	G?r  r  s        r~   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  rn   r  r  r   r  r"   r  r   r   r   r   r#  rs   r  r  r  r  r  r  r  r  r   r   r   r~   r  r    s    		)$q(002H"Mzz(I.557HE d+QR9 S9 E E
 [[ WX[[ VW[[[1b"&&"&&*AB1 C X Y1>
1
**333r   r  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`   rN  r_   rJ  r?   left)tailr8   tE]t?r9   r   rR  r  r<   r:   r;   r   )r  rZ   rY   r   )r   r   r   r  rl   trim1rn   r   )rt   rO  r   rZ   trimmeds        r~   
test_trim1TestTrim.test_trim1  s   IIbMRWWU[[C01299R=ARWWU[[C01299Q<@RWWU[[Cf=>YYq"%	'RWWU[[E?@YYq"%	'U[[C("-U[[Cf5r: 	U[[S)2.U[[U8"=U[[T*B/ IIbM!!!Q'ii2&&q!,++a6=RWWW0#6++acc3V$?RWWW0#%%8r   c           
         [         R                  " S5      n[        [         R                  " [        R
                  " US5      5      [         R                  " SS5      5        [        [         R                  " [        R
                  " US5      5      [         R                  " / SQ5      5        [        [         R                  " [        R
                  " [         R                  " S5      R                  SS	5      S5      5      [         R                  " S	S
5      R                  S	S	5      5        [        [         R                  " [        R
                  " [         R                  " S5      R                  S	S5      R                  S5      5      [         R                  " / SQ/ SQ/5      5        [        [        [        R
                  [         R                  " S5      R                  S	S5      R                  S5        [        [        R
                  " / S5      / 5        [        [        R
                  " / S5      / 5        [        [        R
                  " / S5      / 5        g )Nr`   r  r9   r>   rJ  )r8   r9   r:   r;   r<   r=   r>   r  r<   r:   r  rZ  )r8   r>   r]   r  )r9   r?   r  r\   rR  rN  )r   r   r   r  rl   trimbothr   rn   r   r   r   )rt   rO  s     r~   test_trimbothTestTrim.test_trimboth  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   r  r  r   r   r   r~   r  r    s    983r   r  c                   4    \ rS rSrS r\" SSS9S 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)r9   r;   r   r   r8   r:   r  r<   r:   Fr  rZ  )rC   rI   g      -@g     4@r  )r   r   r9   r8   )r   r   r  r  r   r   )r=   r`   ra   r\   r   r<   r.  r   r;   r   r	  r_   rh   r?   r	  r  r*  r  r8   r]   r:   rb   r>   r9   r^   )r;   r:   r9   r   r8   r   rC   r
  r  )r;   r<   r:   r=   r  )r   r   r8   r9   re   rY   r   zProportion too big.r   r  )r   r   r   rn   r5   rl   	trim_meanrj   r  r  r  r  r,   r   r   r   )rt   ru   idxr  r  idx4a4rO  r  rZ   r  r  s               r~   test_trim_meanTestTrimMean.test_trim_mean  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rV	  zlazy -> no _axis_nan_policyr  c                    [         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)NrJ  r   r   r  )r   r  r   r5   rl   r  rj   rs   r]  s     r~   r  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   r   r   r~   r  r    s'    %$N l+HIV JVr   r  c                   z    \ rS rSrS rS rS rS rS r\	R                  R                  S/ SQ5      S	 5       rS
rg)TestSigmaClipi8  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  rd      r   rD  r;   r:   
r  rK  rl   	sigmaclipr  r  r5   ro   r   r  rt   ru   rO  factru  r  upps          r~   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  rd   r  r   rD  r;   rB   )r:   )$   r  r  s          r~   test_sigmaclip2TestSigmaClip.test_sigmaclip2E  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  rd   r`         Y      Ir9   ?)	r  rK  rl   r  r  r  r5   ro   r   r  s          r~   test_sigmaclip3TestSigmaClip.test_sigmaclip3Q  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  rd   r`   r  r  r9   r  )clippedr  upperrB  )r  rK  rl   r  r   )rt   ru   rO  r  r   rD  s         r~    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 )Nr_   r   )r  r5   rl   r  r   s      r~   test_std_zeroTestSigmaClip.test_std_zerod  s'    GGBK*1-q1r   rO   r  c                    Uc  S O
[        X!5      n[        R                  R                  S5      nUR                  S5      n[        R                  US'   UR                  UR                  5       US9n[        U5      (       d8  [        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n[        UR                  UR                  / US95        [        UR                   UR                  UR                  US95        [        UR"                  UR                  UR                  US95        [        R                  " USS9n[        R                  " XBR%                  U5      )    5      n[        UR                  UR                  5        [        UR                   UR                   5        [        UR"                  UR"                  5        g ! , (       d  f       GNB= f! , (       d  f       GNT= f)Nl   &G# r_   r9   rN   r   r   r   r   r
  r  r   )ro  r   r  r  rs   rj   r   r%   r   r   r   rl   r  rv  r5   r  r  r  r  )rt   rO   ru   r  rw   r   r   s          r~   r  TestSigmaClip.test_nan_policyi  s   72+=ii##$9:JJrNvv!JJqxxzJ/ Qz1PQg6 RQ y0UVg6 W ooaK8RZZ%Z%@A		2::bffE:#BC		2::bffE:#BC ooaF3ooa!o.S[[1		399-		399-# RQ WVs   H$H6$
H36
Ir   N)r   r   r   r   r  r  r	  r  r  r   r   r   r  r   r   r   r~   r  r  8  sB    	"
 	742
 [[W&BC. D.r   r  c                      \ rS rSrS r\" SSS9\R                  R                  SSS// 4SS/S4SS/S/4/5      S	 5       5       r	\R                  R                  S
5      S 5       rS rS rS rS r\" SSS9S 5       r\" SSS9S 5       r\" SSS9S 5       r\" SSS9\R                  R                  S/ SQ5      S 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)	rb   rb   rb   rb   rb   rb   rb   ra   ra   )	r]   rb   ra   ra   ra   ra   ra   r`   r`   )	r]   r]   rb   rb   rb   rb   rb   ra   ra   )	r  r]   rb   rb   rb   ra   ra   ra   r`   rN   )
r   rj   r   r  ru  r   rl   alexandergovernrA  rC  )rt   r  rn	  
args_int16
args_int32
args_uint8args_float64	res_int16	res_int32	res_uint8res_float64s              r~   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rV	  z%Requires `_axis_nan_policy` decoratorr  r  r   r8   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   rN   r   r   )r(   rj   r   r  r   r   rl   r  r5   rC  rs   rA  )rt   r  ru   rO   r   s        r~   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   )rj   r#  rl   r  r5   rC  rs   rA  )rt   ru   samplesr   s       r~   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rj   rl   r  r4   rC  rA  )rt   ru   r  twoeightsolns         r~   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  rI  g R8߱?rM	  g.UikL@>r  g&Zݱ?Nr+  )rt   ru   youngmiddleoldr.  s         r~   test_compare_scholar(TestAlexanderGovern.test_compare_scholar  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?rz  rI  gOZ}?g9$?r2  r  g6MDd}?Nr+  )rt   ru   r  r  r.  s        r~   test_compare_scholar3)TestAlexanderGovern.test_compare_scholar3(  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 )Nr  r   rj   rs   rl   r  r5   rA  rC  )rt   ru   r  r   s       r~   r6	  -TestAlexanderGovern.test_nan_policy_propagate[  sm    zz*+RZZBFF-DD##T*

BJJrvv$67rzz"&&'9:r   Tr   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)Nr  r   r   r   r   r   )rj   rs   r   r   rl   r  )rt   ru   r  s      r~   test_nan_policy_raise)TestAlexanderGovern.test_nan_policy_raiseb  sR    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   r8   r9   r:   r	  r  rH  )r   r	  r  r   r   r<  )rt   ru   args_nanargs_no_nanres_nan
res_no_nans         r~   test_nan_policy_omit(TestAlexanderGovern.test_nan_policy_omith  s    ::q!Q23RZZBFFBPR@S5TTjj.

;0GG''EfE**K8

(9(9:)):+?+?@r   z"lazy -> no data-dependent warningsc                    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_  ra  r  r   )
rj   r   r  r   rl   r  r5   rC  rs   rA  )rt   ru   r  r  r   s        r~   rj  'TestAlexanderGovern.test_constant_inputq  s     ZZ-.ZZ-.\\.0LM''/C Nrzz"&&'9:

BJJrvv$67 NMs    B>>
CrZ   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`   ra   r9   rZ   )
r   r  r  r  rj   rl   r  r4   rC  rA  )rt   ru   rZ   r  r  r  r'  sample
xp_samplesr   r   s              r~   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/  r6  r9  r6	  r?  rF  rj  rM  r   r   r   r~   r  r    s.   >* l+RS[[Vq!fb\QFA;!Q!$NO8 P T8 [[ QR8 S8BIH1Hf1Gf; .WX= Y=
 .WXA YA .RS8 T8 l+RS[[V\2	< 3 T	<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\" SSS9\R                  R                  S/ SQ5      S 5       5       r\" SSS9S 5       rS r\" SSS9S 5       rS r\" SSS9\R                  R                  SS / S!Q4/5      S" 5       5       r\" SSS9S# 5       rS$ 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   r8   r   r   rl   f_onewayrj   r5   rt   ru   r  ri  s       r~   test_trivialTestFOneWay.test_trivial  sN    ~~bjj!Q0"**aV2DE::c?+::c?+r   rO   r  c                     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   r8   rN   r:   r   gf3þ?)ro  rl   rS  rj   r5   r4   )rt   rO   ru   r  ri  s        r~   r\  TestFOneWay.test_basic  su     72+=~~bjj!Quj= jj!Quj=?::c:78::l%:@Ar   c                 "   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 )	Ng(\5IgHz'D@gףp=
2g
ףp=A@g333333g)\(?rN   gq=
ףp7@rE   g333333.@gRQ#@gzG'@r  g=
ףp#@gGz."@gp=
ף
@r	  FgM;yQ?gWe?)ro  rj   rl   rS  r4   )rt   rO   ru   r'  r  ri  s         r~   test_unequal_varTestFOneWay.test_unequal_var  s     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)NrZ  r[  r\  z(Expected a boolean value for 'equal_var'r   r	  Falserj   r   r   rv  rl   rS  )rt   ru   r'  r  s       r~   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 )Nr8   r;	  r  rA  )rl   rS  rj   r4   rT  s       r~   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    rN       gŸ?)rj   uint16rl   rS  r4   )rt   ru   rO  r[  r  ri  s         r~   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 )Nrh  ri  rN   rj  rk  rc  rB  )rj   rl  rl   rS  r   )rt   ru   rO  r[  r   rD  s         r~   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
r1  r1  r  )skiprowsr   re   )r{  r|  r}  rM	  rN   r  )ospathabspathjoindirname__file__openreadsplitstripr   loadtxtr   r  r  uniquer  rj   rl   rS  r4   r   )rt   rr  ru   filenamer  fnamer  contentline	certifieddatafrx   rw   catyr  xlistr   hard_tcs                     r~   	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/  rN  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  rR  )rt   rO  r[  r!  ru   r  ri  s          r~   rj  TestFOneWay.test_constant_input  sP     ~~bjjmRZZ];::hqk23::hqk23r   rV	  zneeds _axis_nan_policyr  rZ   )rk  re   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   r:   r9   r9   )r8   r;   r9   r9   )r9   r<   r9   r9   rr  rN   )r9   r   r;   r9   )r:   r<   r;   r9   )r:   r9   r;   r9   )r   r;   r;   r9   )r;   r;   r;   r9   )r8   r9   r;   r9   )r>   r8   r;   r9   )r8   r8   r;   r9   )r:   r9   r:   r9   )r:   r8   r:   r9   )r;   r:   r:   r9   re   r   r   r   rY   ra  rb  )	r   r   r   r   rl   rS  rj   taker4   )rt   rZ   ru   rO  r[  ru  	take_axisr  ri  r  fjpjs               r~   test_2d_inputsTestFOneWay.test_2d_inputs  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@rN   )r:   r;   r=   r8   g      l@)r:   r>   r=   g     @\@)r:   r:   r=   rY   )r:   r=   r   )	rn   r   r   cosrl   rS  r  r  r4   )rt   ru   rO  r[  ru  r  ri  r  r  fijpijs              r~   test_3d_inputsTestFOneWay.test_3d_inputs2  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)Nre  r  )r   rR   r   r   )
r$   r   r   rl   rS  rj   r5   rC  rs   rA  rA  s      r~   test_length0_1d_error!TestFOneWay.test_length0_1d_errorE  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)Nre  r9   r:   r   r;   rK  )	r$   r   r   r  rl   rS  r   rs   r5   )	rt   ru   ncolsrO  r[  ru  r  ri  r  s	            r~   test_length0_2d_error!TestFOneWay.test_length0_2d_errorM  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)Nr_   r`   ra   rb   rB  )	rj   r$   r   rl   rS  r5   rC  rs   rA  )rt   ru   r'  r  s       r~   test_all_length_oneTestFOneWay.test_all_length_oneY  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   ra  )rt   r  ru   rn	  r  s        r~   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  r;   r:   r8   rY   )r  r   r   r!   rl   rS  rt   ru   rO  r[  s       r~   test_axis_errorTestFOneWay.test_axis_errorh  sB    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  r  r   rY   )r  r   r   r   rl   rS  r  s       r~   test_bad_shapesTestFOneWay.test_bad_shapeso  sB    GGFOGGFO]]:&NN1a( '&&r  N)r   r   r   r   rU  r   r   r   r\  r]  rb  re  rm  rp  r  r   r   r   r#  rs   rj  r   r  r  r  r  r  r  r  r  r   r   r   r~   rP  rP    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 l+CD[[V^4+2 5 E+2Z l+CD. E.$? l+CD	% E	%? l+KL[[Vb9,%78" 9 M" l+KL) M))r   rP  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S
 r\" SSS9S 5       r\" SSS9\" SSS9S 5       5       rS rS rSrg)TestKruskaliv  c                     [         R                  " S/S/5      u  p[        US5        [        U[         R                  R                  US5      5        g )Nr   r8   r   )rl   kruskalr   r   r  r  )rt   hri  s      r~   test_array_likeTestKruskal.test_array_likex  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   r8   r   rN   )rj   rl   r  r4   r(   r  r  )rt   ru   rw   rx   r  ri  rO   s          r~   test_simpleTestKruskal.test_simple}  sn    JJsOJJsO}}Q"::c?+ $::ejjmmAq&9:GHr   rO   )rm  r   Nc           	      N   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 )N)r   r9   r;   r=   r?   rN   )r8   r:   r<   r>   r_   r  r   )r(   ro  rj   rl   r  r4   r  r  )rt   ru   rO   rw   rx   r  ri  s          r~   r\  TestKruskal.test_basic  s    (- $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   r8   g      ?r  r   )rl   r  rj   r5   r4   r   chdtrc	rt   ru   rw   rx   r  ri  h_uncorrr  r!  s	            r~   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   r8   )r8   r8   r8   r8   r   r        r   rl   r  rj   r  r4   r   r  r  s	            r~   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  rQ  r8   rR   r   r  r  r   r  )
rt   ru   rw   rx   r|  r  ri  r  r  r!  s
             r~   test_three_groupsTestKruskal.test_three_groups  s    F}}RZZ]BJJqM2::a=IG5,-::::ho.$7>>"**R.(CDr   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  rQ  rN   r   )rj   rO   r   r  r   r   rl   r  r5   rC  rs   rA  )rt   ru   rw   rx   r|  r   s         r~   r  TestKruskal.test_empty  s    JJy!JJy!JJrJ)\\,4IJ--a(C Krzz"&&'9:

BJJrvv$67 KJs   C
C+r?  needs jax-ml/jax#34628r  c                 r   UR                  S5      n[        R                  " U5      S   R                  UR                  5      n[
        R                  " X"5      n[        UR                  UR                  UR                  5      5        [        UR                  UR                  UR                  5      5        g )Nr   r?   )r   rp   rq   rr   rs   rl   r  r5   rC  rj   rA  r   s       r~   r6	  %TestKruskal.test_nan_policy_propagate  ss    IIcNFF1IaLRVV$mmA!rzz"&&'9:

BJJrvv$67r   r   cupyz,cupy returns small but nonzero res.statisticc                 h   UR                  S5      n[        R                  " U5      S   R                  UR                  5      n[
        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   rp   rq   rr   rs   rl   r  r5   rC  rj   rA  r   r   r   r   s       r~   test_nan_policy_omit_raise&TestKruskal.test_nan_policy_omit_raise  s     IIcNFF1IaLRVV$mmAV4rzz#7

BJJsO4]]:-LMMM!73 N ]]:-KLMM!84 ML NM MLs   <D3D#
D #
D1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 )Nr
  ykr  r   rN   )	r   r  r  rj   r  rl   r  r4   rO   )rt   ru   r  r  rw   rx   r  ri  s           r~   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   rl   r  rK  s      r~   test_no_args_gh20661 TestKruskal.test_no_args_gh20661  s*    B]]:W5MMO 655s	   ;
A	r   N)r   r   r   r   r  r  r   r   r   r\  r  r  r  r  r   r6	  xfail_xp_backendsr  r  r  r   r   r   r~   r  r  v  s    0
I [[W&BCL DLE
EE8 k*BC8 D8 k*STv&TU5 V U5:r   r  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)TestCombinePvaluesi  z+method, expected_statistic, expected_pvalue))r0  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  rJ  rQ  r  )rl   combine_pvaluesrj   r4   rC  rA  )rt   ru   r  r{  r  rw   r   s          r~   test_reference_values(TestCombinePvalues.test_reference_values  sR     ##BJJqM&Arzz2D'EF

BJJ$?@r   z,weights, expected_statistic, expected_pvaluer   r   r   r  r  )r   r   r   ga;?grmT?c                    UR                  / SQ5      n[        R                  " USUR                  U5      S9n[        UR                  UR                  U5      5        [        UR
                  UR                  U5      5        g )Nr  r  )r  r  )rj   rl   r  r4   rC  rA  )rt   ru   r  r{  r  rw   r   s          r~   test_weighted_stouffer)TestCombinePvalues.test_weighted_stouffer    s^     JJ}%##Aj"**WBUVrzz2D'EF

BJJ$?@r   )r0  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)r_   r=   l	   TrU(	"b-= r  rN  rP  r  r   rY   r  r  r   r  r  re   )r   r  r  r  rj   r  rn   rK  r   r  r\  r  r  r  rl   r  r  )
rt   r  r  ru   r  r  r  pvaluessr  combined_pvaluess
             r~   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   )rl   r  rj   r5   rC  rA  )rt   r  ru   r   s       r~   r\  TestCombinePvalues.test_result,   sA    ##BJJ}$=fMs1v.

CF+r   rZ   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 r
  r  r   )rZ   r  r  r  r   )r   r  r  rj   r   rl   r  rn   r4   rC  rA  )rt   r  rZ   ru   r  rw   r   r   r   r  ref0rN  s               r~   r  TestCombinePvalues.test_axis2   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   r~   r  r    s'    [[5	GHAHA [[ 	7
)+>	?
)+=	>	@	AA	AA OG[[Y(CD[[Xw/I 0 EI0 [[Xw/, 0,
 [[Xw/[[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	)
TestCdfDistanceValidationiL   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   r8   r:   r9   r   r   r   rl   wasserstein_distancer~  s    r~   &test_distinct_value_and_weight_lengths@TestCdfDistanceValidation.test_distinct_value_and_weight_lengthsR   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   r8   r9   r  r~  s    r~   test_zero_weight*TestCdfDistanceValidation.test_zero_weightY   sN     	j%"<"<!fqcAq6	+j%"<"<!fqcAq6A3	0r   c           	      X    [        [        [        R                  SS/SS/SS/SS/5        g )Nr   r   r8   r9   re   r  r~  s    r~   test_negative_weights/TestCdfDistanceValidation.test_negative_weightsa   s-    j%"<"<!fq!fq!fq"g	7r   c                     [        [        [        R                  / SS/5        [        [        [        R                  S// 5        g rb  r  r~  s    r~   test_empty_distribution1TestCdfDistanceValidation.test_empty_distributionf   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   rl   r	  r   r#  r~  s    r~   test_inf_weight)TestCdfDistanceValidation.test_inf_weightl   s0    j%"<"<!Q!RVVQ!Q	Ar   r   N)r   r   r   r   r;  r
  r  r  r  r  r   r   r   r~   r  r  L   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!)"TestWassersteinDistanceNDir   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  r<   r   r  )r  r  r  r  r  r;   r   r  r  r  r  r  r  )r=   r   )r   r   rR   r   r   r   )r   gw@r   r  r   r   )rl   wasserstein_distance_ndr   r   ri  r   )rt   r(  r)  r   flowdistr   s          r~   test_published_values/TestWassersteinDistanceND.test_published_valuesv   sg    
"" ++A1 xx01xx@AffT[!"&&,.!r   n_value)r:   r  r  rG  )r9   r:   r=   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  rO   r  r   rY   r@  rH  rI  )r   r  r  r  r  r  ri  r   r#  bincountr  rl   r  r   )rt   rG  r"  r#  r  repeatsu_valuesv_values	v_weightsrange_repeat	u_weightsindexr   s                r~   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)r>   r?   &   nv)r>   ra   rh   )r9   r;   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   rY   r@  )
r   r  r  rd  r  r8  rc  rl   r  r   )rt   r/  r1  rG  r  r'  r(  r+  r)  r   r   s              r~   test_collapse_nD*TestWassersteinDistanceND.test_collapse_nD   s     ii##$89::B::.88RJ'JJBJ'	JJBJ'	jjq99M++H	U!r   )r>   r   r  )r   r8   r<   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 )Nr3  r  r   r8   rY   )	r   r  r  rl   r  r  insertrd  r   )rt   r/  r1  rG  r  r'  r(  r+  r)  r   add_rownrows	add_valuer   s                 r~   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   r8   r   r  )r   r#  rl   r  r   r  rs   )rt   uvvvuwdistances        r~   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   r9   r;   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   rY   )r   r  r  rl   r  r  r7  r   )rt   r/  r1  rG  r  r'  r(  r+  r)  r   add_dimr:  r   s                r~   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   )r=   rb   r	  )r8   r:   r=   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  rl   r  ortho_groupr  r   )rt   r/  r1  rG  r  r'  r(  r+  r)  r   r  	transformshiftr   s                 r~   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   )r:   r_   r  r  )r<   r8   r=   z Invalid input values. Dimensions)r  )r9   r  z(Invalid input values. If two-dimensionalr
  r  )r   r  r  r   r   r   rl   r  )rt   r  r'  r(  r  s        r~   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   r_   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  rl   r	  r  r   )rt   rQ  rR  r  r'  r(  u_values_flatv_values_flatd1d2d3r+  r)  s                r~   test_optimization_vs_analytical9TestWassersteinDistanceND.test_optimization_vs_analytical!  s	    ii##K0::FA;:/::FA;:/ ( ( ''E**8>**=HJJFJ+	JJFJ+	''(1>**8(1>**=(1>r   r   N)r   r   r   r   r;  r   r   r   r   r-  r4  r;  rB  rF  rL  rO  rY  r   r   r   r~   r  r  r   s   "& [[Y4[[VY/[[]G4, 5 0 5," [[T:.[[T;/[[VZ0" 1 0 /" [[T;/[[T;/[[VY/" 0 0 0" 	+ [[T<0[[T<0[[VY/" 0 1 1"" [[T;/[[T;/[[VY/" 0 0 0"$B  [[X{3[[X{3  4 4 r   r  c                   B    \ rS rSrSrS rS rS rS rS r	S r
S	 rS
rg)TestWassersteinDistancei!!  z4Tests for wasserstein_distance() output values.
    c                 D   [        [        R                  " SS/S/SS/S/5      S5        [        [        R                  " SS/S/SS/S/5      S5        [        [        R                  " SS/S/SS/S/5      S5        [        [        R                  " / SQ/ SQ5      S5        g )	Nr   r   rA   r9   r  r8   r  r  r   rl   r	  r~  s    r~   r  #TestWassersteinDistance.test_simple%!  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   r:   r:   r   rc  r9   )r   rl   r	  r~  s    r~   test_same_distribution.TestWassersteinDistance.test_same_distribution5!  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  r;   r_   r'  )r`   ra   rb   r]   r  )rE   g@r
  )r
  r=   r  )r9   r   r   )r   r9   r   rC   r^  r~  s    r~   
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   r;   )r   r9   r9   r9   r9   r:   r:   )r   r   r   r   r   r   r   )r;   r   r   )r   r:   r9   r   r8   r:   r^  r~  s    r~   test_combine_weights,TestWassersteinDistance.test_combine_weightsK!  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 )NrV  r0  rQ  re   r@  )
r   r   r  r   rl   r	  ro   r<	  r#  r  )rt   r(  r)  r+  r)  s        r~   test_collapse%TestWassersteinDistance.test_collapseU!  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   r8   rr  r   r	  r8   r^  r~  s    r~   r  (TestWassersteinDistance.test_zero_weighte!  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   r8   zinvalid valuer   )	r   rl   r	  r   r#  r   r  r   rs   r~  s    r~   rB  'TestWassersteinDistance.test_inf_valuesl!  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   r;  r  rb  re  rj  rm  r  rB  r   r   r   r~   r\  r\  !!  s+     >6 Hr   r\  c                   <    \ rS rSrSrS rS rS rS rS r	S r
S	rg
)TestEnergyDistancei~!  z/Tests for energy_distance() output values.
    c                    [        [        R                  " SS/S/SS/S/5      [        R                  " S5      S-  5        [        [        R                  " SS/S/SS/S/5      [        R                  " S5      S-  5        [        [        R                  " SS/S/SS/S/5      S5        [        [        R                  " / SQ/ S	Q5      [        R                  " S5      S
-  5        g )Nr   r   r8   rA   r9   r  r   r  r  r  r   rl   energy_distancer   rL  r~  s    r~   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 ra  )r   rl   rz  r~  s    r~   rb  )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   r8   r  r;   gS[:XL	@ry  r~  s    r~   re  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 rh  r   rl   rz  r~  s    r~   rj  '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 rp  r  r~  s    r~   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rs  )	r   rl   rz  r   r#  r   r  r   rs   r~  s    r~   rB  "TestEnergyDistance.test_inf_values!  s     	U**Aq"&&>Aq6BBFFK!!1a.BFF7A,?FF	 	!!1rvvgrvv"6A?FF	 \\.@%%q!RVVnrvvqkB A@@ru  r   N)r   r   r   r   r;  r  rb  re  rj  r  rB  r   r   r   r~   rw  rw  ~!  s'    , !OCr   rw  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SS9S 5       r\" SSS9S 5       r\" SSS9S 5       r\R                  R                  SSS/5      S 5       rS rSrg)TestBrunnerMunzeli!  )r   r8   r   r   r   r   r   r   r   r   r8   r:   r   r   )r9   r9   r:   r9   r   r8   r9   r   r   r;   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[        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?rj   rk   Yrl   brunnermunzelr4   )rt   ru   rk   r  u1r  u2rA
  u3rB
  u4p4s               r~   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  rt   ru   rk   r  r  r  r  rA
  s           r~   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           r~   test_brunnermunzel_default,TestBrunnerMunzel.test_brunnermunzel_default!  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)NrN  ro  r  r  r}  r   r   r   r   rl   r  rj   rk   r  rt   ru   r  distributionr   r  s         r~   $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  r  r  r  g "H[?r  r  s           r~   $test_brunnermunzel_distribution_norm6TestBrunnerMunzel.test_brunnermunzel_distribution_norm!  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  rN  r  )ro  r  z&distribution should be 't' or 'normal'r   r  r  s         r~   %test_brunnermunzel_distribution_error7TestBrunnerMunzel.test_brunnermunzel_distribution_error"  sp    ! 
?222:]]:W5

466 2BJJtvv4F +:G 655r  kwarg_updaterx   rw   rw   rx   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)Nr  rN   re  r   )rk   r  updateitemsrj   r(   r$   r   r   rl   r  r5   rs   )rt   r  ru   r  keyvalrC  rA  s           r~   test_brunnermunzel_empty_imput0TestBrunnerMunzel.test_brunnermunzel_empty_imput"  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r?  r  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[        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   r8   r:   r9   r9   r:   r9   r   r8   r9   r   r   r;   r   r  r   )rj   rs   rl   r  r5   r  s           r~   &test_brunnermunzel_nan_input_propagate8TestBrunnerMunzel.test_brunnermunzel_nan_input_propagate"  s    JJ1aAq!Q1aAq"&&IJJJ9:$$QkB$$QkBJJrvv./JJrvv./JJrvv./JJrvv./r   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   r8   r:   r  r  ro  r   r   r   )rj   rs   r   r   r   rl   r  )rt   ru   rk   r  r  r  r   r  s           r~   "test_brunnermunzel_nan_input_raise4TestBrunnerMunzel.test_brunnermunzel_nan_input_raise$"  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   r8   r:   r  r   r   r  r  r  )rj   r   rs   rl   r  r4   r  s           r~   !test_brunnermunzel_nan_input_omit3TestBrunnerMunzel.test_brunnermunzel_nan_input_omit2"  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  rR   r   r   r   r   zDp-value cannot be estimated|divide by zero|invalid value encounteredre  ro  r  N)rj   r  r   r$   r   rl   r  )rt   r  ru   rw   rx   r   s         r~   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  r  zdivide by zerore  r  r  Nr   )rj   r$   r   rl   r  r5   )rt   ru   rw   rx   r  ri  s         r~   test_brunnermunzel_normal_dist0TestBrunnerMunzel.test_brunnermunzel_normal_distN"  sd     JJ|$JJ+,/?BG&&q(CDA H2::b>* HGs   A22
B r   N)r   r   r   r   rk   r  r  r  r  r  r  r  r   r   r   r  r   r  r  r  r  r  r   r   r   r~   r  r  !  s     	3A)A=&	?	?G?G [[^sBi#r46R.@.B C4C4 k*BC	0 D	0 k*STM UM k*ST	? U	? [[.>8 ?8	+r   r  )rw   r   )r  r   )ri  r   c                 ~    [         R                  " XX#S9nUR                  UR                  /UR	                  5       Q7$ )Nr  ri  r  )rl   quantile_testrC  rA  r  )rw   r  ri  r  r   s        r~   quantile_test_referencer  Z"  s5    


a
CC==#**@s'>'>'@@@r   c                   H   \ 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\R                  R                  S/ SQ5      S 5       r\" SSS9\R                  R                  S/ S Q5      \R                  R                  S!S"S#/5      S$ 5       5       5       rS% rS& rS' r\R                  R)                  S(5      \R                  R                  S)/ S*Q5      S+ 5       5       rS,rg-).TestQuantileTesti`"  zYTest the non-parametric quantile test,
including the computation of confidence intervals
c                 b   UR                  / SQ5      nSn[        R                  " [        US9   [        R
                  " UR                  X!R                  5      5        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SS	9  S S S 5        UR                  S
SSSUR                  /5      n[        R
                  " X$S	9n[        UR                  UR                  XAR                  5      5        [        UR                  UR                  XAR                  5      5        [        UR                  UR                  XAR                  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        Sn[        R                  " [        US9   [        R
                  " USS9  S S S 5        Sn[        R                  " [        US9   [        R
                  " X!R                  SS/5      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N= f! , (       d  f       GN= f! , (       d  f       GNl= f! , (       d  f       GN= f! , (       d  f       GN]= f! , (       d  f       GN6= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr  z `x` must be an array of numbers.r   z)`q` must be a scalar or array of numbers.F)r  z(`p` must be a scalar or array of floats.r8   )ri  rT  r   r   rB   z"`axis` must be an integer or None.rC   rY   z7`axis` is not compatible with the shapes of the inputs.z/If specified, `keepdims` must be True or False.r_   rj  z"`keepdims` may be False only if...rN  rJ  )ri  r7  z`alternative` must be one of...z	one-sidedr  r  r   )rj   r   r   r   rl   r  r  r  rs   r5   rC  r  statistic_typerA  r  )rt   ru   rw   r  ri  r   s         r~   test_quantile_test_iv&TestQuantileTest.test_quantile_test_ivf"  s   JJy!4]]:W5		!WW 56 6 >]]:W5U+ 6 =]]:W5Q' 6 JJRS"&&12!!!)r||Avv'>?**BLLFF,CD

BLLFF$;<6]]:W5, 6 L]]:W5* 6 D]]:W5B/ 6 8]]:W5ZZc
%;eL 6 4]]:W5{; 6 I]]:W5"66q9 65O 65 65 65 65 65 65 65 65 65sk   0LL$;L65M.M'M, 'M>*N#&N 
L!$
L36
M
M
M),
M;>
N
N 
N.zp, alpha, lb, ub, alternative)rQ  ffffff?gX݊?g蜶?r  )rA   rP  g-tA?gP"?r  r  r  g{gA?r  r  rP  gg @r  c                 (   UR                  UR                  SSS5      5      n[        R                  " XqUS9nUR	                  U5      n	[        U	R                  UR                  U5      5        [        U	R                  UR                  U5      5        g )Nr   r  r  )ri  r  )	r"  r   rl   r  r  r4   r  rj   r  )
rt   ri  r  lbubr  ru   rw   r   r  s
             r~   test_R_ci_quantile#TestQuantileTest.test_R_ci_quantile"  sm      FF299S$-.!!!kB$$U+

2/B0r   zq, p, alternative, ref)r  rQ  r  gͯI	?)r  rA   r  gɍQ%e?c                     UR                  UR                  SSS5      5      n[        R                  " XaX#S9n[	        UR
                  UR                  U5      5        g )Nr   r  r  r  )r"  r   rl   r  r4   rA  rj   )rt   r  ri  r  r   ru   rw   r   s           r~   test_R_pvalueTestQuantileTest.test_R_pvalue"  sG     FF299S$-.!!!AG

BJJsO4r   r  
continuousdiscreter  r  c                    [        S[        U5      -  [        U5      -   U-  5      n[        R                  R	                  U5      nUS:X  a!  UR                  SS9u  pxUR                  SS9n	O3UR                  SSSS9n	UR                  5       nUR                  SS5      nUR                  U	R                  5       5      [        U5      [        U5      pn	[        R                  " XXrS9n
U
R                  US	9nUS
:X  a3  UR                  XR                  R                  5      UR                  :*  nO2UR                  XR                  R                  5      UR                  :  nX    H-  n[        R                  " XXrS9n
U
R                   SU-
  :  a  M-   e   X)     H-  n[        R                  " XXrS9n
U
R                   SU-
  :  a  M-   e   g )Nr=   r  r8   r  r  r   r`   r  r  r  )r  r#  r   r  r  r  rj   r   r  rl   r  r  r  r  rO   r  rA  )rt   r  r  r  ru   r  r  ri  r  r  r   r  i_insiderw   s                 r~   test_pval_ci_match#TestQuantileTest.test_pval_ci_match"  s    As4yL3{#33U:;ii##D)<::1:%DA**#*&C,,q"3,/C

AQ#AJJszz|,eAha!!#aI$$e$< & yyggmm4?Hyyffll3rvv=HA%%c!MC::E	)))  YA%%c!MC::E	)))  r   rO   r  c                    Uc  [        U5      O
[        X!5      nUR                  / SQUS9nSn[        R                  " USSSS9n[        UR                  UR                  XAS9SS	9  UR                  S
/S-  S/S-  -   US9n[        [        R                  " SSS9R                  SS95      n[        R                  " USSSS9n[        UR                  UR                  XAS9SS9  g )N)                                    rV        rN   geX?r  r  r  r  rz  r  ;   r>   r[   h   rA   p   )ri  r  r  r  r  r  rI  )
r(   ro  rj   rl   r  r4   rA  r  binomrj  )rt   rO   ru   rw   
pvalue_refr   s         r~   test_match_conover_examples,TestQuantileTest.test_match_conover_examples"  s     ). $72;MJJ ;BG  I
!!!sdL

BJJzJ$GdS JJtAve,EJ:5;;48818=>
!!!rSiH

BJJzJ$GeTr   r	  zindexing in _apply_over_batchr  r  rZ   r   r   c                   ^ [         R                  R                  S5      nUR                  SS9nUR                  SS9nXdR                  SS9S-  -   nU4S jXVU4 5       u  pVn[        XWXaS9nUu  ppUS	:X  a#  UR                  UR                  UR                  pvn[
        R                  " XWXaUS
9nUR                  UR                  pUR                  5       u  nnUS	:X  a/  UR                  UR                  pUR                  UR                  nn[        X5        [        X5        [        UU5        [        UU5        g )Nl   z-\"}	r8   r  r  r  r  r  c              3   b   >#    U  H$  nTR                  UR                  5       5      v   M&     g 7fr.  rj   r   rm	  r?  ru   s     r~   ro	  9TestQuantileTest.test_multidimensional.<locals>.<genexpr>#  #     Ay2::cjjl++y   ,/r  r   )r  ri  r  rZ   )r   r  r  r  r   rl   r  rC  rA  r  r4   )rt   r  rZ   ru   r  rw   ri  r  r   r}  rk  ref_lowref_highr   r  r  res_lowres_highs      `              r~   test_multidimensional&TestQuantileTest.test_multidimensional#  s    ii##$56JJGJ$JJGJ$


',,AayAa%aAG7:4719cc133!A!!!ATR$'MM3::z33519(5: '		8::XG5
/))r   c                   ^ [         R                  R                  S5      nSnSnUR                  U5      nUR                  U5      nXbR                  U5      S-  -   nU4S jXWU4 5       u  pWnTR                  S/UQ75      nUn	[        R
                  " XXUSS9n
U
R                  5       n[        U
R                  TR                  U	5      5        [        U
R                  TR                  U	5      5        [        U
R                  U	5        [        UR                  U	5        [        UR                  U	5        TR                  S/UQ75      nTR                  S/UQ75      n	[        R
                  " XUSS9n
U
R                  5       n[        U
R                  TR                  U	5      5        [        U
R                  TR                  U	5      5        [        U
R                  U	5        [        UR                  U	5        [        UR                  U	5        TR                  UR                  S   S45      nTR                  UTR                   5      n	[        R
                  " XUSS9n
U
R                  5       n[        U
R                  U	5        [        U
R                  U	5        [        U
R                  U	5        [        UR                  U	5        [        UR                  U	5        g )	N   g3Dn&br8   r  r
  r  c              3   b   >#    U  H$  nTR                  UR                  5       5      v   M&     g 7fr.  r  r  s     r~   ro	  2TestQuantileTest.test_zero_size.<locals>.<genexpr>'#  r  r  r   re   r  ri  rZ   )r   r  r  r  rl   r  r  r5   rC  rj   r  rA  r  r  r  r   rs   )rt   ru   r  x_shapeqp_shaperw   r  ri  qp_zerooutr   r  x_zeros    `           r~   r  TestQuantileTest.test_zero_size#  s9   ii##$67JJwJJx 

8$t++AayAa ((A>>*!!!'C$$&rzz#7**BJJsO<

C($% 1-w-(hh~H~&!!&<$$&rzz#7**BJJsO<

C($% 1771:q/*ggh'!!&<$$&s+**C0

C($%r   c                   ^ [         R                  R                  S5      nUR                  S5      nUR                  S5      nXBR                  S5      S-  -   nU4S jX5U4 5       u  p5n[        R                  " X4USS9nUR                  5       u  px[        U5      n	TR                  UR                  UR                  5      S:  5      n
[        R                  " U	5      U
   R                  TR                  5      n	TR                  U
SS9nTR                  U5      (       a   e[        R                  " XUSS9nUR                  5       u  pTR                  TR                  UR                   U   5      5      (       d   eTR                  TR                  UR"                  U   5      5      (       d   eTR                  TR                  UR$                  U   5      5      (       d   eTR                  TR                  X   5      5      (       d   eTR                  TR                  X   5      5      (       d   e['        UR                   U)    UR                   U)    5        ['        UR"                  U)    UR"                  U)    5        ['        UR$                  U)    UR$                  U)    5        ['        X)    X{)    5        ['        X)    X)    5        TR                  UR                  UR                  5      S:  5      nTR                  UR                  UR                  5      S:  5      nTR                  U5      (       d   eTR                  U5      (       d   e[        R                  " U5      TR)                  XR                  5         R                  TR                  5      n[        R                  " U5      TR)                  UUR                  5         R                  TR                  5      nTR                  UU-  5      nTR                  U5      (       a   e[        R                  " X4USS9nUR                  5       u  pTR                  TR                  UR                   U   5      5      (       d   eTR                  TR                  UR"                  U   5      5      (       d   eTR                  TR                  UR$                  U   5      5      (       d   eTR                  TR                  X   5      5      (       d   eTR                  TR                  X   5      5      (       d   e['        UR                   U)    UR                   U)    5        ['        UR"                  U)    UR"                  U)    5        ['        UR$                  U)    UR$                  U)    5        ['        X)    X{)    5        ['        X)    X)    5        g )	Nl   I8Z R r  )r_   r_   r  c              3   b   >#    U  H$  nTR                  UR                  5       5      v   M&     g 7fr.  r  r  s     r~   ro	  -TestQuantileTest.test_nans.<locals>.<genexpr>R#  r  r  re   r	  rY   )r   r  r  rl   r  r  r1   rj   r  rp   rq   rr   rs   r  r  r  rC  r  rA  r5   r  )rt   ru   r  rw   r  ri  r   r  r  x_i_nan	i_nan_outr   r   r  i_nan_qi_nan_ps    `               r~   	test_nansTestQuantileTest.test_nansM#  s   ii##$45JJx JJx 

8$t++AayAa!!!AB7335QZ

3::agg.56VVBZ""266*FF5rF*	66)$$$$!!"QR8335vvbhhs}}Y789999vvbhhs11)<=>>>>vvbhhszz)456666vvbhhw123333vvbhhx234444yj13==)3LM**I:68J8JI:8VW

I:.

I:0FG
+WZ-@A,hz.BC**SZZ0478**SZZ0478vvgvvgFF1Iboogww78<<RVVDFF1Iboogqww78<<RVVDJJw01	66)$$$$!!!AB7335vvbhhs}}Y789999vvbhhs11)<=>>>>vvbhhszz)456666vvbhhw123333vvbhhx234444yj13==)3LM**I:68J8JI:8VW

I:.

I:0FG
+WZ-@A,hz.BCr   c                   ^ [         R                  R                  S5      nSnSnUR                  U5      nUR                  U5      nXbR                  U5      S-  -   nU4S jXWU4 5       u  pWn[        R                  " XVUS S9nUR                  5       u  p[        R                  " [        U5      [        U5      [        U5      S S9nUR                  5       u  p[        UR                  UR                  TR                  S S 24   5        [        UR                  UR                  TR                  S S 24   5        [        UR                  UR                  TR                  S S 24   5        [        XTR                  S S 24   5        [        XTR                  S S 24   5        [        R                  " USSS S9nUR                  5       u  p[        R                  " [        U5      SSS S9nUR                  5       u  p[        UR                  UR                  5        [        UR                  UR                  5        [        UR                  UR                  5        [        X5        [        X5        g )Nr  r  r
  r  c              3   b   >#    U  H$  nTR                  UR                  5       5      v   M&     g 7fr.  r  r  s     r~   ro	  2TestQuantileTest.test_axis_none.<locals>.<genexpr>#  r  r  r	  rA   )r   r  r  rl   r  r  r,   r5   rC  r  r  rA  )rt   ru   r  r
  r  rw   r  ri  r   r   r  r   r  r  s    `            r~   test_axis_noneTestQuantileTest.test_axis_none#  s   ii##$67JJwJJx 

8$t++AayAa!!!AD9335!!(1+!RVW335s}}RZZ]'CD**C,>,>rzz1},MN

CJJrzz1}$=>Q!782::q="9:!!!sc=335!!(1+$G335s}}5**C,>,>?

CJJ/)+r   zignore:torch:UserWarningz,x_shape, qp_shape, axis, keepdims, res_shape))r  r  NFr   )r  r  NTr  )r  r  re   Fr  )r  r  re   Tr  c                 $   [         R                  R                  S5      nUR                  UR                  U5      5      UR                  UR                  U5      5      p[        R
                  " XXUS9n
U
R                  R                  U:X  d   eg )Nr  )r  ri  rZ   r7  )r   r  r  rj   rl   r  rC  r  )rt   r
  r  rZ   r7  	res_shaperu   r  rw   qpr   s              r~   r  TestQuantileTest.test_keepdims#  sp     ii##$67

3::g./CJJx<P1Q2!!!RXN}}""i///r   r   N)r   r   r   r   r;  r  r   r   r   r   r#  r  r  r  r  r   r  r  r  r  r   r  r   r   r   r~   r  r  `"  s   ,:\ [['	G	F
rvvg/	8
s%rvvy	9	;11 [[ 	2	1	3
5
5 [[VlJ%?@[[]VY,?@[[WsDk2%* 3 A A%*N [[W&BCU DU> (1PQ[[],LM[[VaV,* - N R*2,&\2Dh,: [[ :;[[K N 0 <0r   r  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 )Nr  r}  r~  s    r~   r  TestPageTrendTest.setup_method#  s    99((4r   l   /*s )r9   r  )r_      i2  g<n?Fr  iu  gRn@?i,0  gY@?)re  rc  I   r  rc  `   r0  r  r
  r  ra  1   r`  +   r  rc  rL  rL  rf  r  r[   r  r  r  r  )D   r  r  "   r	  r  A   X   r\   r`  r1  r  r  C   E   r0  r0  r  r1  W   r  r+  r  r)  r+  )r`  rb   U   r  O   ra   \   V   r\   @   r   r7  r,  rh   r   Y   r  r+  r+  r  6   rb   B   rs  r  i
  gXY?r  )rB   r   g @r;   r	  r`   )r;   r:   rD   r_   r  r\   )rC  r
  r_   ra   r]   r  iL  gs˜?T)r:   r9   r8   r   )r9   r:   r   r8   rH     gĞ?)r9   r8   r   r  r     g>K=?)r<   r;   r:   r9   r8   r   )r   r9   r:   r;   r8   r<   i  gqူ?)r;   r:   r9   r8   r   )r:   r   r9   r8   r;   r'     ga?i  g;?)r=   r<   r;   r:   r9   r8   r   )r<   r;   r=   r:   r9   r8   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  rl   page_trend_testr   rC  r   rA  r  rt   Lri  rA  r  rV  r   s          r~   test_accuracyTestPageTrendTest.test_accuracy#  s8    ##DGQ&::&VZZ(r   i  g-lpW?)
r_   r?   r>   r=   r<   r;   r:   r9   r8   r   )
r   r>   r:   r=   r<   r;   r?   r9   r8   r_   i*  gh[?)
r?   r8   r>   r=   r<   r;   r:   r9   r_   r   r  i  g&]2?)r>   r=   r<   r;   r:   r9   r8   r   )r   r9   r;   r<   r:   r=   r8   r>   r  c                     [         R                  " XSUS9n[        XR                  5        [	        X&R
                  5        [        XFR                  5        g r@  rB  rD  s          r~   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
)r_   r  r   rY   TrA  F)predicted_ranks)
r   r  r  r   r  rl   rankdatarC  r   rC  )rt   r  r  r  rM  permrV  ranksr  r  r   res4res5s                r~   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   )rb  rh  k   )g      y   )rZ  r*
  r  )rM        )   r&  t   r   r=   Fr  )rA  rM  r  i  gy&1l?r:   rg
  r  gHPsb?)
r   r   r   r   rl   rC  r   rC  r   rA  )rt   rV  rM  r   s       r~   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   r8   l   s' zPage's L is only appropriater  r  z+`predicted_ranks` must include each integerr  r  )rV  rM  )r  r8   r9   )r   r8   r9   r9   r  z`data` is not properly ranked)r   r8   r9   Tri  z`data` contains NaNsFrL  z`method` must be inekki)rV  r  z`ranked` must be boolean.)rV  rA  )	r   r   rl   rC  r   r  r  rs   rv  )rt   r  r  s      r~   r  'TestPageTrendTest.test_input_validation7$  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   rF  ts2r  rI  rS  r_  r  r   r   r   r~   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$  c                   @   \ rS rSr\R
                  R                  S/ SQ5      S 5       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)TestExpectileij$  rO   r  c                    Uc  UO
[        X!5      n[        R                  R                  S5      nUR	                  UR                  SS9R                  5       US9n[        [        R                  " US5      UR                  U5      5        UR	                  UR                  SS9R                  5       US9n[        [        R                  " USUS9[        XES95        g )Nr/  r  r  rN   rA   r@  )ro  r   r  r  rj   r   r4   rl   	expectilero   r   )rt   rO   ru   r  rw   r*  s         r~   test_same_as_meanTestExpectile.test_same_as_meanl$  s    GB,>ii##B'JJszzrz*1135JA3/<JJszzrz*1135JA3:HQ<RSr   c                     [         R                  R                  S5      nUR                  UR                  SS95      n[	        [
        R                  " USS9UR                  U5      5        g )Nr/  r  r  r   r  )r   r  r  rj   r4   rl   rk  r  rt   ru   r  rw   s       r~   test_minimumTestExpectile.test_minimumw$  L    ii##B'JJszzrz*+3RVVAY?r   c                     [         R                  R                  S5      nUR                  UR                  SS95      n[	        [
        R                  " USS9UR                  U5      5        g )Nr/  r  r  r   ro  )r   r  r  rj   r4   rl   rk  r  rp  s       r~   test_maximumTestExpectile.test_maximum|$  rs  r   c                 j  ^
 [         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                  " UR                  U5      XaR                  U5      S9nU" XVU5      n	[        XR                  U	5      5        g )Nl   b@lN c                 ~    [         R                  " XS9nSU-
  XAU :*  '   [         R                  " XC-  X-
  S-  -  5      $ )NrK  r   r8   )r   r  ri  )r(  rO  r  r  r*  s        r~   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_scalarrw   )rO  r  r  r{  r  s       r~   
expectile2.TestExpectile.test_weights.<locals>.expectile2$  sC    ffQi*G++C23G1DFFGaHr   r_   r@  )r   r  r  rl   rk  rj   r4   )rt   ru   r  r}  r  rO  r  r  r   r   r  s             @r~   test_weightsTestExpectile.test_weights$  s    
 ii##$78	4
	H
 JJqM

**Q-oobjjmUJJw<OP7+ZZ_-r   r  )rJ  g?rA   g/#    ?r  r  r  rL  c                    [         R                  R                  S5      nUR                  UR	                  US95      nS H>  n[        [        R                  " UR                  X&S9US9UR                  U5      5        M@     UR                  UR                  5       5      n[        [        R                  " XV-   US9[        R                  " XQS9U-   5        [        [        R                  " XV-
  US9[        R                  " XQS9U-
  5        [        [        R                  " Xe-  US9U[        R                  " XQS9-  5        UR                  UR                  USS95      nUS:X  a  S	 nOUS:  a  S
 nOS nU" [        R                  " XW-   US9[        R                  " XQS9[        R                  " XqS9-   5        UR                  UR	                  USS95      n[        R                  " XQS9[        R                  " XqS9::  d   eUR                  UR                  USS95      nS HZ  nU" [        R                  " SU-
  U-  Xg-  -   US9SU-
  [        R                  " XQS9-  U[        R                  " XqS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   rA   )r  rL  ro  r_   r  rA   c                     [        X5        g r.  )r4   rO  r[  s     r~   	assert_op:TestExpectile.test_expectile_properties.<locals>.assert_op$  s
    %r   c                     X:  d   eg r.  r   r  s     r~   r  r  $      uur   c                     X:  d   eg r.  r   r  s     r~   r  r  $  r  r   r;   )rN  rA   r  r   N)r   r  r  rj   r  r4   rl   rk  r   exponentiallogistic)	rt   r  r  ru   r  rw   ru  rx   r  s	            r~   test_expectile_properties'TestExpectile.test_expectile_properties$  sV   $ ii##B'JJszzqz)*
  Aa >eL

1   JJs()OOAE/OOA+a/	
 	OOAE/OOA+a/	
 	OOAE///	
 JJs|||34C<& S[ 	OOAE/OOA+ooa-.	
 JJszzqaz01OOA+uq/NN	
N JJs|||34 A1a!#U;177EOOA334 ! 	OOQBe,__Qag..	
r   c           	         [         R                  R                  S5      nUR                  UR	                  SUS95      n/ n[         R
                  " S[         R                  " S5      S5      n[         R                  SUSUS S	S	2   -
  S4    H0  nUR                  [        R                  " U[        U5      S
95        M2     UR                  UR                  UR                  U5      5      S:  5      (       d   eg )Nr/  r8   )rO  r  ra  rA   r  r   r   re   ro  )r   r  r  rj   paretologspacelog10r_rS  rl   rk  r  r  diff)rt   r  ru   r  rw   e_list	alpha_seqr  s           r~   test_monotonicity_in_alpha(TestExpectile.test_monotonicity_in_alpha %  s    ii##B'JJszzAAz./KKRXXc]C8	UU1iYv2v->)>ABEMM%//!5<@A Cvvbggbjj01A56666r   r   N)r   r   r   r   r   r   r   rl  rq  ru  r  r  r  r   r   r   r~   ri  ri  j$  s    [[W&BCT DT@
@
.4 [[: [[S2t*-_
 ._
B [[S2t*-7 .7r   ri  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=
ף?rB   r
  rd  rB   rA   r   r  r
  {Gz?g@(\?gףp=
?
ףp=
?g)\(?gRQ @r  {Gz?ffffff @rB  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=
?rO  gHzG?g      @r  gQ?r>  r  RQ?r  gQ?p=
ף?gQ@gGz?gQ?gp=
ף?q=
ףp?r
  gp=
ף?gQ?r  r  g@r  g)\( @gzG@r  rB  gGz?g(\?r>  333333?)\(?r  r  gGz@r  g(\?g=
ףp=?r  r  gHzG?{Gz?r  g
ףp=
?gףp=
?r  r  r  gQ?rY
  g?r  r  g(\?r  gQ?gffffff@gQ?g?r  gGz?r  g{Gz?gHzG@r  r  r  g\(\?g(\?r  g(\?rB   )r   r8   rD   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   rN   )r   r   r   rl   lmomentrj   rV  r  rK  s      r~   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   rl   r  r   r   rV  r  rC  s     r~   test_dtype_iv_non_numeric%TestLMoment.test_dtype_iv_non_numeric"%  s<    >]]:W5MM"((499F;< 655s   8A
A+r  r   re   r  c                 X   [        U5      (       a7  [        R                  " U5      (       a  US:  a  [        R                  " S5        Sn[        R
                  " [        US9   [        R                  " UR                  U R                  5      US9  S S S 5        g ! , (       d  f       g = f)Nr   z5Order is treated as an array; can't do value-based IVz*`order` must be a scalar or a non-empty...r   r  )r/   r   isscalarr   r  r   r   rl   r  rj   rV  )rt   r  ru   r  s       r~   test_order_ivTestLMoment.test_order_iv(%  sf    "::"++e,,KKOP>]]:W5MM"**TYY/u= 655s   #/B
B)rZ   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   rY   r   r   r   rl   r  rj   rV  )rt   rZ   ru   r  s       r~   test_axis_ivTestLMoment.test_axis_iv0%  s<    -]]:W5MM"**TYY/d; 655   /A
A"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  )rt   r  ru   r  s       r~   test_sorted_ivTestLMoment.test_sorted_iv6%  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  )rt   r  ru   r  s       r~   test_standardize_ivTestLMoment.test_standardize_iv<%  s<    8]]:W5MM"**TYY/[I 655r  r   r:   rH  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 ?r8   r   )r  r  )	rj   rp   rq   multiplyr  rV  rl   r  r4   )rt   r  r  r  ru   r   rV  r   s           r~   test_lmomentTestLMoment.test_lmomentB%  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 )NrM	  r  r'  )	rm  rj   rV  rl   r  r  r4   r
  r(   )rt   ru   rO   rK  r   r   s         r~   
test_dtypeTestLMoment.test_dtypeW%  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 )r_   r`   r  rY   )r   r  r  rl   r  rj   r4   )rt   rZ   ru   r  rw   r   r   s          r~   r  TestLMoment.test_axisd%  s`     ii##$9:JJHJ%mmBJJqM5jjq45!r   r   N)r   r   r   r   rV  mathrs   r#  not_integersr  r"   r  r   r   r   r  r  r  r  r  r  r  r   r   r   r~   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\R
                  R                  S5      S 5       rS r\R
                  R                  S5      S 5       rS rS rSrg)TestXP_Meanin%  rZ   Nr   re   )rk  r8   r  NTr7  Fc                    [         R                  R                  S5      nUR                  S5      nUR                  U5      nS =pU(       a:  UR                  S5      nUR                  U5      n	[         R                  " Xh5      u  ph[        XyX$S9n
[         R                  " XhX$S9n[        XR                  U5      5        g )N   -fH r[  r   )r  rZ   r7  )r   r  r  rj   r  r   r  r4   )rt   ru   rZ   r  r7  r  rw   x_xpr*  w_xpr   r   s               r~   test_xp_mean_basicTestXP_Mean.test_xp_mean_basicp%  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   r;   r  r   r@  )r   rd  r   r   r   r   )rt   ru   rw   r*  r  s        r~   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   )rj   r   r4   rs   r   r#  )rt   ru   r  r   s       r~   r	  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   r9   rk
  r   r   r   r   r  r   r_   )r  r   )r   r  rs   r%   r   r   rv  r   r   rj   r5   ro   r4   r  )	rt   ru   rw   r  r  r  r   r   r  s	            r~   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c                 <   UR                  S5      nUR                  US:H  UR                  U5      nSn[        [        X1S9   [        U[        R                  -  SS9nUR                  UR                  5      n[        XE5        S S S 5        g ! , (       d  f       g = fNr   r9   zAfter omitting NaNs...re  r   r   )	r   r  rs   r$   r   r   r   rj   r5   rt   ru   rw   r  r   r   s         r~   test_nan_policy_warns!TestXP_Mean.test_nan_policy_warns%  st    IIcNHHQ!VRVVQ' +w>1rvv:&9C**RVV$CC% ?>>   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   rY   r   )r   r  r   r   rj   rs   r5   rt   ru   r  r   r   s        r~   r  TestXP_Mean.test_empty%  s    @\\,G<2::b>*C**RVV$CC% =
 G\\,G<2::rd+!4C**bffX&CC% =
 rzz2$'a0jjn! =< =<   AD AD
D
D 4ignore:overflow encountered in reduce:RuntimeWarningc           	         UR                  UR                  5      R                  n[        R                  " X"/[        R                  S9nUR	                  U5      n[        R
                  " SS9   [        U5      n[        R                  " U5      n[        R                  R                  U[        R                  5        [        XQR	                  U5      5        S S S 5        [        XAR                  S9nUR	                  [        R                  " [        R                  " U[        R                  S95      5      n[        XV5        g ! , (       d  f       Ns= f)NrN   r   )over)r   rm  r  r   rj   r  r   ro   r$  r   r#  r4   r   rt   ru   r  x_npr  r   r   s          r~   r  TestXP_Mean.test_dtype%  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 )Nr_   r   r@  )r   r5   r   r   s       r~   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  )r:   r  r  r@  )r   r  r  r   rj   r  r4   )	rt   ru   r  rw   rx   wxwyr   r   s	            r~   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   r	  r  r  r  r  r  r  r   r   r   r~   r  r  n%  s%   [[V%;<[[Yt5[[Z%7. 8 6 =. # [[ WX[[ VW1 X Y1 [[9""@ [[ QR	& S	&"" [[>"""H.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      \R
                  R                  S
SS/5      S 5       5       5       5       rS rS 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_Vari%  rZ   r  r7  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  rA   )rZ   r7  r   r   r   rb  )rZ   r7  r  )r   r  r  r   r  rs   nanvarrj   r   r   r   r   r   r4   )rt   ru   rZ   r7  r   r   r  rw   var_refnan_maskr  r   r   s                r~   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   r9   r   )r   rj   r4   rs   )rt   ru   r   s      r~   r	  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   r9   r  r   r   )r   r  rs   r   rj   r5   r   r4   )rt   ru   rw   r  r  r  r   r   s           r~   r  TestXP_Var.test_nan_policy&  s    IIcNQHHT661% qzq[1jj "" aF+ffQuX!r   r

  c                 <   UR                  S5      nUR                  US:H  UR                  U5      nSn[        [        X1S9   [        U[        R                  -  SS9nUR                  UR                  5      n[        XE5        S S S 5        g ! , (       d  f       g = fr  )	r   r  rs   r$   r   r   r   rj   r5   r  s         r~   r   TestXP_Var.test_nan_policy_warns.&  st    IIcNHHQ!VRVVQ' +w>!bff*8C**RVV$CC% ?>>r  )r   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   r8   r   r   )r   r   r   r   rj   rs   rK  s      r~   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r  )r   r  r   r   rj   rs   r5   r  s        r~   r  TestXP_Var.test_emptyA&  s    @\\,G<"**R.)C**RVV$CC% =
 G\\,G<"**bT*3C**bffX&CC% =
 bjj"&Q/jjn! =< =<r  r  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 )Nr8   rN   )r   rm  r  r   rj   r   r   r$  r   r#  r4   r   r  s          r~   r  TestXP_Var.test_dtypeR&  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 )Nr_   r   )r   r5   r   r   s       r~   r  TestXP_Var.test_integerd&  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  r  r  F)check_dtype)r   r  r  r   rj   r   r4   r  s          r~   r  TestXP_Var.test_complex_gh22404j&  se    ii##N3zz'"bjjrT*+ffQ2XZZ_%@r   r   N)r   r   r   r   r   r   r   r   r	  r  r   r  r   r?  r  r  r  r  r   r   r   r~   r  r  %  s    [[V%;<[[Z%7[[\Aq62[[\K+@A. B 3 8 =.,1
"" [[ QR	& S	& &D 'D"" [[>""0Ar   r  Fprivatec           	         [         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   r8   r  )	r   r  r  rj   r   r5   r   r  
atleast_1d)ru   r  r   rw   rZ   x_outaxis_outs          r~   test_chk_asarrayr  r&  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   r?  z!JAX+wilcoxon+'exact' incompatibler  c                 |   [         R                  R                  S5      nUR                  UR                  S5      5      nUR                  UR                  S5      5      nU [        R
                  :X  a  U4nO*U [        R                  :X  a  U[        R                  4nOX44nU " USS06nU " USS06n[        UR                  UR                  5        [        UR                  UR                  5        U R                   S3n[        R                  " [        US9   U " USSS.6  S S S 5        g ! , (       d  f       g = f)	Nl   0:00 r_   r  r  r"  z%\(\) got multiple values for argumentr   )r  r"  )r   r  r  rj   rl   wilcoxonrV  r   rW  r5   rC  rA  r   r   r   rv  )	r  ru   r  rw   rx   r  r   r  errs	            r~   test_rename_mode_methodr  &  s     ))

 4
5C


3::b>"A


3::b>"A
ennt		7<< v
t
$G
$C#7#DCMM4>>2CJJ,ll^@
AC	y	,T'0 
-	,	,s   
D--
D;r  )r;  r  r  r   collectionsr   	itertoolsr   hypothesis.extra.numpyextranumpyrP  rU  rM  numpy.testingr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   scipy.statsrl   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    scipy._lib._utilr!   scipy.conftestr"   scipy._lib._array_apir#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   scipy._lib._array_api_no_0dr4   r5   r6   scipy._external.array_api_extra	_externalarray_api_extrarp   r7   lazy_xp_modulesr   r   r  r  rk   rE  r   r   r   r  r  rK   r   r   r=  r  r{  r%  r  r  r  r  r8  r6  r  r  r  r  r  r  r"  r   r  r  r  r  r  r  r  r  r:  r,  rd  rb  r  r  r  r  r  r,  r*  rW  	compositer[  rd  r]  r  PowerDivCaser  r  r   r*  r  r  r  r,  rG  r;  rU  rR  rV  rx  rk  r  r   r&	  r!	  r   rr	  ry	  r	  r	  r{	  r	  r	  r	  r	  r
  r'
  r9
  rO
  rM
  r
  r
  r
  r
  r
  r
  r
  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  rS  rP  r  r  r  r  r  r  r\  rw  r  r  r  r  r  r$  rk  ri  r  r  r  r  r%
  r  r  r  r   r   r~   <module>r3     sD    	  "  % %  , , ,  * & &   ( - # -T TU U & .N N N N N
 Y X - - . ';;// KK11  

u% %(  !&(	 238
:DeLDeL3U;|T |T~p# p#f 5>>"M> M> #M>`DL DLNL6 L6^~5 ~5B 5##$A/ A/ %A/H 5##$XE XE %XEvP" P"f 5##$\3 \3 %\3~QX QXh 5==!4# 4 "4" 5==!"# " ""*rN rNj 5::I3 I3 I3X 599.. .. ..b 5::j" j" j"Z 5<< f& f& !f&R 5==!0 0 "0* 5--.IL IL /ILX 599X" X" X"v 5<< e" e" !e"P
1 
1 5::^" ^" ^"B 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))*QH QH +QHh 5??#-' -' $-'` 5**++T +T ,+T\ 5<< >@ >@ !>@F 5>>"xG xG #xGt 5>>"~. ~. #~.B
 GHFG5??#\1 \1 $ H I\1~ )**RYYr]A,>?299R="))B-*HI,K L5L5
/d 
/ 5??E$>$>?m m @m` 5??#,'OPDEn6 n6 F Q $n6b 5??#R2 R2 $R2j 5??#}O }O $}O@ 5??#IB IB $IBX 5??#U@ U@ $U@p 5--.) ) /)( 5$$%z) z) &z)z 5>>"\9 \9 #\9~*- *-Z 5>>"-> - #-2 5%%&-~ - '-> 5##$-^ - %-O O. 5$$%51 51 &51p 5''(8 8 )8$ 5(()E& E& *E&P 15D+$DDD 5;;s3 s3  s3l 5;;m3 m3  m3` 5;;a. a.  a.H 5::R3 R3 R3j.3 .3b 5??#.V .V $.Vb 5??#K. K. $K.\ 5(()~< ~< *~<B 5>>"i) i) #i)X 5==!n n "nb 5(()`4 `4 *`4F#A #ALl  l ^Z Zz? ?D 5&&'V+ V+ (V+r 8Xx0A 1A
 5&&'H0 H0 (H0V
{1 {1| 5??#^7 ^7 $^7B 5==!^" ^" "^"B 8J. J. J.Z 7rA rA rAj !!%	!:! ;!* +&IJ(((&	! 1 K1r   