
    doih                       S SK r S SKrS SKrS SKJrJr  S SKJr  S SK	J
r
JrJrJrJrJr  S SKJrJr  S SKJr  S SKJrJr  S SK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#  \" \5       " S S5      5       r$\" \5       " S S5      5       r%\" \!5       " S S5      5       r&\" \ 5       " S S5      5       r'S r(\RR                  RU                  S/ SQ5      S 5       r+ " S S5      r,g)    N)assert_allcloseassert_equal)rng_integers)is_numpymake_xp_test_casexp_default_dtypexp_sizearray_namespace_xp_copy_to_numpy)xp_assert_closexp_assert_equal)array_api_extra)statsspecial)skip_xp_backends)root)	bootstrapmonte_carlo_testpermutation_testpowerc                   	   \ rS rSr\" SSS9S 5       rS r\R                  R                  S/ SQ5      \R                  R                  S	/ S
Q5      S 5       5       r
\R                  R                  S/ SQ5      S 5       r\R                  R                  S/ SQ5      \R                  R                  S	/ S
Q5      \R                  R                  SSS/5      S 5       5       5       r\R                  R                  \R                  R                  S5      \R                  R                  S/ SQ5      S 5       5       5       r/ SQr\R                  R                  S\5      S 5       rS rS rSSSS.r\R                  R                  \R                  R                  S\R+                  5       5      S 5       5       rSSS.r\R                  R                  \R                  R                  S\R+                  5       5      S 5       5       r\R                  R                  S/ SQ5      \R                  R                  S	S S!/5      \R                  R                  S"S#S$/5      S% 5       5       5       r\R                  R                  S&5      \R                  R                  S/ SQ5      \R                  R                  S	S S!/5      S' 5       5       5       r\R                  R                  S/ SQ5      S( 5       r\R                  R                  S/ S)Q5      S* 5       rS+ r\R                  R                  S,S S-/5      S. 5       r\R                  R                  S/5      \R                  R                  S/ SQ5      S0 5       5       rS1 r \R                  R	                  S2S3S9\R                  R                  S4S5S6/5      S7 5       5       r!\R                  R                  S8/ S9Q5      \R                  R                  S	/ S
Q5      S: 5       5       r"\R                  R                  S	/ S
Q5      S; 5       r#\R                  R                  \R                  R                  S/ SQ5      S< 5       5       r$\R                  R                  \R                  RK                  S=5      S> 5       5       r&\R                  R	                  SS?/S@9SA 5       r'SBr(gC)DTestBootstrap   numpyzNumPy does not raisereasonc                    ^ STR                    3n[        R                  " [        US9   [	        TR                  / SQ5      4U4S j5        S S S 5        g ! , (       d  f       g = f)NzWhen using array library match         c                 &   > TR                  U 5      $ Nmeanxxps    ]/var/www/html/land-ocr/venv/lib/python3.13/site-packages/scipy/stats/tests/test_resampling.py<lambda>7TestBootstrap.test_bootstrap_iv_other.<locals>.<lambda>   s    "''!*    )__name__pytestraises	TypeErrorr   asarray)selfr*   messages    ` r+   test_bootstrap_iv_other%TestBootstrap.test_bootstrap_iv_other   sD    -bkk];]]9G4rzz),.0DE 544s   #A
A$c                    UR                  / SQ5      nSn[        R                  " [        US9   [	        [        5       UR                  5        S S S 5        Sn[        R                  " [        US9   [	        X!R                  S/5      4UR                  5        S S S 5        Sn[        R                  " [        US9   [	        X!R                  / SQ5      4UR                  SS	9  S S S 5        S
n[        R                  " [        US9   [	        X!R                  SS9  S S S 5        Sn[        R                  " [        US9   [	        U4UR                  SS9  S S S 5        Sn[        R                  " [        US9   [	        U4UR                  SS9  S S S 5        Sn[        R                  " [        US9   [	        U4UR                  SS9  S S S 5        Sn[        R                  " [        US9   [	        U4UR                  SS9  S S S 5        Sn[        R                  " [        US9   [	        U4UR                  SS9  S S S 5        Sn[        R                  " [        US9   [	        U4UR                  SS9  S S S 5        Sn[        R                  " [        US9   [	        U4UR                  SS9  S S S 5        Sn[        R                  " [        US9   [	        U4UR                  SS9  S S S 5        Sn[        R                  " [        US9   [	        U4UR                  SS9  S S S 5        S n[        R                  " [        US9   [	        U4UR                  S!S"9  S S S 5        g ! , (       d  f       GN"= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GNb= 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Nr= f! , (       d  f       GNJ= f! , (       d  f       GN"= f! , (       d  f       g = f)#Nr    z(`data` must contain at least one sample.r   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)r3   r0   r1   
ValueErrorr   tupler'   r2   )r4   r*   sampler5   s       r+   test_bootstrap_ivTestBootstrap.test_bootstrap_iv   s   I&<]]:W5egrww' 6 S]]:W5vzz1#/9 6 S]]:W5vzz,78"''$O 6 E]]:W5fgg&9 6 /]]:W5vis3 6 6]]:W5vi4@ 6 B]]:W5vie< 6 B]]:W5vif= 6 @]]:W5vi6 6 @]]:W5vi7 6 (]]:W5vi8 6 T]]:W5vi2> 6 J]]:W5via8 6 A]]9G4vii8 54i 65 65 65 65 65 65 65 65 65 65 65 65 65 54s   M)1(M;<(NN?N19O3O-O''O9!PPP/Q	Q)
M8;
N

N
N.1
O 
O
O$'
O69
P
P
P,/
P>
Q
Q!rN   )basic
percentileBCarC   r   r!   r"   c           
      Z   [         R                  R                  S5      nUR                  SSS5      n[	        UR                  U5      4UR                  S USUSS9n[         R                  R                  S5      n[	        UR                  U5      4U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   rO         d   )rL   rN   random_staterC   rH   )rL   rN   rC   rH   rb   )nprandomRandomStaterandr   r3   r'   r   confidence_intervallowhighstandard_error)r4   rN   rC   r*   rT   r)   res1res2s           r+   test_bootstrap_batch"TestBootstrap.test_bootstrap_batchX   s     ii##A&HHRR "**Q-)277$v&'dEii##A&"**Q-)277"V"#G 	0044d6N6N6R6RS0055t7O7O7T7TU++T-@-@Ar.   c                 r  ^^	^
^ [         R                  R                  S5      nSnTR                  UR	                  U5      5      m
TR                  UR	                  U5      5      mSU4S jjm	SU	U
U4S jjnTR                  T
R                  S   5      n[        U4USS9n[        T
T4T	SSS9n[        UR                  R                  UR                  R                  5        [        UR                  R                  UR                  R                  5        [        UR                  UR                  5        g )	Nr   ra   c                 .   > TR                  X-
  S-  US9$ )Nr"   rB   r&   r)   yrC   r*   s      r+   my_statistic9TestBootstrap.test_bootstrap_paired.<locals>.my_statisticr   s    77AC!8$7//r.   c                 ,   > TU    nTU    nT" X#5      nU$ r%    )irC   abresrs   r)   rr   s        r+   my_paired_statistic@TestBootstrap.test_bootstrap_paired.<locals>.my_paired_statisticu   s$    !A!Aq$CJr.   rS   T)r;   rT   )rc   rd   re   r3   rf   arangeshaper   r   rg   rh   ri   rj   )r4   rN   r*   rT   nr{   rw   rk   rl   rs   r)   rr   s     `      @@@r+   test_bootstrap_paired#TestBootstrap.test_bootstrap_pairedj   s     ii##A&JJsxx{#JJsxx{#	0	 	 IIaggaj!!2:!QdB0044d6N6N6R6RS0055t7O7O7T7TU++T-@-@Ar.   r;   TFc           
      p  ^ [         R                  R                  S5      nSU4S jjnSnXr   nUR                  U5      n	UR                  U5      n
UR                  U5      nTR	                  U	5      TR	                  U
5      TR	                  U5      pn	[        XU4XcUSSSS9nUR                  R                  UR                  R                  S-   :X  d   e/ SQnXU'   [        U5      nTR                  TR                  X5      U5      n	TR                  TR                  X5      U5      n
TR                  TR                  X5      U5      n[        XU4XcUSUSS9n[        U5      nUR                  U5        TR                  UR                  R                  U5      nTR                  UR                  R                   U5      nTR                  UR                  U5      n[#        UR                  R                  U5        [#        UR                  R                   U5        [#        UR                  U5        g )	Nr   c                 b   > TR                  XS9TR                  XS9-   TR                  X#S9-   $ NrB   r&   )r)   rr   zrC   r*   s       r+   rs   =TestBootstrap.test_bootstrap_vectorized.<locals>.my_statistic   s4    7717(27717+@@27717CXXXr.   )rO   r_   r`   ra   )r;   rN   rT   rC   rH   )ra   )r!   r!   r!   r}   )rc   rd   re   rf   r3   r   bootstrap_distributionr   rj   rV   broadcast_toreshapelistpoprg   rh   ri   r   )r4   rN   rC   r;   r*   rT   rs   r   	n_samplesr)   rr   r   rk   r   rl   result_shape
ref_ci_lowref_ci_highref_ci_standard_errors       `              r+   test_bootstrap_vectorized'TestBootstrap.test_bootstrap_vectorized   s    ii##A&	Y K	HHYHHYHHY**Q-A

1a!LQC9++11&&,,v56 	7 6 !.OOBJJq2E:OOBJJq2E:OOBJJq2E:!LTs< E{__T%=%=%A%A<P
ood&>&>&C&C\R "0C0C\ R0044jA0055{C++-BCr.   z#MemoryError with BCa observed in CIc           	      d   [         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u  pxUR                  5       n	[        UR                  U5      4UR                  SXS
9n
[        S0 U
DSU0D6n[        UR                   R"                  UR                  U5      SS9  [        UR                   R$                  UR                  U5      SS9  [        U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                  UR+                  U5      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                  UR+                  SU-
  5      5      SS9  g )Nl   )ICbX     r"     )locscalesizerb   ffffff?r!   )dfr   r   )
confidence)data	statisticrH   rN   rT   rE   gMb@?rtolga2U0*3?atolr   rH   rP   lessrE   alternativegreaterrv   )rc   rd   default_rngr   normrvstlenr'   semintervalstddictr3   r   r   rg   rh   ri   rj   updateppf)r4   rN   r*   rT   r   alphadistref_lowref_highref_seconfigrz   s               r+   test_bootstrap_against_theory+TestBootstrap.test_bootstrap_against_theory   s   
 ii##$78zz~~!14c~Jww#d)A+2774=		$P MMUM;BJJt,."''t#.9&959//33RZZ5HtT//44bjj6JQUV**BJJv,>TJdq3?@M&M5fM//44

488E?3$	@ 	dq3?@P&P5iP//33

488AeG#45D	Br.   ))rZ   gQ7@gHzS@)r[   g\(<@g=
ףpU@)r\   gHz'@@gQV@zmethod, ref_low, ref_highc                    UR                  / SQ5      n[        U4UR                  SUSS9n[        UR                  R
                  UR                  U5      SS9  [        UR                  R                  UR                  U5      SS9  g )N)rO   r`         )@r   g+@   r         "   2   Q   Y   y         i@B r   )rH   rN   rT   g{Gzt?r   )r3   r   r'   r   rg   rh   ri   )r4   rN   r   r   r*   r)   rz   s          r+   test_bootstrap_against_R&TestBootstrap.test_bootstrap_against_R   sr    " JJ ; <bgg76qQ//33RZZ5HuU//44bjj6JQVWr.   c                    UR                  / SQ5      nUR                  / SQ5      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UR                  UR                  UR                  5      5      n	UR                  UR                  UR                  5      5      n
UR                  UR                  UR                  5      5      nS
nX-
  [        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-
  $ r   )r   skew)r)   rr   rC   s1s2s        r+   r   ?TestBootstrap.test_multisample_BCa_against_R.<locals>.statistic   s%    A)BA)B7Nr.   l   tgy4rZ   ra   )rN   rL   rT   r[   bcag1*g333333ÿg333333?Q?)
r3   rc   rd   r   r   r   r'   stackrg   abs)r4   r*   r)   rr   r   rT   	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_R,TestBootstrap.test_multisample_BCa_against_R   s^    JJ = >JJ H I
	 ii##$67OOQFIg*-38	ooqfi,/S://1&)E(+6 GGBHHY%B%BCD	ggbhh{'F'FGH''"((7#>#>?@ 	  +S^;
#/Y?'Y7 E!!!d"""8}t###r.   c           	      &  ^ TR                  / SQ5      nTR                  / SQ5      nSU4S jjnX2/n[        R                  " XT5      nSnSnUR                  n	Sn
[        R
                  " XTXxXT5      u    p[        UTR                  S5      5        g )	N)	g      $@g      ;@g      ?@g      D@g      G@g      I@g      J@g      Z@g     @b@)g      0@g      7@g      C@g     W@g     X@g     a@g     h@c                 B   > TR                  XS9TR                  XS9-
  $ r   r&   )r   rr   rC   r*   s      r+   r   HTestBootstrap.test_BCa_acceleration_against_reference.<locals>.statistic.  $    7717(27717+@@@r.   r~   r   ra   ge{?r   )r3   r   r   r   _resampling_bca_intervalr   )r4   r*   rr   r   r   r   rz   rC   r   theta_hat_brL   _a_hats    `           r+   'test_BCa_acceleration_against_reference5TestBootstrap.test_BCa_acceleration_against_reference$  s     JJFGJJ<=	A vood.00!//0;BH1rzz*>?@r.   i  i  zmethod, expectedc                    [         R                  R                  S5      nSnSnSn[        R                  " SSS9n[        UR                  5       5      n	Sn
UR                  X4US	9n[        UR                  U5      4UR                  UUS
USUS9nUR                  nUR                  US   U	:  XS   :  -  5      nX:X  d   e[        R                  " [        U5      U
U5      R                  nUS:  d   eg )Ni8 ra     ?r   r!   r   r   i  r   rb   r   r~   )r   rE   rH   rL   rN   rC   rT   r   皙?)rc   rd   r   r   r   floatr'   r   r   r3   rg   count_nonzero	binomtestintpvalue)r4   rN   expectedr*   rT   r   rH   rE   r   	stat_truen_replicationsr   rz   cici_contains_truer   s                   r+   #test_bootstrap_against_itself_1samp1TestBootstrap.test_bootstrap_against_itself_1samp@  s
    ii##G, zzaq)$))+&	 xxn0sxCD)+"$'')9$/ %! $$ ++RUY->9RSuCT,UV+++ %5!6!13396 	||r.   i|  iz  )rZ   r[   c                   ^ [         R                  R                  S5      nSnSnSnSnSU4S jjn	[        R                  " SSS	9n
[        R                  " S
SS	9n[        U
R                  5       UR                  5       -
  5      nSnU
R                  X4US9nUR                  X4US9n[        TR                  U5      TR                  U5      4U	UUSUSUS9nUR                  nTR                  US   U:  UUS   :  -  5      nUU:X  d   e[        R                  " [        U5      UU5      R                  nUS
:  d   eg )Nr   ra   x   r   r   r~   c                 H   > TR                  XS9nTR                  XS9nX4-
  $ r   r&   )data1data2rC   mean1mean2r*   s        r+   my_statBTestBootstrap.test_bootstrap_against_itself_2samp.<locals>.my_stat{  s+    GGEG-EGGEG-E= r.   r!   r   r     r   r   )r   rE   rH   rL   rN   rC   rb   r}   )rc   rd   re   r   r   r   r'   r   r   r3   rg   r   r   r   r   )r4   rN   r   r*   rT   n1n2rH   rE   r  dist1dist2r   r   r  r  rz   r   r   r   s      `                r+   #test_bootstrap_against_itself_2samp1TestBootstrap.test_bootstrap_against_itself_2sampk  sP    ii##A&	! 

q*

s!,%**,56	 		3#	F		3#	FE*BJJu,=>"))9$/ %%(* $$ ++RUY->9rRSuCT,UV8+++ %5!6!13396 	||r.   r   r!   dtypefloat32float64c           
      D  ^^ SS.U4S jjnU4S jn[         R                  R                  S5      nUR                  SS5      R	                  T5      nUR                  SS5      R	                  T5      n	UR                  SS5      R	                  T5      n
[        TR                  U5      TR                  U	5      TR                  U
5      4USUSUSS	9n[        XU
4US
USUSS	9nTS:X  a  SOSn[        UR                  R                  TR                  UR                  R                  5      US9  [        UR                  R                  TR                  UR                  R                  5      US9  [        UR                  TR                  UR                  5      US9  g )Nr   rB   c                 2   >^  [        U U4S jU 5       5      $ )Nc              3   D   >#    U  H  nTR                  UTS 9v   M     g7f)rB   Nr&   ).0rW   rC   r*   s     r+   	<genexpr>STestBootstrap.test_bootstrap_vectorized_3samp.<locals>.statistic.<locals>.<genexpr>  s     EfrwwvDw1    sum)rC   r   r*   s   ` r+   r   @TestBootstrap.test_bootstrap_vectorized_3samp.<locals>.statistic  s    EEEEr.   c                     > U  H  nUR                   S:X  a  M   e   [        R                  " [        S U  5       5      TS9$ )Nr!   c              3   @   #    U  H  oR                  5       v   M     g 7fr%   r&   )r  rW   s     r+   r  VTestBootstrap.test_bootstrap_vectorized_3samp.<locals>.statistic_1d.<locals>.<genexpr>  s     !CdF++--ds   r  )ndimrc   r3   r  )r   rW   r  s     r+   statistic_1dCTestBootstrap.test_bootstrap_vectorized_3samp.<locals>.statistic_1d  s;    {{a''' ::c!Cd!CC5QQr.   r:   r   Tra   )r?   rC   rH   rN   rT   Fr  ư>+=r   )rc   rd   re   rf   astyper   r3   r   rg   rh   ri   rj   )r4   rN   rC   r  r*   r   r   rT   r)   rr   r   rk   rl   r   s      ``         r+   test_bootstrap_vectorized_3samp-TestBootstrap.test_bootstrap_vectorized_3samp  sk    #$ 	F 	F	R ii##A&HHQN!!%(HHQN!!%(HHQN!!%("**Q-A

1F"t$C &A/ !LU"FK 	)tu0044

4#;#;#?#?@t	M0055

4#;#;#@#@A	N++RZZ8K8K-LSWXr.   z'Failure is not concerning; see gh-14107c                 H  ^ SU4S jjnS n[         R                  R                  S5      nUR                  S5      n[        TR	                  U5      4USUSS USS9n[        U4US	USS
USS9n	[        UR                  R                  TR	                  U	R                  R                  5      5        [        UR                  R                  TR	                  U	R                  R                  5      5        [        UR                  TR	                  U	R                  5      5        g )Nr   c                 "   > TR                  XS9$ r   r&   r)   rC   r*   s     r+   r   @TestBootstrap.test_bootstrap_vectorized_1samp.<locals>.statistic  s    7717((r.   c                 D    U R                   S:X  d   eU R                  SS9$ Nr!   r   rB   )r  r'   r)   s    r+   r   CTestBootstrap.test_bootstrap_vectorized_1samp.<locals>.statistic_1d  s"    66Q;;66q6>!r.   l   2 )r"   r#   Tra   )r?   rC   rH   rL   rN   rT   FrO   r   )
rc   rd   r   r   r3   r   rg   rh   ri   rj   )
r4   rN   rC   r*   r   r   rT   r)   rk   rl   s
      `      r+   test_bootstrap_vectorized_1samp-TestBootstrap.test_bootstrap_vectorized_1samp  s    	)	"
 ii##J/JJv"**Q-)9D%(VL!|D%(6qJ0044

4#;#;#?#?@	B0055

4#;#;#@#@A	C++RZZ8K8K-LMr.   c                 R   UR                  SS5      nUS:X  a  [        R                  " SS9   Sn[        R                  " [
        R                  US9   [        U/UR                  US9n[        UR                  R                  UR                  UR                  5      5        [        UR                  R                  UR                  UR                  5      5        S S S 5        S S S 5        Ot[        U/UR                  US9n[        UR                  R                  UR                  S5      5        [        UR                  R                  UR                  S5      5        [        WR                  UR                  S	5      5        g ! , (       d  f       N= f! , (       d  f       NE= f)
N)#   g     @r\   ignore)invalidz0The BCa confidence interval cannot be calculatedr   rM           )fullrc   errstater0   warnsr   DegenerateDataWarningr   r'   r   rg   rh   r3   nanri   rj   )r4   rN   r*   r   msgrz   s         r+   test_bootstrap_degenerate'TestBootstrap.test_bootstrap_degenerate  s%   wwuf%U?X.H\\%"="=SI#THbggfEC#C$;$;$?$?BFFAST#C$;$;$@$@"**RVVBTU J /. THbggf=CC3377F9KLC3388"**V:LM**BJJrN; JI /.s$   &FB	FF
F	F
F&)r\   rZ   r[   c           	         [         R                  R                  S5      n[        R                  " SSS9nUR                  SUS9n[        UR                  U5      4[        R                  US[         R                  R                  S5      S9n[        U4[        R                  US[         R                  R                  S5      S	S
9n[        UR                  R                  UR                  UR                  R                  5      5        [        UR                  R                  UR                  UR                  R                  5      5        [        UR                  UR                  UR                  5      5        g )Nl   E<1

 r"   r:   r   ra   r   i[%  rN   rH   rT   F)rN   rH   rT   r?   )rc   rd   r   r   r   r   r   r3   r   r   rg   rh   ri   rj   )r4   rN   r*   rT   r   r   rz   refs           r+   test_bootstrap_gh15678$TestBootstrap.test_bootstrap_gh15678  s    ii##O4zzaq)xxSsx3D)+UZZTWII11$79 FII11$7EK//33

3#:#:#>#>?	A//44

3#:#:#?#?@	B**BJJs7I7I,JKr.   c           	         [         R                  R                  S5      n[        R                  " SSS9nUR                  SUS9n[         R                  " U5      nUR                  U5      n[        U4UR                  SS[         R                  R                  S5      S	9n[        UR                  R                  UR                  U5      5        [        U* 4U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   ra   r   r\   if  r?  )rc   rd   r   r   r   r   minr3   r   r   rg   rh   maxr   ri   )r4   r*   rT   r   r   true_minrz   rl   s           r+   test_bootstrap_min TestBootstrap.test_bootstrap_min  s    ii##$45zzaq)xxSsx366$<zz$3II11$79//33RZZ5IJ4%266%SYY2248:00444d6N6N6S6ST00555t7O7O7S7STr.   additional_resamplesr  c           
      ~   [         R                  R                  S5      nUR                  SS9nSnUnXQ-   n[         R                  R                  S5      n[        R                  " UR                  U5      4UR                  XSSSS9n[        R                  " UR                  U5      4UR                  XcS	S
US9n[         R                  R                  S5      n[        R                  " UR                  U5      4UR                  XsS	S
S9n	[        UR                  R                  UR                  U	R                  R                  5      SS9  [        UR                  R                  UR                  U	R                  R                  5      SS9  [        UR                  UR                  U	R                  5      SS9  g )Nl    ]4M ra   r   r  l   mdpi4 r   r[   )rH   rT   rE   rN   r   r\   )rH   rT   rE   rN   rP   r#  r   )rc   rd   r   r   r   r3   r'   r   rg   rh   ri   rj   )
r4   rI  r*   rT   r)   r  r	  n3rz   r@  s
             r+   test_re_bootstrapTestBootstrap.test_re_bootstrap  sn    ii##$45JJCJ !&ii##$67oorzz!}.R/3LJoorzz!}.R/3E/24 ii##$67oorzz!}.R/3EC 	//33

3#:#:#>#>?"	$ 	//44

3#:#:#?#?@"	$ 	**BJJs7I7I,JQVWr.   zSensitive to machine precisionc                 &   [         R                  R                  S5      n[        R                  " SSS9nUR                  UR                  SUS95      4n[        XRR                  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  UR                  UR                  R                  5      (       a  UR                  R                  S:  d   eUR                  U	R                  R                  5      (       a  U	R                  R                  S:  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   ra   r   r~   )r   r   rT   rC   rE   r   r   r   r   r   r   r   r#  r   z`alternative` must be one ofr   r   z	ekki-ekkirv   )rc   rd   r   r   r   r3   r   r   r   r   r   r   rg   ri   rh   isinfr0   r1   rU   )
r4   rN   r*   rT   r   r   r   r   lgs
             r+   test_bootstrap_alternative(TestBootstrap.test_bootstrap_alternative#  s    ii##$78zzaq)

488#S8ABD466sDOO;f;s;dq1=>OOPfPtPOOSfStS--22A4I4I4N4N"	$--1113H3H3L3L"	$xx--1122q7L7L7P7PST7TTTxx--22338M8M8R8RUV8VVV]]:-KLOO>f>+> MLLs   H
Hc                    Sn[         R                  R                  S5      nUR                  US9n[        [        R
                  " UR                  U5      US95      n[        US   5       H<  nUSUS S 24   n[         R                  " XFSS9n[        XqR                  U5      5        M>     [        [        R
                  " UR                  U5      SUS	95      n	[        UR                  U	S
S9U5        g )Nr#   r:   r         Zt rK  r*   r~   .rB   r"   )rL   r*   )rc   rd   r   nextr   _jackknife_resampler3   rangedeleter   r   concat)
r4   r*   r   rT   r)   rr   rw   slcr   y2s
             r+   test_jackknife_resample%TestBootstrap.test_jackknife_resample;  s    ii##J/JJEJ"00A2FGuRy!A CAI,CyyB/HCH!56 " +11"**Q-qRPQ		"2	.2r.   array_api_strictzTest uses ... + fancy indexingrng_namere   r   c           
         [        [        R                  U5      nU" S5      nU" S5      nSnSn[        R                  R                  S5      nUR	                  UR                  U5      5      n	[
        R                  " XXBS9n
[        U5       HB  nU
SUS S 24   nUR	                  [        USUS   US   5      5      nU	SU4   n[        X5        MD     g )	Nl   1V rO   rV  rX  )rT   r*   .r   r~   )
getattrrc   rd   r   r3   r   _bootstrap_resampler]  r   r   )r4   re  r*   rng_genrng1rng2rH   r   rT   r)   rr   rw   r`  jsr   s                  r+   test_bootstrap_resample%TestBootstrap.test_bootstrap_resampleL  s     "))X.z"z"ii##J/JJszz%()++AL{#A CAI,CLq%)U2YGHBbzHC* $r.   score)r         ?r!   c                 (   Sn[         R                  R                  S5      nUR                  U5      n[        U5      n[        R
                  " UR                  XgS9UR                  XS9SUS9nS n	U	" XaSS9S-  n
[        XR                  XS9S	S
9  g )N)rO         l   Q,? r  r~   )rC   r*   c                 N    [         R                  " [        R                  X U5      $ r%   )rc   apply_along_axisr   percentileofscore)rx   ro  rC   s      r+   vectorized_pos>TestBootstrap.test_percentile_of_score.<locals>.vectorized_posp  s    &&u'>'>OOr.   rB   ra   V瞯<r   )rc   rd   r   r   r   _percentile_of_scorer3   r   )r4   ro  rC   r*   r   rT   r)   r  prw  p2s              r+   test_percentile_of_score&TestBootstrap.test_percentile_of_scoree  s     ii##J/JJu $,,RZZZ-G-/ZZZ-K24=	P A2.s2::b:6UCr.   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
" XVXqS9nU" XVXqS9n	[        X5        g )	Nc                 .   ^  [        U 4S jU 5       5      $ )Nc              3   D   >#    U  H  oR                  T5      v   M     g 7fr%   r&   )r  rW   rC   s     r+   r  LTestBootstrap.test_vectorize_statistic.<locals>.statistic.<locals>.<genexpr>~  s     <tV{{4((tr  r  rC   r   s   ` r+   r   9TestBootstrap.test_vectorize_statistic.<locals>.statistic|  s    <t<<<r.   c                  J   > U  H  nUR                   S:X  a  M   e   T" U SS06$ )Nr!   rC   r   )r  )r   rW   r   s     r+   r   <TestBootstrap.test_vectorize_statistic.<locals>.statistic_1d  s/    {{a''' d+++r.   r   r:   r   rW  r!   rB   )r   _vectorize_statisticrc   rd   re   rf   r   )r4   rC   r   
statistic2rT   r)   rr   r   rk   rl   r   s             @r+   test_vectorize_statistic&TestBootstrap.test_vectorize_statisticw  s    
	=	, !55lC
ii##A&HHQ1HHQ1HHQ1q,!-#r.   c           
        ^ [         R                  R                  S5      nSnTR                  UR                  " USS065      nU4S jn[        U4XaSSSUS	9nTR                  S
S/5      nTR                  UR                  R                  R                  U:  UR                  R                  R                  U:  -  SS9nTR                  US:  5      (       d   eT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!   rp  r   )ra   ra   c           	      `   > TR                  TR                  XS9TR                  XSS9/5      $ )NrB   r!   rC   
correction)r   r'   r   )r   rC   r*   s     r+   r   =TestBootstrap.test_vector_valued_statistic.<locals>.statistic  s9    88RWWTW5VVDVBD E Er.   r~   '     )rN   rC   rH   rL   rb   r!   rp  r   rB   Z   ra   r"   ra   )r"   ra   r  )rc   rd   r   r3   normalr   r   rg   rh   Tri   allr   rj   r   )	r4   rN   r*   rT   paramsrW   r   rz   countss	     `      r+   test_vector_valued_statistic*TestBootstrap.test_vector_valued_statistic  si    ii##J/CJJ@Z@A	E 	9"$(#G QH%!!3#:#:#>#>#@#@6#I%(%<%<%A%A%C%Cf%L#N'( " * vvfl####vvfm$$$$&&**00H<<<&&++11X===!!''8333))//>AAAr.   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[        X2US
S9n[        UTUS
S9n[        UR                  R                  S   UR                  R                  SS9  [        UR                  R                  S   UR                  R                  SS9  g )Nl   \Qc                     U R                  U5      nUR                  U5      nXS   -
  XS   -
  -  R                  U5      nSU-  U R                  U5      UR                  U5      -   X4-
  S-  -   -  $ )N).Nr"   )r'   var)r)   rr   rC   xmymcovs         r+   concordanceGTestBootstrap.test_vector_valued_statistic_gh17715.<locals>.concordance  sn    BB9%!m*;<BB4HCGdaeeDk 9RWN JKKr.   c                 N   > X-   nX-   n[         R                  " T" XVU5      5      $ r%   )rc   
nan_to_num)tptnfpfnrC   actualr   r  s          r+   r   ETestBootstrap.test_vector_valued_statistic_gh17715.<locals>.statistic  s'    WFwH==Vt!DEEr.   c                 >   > T" / UQU P76 [         R                  S4   $ )N.)rc   newaxis)rC   argsr   s     r+   statistic_extradimNTestBootstrap.test_vector_valued_statistic_gh17715.<locals>.statistic_extradim  s#    )d)D)"**c/::r.   )r:   r   r   r"   )r"   r!   r"   r!   )r   rW  r   r   )r   rW  r#   r   )r      r!   r   T)rT   r;   r   ry  r   )
rc   rd   r   arrayr  r   r   rg   rh   ri   )r4   rT   r  r   rz   r@  r  r   s         @@r+   $test_vector_valued_statistic_gh177152TestBootstrap.test_vector_valued_statistic_gh17715  s     ii##$67	L	F
	; 	
 xx~c$GiS>//33A6//33%	A//44Q7//445	Br.   cupy)np_only
exceptionsc                    [         R                  R                  S5      nUR                  UR                  S5      5      nUR                  UR                  S5      5      nS n[        R
                  " X44U5        [        R
                  " UR                  UR                  4USS9  Sn[        R                  " [        US9   [        R
                  " X4S S	2S
4   4U5        S S S 5        [        R
                  " X4S 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|)rO   r"   )r_   r"   c                 @    [         R                  " XUS9R                  $ r   r   	ttest_indr   r)   rr   rC   s      r+   r   .TestBootstrap.test_gh_20850.<locals>.statistic      ??1d3===r.   r!   rB   /Array shapes are incompatible for broadcasting.r   rO   r   )
rc   rd   r   r3   r   r   r  r0   r1   rU   )r4   r*   rT   r)   rr   r   r5   s          r+   test_gh_20850TestBootstrap.test_gh_20850  s   ii##J/JJszz'*+JJszz'*+	> 		*acc
IA6 D]]:W5OOQ#2#q&	NI6 6crc1Q3hK()4acc!A#ss(m,ia@ 65s    E
Erv   N))r/   
__module____qualname____firstlineno__r   r6   rX   r0   markparametrizerm   r   r   slowxfail_on_32bitr   tests_Rr   r   r   tests_against_itself_1sampitemsr   tests_against_itself_2sampr  r%  r/  r<  rA  rG  rM  rS  rb  rm  r}  r  r  filterwarningsr  r  __static_attributes__rv   r.   r+   r   r      s   g&<=F >F
99v [[X'EF[[VY/B 0 GB  [[X'EFB GB2 [[X'EF[[VY/[[Xe}5)D 6 0 G)DV [[[[ EF[[X'EFB G G B6&G [[8'BX CX,7$rA0 ,004)-"/ [[[[/7==?A#A #J ,/03"5 [[[[/7==?A,A ,\ [[X'EF[[VaV,[[Wy)&<=Y > - GY8 [[ IJ[[X'EF[[VaV,N - G KN, [[X'EF< G< [[X'EFL GL"U  [[3aY?X @X8 [[ @A[[X'EF? G B?,3" [[!!"4)I " K[[Z-)GH+ IK+, [[Wk2[[VY/D 0 3D  [[VY/$ 0$4 [[[[X'EFB G B> [[[[ 89#B : #BL [[!!$F8!DA EAr.   r   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S/5      \
R                  R                  S / S!Q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$ )Nrb   r  )r3   )r  kwdsr  rsrvs_inr*   s     r+   r,   6TestMonteCarloHypothesisTest.get_rvs.<locals>.<lambda>  s(    RZZ0V20VQU0V6; &0 &=r.   rv   )r4   r  r  r  r*   s    ````r+   get_rvs$TestMonteCarloHypothesisTest.get_rvs  s    = 	=r.   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-  -  $ )NrB   r!   r  rp  )r'   r  r   )r)   rC   mvr   r*   s        r+   r   =TestMonteCarloHypothesisTest.get_statistic.<locals>.statistic  sB    %Aq2AA!cz>!r.   rv   )r4   r*   r   s    ` r+   get_statistic*TestMonteCarloHypothesisTest.get_statistic  s    	" r.   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$ r   r&   r)  s     r+   stat@TestMonteCarloHypothesisTest.test_input_validation.<locals>.stat  s    7717((r.   r  r"   r   )r#   r   r   c                     gNr!   rv   r  s      r+   r,   DTestMonteCarloHypothesisTest.test_input_validation.<locals>.<lambda>  s    1r.   r~   rB   r@   rA   r<   r>   0`rvs` must be callable or sequence of callables.r  r  r        @c                     U $ r%   rv   r-  s    r+   r,   r        ar.   If `rvs` is a sequence...c                     U $ r%   rv   r-  s    r+   r,   r     r  r.   c                     U $ r%   rv   r-  s    r+   r,   r     s    1r.   z`statistic` must be callable.)`n_resamples` must be a positive integer.rF   rG   rI   rJ   rK   `alternative` must be in...r=   r   z!Signature inspection of statisticc                 \   > TR                  [        R                  R                  U S95      $ )NrK  )r3   r   r   r   )r   r*   s    r+   r   ?TestMonteCarloHypothesisTest.test_input_validation.<locals>.rvs<  s!    ::ejjnn$n788r.   r%   )r3   zerosr   r   r   r0   r1   rU   r   r2   r'   str
startswith)r4   r*   r   r  r5   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%   r&   r(   s    r+   non_vectorized_statisticWTestMonteCarloHypothesisTest.test_input_validation_xp.<locals>.non_vectorized_statisticD  s    771:r.   z!`statistic` must be vectorized...r  r   Fr>   )
r3   r   r   r   r   r   r0   r1   rU   r'   )r4   r*   r  r5   rW   s    `   r+   test_input_validation_xp5TestMonteCarloHypothesisTest.test_input_validation_xpC  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 rO   rK  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  r   rE  
batch_sizecounterr  )r)   rC   r  r4   r   r*   s      r+   r   :TestMonteCarloHypothesisTest.test_batch.<locals>.statisticY  sX    ffkqwwqzJ#&z93G3G#HI "%%b)!77r.   r   r  T)rW   r   rH   r?   i rY  r   rL   r!     r   r   r"   rv   )rc   rd   r   r3   standard_normalr	  r  r  r   r   r   r   r   r   r   )	r4   r*   rT   r)   r  rk   rl   res3r   s	   ``      @r+   
test_batch'TestMonteCarloHypothesisTest.test_batchR  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[[1r.   rC   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:   ra   r  64r  r  )r   r  r5  )popmeanrC   r  )r  r*   Ti N  )r?   rH   rC   r   )rc   rd   r   r3   r  r  rg  r  r   ttest_1sampr  r  r   r   r   r   r   r   r   )r4   rC   r*   rT   r   dtype_default	dtype_strdtype_npr  r)   r   r   r   rz   ref_statistic
ref_pvalues                   r+   test_axis_dtype,TestMonteCarloHypothesisTest.test_axis_dtypex  s,    ii##G,
 

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

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

JYY?r.   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)rs  rK  r5  r  rY  r   )rc   rd   r   r  r   r  r3   r  r  r   r   r   r   r   r   r   )	r4   r   r*   rT   r)   r@  r   r   rz   s	            r+   test_alternative-TestMonteCarloHypothesisTest.test_alternative  s     ii##H-R(2;?JJqM&&r*	ll5::>>3l6qyJrzz#--'@A

BJJszz$:Kr.   )r   r   rx   g      rp  r   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  rs  rx   r   rb   r  c                 v   > [         R                  " U [         R                  R                  STS9R                  $ )Nasymp)moder   )r   ks_1sampr   cdfr   )r)   r   s    r+   statistic1dGTestMonteCarloHypothesisTest.test_against_ks_1samp.<locals>.statistic1d  s+    >>!UZZ^^'.9;;D9Er.   r  FrH   r?   r   r   r   r   r!   )rc   rd   r   r   skewnormr   r&  r   r'  r  r   r   r   r   r   )	r4   r   rx   rT   r)   r   r(  norm_rvsrz   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 #r.   hypotestr   r   r  rZ  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                   $ r   )r   )r)   rC   r/  s     r+   r   LTestMonteCarloHypothesisTest.test_against_normality_tests.<locals>.statistic  s    A)333r.   Tr?   r   r   )rc   rd   r   r   r+  r   r  r   r   r   r   r   r   )
r4   r/  r   rx   rT   r)   r   r   r,  rz   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$))Dr.   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 r2  r"  c                 >    [         R                  " XS9R                  $ r   )r   
normaltestr   )r)   rC   s     r+   r   GTestMonteCarloHypothesisTest.test_against_normaltest.<locals>.statistic  s    ##A1;;;r.   Tr   r5  r   )rc   rd   r   r   r+  r   r:  r  r   r   r   r   r   r   )r4   rx   rT   r)   r   r   r,  rz   s           r+   test_against_normaltest4TestMonteCarloHypothesisTest.test_against_normaltest  s     ii##H-NN3?##A&	< <<

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

HOO$))Dr.   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rs  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Dr.   r  Fr   r*  r   )rc   rd   r   r   r+  r   r@  r   r'  r  r   r   r   r   r   )r4   rx   rT   r)   r   r(  r,  rz   s           r+   test_against_cramervonmises8TestMonteCarloHypothesisTest.test_against_cramervonmises  s     ii##I.NN#>''5::>>:	E <<

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

HOO$))Dr.   	dist_namer   logistictarget_statistic)333333?gffffff?g?c           
      Z  ^^ UU4S jn[         R                  " 5          [         R                  " S[        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SS	9nUR                  n	UR                  n
U4S
 jnU R!                  [#        [        T5      R                  U5      n[         R                  " 5          [         R                  " S[        5        [%        X|U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NL= f! , (       d  f       NY= f)Nc                    > [         R                  R                  S5      n[        R                  R                  U SUS9n[        R                  " UTSS9nUR                  T-
  $ )Nxra   r   interpolaterM   )rc   rd   r   r   tukeylambdar   andersonr   )rx   rT   r)   r   rD  rF  s       r+   fun?TestMonteCarloHypothesisTest.test_against_anderson.<locals>.fun	  sX    ))''	2C!!%%ac%DA~~a=IH%%(888r.   r3  r   )x0rJ  ra   r   rK  rM   c                 D   > [         R                  " U TSS9R                  $ )NrK  rM   )r   rM  r   )r)   rD  s    r+   r(  GTestMonteCarloHypothesisTest.test_against_anderson.<locals>.statistic1d  s    >>!Y}EOOOr.   r  Fr   r*  r"   r   )warningscatch_warningssimplefilterRuntimeWarningr   successr)   rc   rd   r   r   rL  r   rM  r   r   r  rg  r   r   r   )r4   rD  rF  rN  solrx   rT   r)   r   expected_stat
expected_pr(  dist_rvsrz   s    ``           r+   test_against_anderson2TestMonteCarloHypothesisTest.test_against_anderson   sA   	9
 $$&!!(N;sq/C ' {{{ EE!Hii##I.!!!#C!@>>!Y}E **__
	P <<y 9 = =sC$$&!!(N;"1#.D.3LC ' 	}5

JQtyy[A5 '&& '&s   &F
 )F

F
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 ra   Tr   r5  g-C6?)rc   rd   r   r  r   r'   r   )r4   rT   r)   rz   s       r+   test_p_never_zero.TestMonteCarloHypothesisTest.test_p_never_zero*  sT     ii##$78HHSMq**bgg*.FDzzV###r.   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  rK     c                 @    [         R                  " XUS9R                  $ r   r  r  s      r+   r   FTestMonteCarloHypothesisTest.test_against_ttest_ind.<locals>.statistic8  r  r.   r~   rB   r   r!   {Gz?r   )
rc   rd   r   r  r   r   r  r   r   r   r4   rT   r   r   r   rz   r@  s          r+   test_against_ttest_ind3TestMonteCarloHypothesisTest.test_against_ttest_ind3  s    ii##$67zzvz&

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

CJJT:r.   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 )Nrb  r  rK  )r"   e   )r"   f   )r"   g   c                 B    [         R                  " USU 06R                  $ NrC   )r   f_onewayr   )rC   r  s     r+   r   ETestMonteCarloHypothesisTest.test_against_f_oneway.<locals>.statisticG  s    >>43d3===r.   r~   r   rC   r   rC   {Gz?r   )
rc   rd   r   r  r   r   rp  r   r   r   rg  s          r+   test_against_f_oneway2TestMonteCarloHypothesisTest.test_against_f_oneway@  s    ii##$67

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

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

CJJT:r.   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 r  c                 N   > S[         R                  " SS9R                  U TS9-  $ )Nr  gZd;O?)r{  r   )r   	bernoullir   r   rT   s    r+   r   ITestMonteCarloHypothesisTest.test_finite_precision_statistic.<locals>.rvsY  s'    %044$S4QQQr.   ra   r   )r   rH   g     ?r!   )
rc   rd   r   r   r   r  r  null_distributionr   r   )r4   rH   r   r)   rz   c0c1rT   s          @r+   test_finite_precision_statistic<TestMonteCarloHypothesisTest.test_finite_precision_statisticQ  s     ii##$45	R H$$QRVV1<> VVC))S]]:;VVC))S]]G-DDExxzzb1f{Q7777r.   rv   )$r/   r  r  r  r   rc   r  r  r  r  r0   r  xslowr  r  r]  r  r  r  linspacer-  r   skewtestkurtosistestr6  r   r<  rB  r\  r_  rh  rt  	fail_slowr  r~  r  rv   r.   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$ [[[[[6:*>?[[/A%B B @ %BN$;;" [[1[[ TU8 V 8r.   r  c                   Z   \ rS rSrSS.S jrS r\R                  R                  S 5       r	\R                  R                  S 5       r
\R                  R                  S/ S	QS
9S 5       r\R                  R                  SSS9\R                  R                  S/ S	QS
9S 5       5       rSrg)	TestPowerif  Nr  c                8   ^^^ Tc  [        T5      OTmUUU4S j$ )Nc                 >   > TR                  TR                  U S9TS9$ )NrK  r  )r3   r  )r   r  rT   r*   s    r+   r,   %TestPower.xp_normal.<locals>.<lambda>j  s    BJJszztz'<EJJr.   )r   )r4   rT   r*   r  s    ```r+   	xp_normalTestPower.xp_normalh  s    (- $5JJr.   c                 	   [         R                  R                  S5      n[        R                  nU R                  X!S9U R                  X!S94nUR                  S5      UR                  S5      4nSn[        R                  " [        US9   [        X4U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   [        X0R                  X!S9S
4U5        S S S 5        Sn[        R                  " [        US9   [        X0R                  X!S94U5        S S S 5        [        R                  " [        US9   [        X4S5        S S S 5        Sn[        R                  " [        US9   [        X4USS9  S S S 5        [        R                  " [        US9   [        X4XQR                  SSS5      S9  S S S 5        Sn[        R                  " [        US9   [        X4USS9  S S S 5        Sn[        R                  " [        [        4US9   [        X4UR                  SS/5      UR                  / SQ5      45        S S S 5        [        R                  " [        [        4US9   [        X4UR                  SS/5      UR                  SS/5      4SUR                  / SQ5      0S9  S S S 5        Sn[        R                  " [        US9   [        S XE5        S S S 5        Sn[        R                  " [        US9   [        X4USS9  S S S 5        [        R                  " [        US9   [        X4USS9  S S S 5        S n[        R                  " [        US9   [        X4USS!9  S S S 5        [        R                  " [        US9   [        X4USS!9  S S S 5        g ! , (       d  f       GN1= 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NW= 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 rY  rO   r`   r<   r   rA   r>   r  r=   r  )rO   z3`significance` must contain floats between 0 and 1.r"   significancer~   r!   r   z`kwargs` must be a dictionaryr    )kwargsz6not be broadcast|Chunks do not add|Incompatible shapesr_   )r`         r  r)   z`test` must be callablez(`n_resamples` must be a positive integerirG   g      %@z"`batch` must be a positive integerrK   )rc   rd   r   r   r  r  r3   r0   r1   rU   r   r2   r  RuntimeError)r4   r*   rT   testr   n_observationsr5   s          r+   r  TestPower.test_input_validationl  sa   ii##$78~~c~)4>>#>+EF**R."**R.9D]]:W5$^< 6 E]]9G4$n- 5]]9G4$3V<nM 5 .]]:W5$35~F 6]]:W5$U# 6 H]]:W5$^!< 6]]:W5$^++b!R:PQ 6 2]]9G4$^I> 5 K]]J5WE$bjj"b2BJJ|4LMN F]]J5WE$bjj"b2BJJBx4HIrzz)457 F ,]]9G4$, 5 =]]:W5$^= 6]]:W5$^> 6 7]]:W5$^37 6]]:W5$^48 65[ 65 5444 6555 6555 54 FEEE
 54 6555 6555s   O:O)O%(O7$P	PP- P?51QAQ#3Q5#RR?R+,R=
O
O"%
O47
P	
P
P*-
P<?
Q
Q #
Q25
R
R
R(+
R:=
Sc           	        ^^ [         R                  R                  S5      nUU4S jmSTl        STl        [        TTR                  S5      SS9n[         R                  R                  S5      n[        S0 UDU R                  UTS9SS	.D6nTR                  S:X  d   eTR                  S:X  d   e[         R                  R                  S5      nSTl        [        S0 UDU R                  UTS9S
S	.D6nTR                  S:X  d   eTR                  S
:X  d   e[         R                  R                  S5      nSTl        [        S0 UDU R                  UTS9SS	.D6nTR                  S:X  d   eTR                  S:X  d   e[        UR                  UR                  5        [        UR                  UR                  5        g )Nr  c                   > U R                   S:X  a  SOU R                  S   n[        UTR                  5      Tl        T=R                  S-  sl        [
        R                  " U TR                  S5      US9R                  $ )Nr!   r   r5  rB   )	r  r   rE  r  r	  r   r  r3   r   )r)   rC   r  r  r*   s      r+   r  "TestPower.test_batch.<locals>.test  s_    ffkqwwqzJ!*doo>DOLLAL$$Q

2TBIIIr.   r   rO   r  )r  r  rH   rY  r!   )r   rL   r   rr  rv   )
rc   rd   r   r	  r  r   r3   r   r  r   )r4   r*   rT   r  rk   rl   r  r  s    `     @r+   r  TestPower.test_batch  s    ii##K0	J
 #%::b> $& ii##K0EtE!;1E||t###!###ii##K0FtF!;2F||r!!!"$$$ii##K0HtH!;4H||q   $&&&

DJJ/

DJJ/r.   c                 R  ^^^^ [         R                  R                  S5      nSSSS.mUR                  SS/5      mSUU4S jjnUR                  / S	Q5      S S 2UR                  4   nS
UR                  / SQ5      0nUR                  / SQ5      n[
        R                  " X0R                  X!S9UXeS9n/ nU H  n	[        UR                  S   5       H  n
XJS4   nUS
    Ho  m[        TR                  S   5       HP  nTU   mSUUU4S jjn[
        R                  " XR                  X!S9UU	S9nUR                  UR                  5        MR     Mq     M     M     UR                  UR                  U5      UR                  R                  5      n[        UR                  USSS9  g )Nl   x7'\r   r  r   )r~   r   r!   r   皙?c           
         > [         R                  " T[        [        SU R                  S-   5      5      S9nT[        U5         n[        R                  " XUUS9$ )Nr!   rB   r   rC   )xpxexpand_dimsrV   r]  r  r   r   r  )r)   r   rC   popmeans_expandedalternativespopmeanss       r+   r  *TestPower.test_vectorization.<locals>.test  sU     #5:5AFFQJ;O5P!R&s;'78K$$Q{*.0 0r.   )rO   r   rr  r   ra   r   )rs  r  皙?r   rY  r  r  .c           	      J   > [         R                  " U TUT[        T5         S9$ )Nrr  )r   r  r   )r)   rC   alternative_ir  	popmean_js     r+   test2+TestPower.test_vectorization.<locals>.test2  s+    #(#4#4Q	,8]9K,L$N Nr.   r  rf  rs  )r   r   r}   )rc   rd   r   r3   r  r   r   r  r]  r   appendr   r   r   )r4   r*   rT   r  nxr  r  rz   r@  significance_irw   nx_ijr  tmpr  r  r  r  s                  @@@@r+   test_vectorizationTestPower.test_vectorization  s~    ii##N3"ki@ ::q#h'	0 	0 ZZ-.q"**}=J!78 zz":;kk$s :B'3D *N288A;'S&z%+M%:M"8>>!#45$,QK	N N $kk%1KT7EG

399- 6 &; ( + jj#		8 			3T=r.   T)r  	jax.numpyz
dask.arraycpu_onlyr  c           	         [         R                  R                  S5      n[        R                  nUR                  UR                  SSSS95      UR                  UR                  SSSS95      4nU R                  X!S9U R                  X!S94nUR                  / SQ5      n[        R                  " X5XFS9nUR                  US S 2UR                  4   UR                  R                  5      n[        UR                  USS	9  g )
N   &( rO   ra   rK  rY  )rs  r  r   r  rs  r   )rc   rd   r   r   r  r3   integersr  r   r   r  r   r   )r4   r*   rT   r  r  r   r  rz   s           r+   test_ttest_ind_nullTestPower.test_ttest_ind_null  s    
 ii##O4**S\\"c\%EF**S\\"c\%EFHnnSn($...*DDzz"34kk$^O|ArzzM'BCIIOOT		<d;r.   rd  z+currently combines integer and float arraysr   c                    [         R                  R                  S5      n/ SQ/ SQ// SQ/ SQ//nSUR                  / SQ5      0nUR                  S/S	//5      nUR                  S
S/5      n[        R
                  " [        R                  U R                  X!S9UXdS9n[        UR
                  UR                  U5      S
S9  g )Nr  )gv?g]NbJ?g6;?)gOt]?g7gLڷ?g0Dҗ?)gVL[?g;c?g.H&?)g#*3)?glk?g5i ?r  )r   rp  r   rO   rr  rs  r  rY  r  r   )	rc   rd   r   r3   r   r   r  r  r   )r4   r*   rT   r@  r  r  r  rz   s           r+   test_ttest_1samp_power TestPower.test_ttest_1samp_power  s     ii##O4 5464467
 RZZ89bTB4L1zz4,/kk%++T^^C^-G'3D		2::c?>r.   rv   )r/   r  r  r  r  r  r0   r  r  r  r  r   r  r  r  rv   r.   r+   r  r  f  s    *. K79r [[#0 #0J [[*> *>X [[!!4-P " R<R< [[!!"4)V " X[[!!4-P " R?RX?r.   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\R                  R-                  SSS/S9S 5       r\R                  R-                  SS9\R                  R                  SS5      S 5       5       r\R                  R-                  SS9\R                  R                  SS5      S 5       5       r\" SSS9\" SS9\R                  R                  SS5      S 5       5       5       r\" SS S9\" SS9\" SS!9S" 5       5       5       r\" SS#S9\" SS9\R                  R                  S$S%5      S& 5       5       5       r\R                  R-                  SS9\R                  R                  SS5      S' 5       5       r\R                  R                  SS5      S( 5       r\R                  R-                  SS9S) 5       r\R                  R                  SS5      S* 5       r \R                  RC                  5       \R                  R                  S$S+5      S, 5       5       r"/ S-Q/ S.QS/S0S1S2S3S4S5.r#/ S6Q/ S7QS8S9S:S;S<S=S5.r$\R                  R-                  SS9\R                  RC                  5       \R                  R                  S>\#\$45      S? 5       5       5       r%\R                  R(                  \R                  R                  S@SA5      \R                  R-                  SSS/S9\R                  R-                  SS9SB 5       5       5       5       r&\R                  R                  SCSD5      SE 5       r'\(" SF5      S/ 4\(" S5      S/ SGQ/ SHQ/4\(" SI5      S/ SGQ/ SHQSSJ//4/r)\R                  R                  SK\)5      SL 5       r*\R                  RW                  S5      \R                  R-                  SSS/S9SM 5       5       r,SNr-gO)PTestPermutationTesti"  r#  c                 L    [         R                  R                  S5      U l        g )Nl   F )rc   rd   r   rT   )r4   s    r+   setup_method TestPermutationTest.setup_method'  s    99(()<=r.   c                    S nUR                  / SQ5      UR                  / SQ5      4nSn[        R                  " [        US9   [	        US   UR                  S/5      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   [	        X2S
S9  S S S 5        Sn[        R                  " [        US9   [	        X2SS9  S S S 5        Sn[        R                  " [        US9   [	        X2S
S9  S S S 5        Sn[        R                  " [        US9   [	        X2SS9  S S S 5        Sn[        R                  " [        US9   [	        X2SS9  S S S 5        Sn[        R                  " [        US9   [	        X2SS9  S S S 5        Sn[        R                  " [        US9   [	        X2SS9  S S S 5        Sn[        R                  " [        US9   [	        X2SS9  S S S 5        Sn[        R                  " [
        US9   [	        X2SS9  S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN~= f! , (       d  f       GNb= f! , (       d  f       GNF= 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  r  s      r+   r  :TestPermutationTest.test_permutation_test_iv.<locals>.stat-  s    ??A640:::r.   r    z2each sample in `data` must contain two or more ...r   r   z6`data` must be a tuple containing at least two samples)r!   r!   r@   rA   rB   z `permutation_type` must be in...r=   permutation_typer<   r>   r  rF   rG   rI   rJ   rK   r  r  rQ   rR   rS   )r3   r0   r1   rU   r   r2   )r4   r*   r  r   r5   s        r+   test_permutation_test_iv,TestPermutationTest.test_permutation_test_iv+  sU   	; 

9%rzz)'<=F]]:W5d1grzz1#7> 6 K]]:W5T4( 6]]9G4Q% 5 /]]:W5Tc2 6 5]]:W5T.46 6 E]]:W5TC8 6 >]]:W5TU; 6 >]]:W5TV< 6 @]]:W5Tu5 6 @]]:W5Tv6 6 0]]:W5TV< 6 A]]9G4TY7 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   "I,
I>8J(J"J4K2K K*K<<L*L L1,
I;>
J
J"
J14
K
K
K'*
K9<
L
L 
L.1
L?rb   r  )pairingssamplesindependentc                 &  ^^
 TR                  U R                  R                  S5      5      nTR                  U R                  R                  S5      5      nU
U4S jm
ST
l        ST
l        SUSS.n[
        R                  " XE4T
4SU" S5      S.UD6nT
R                  S	:X  d   eT
R                  S:X  d   eST
l        [
        R                  " XE4T
4S
U" S5      S.UD6nT
R                  S:X  d   eT
R                  S
:X  d   eST
l        [
        R                  " XE4T
4SU" S5      S.UD6n	T
R                  S:X  d   eT
R                  S:X  d   e[        UR                  U	R                  5        [        UR                  U	R                  5        g )NrO   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                  XS9TR                  XS9-
  $ r,  )r  r   rE  r  r	  r'   )r)   rr   rC   r  r   r*   s       r+   r   1TestPermutationTest.test_batch.<locals>.statisticm  sc    ffkqwwqzJ#&z93G3G#HI "7717(27717+@@@r.   r   r  T)rH   r  r?   r!   )rL   rb   r  r   r   r"   )	r3   rT   rd   r	  r  r   r   r   r   )r4   r  rb   r*   r)   rr   r  rk   rl   r  r   s      `      @r+   r  TestPermutationTest.test_batchc  s    JJtxxr*+JJtxxr*+	A
 	 	#9I"$%%qfi Lq3??LFJL  D(((##q(((	%%qfi Lr3??LFJL  B&&&##r)))	%%qfi Lt3??LFJL  A%%%##t+++T[[1T[[1r.   zpermutation_type, exact_sizer  r#   r"   )r  r  r  rW  c                   ^ TR                  U R                  R                  S5      5      nTR                  U R                  R                  S5      5      nU4S jnUSS.n[        R                  " XV4U4SU" S5      S.UD6n	[        U	R                  5      S:X  d   e[        R                  " XV4U40 UD6n	[        U	R                  5      U:X  d   eg )Nr#   c                 B   > TR                  XS9TR                  XS9-
  $ r   r&   rq   s      r+   r   8TestPermutationTest.test_permutations.<locals>.statistic  r   r.   T)r  r?   r   )rH   rb   )r3   rT   rd   r   r   r	   r{  )
r4   r  
exact_sizerb   r*   r)   rr   r   r  rz   s
       `     r+   test_permutations%TestPermutationTest.test_permutations  s     JJtxxq)*JJtxxq)*	A %5"$$$aVY KA2>q/KEIKs,,-222$$aVY?$?s,,-;;;r.   c                   ^ Su  p#Su  pEn[         R                  " XE-   U5      U:  d   e[        R                  R	                  S5      nTR                  UR                  US95      nTR                  UR                  US95      nXx4n	U4S jn
SSSX#S	.n[        X4S
U0UD6n[        X4S
T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]     U rK  c                 B   > TR                  XS9TR                  XS9-
  $ r   r&   rq   s      r+   r   NTestPermutationTest.test_randomized_test_against_exact_both.<locals>.statistic  r   r.   Tr  ra   r?   r  rL   r   rT   rH   rs  r   )r   binomrc   rd   r   r3   r  r   infr   r   r   r4   r*   r   rT   r  nypermutationsr)   rr   r   r   r  rz   rl   s    `            r+   'test_randomized_test_against_exact_both;TestPermutationTest.test_randomized_test_against_exact_both  s     %*}}RWb)L888ii##J/JJs***34JJs***34t	A #[FtQLQDQLRVVLtL}}...

DKKd;r.   c                   ^ Su  p#Su  pEnSU-  U:  d   e[         R                  R                  S5      nTR                  UR	                  US95      nTR                  UR	                  US95      nXx4n	U4S jn
SSS	X#S
.n[        X4SU0UD6n[        X4ST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  rK  c                 (   > TR                  X-
  US9$ r   r&   rq   s      r+   r   QTestPermutationTest.test_randomized_test_against_exact_samples.<locals>.statistic  s    7715t7,,r.   Tr  ra   r  rH   rs  r   )
rc   rd   r   r3   r  r   r  r   r   r   r  s    `            r+   *test_randomized_test_against_exact_samples>TestPermutationTest.test_randomized_test_against_exact_samples  s    
 +,"u|###ii##J/JJs***34JJs***34t	- #	[FtQLQDQLRVVLtL}}...

DKKd;r.   Tr  r  r  c                   ^ SU R                   p2Su  pEn[        R                  " U5      U:  d   e[        R                  R                  S5      nUR                  UR                  US95      nUR                  UR                  US95      mU/nU4S jn	SSSX#S	.n
[        X4S
U0U
D6n[        X4S
U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  rK  c                 D   > [         R                  " U TUS9R                  $ r   )r   pearsonrr   )r)   rC   rr   s     r+   r   RTestPermutationTest.test_randomized_test_against_exact_pairings.<locals>.statistic  s    >>!QT2<<<r.   Tr  ra   r  rH   rs  r   )rT   r   	factorialrc   rd   r   r3   r  r   r  r   r   r   )r4   r*   r   rT   r  r  r  r)   r   r   r  rz   rl   rr   s                @r+   +test_randomized_test_against_exact_pairings?TestPermutationTest.test_randomized_test_against_exact_pairings  s    
 'S*  $|333ii##J/JJs***34JJs***34s	= #	[FtQLQDQLRVVLtL}}...

DKKd;r.   )
eager_onlyr   r0  c                   ^^ U R                   R                  SSS9nU R                   R                  SSSS9n[        R                  " X4TSS9nUU4S	 jnTR	                  U5      TR	                  U5      pC[        X44U[        R                  S
U R                   S9n[        UR                  TR	                  UR                  5      U R                  S9  [        UR                  TR	                  UR                  5      U R                  S9  g )Nr:   r!   r   r   r   r#   )r   r   r   exact)r   r%  c                    > [        U 5      [        U5      p[        R                  " XUSTS9nTR                  UR                  5      nUR
                  S:X  a  US   $ U$ )Nr$  )rC   r%  r   r   rv   )r   r   ks_2sampr3   r   r  )r)   rr   rC   rz   r   r*   s       r+   r   <TestPermutationTest.test_against_ks_2samp.<locals>.statistic  sT    $Q'):1)=q..DwKXC**S]]+C!hh!m3r744r.   r   rH   r   rT   r   )rT   r  r   r  r3   r   rc   r  r   r   r   r   r4   r   r*   r)   rr   r   r   rz   s    ``     r+   test_against_ks_2samp)TestPermutationTest.test_against_ks_2samp  s     HHOO!O,HHOOO3>>!KgN	5 zz!}bjjm1vybff+4$((D 	rzz(2D2D'EDIIV

BJJx$?diiPr.   c                 $  ^ U R                   R                  SSS9nU R                   R                  SSS9nSSSS	.nXQ   n[        R                  " X4US
9nU4S jnTR	                  U5      TR	                  U5      pC[        X44U[        R                  XR                   S9n	[        U	R                  TR	                  UR                  5      U R                  S9  [        U	R                  TR	                  UR                  5      U R                  S9  g )Nr:   r!   r  r   r#   r   r   r  r0  r  c                    > [        U 5      [        U5      p[        R                  " XUS9nTR                  UR                  5      nUR
                  S:X  a  US   $ U$ NrB   r   rv   r   r   ansarir3   r   r  r)   rr   rC   rz   r*   s       r+   r   :TestPermutationTest.test_against_ansari.<locals>.statistic!  P    $Q'):1)=q,,q$/C**S]]+C!hh!m3r744r.   r  r   )rT   r  r   r  r3   r   rc   r  r   r   r   r   )
r4   r   r*   r)   rr   alternative_correspondencealternative_scipyr   r   rz   s
     `       r+   test_against_ansari'TestPermutationTest.test_against_ansari  s     HHOO!O,HHOO!O, /8173>&@" 7C<<2CD	5 zz!}bjjm1vybff+6HHF 	rzz(2D2D'EDIIV

BJJx$?diiPr.   zneeds mannwhitneyur   c           
      D   [         R                  R                  SSU R                  S9n[         R                  R                  SSU R                  S9n[         R                  " X4SUS9nS nUR                  U5      UR                  U5      pC[        X44USUR                  USU R                  S	9n[        UR                  UR                  UR                  5      U R                  S
9  [        UR                  UR                  UR                  5      U R                  S
9  g )N)r#   r   r"   r   r   r   rb   r  r!   rr  c                 B    [         R                  " XUSS9R                  $ N
asymptotic)rC   rN   )r   mannwhitneyur   r  s      r+   r   @TestPermutationTest.test_against_mannwhitneyu.<locals>.statistic8  s    %%alKUUUr.   T)r?   rH   r   rC   rT   r   )r   uniformr   rT   r  r3   r   r  r   r   r   r   r  s           r+   test_against_mannwhitneyu-TestPermutationTest.test_against_mannwhitneyu/  s     MM9!$((KMM9$TXXN%%aL	V zz!}bjjm1vyT+-66{$%4885 	rzz(2D2D'EDIIV

BJJx$?diiPr.   zneeds cramervonmises_2samp)r  c                 H   [         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UR                  U5      UR                  U5      p2[        X#4U[        R                  S
U R                  S9n[        UR                  UR                  UR                  5      U R                  S9  [        UR                  UR                  UR                  5      U R                  S9  g )Nr:   r!   )r   r   rb   r   r#   )r   r   r   rb   r  rM   c                 F    [         R                  " XUSS9nUR                  $ r
  )r   cramervonmises_2sampr   )r)   rr   rC   rz   s       r+   r   7TestPermutationTest.test_against_cvm.<locals>.statisticL  s     ,,Q\RC== r.   r   r  r   )r   r   r   rT   r  r3   r   rc   r  r   r   r   r   )r4   r*   r)   rr   r   r   rz   s          r+   test_against_cvm$TestPermutationTest.test_against_cvmC  s     JJNNNBJJNNqNI--a7C	!
 zz!}bjjm1vybff+4$((D 	rzz(2D2D'EDIIV

BJJx$?diiPr.   zneeds kruskalrC   )r~   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XEU4n[        R                  " USU06nS n	USS	US
.n
U Vs/ s H  oR                  U5      PM     nn[        Xy4SUR                  0U
D6n[        Xy4SS0U
D6n[        UR                  UR                  UR                  5      U R                  S-  S9  [        UR                  UR                  U R                  S-  S9  [        UR                  UR                  UR                  5      SS9  [        UR                  UR                  SS9  g s  snf )Nl   Y}y!dh r#   rK  )r!   r#   r"   )r"   r!   r:   rC   c                 B    [         R                  " USU 06R                  $ ro  )r   kruskalr   r  s     r+   r   GTestPermutationTest.test_vectorized_nsamp_ptype_both.<locals>.statistico  s    ==$2T2<<<r.   r   r  )rC   r   r  rT   rH   r  r   r   gQ?r   r   )rc   rd   r   r   r  r3   r   r  r   r   r   r   )r4   rC   r*   rT   r)   rr   r   r   r   r   r  data_rz   rl   s                 r+    test_vectorized_nsamp_ptype_both4TestPermutationTest.test_vectorized_nsamp_ptype_bothX  s@    ii##$78JJQJ JJIJ&JJIJ&ay==$2T2	= Y$1#?/34te

5!t4tKBFFKdKJTJTJ 	rzz(2D2D'EDIIVWKXt~~DIIaKH

BJJx$?dK

DKKd; 5s   5E,c                 <  ^ [         R                  R                  SSU R                  S9n[         R                  R                  SSU R                  S9n[         R                  " X4USS9nU4S jnU4S jnTR                  U5      TR                  U5      pCSUS	U R                  [        R                  S
.n[        X4-
  4U40 UD6n	[        X44U40 UD6n
[        U	R                  U
R                  U R                  S9  US:w  a8  [        U
R                  TR                  UR                  5      U R                  S9  [        U
R                  TR                  UR                  5      U R                  S9  [        U	R                  U
R                  U R                  S9  g )N)r#   rW  r"   r   r  r  r!   r  c                    > [        U 5      n [        R                  " U SUS9nTR                  UR                  5      nUR
                  S:X  a  US   $ U$ Nr   r  r   rv   r   r   wilcoxonr3   r   r  )r   rC   rz   r*   s      r+   statistic_1samp_1dETestPermutationTest.test_against_wilcoxon.<locals>.statistic_1samp_1d  sL     "!$A..TBC**S]]+C!hh!m3r744r.   c                    > [        U 5      [        U5      p[        R                  " XSUS9nTR                  UR                  5      nUR
                  S:X  a  US   $ U$ r   r!  r   s       r+   statistic_2samp_1dETestPermutationTest.test_against_wilcoxon.<locals>.statistic_2samp_1d  sR    $Q'):1)=q..6EC**S]]+C!hh!m3r744r.   r  )rC   r   r  rT   rH   r   r  )r   r  r   rT   r"  r3   rc   r  r   r   r   r   r   )r4   r   r*   r)   rr   r   r#  r&  r  rk   rl   s     `        r+   test_against_wilcoxon)TestPermutationTest.test_against_wilcoxon  s@    MM9!$((KMM9$TXXN>>!KaH	5	5 zz!}bjjm1+9xx8(:CdC(:CdC 	TYYG+%DNNBJJx7I7I,J!%, 	RZZ%@tyyQT[[tyyAr.   c           
         U R                   R                  SSSS9nSX3S:H  '   SS jnU" U5      SSpvn[        R                  " XVXqS9n[        R                  " UR                  X2R                  S	94US
SUR                  U R                   US9n	[        U	R                  UR                  UR                  5      U R                  S9  g )Nr   r"   rO   rK  r~   c                 >    [        U 5      nUR                  U S:  US9$ )Nr   rB   )r
   r   )r)   rC   xp_s      r+   r   =TestPermutationTest.test_against_binomtest.<locals>.statistic  s&    !!$C$$QU$66r.   rp  r  r  Tr  )r?   r  rH   rT   r   r   r   )rT   r  r   r   r   r3   r  r  r   r   r   )
r4   r   r*   r)   r   kr   r{  r   rz   s
             r+   test_against_binomtest*TestPermutationTest.test_against_binomtest  s     HHa,q&	
	7 A,Ca??1D$$bjj**j&E%G046?RVV)-{L 	

BJJx$?diiPr.   c                   ^^ U R                   R                  SS9nX R                   R                  SS9-   m[        R                  " UTSS9nUU4S jnTR	                  U5      n[        U4US[        R                  U R                   S9n[        UR                  TR	                  UR                  5      U R                  S9  [        UR                  TR	                  UR                  5      U R                  S9  g )	NrW  rK  r  rM   c                    > [        U 5      n [        R                  " U TSUS9nTR                  UR                  5      nUR
                  S:X  a  US   $ U$ )Nr  )rN   rC   r   rv   )r   r   
kendalltaur3   r   r  )r)   rC   rz   r*   rr   s      r+   r   >TestPermutationTest.test_against_kendalltau.<locals>.statistic  sN    !!$A""1a4HC**S]]+C!hh!m3r744r.   r  )r  rH   rT   r   )rT   r  r   r3  r3   r   rc   r  r   r   r   r   )r4   r*   r)   r   r   rz   rr   s    `    @r+   test_against_kendalltau+TestPermutationTest.test_against_kendalltau  s    HHOOO#Q''##Aq9	5 JJqMtY+-66txxA 	rzz(2D2D'EDIIV

BJJx$?diiPr.   c           	      R  ^^	 [         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TR                  U5      TR                  T	5      snm	UU	4S jn[        U4USTR                  UUS9n[
        R                  " XQS	9n[        UR                  TR                  UR                  UR                  S
95        g )Nl   	(yM4 rc  rG  g      ?r!   c                 6   > TR                  U S:H  TS:H  -  US9$ Nr!   rB   )r   r)   rC   r*   rr   s     r+   r   @TestPermutationTest.test_against_fisher_exact.<locals>.statistic  s&    ##Q!VQ$7d#CCr.   r  )r  rH   r   rT   r  r  )rc   rd   r   r$  r   r   contingencycrosstabr3   r   r  fisher_exactr   r   r  )
r4   r   r*   rT   r)   tabr   rz   rl   rr   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zz!}bjjm1	D tY+-66{#&( !!#?

BJJt{{!''J$JKr.   )rZ  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#   rK  )r!   r:   r#   )r"   r:   r!   rB   r   c                  B    [         R                  " U SSS9R                  $ )NTr  rankedrN   )r   page_trend_testr   r   s    r+   r(  LTestPermutationTest.test_vectorized_nsamp_ptype_samples.<locals>.statistic1d  s"    ((d0<>>GiHr.   c                  B    [         R                  " U SSS9R                  $ )NTr  rD  )r   rF  r   rG  s    r+   pvalue1dITestPermutationTest.test_vectorized_nsamp_ptype_samples.<locals>.pvalue1d  s"    ((d0799?@r.   rC   Fr   r  )r?   rC   r   r  rT   rH   r   r   r   r   )rT   rd   r   rankdatar   r  rc   broadcast_arraysr   r  r   r   r   r   )r4   rC   r)   rr   r   r   r(  rJ  r   r   expected_statisticexpected_pvaluer  rz   rl   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;r.   r9   )rA   r"   g      @r  g?g&_?g      @gd~$I"@glu?)r)   rr   expected_lessexpected_2sidedexpected_Pr_gte_S_meanrN  expected_avgexpected_std)o   k   ra   c   rl  j   m   l   )	rX  r\  rZ  b   i   rm  n   r^  h   gd?gd?gYo5 ?g     @@@g{C@gDmFA@casec           	        ^ US   nUS   nTR                  US   5      nTR                  US   5      nTR                  US   5      nTR                  US   5      nTR                  US   5      n	TR                  US   5      n
U4S	 jn[        T5      nTR                  X<S
9TR                  XLS
9pC[        R                  " 5          [        R                  " SS[
        5        [        X44U[        R                  SS9n[        X44U[        R                  SS9nSSS5        [        WR                  XPR                  S9  [        UR                  USS9  [        WR                  USS9  [        TR                  UR                  5      U	SS9  [        TR                  UR                  5      U
SS9  UR                  nTR                  UR                  5      nUR                  R                   S   nTR#                  TR%                  TR'                  UR                  U-
  5      TR'                  UU-
  5      :  5      UR(                  5      U-  n[        UU5        g! , (       d  f       GNK= 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.

r)   rr   rN  rR  rS  rT  rU  rV  c                    > [        U 5      [        U5      p[        R                  " XUS9nTR                  UR                  5      nUR
                  S:X  a  US   $ U$ r  r  r   s       r+   r   5TestPermutationTest.test_with_ties.<locals>.statisticM  r  r.   r  r3  z$Ties preclude use of exact statisticr   )rH   r   r  Nr   g|=r   r"  r   )r3   r   rS  rT  r  UserWarningr   rc   r  r   r   r   r   r'   r{  r   r   r$  r   r   r  )r4   ra  r*   r)   rr   rN  rR  rS  rT  rU  rV  r   r  rz   rl   Sr'   r   Pr_gte_S_means     `                r+   test_with_ties"TestPermutationTest.test_with_ties&  s   : IIZZ-A(BC

4#89**T*;%<=!#D1I,J!Kzz$~"67zz$~"67	5 !$zz!z)2::a:+E1$$&##@+O"A69"&&/57C#QFI2660;=D ' 	'9		J

M>_5A 6 67DQt5564P MMwws,,-!!''*		""2"2FF3((-."&&4.@#BCD77LNOP'=>) '&s   AI
I-zalternative, expected_pvalue))r   g?)r   gOO?)r  g<OO?c                   ^^ TR                  / SQ5      nTR                  / SQ5      mSnTR                  [        R                  " [        T5      5      5      mUU4S jn[	        U4USTR
                  US9n[        UR                  TR                  U5      U R                  S9  [        UR                  TR                  U5      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                    > TR                  [        R                  " [        U 5      US95      n [        R                  " U TUS9R
                  $ r   )r3   r   rL  r   r  r   r:  s     r+   r   BTestPermutationTest.test_against_spearmanr_in_R.<locals>.statistic  s=     

5>>*;A*>TJKA>>!QT2<<<r.   r  )r  rH   r   r   gvIh%<=r   N)
r3   r   rL  r   r   r  r   r   r   r   )	r4   r   rO  r*   r)   rN  r   rz   rr   s	      `    @r+   test_against_spearmanr_in_R/TestPermutationTest.test_against_spearmanr_in_Rl  s    . JJ < =JJ ; </JJu~~&7&:;<	= tY+-66{L 	rzz2D'EDIIV

BJJ$?eLr.   rL   )r~   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    )r0   r1   rU   r   r   _batch_generator)r4   rL   s     r+   test_batch_generator_iv+TestPermutationTest.test_batch_generator_iv  s3    ]]:-HI--i?@ JIIs   #A
Ar   r]   )r#   r:   r   r  rc  ziterable, batch, expectedc                 P    [        [        R                  " X5      5      nXC:X  d   eg r%   )r   r   rp  )r4   iterablerL   r   gots        r+   test_batch_generator(TestPermutationTest.test_batch_generator  s#     ;//@Ar.   c                 t   UR                  / SQUR                  S9nUR                  / SQUR                  S9nS n[        R                  " X#4USS9nUR                  UR
                  UR                  pnS[        UR                  XS-
  :  5      5      -  UR                  S	   -  n	Xys=:X  a  S
:X  d   e   eg )N)r  r  r  r  r  )r  r  g      @g       @c                 2    [         R                  " XUS9S   $ )NrB   r   )r   r  r  s      r+   r   FTestPermutationTest.test_finite_precision_statistic.<locals>.statistic  s    >>!T2155r.   r  r  r"   r#  r   gUUUUUU?)
r3   r  r   r   r   r   r{  r   r   r   )
r4   r*   r)   rr   r   rz   rr   null	correct_ps
             r+   r~  3TestPermutationTest.test_finite_precision_statistic  s     JJ'rzzJ:JJ'rzzJ:	6 $$aVY6@B--S5J5J4b..t5y/@ABBTZZPQ]R	)c)))))r.   rS   N).r/   r  r  r  r   r  r  r0   r  r  rc   rd   re   r   r  r   r  r  r  r  r  r  r   r  r  r  r  r  r  r(  r/  r5  r@  r  rP  
tie_case_1
tie_case_2rh  rm  rq  r]  batch_generator_casesrv  r  r~  r  rv   r.   r+   r  r  "  s    D>48p [[^bii.C.C.0ii.C.C.E F[[/CE"2EF"2J [[^bii.C.C.0ii.C.C.E F[[;)7+<+<Q+?+BC/,gmmAq.ABDE<	EF<4<2 [[< <4 [[!!4V[<Q!R< S<6 [[!!T!2[[],LMQ N 3Q, [[!!T!2[[],LMQ N 3Q2 f%9:&[[],LMQ N ' ;Q" f%AB&t$Q % ' CQ$ f_5&[[VW-"< . ' 6"<L [[!!T!2[[],LM#B N 3#BJ [[],LMQ NQ. [[!!T!2Q 3Q* [[],LML NL$ [[[[VW-)< . )<Z $-#/%(,8(+"*GEJ ?C#/%1,8(,"+XGJ [[!!T!2[[[[Vj*%=>A? ?  3A?F [[[[;>?
 [[!!4V[<Q!R[[!!T!2!M 3 S? !MF [[Wg.A /A $Ah2.#AhIy+AB#AhIy1a&+IJL [[8244 [[1[[!!4V[<Q!R* S *r.   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!   r~   )rc   r  r   cumsumsetr   _all_partitions_concatenatedsplitaddrV   	frozensetprodr]  r   r   r  r  r   )r   ncall_partitionsr	  partition_concatenatedpartitioningrw   r   s           r+    test_all_partitions_concatenatedr    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: rO   rK  c                 @   > [         R                  R                  U TS9$ )Nr   )r   r   r   ry  s    r+   r   &test_parameter_vectorized.<locals>.rvs  s    zz~~4c~::r.   r[   )r   rT   rN   r  )r   rT   r  )rW   r   r  rH   ra   c                    > U R                   S:  d  [        R                  " U T5      (       d   e[        R                  " XS9$ r9  )r  rc   array_equalr'   )r)   rC   rW   s     r+   r   ,test_parameter_vectorized.<locals>.statistic  s3    vvzR^^Av6666wwq$$r.   )r   r?   Tc                 R    U R                   S:X  d   e[        R                  " U 5      $ r  )r  rc   r'   r-  s    r+   r   r    s     vv{{wwqzr.   Frv   )rc   rd   r   rg  r   r   )	r  r   fun_optionscommon_optionsrN  optionsr   rT   rW   s	          @@r+   test_parameter_vectorizedr    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9r.   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   rT   )rc   rd   r   r0   r1   rU   r   MonteCarloMethod)r4   r5   rT   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rv   N)r/   r  r  r  r  r  rv   r.   r+   r  r    s    <r.   r  )-rS  r0   r   rc   numpy.testingr   r   scipy._lib._utilr   scipy._lib._array_apir   r   r   r	   r
   r   scipy._lib._array_api_no_0dr   r   
scipy._libr   r  scipyr   r   scipy.fft.tests.test_fftlogr   scipy.optimizer   scipy.statsr   r   r   r   scipy.stats._resamplingr   r   r  r  r  r  r  r  r  r  rv   r.   r+   <module>r     s      7 )P P H -   8  L L - - 9VA VA VAt #$r8 r8 %r8j 5x? x? x?v #$U
* U
* %U
*|0* NP:P:B< <r.   