
    (phA                    
   S SK r S SKrS SKJrJrJr  S SKJr  S SK	J
r
  S SKJrJr  S SKJr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  S SKJs  Jr  S
 r\ R<                  R?                  S/ SQ5      \ R<                  R?                  S/ SQ5      S 5       5       r \ R<                  R?                  S/ SQ5      S 5       r!\ R<                  R?                  S/ SQ5      \ R<                  R?                  S/ SQ5      \ R<                  R?                  SSS/5      S 5       5       5       r"\ R<                  RF                  \ R<                  RI                  S5      \ R<                  R?                  S/ SQ5      S 5       5       5       r%SSSS.r&\ R<                  R?                  S\&RO                  5       5      S 5       r(SSSS.r)S r*S r+\ R<                  RF                  \ R<                  R?                  S\)RO                  5       5      S  5       5       r,S!S"S#.r-\ R<                  RF                  \ R<                  R?                  S\-RO                  5       5      S$ 5       5       r.\ R<                  R?                  SS%S&/5      \ R<                  R?                  SS S'/5      S( 5       5       r/\ R<                  RI                  S)5      \ R<                  R?                  S/ SQ5      \ R<                  R?                  SS S'/5      S* 5       5       5       r0\ R<                  R?                  S/ SQ5      S+ 5       r1\ R<                  R?                  S/ SQ5      S, 5       r2S- r3\ R<                  R?                  S.S S//5      S0 5       r4\ R<                  RI                  S15      \ R<                  R?                  S/ SQ5      S2 5       5       r5S3 r6\ R<                  R?                  S4S5S6/5      S7 5       r7\ R<                  R?                  S8/ S9Q5      \ R<                  R?                  S/ SQ5      S: 5       5       r8S; r9\ R<                  R?                  S/ SQ5      S< 5       r:\ R<                  RF                  \ R<                  R?                  S/ SQ5      S= 5       5       r;\ R<                  RF                  \ R<                  Ry                  S>5      S? 5       5       r=S@ r> " SA SB5      r? " SC SD5      r@ " SE SF5      rASG rB\ R<                  R?                  SH/ SIQ5      SJ 5       rC " SK SL5      rDg)M    N)assert_allcloseassert_equalsuppress_warnings)array_api_compatible)rng_integers)array_namespaceis_numpy)xp_assert_closexp_assert_equal)statsspecial)root)	bootstrapmonte_carlo_testpermutation_testpowerc                  	   Sn [         R                  " [        U S9   [        S[        R
                  5        S S S 5        Sn [         R                  " [        U S9   [        [        5       [        R
                  5        S S S 5        Sn [         R                  " [        U S9   [        / SQS/4[        R
                  5        S S S 5        Sn [         R                  " [        U S9   [        / SQ/ SQ4[        R
                  S	S
9  S S S 5        Sn [         R                  " [        U S9   [        S[        R
                  SS9  S S S 5        Sn [         R                  " [        U S9   [        / SQ4[        R
                  SS9  S S S 5        Sn [         R                  " [        U S9   [        / SQ4[        R
                  SS9  S S S 5        Sn [         R                  " [        U S9   [        / SQ4[        R
                  SS9  S S S 5        Sn [         R                  " [        U S9   [        / SQ4[        R
                  SS9  S S S 5        Sn [         R                  " [        U S9   [        / SQ4[        R
                  SS9  S S S 5        Sn [         R                  " [        U S9   [        / SQ4[        R
                  SS9  S S S 5        Sn [         R                  " [        U S9   [        / SQ4[        R
                  SS9  S S S 5        Sn [         R                  " [        U S9   [        / SQ4[        R
                  SS9  S S S 5        Sn [         R                  " [        U S9   [        / SQ4[        R
                  S S9  S S S 5        S!n [         R                  " [        U S9   [        / SQ4[        R
                  S"S#9  S S S 5        g ! , (       d  f       GN= f! , (       d  f       GNe= f! , (       d  f       GN4= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN|= f! , (       d  f       GNN= f! , (       d  f       GN = f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNh= f! , (       d  f       GN:= f! , (       d  f       g = f)$Nz%`data` must be a sequence of samples.match   z(`data` must contain at least one sample.z>each sample in `data` must contain two or more observations...r         z=When `paired is True`, all samples must have the same length r   r   r      T)paired0`vectorized` must be `True`, `False`, or `None`.ekki
vectorized`axis` must be an integer.      ?axisz!could not convert string to floatni)confidence_levelz-`n_resamples` must be a non-negative integer.n_resamples     D@+`batch` must be a positive integer or None.batchz`method` must be inmethodz?`bootstrap_result` must have attribute `bootstrap_distribution'
   )bootstrap_resultz5Either `bootstrap_result.bootstrap_distribution.size`r   ,SeedSequence expects int or sequence of intsherringrng)pytestraises
ValueErrorr   npmeantuple	TypeError)messages    T/var/www/html/venv/lib/python3.13/site-packages/scipy/stats/tests/test_resampling.pytest_bootstrap_ivr?      s"   5G	z	1!RWW 
2 9G	z	1%'277# 
2 OG	z	19qc"BGG, 
2 OG	z	19l+RWWTB 
2 AG	z	1!RWW0 
2 +G	z	19,c2 
2 2G	z	19,$? 
2 >G	z	19,U; 
2 >G	z	19,V< 
2 <G	z	19,u5 
2 <G	z	19,v6 
2 $G	z	19,7 
2 PG	z	19,"= 
2 FG	z	19,Q7 
2 =G	y	09,Y7 
1	0q 
2	1 
2	1 
2	1 
2	1 
2	1 
2	1 
2	1 
2	1 
2	1 
2	1 
2	1 
2	1 
2	1 
2	1 
1	0s   O	#O  O-# O?&P#P##P5#Q#Q#Q+#Q=#R#R!#R3#S	
O
O*-
O<?
P
P #
P25
Q
Q
Q(+
Q:=
R
R!
R03
S
Sr/   )basic
percentileBCar$   r   r   r   c           
      H   [         R                  R                  S5        [         R                  R                  SSS5      n[	        U4[         R
                  S U SUSS9n[         R                  R                  S5        [	        U4[         R
                  SU USS9n[        UR                  R                  UR                  R                  5        [        UR                  R                  UR                  R                  5        [        UR                  UR                  5        g )Nr   r0         d   )r-   r/   random_stater$   r)   )r-   r/   r$   r)   )r9   randomseedrandr   r:   r   confidence_intervallowhighstandard_error)r/   r$   xres1res2s        r>   test_bootstrap_batchrS   P   s     IINN1
		r2r"AaT277$v"#$CADIINN1aT277"VC1D ))--t/G/G/K/KL))..0H0H0M0MN$$d&9&9:    c                   ^^^ [         R                  R                  S5        Sn[         R                  R                  U5      m[         R                  R                  U5      mSS jmSUUU4S jjn[         R                  " [        T5      5      n[        U4USS9n[        TT4TSSS9n[        UR                  UR                  5        [        UR                  UR                  5        g )	Nr   rG   c                 *    X-
  S-  R                  US9$ )Nr   r#   r:   rP   yr$   s      r>   my_statistic+test_bootstrap_paired.<locals>.my_statistick   s    qD))rT   c                 ,   > TU    nTU    nT" X#5      nU$ N )ir$   abresrZ   rP   rY   s        r>   my_paired_statistic2test_bootstrap_paired.<locals>.my_paired_statisticn   s$    aDaD1 
rT   r4   T)r   r5   )
r9   rI   rJ   rK   arangelenr   r   rL   rO   )	r/   nrc   r_   rQ   rR   rZ   rP   rY   s	         @@@r>   test_bootstrap_pairedrj   c   s     IINN1A
		qA
		qA*  			#a&AaT.A6DaV\$A>DD,,d.F.FGD'')<)<=rT   r   TFc           
         [         R                  R                  S5        SS jnSnXA   n[         R                  R                  U5      n[         R                  R                  U5      n[         R                  R                  U5      n[	        XgU4X2U SSSS9n	U	R
                  R                  U	R                  R                  S-   :X  d   e/ SQn
XZU'   [         R                  " UR                  U
5      U5      n[         R                  " UR                  U
5      U5      n[         R                  " UR                  U
5      U5      n[	        XgU4X2U SUSS9n[        UR                  R                  U	R                  R                  5        [        UR                  R                  U	R                  R                  5        [        UR                  U	R                  5        [        U5      nUR                  U5        [!        UR                  R                  R                  U5        [!        UR                  R                  R                  U5        [!        UR                  R                  U5        g )	Nr   c                 `    U R                  US9UR                  US9-   UR                  US9-   $ Nr#   rW   )rP   rY   zr$   s       r>   rZ   /test_bootstrap_vectorized.<locals>.my_statistic   s3    vv4v 166t6#44qvv4v7HHHrT   )r0   rE   rF   rG   )r   r/   r5   r$   r)   )rG   )r   r   r   re   )r9   rI   rJ   rK   r   bootstrap_distributionshaperO   broadcast_toreshaper   rL   rM   rN   listpopr   )r/   r$   r   rZ   rq   	n_samplesrP   rY   rn   rQ   rs   rR   result_shapes                r>   test_bootstrap_vectorizedrx   }   s    IINN1I EI
		y!A
		y!A
		y!AaAYF5D''--""((612 3 2 GDM
		'*E2A
		'*E2A
		'*E2AaAYF38D D,,00,,002D,,11,,113D'')<)<=;LT))--33\B))..44lC$$**L9rT   z#MemoryError with BCa observed in CIc                 b   [         R                  R                  S5      n[        R                  R                  SSSUS9nSn[        R                  " [        U5      S-
  [         R                  " U5      [        R                  " U5      S9nUR                  US	9nUR                  5       n[        U4[         R                  SXS
9n[        S0 UDSU0D6n[        UR                  USS9  [        UR                   USS9  UR#                  [        SUS95        [        S0 UDUSS.D6n[        UR                  R$                  UR'                  U5      SS9  UR#                  [        SUS95        [        S0 UDUSS.D6n[        UR                  R(                  UR'                  SU-
  5      SS9  g )Nl   )ICbX     r     )locscalesizerH   ffffff?r   )dfr|   r}   )
confidence)data	statisticr)   r/   r5   r&   gMb@?rtolga2U0*3?atolr   r)   r1   lessr&   alternativegreaterr^   )r9   rI   default_rngr   normrvstrh   r:   semintervalstddictr   r   rL   rO   updaterN   ppfrM   )	r/   r5   r   alphadistexpected_intervalexpected_seconfigrb   s	            r>   test_bootstrap_against_theoryr      sa   
 ))

 3
4C::>>aqt#>FDE77c$ikrwwt}EIIdOLD7((*Kw"''t*F

5f
5u
5CC++->TJC&&$?
MM$1s;<

If
Iu&
ICC++00$((5/M
MM$1s;<

Lf
Lu)
LCC++//!E'1BNrT   )gQ7@gHzS@)g\(<@g=
ףpU@)gHz'@@gQV@zmethod, expectedc                     [         R                  " / SQ5      n[        U4[         R                  SU SS9n[	        UR
                  USS9  g )N)r0   rF         )@r   g+@            "   2   Q   Y   y         i@B r   )r)   r/   r5   g{Gzt?r   )r9   arrayr   r:   r   rL   )r/   expectedrP   rb   s       r>   test_bootstrap_against_Rr      sD    " 	 5 	6A
QD"''wvCC++XEBrT   i  i  c                  T   / SQn / SQnS n[         R                  R                  S5      n[        R                  " X4USSUS9n[        R                  " X4USSUS9n[        R                  " X4US	SUS9n[         R
                  " UR                  5      n[         R
                  " UR                  5      n[         R
                  " UR                  5      n	S
n
Xz-
  [        U
5      -  nX-
  [        U
5      -  nX-
  [        U
5      -  nUS:  d   eUS:  d   e[        U5      S:  d   eg )N)gbF?gp?g|Hܿgxy[e}u׿g*g_?ggi6g2?)gF?gK?g&F}/?g?g(iC?g}$ץ?g hu?gfj}!?c                 Z    [         R                  " XS9n[         R                  " XS9nX4-
  $ rm   )r   skew)rP   rY   r$   s1s2s        r>   r   1test_multisample_BCa_against_R.<locals>.statistic   s%    ZZ%ZZ%wrT   l   tgy4r@   rG   )r/   r-   r5   rA   bcag1*g333333ÿg333333?Q?)r9   rI   r   r   r   r:   rL   abs)rP   rY   r   r5   	res_basicres_percentres_bca	mid_basicmid_percentmid_bca	mid_wboot
diff_basicdiff_percentdiff_bcas                 r>   test_multisample_BCa_against_Rr      s'   	.A	9A
 ))

 2
3C	'&)s4I//1&)L(+6Kooqfi$'S2G 	556I''+99:Kggg112G I 'Y7J+S^;L#S^3H $x=4rT   c                     [         R                  " / SQ5      n [         R                  " / SQ5      nSS jnX/n[        R                  " X25      nSnSnUR                  nSn[
        R                  " X2XVXx5      u    p[        U
S5        g )	N)	r0         (   .   r   4   h      )   r   &   ^   c         c                 T    [         R                  " XS9[         R                  " XS9-
  $ rm   r9   r:   )rn   rY   r$   s      r>   r   :test_BCa_acceleration_against_reference.<locals>.statistic,  s    wwq$rwwq'<<<rT   rf   r   rG   ge{?r   )r9   r   r   r   rp   _resampling_bca_intervalr   )rY   rn   r   r   rb   r$   r   theta_hat_br-   _a_hats              r>   'test_BCa_acceleration_against_referencer   "  s     	78A
/0A= 6D
//$
*CDE,,KE++DT,7@KAqE/0rT   c           
         [         R                  R                  S5        SnSnSn[        R                  " SSS9nUR                  5       nSnUR                  Xr4S	9n[        U4[         R
                  UUS
U SS9n	U	R                  n
[         R                  " U
S   U:  XjS   :  -  5      nX:X  d   e[        R                  " XU5      R                  nUS:  d   eg )Nr   rG     ?rz   r   r|   r}   i  r~   r   rf   r   r&   r)   r-   r/   r$   皙?r9   rI   rJ   r   r   r:   r   r   rL   sum	binomtestpvalue)r/   r   ri   r)   r&   r   	stat_truen_replicationsr   rb   cici_contains_truer   s                r>   #test_bootstrap_against_itself_1sampr   ;  s     IINN1AK ::!1%D		I N88.,8-D
TG gg%5 +!C 
	 	 B vvr!uy0YA5FGH''' __--//5v C<<rT   i|  iz  )r@   rA   c           
         [         R                  R                  S5        SnSnSnSnSS jn[        R                  " SSS	9n[        R                  " S
SS	9nUR                  5       UR                  5       -
  n	Sn
UR                  X4S9nUR                  X4S9n[        X4UUUSU SS9nUR                  n[         R                  " US   U	:  XS   :  -  5      nX:X  d   e[        R                  " XU5      R                  nUS
:  d   eg )Nr   rG   x   r   r   rf   c                 Z    [         R                  " XS9n[         R                  " XS9nX4-
  $ rm   r   )data1data2r$   mean1mean2s        r>   my_stat4test_bootstrap_against_itself_2samp.<locals>.my_statw  s&    ))}rT   r   r   r     r   r   r   re   r   )r/   r   n1n2r)   r&   r   dist1dist2r   r   r   r   rb   r   r   r   s                    r>   #test_bootstrap_against_itself_2sampr   g  s    IINN1	B	BK JJ1A&EJJ3a(E

uzz|+I NIIN/I0EIIN/I0E
UN%%5 +!C 
	 	 B vvr!uy0YA5FGH''' __--//5v C<<rT   r@   rA   r   c           
        ^ SS.S jmU4S jn[         R                  R                  S5        [         R                  R                  SS5      n[         R                  R                  SS5      n[         R                  R                  SS5      n[	        X4U4TSUSU SS	9n[	        X4U4US
USU SS	9n[        UR                  UR                  5        [        UR                  UR                  5        g )Nr   r#   c                 .   ^  [        U 4S jU 5       5      $ )Nc              3   D   >#    U  H  oR                  T5      v   M     g 7fr]   rW   .0sampler$   s     r>   	<genexpr>Etest_bootstrap_vectorized_3samp.<locals>.statistic.<locals>.<genexpr>       84;;t$$4    r   r$   r   s   ` r>   r   2test_bootstrap_vectorized_3samp.<locals>.statistic      84888rT   c                  J   > U  H  nUR                   S:X  a  M   e   T" U SS06$ Nr   r$   r   ndimr   r   r   s     r>   statistic_1d5test_bootstrap_vectorized_3samp.<locals>.statistic_1d  /    F;;!### $'Q''rT   r   rz   TrG   )r    r$   r)   r/   r5   Fr9   rI   rJ   rK   r   r   rL   rO   )	r/   r$   r  rP   rY   rn   rQ   rR   r   s	           @r>   test_bootstrap_vectorized_3sampr    s       9( IINN1
		q!A
		q!A
		q!AaAY	dCAGDaAYCAGDD,,d.F.FGD'')<)<=rT   z'Failure is not concerning; see gh-14107c                 ^  ^ SS jmU4S jn[         R                  R                  S5        [         R                  R                  SS5      n[	        U4TSUSS U SS9n[	        U4US	USS
U SS9n[        UR                  UR                  5        [        UR                  UR                  5        g )Nr   c                      U R                  US9$ rm   rW   rP   r$   s     r>   r   2test_bootstrap_vectorized_1samp.<locals>.statistic  s    vv4v  rT   c                 6   > U R                   S:X  d   eT" U SS9$ Nr   r   r#   r  )rP   r   s    r>   r  5test_bootstrap_vectorized_1samp.<locals>.statistic_1d  s     vv{{##rT   r   rz   TrG   )r    r$   r)   r-   r/   r5   Fr0   r   r  )r/   r$   r  rP   rQ   rR   r   s         @r>   test_bootstrap_vectorized_1sampr    s    !$
 IINN1
		q!AaT9D!$DD aT<E!$BvD D,,d.F.FGD'')<)<=rT   c                     SS/-  nU S:X  a  [         R                  " SS9   Sn[        R                  " [        R
                  US9   [        U/[         R                  U S9n[        UR                  [         R                  [         R                  45        S S S 5        S S S 5        O0[        U/[         R                  U S9n[        UR                  S	5        [        WR                  S
5        g ! , (       d  f       N^= f! , (       d  f       N6= f)N#        @rB   ignore)invalidz0The BCa confidence interval cannot be calculatedr   r.   )r  r  r   )r9   errstater6   warnsr   DegenerateDataWarningr   r:   r   rL   nanrO   )r/   r   msgrb   s       r>   test_bootstrap_degenerater"    s    =D[[*DCe99E"''&AS44rvvrvv6FG F +* "''&9S,,.>?##Q' FE +*s$   &C?AC.C?.
C<	8C??
Dc           	      J   [         R                  R                  S5      n[        R                  " SSS9nUR                  SUS9nU4n[        U[        R                  U S[         R                  R                  S5      S9n[        U[        R                  U S[         R                  R                  S5      S	S
9n[        UR                  UR                  5        [        UR                  UR                  5        [        UR                  [         R                  5      (       d   eg )Nl   E<1

 r   r   r   rG   r~   rH   i[%  r/   r)   r5   F)r/   r)   r5   r    )r9   rI   r   r   r   r   r   r   r   rL   rO   
isinstancefloat64)r/   r5   r   r   rb   refs         r>   test_bootstrap_gh15678r)    s     ))


0C::!1%D8838/D7D
D%**V		--d35C D%**V		--d3GCC++S-D-DEC&&(:(:;c(("**5555rT   c            	         [         R                  R                  S5      n [        R                  " SSS9nUR                  SU S9n[         R                  " U5      nU4n[        U[         R                  SS[         R                  R                  S5      S	9nX4R                  R                  :X  d   e[        [         R                  " U5      * [         R                  SS[         R                  R                  S5      S	9n[        UR                  R                  * UR                  R                  5        [        UR                  R                  * UR                  R                  5        g )
Nl   n!|'x`5 r   r   r   rG   r$  rB   if  r%  )r9   rI   r   r   r   r   minr   rL   rM   r   maxr   rN   )r5   r   r   true_minrb   rR   s         r>   test_bootstrap_minr.    s    ))

 0
1C::!1%D8838/Dvvd|H7D
D"&&C		--d35C..22222bhhtn_bffU..t46DS,,000,,113S,,111,,002rT   additional_resamplesr   c           
      T   [         R                  R                  S5      nUR                  SS9nSnU nX0-   n[         R                  R                  S5      n[        R                  " U4[         R
                  X1SSS9n[        R                  " U4[         R
                  XAS	S
US9n[         R                  R                  S5      n[        R                  " U4[         R
                  XQS	S
S9n[        UR                  UR                  SS9  [        UR                  UR                  SS9  g )Nl    ]4M rG   r   r   l   mdpi4 r   rA   )r)   r5   r&   r/   r   rB   )r)   r5   r&   r/   r1   +=r   )	r9   rI   r   r   r   r:   r   rO   rL   )r/  r5   rP   r   r   n3rb   r(  s           r>   test_re_bootstrapr3    s     ))

 0
1C


A	B	B		"B
))

 2
3C
//1$R+/FC
//1$R+/+.0C ))

 2
3C
//1$R+/?C C&&(:(:GC++S-D-D rT   zSensible to machine precisionc                    [         R                  R                  S5      n[        R                  " SSS9nUR                  SUS94n[        U[         R                  USS9n[        R                  " S0 UDS	S
0D6nUR                  [        SUS95        [        R                  " S0 UDSSS.D6n[        R                  " S0 UDSSS.D6n[        UR                  R                  UR                  R                  SS9  [        UR                  R                  UR                  R                  SS9  [         R                  " UR                  R                  5      (       d   e[         R                  " UR                  R                  5      (       d   e[         R"                  " [$        SS9   [        R                  " S0 UDSS0D6  S S S 5        g ! , (       d  f       g = f)Nl   @Qixt r   r   r   rG   r$  rf   )r   r   r5   r$   r&   r   r   r   r   r   r   r   r1  r   z`alternative` must be one ofr   r   z	ekki-ekkir^   )r9   rI   r   r   r   r   r   r   r   r   r   rL   rN   rM   isneginfisposinfr6   r7   r8   )r/   r5   r   r   r   r   lgs           r>   test_bootstrap_alternativer9    sk    ))

 3
4C::!1%DHH3cH24Dtrvv3R@F7&737A
MM$1q9:L&L4VLAO&O4YOAA))..0E0E0J0J A))--q/D/D/H/H ;;q,,001111;;q,,112222	z)G	H:&:k: 
I	H	Hs   *G
Gc            	         Sn [         R                  R                  S5        [         R                  R                  " U 6 n[	        [
        R                  " U5      5      n[        U S   5       H?  nUSUS S 24   n[         R                  " XSS9n[         R                  " XE5      (       a  M?   e   [         R                  " [        [
        R                  " USS95      SS9n[         R                  " Xb5      (       d   eg )	Nr   r   rz      r   rf   .r#   r   r,   )r9   rI   rJ   rK   nextr   _jackknife_resamplerangedeletearray_equalconcatenatert   )rq   rP   rY   r_   slcr   y2s          r>   test_jackknife_resamplerF  1  s    EIINN1
		A[,,Q/0A59 Q	l99Q+~~c,,,,  
[<<QaHI
!B>>"    rT   rng_nameRandomStater   c                    [        [        R                  U S 5      nUc  [        R                  " U  S35        U" S5      nU" S5      nSnSn[        R                  R                  S5        [        R                  R                  " U6 n[        R                  " XdUS9n[        U5       HE  nUSUS S 24   n	[        USUS   US   5      n
USU
4   n[        R                  " X5      (       a  ME   e   g )Nz not available.r   r0   r;  r4   .rf   )getattrr9   rI   r6   skiprJ   rK   r   _bootstrap_resampler@  r   rB  )rG  r5   rng1rng2r)   rq   rP   rY   r_   rD  jsr   s               r>   test_bootstrap_resamplerP  D  s    
"))Xt
,C
{xj01q6Dq6DKEIINN1
		A''DAA; Q	l$59eBi8S"W:~~c,,,,  rT   score)r         ?r   c                     Sn[         R                  R                  S5        [         R                  R                  " U6 n[        R
                  " X0SS9nS nU" X0SS9S-  n[        XFS5        g )N)r0         r   rf   r#   c                 N    [         R                  " [        R                  X U5      $ r]   )r9   apply_along_axisr   percentileofscore)r`   rQ  r$   s      r>   vectorized_pos0test_percentile_of_score.<locals>.vectorized_posf  s    ""5#:#:DUKKrT   rG   V瞯<)r9   rI   rJ   rK   r   _percentile_of_scorer   )rQ  r$   rq   rP   prY  p2s          r>   test_percentile_of_scorer_  ^  s`     EIINN1
		A((;AL 
r	*3	.BA5!rT   c                  p   Sn [         R                  R                  S5        [         R                  R                  " U 6 n[         R                  R                  " U S S 6 S-  n[        R
                  " X5      n[        U S   5       H-  nX4   n[         R                  " X   X$   SS9n[        XVS5        M/     g )N)r0   rT  r   rf   rG   r#   r[  )	r9   rI   rJ   rK   r   _percentile_along_axisr@  rA   r   )rq   rP   qrY   r_   rb   r   s          r>   test_percentile_along_axisrc  n  s    
 EIINN1
		A
		cr
#c)A**10A58_d==qt"5u- rT   c                 z  ^ S mU4S jn[         R                  " U5      n[        R                  R	                  S5        [        R                  R                  SSS5      n[        R                  R                  SSS5      n[        R                  R                  SSS5      nT" X4XPS9nU" X4XPS9n[        Xg5        g )	Nc                 .   ^  [        U 4S jU 5       5      $ )Nc              3   D   >#    U  H  oR                  T5      v   M     g 7fr]   rW   r   s     r>   r   >test_vectorize_statistic.<locals>.statistic.<locals>.<genexpr>  r   r  r  r  s   ` r>   r   +test_vectorize_statistic.<locals>.statistic  r  rT   c                  J   > U  H  nUR                   S:X  a  M   e   T" U SS06$ r  r  r
  s     r>   r  .test_vectorize_statistic.<locals>.statistic_1d  r  rT   r   r   rz   r<  r   r#   )r   _vectorize_statisticr9   rI   rJ   rK   r   )	r$   r  
statistic2rP   rY   rn   rQ   rR   r   s	           @r>   test_vectorize_statisticrm    s    9( 11,?JIINN1
		q!QA
		q!QA
		q!QAQ1(DaA)DDrT   c           	         [         R                  R                  S5      nSn[        R                  R
                  " USUS.6nS n[        U4X@SSSS	9n[         R                  " UR                  R                  R                  U:  UR                  R                  R                  U:  -  S
S9n[         R                  " US:  5      (       d   e[         R                  " US:*  5      (       d   eUR                  R                  R                  S:X  d   eUR                  R                  R                  S:X  d   eUR                  R                  S:X  d   eUR                  R                  S:X  d   eg )Nl   s: )r   rR  )rG   rG   r$  c           	          [         R                  " [         R                  " X5      [         R                  " XSS9/5      $ )Nr   )ddof)r9   asarrayr:   r   )r   r$   s     r>   r   /test_vector_valued_statistic.<locals>.statistic  s1    zz2774.66$157 8 	8rT   rf   '     )r/   r$   r)   r-   r   r#   Z   rG   r   rG   )r   rG   rs  )r9   rI   r   r   r   r   r   r   rL   rM   TrN   allrq   rO   rp   )r/   r5   paramsr   r   rb   countss          r>   test_vector_valued_statisticr{    sE    ))



+CFZZ^^V*3GF8 VIyb $C1C VVS,,0022V;..3355>@F 66&B,66&C-    ""&&,,888""''--999##x///%%++~===rT   zignore::RuntimeWarningc                    ^^ [         R                  R                  S5      n S mU4S jmU4S jn/ SQ/ SQ/ SQ/ SQ/ S	Q/n[         R                  " U5      R                  n[        X!U S
S9n[        UTU S
S9n[        UR                  R                  S   UR                  R                  SS9  [        UR                  R                  S   UR                  R                  SS9  g )Nl   \Qc                     U R                  U5      nUR                  U5      nXS   -
  XS   -
  -  R                  U5      nSU-  U R                  U5      UR                  U5      -   X4-
  S-  -   -  $ )N).Nr   )r:   var)rP   rY   r$   xmymcovs         r>   concordance9test_vector_valued_statistic_gh17715.<locals>.concordance  sn    VVD\VVD\yM!aY-&78>>tDCAEE$K!%%+5QFGGrT   c                 N   > X-   nX-   n[         R                  " T" XVU5      5      $ r]   )r9   
nan_to_num)tptnfpfnr$   actualr   r  s          r>   r   7test_vector_valued_statistic_gh17715.<locals>.statistic  s'    7}}[4@AArT   c                 >   > T" / UQU P76 [         R                  S4   $ )N.)r9   newaxis)r$   argsr   s     r>   statistic_extradim@test_vector_valued_statistic_gh17715.<locals>.statistic_extradim  s#    %$%%bjj#o66rT   )r   r   r   r   )r   r   r   r   )r   r<  r   r   )r   r<  r   r   )r      r   r   T)r5   r   r   r[  r   )
r9   rI   r   r   rw  r   r   rL   rM   rN   )r5   r  r   rb   r(  r  r   s        @@r>   $test_vector_valued_statistic_gh17715r    s     ))

 2
3CHB
7 	D
 88D>D
D#d
CC
D)T
:CC++//2++//e=C++003++00u>rT   c                  4   [         R                  R                  S5      n U R                  S5      nU R                  S5      nS n[        R                  " X4U5        [        R                  " UR
                  UR
                  4USS9  Sn[        R                  " [        US9   [        R                  " XS S	2S
4   4U5        S S S 5        [        R                  " [        US9   [        R                  " XS S	2S
S24   4U5        S S S 5        [        R                  " [        US9   [        R                  " UR
                  UR
                  S
S2S S	24   4USS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       Nw= f! , (       d  f       g = f)NiF|)r0   r   )rE   r   c                 @    [         R                  " XUS9R                  $ rm   r   	ttest_indr   rX   s      r>   r    test_gh_20850.<locals>.statistic  s    q$/999rT   r   r#   z-Ignoring the dimension specified by `axis`...r   r0   r   )	r9   rI   r   r   r   rw  r6   r  FutureWarning)r5   rP   rY   r   r=   s        r>   test_gh_20850r    s)   
))



+C

7A

7A: 
OOQFI&	OOQSS!##J	2 >G	m7	3crc1fI	2 
4	m7	3crc1Q3hK()4 
4	m7	3acc!A#ss(m,ia@ 
4	3	 
4	3	3	3	3	3s$   $ E'%"E8(6F	'
E58
F	
Fc            
       p   \ rS rSrSrS\4S jrS r\S 5       r	\S 5       r
\R                  R                  \S 5       5       r\\R                  R                  S	\" S
S5      5      S 5       5       r\\R                  R                  SS5      S 5       5       r\R                  R&                  \R                  R                  SS5      \R                  R                  S\R(                  " SSS5      5      S 5       5       5       r\R                  R                  S\R.                  \R0                  45      \R                  R                  SS5      \R                  R                  S\R(                  " SSS5      5      S 5       5       5       r\R                  R                  S\R4                  " SS5      5      S 5       r\R                  R                  \R                  R                  S\R(                  " SSS5      5      S 5       5       r\R                  R&                  \R                  R                  SS5      \R                  R                  S\" S5      5      S  5       5       5       rS! rS" rS# r \R                  RC                  S5      \R                  RE                  S$5      S% 5       5       r#S&r$g)'TestMonteCarloHypothesisTesti  皙?Nc                    ^^^^ UUUU4S j$ )Nc                  4   > TR                  T" U ST0UD6TS9$ )NrH   dtype)rq  )r  kwdsr  rsrvs_inxps     r>   <lambda>6TestMonteCarloHypothesisTest.get_rvs.<locals>.<lambda>  s(    RZZ0V20VQU0V6; &0 &=rT   r^   )selfr  r  r  r  s    ````r>   get_rvs$TestMonteCarloHypothesisTest.get_rvs  s    = 	=rT   c                    ^ U4S jnU$ )Nc                 t   > TR                  XS9nTR                  XSS9nU R                  U   nX#U-  S-  -  $ )Nr#   r   )r$   
correctionrR  )r:   r~  rq   )rP   r$   mvri   r  s        r>   r   =TestMonteCarloHypothesisTest.get_statistic.<locals>.statistic   sB    %Aq2AA!cz>!rT   r^   )r  r  r   s    ` r>   get_statistic*TestMonteCarloHypothesisTest.get_statistic  s    	" rT   c                 	  ^ TR                  / SQ5      nS#U4S jjnSnTR                  S5      TR                  S5      4n[        R                  R                  [        R                  R                  4n[
        R                  " [        US9   [        XVS SS	9  S S S 5        S
n[
        R                  " [        US9   [        U[        R                  R                  USS	9  S S S 5        Sn[
        R                  " [        US9   [        U[        R                  R                  USS9  S S S 5        Sn[
        R                  " [        US9   [        US U5        S S S 5        [
        R                  " [        US9   TR                  SS/SS//5      n[        US S /U5        S S S 5        Sn[
        R                  " [        US9   TR                  / SQ/5      n[        US S /U5        S S S 5        Sn[
        R                  " [        US9   [        U[        R                  R                  S 5        S S S 5        Sn[
        R                  " [        US9   [        U[        R                  R                  USS9  S S S 5        Sn[
        R                  " [        US9   [        U[        R                  R                  USS9  S S S 5        Sn[
        R                  " [        US9   [        U[        R                  R                  USS9  S S S 5        Sn[
        R                  " [        US9   [        U[        R                  R                  USS9  S S S 5        Sn[
        R                  " [        US9   [        U[        R                  R                  USS 9  S S S 5        S!nU4S" jn [        X&TR                  5        g ! , (       d  f       GN3= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNq= f! , (       d  f       GN:= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNa= f! , (       d  f       GN+= f! , (       d  f       N= f! [         a+  n[        U5      R                  U5      (       d   e S nAg S nAff = f)$N      ?       @      @c                 "   > TR                  XS9$ rm   rW   )rP   r$   r  s     r>   stat@TestMonteCarloHypothesisTest.test_input_validation.<locals>.stat  s    7717((rT   z/Array shapes are incompatible for broadcasting.r   rz   )r   rz   r   c                     gNr   r^   rX   s      r>   r  DTestMonteCarloHypothesisTest.test_input_validation.<locals>.<lambda>  s    1rT   rf   r#   r!   r"   r   r   0`rvs` must be callable or sequence of callables.r  r  r  g      @c                     U $ r]   r^   rP   s    r>   r  r  #      arT   If `rvs` is a sequence...c                     U $ r]   r^   r  s    r>   r  r  (  r  rT   c                     U $ r]   r^   r  s    r>   r  r  (  s    1rT   z`statistic` must be callable.)`n_resamples` must be a positive integer.r'   r(   r*   r+   r,   `alternative` must be in...r   r   z!Signature inspection of statisticc                 \   > TR                  [        R                  R                  U S95      $ )Nr   )rq  r   r   r   )r~   r  s    r>   r   ?TestMonteCarloHypothesisTest.test_input_validation.<locals>.rvsD  s!    ::ejjnn$n788rT   r]   )rq  zerosr   r   r   r6   r7   r8   r   r<   r:   str
startswith)r  r  r   r  r=   tempr   es    `      r>   test_input_validation2TestMonteCarloHypothesisTest.test_input_validation  sN    zz,'	) D "((6"23zz~~uzz~~.]]:W5T(<2F 6 /]]:W5T5::>>4cB 6 E]]:W5T5::>>4CH 6 E]]9G4T4. 5]]9G4::Bx"b23DTK#6= 5 .]]:W5::|n-DTK#=tD 6 2]]9G4T5::>>48 5 >]]:W5T5::>>4UK 6 >]]:W5T5::>>4VL 6 @]]:W5T5::>>4uE 6 @]]:W5T5::>>4vF 6 0]]:W5T5::>>4VL 6 6	9	.T0i 65 65 65 5444
 65
 54 65 65 65 65 65  	.q6$$W----	.s   O>%O%O+O==(P&P!&P3%Q"%Q*%Q)2%Q;:%R0R 
O
O(+
O:=
P
P!
P03
Q
Q
Q&)
Q8;
R

R
S(!SSc                   ^ U4S jnSnTR                  / SQ5      n[        T5      (       a&  [        U[        R                  R
                  U5        g [        R                  " [        US9   [        U[        R                  R
                  U5        S S S 5        [        R                  " [        US9   [        U[        R                  R
                  TR                  SS9  S S S 5        g ! , (       d  f       N_= f! , (       d  f       g = f)Nc                 &   > TR                  U 5      $ r]   rW   )rP   r  s    r>   non_vectorized_statisticWTestMonteCarloHypothesisTest.test_input_validation_xp.<locals>.non_vectorized_statisticM  s    771:rT   z!`statistic` must be vectorized...r  r   Fr   )
rq  r	   r   r   r   r   r6   r7   r8   r:   )r  r  r  r=   r   s    `   r>   test_input_validation_xp5TestMonteCarloHypothesisTest.test_input_validation_xpK  s    	 6L)B<<VUZZ^^5MN]]:W5VUZZ^^5MN 6]]:W5VUZZ^^RWWO 65 6555s   ,&C+3/C<+
C9<
D
c                 x  ^ ^^	 [         R                  R                  S5      nUR                  UR	                  SS95      n[        U5      m	U UU	4S jmSTl        STl        UTSSS.nT R                  [        R                  R                  [         R                  R                  S	5      US
9US'   [        SSS0UD6n[        TR                  S5        [        TR                  S5        T R                  [        R                  R                  [         R                  R                  S	5      US
9US'   STl        [        SSS0UD6n[        TR                  S5        [        TR                  S5        T R                  [        R                  R                  [         R                  R                  S	5      US
9US'   STl        [        S0 UD6n[        TR                  S5        [        TR                  S5        [        UR                  UR                  5        [        UR                  UR                  5        g )N   )p r0   r   c                    > U R                   S:X  a  SOU R                  S   n[        UTR                  5      Tl        T=R                  S-  sl        TR                  T5      " XS9$ r  )r	  rq   r,  
batch_sizecounterr  )rP   r$   r  r  r   xp_tests      r>   r   :TestMonteCarloHypothesisTest.test_batch.<locals>.statisticd  sX    ffkqwwqzJ#&z93G3G#HI "%%g.q<<rT   r   r   T)r   r   r)   r    i r  r   r-   r     r   r   r   r^   )r9   rI   r   rq  standard_normalr   r  r  r  r   r   r   r   r   r   r   )
r  r  r5   rP   r  rQ   rR   res3r   r  s
   `       @@r>   
test_batch'TestMonteCarloHypothesisTest.test_batch[  s   
 ii##K0JJs***34!!$	=
 	 	)#49 ll5::>>2993H3H3PUWlXU0a040Y&&-Y))1-ll5::>>2993H3H3PUWlXU	1b1D1Y&&+Y))2.ll5::>>2993H3H3PUWlXU	'$'Y&&*Y))40T[[1T[[1rT   r$   r   c           	         [         R                  R                  S5      n/ SQnSXA'   UR                  S5      R                  nS[        U5      ;   a  SOSn[        [         U5      n[        X&5      nUR                  XGS9n	[        R                  " U	S	US
9n
UR                  XS9n	[        U	5      nU R                  U5      nU R                  [        R                  R                  X8US9n[        XUSSUS9nUR                  U
R                   US9nUR                  U
R"                  US9n[%        UR                   U5        [%        UR"                  UU R&                  S9  g )Nit$ r   r   r   rG   r  64float32r'  )r~   r          )popmeanr$   r  )r  r  Ti N  )r    r)   r$   r   )r9   rI   r   rq  r  r  rJ  r  r   ttest_1sampr   r  r  r   r   r   r   r   r
   r   )r  r$   r  r5   r~   dtype_default	dtype_strdtype_npr  rP   r   r  r   r   rb   ref_statistic
ref_pvalues                    r>   test_axis_dtype,TestMonteCarloHypothesisTest.test_axis_dtype  s8   
 ii##G,
 

2,,!%]);!;I)	2y)& T:$$Q>JJqJ&!!$&&w/	ll5::>>3lCqyT+0t= 

8#5#5U
CZZuZ=
}5

JTYY?rT   r   )	two-sidedr   r   c                    [         R                  R                  S5      nUR                  SS9n[        R
                  " USUS9nUR                  U5      n[        U5      nU R                  U5      nU R                  [        R                  R                  X2S9n[        XHXqS9n	[        U	R                  UR                  UR                  5      5        [        U	R                  UR                  UR                  5      U R                   S9  g )N)rU  r   r  r  r  r   )r9   rI   r   r  r   r  rq  r   r  r  r   r   r   r
   r   r   r   )
r  r   r  r5   rP   r(  r  r   r   rb   s
             r>   test_alternative-TestMonteCarloHypothesisTest.test_alternative  s     ii##H-R(2;?JJqM!!$&&w/	ll5::>>3l6qyJrzz#--'@A

BJJszz$:KrT   )r   r   r`   g      rR  rz   c           	      ^  ^ [         R                  R                  S5      n[        R                  R                  USUS9n[        R                  " U[        R                  R                  TS9nU4S jnU R                  [        R                  R
                  U5      n[        XGUSSTS9n[        UR                  UR                  5        TS	:X  a*  [        UR                  UR                  U R                  S
9  g TS:X  a-  [        SUR                  -
  UR                  U R                  S
9  g g )Nr  rU  r`   r~   rH   r  c                 v   > [         R                  " U [         R                  R                  STS9R                  $ Nasymp)moder   )r   ks_1sampr   cdfr   )rP   r   s    r>   statistic1dGTestMonteCarloHypothesisTest.test_against_ks_1samp.<locals>.statistic1d  s+    >>!UZZ^^'.9;;D9ErT   r   Fr)   r    r   r   r   r   r   )r9   rI   r   r   skewnormr   r  r   r  r  r   r   r   r   r   )	r  r   r`   r5   rP   r   r   norm_rvsrb   s	    `       r>   test_against_ks_1samp2TestMonteCarloHypothesisTest.test_against_ks_1samp  s    
 ii##H-NN#>>>!UZZ^^M	E <<

4qK+/E+68 	x'9'9:)#CJJdiiHF"AcjjL(//		J #rT   hypotestr   r   r  r=  r   c                   ^ [         R                  R                  S5      n[        R                  R                  USUS9nT" XRS9nU4S jnU R                  [        R                  R
                  U5      n[        XXUSUS9n	[        U	R                  UR                  5        [        U	R                  UR                  U R                  S9  g )	Ni	   r  r  c                 $   > T" XS9R                   $ rm   )r   )rP   r$   r  s     r>   r   LTestMonteCarloHypothesisTest.test_against_normality_tests.<locals>.statistic  s    A)333rT   Tr    r   r   )r9   rI   r   r   r  r   r  r   r   r   r   r   r   )
r  r  r   r`   r5   rP   r   r   r  rb   s
    `        r>   test_against_normality_tests9TestMonteCarloHypothesisTest.test_against_normality_tests  s    
 ii##H-NN3?A7	4 <<

4qI$+68 	x'9'9:

HOO$))DrT   c                    [         R                  R                  S5      n[        R                  R                  USUS9n[        R                  " U5      nS nU R                  [        R                  R
                  U5      n[        X6USSS9n[        UR                  UR                  5        [        UR                  UR                  U R                  S9  g )	Ni!M r
  r  c                 >    [         R                  " XS9R                  $ rm   )r   
normaltestr   r  s     r>   r   GTestMonteCarloHypothesisTest.test_against_normaltest.<locals>.statistic  s    ##A1;;;rT   Tr   r  r   )r9   rI   r   r   r  r   r  r  r   r   r   r   r   r   )r  r`   r5   rP   r   r   r  rb   s           r>   test_against_normaltest4TestMonteCarloHypothesisTest.test_against_normaltest  s     ii##H-NN3?##A&	< <<

4qI$+46 	x'9'9:

HOO$))DrT   c           	         [         R                  R                  S5      n[        R                  R                  USUS9n[        R                  " U[        R                  R                  5      nS nU R                  [        R                  R
                  U5      n[        X6USSSS9n[        UR                  UR                  5        [        UR                  UR                  U R                  S	9  g )
NirU  r  c                 t    [         R                  " U [         R                  R                  5      R                  $ r]   )r   cramervonmisesr   r  r   r  s    r>   r   MTestMonteCarloHypothesisTest.test_against_cramervonmises.<locals>.statistic1d  s#    ''5::>>:DDDrT   r   Fr   r  r   )r9   rI   r   r   r  r   r  r   r  r  r   r   r   r   r   )r  r`   r5   rP   r   r   r  rb   s           r>   test_against_cramervonmises8TestMonteCarloHypothesisTest.test_against_cramervonmises  s     ii##I.NN#>''5::>>:	E <<

4qK+/E+46 	x'9'9:

HOO$))DrT   	dist_name)r   logisticr_   c           
      $  ^^ UU4S jn[        5        nUR                  [        5        [        USS9nS S S 5        WR                  (       d   eUR
                  S   n[        R                  R                  S5      n[        R                  R                  USUS9n[        R                  " UT5      n	U	R                  n
U	R                  T   S-  nU4S jnU R                  [!        [        T5      R                  U5      n[        5        nUR                  [        5        [#        XUSS	S
S9nS S S 5        [%        WR                  U
5        [%        UR&                  USU R(                  -  S9  g ! , (       d  f       GNB= f! , (       d  f       NY= f)Nc                    > [         R                  R                  S5      n[        R                  R                  U SUS9n[        R                  " UT5      nUR                  UR                  T   -
  $ )NxrG   r$  )	r9   rI   r   r   tukeylambdar   andersonr   critical_values)r`   r5   rP   r   r  r_   s       r>   fun?TestMonteCarloHypothesisTest.test_against_anderson.<locals>.fun  s`    ))''	2C!!%%ac%DA~~a3H%%(@(@(CCCrT   r   )x0r   rG   r$  c                 F   > [         R                  " U T5      R                  $ r]   )r   r"  r   )rP   r  s    r>   r   GTestMonteCarloHypothesisTest.test_against_anderson.<locals>.statistic1d/  s    >>!Y/999rT   r   Fr   r  r   r   )r   filterRuntimeWarningr   successrP   r9   rI   r   r   r!  r   r"  r   significance_levelr  rJ  r   r   r   r   )r  r  r_   r$  supsolr`   r5   rP   r   expected_stat
expected_pr   dist_rvsrb   s    ``            r>   test_against_anderson2TestMonteCarloHypothesisTest.test_against_anderson  s;   	D
  CJJ~&sq/C ! {{{ EE!Hii##I.!!!#C!@>>!Y/ **003C7
	: <<y 9 = =sC CJJ~&"1#.D.3LC ! 	}5

JQtyy[A5 ! & ! s    E/#F/
E>
Fc                     [         R                  R                  S5      n[         R                  " S5      n[	        X!R                  [         R
                  SSS9nUR                  S:X  d   eg )Nl   IL~QH(s rG   Tr   r  g-C6?)r9   rI   r   r  r   r:   r   )r  r5   rP   rb   s       r>   test_p_never_zero.TestMonteCarloHypothesisTest.test_p_never_zero<  sT     ii##$78HHSMq**bgg*.FDzzV###rT   c                    [         R                  R                  S5      nUR                  SS9UR                  SS94nUR                  UR                  4nS n[        R
                  " X#USS9n[        R                  " US   US	   /SS9n[        UR                  UR                  5        [        UR                  UR                  S
S9  g )N   F:fmPr  r      c                 @    [         R                  " XUS9R                  $ rm   r  rX   s      r>   r   FTestMonteCarloHypothesisTest.test_against_ttest_ind.<locals>.statisticJ  s    ??1d3===rT   rf   r#   r   r   {Gz?r   )
r9   rI   r   normalr   r   r  r   r   r   r  r5   r   r   r   rb   r(  s          r>   test_against_ttest_ind3TestMonteCarloHypothesisTest.test_against_ttest_indE  s    ii##$67zzvz&


(::jj#**$	> $$T	Cood1gQyr:s}}5

CJJT:rT   c                    [         R                  R                  S5      nUR                  SS9UR                  SS9UR                  SS9UR                  SS94nUR                  UR                  UR                  UR                  4nS n[        R
                  " X#USS	S
9n[        R                  " USS06n[        UR                  UR                  5        [        UR                  UR                  SS9  g )Nr8  rv  r   )r   e   )r   f   )r   g   c                 B    [         R                  " USU 06R                  $ )Nr$   )r   f_onewayr   )r$   r  s     r>   r   ETestMonteCarloHypothesisTest.test_against_f_oneway.<locals>.statisticY  s    >>43d3===rT   rf   r   r$   r   r$   {Gz?r   )
r9   rI   r   r=  r   r   rF  r   r   r   r>  s          r>   test_against_f_oneway2TestMonteCarloHypothesisTest.test_against_f_onewayR  s    ii##$67


)3::8:+D


)3::8:+DFjj#**cjj#**<	> $$T	1:<nnd,,s}}5

CJJT:rT   z2Statistic may not depend on sample order on 32-bitc                   ^ [         R                  R                  S5      mSnU4S jnU" S5      n[        R                  " X2[         R
                  SUS9n[         R                  " UR                  UR                  :*  5      n[         R                  " UR                  UR                  S-  :*  5      nXV:w  d   eUR                  US-   US-   -  :X  d   eg )	Nl   U5<H rs  c                 N   > S[         R                  " SS9R                  U TS9-  $ )Nr  gZd;O?)r]  r$  )r   	bernoullir   r~   r5   s    r>   r   ITestMonteCarloHypothesisTest.test_finite_precision_statistic.<locals>.rvsk  s'    %044$S4QQQrT   rG   r   )r   r)   g     ?r   )
r9   rI   r   r   r   r~  r   null_distributionr   r   )r  r)   r   rP   rb   c0c1r5   s          @r>   test_finite_precision_statistic<TestMonteCarloHypothesisTest.test_finite_precision_statisticc  s     ii##$45	R H$$QRVV1<> VVC))S]]:;VVC))S]]G-DDExxzzb1f{Q7777rT   r^   )%__name__
__module____qualname____firstlineno__r   r9   r  r  r   r  r  r6   markxslowr  parametrizer@  r  r  slowlinspacer  r   skewtestkurtosistestr  rg   r  r  r2  r5  r?  rJ  	fail_slowxfail_on_32bitrT  __static_attributes__r^   rT   r>   r  r    s   D(, = @. @.D P P [[$2  $2L [[VU2q\2@ 3 @B [[],LML N L( [[[[],?@[[S"++dC";<K = A K, [[Z%..%:L:L)MN[[],LM[[S"++b!Q"78E 9 N OE" [[S"))B"23E 4E" [[[[S"++dC";<E = E$ [[[[[*>?[[S%(+(B , @ (BT$;;" [[1[[ TU8 V 8rT   r  c                       \ rS rSrS r\R                  R                  S 5       r\R                  R                  S 5       r	S r
S rSrg)		TestPowerix  c           
         [         R                  R                  S5      n[        R                  nUR
                  UR
                  4nSnSn[        R                  " [        US9   [        X#USS9  S S S 5        Sn[        R                  " [        US9   [        US U5        S S S 5        [        R                  " [        US9   [        X!R
                  S4U5        S S S 5        S	n[        R                  " [        US9   [        X!R
                  4U5        S S S 5        [        R                  " [        US9   [        X#S
5        S S S 5        Sn[        R                  " [        US9   [        X#USS9  S S S 5        [        R                  " [        US9   [        X#U[         R                  " SS5      S9  S S S 5        Sn[        R                  " [        US9   [        X#USS9  S S S 5        Sn[        R                  " [        US9   [        X#SS// SQ45        S S S 5        [        R                  " [        US9   [        X#SS/SS/4S/ SQ0S9  S S S 5        Sn[        R                  " [        US9   [        S X45        S S S 5        Sn[        R                  " [        US9   [        X#USS9  S S S 5        [        R                  " [        US9   [        X#USS9  S S S 5        Sn[        R                  " [        US9   [        X#USS 9  S S S 5        [        R                  " [        US9   [        X#U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Ni= f! , (       d  f       GNM= f! , (       d  f       GN0= 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ND= f! , (       d  f       GN'= f! , (       d  f       g = f)!Nl   yB0 1 )r0   rF   r   r   r"   r   r  r   r  )r0   z3`significance` must contain floats between 0 and 1.r   significancerf   r   z`kwargs` must be a dictionaryr   )kwargsz+shape mismatch: objects cannot be broadcastr0   rE   )rF         rF   rj  rP   z`test` must be callablez(`n_resamples` must be a positive integerir(   g      %@z"`batch` must be a positive integerr,   )r9   rI   r   r   r  r=  r6   r7   r8   r   r<   r^  )r  r5   testr   n_observationsr=   s         r>   r  TestPower.test_input_validationy  s   ii##$78zz3::&!D]]:W5$^< 6 E]]9G4$n- 5]]9G4$V,n= 5 .]]:W5$~6 6]]:W5$U# 6 H]]:W5$^!< 6]]:W5$^"++b!:LM 6 2]]9G4$^I> 5 @]]:W5$r2h56 6]]:W5$r2hR13	:JK 6 ,]]9G4$, 5 =]]:W5$^= 6]]:W5$^> 6 7]]:W5$^37 6]]:W5$^48 65Y 65 5444 6555 6555 54 6555 54 6555 6555s   %MMM'?M98N(N!N/OO<O%5O7%P	PP-.P?
M
M$'
M69
N
N
N,/
N>
O
O"%
O47
P	
P
P*-
P<?
Qc                 |  ^ [         R                  R                  S5      nU4S jmSTl        STl        [        TSSS9n[         R                  R                  S5      n[        S0 UDUR                  SS.D6n[        TR                  S5        [        TR                  S5        [         R                  R                  S5      nSTl        [        S0 UDUR                  S	S.D6n[        TR                  S
5        [        TR                  S	5        [         R                  R                  S5      nSTl        [        S0 UDUR                  SS.D6n[        TR                  S5        [        TR                  S5        [        UR                  UR                  5        [        UR                  UR                  5        g )Nr  c                    > U R                   S:X  a  SO
[        U 5      n[        UTR                  5      Tl        T=R                  S-  sl        [
        R                  " U SUS9R                  $ r  )r	  rh   r,  r  r  r   r  r   )rP   r$   r  rl  s      r>   rl  "TestPower.test_batch.<locals>.test  sS    ffks1vJ!*doo>DOLLAL$$Q5<<<rT   r   r0   r   )rl  rm  r)   r   )r   r-   r   rT  r^   )	r9   rI   r   r  r  r   r   r=  r   )r  r5   r  rQ   rR   r  rl  s         @r>   r  TestPower.test_batch  sF    ii##K0	=
 bdCii##K05t515T\\4(T__a(ii##K06t626T\\2&T__b)ii##K08t848T\\1%T__d+TZZ,TZZ,rT   c                   ^^^ [         R                  R                  S5      n[         R                  " SS/5      mSU4S jjn[         R                  " / SQ5      S S 2[         R
                  4   nS/ SQ0n[         R                  " / SQ5      n[        R                  " X!R                  X5US	9n/ nU He  nU H\  n	US    HP  mT HG  mSUU4S
 jjn
[        R                  " XR                  U	US9nUR                  UR                  5        MI     MR     M^     Mg     [         R                  " XvR                  R                  5      n[        UR                  USSS9  g )Nl   x7'\r   皙?c           
         > [         R                  " T[        [        SU R                  S-   5      5      5      n[
        R                  " XUUS9$ )Nr   )r   r$   )r9   expand_dimsr;   r@  r	  r   r  )rP   r   r$   popmeans_expandedpopmeanss       r>   rl  *TestPower.test_vectorization.<locals>.test  sC     "xuQQR
?S9T U$$Q{*.0 0rT   )r0   r   rT  r   rG   r   r  )rI  r  皙?r   rh  ri  c                 2   > [         R                  " U TUTS9$ )NrH  )r   r  )rP   r$   alternative_i	popmean_is     r>   test2+TestPower.test_vectorization.<locals>.test2  s!    #(#4#4Q	AN$P PrT   rg  r<  rI  )r   r   re   )r9   rI   r   r   rq  r  r   r   r=  appendrs   rq   r   )r  r5   rl  nxri  rh  rb   r(  significance_inx_ir  tmpr}  r~  rx  s               @@@r>   test_vectorizationTestPower.test_vectorization  s    ii##N3 88QH%	0 ZZ-.q"**}=!AB zz":;kk$

B!') *N%+M%:M%-	P P $kk%T7EG

399- &. &;  + jjiioo. 			3T=rT   c                    [         R                  R                  S5      n[        R                  nUR                  SSSS9nUR                  UR                  4n[         R                  " / SQ5      n[        R                  " X$X5S9n[         R                  " US S 2[         R                  4   UR                  R                  5      n[        UR                  USS	9  g )
N   &( r0   rG   )r   r0   r   )rI  rz  r   rg  rI  r   )r9   rI   r   r   r  integersr=  rq  r   rr   r  rq   r   )r  r5   rl  rm  r   rh  rb   s          r>   test_ttest_ind_nullTestPower.test_ttest_ind_null  s     ii##O4b#G<jj#**$zz"34kk$^O|ArzzM'BCIIOOT		<d;rT   c                 
   [         R                  R                  S5      n/ SQ/ SQ// SQ/ SQ//nS/ SQ0nS/S	//nS
S/n[        R                  " [        R
                  UR                  UXSS9n[        UR                  US
S9  g )Nr  )gv?g]NbJ?g6;?)gOt]?g7gLڷ?g0Dҗ?)gVL[?g;c?g.H&?)g#*3)?glk?g5i ?r  )r   rR  r   r0   rT  rI  rz  r{  r   )r9   rI   r   r   r   r  r=  r   )r  r5   r(  ri  rm  rh  rb   s          r>   test_ttest_1samp_power TestPower.test_ttest_1samp_power
  s    ii##O4 5464467
 _-$d|kk%++SZZ'3D		3T2rT   r^   N)rV  rW  rX  rY  r  r6   rZ  r]  r  r  r  r  rc  r^   rT   r>   re  re  x  sP    69p [[!- !-F [[%> %>N<3rT   re  c                      \ rS rSrSrS rS r\R                  R                  S\
R                  R                  \
R                  R                  /5      \R                  R                  S/ SQ5      S 5       5       r\R                  R                  S\
R                  R                  \
R                  R                  /5      \R                  R                  S	S
\R                   " S5      S-  4SS\R"                  " SS5      4/5      S 5       5       rS r\R                  R)                  5       S 5       rS r\R                  R                  SS5      S 5       r\R                  R                  SS5      S 5       r\R                  R                  SS5      S 5       rS r\R                  R7                  5       \R                  R                  SS5      S 5       5       r\R                  R(                  \R                  R                  SS5      S 5       5       r\R                  R                  SS5      S 5       rS r\R                  R                  SS5      S  5       r \R                  R7                  5       \R                  R                  SS!5      S" 5       5       r!/ S#Q/ S$QS%S&S'S(S)S*S+.r"/ S,Q/ S-QS.S/S0S1S2S3S+.r#\R                  R7                  5       \R                  R                  S4\"\#45      S5 5       5       r$\R                  R(                  \R                  R                  S6S75      S8 5       5       r%\R                  R                  S9S:5      S; 5       r&\'" S<5      S/ 4\'" S5      S/ S=Q/ S>Q/4\'" S?5      S/ S=Q/ S>QSS@//4/r(\R                  R                  SA\(5      SB 5       r)\R                  RU                  S5      SC 5       r+SDr,gE)FTestPermutationTesti   r1  c                 L    [         R                  R                  S5      U l        g )Nl   F )r9   rI   r   r5   )r  s    r>   setup_method TestPermutationTest.setup_method$  s    99(()<=rT   c                    S nSn[         R                  " [        US9   [        / SQS/4U5        S S S 5        Sn[         R                  " [        US9   [        SU5        S S S 5        [         R                  " [        US9   [        SU5        S S S 5        Sn[         R                  " [        US9   [        / SQ/ SQ4US	S
9  S S S 5        Sn[         R                  " [        US9   [        / SQ/ SQ4USS9  S S S 5        Sn[         R                  " [        US9   [        / SQ/ SQ4US	S9  S S S 5        Sn[         R                  " [        US9   [        / SQ/ SQ4USS9  S S S 5        Sn[         R                  " [        US9   [        / SQ/ SQ4USS9  S S S 5        Sn[         R                  " [        US9   [        / SQ/ SQ4USS9  S S S 5        Sn[         R                  " [        US9   [        / SQ/ SQ4USS9  S S S 5        Sn[         R                  " [        US9   [        / SQ/ SQ4USS9  S S S 5        Sn[         R                  " [        US9   [        / SQ/ SQ4USS9  S S S 5        g ! , (       d  f       GNK= 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Nb= f! , (       d  f       GN?= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       g = f)Nc                 F    [         R                  " X4U5      R                  $ r]   r  rX   s      r>   r  :TestPermutationTest.test_permutation_test_iv.<locals>.stat+  s    ??A640:::rT   z2each sample in `data` must contain two or more ...r   r   r   z6`data` must be a tuple containing at least two samples)r   r!   r"   r#   z `permutation_type` must be in...r   )permutation_typer   r   r  r'   r(   r*   r+   r,   r  r  r2   r3   r4   )r6   r7   r8   r   r<   )r  r  r=   s      r>   test_permutation_test_iv,TestPermutationTest.test_permutation_test_iv)  sm   	; G]]:W5i!-t4 6 K]]:W5T4( 6]]9G4Q% 5 /]]:W5i3TD 6 5]]:W5i3T.46 6 E]]:W5i3TcJ 6 >]]:W5i3TuM 6 >]]:W5i3TvN 6 @]]:W5i3TG 6 @]]:W5i3TH 6 0]]:W5i3TvN 6 A]]9G4i3TyI 54W 65 6544 65 65
 65 65 65 65 65 65 54s   I5JJ2J+'J=KK!K3;L0L%L)L:5
J
J
J(+
J:=
K
K!
K03
L
L
L&)
L7:
MrH   r  )pairingssamplesindependentc                   ^	 U R                   R                  S5      nU R                   R                  S5      nU	4S jm	ST	l        ST	l        SUSS.n[        R
                  " X44T	4SU" S5      S.UD6n[        T	R                  S	5        [        T	R                  S5        ST	l        [        R
                  " X44T	4S
U" S5      S.UD6n[        T	R                  S5        [        T	R                  S
5        ST	l        [        R
                  " X44T	4SU" S5      S.UD6n[        T	R                  S5        [        T	R                  S5        [        UR                  UR                  5        [        UR                  UR                  5        g )Nr0   c                    > U R                   S:X  a  SO
[        U 5      n[        UTR                  5      Tl        T=R                  S-  sl        [
        R                  " XS9[
        R                  " XS9-
  $ Nr   r#   )r	  rh   r,  r  r  r9   r:   )rP   rY   r$   r  r   s       r>   r   1TestPermutationTest.test_batch.<locals>.statistici  s[    ffks1vJ#&z93G3G#HI "771(2771+@@@rT   r   r   T)r)   r  r    r   )r-   rH   r  r   r   r   )r5   rI   r  r  r   r   r   r   )
r  r  rH   rP   rY   r  rQ   rR   r  r   s
            @r>   r  TestPermutationTest.test_batch_  sr    HHOOBHHOOB	A
 	 	#9I"$%%qfi Lq3??LFJLY&&-Y))1-	%%qfi Lr3??LFJLY&&+Y))2.	%%qfi Lt3??LFJLY&&*Y))40T[[$++.T[[$++.rT   zpermutation_type, exact_sizer  r   r   )r  r  r  r<  c                 v   U R                   R                  S5      nU R                   R                  S5      nS nUSS.n[        R                  " XE4U4SU" S5      S.UD6n[	        UR
                  R                  S5        [        R                  " XE4U40 UD6n[	        UR
                  R                  U5        g )Nr   c                 T    [         R                  " XS9[         R                  " XS9-
  $ rm   r   rX   s      r>   r   8TestPermutationTest.test_permutations.<locals>.statistic      771(2771+@@@rT   T)r  r    r   )r)   rH   )r5   rI   r   r   r   rQ  r~   )	r  r  
exact_sizerH   rP   rY   r   r  rb   s	            r>   test_permutations%TestPermutationTest.test_permutations  s     HHOOAHHOOA	A %5"$$$aVY KA2>q/KEIKS**//3$$aVY?$?S**//<rT   c                    Su  pSu  p4n[         R                  " X4-   U5      U:  d   e[        R                  R	                  US9n[        R                  R	                  US9nXg4nS n	SSSXS.n
[        X4S	U0U
D6n[        X4S	[        R                  0U
D6nUR                  UR                  :X  d   e[        UR                  UR                  S
S9  g )N)r   r   )r  	   i]  r   c                 T    [         R                  " XS9[         R                  " XS9-
  $ rm   r   rX   s      r>   r   NTestPermutationTest.test_randomized_test_against_exact_both.<locals>.statistic  r  rT   Tr  rG   r    r  r-   r   r5   r)   rI  r   )r   binomr   r   r   r   r9   infr   r   r   r  r   r5   r  nypermutationsrP   rY   r   r   r  rb   rR   s                r>   'test_randomized_test_against_exact_both;TestPermutationTest.test_randomized_test_against_exact_both  s     %*}}RWb)L888JJNNN#JJNNN#t	A #[Ft 'L '!%'LRVVLtL}}...

DKKd;rT   c                    Su  pSu  p4nSU-  U:  d   e[         R                  R                  US9n[         R                  R                  US9nXg4nS n	SSSXS	.n
[        X4S
U0U
D6n[        X4S
[        R
                  0U
D6nUR                  UR                  :X  d   e[        UR                  UR                  SS9  g )N)r   N)r   r   i }  r   r   c                 0    [         R                  " X-
  US9$ rm   r   rX   s      r>   r   QTestPermutationTest.test_randomized_test_against_exact_samples.<locals>.statistic  s    7715t,,rT   Tr  rG   r  r)   rI  r   )	r   r   r   r   r9   r  r   r   r   r  s                r>   *test_randomized_test_against_exact_samples>TestPermutationTest.test_randomized_test_against_exact_samples  s    
 +,"u|###JJNNN#JJNNN#t	- #	[Ft 'L '!%'LRVVLtL}}...

DKKd;rT   c                   ^ SU R                   p!Su  p4n[        R                  " U5      U:  d   e[        R                  R                  US9n[        R                  R                  US9mU/nU4S jn[        R                  " U5      n	SSSXS.n
[        Xy4S	U0U
D6n[        Xy4S	[        R                  0U
D6nUR                  UR                  :X  d   e[        UR                  UR                  S
S9  g )Nr  )r  r  i@  r   c                 8   > [         R                  " U T5      S   $ Nr   r   pearsonrrP   rY   s    r>   r   TTestPermutationTest.test_randomized_test_against_exact_pairings.<locals>.statistic1d  s    >>!Q'**rT   Tr  rG   r  r)   rI  r   )r5   r   	factorialr   r   r   r   rk  r   r9   r  r   r   r   )r  r   r5   r  r  r  rP   r   r   r   r  rb   rR   rY   s                @r>   +test_randomized_test_against_exact_pairings?TestPermutationTest.test_randomized_test_against_exact_pairings  s     'S*  $|333JJNNN#JJNNN#s	+  44[A	"	[Ft 'L '!%'LRVVLtL}}...

DKKd;rT   r   r  c                   ^ U R                   R                  SSS9nU R                   R                  SSSS9n[        R                  " X#TSS9nU4S	 jn[	        X#4U[
        R                  S
U R                   S9n[        UR                  UR                  U R                  S9  [        UR                  UR                  U R                  S9  g )Nr   r   r~   r}   rz   r   )r~   r|   r}   exact)r   r  c                 D   > [         R                  " XSTS9R                  $ r  )r   ks_2sampr   rP   rY   r   s     r>   r   >TestPermutationTest.test_against_ks_2samp.<locals>.statistic1d   s!    >>!W.9;;D9ErT   r   r)   r   r5   r   )r5   r=  r   r  r   r9   r  r   r   r   r   )r  r   rP   rY   r   r   rb   s    `     r>   test_against_ks_2samp)TestPermutationTest.test_against_ks_2samp  s     HHOO!O,HHOOO3>>!KgN	E v{+4$((D 	x'9'9		J

HOO$))DrT   c                    U R                   R                  SSS9nU R                   R                  SSS9nSSSS	.nXA   n[        R                  " X#US
9nS n[	        X#4U[
        R                  XR                   S9n[        UR                  UR                  U R                  S9  [        UR                  UR                  U R                  S9  g )Nr   r   r  rz   r   r   r   r  r  r  c                 B    [         R                  " X5      R                  $ r]   r   ansarir   r  s     r>   r   <TestPermutationTest.test_against_ansari.<locals>.statistic1d      <<%///rT   r  r   )r5   r=  r   r  r   r9   r  r   r   r   r   )	r  r   rP   rY   alternative_correspondencealternative_scipyr   r   rb   s	            r>   test_against_ansari'TestPermutationTest.test_against_ansari  s     HHOO!O,HHOO!O, /8173>&@" 7C<<2CD	0 v{+6HHF 	x'9'9		J

HOO$))DrT   c           
         [         R                  R                  SSU R                  S9n[         R                  R                  SSU R                  S9n[         R                  " X#SUS9nS n[        X#4US[        R                  USU R                  S	9n[        UR                  UR                  U R                  S
9  [        UR                  UR                  U R                  S
9  g )N)r   rz   r   r   r~   r|   rH   rz  r   rH  c                 @    [         R                  " XUS9R                  $ rm   )r   mannwhitneyur   rX   s      r>   r   @TestPermutationTest.test_against_mannwhitneyu.<locals>.statistic*  s    %%a6@@@rT   T)r    r)   r   r$   r5   r   )r   uniformr   r5   r  r   r9   r  r   r   r   r   )r  r   rP   rY   r   r   rb   s          r>   test_against_mannwhitneyu-TestPermutationTest.test_against_mannwhitneyu"  s     MM9!$((KMM9$TXXN%%aL	A vyT+-66{$%4885 	x'9'9		J

HOO$))DrT   c                    [         R                  R                  SSU R                  S9n[         R                  R                  SSSU R                  S9n[         R                  " XSS9nS	 n[        X4U[        R                  S
U R                  S9n[        UR                  UR                  U R                  S9  [        UR                  UR                  U R                  S9  g )Nr   r   )r~   r}   rH   rz   r   )r~   r|   r}   rH   r  r.   c                 @    [         R                  " XSS9R                  $ N
asymptoticr.   )r   cramervonmises_2sampr   r  s     r>   r   9TestPermutationTest.test_against_cvm.<locals>.statistic1d;  s!    --a5ACCL9MrT   r   r  r   )r   r   r   r5   r  r   r9   r  r   r   r   r   )r  rP   rY   r   r   rb   s         r>   test_against_cvm$TestPermutationTest.test_against_cvm4  s    JJNNNBJJNNqNI--a7C	M
 v{+4$((D 	x'9'9		J

HOO$))DrT   r$   )rf   r   c                    [         R                  R                  S5      nUR                  SS9nUR                  SS9nUR                  SS9nX4U4nS nS n[        R                  " U5      n	[        R                  " U5      n
[         R
                  " US5      n[         R
                  " US	5      n[         R
                  " US
5      nU	" XXS9nU
" XXS9nSUSSU R                  S.n[        Xg4S[         R                  0UD6n[        Xg4SS0UD6n[        UR                  XR                  S9  [        UR                  UR                  U R                  S9  [        UR                  USS9  [        UR                  UR                  SS9  g )Nl   Y}y!dh r   r   )r   r   r   )r   r   r   c                  <    [         R                  " U 6 R                  $ r]   )r   kruskalr   r   s    r>   r   ITestPermutationTest.test_vectorized_nsamp_ptype_both.<locals>.statistic1dX  s    ==$'111rT   c                  <    [         R                  " U 6 R                  $ r]   )r   r  r   r  s    r>   pvalue1dFTestPermutationTest.test_vectorized_nsamp_ptype_both.<locals>.pvalue1d[  s    ==$'...rT   )r   r   r   )r   r   r   r  r#   Fr   r  r    r$   r   r  r5   r)   r   r   gQ?r   r   )r9   rI   r   r   rk  rr   r5   r   r  r   r   r   r   )r  r$   r5   rP   rY   rn   r   r   r  r   r   x2rE  z2expected_statisticexpected_pvaluer  rb   rR   s                      r>    test_vectorized_nsamp_ptype_both4TestPermutationTest.test_vectorized_nsamp_ptype_bothF  s`    ii##$78JJQJ JJIJ&JJIJ&ay	2	/  44[A	11(; __Q	*__Q	*__Q	*&rr= 7 $T)$1$((DtMbffMMLtLtL 	'9		Jt~~DIIF

O$?

DKKd;rT   c                   ^ [         R                  R                  SSU R                  S9n[         R                  R                  SSU R                  S9nS nS nU4S jn[        R
                  " U5      nU" X#SS	9nUS   n	US   n
S
STSU R                  [        R                  S.n[        X#-
  4U40 UD6n[        X#4U40 UD6n[        UR                  UR                  U R                  S9  TS:w  a  [        UR                  XR                  S9  [        UR                  XR                  S9  [        UR                  UR                  U R                  S9  g )N)r   r<  r   r   r  rz  c                 @    [         R                  " U SS9R                  $ Nr   r  r   wilcoxonr   )rn   s    r>   statistic_1samp_1dETestPermutationTest.test_against_wilcoxon.<locals>.statistic_1samp_1d  s    >>!8BBBrT   c                 @    [         R                  " XSS9R                  $ r  r  r  s     r>   statistic_2samp_1dETestPermutationTest.test_against_wilcoxon.<locals>.statistic_2samp_1d  s    >>!F;EEErT   c                 .   > [         R                  " XTS9$ )Nr  )r   r  r  s     r>   test_1d:TestPermutationTest.test_against_wilcoxon.<locals>.test_1d  s    >>!K@@rT   r   r#   Fr  )r    r$   r   r  r5   r)   r   r  )r   r  r   r5   r   rk  r9   r  r   r   r   r   r   )r  r   rP   rY   r  r   r  rl  r   r/  r0  r  rQ   rR   s    `            r>   test_against_wilcoxon)TestPermutationTest.test_against_wilcoxonv  s-    MM9!$((KMM9$TXXN	C	F	A //81% a[
#Q{$-dhh!vv'  (:CdC(:CdC 	TYYG+%DNNM		JZii@T[[tyyArT   c           
      J   U R                   R                  SSSS9nSX"S:H  '   SS jnU" U5      SSpen[        R                  " XEXaS9n[        R                  " U4US	S
[
        R                  U R                   US9n[        UR                  UR                  U R                  S9  g )Nr   r   r0   r   rf   c                 2    [         R                  " U S:  US9$ )Nr   r#   r9   r   r  s     r>   r   =TestPermutationTest.test_against_binomtest.<locals>.statistic  s    66!a%d++rT   rR  r  Tr  )r    r  r)   r5   r   r   r   )
r5   r  r   r   r   r9   r  r   r   r   )	r  r   rP   r   kri   r]  r   rb   s	            r>   test_against_binomtest*TestPermutationTest.test_against_binomtest  s     HHa,q&	
	, A,Ca??1D$$aT96?13TXX1<> 	

HOO$))DrT   c                   ^ U R                   R                  SS9nXR                   R                  SS9-   m[        R                  " UTSS9nU4S jn[	        U4US[
        R                  U R                   S9n[        UR                  UR                  U R                  S9  [        UR                  UR                  U R                  S9  g )	Nr<  r   r  r.   c                 D   > [         R                  " U TSS9R                  $ r  )r   
kendalltaur   r  s    r>   r   @TestPermutationTest.test_against_kendalltau.<locals>.statistic1d  s    ##Aq>HHHrT   r  )r  r)   r5   r   )r5   r=  r   r  r   r9   r  r   r   r   r   )r  rP   r   r   rb   rY   s        @r>   test_against_kendalltau+TestPermutationTest.test_against_kendalltau  s    HHOOO#Q''##Aq9	I t[:+-66txxA 	x'9'9		J

HOO$))DrT   c           	        ^ U4S jn[         R                  R                  S5      nUR                  S5      S:  R                  [        5      nUR                  S5      SU-  -   S:  R                  [        5      m[
        R                  R                  UT5      S   n[        U4US[         R                  UUS9n[
        R                  " XQS	9n[        UR                  US   5        g )
Nc                 B   > [         R                  " U S:H  TS:H  -  5      $ r  r	  r  s    r>   r   @TestPermutationTest.test_against_fisher_exact.<locals>.statistic  s    6616a1f-..rT   l   	(yM4 r9  g333333?g      ?r   r  )r  r)   r   r5   r  )r9   rI   r   astypefloatr   contingencycrosstabr   r  fisher_exactr   r   )	r  r   r   r5   rP   tabrb   rR   rY   s	           @r>   test_against_fisher_exact-TestPermutationTest.test_against_fisher_exact  s    	/ ii##$78ZZ]S ((/ZZ]T!V#c)11%8((A.q1tY+-66{#&( !!#?

DG,rT   )r=  r   c                 X   U R                   R                  SS9nU R                   R                  SS9nU R                   R                  SS9n[        R                  " X!S9n[        R                  " X1S9n[        R                  " XAS9nUS   nX#U4nS nS n[        R
                  " U5      n[        R
                  " U5      n	U" [        R                  " U6 S	U06n
U	" [        R                  " U6 S	U06nS
USSSS.n[        XV4S[        R                  0UD6n[        XV4SS0UD6n[        UR                  XR                  S9  [        UR                  UR                  U R                  S9  [        UR                  XR                  S9  [        UR                  UR                  SS9  g )N)r   r   r   r   )r   r   r   )r   r   r   r#   r   c                  B    [         R                  " U SSS9R                  $ )NTr  rankedr/   )r   page_trend_testr   r  s    r>   r   LTestPermutationTest.test_vectorized_nsamp_ptype_samples.<locals>.statistic1d  s"    ((d0<>>GiHrT   c                  B    [         R                  " U SSS9R                  $ )NTr  r!  )r   r#  r   r  s    r>   r  ITestPermutationTest.test_vectorized_nsamp_ptype_samples.<locals>.pvalue1d  s"    ((d0799?@rT   r$   Fr   r  r  r)   r{   r   r   r   )r5   rI   r   rankdatar   rk  r9   broadcast_arraysr   r  r   r   r   r   )r  r$   rP   rY   rn   r   r   r  r   r   r  r  r  rb   rR   s                  r>   #test_vectorized_nsamp_ptype_samples7TestPermutationTest.test_vectorized_nsamp_ptype_samples  sq    HHOOO+HHOOO+HHOOO+NN1(NN1(NN1(aDay	H	@  44[A	11(;&(;(;T(BNN ""5"5t"<H4H $T)$.q:tMbffMMLtLtL'9		Jt~~DIIF

O))D

DKKd;rT   r   )r"   r   g      @rt  g?g&_?g      @gd~$I"@glu?)rP   rY   expected_lessexpected_2sidedexpected_Pr_gte_S_meanr  expected_avgexpected_std)o   k   rG   r   rC  j   m   l   )	r1  r4  r2  b   i   rD  n   r6  r   gd?gd?gYo5 ?g     @@@g{C@gDmFA@casec                    US   nUS   nUS   nUS   nUS   nUS   nUS   nUS   n	S	 n
[         R                  R                  5        nUR                  [        S
5        [        X#4U
[         R                  SS9n[        X#4U
[         R                  SS9nSSS5        [        WR                  X@R                  S9  [        UR                  USS9  [        WR                  USS9  [        UR                  R                  5       USS9  [        UR                  R                  5       U	SS9  UR                  nUR                  R                  5       n[        UR                  5      n[         R                  " [         R                   " UR                  U-
  5      [         R                   " X-
  5      :  5      U-  n[        UU5        g! , (       d  f       GN8= f)a.  
Results above from SAS PROC NPAR1WAY, e.g.

DATA myData;
INPUT X Y;
CARDS;
1 1
1 2
1 3
1 4
2 1.5
2 2
2 2.5
ods graphics on;
proc npar1way AB data=myData;
    class X;
    EXACT;
run;
ods graphics off;

Note: SAS provides Pr >= |S-Mean|, which is different from our
definition of a two-sided p-value.

rP   rY   r  r+  r,  r-  r.  r/  c                 B    [         R                  " X5      R                  $ r]   r  r  s     r>   r   7TestPermutationTest.test_with_ties.<locals>.statistic1d9  r  rT   z$Ties preclude use of exact statisticr   )r)   r   r  Nr   g|=r   gư>)r9   testingr   r)  UserWarningr   r  r   r   r   r   rQ  r:   r   rh   r   r   )r  r8  rP   rY   r  r+  r,  r-  r.  r/  r   r-  rb   rR   Sr:   ri   Pr_gte_S_means                     r>   test_with_ties"TestPermutationTest.test_with_ties  s   8 II!"67_-01!%&>!?N+N+	0 ZZ))+sJJ{$JK"A6;BFF/57C#QFKRVV0;=D	 , 	'9		J

M>_5A..335|$O..224lN MM$$))+%%&rvvc&;&;D&@A"$&&. 1 2234.>' ,+s   
AG
Gzalternative, expected_pvalue))r   g?)r   gOO?)r  g<OO?c                    ^ / SQn/ SQmSnU4S jn[        U4US[        R                  US9n[        UR                  X@R
                  S9  [        UR                  USS	9  g
)a  
Results above from R cor.test, e.g.

options(digits=16)
x <- c(1.76405235, 0.40015721, 0.97873798,
       2.2408932, 1.86755799, -0.97727788)
y <- c(2.71414076, 0.2488, 0.87551913,
       2.6514917, 2.01160156, 0.47699563)
cor.test(x, y, method = "spearm", alternative = "t")
)g@9?gY,?gOQ?g[iY@g|?g鈶BE)gQGn@gU?gz˱@?gmGA6@gB @g˭?g?c                 F   > [         R                  " U T5      R                  $ r]   )r   	spearmanrr   r  s    r>   r   DTestPermutationTest.test_against_spearmanr_in_R.<locals>.statistic1dk  s    ??1a(222rT   r  )r  r)   r   r   gvIh%<=r   N)r   r9   r  r   r   r   r   )r  r   r  rP   r  r   rb   rY   s          @r>   test_against_spearmanr_in_R/TestPermutationTest.test_against_spearmanr_in_RQ  s_    (10/	3 t[:+-66{L 	'9		J

O%@rT   r-   )rf   r   c                     [         R                  " [        SS9   [        [        R
                  " / SQU5      5        S S S 5        g ! , (       d  f       g = f)Nz`batch` must be positive.r   r   )r6   r7   r8   rt   r   _batch_generator)r  r-   s     r>   test_batch_generator_iv+TestPermutationTest.test_batch_generator_ivt  s3    ]]:-HI--i?@ JIIs   #A
Ar   rC   )r   r   rz   r  r9  ziterable, batch, expectedc                 P    [        [        R                  " X5      5      nXC:X  d   eg r]   )rt   r   rI  )r  iterabler-   r   gots        r>   test_batch_generator(TestPermutationTest.test_batch_generator}  s#     ;//@ArT   c                    / SQn/ SQnS n[         R                  " X4USSS9nUR                  UR                  UR                  pvnS[
        R                  " XuS-
  :  5      -  [        U5      -  nXhs=:X  a  S	:X  d   e   eg )
N)r   r   r   r   )r   r   r<  r  c                 4    [         R                  " X5      S   $ r  r  r  s     r>   r   FTestPermutationTest.test_finite_precision_statistic.<locals>.statistic  s    >>!'**rT   Fr  )r    r  r   r1  gUUUUUU?)r   r   r   r   rQ  r9   r   rh   )	r  rP   rY   r   rb   rr   null	correct_ps	            r>   rT  3TestPermutationTest.test_finite_precision_statistic  s    
 	+ $$aVY56@B--S5J5J4t5y011CI=	)c)))))rT   r4   N)-rV  rW  rX  rY  r   r  r  r6   rZ  r\  r9   rI   rH  r   r  r   r  r  r  r  r]  r  r  r  r  r  r  r[  r  r  r  r  r  r)  
tie_case_1
tie_case_2r@  rF  rJ  r@  batch_generator_casesrO  ra  rT  rc  r^   rT   r>   r  r     s;   D>
2Jl [[^bii.C.C.0ii.C.C.E F[[/CE"/EF"/J [[^bii.C.C.0ii.C.C.E F[[;)7+<+<Q+?+BC/,gmmAq.ABDE=	EF=4<2 [[< <2<: [[],LME NE& [[],LME NE* [[],LME NE"E$ [[[[VW-*< . *<\ [[[[],LM#B N #BJ [[],LME NE,E" [[],LM- N-$ [[[[VW-'< . '<V $-#/%(,8(+"*GEJ ?C#/%1,8(,"+XGJ [[[[Vj*%=>:? ? :?x [[[[;>?A	? 
A< [[Wg.A /A $Ah2.#AhIy+AB#AhIy1a&+IJL [[8244 [[1* *rT   r  c                     [         R                  " / SQ[        S9n [         R                  " U 5      n[	        5       nSn[
        R                  " U 5       HU  nUS-  n[         R                  " XAS S 5      nUR                  [        U Vs/ s H  n[        U5      PM     sn5      5        MW     [         R                  " [        [        U 5      S-
  5       Vs/ s H3  n[        R                  " [!        XS  5      [!        XS-   S  5      5      PM5     sn5      n[#        X75        [#        [        U5      U5        g s  snf s  snf )N)r   r   r   r  r   r   rf   )r9   r   intcumsumsetr   _all_partitions_concatenatedsplitaddr;   	frozensetprodr@  rh   r   r  r   r   )ri   ncall_partitionsr  partition_concatenatedpartitioningr_   r   s           r>    test_all_partitions_concatenatedrh    s    	#&A	1BUNG"-"J"J1"M1xx 63B@5!E1)A,!EFG #N
 ww!&s1vax2!0A  c!B%j#a!g,?!02 3H #^$h/ "F2s   	D8:D=fun_namer   r   r   c                 R  ^^ [         R                  R                  S5      mTR                  SS9mU4S jnT4TSS.T4TSS.TUS	.S
.nSS0n[        [        U 5      nX    nUR                  U5        U4S jnU" SUS S.UD6  U" SUSS.UD6  S nU" SUS S.UD6  U" SUSS.UD6  g )Nl   r: r0   r   c                 @   > [         R                  R                  U TS9$ )Nr$  )r   r   r   rO  s    r>   r   &test_parameter_vectorized.<locals>.rvs  s    zz~~4c~::rT   rA   )r   r5   r/   r  )r   r5   r  )r   r   rj  r)   rG   c                    > U R                   S:  d  [        R                  " U T5      (       d   e[        R                  " XS9$ r  )r	  r9   rB  r:   )rP   r$   r   s     r>   r   ,test_parameter_vectorized.<locals>.statistic  s3    vvzR^^Av6666wwq$$rT   )r   r    Tc                 R    U R                   S:X  d   e[        R                  " U 5      $ r  )r	  r9   r:   r  s    r>   r   ro    s     vv{{wwqzrT   Fr^   )r9   rI   r   rJ  r   r   )	ri  r   fun_optionscommon_optionsr$  optionsr   r5   r   s	          @@r>   test_parameter_vectorizedrt    s    
 ))


/CZZRZ F; +13+7!917	#<E(G28'E	GK
 $S)N
%
"C#GNN>"% 8)888)88 8)889)99rT   c                       \ rS rSrS rSrg)TestMonteCarloMethodi  c                     Sn[         R                  R                  S5      n[        R                  " [
        US9   [        R                  " UR                  US9  S S S 5        g ! , (       d  f       g = f)Nz.Use of `rvs` and `rng` are mutually exclusive.ir   )r   r5   )r9   rI   r   r6   r7   r8   r   MonteCarloMethod)r  r=   r5   s      r>   test_rvs_and_random_state.TestMonteCarloMethod.test_rvs_and_random_state  sI    Bii##H-]]:W5""szzs; 655s    A$$
A2r^   N)rV  rW  rX  rY  ry  rc  r^   rT   r>   rv  rv    s    <rT   rv  )Er6   numpyr9   numpy.testingr   r   r   scipy.conftestr   scipy._lib._utilr   scipy._lib._array_apir   r	   scipy._lib._array_api_no_0dr
   r   scipyr   r   scipy.optimizer   scipy.statsr   r   r   r   scipy.stats._resamplingr   r?   rZ  r\  rS   rj   rx   r]  rb  r   tests_Ritemsr   tests_against_itself_1sampr   r   r   tests_against_itself_2sampr   r  r  r"  r)  r.  r3  r9  rF  rP  r_  rc  rm  r{  filterwarningsr  r  r  re  r  rh  rt  rv  r^   rT   r>   <module>r     s     J J / ) ; H    L L - -<8~ #AB+; , C;" #AB> C>2 #AB+D%=1(: 2 , C(:V AB#ABO C C O0 #' "
 +W]]_=C >C. (,,0%)+ 
7 t12 +399;="= "J (+,/1  +399;=+= +\ G\#:;!Q(> ) <>. EF#AB!Q(> ) C G>, #AB( C( #AB6 C6"2& /!T;  < 2 ;<#AB; C =;.!& m]%CD- E-2 +.+" , /"." +  , 4 #AB> C >> 45!> 6 !>HA.}8 }8@e3 e3Ps	* s	*x0* NP:P:B< <rT   