
    -i@                    
   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  S SKJrJrJrJr  S SKJs  Jr  S	 r\ R6                  R9                  S
/ SQ5      \ R6                  R9                  S/ SQ5      S 5       5       r\ R6                  R9                  S
/ SQ5      S 5       r\ R6                  R9                  S
/ SQ5      \ R6                  R9                  S/ SQ5      \ R6                  R9                  SSS/5      S 5       5       5       r\ R6                  R@                  \ R6                  RC                  S5      \ R6                  R9                  S
/ SQ5      S 5       5       5       r"SSSS.r#\ R6                  R9                  S\#RI                  5       5      S 5       r%S r&S r'SSSS.r(\ R6                  R@                  \ R6                  R9                  S\(RI                  5       5      S 5       5       r)S S!S".r*\ R6                  R@                  \ R6                  R9                  S\*RI                  5       5      S# 5       5       r+\ R6                  R9                  S
S$S%/5      \ R6                  R9                  SS S&/5      S' 5       5       r,\ R6                  RC                  S(5      \ R6                  R9                  S
/ SQ5      \ R6                  R9                  SS S&/5      S) 5       5       5       r-\ R6                  R9                  S
/ SQ5      S* 5       r.\ R6                  R9                  S
/ SQ5      S+ 5       r/S, r0\ R6                  R9                  S-S S./5      S/ 5       r1\ R6                  RC                  S05      \ R6                  R9                  S
/ SQ5      S1 5       5       r2S2 r3\ R6                  R9                  S3S4S5/5      S6 5       r4\ R6                  R9                  S7/ S8Q5      \ R6                  R9                  S/ SQ5      S9 5       5       r5S: r6\ R6                  R9                  S/ SQ5      S; 5       r7\ R6                  R@                  \ R6                  R9                  S
/ SQ5      S< 5       5       r8\ R6                  R@                  \ R6                  Rs                  S=5      S> 5       5       r:S? r; " S@ SA5      r< " SB SC5      r= " SD SE5      r>SF r?\ R6                  R9                  SG/ SHQ5      SI 5       r@ " SJ SK5      rAg)L    N)assert_allcloseassert_equalsuppress_warnings)rng_integers)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           
      .   [         R                  R                  S5      nUR                  SSS5      n[	        U4[         R
                  S U SUSS9n[         R                  R                  S5      n[	        U4[         R
                  SU USUS9n[        UR                  R                  UR                  R                  5        [        UR                  R                  UR                  R                  5        [        UR                  UR                  5        g )Nr   r.         d   )r+   r-   random_stater"   r'   )r+   r-   r"   r'   rF   )r7   randomRandomStaterandr   r8   r   confidence_intervallowhighstandard_error)r-   r"   r3   xres1res2s         r<   test_bootstrap_batchrQ   O   s     ))


"CRAaT277$v"#$CAD
))


"CaT277"VCcCD ))--t/G/G/K/KL))..0H0H0M0MN$$d&9&9:    c                   ^^^	 [         R                  R                  S5      nSnUR                  U5      mU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   rE   c                 *    X-
  S-  R                  US9$ )Nr   r!   r8   rN   yr"   s      r<   my_statistic+test_bootstrap_paired.<locals>.my_statisticj   s    qD))rR   c                 ,   > TU    nTU    nT" X#5      nU$ N )ir"   abresrX   rN   rW   s        r<   my_paired_statistic2test_bootstrap_paired.<locals>.my_paired_statisticm   s$    aDaD1 
rR   r2   T)r   r3   )
r7   rG   rH   rI   arangelenr   r   rJ   rM   )
r-   r3   nra   r]   rO   rP   rX   rN   rW   s
          @@@r<   test_bootstrap_pairedrh   b   s     ))


"CAAA*  			#a&AaT.A6DaV\$A>DD,,d.F.FGD'')<)<=rR   r   TFc           
         [         R                  R                  S5      nSS jnSnXQ   nUR                  U5      nUR                  U5      nUR                  U5      n	[	        XxU	4XBU SSSS9n
U
R
                  R                  U
R                  R                  S-   :X  d   e/ SQnXkU'   [         R                  " UR                  U5      U5      n[         R                  " UR                  U5      U5      n[         R                  " U	R                  U5      U5      n	[	        XxU	4XBU 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!   rU   )rN   rW   zr"   s       r<   rX   /test_bootstrap_vectorized.<locals>.my_statistic   s3    vv4v 166t6#44qvv4v7HHHrR   )r.   rC   rD   rE   )r   r-   r3   r"   r'   )rE   )r   r   r   rc   )r7   rG   rH   rI   r   bootstrap_distributionshaperM   broadcast_toreshaper   rJ   rK   rL   listpopr   )r-   r"   r   r3   rX   ro   	n_samplesrN   rW   rl   rO   rq   rP   result_shapes                 r<   test_bootstrap_vectorizedrv   |   s    ))


"CI EIAA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9rR   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sizerF   ffffff?r   )dfrz   r{   )
confidence)data	statisticr'   r-   r3   r$   gMb@?rtolga2U0*3?atolr   r'   r/   lessr$   alternativegreaterr\   )r7   rG   default_rngr
   normrvstrf   r8   semintervalstddictr   r   rJ   rM   updaterL   ppfrK   )	r-   r3   r   alphadistexpected_intervalexpected_seconfigr`   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NrR   )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)r.   rD         )@r   g+@            "   2   Q   Y   y         i@B r   )r'   r-   r3   g{Gzt?r   )r7   arrayr   r8   r   rJ   )r-   expectedrN   r`   s       r<   test_bootstrap_against_Rr      sD    " 	 5 	6A
QD"''wvCC++XEBrR   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-
  $ rk   )r
   skew)rN   rW   r"   s1s2s        r<   r   1test_multisample_BCa_against_R.<locals>.statistic   s%    ZZ%ZZ%wrR   l   tgy4r>   rE   )r-   r+   r3   r?   bcag1*g333333ÿg333333?Q?)r7   rG   r   r
   r   r8   rJ   abs)rN   rW   r   r3   	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rR   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)	r.         (   .   r   4   h      )   r   &   ^   c         c                 T    [         R                  " XS9[         R                  " XS9-
  $ rk   r7   r8   )rl   rW   r"   s      r<   r   :test_BCa_acceleration_against_reference.<locals>.statistic&  s    wwq$rwwq'<<<rR   rd   r}   rE   ge{?r   )r7   r   r
   r   rn   _resampling_bca_intervalr   )rW   rl   r   r   r`   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/0rR   i  i  c                    [         R                  R                  S5      nSnSnSn[        R                  " SSS9nUR                  5       nSnUR                  X4US	9n	[        U	4[         R
                  UUS
U SUS9n
U
R                  n[         R                  " US   U:  X{S   :  -  5      nX:X  d   e[        R                  " XU5      R                  nUS:  d   eg )Ni8 rE     ?rx   r   rz   r{   i  r|   rF   r   rd   )r   r$   r'   r+   r-   r"   r3   r   皙?)r7   rG   r   r
   r   r8   r   r   rJ   sum	binomtestpvalue)r-   r   r3   rg   r'   r$   r   	stat_truen_replicationsr   r`   cici_contains_truer   s                 r<   #test_bootstrap_against_itself_1sampr   :  s     ))


(CAK ::!1%D		I N88.,38?D
TG gg%5 +!C 
	 	 B vvr!uy0YA5FGH''' __--//5v C<<rR   i|  iz  )r>   r?   c                     [         R                  R                  S5      n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US9nU	R                  X4US9n[        X4UUUSU SUS9nUR                  n[         R                  " US   U
:  XS   :  -  5      nUU:X  d   e[        R                  " UUU5      R                  nUS
:  d   eg )Nr   rE   x   r   r   rd   c                 Z    [         R                  " XS9n[         R                  " XS9nX4-
  $ rk   r   )data1data2r"   mean1mean2s        r<   my_stat4test_bootstrap_against_itself_2samp.<locals>.my_statw  s&    ))}rR   r   r   r     r   r   )r   r$   r'   r+   r-   r"   rF   rc   )r7   rG   rH   r
   r   r8   r   r   rJ   r   r   r   )r-   r   r3   n1n2r'   r$   r   dist1dist2r   r   r   r   r`   r   r   r   s                     r<   #test_bootstrap_against_itself_2sampr   g  s+    ))


"C	B	BK JJ1A&EJJ3a(E

uzz|+I NIIN/cIBEIIN/cIBE
UN%%5 +!!$&C 
	 	 B vvr!uy0YA5FGHx''' __-~-//5v C<<rR   r>   r?   r   c           
        ^	 SS.S jm	U	4S jn[         R                  R                  S5      nUR                  SS5      nUR                  SS5      nUR                  SS5      n[	        XEU4T	SUSU SS	9n[	        XEU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[   rU   .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8rR   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''rR   r   rx   TrE   )r   r"   r'   r-   r3   Fr7   rG   rH   rI   r   r   rJ   rM   )
r-   r"   r  r3   rN   rW   rl   rO   rP   r   s
            @r<   test_bootstrap_vectorized_3sampr    s       9( ))


"CAAAAAAaAY	dCAGDaAYCAGDD,,d.F.FGD'')<)<=rR   z'Failure is not concerning; see gh-14107c                 B  ^ SS jmU4S jn[         R                  R                  S5      nU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$ rk   rU   rN   r"   s     r<   r   2test_bootstrap_vectorized_1samp.<locals>.statistic  s    vv4v  rR   c                 6   > U R                   S:X  d   eT" U SS9$ Nr   r   r!   r  )rN   r   s    r<   r  5test_bootstrap_vectorized_1samp.<locals>.statistic_1d  s     vv{{##rR   r   rx   TrE   )r   r"   r'   r+   r-   r3   Fr.   r   r
  )r-   r"   r  r3   rN   rO   rP   r   s          @r<   test_bootstrap_vectorized_1sampr    s    !$
 ))


"CAAaT9D!$DD aT<E!$BvD D,,d.F.FGD'')<)<=rR   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#        @r@   ignore)invalidz0The BCa confidence interval cannot be calculatedr   r,   )r  r  r   )r7   errstater4   warnsr
   DegenerateDataWarningr   r8   r   rJ   nanrM   )r-   r   msgr`   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   rE   r   i[%  r-   r'   r3   F)r-   r'   r3   r   )r7   rG   r   r
   r   r   r   r   r   rJ   rM   
isinstancefloat64)r-   r3   r   r   r`   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5rR   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   rE   r   r@   if  r   )r7   rG   r   r
   r   r   minr   rJ   rK   r   maxr   rL   )r3   r   r   true_minr`   rP   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2rR   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 rE   r|   r   l   mdpi4 r}   r?   )r'   r3   r$   r-   r   r@   )r'   r3   r$   r-   r/   +=r   )	r7   rG   r   r
   r   r8   r   rM   rJ   )r*  r3   rN   r   r   n3r`   r#  s           r<   test_re_bootstrapr/    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 rR   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   rE   r   rd   )r   r   r3   r"   r$   r   r   r   r}   r   r   r   r-  r   z`alternative` must be one ofr   r   z	ekki-ekkir\   )r7   rG   r   r
   r   r   r   r   r   r   r   rJ   rL   rK   isneginfisposinfr4   r5   r6   )r-   r3   r   r   r   r   lgs           r<   test_bootstrap_alternativer5    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   rx      r   rd   .r!   r   r*   )r7   rG   seedrI   nextr   _jackknife_resamplerangedeletearray_equalconcatenaterr   )ro   rN   rW   r]   slcr   y2s          r<   test_jackknife_resamplerC  2  s    EIINN1
		A[,,Q/0A59 Q	l99Q+~~c,,,,  
[<<QaHI
!B>>"    rR   rng_namerH   r   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   r.   r7  r2   .rd   )getattrr7   rG   r4   skipr:  rI   r   _bootstrap_resampler=  r   r?  )rD  r3   rng1rng2r'   ro   rN   rW   r]   rA  jsr   s               r<   test_bootstrap_resamplerL  E  s    
"))Xt
,C
{xj01q6Dq6DKEIINN1
		A''DAA; Q	l$59eBi8S"W:~~c,,,,  rR   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)r.         r   rd   r!   c                 N    [         R                  " [        R                  X U5      $ r[   )r7   apply_along_axisr
   percentileofscore)r^   rM  r"   s      r<   vectorized_pos0test_percentile_of_score.<locals>.vectorized_posg  s    ""5#:#:DUKKrR   rE   V瞯<)r7   rG   r:  rI   r   _percentile_of_scorer   )rM  r"   ro   rN   prU  p2s          r<   test_percentile_of_scorer[  _  s`     EIINN1
		A((;AL 
r	*3	.BA5!rR   c                  8   Sn [         R                  R                  S5      nUR                  " U 6 nUR                  " U S S 6 S-  n[        R
                  " X#5      n[        U S   5       H-  nXE   n[         R                  " X%   X5   SS9n[        XgS5        M/     g )N)r.   rP  r   rd   rE   r!   rW  )	r7   rG   rH   rI   r   _percentile_along_axisr=  r?   r   )ro   r3   rN   qrW   r]   r`   r   s           r<   test_percentile_along_axisr_  o  s    
 E
))


"C%A%*#A**10A58_d==qt"5u- rR   c                 &  ^	 S m	U	4S jn[         R                  " U5      n[        R                  R	                  S5      nUR                  SSS5      nUR                  SSS5      nUR                  SSS5      nT	" XEX`S9nU" XEX`S9n[        Xx5        g )	Nc                 .   ^  [        U 4S jU 5       5      $ )Nc              3   D   >#    U  H  oR                  T5      v   M     g 7fr[   rU   r   s     r<   r   >test_vectorize_statistic.<locals>.statistic.<locals>.<genexpr>  r   r   r   r   s   ` r<   r   +test_vectorize_statistic.<locals>.statistic  r  rR   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	  rR   r   r   rx   r8  r   r!   )r   _vectorize_statisticr7   rG   rH   rI   r   )
r"   r  
statistic2r3   rN   rW   rl   rO   rP   r   s
            @r<   test_vectorize_statisticri    s    9( 11,?J
))


"CAqAAqAAqAQ1(DaA)DDrR   c           
         [         R                  R                  S5      nSn[        R                  R
                  " USUS.6nS n[        U4X@SSSU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   rN  )rE   rE   r   c           	          [         R                  " [         R                  " X5      [         R                  " XSS9/5      $ )Nr   )ddof)r7   asarrayr8   r   )r   r"   s     r<   r   /test_vector_valued_statistic.<locals>.statistic  s1    zz2774.66$157 8 	8rR   rd   '     )r-   r"   r'   r+   rF   r   r!   Z   rE   r   rE   )r   rE   ro  )r7   rG   r   r
   r   r   r   r   rJ   rK   TrL   allro   rM   rn   )r-   r3   paramsr   r   r`   countss          r<   test_vector_valued_statisticrw    sH    ))



+CFZZ^^V*3GF8 VIyb $CcCC VVS,,0022V;..3355>@F 66&B,66&C-    ""&&,,888""''--999##x///%%++~===rR   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   )r8   var)rN   rW   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GrR   c                 N   > X-   nX-   n[         R                  " T" XVU5      5      $ r[   )r7   
nan_to_num)tptnfpfnr"   actualr   r~  s          r<   r   7test_vector_valued_statistic_gh17715.<locals>.statistic  s'    7}}[4@AArR   c                 >   > T" / UQU P76 [         R                  S4   $ )N.)r7   newaxis)r"   argsr   s     r<   statistic_extradim@test_vector_valued_statistic_gh17715.<locals>.statistic_extradim  s#    %$%%bjj#o66rR   )r   r   r   r   )r   r   r   r   )r   r8  r   r   )r   r8  r   r   )r      r   r   T)r3   r   r   rW  r   )
r7   rG   r   r   rs  r   r   rJ   rK   rL   )r3   r  r   r`   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>rR   c                  h   [         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                  " XS S	2S
S24   4U5        [        R                  " UR
                  UR
                  S
S2S S	24   4USS9  g ! , (       d  f       Ne= f)NiF|)r.   r   )rC   r   c                 @    [         R                  " XUS9R                  $ rk   r
   	ttest_indr   rV   s      r<   r    test_gh_20850.<locals>.statistic  s    q$/999rR   r   r!   /Array shapes are incompatible for broadcasting.r   r.   r   )	r7   rG   r   r
   r   rs  r4   r5   r6   )r3   rN   rW   r   r;   s        r<   test_gh_20850r    s    
))



+C

7A

7A: 
OOQFI&	OOQSS!##J	2 @G	z	1crc1fI	2 
2	OOQ#2#qs($i0	OOQSS!##ac3B3h-()!< 
2	1s   $ D##
D1c            
       >   \ rS rSrSrS\4S jrS rS rS r	\
R                  R                  S 5       r\
R                  R                  S	\" S
S5      5      S 5       r\
R                  R                  SS5      S 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,                  \R.                  45      \
R                  R                  SS5      \
R                  R                  S\R&                  " SSS5      5      S 5       5       5       r\
R                  R                  S\R2                  " 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                  RA                  S5      \
R                  RC                  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$ )NrF   dtype)rm  )r  kwdsr  rsrvs_inxps     r<   <lambda>6TestMonteCarloHypothesisTest.get_rvs.<locals>.<lambda>  s(    RZZ0V20VQU0V6; &0 &=rR   r\   )selfr  r  r  r  s    ````r<   get_rvs$TestMonteCarloHypothesisTest.get_rvs  s    = 	=rR   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"   
correctionrN  )r8   rz  ro   )rN   r"   mvrg   r  s        r<   r   =TestMonteCarloHypothesisTest.get_statistic.<locals>.statistic  sB    %Aq2AA!cz>!rR   r\   )r  r  r   s    ` r<   get_statistic*TestMonteCarloHypothesisTest.get_statistic  s    	" rR   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$ rk   rU   )rN   r"   r  s     r<   stat@TestMonteCarloHypothesisTest.test_input_validation.<locals>.stat  s    7717((rR   r  r   rx   )r   rx   r   c                     gNr   r\   rV   s      r<   r  DTestMonteCarloHypothesisTest.test_input_validation.<locals>.<lambda>  s    1rR   rd   r!   r   r    r   r   0`rvs` must be callable or sequence of callables.r  r  r  g      @c                     U $ r[   r\   rN   s    r<   r  r  !      arR   If `rvs` is a sequence...c                     U $ r[   r\   r  s    r<   r  r  &  r  rR   c                     U $ r[   r\   r  s    r<   r  r  &  s    1rR   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,  )rm  r
   r   r   )r|   r  s    r<   r   ?TestMonteCarloHypothesisTest.test_input_validation.<locals>.rvsB  s!    ::ejjnn$n788rR   r[   )rm  zerosr
   r   r   r4   r5   r6   r   r:   r8   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[   rU   )rN   r  s    r<   non_vectorized_statisticWTestMonteCarloHypothesisTest.test_input_validation_xp.<locals>.non_vectorized_statisticJ  s    771:rR   z!`statistic` must be vectorized...r  r   Fr   )
rm  r   r   r
   r   r   r4   r5   r6   r8   )r  r  r  r;   r   s    `   r<   test_input_validation_xp5TestMonteCarloHypothesisTest.test_input_validation_xpI  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                 b  ^ ^^ [         R                  R                  S5      nTR                  UR	                  SS95      n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      T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      T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      T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 r.   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  ro   r'  
batch_sizecounterr  )rN   r"   r  r  r   r  s      r<   r   :TestMonteCarloHypothesisTest.test_batch.<locals>.statistic_  sX    ffkqwwqzJ#&z93G3G#HI "%%b)!77rR   r   r   T)r   r   r'   r   i r  r   r+   r     r   r   r   r\   )r7   rG   r   rm  standard_normalr  r  r  r
   r   r   r   r   r	   r   )	r  r  r3   rN   r  rO   rP   res3r   s	   ``      @r<   
test_batch'TestMonteCarloHypothesisTest.test_batchX  s    ii##K0JJs***34	8
 	 	)#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[[1rR   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 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                   XR$                  S9  g )Nit$ r   r   r   rE   r  64float32r"  )r|   r          )popmeanr"   r  )r  r  Ti N  )r   r'   r"   r   )r7   rG   r   rm  r  r  rF  r  r
   ttest_1sampr  r  r   r   r   r   r   r   r   )r  r"   r  r3   r|   dtype_default	dtype_strdtype_npr  rN   r   r   r   r`   ref_statistic
ref_pvalues                   r<   test_axis_dtype,TestMonteCarloHypothesisTest.test_axis_dtype~  s,    ii##G,
 

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

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

JYY?rR   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 R                  U5      nU R                  [        R                  R                  X2S9n[        XGXaS9n[        UR                  UR                  UR                  5      5        [        UR                  UR                  UR                  5      U R                  S9  g )N)rQ  r,  r  r  r  r   )r7   rG   r   r  r
   r  rm  r  r  r   r   r   r   r   r   r   )	r  r   r  r3   rN   r#  r   r   r`   s	            r<   test_alternative-TestMonteCarloHypothesisTest.test_alternative  s     ii##H-R(2;?JJqM&&r*	ll5::>>3l6qyJrzz#--'@A

BJJszz$:KrR   )r   r   r^   g      rN  rx   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  rQ  r^   r|   rF   r  c                 v   > [         R                  " U [         R                  R                  STS9R                  $ Nasymp)moder   )r
   ks_1sampr   cdfr   )rN   r   s    r<   statistic1dGTestMonteCarloHypothesisTest.test_against_ks_1samp.<locals>.statistic1d  s+    >>!UZZ^^'.9;;D9ErR   r   Fr'   r   r   r   r   r   r   )r7   rG   r   r
   skewnormr   r  r   r  r  r   r   r   r   r   )	r  r   r^   r3   rN   r   r  norm_rvsr`   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 #rR   hypotestr   r   r  r9  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                   $ rk   )r   )rN   r"   r  s     r<   r   LTestMonteCarloHypothesisTest.test_against_normality_tests.<locals>.statistic  s    A)333rR   Tr   r   r   )r7   rG   r   r
   r  r   r  r   r   r   r   r   r   )
r  r  r   r^   r3   rN   r   r   r  r`   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$))DrR   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                  $ rk   )r
   
normaltestr   r  s     r<   r   GTestMonteCarloHypothesisTest.test_against_normaltest.<locals>.statistic  s    ##A1;;;rR   Tr   r  r   )r7   rG   r   r
   r  r   r  r  r   r   r   r   r   r   )r  r^   r3   rN   r   r   r  r`   s           r<   test_against_normaltest4TestMonteCarloHypothesisTest.test_against_normaltest  s     ii##H-NN3?##A&	< <<

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

HOO$))DrR   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rQ  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DrR   r   Fr   r  r   )r7   rG   r   r
   r  r   r  r   r  r  r   r   r   r   r   )r  r^   r3   rN   r   r  r  r`   s           r<   test_against_cramervonmises8TestMonteCarloHypothesisTest.test_against_cramervonmises  s     ii##I.NN#>''5::>>:	E <<

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

HOO$))DrR   	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rE   r   )	r7   rG   r   r
   tukeylambdar   andersonr   critical_values)r^   r3   rN   r   r  r]   s       r<   fun?TestMonteCarloHypothesisTest.test_against_anderson.<locals>.fun  s`    ))''	2C!!%%ac%DA~~a3H%%(@(@(CCCrR   r   )x0r  rE   r   c                 F   > [         R                  " U T5      R                  $ r[   )r
   r  r   )rN   r  s    r<   r  GTestMonteCarloHypothesisTest.test_against_anderson.<locals>.statistic1d&  s    >>!Y/999rR   r   Fr   r  r   r   )r   filterRuntimeWarningr   successrN   r7   rG   r   r
   r  r   r  r   significance_levelr  rF  r   r   r   r   )r  r  r]   r  supsolr^   r3   rN   r   expected_stat
expected_pr  dist_rvsr`   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 rE   Tr   r  g-C6?)r7   rG   r   r  r   r8   r   )r  r3   rN   r`   s       r<   test_p_never_zero.TestMonteCarloHypothesisTest.test_p_never_zero3  sT     ii##$78HHSMq**bgg*.FDzzV###rR   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                  $ rk   r  rV   s      r<   r   FTestMonteCarloHypothesisTest.test_against_ttest_ind.<locals>.statisticA  s    ??1d3===rR   rd   r!   r   r   {Gz?r   )
r7   rG   r   normalr
   r   r  r   r   r   r  r3   r   r   r   r`   r#  s          r<   test_against_ttest_ind3TestMonteCarloHypothesisTest.test_against_ttest_ind<  s    ii##$67zzvz&

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

CJJT:rR   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 )Nr3  rr  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>.statisticP  s    >>43d3===rR   rd   r   r"   r   r"   {Gz?r   )
r7   rG   r   r8  r
   r   rA  r   r   r   r9  s          r<   test_against_f_oneway2TestMonteCarloHypothesisTest.test_against_f_onewayI  s    ii##$67

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

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

CJJT:rR   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 ro  c                 N   > S[         R                  " SS9R                  U TS9-  $ )Nr  gZd;O?)rY  r   )r
   	bernoullir   r|   r3   s    r<   r   ITestMonteCarloHypothesisTest.test_finite_precision_statistic.<locals>.rvsb  s'    %044$S4QQQrR   rE   r   )r   r'   g     ?r   )
r7   rG   r   r
   r   rz  r   null_distributionr   r   )r  r'   r   rN   r`   c0c1r3   s          @r<   test_finite_precision_statistic<TestMonteCarloHypothesisTest.test_finite_precision_statisticZ  s     ii##$45	R H$$QRVV1<> VVC))S]]:;VVC))S]]G-DDExxzzb1f{Q7777rR   r\   )$__name__
__module____qualname____firstlineno__r   r7   r  r  r  r  r4   markxslowr  parametrizer=  r  r  slowlinspacer   r
   skewtestkurtosistestr	  re   r  r  r-  r0  r:  rE  	fail_slowxfail_on_32bitrO  __static_attributes__r\   rR   r<   r  r    s   D(, =@.DP [[#2 #2J [[VU2q\2@ 3@@ [[],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 8rR   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)		TestPowerio  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 )r.   rD   r   r   r    r   r  r   r  )r.   z3`significance` must contain floats between 0 and 1.r   significancerd   r   z`kwargs` must be a dictionaryr   )kwargsz+shape mismatch: objects cannot be broadcastr.   rC   )rD         rD   re  rN   z`test` must be callablez(`n_resamples` must be a positive integerir&   g      %@z"`batch` must be a positive integerr*   )r7   rG   r   r
   r  r8  r4   r5   r6   r   r:   rY  )r  r3   testr   n_observationsr;   s         r<   r  TestPower.test_input_validationp  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  rf   r'  r  r  r
   r  r   )rN   r"   r  rg  s      r<   rg  "TestPower.test_batch.<locals>.test  sS    ffks1vJ!*doo>DOLLAL$$Q5<<<rR   r   r.   r   )rg  rh  r'   r   )r   r+   r   rP  r\   )	r7   rG   r   r  r  r   r   r8  r   )r  r3   r  rO   rP   r  rg  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,rR   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"   )r7   expand_dimsr9   r=  r  r
   r  )rN   r   r"   popmeans_expandedpopmeanss       r<   rg  *TestPower.test_vectorization.<locals>.test  sC     "xuQQR
?S9T U$$Q{*.0 0rR   )r.   r   rP  r   rE   r   r  )rD  r  皙?r   rc  rd  c                 2   > [         R                  " U TUTS9$ )NrC  )r
   r  )rN   r"   alternative_i	popmean_is     r<   test2+TestPower.test_vectorization.<locals>.test2  s!    #(#4#4Q	AN$P PrR   rb  r7  rD  )r   r   rc   )r7   rG   r   r   rm  r  r
   r   r8  appendrq   ro   r   )r  r3   rg  nxrd  rc  r`   r#  significance_inx_irz  tmprx  ry  rs  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=rR   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   &( r.   rE   )r   r.   r,  )rD  ru  r   rb  rD  r   )r7   rG   r   r
   r  integersr8  rm  r   rp   r  ro   r   )r  r3   rg  rh  r   rc  r`   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;rR   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   rN  r   r.   rP  rD  ru  rv  r   )r7   rG   r   r
   r   r  r8  r   )r  r3   r#  rd  rh  rc  r`   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2rR   r\   N)rQ  rR  rS  rT  r  r4   rU  rX  r  r  r  r  r^  r\   rR   r<   r`  r`  o  sP    69p [[!- !-F [[%> %>N<3rR   r`  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  r-  c                 L    [         R                  R                  S5      U l        g )Nl   F )r7   rG   r   r3   )r  s    r<   setup_method TestPermutationTest.setup_method  s    99(()<=rR   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  rV   s      r<   r  :TestPermutationTest.test_permutation_test_iv.<locals>.stat"  s    ??A640:::rR   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  r0   r1   r2   )r4   r5   r6   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rF   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 )Nr.   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  rf   r'  r  r  r7   r8   )rN   rW   r"   r  r   s       r<   r   1TestPermutationTest.test_batch.<locals>.statistic`  s[    ffks1vJ#&z93G3G#HI "771(2771+@@@rR   r   r   T)r'   r  r   r   )r+   rF   r  r   r   r   )r3   rG   r  r  r
   r   r   r   )
r  r  rF   rN   rW   r  rO   rP   r  r   s
            @r<   r  TestPermutationTest.test_batchV  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[[$++.rR   zpermutation_type, exact_sizer  r   r   )r  r  r  r8  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-
  $ rk   r   rV   s      r<   r   8TestPermutationTest.test_permutations.<locals>.statistic      771(2771+@@@rR   T)r  r   r   )r'   rF   )r3   rG   r
   r   r   rL  r|   )	r  r  
exact_sizerF   rN   rW   r   r  r`   s	            r<   test_permutations%TestPermutationTest.test_permutations  s     HHOOAHHOOA	A %5"$$$aVY KA2>q/KEIKS**//3$$aVY?$?S**//<rR   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-
  $ rk   r   rV   s      r<   r   NTestPermutationTest.test_randomized_test_against_exact_both.<locals>.statistic  r  rR   Tr  rE   r   r  r+   r   r3   r'   rD  r   )r   binomr
   r   r   r   r7   infr   r   r   r  r   r3   r}  nypermutationsrN   rW   r   r   r  r`   rP   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;rR   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$ rk   r   rV   s      r<   r   QTestPermutationTest.test_randomized_test_against_exact_samples.<locals>.statistic  s    7715t,,rR   Tr  rE   r  r'   rD  r   )	r
   r   r   r   r7   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;rR   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rN   rW   s    r<   r  TTestPermutationTest.test_randomized_test_against_exact_pairings.<locals>.statistic1d  s    >>!Q'**rR   Tr  rE   r  r'   rD  r   )r3   r   	factorialr
   r   r   r   rg  r   r7   r  r   r   r   )r  r   r3   r}  r  r  rN   r   r  r   r  r`   rP   rW   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;rR   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{   rx   r   )r|   rz   r{   exact)r   r  c                 D   > [         R                  " XSTS9R                  $ r  )r
   ks_2sampr   rN   rW   r   s     r<   r  >TestPermutationTest.test_against_ks_2samp.<locals>.statistic1d  s!    >>!W.9;;D9ErR   r   r'   r   r3   r   )r3   r8  r
   r  r   r7   r  r   r   r   r   )r  r   rN   rW   r   r  r`   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$))DrR   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  rx   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      <<%///rR   r  r   )r3   r8  r
   r  r   r7   r  r   r   r   r   )	r  r   rN   rW   alternative_correspondencealternative_scipyr   r  r`   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$))DrR   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   rx   r   r   r|   rz   rF   ru  r   rC  c                 @    [         R                  " XUS9R                  $ rk   )r
   mannwhitneyur   rV   s      r<   r   @TestPermutationTest.test_against_mannwhitneyu.<locals>.statistic!  s    %%a6@@@rR   T)r   r'   r   r"   r3   r   )r
   uniformr   r3   r  r   r7   r  r   r   r   r   )r  r   rN   rW   r   r   r`   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$))DrR   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{   rF   rx   r   )r|   rz   r{   rF   r  r,   c                 @    [         R                  " XSS9R                  $ N
asymptoticr,   )r
   cramervonmises_2sampr   r  s     r<   r  9TestPermutationTest.test_against_cvm.<locals>.statistic1d2  s!    --a5ACCL9MrR   r   r  r   )r
   r   r   r3   r  r   r7   r  r   r   r   r   )r  rN   rW   r   r  r`   s         r<   test_against_cvm$TestPermutationTest.test_against_cvm+  s    JJNNNBJJNNqNI--a7C	M
 v{+4$((D 	x'9'9		J

HOO$))DrR   r"   )rd   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>.statistic1dO  s    ==$'111rR   c                  <    [         R                  " U 6 R                  $ r[   )r
   r  r   r  s    r<   pvalue1dFTestPermutationTest.test_vectorized_nsamp_ptype_both.<locals>.pvalue1dR  s    ==$'...rR   )r   r   r   )r   r   r   r  r!   Fr   r  r   r"   r   r  r3   r'   r   r   gQ?r   r   )r7   rG   r   r   rg  rp   r3   r   r  r   r   r   r   )r  r"   r3   rN   rW   rl   r   r  r  r   r   x2rB  z2expected_statisticexpected_pvaluer  r`   rP   s                      r<    test_vectorized_nsamp_ptype_both4TestPermutationTest.test_vectorized_nsamp_ptype_both=  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;rR   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   r8  r   r   r  ru  c                 @    [         R                  " U SS9R                  $ Nr   r  r
   wilcoxonr   )rl   s    r<   statistic_1samp_1dETestPermutationTest.test_against_wilcoxon.<locals>.statistic_1samp_1dv  s    >>!8BBBrR   c                 @    [         R                  " XSS9R                  $ r  r  r  s     r<   statistic_2samp_1dETestPermutationTest.test_against_wilcoxon.<locals>.statistic_2samp_1dz  s    >>!F;EEErR   c                 .   > [         R                  " XTS9$ )Nr  )r
   r  r  s     r<   test_1d:TestPermutationTest.test_against_wilcoxon.<locals>.test_1d}  s    >>!K@@rR   r   r!   Fr  )r   r"   r   r  r3   r'   r   r  )r
   r  r   r3   r   rg  r7   r  r   r   r   r   r   )r  r   rN   rW   r  r  r  rg  r   r*  r+  r  rO   rP   s    `            r<   test_against_wilcoxon)TestPermutationTest.test_against_wilcoxonm  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ArR   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   r.   r,  rd   c                 2    [         R                  " U S:  US9$ )Nr   r!   r7   r   r  s     r<   r   =TestPermutationTest.test_against_binomtest.<locals>.statistic  s    66!a%d++rR   rN  r  Tr  )r   r  r'   r3   r   r   r   )
r3   r  r
   r   r   r7   r  r   r   r   )	r  r   rN   r   krg   rY  r   r`   s	            r<   test_against_binomtest*TestPermutationTest.test_against_binomtest  s     HHa,q&	
	, A,Ca??1D$$aT96?13TXX1<> 	

HOO$))DrR   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 )	Nr8  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HrR   r  )r  r'   r3   r   )r3   r8  r
   r  r   r7   r  r   r   r   r   )r  rN   r   r  r`   rW   s        @r<   test_against_kendalltau+TestPermutationTest.test_against_kendalltau  s    HHOOO#Q''##Aq9	I t[:+-66txxA 	x'9'9		J

HOO$))DrR   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-..rR   l   	(yM4 r4  g333333?g      ?r   r  )r  r'   r   r3   r  )r7   rG   r   astypefloatr
   contingencycrosstabr   r  fisher_exactr   r   )	r  r   r   r3   rN   tabr`   rP   rW   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,rR   )r9  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rR   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?@rR   r"   Fr   r  r  r'   ry   r   r   r   )r3   rG   r
   rankdatar   rg  r7   broadcast_arraysr   r  r   r   r   r   )r  r"   rN   rW   rl   r   r  r  r   r   r  r  r  r`   rP   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;rR   r   )r    r   g      @ro  g?g&_?g      @gd~$I"@glu?)rN   rW   expected_lessexpected_2sidedexpected_Pr_gte_S_meanr  expected_avgexpected_std)o   k   rE   r   r>  j   m   l   )	r,  r/  r-  b   i   r?  n   r1  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.

rN   rW   r  r&  r'  r(  r)  r*  c                 B    [         R                  " X5      R                  $ r[   r  r  s     r<   r  7TestPermutationTest.test_with_ties.<locals>.statistic1d0  r  rR   z$Ties preclude use of exact statisticr   )r'   r   r  Nr   g|=r   gư>)r7   testingr   r$  UserWarningr   r  r   r   r   r   rL  r8   r   rf   r   r   )r  r3  rN   rW   r  r&  r'  r(  r)  r*  r  r(  r`   rP   Sr8   rg   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>.statistic1db  s    ??1a(222rR   r  )r  r'   r   r   gvIh%<=r   N)r   r7   r  r   r   r   r   )r  r   r  rN   r  r  r`   rW   s          @r<   test_against_spearmanr_in_R/TestPermutationTest.test_against_spearmanr_in_RH  s_    (10/	3 t[:+-66{L 	'9		J

O%@rR   r+   )rd   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   )r4   r5   r6   rr   r   _batch_generator)r  r+   s     r<   test_batch_generator_iv+TestPermutationTest.test_batch_generator_ivk  s3    ]]:-HI--i?@ JIIs   #A
Ar   rA   )r   r   rx   r  r4  ziterable, batch, expectedc                 P    [        [        R                  " X5      5      nXC:X  d   eg r[   )rr   r   rD  )r  iterabler+   r   gots        r<   test_batch_generator(TestPermutationTest.test_batch_generatort  s#     ;//@ArR   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   r8  r  c                 4    [         R                  " X5      S   $ r  r  r  s     r<   r   FTestPermutationTest.test_finite_precision_statistic.<locals>.statistic  s    >>!'**rR   Fr  )r   r  r   r-  gUUUUUU?)r
   r   r   r   rL  r7   r   rf   )	r  rN   rW   r   r`   rr   null	correct_ps	            r<   rO  3TestPermutationTest.test_finite_precision_statisticz  s    
 	+ $$aVY56@B--S5J5J4t5y011CI=	)c)))))rR   r2   N)-rQ  rR  rS  rT  r   r  r  r4   rU  rW  r7   rG   rH   r   r  r   r  r  r  r  rX  r  r  r  r  r  r  rV  r  r   r  r  r  r$  
tie_case_1
tie_case_2r;  rA  rE  r=  batch_generator_casesrJ  r\  rO  r^  r\   rR   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* *rR   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   rd   )r7   r   intcumsumsetr   _all_partitions_concatenatedsplitaddr9   	frozensetprodr=  rf   r   r  r   r   )rg   ncall_partitionsr  partition_concatenatedpartitioningr]   r   s           r<    test_all_partitions_concatenatedrc    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: r.   r,  c                 @   > [         R                  R                  U TS9$ )Nr   )r
   r   r   rJ  s    r<   r   &test_parameter_vectorized.<locals>.rvs  s    zz~~4c~::rR   r?   )r   r3   r-   r  )r   r3   r  )r   r   re  r'   rE   c                    > U R                   S:  d  [        R                  " U T5      (       d   e[        R                  " XS9$ r  )r  r7   r?  r8   )rN   r"   r   s     r<   r   ,test_parameter_vectorized.<locals>.statistic  s3    vvzR^^Av6666wwq$$rR   )r   r   Tc                 R    U R                   S:X  d   e[        R                  " U 5      $ r  )r  r7   r8   r  s    r<   r   rj    s     vv{{wwqzrR   Fr\   )r7   rG   r   rF  r
   r   )	rd  r   fun_optionscommon_optionsr  optionsr   r3   r   s	          @@r<   test_parameter_vectorizedro    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9rR   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   r3   )r7   rG   r   r4   r5   r6   r
   MonteCarloMethod)r  r;   r3   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)rQ  rR  rS  rT  rt  r^  r\   rR   r<   rq  rq    s    <rR   rq  )Br4   numpyr7   numpy.testingr   r   r   scipy._lib._utilr   scipy._lib._array_apir   scipy._lib._array_api_no_0dr   r	   scipyr
   r   scipy.optimizer   scipy.statsr   r   r   r   scipy.stats._resamplingr   r=   rU  rW  rQ   rh   rv   rX  r]  r   tests_Ritemsr   r   r   tests_against_itself_1sampr   tests_against_itself_2sampr   r  r  r  r$  r)  r/  r5  rC  rL  r[  r_  ri  rw  filterwarningsr  r  r  r`  r  rc  ro  rq  r\   rR   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.7 t12 (,,0%)+ 
 +399;=#= #L (+,/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=*u8 u8pe3 e3Ps	* s	*x0* NP:P:B< <rR   