
    CpjJn                       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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%  \/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+\RX                  R[                  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is_lazy_arrayeager_warns)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/pdf-tiff/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)r5   r2   r3   
ValueErrorr   tupler)   r4   )r6   r,   sampler7   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!rP   )basic
percentileBCarE   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   rQ         d   )rN   rP   random_staterE   rJ   )rN   rP   rE   rJ   rd   )nprandomRandomStaterandr   r5   r)   r   confidence_intervallowhighstandard_error)r6   rP   rE   r,   rV   r+   res1res2s           r-   test_bootstrap_batch"TestBootstrap.test_bootstrap_batch\   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-@-@Ar0   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   rc   c                 .   > TR                  X-
  S-  US9$ )Nr$   rD   r(   r+   yrE   r,   s      r-   my_statistic9TestBootstrap.test_bootstrap_paired.<locals>.my_statisticv   s    77AC!8$7//r0   c                 ,   > TU    nTU    nT" X#5      nU$ r'    )irE   abresru   r+   rt   s        r-   my_paired_statistic@TestBootstrap.test_bootstrap_paired.<locals>.my_paired_statisticy   s$    !A!Aq$CJr0   rU   T)r=   rV   )re   rf   rg   r5   rh   arangeshaper   r   ri   rj   rk   rl   )r6   rP   r,   rV   nr}   ry   rm   rn   ru   r+   rt   s     `      @@@r-   test_bootstrap_paired#TestBootstrap.test_bootstrap_pairedn   s     ii##A&JJsxx{#JJsxx{#	0	 	 IIaggaj!!2:!QdB0044d6N6N6R6RS0055t7O7O7T7TU++T-@-@Ar0   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-   $ NrD   r(   )r+   rt   zrE   r,   s       r-   ru   =TestBootstrap.test_bootstrap_vectorized.<locals>.my_statistic   s4    7717(27717+@@27717CXXXr0   )rQ   ra   rb   rc   )r=   rP   rV   rE   rJ   )rc   )r#   r#   r#   r   )re   rf   rg   rh   r5   r   bootstrap_distributionr   rl   rX   broadcast_toreshapelistpopri   rj   rk   r   )r6   rP   rE   r=   r,   rV   ru   r   	n_samplesr+   rt   r   rm   r   rn   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Cr0   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sizerd   ffffff?r#   )dfr   r   )
confidence)data	statisticrJ   rP   rV   rG   gMb@?rtolga2U0*3?atolr   rJ   rR   lessrG   alternativegreaterrx   )re   rf   default_rngr   normrvstlenr)   semintervalstddictr5   r   r   ri   rj   rk   rl   updateppf)r6   rP   r,   rV   r   alphadistref_lowref_highref_seconfigr|   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r0   ))r\   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)rQ   rb         )@r   g+@            "   2   Q   Y   y         i@B r   )rJ   rP   rV   g{Gzt?r   )r5   r   r)   r   ri   rj   rk   )r6   rP   r   r   r,   r+   r|   s          r-   test_bootstrap_against_R&TestBootstrap.test_bootstrap_against_R   sr    " JJ ; <bgg76qQ//33RZZ5HuU//44bjj6JQVWr0   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+   rt   rE   s1s2s        r-   r   ?TestBootstrap.test_multisample_BCa_against_R.<locals>.statistic   s%    A)BA)B7Nr0   l   tgy4r\   rc   )rP   rN   rV   r]   bcag1*g333333ÿg333333?Q?)
r5   re   rf   r   r   r   r)   stackri   abs)r6   r,   r+   rt   r   rV   	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###r0   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   rt   rE   r,   s      r-   r   HTestBootstrap.test_BCa_acceleration_against_reference.<locals>.statistic2  $    7717(27717+@@@r0   r   r   rc   ge{?r   )r5   r   r   r   _resampling_bca_intervalr   )r6   r,   rt   r   r   r   r|   rE   r   theta_hat_brN   _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*>?@r0   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 rc     ?r   r#   r   r   i  r   rd   r   r   )r   rG   rJ   rN   rP   rE   rV   r   皙?)re   rf   r   r   r   floatr)   r   r   r5   ri   count_nonzero	binomtestintpvalue)r6   rP   expectedr,   rV   r   rJ   rG   r   	stat_truen_replicationsr   r|   cici_contains_truer   s                   r-   #test_bootstrap_against_itself_1samp1TestBootstrap.test_bootstrap_against_itself_1sampD  s
    ii##G, zzaq)$))+&	 xxn0sxCD)+"$'')9$/ %! $$ ++RUY->9RSuCT,UV+++ %5!6!13396 	||r0   i|  iz  )r\   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   rc   x   r   r   r   c                 H   > TR                  XS9nTR                  XS9nX4-
  $ r   r(   )data1data2rE   mean1mean2r,   s        r-   my_statBTestBootstrap.test_bootstrap_against_itself_2samp.<locals>.my_stat  s+    GGEG-EGGEG-E= r0   r#   r   r     r   r   )r   rG   rJ   rN   rP   rE   rd   r   )re   rf   rg   r   r   r   r)   r   r   r5   ri   r   r   r   r   )r6   rP   r   r,   rV   n1n2rJ   rG   r  dist1dist2r   r   r  r  r|   r   r   r   s      `                r-   #test_bootstrap_against_itself_2samp1TestBootstrap.test_bootstrap_against_itself_2sampo  sP    ii##A&	! 

q*

s!,%**,56	 		3#	F		3#	FE*BJJu,=>"))9$/ %%(* $$ ++RUY->9rRSuCT,UV8+++ %5!6!13396 	||r0   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   rD   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)rD   Nr(   ).0rY   rE   r,   s     r-   	<genexpr>STestBootstrap.test_bootstrap_vectorized_3samp.<locals>.statistic.<locals>.<genexpr>  s     EfrwwvDw1    sum)rE   r   r,   s   ` r-   r   @TestBootstrap.test_bootstrap_vectorized_3samp.<locals>.statistic  s    EEEEr0   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  rY   s     r-   r  VTestBootstrap.test_bootstrap_vectorized_3samp.<locals>.statistic_1d.<locals>.<genexpr>  s     !CdF++--ds   r  )ndimre   r5   r  )r   rY   r  s     r-   statistic_1dCTestBootstrap.test_bootstrap_vectorized_3samp.<locals>.statistic_1d  s;    {{a''' ::c!Cd!CC5QQr0   r<   r   Trc   )rA   rE   rJ   rP   rV   Fr  ư>+=r   )re   rf   rg   rh   astyper   r5   r   ri   rj   rk   rl   )r6   rP   rE   r  r,   r   r#  rV   r+   rt   r   rm   rn   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Xr0   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+   rE   r,   s     r-   r   @TestBootstrap.test_bootstrap_vectorized_1samp.<locals>.statistic  s    7717((r0   c                 D    U R                   S:X  d   eU R                  SS9$ Nr#   r   rD   )r"  r)   r+   s    r-   r#  CTestBootstrap.test_bootstrap_vectorized_1samp.<locals>.statistic_1d  s"    66Q;;66q6>!r0   l   2 )r$   r%   Trc   )rA   rE   rJ   rN   rP   rV   FrQ   r   )
re   rf   r   r   r5   r   ri   rj   rk   rl   )
r6   rP   rE   r,   r   r#  rV   r+   rm   rn   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Mr0   c                 :   UR                  SS5      nUS:X  a  [        R                  " SS9   Sn[        [        R
                  XBS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      S
S9  g ! , (       d  f       N= f! , (       d  f       ND= f)N)#   g     @r^   ignore)invalidz0The BCa confidence interval cannot be calculated)r!   r,   rO           g-q=r   )fullre   errstater   r   DegenerateDataWarningr   r)   r   ri   rj   r5   nanrk   r   rl   )r6   rP   r,   r   msgr|   s         r-   test_bootstrap_degenerate'TestBootstrap.test_bootstrap_degenerate  s#   wwuf%U?X.H !<!<CO#THbggfEC#C$;$;$?$?BFFAST#C$;$;$@$@"**RVVBTU P /. THbggf=CC3377F9KLC3388"**V:LM**BJJrNG PO /.s$   FB	E;F;
F		F
F)r^   r\   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   rc   r   i[%  rP   rJ   rV   F)rP   rJ   rV   rA   )re   rf   r   r   r   r   r   r5   r   r   ri   rj   rk   rl   )r6   rP   r,   rV   r   r   r|   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Kr0   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   rc   r   r^   if  rA  )re   rf   r   r   r   r   minr5   r   r   ri   rj   maxr   rk   )r6   r,   rV   r   r   true_minr|   rn   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Tr0   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 rc   r   r
  l   mdpi4 r   r]   )rJ   rV   rG   rP   r   r^   )rJ   rV   rG   rP   rR   r&  r   )re   rf   r   r   r   r5   r)   r   ri   rj   rk   rl   )
r6   rK  r,   rV   r+   r  r  n3r|   rB  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Wr0   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   rc   r   r   )r   r   rV   rE   rG   r   r   r   r   r   r   r   r&  r   z`alternative` must be one ofr    r   z	ekki-ekkirx   )re   rf   r   r   r   r5   r   r   r   r   r   r   ri   rk   rj   isinfr2   r3   rW   )
r6   rP   r,   rV   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 rM  r,   r   .rD   r$   )rN   r,   )re   rf   r   nextr   _jackknife_resampler5   rangedeleter   r   concat)
r6   r,   r   rV   r+   rt   ry   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	.2r0   array_api_strictzTest uses ... + fancy indexingrng_namerg   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 rQ   rX  rZ  )rV   r,   .r   r   )
getattrre   rf   r   r5   r   _bootstrap_resampler_  r   r   )r6   rg  r,   rng_genrng1rng2rJ   r   rV   r+   rt   ry   rb  jsr   s                  r-   test_bootstrap_resample%TestBootstrap.test_bootstrap_resampleP  s     "))X.z"z"ii##J/JJszz%()++AL{#A CAI,CLq%)U2YGHBbzHC* $r0   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)rQ         l   Q,? r!  r   )rE   r,   c                 N    [         R                  " [        R                  X U5      $ r'   )re   apply_along_axisr   percentileofscore)rz   rq  rE   s      r-   vectorized_pos>TestBootstrap.test_percentile_of_score.<locals>.vectorized_post  s    &&u'>'>OOr0   rD   rc   V瞯<r   )re   rf   r   r   r   _percentile_of_scorer5   r   )r6   rq  rE   r,   r   rV   r+   r  pry  p2s              r-   test_percentile_of_score&TestBootstrap.test_percentile_of_scorei  s     ii##J/JJu $,,RZZZ-G-/ZZZ-K24=	P A2.s2::b:6UCr0   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  rY   rE   s     r-   r  LTestBootstrap.test_vectorize_statistic.<locals>.statistic.<locals>.<genexpr>  s     <tV{{4((tr  r  rE   r   s   ` r-   r   9TestBootstrap.test_vectorize_statistic.<locals>.statistic  s    <t<<<r0   c                  J   > U  H  nUR                   S:X  a  M   e   T" U SS06$ )Nr#   rE   r   )r"  )r   rY   r   s     r-   r#  <TestBootstrap.test_vectorize_statistic.<locals>.statistic_1d  s/    {{a''' d+++r0   r   r<   r   rY  r#   rD   )r   _vectorize_statisticre   rf   rg   rh   r   )r6   rE   r#  
statistic2rV   r+   rt   r   rm   rn   r   s             @r-   test_vectorize_statistic&TestBootstrap.test_vectorize_statistic{  s    
	=	, !55lC
ii##A&HHQ1HHQ1HHQ1q,!-#r0   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#   rr  r   )rc   rc   c           	      `   > TR                  TR                  XS9TR                  XSS9/5      $ )NrD   r#   rE   
correction)r   r)   r   )r   rE   r,   s     r-   r   =TestBootstrap.test_vector_valued_statistic.<locals>.statistic  s9    88RWWTW5VVDVBD E Er0   r   '     )rP   rE   rJ   rN   rd   r#   rr  r   rD   Z   rc   r$   rc   )r$   rc   r  )re   rf   r   r5   normalr   r   ri   rj   Trk   allr   rl   r   )	r6   rP   r,   rV   paramsrY   r   r|   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Ar0   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+   rt   rE   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Kr0   c                 N   > X-   nX-   n[         R                  " T" XVU5      5      $ r'   )re   
nan_to_num)tptnfpfnrE   actualr   r  s          r-   r   ETestBootstrap.test_vector_valued_statistic_gh17715.<locals>.statistic  s'    WFwH==Vt!DEEr0   c                 >   > T" / UQU P76 [         R                  S4   $ )N.)re   newaxis)rE   argsr   s     r-   statistic_extradimNTestBootstrap.test_vector_valued_statistic_gh17715.<locals>.statistic_extradim  s#    )d)D)"**c/::r0   )r<   r   r   r$   )r$   r#   r$   r#   )r   rY  r   r   )r   rY  r%   r   )r      r#   r   T)rV   r=   r   r{  r   )
re   rf   r   arrayr  r   r   ri   rj   rk   )r6   rV   r  r   r|   rB  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r0   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|)rQ   r$   )ra   r$   c                 @    [         R                  " XUS9R                  $ r   r   	ttest_indr   r+   rt   rE   s      r-   r   .TestBootstrap.test_gh_20850.<locals>.statistic      ??1d3===r0   r#   rD   /Array shapes are incompatible for broadcasting.r    rQ   r   )
re   rf   r   r5   r   r   r  r2   r3   rW   )r6   r,   rV   r+   rt   r   r7   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rx   N))r1   
__module____qualname____firstlineno__r   r8   rZ   r2   markparametrizero   r   r   slowxfail_on_32bitr   tests_Rr   r   r   tests_against_itself_1sampitemsr   tests_against_itself_2sampr  r(  r2  r>  rC  rI  rO  rU  rd  ro  r  r  r  filterwarningsr  r  __static_attributes__rx   r0   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H GH [[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r0   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$ )Nrd   r!  )r5   )r  kwdsr  rsrvs_inr,   s     r-   r.   6TestMonteCarloHypothesisTest.get_rvs.<locals>.<lambda>  s(    RZZ0V20VQU0V6; &0 &=r0   rx   )r6   r  r  r  r,   s    ````r-   get_rvs$TestMonteCarloHypothesisTest.get_rvs  s    = 	=r0   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-  -  $ )NrD   r#   r  rr  )r)   r  r   )r+   rE   mvr   r,   s        r-   r   =TestMonteCarloHypothesisTest.get_statistic.<locals>.statistic  sB    %Aq2AA!cz>!r0   rx   )r6   r,   r   s    ` r-   get_statistic*TestMonteCarloHypothesisTest.get_statistic  s    	" r0   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((r0   r  r$   r   )r%   r   r    c                     gNr#   rx   r  s      r-   r.   DTestMonteCarloHypothesisTest.test_input_validation.<locals>.<lambda>  s    1r0   r   rD   rB   rC   r>   r@   0`rvs` must be callable or sequence of callables.r  r  r        @c                     U $ r'   rx   r0  s    r-   r.   r        ar0   If `rvs` is a sequence...c                     U $ r'   rx   r0  s    r-   r.   r  $  r  r0   c                     U $ r'   rx   r0  s    r-   r.   r  $  s    1r0   z`statistic` must be callable.)`n_resamples` must be a positive integer.rH   rI   rK   rL   rM   `alternative` must be in...r?   r   z!Signature inspection of statisticc                 \   > TR                  [        R                  R                  U S95      $ )NrM  )r5   r   r   r   )r   r,   s    r-   r   ?TestMonteCarloHypothesisTest.test_input_validation.<locals>.rvs@  s!    ::ejjnn$n788r0   r'   )r5   zerosr   r   r   r2   r3   rW   r   r4   r)   str
startswith)r6   r,   r   r  r7   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_statisticH  s    771:r0   z!`statistic` must be vectorized...r  r    Fr@   )
r5   r   r   r   r   r   r2   r3   rW   r)   )r6   r,   r  r7   rY   s    `   r-   test_input_validation_xp5TestMonteCarloHypothesisTest.test_input_validation_xpG  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 rQ   rM  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   rG  
batch_sizecounterr  )r+   rE   r
  r6   r   r,   s      r-   r   :TestMonteCarloHypothesisTest.test_batch.<locals>.statistic]  sX    ffkqwwqzJ#&z93G3G#HI "%%b)!77r0   r   r
  T)rY   r   rJ   rA   i r[  r   rN   r#   i  r   r   r$   rx   )re   rf   r   r5   standard_normalr  r
  r  r   r   r   r   r   r   r   )	r6   r,   rV   r+   r  rm   rn   res3r   s	   ``      @r-   
test_batch'TestMonteCarloHypothesisTest.test_batchV  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[[1r0   rE   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<   rc   r  64r  r  )r   r  r8  )popmeanrE   r!  )r  r,   Ti N  )rA   rJ   rE   r   )re   rf   r   r5   r  r  ri  r  r   ttest_1sampr  r  r   r   r   r   r   r   r   )r6   rE   r,   rV   r   dtype_default	dtype_strdtype_npr  r+   r   r   r   r|   ref_statistic
ref_pvalues                   r-   test_axis_dtype,TestMonteCarloHypothesisTest.test_axis_dtype|  s,    ii##G,
 

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

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

JYY?r0   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)ru  rM  r8  r  r[  r   )re   rf   r   r  r   r  r5   r  r  r   r   r   r   r   r   r   )	r6   r   r,   rV   r+   rB  r   r   r|   s	            r-   test_alternative-TestMonteCarloHypothesisTest.test_alternative  s     ii##H-R(2;?JJqM&&r*	ll5::>>3l6qyJrzz#--'@A

BJJszz$:Kr0   )r   r   rz   g      rr  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  ru  rz   r   rd   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r0   r
  FrJ   rA   r   r   r   r   r#   )re   rf   r   r   skewnormr   r'  r   r(  r  r   r   r   r   r   )	r6   r   rz   rV   r+   r   r)  norm_rvsr|   s	    `       r-   test_against_ks_1samp2TestMonteCarloHypothesisTest.test_against_ks_1samp  s    
 ii##H-NN#>>>!UZZ^^M	E <<

4qK+/E+68 	x'9'9:)#CJJdiiHF"AcjjL(//		J #r0   hypotestr   r   r  r\  r$   c                   ^ [         R                  R                  S5      n[        R                  R                  USUS9nT" XRS9nU4S jnU R                  [        R                  R
                  U5      n[        XXUSUS9n	[        U	R                  UR                  5        [        U	R                  UR                  U R                  S9  g )	Ni	   r#  r  c                 $   > T" XS9R                   $ r   )r   )r+   rE   r0  s     r-   r   LTestMonteCarloHypothesisTest.test_against_normality_tests.<locals>.statistic  s    A)333r0   TrA   r   r   )re   rf   r   r   r,  r   r  r   r   r   r   r   r   )
r6   r0  r   rz   rV   r+   r   r   r-  r|   s
    `        r-   test_against_normality_tests9TestMonteCarloHypothesisTest.test_against_normality_tests  s    
 ii##H-NN3?A7	4 <<

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

HOO$))Dr0   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 r3  r#  c                 >    [         R                  " XS9R                  $ r   )r   
normaltestr   )r+   rE   s     r-   r   GTestMonteCarloHypothesisTest.test_against_normaltest.<locals>.statistic  s    ##A1;;;r0   Tr   r6  r   )re   rf   r   r   r,  r   r;  r  r   r   r   r   r   r   )r6   rz   rV   r+   r   r   r-  r|   s           r-   test_against_normaltest4TestMonteCarloHypothesisTest.test_against_normaltest  s     ii##H-NN3?##A&	< <<

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

HOO$))Dr0   c           	         [         R                  R                  S5      n[        R                  R                  USUS9n[        R                  " U[        R                  R                  5      nS nU R                  [        R                  R
                  U5      n[        X6USSSS9n[        UR                  UR                  5        [        UR                  UR                  U R                  S	9  g )
Niru  r#  c                 t    [         R                  " U [         R                  R                  5      R                  $ r'   )r   cramervonmisesr   r(  r   r0  s    r-   r)  MTestMonteCarloHypothesisTest.test_against_cramervonmises.<locals>.statistic1d  s#    ''5::>>:DDDr0   r
  Fr   r+  r   )re   rf   r   r   r,  r   rA  r   r(  r  r   r   r   r   r   )r6   rz   rV   r+   r   r)  r-  r|   s           r-   test_against_cramervonmises8TestMonteCarloHypothesisTest.test_against_cramervonmises  s     ii##I.NN#>''5::>>:	E <<

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

HOO$))Dr0   	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rc   r   interpolaterO   )re   rf   r   r   tukeylambdar   andersonr   )rz   rV   r+   r   rE  rG  s       r-   fun?TestMonteCarloHypothesisTest.test_against_anderson.<locals>.fun  sX    ))''	2C!!%%ac%DA~~a=IH%%(888r0   r6  r   )x0rK  rc   r   rL  rO   c                 D   > [         R                  " U TSS9R                  $ )NrL  rO   )r   rN  r   )r+   rE  s    r-   r)  GTestMonteCarloHypothesisTest.test_against_anderson.<locals>.statistic1d!  s    >>!Y}EOOOr0   r
  Fr   r+  r$   r   )warningscatch_warningssimplefilterRuntimeWarningr   successr+   re   rf   r   r   rM  r   rN  r   r   r  ri  r   r   r   )r6   rE  rG  rO  solrz   rV   r+   r   expected_stat
expected_pr)  dist_rvsr|   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 rc   Tr   r6  g-C6?)re   rf   r   r  r   r)   r   )r6   rV   r+   r|   s       r-   test_p_never_zero.TestMonteCarloHypothesisTest.test_p_never_zero.  sT     ii##$78HHSMq**bgg*.FDzzV###r0   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  rM     c                 @    [         R                  " XUS9R                  $ r   r  r  s      r-   r   FTestMonteCarloHypothesisTest.test_against_ttest_ind.<locals>.statistic<  r  r0   r   rD   r   r#   {Gz?r   )
re   rf   r   r  r   r   r  r   r   r   r6   rV   r   r   r   r|   rB  s          r-   test_against_ttest_ind3TestMonteCarloHypothesisTest.test_against_ttest_ind7  s    ii##$67zzvz&

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

CJJT:r0   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 )Nrc  r  rM  )r$   e   )r$   f   )r$   g   c                 B    [         R                  " USU 06R                  $ NrE   )r   f_onewayr   )rE   r  s     r-   r   ETestMonteCarloHypothesisTest.test_against_f_oneway.<locals>.statisticK  s    >>43d3===r0   r   r   rE   r   rE   {Gz?r   )
re   rf   r   r  r   r   rq  r   r   r   rh  s          r-   test_against_f_oneway2TestMonteCarloHypothesisTest.test_against_f_onewayD  s    ii##$67

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

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

CJJT:r0   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   rV   s    r-   r   ITestMonteCarloHypothesisTest.test_finite_precision_statistic.<locals>.rvs]  s'    %044$S4QQQr0   rc   r   )r   rJ   g     ?r#   )
re   rf   r   r   r   r  r  null_distributionr   r   )r6   rJ   r   r+   r|   c0c1rV   s          @r-   test_finite_precision_statistic<TestMonteCarloHypothesisTest.test_finite_precision_statisticU  s     ii##$45	R H$$QRVV1<> VVC))S]]:;VVC))S]]G-DDExxzzb1f{Q7777r0   rx   )$r1   r  r  r  r   re   r  r  r  r  r2   r  xslowr  r  r_  r  r   r  linspacer.  r   skewtestkurtosistestr7  r   r=  rC  r]  r`  ri  ru  	fail_slowr  r  r  rx   r0   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 8r0   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)	TestPowerij  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$ )NrM  r!  )r5   r  )r   r  rV   r,   s    r-   r.   %TestPower.xp_normal.<locals>.<lambda>n  s    BJJszztz'<EJJr0   )r   )r6   rV   r,   r  s    ```r-   	xp_normalTestPower.xp_normall  s    (- $5JJr0   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   [        X4XQR                  S5      S9  S S S 5        UR                  S5      n[        U5      (       d.  Sn[        R                  " [        US9   [        X4XWS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NQ= f! , (       d  f       GN2= 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 r[  rQ   rb   r>   r    rC   r@   r  r?   r  )rQ   z/`significance` must be of floating point dtype.Tsignificancer  z8All elements of `significance` must be between 0. and 1.z`kwargs` must be a dictionaryr"   )kwargszNnot be broadcast|Chunks do not add|Incompatible shapes|Attempting to broadcastra   )rb         r  r+   z`test` must be callablez(`n_resamples` must be a positive integerirI   g      %@z"`batch` must be a positive integerrM   )re   rf   r   r   r  r  r5   r2   r3   rW   r   r4   r   RuntimeError)r6   r,   rV   testr   n_observationsr7   r  s           r-   r  TestPower.test_input_validationp  s   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 D]]:W5$^**T:JK 6 zz"~\**PGz9dK : 2]]9G4$^I> 5' 	 ]]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5m 65 5444 6555 65 :9 54 FEEE
 54 6555 6555s   O!:O3)P(P$P)P;2Q Q1Q1-ARRR'0R9SS!
O03
P
P
P&)
P8;
Q

Q
Q.1
R 
R
R$'
R69
S
S
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   r8  rD   )	r"  r   rG  r
  r  r   r  r5   r   )r+   rE   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Ir0   r   rQ   r
  )r  r  rJ   r[  r#   )r   rN   r   rt  rx   )
re   rf   r   r  r
  r   r5   r   r  r   )r6   r,   rV   r  rm   rn   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/r0   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#   rD   r   rE   )xpxexpand_dimsrX   r_  r"  r   r   r  )r+   r   rE   popmeans_expandedalternativespopmeanss       r-   r  *TestPower.test_vectorization.<locals>.test  sU     #5:5AFFQJ;O5P!R&s;'78K$$Q{*.0 0r0   )rQ   r   rt  r   rc   r   )rt  r  皙?r   r[  r  r  .c           	      J   > [         R                  " U TUT[        T5         S9$ )Nrs  )r   r  r   )r+   rE   alternative_ir  	popmean_js     r-   test2+TestPower.test_vectorization.<locals>.test2  s+    #(#4#4Q	,8]9K,L$N Nr0   r  rg  rt  )r   r   r   )re   rf   r   r5   r  r   r   r  r_  r   appendr   r   r   )r6   r,   rV   r  nxr  r  r|   rB  significance_iry   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=r0   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   &( rQ   rc   rM  r[  )rt  r  r   r  rt  r   )re   rf   r   r   r  r5   integersr  r   r   r  r   r   )r6   r,   rV   r  r  r   r  r|   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;r0   rf  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   rr  r   rQ   rt  rt  r  r[  r  r   )	re   rf   r   r5   r   r   r  r  r   )r6   r,   rV   rB  r  r  r  r|   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?>r0   rx   )r1   r  r  r  r  r  r2   r  r  r  r  r   r  r  r  rx   r0   r-   r  r  j  s    *. K@9D [[#0 #0J [[*> *>X [[!!4-P " R<R< [[!!"4)V " X[[!!4-P " R?RX?r0   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9\R                  R                  S#S$5      S% 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.S/S0S1S2S3S4.r#/ S5Q/ S6QS7S8S9S:S;S<S4.r$\R                  R-                  SS9\R                  RC                  5       \R                  R                  S=\#\$45      S> 5       5       5       r%\R                  R(                  \R                  R                  S?S@5      \R                  R-                  SSS/S9\R                  R-                  SS9SA 5       5       5       5       r&\R                  R                  SBSC5      SD 5       r'\(" SE5      S/ 4\(" S5      S/ SFQ/ SGQ/4\(" SH5      S/ SFQ/ SGQSSI//4/r)\R                  R                  SJ\)5      SK 5       r*\R                  RW                  S5      \R                  R-                  SSS/S9SL 5       5       r,SM r-SNr.gO)PTestPermutationTesti/  r&  c                 L    [         R                  R                  S5      U l        g )Nl   F )re   rf   r   rV   )r6   s    r-   setup_method TestPermutationTest.setup_method4  s    99(()<=r0   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:::r0   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#   rB   rC   rD   z `permutation_type` must be in...r?   permutation_typer>   r@   r  rH   rI   rK   rL   rM   r  r  rS   rT   rU   )r5   r2   r3   rW   r   r4   )r6   r,   r  r   r7   s        r-   test_permutation_test_iv,TestPermutationTest.test_permutation_test_iv8  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?rd   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 )NrQ   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   rG  r
  r  r)   )r+   rt   rE   r
  r   r,   s       r-   r   1TestPermutationTest.test_batch.<locals>.statisticz  sc    ffkqwwqzJ#&z93G3G#HI "7717(27717+@@@r0   r   rc   T)rJ   r  rA   r#   )rN   rd   rl  r   r%   r$   )	r5   rV   rf   r  r
  r   r   r   r   )r6   r  rd   r,   r+   rt   r  rm   rn   r  r   s      `      @r-   r  TestPermutationTest.test_batchp  s    JJtxxr*+JJtxxr*+	A
 	 	"8H"$%%qfi Lq3??LFJL  C'''##q(((	%%qfi Lr3??LFJL  A%%%##r)))	%%qfi Ls3??LFJL  A%%%##s***T[[1T[[1r0   zpermutation_type, exact_sizer  r%   r$   )r  r  r  rY  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(   rs   s      r-   r   8TestPermutationTest.test_permutations.<locals>.statistic  r   r0   T)r  rA   r   )rJ   rd   )r5   rV   rf   r   r   r	   r|  )
r6   r  
exact_sizerd   r,   r+   rt   r   r  r|   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,,-;;;r0   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 rM  c                 B   > TR                  XS9TR                  XS9-
  $ r   r(   rs   s      r-   r   NTestPermutationTest.test_randomized_test_against_exact_both.<locals>.statistic  r   r0   Tr  rc   rA   r  rN   r   rV   rJ   rt  r   )r   binomre   rf   r   r5   r  r   infr   r   r   r6   r,   r   rV   r  nypermutationsr+   rt   r   r   r  r|   rn   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;r0   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  rM  c                 (   > TR                  X-
  US9$ r   r(   rs   s      r-   r   QTestPermutationTest.test_randomized_test_against_exact_samples.<locals>.statistic  s    7715t7,,r0   Tr  rc   r  rJ   rt  r   )
re   rf   r   r5   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;r0   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  rM  c                 D   > [         R                  " U TUS9R                  $ r   )r   pearsonrr   )r+   rE   rt   s     r-   r   RTestPermutationTest.test_randomized_test_against_exact_pairings.<locals>.statistic  s    >>!QT2<<<r0   Tr  rc   r  rJ   rt  r   )rV   r   	factorialre   rf   r   r5   r  r   r  r   r   r   )r6   r,   r   rV   r  r  r  r+   r   r   r  r|   rn   rt   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;r0   )
eager_onlyr   r1  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%  )rE   r&  r   r   rx   )r   r   ks_2sampr5   r   r"  )r+   rt   rE   r|   r   r,   s       r-   r   <TestPermutationTest.test_against_ks_2samp.<locals>.statistic  sT    $Q'):1)=q..DwKXC**S]]+C!hh!m3r744r0   r   rJ   r   rV   r   )rV   r  r   r  r5   r   re   r  r   r   r   r   r6   r   r,   r+   rt   r   r   r|   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Pr0   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  r1  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$ NrD   r   rx   r   r   ansarir5   r   r"  r+   rt   rE   r|   r,   s       r-   r   :TestPermutationTest.test_against_ansari.<locals>.statistic.  P    $Q'):1)=q,,q$/C**S]]+C!hh!m3r744r0   r  r   )rV   r  r   r   r5   r   re   r  r   r   r   r   )
r6   r   r,   r+   rt   alternative_correspondencealternative_scipyr   r   r|   s
     `       r-   test_against_ansari'TestPermutationTest.test_against_ansari!  s     HHOO!O,HHOO!O, /8173>&@" 7C<<2CD	5 zz!}bjjm1vybff+6HHF 	rzz(2D2D'EDIIV

BJJx$?diiPr0   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   rd   r  r#   rs  c                 B    [         R                  " XUSS9R                  $ N
asymptotic)rE   rP   )r   mannwhitneyur   r  s      r-   r   @TestPermutationTest.test_against_mannwhitneyu.<locals>.statisticE  s    %%alKUUUr0   T)rA   rJ   r   rE   rV   r   )r   uniformr   rV   r  r5   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Pr0   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   rd   r   r%   )r   r   r   rd   r  rO   c                 F    [         R                  " XUSS9nUR                  $ r  )r   cramervonmises_2sampr   )r+   rt   rE   r|   s       r-   r   7TestPermutationTest.test_against_cvm.<locals>.statisticY  s     ,,Q\RC== r0   r   r  r   )r   r   r   rV   r  r5   r   re   r  r   r   r   r   )r6   r,   r+   rt   r   r   r|   s          r-   test_against_cvm$TestPermutationTest.test_against_cvmP  s     JJNNNBJJNNqNI--a7C	!
 zz!}bjjm1vybff+4$((D 	rzz(2D2D'EDIIV

BJJx$?diiPr0   rE   )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%   rM  )r#   r%   r$   )r$   r#   r<   rE   c                 B    [         R                  " USU 06R                  $ rp  )r   kruskalr   r  s     r-   r   GTestPermutationTest.test_vectorized_nsamp_ptype_both.<locals>.statistic{  s    ==$2T2<<<r0   r   r  )rE   r   r  rV   rJ   r
  r   r   gQ?r   r   )re   rf   r   r   r  r5   r   r  r   r   r   r   )r6   rE   r,   rV   r+   rt   r   r   r   r   r  data_r|   rn   s                 r-    test_vectorized_nsamp_ptype_both4TestPermutationTest.test_vectorized_nsamp_ptype_bothe  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%   rY  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   rx   r   r   wilcoxonr5   r   r"  )r   rE   r|   r,   s      r-   statistic_1samp_1dETestPermutationTest.test_against_wilcoxon.<locals>.statistic_1samp_1d  sL     "!$A..TBC**S]]+C!hh!m3r744r0   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4r0   r  )rE   r   r  rV   rJ   r   r  )r   r  r   rV   r#  r5   re   r  r   r   r   r   r   )r6   r   r,   r+   rt   r   r$  r'  r  rm   rn   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Ar0   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$   rQ   rM  r   c                 >    [        U 5      nUR                  U S:  US9$ )Nr   rD   )r
   r   )r+   rE   xp_s      r-   r   =TestPermutationTest.test_against_binomtest.<locals>.statistic  s&    !!$C$$QU$66r0   rr  r  r!  Tr  )rA   r  rJ   rV   r   r   r   )rV   r  r   r   r   r5   r  r  r   r   r   )
r6   r   r,   r+   r   kr   r}  r   r|   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Pr0   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 )	NrY  rM  r  rO   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  )rP   rE   r   rx   )r   r   
kendalltaur5   r   r"  )r+   rE   r|   r,   rt   s      r-   r   >TestPermutationTest.test_against_kendalltau.<locals>.statistic  sN    !!$A""1a4HC**S]]+C!hh!m3r744r0   r  )r  rJ   rV   r   )rV   r  r   r4  r5   r   re   r  r   r   r   r   )r6   r,   r+   r   r   r|   rt   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Pr0   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 rd  rH  g      ?r#   c                 6   > TR                  U S:H  TS:H  -  US9$ Nr#   rD   )r   r+   rE   r,   rt   s     r-   r   @TestPermutationTest.test_against_fisher_exact.<locals>.statistic  s&    ##Q!VQ$7d#CCr0   r  )r  rJ   r   rV   r  r!  )re   rf   r   r'  r   r   contingencycrosstabr5   r   r  fisher_exactr   r   r  )
r6   r   r,   rV   r+   tabr   r|   rn   rt   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Kr0   )r\  r#   c                 X   U R                   R                  SS9nU R                   R                  SS9nU R                   R                  SS9n[        R                  " X!S9n[        R                  " X1S9n[        R                  " XAS9nUS   nX#U4nS nS n[        R
                  " U5      n[        R
                  " U5      n	U" [        R                  " U6 S	U06n
U	" [        R                  " U6 S	U06nS
USSSS.n[        XV4S[        R                  0UD6n[        XV4SS0UD6n[        UR                  XR                  S9  [        UR                  UR                  U R                  S9  [        UR                  XR                  S9  [        UR                  UR                  SS9  g )N)r$   r<   r%   rM  )r#   r<   r%   )r$   r<   r#   rD   r   c                  B    [         R                  " U SSS9R                  $ )NTr  rankedrP   )r   page_trend_testr   r   s    r-   r)  LTestPermutationTest.test_vectorized_nsamp_ptype_samples.<locals>.statistic1d	  s"    ((d0<>>GiHr0   c                  B    [         R                  " U SSS9R                  $ )NTr  rE  )r   rG  r   rH  s    r-   pvalue1dITestPermutationTest.test_vectorized_nsamp_ptype_samples.<locals>.pvalue1d  s"    ((d0799?@r0   rE   Fr   r  )rA   rE   r   r  rV   rJ   r   r   r   r   )rV   rf   r   rankdatar   r  re   broadcast_arraysr   r  r   r   r   r   )r6   rE   r+   rt   r   r   r)  rK  r   r   expected_statisticexpected_pvaluer  r|   rn   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;r0   r;   )rC   r$   g      @r  g?g&_?g      @gd~$I"@glu?)r+   rt   expected_lessexpected_2sidedexpected_Pr_gte_S_meanrO  expected_avgexpected_std)o   k   rc   c   rm  j   m   l   )	rY  r]  r[  b   i   rn  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+   rt   rO  rS  rT  rU  rV  rW  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>.statisticY  r  r0   r!  r6  z$Ties preclude use of exact statisticr   )rJ   r   r  Nr   g|=r   r%  r   )r5   r   rT  rU  r  UserWarningr   re   r  r   r   r   r   r)   r|  r   r   r'  r   r   r  )r6   rb  r,   r+   rt   rO  rS  rT  rU  rV  rW  r   r  r|   rn   Sr)   r   Pr_gte_S_means     `                r-   test_with_ties"TestPermutationTest.test_with_ties2  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   )r5   r   rM  r   r  r   r;  s     r-   r   BTestPermutationTest.test_against_spearmanr_in_R.<locals>.statistic  s=     

5>>*;A*>TJKA>>!QT2<<<r0   r  )r  rJ   r   r   gvIh%<=r   N)
r5   r   rM  r   r   r  r   r   r   r   )	r6   r   rP  r,   r+   rO  r   r|   rt   s	      `    @r-   test_against_spearmanr_in_R/TestPermutationTest.test_against_spearmanr_in_Rx  s    . JJ < =JJ ; </JJu~~&7&:;<	= tY+-66{L 	rzz2D'EDIIV

BJJ$?eLr0   rN   )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"   )r2   r3   rW   r   r   _batch_generator)r6   rN   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  rd  ziterable, batch, expectedc                 P    [        [        R                  " X5      5      nXC:X  d   eg r'   )r   r   rq  )r6   iterablerN   r   gots        r-   test_batch_generator(TestPermutationTest.test_batch_generator  s#     ;//@Ar0   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   $ )NrD   r   )r   r  r  s      r-   r   FTestPermutationTest.test_finite_precision_statistic.<locals>.statistic  s    >>!T2155r0   r  r  r$   r&  r   gUUUUUU?)
r5   r  r   r   r   r   r|  r   r   r   )
r6   r,   r+   rt   r   r|   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)))))r0   c                   ^ [         R                  R                  S5      n[        T5      nTR	                  UR                  S5      US9nTR	                  SSSTR
                  S/5      nTR	                  UR                  S5      US9nU4S jnSUSS	.n[        XF4U40 UD6n	TR                  XDU-   /5      U4n
[        X40 UD6nTR	                  TR
                  US9n[        UR                  S   U	R                  5        [        UR                  S   U	R                  5        [        UR                  S
   U5        [        UR                  S
   U5        g )Nl    G+ r   r!  r   rY  c                 B   > TR                  XS9TR                  XS9-
  $ r   r(   rs   s      r-   r   9TestPermutationTest.test_nan_statistic.<locals>.statistic  r   r0   r  r   )r  rV   rE   r#   )re   rf   r   r   r5   r<  r   r   r   r   r   )r6   r,   rV   r  r+   x_nanrt   r   r  rB  r   r|   NaNs    `           r-   test_nan_statistic&TestPermutationTest.test_nan_statistic  s+    ii##J/ $JJszz!}EJ2

Aq!RVVQ/0JJszz!}EJ2	A %2#rJvy9D9!Y(!,t7$7jjuj-a(#--8

1szz2a(#.

1s+r0   rU   N)/r1   r  r  r  r   r  r  r2   r  r  re   rf   rg   r   r  r   r  r  r  r  r  r  r   r  r  r  r  r  r  r)  r0  r6  rA  r  rQ  
tie_case_1
tie_case_2ri  rn  rr  r_  batch_generator_casesrw  r  r  r  r  rx   r0   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$ &[[VW-"< . '"<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 *.,r0   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   )re   r  r   cumsumsetr   _all_partitions_concatenatedsplitaddrX   	frozensetprodr_  r   r   r  r  r   )r   ncall_partitionsr  partition_concatenatedpartitioningry   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: rQ   rM  c                 @   > [         R                  R                  U TS9$ )Nr   )r   r   r   rz  s    r-   r   &test_parameter_vectorized.<locals>.rvs  s    zz~~4c~::r0   r]   )r   rV   rP   r  )r   rV   r  )rY   r   r  rJ   rc   c                    > U R                   S:  d  [        R                  " U T5      (       d   e[        R                  " XS9$ r:  )r"  re   array_equalr)   )r+   rE   rY   s     r-   r   ,test_parameter_vectorized.<locals>.statistic  s3    vvzR^^Av6666wwq$$r0   )r   rA   Tc                 R    U R                   S:X  d   e[        R                  " U 5      $ r  )r"  re   r)   r0  s    r-   r   r    s     vv{{wwqzr0   Frx   )re   rf   r   ri  r   r   )	r  r   fun_optionscommon_optionsrO  optionsr   rV   rY   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9r0   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   rV   )re   rf   r   r2   r3   rW   r   MonteCarloMethod)r6   r7   rV   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rx   N)r1   r  r  r  r  r  rx   r0   r-   r  r    s    <r0   r  )0rT  r2   r   re   numpy.testingr   r   scipy._lib._utilr   scipy._lib._array_apir   r   r   r	   r
   r   r   r   scipy._lib._array_api_no_0dr   r   scipy._externalr   r  scipyr   r   scipy.fft.tests.test_fftlogr   scipy.optimizer   scipy.statsr   r   r   r   scipy.stats._resamplingr   lazy_xp_modulesr   r  r  r  r  r  r  r  r  rx   r0   r-   <module>r     s      7 )? ? ? I 2   8  L L - - ' 9VA VA VAt #$r8 r8 %r8j 5A? A? A?H #$t
, t
, %t
,n0* NP:P:B< <r0   