
    doi\                        S SK Jr  S SKJr  S SKrS SKrS SKrS SKJr  S SK	r
S SKJrJr  S SKrS SKJr  S SKJr  S SKJr  S SKJrJrJrJrJrJrJrJrJrJrJ r   S SK!J"s  J#r$  S S	K%J&r&  S S
K'J(r(J)r)J*r*J+r+J,r,J-r-J.r.  \&" \5        \R^                  R`                  S 5       r1S r2S r3S r4S r5S r6\ SS j5       r7S r8S r9 " S S5      r: " S S5      r; " S S5      r<S r= " S S5      r>g)    )PoolN)Fraction)assert_equalassert_)raises)skip_xp_invalid_arg)xp_assert_equal)_aligned_zeroscheck_random_state
MapWrappergetfullargspec_no_selfFullArgSpecrng_integers_validate_int_rename_parameter_contains_nan_rng_html_rewrite_workers_wrapper)lazy_xp_function)clusterinterpolatelinalgoptimizesparsespatialstatsc                      Sn S nS Hf  nS H]  nS HT  n[         R                  [         R                  4 H-  nUSSSU44 H  n[        U 5       H  nU" XeXB5        M     M      M/     MV     M_     Mh     g )	N
   c                 z   [        XX#45      n[        XX#S9nUc   [        R                  " U5      R                  n[        UR                  S   S   U-  S5        [        U S5      (       a  [        UR                  X5        O[        UR                  U 4U5        [        UR                  U5        US:X  a!  [        UR                  R                  U5        g US:X  a2  UR                  S:  a!  [        UR                  R                  U5        g g Uc!  [        UR                  R                  U5        g [        5       e)N)aligndatar   __len__CF)reprr
   npdtype	alignmentr   __array_interface__hasattrshaper   flagsc_contiguoussizef_contiguous
ValueError)r+   r'   orderr    err_msgxs         W/var/www/html/land-ocr/venv/lib/python3.13/site-packages/scipy/_lib/tests/test__util.pycheck"test__aligned_zeros.<locals>.check   s    e345<=HHUO--EQ**6215=qA5)$$%15(G4QWWe$C<AGG(('2c\vvz,,g6  ]AGG(('2,    )	                      @   N)r   r8   r:      )r#   r$   Nr8   r9   r:   )r&   uint8float64range)niterr5   r    nr1   r'   r+   js           r4   test__aligned_zerosrG      sr    E. 3A) hh

3E"#aAq\!2!&uA!%= ". "3 4 *  3r7   c                  d   [        S5      n [        [        U 5      [        R                  R
                  5        [        U 5      n [        [        U 5      [        R                  R
                  5        [        S 5      n [        [        U 5      [        R                  R
                  5        [        [        [         S5        [        R                  R                  [        R                  R                  5       5      n[        U5      n [        [        U 5      [        R                  R                  5        g )Nr8   a)
r   r   typer&   randomRandomStateassert_raisesr0   	GeneratorPCG64)rsirgs     r4   test_check_random_staterR   ?   s    
 Q
CcBII112
S
!CcBII112
T
"CcBII112*0#6			RYY__.	/B
R
 CcBII//0r7   c                  l   [        S5      n [        U R                  5      n[        U[	        S/S S S/ S 0 5      5        [        U R
                  5      n[        U[	        SS/S S S / S 0 5      5         " S S5      nU" 5       n[        UR                  5      n[        U[	        / SQS	S
SS/SS 00 5      5        g )Nr8   pool)r8   funciterablec                   &    \ rS rSrSSS.S jjrSrg)0test_getfullargspec_no_self.<locals>._rv_genericY   Nr.   c                    g N )selfrI   bcr.   argskwargss          r4   _rvs5test_getfullargspec_no_self.<locals>._rv_generic._rvsZ   s    r7   r]   r9   r:   )__name__
__module____qualname____firstlineno__rc   __static_attributes__r]   r7   r4   _rv_genericrX   Y   s    	 	 	r7   rk   )rI   r_   r`   ra   rb   re   r.   )r   r   __init__r   r   __call__rc   )pargspecrk   rv_objs       r4   test_getfullargspec_no_selfrq   P   s    1A$QZZ0G+vhdD"&*B0 1$QZZ0G+vz&:D$&($4 5  ]F$V[[1G+ovx&,vhL Mr7   c                     [         R                  " S5      n [         R                  " U 5      n[        S5      n[	        UR
                  [        L 5        [	        UR                  S L 5        [	        UR                  SL 5        [        U" [         R                  U 5      5      n[        X15        [        [        5         [        S5      nS S S 5        g ! , (       d  f       g = f)N      $@r8   Fr   )r&   arangesinr   r   _mapfuncmaprT   	_own_poollistr   rM   RuntimeError)in_argout_argrn   outs       r4   test_mapwrapper_serialr~   c   s    YYs^FffVnG1AAJJ#AFFdNAKK5 !
q 
!C	|	$qM 
%	$	$s   ;C
Cc                      [        S5       n U R                  [        R                  / SQ5        S S S 5        g ! , (       d  f       g = f)Nr9   )r8   r9   r:   r;   )r   rw   mathru   )rn   s    r4   	test_poolr   r   s'    	aA	dhh% 
s	   #8
Ac                     [         R                  " S5      n [         R                  " U 5      n[        S5       nU" [         R                  U 5      n[	        [        U5      U5        [        UR                  SL 5        [        [        UR                  [        5      5        [        UR                  S L5        S S S 5        [        [        5       nW" [         R                  U 5        S S S 5        [        WR                  [        L 5        [!        S5       n[        UR"                  5      n[        UR                  SL 5        UR%                  5         UR#                  [         R                  U 5      n[	        [        U5      U5        S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nrs   r9   TF)r&   rt   ru   r   r   ry   r   rx   
isinstancerT   PWLrv   rM   	ExceptionrJ   r0   r   rw   close)r{   r|   rn   r}   excinfoqs         r4   test_mapwrapper_parallelr   w   s&   YYs^FffVnG	A!T#Y(t#$
1663'(

$&' 
 
y	!W	"&&& 
" GLLJ&' 
aAquuu$%		 eeBFFF#T#Y( 
! 
 
"	! 
s%   A>FFA2F0
F
F-0
F>c           	          Uc   e[        U[        5      (       d   e[        R                  " [	        U" [        R
                  X-  5      5      5      $ r\   )r   r   r&   arrayry   ru   )r3   r_   workerss      r4   user_of_workersr      sB    gz****88D/011r7   c                  l   [         R                  " S[         R                  5      n [         R                  " U S-  5      n[	        S5       n[        XR                  SS9n[        X15        S S S 5        [        U S SS9n[        X15        [        U SSS9n[        X15        [        R                  " [
        SS9n[        U" U 5      U5        [	        S5       n[        R                  " [
        SUR                  S9n[        U" U 5      U5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr          @r9   )r   r_   )r_   )r_   r   )
r&   linspacepiru   r   r   rw   r   	functoolspartial)arrreqrn   vpart_fs        r4   test__workers_wrapperr      s    
++a
C
&&s
C	aAC!4Q 
 	TQ/AQ!,A !4Fc"	aA""?aGVC[#& 
 
 
s   
 D7D%
D"%
D3c                     [         R                  R                  5       n [        U SSSSS9n[         R                  " U5      S:X  d   e[         R
                  " U5      S:X  d   eUR                  S:X  d   e[        U SSSS9n[         R                  " U5      S:X  d   e[         R
                  " U5      S:X  d   eUR                  S:X  d   e[        U SSSS	S9n[         R                  " U5      S
:X  d   e[         R
                  " U5      S:X  d   eUR                  S:X  d   e[        U SSS	S9n[         R                  " U5      S
:X  d   e[         R
                  " U5      S:X  d   eUR                  S:X  d   e [         R                  R                  5       n [        U SSSSS9n[         R                  " U5      S:X  d   e[         R
                  " U5      S:X  d   eUR                  S:X  d   e[        U SSSS9n[         R                  " U5      S:X  d   e[         R
                  " U5      S:X  d   eUR                  S:X  d   e[        U SSSS	S9n[         R                  " U5      S
:X  d   e[         R
                  " U5      S:X  d   eUR                  S:X  d   e[        U SSS	S9n[         R                  " U5      S
:X  d   e[         R
                  " U5      S:X  d   eUR                  S:X  d   eg ! [         a     g f = f)Nr9      d   T)lowhighr.   endpoint)r   )r   r.   r   r   Fr;   )	r&   rK   rL   r   maxminr+   default_rngAttributeError)rngr   s     r4   test_rng_integersr      s   
))


!C sd
CC66#;!66#;!99 sd
;C66#;!66#;!99 se
DC66#;!66#;!99 se
<C66#;!66#;!99ii##%
 sd
CC66#;!66#;!99 sd
;C66#;!66#;!99 se
DC66#;!66#;!99 se
<C66#;!66#;!993  s   :K3 3
L ?L c            	       @   \ rS rSr\R
                  R                  SS\R                  " S5      \R                  " S5      \R                  " S5      /5      S 5       r\R
                  R                  SS\R                  " S/5      \" SS5      /5      S 5       rS rS	rg
)TestValidateInt   rE   r;   c                 ,    [        US5      nUS:X  d   eg )NrE   r;   )r   r^   rE   s     r4   test_validate_int!TestValidateInt.test_validate_int   s    !S!Avvr7         @r8   c                     [         R                  " [        SS9   [        US5        S S S 5        g ! , (       d  f       g = f)Nzn must be an integermatchrE   )pytestr   	TypeErrorr   r   s     r4   test_validate_int_bad%TestValidateInt.test_validate_int_bad   s(    ]]9,BC!S! DCCs   0
>c                     [         R                  " [        SS9   [        SSS5        S S S 5        g ! , (       d  f       g = f)Nz$n must be an integer not less than 0r   rE   r   )r   r   r0   r   r^   s    r4   test_validate_int_below_min+TestValidateInt.test_validate_int_below_min   s1    ]]: .; <"c1%< < <s   1
?r]   N)rf   rg   rh   ri   r   markparametrizer&   rA   int16r   r   r   r   r   rj   r]   r7   r4   r   r      s    [[S1bhhqk288A;"LM N [[S3!x1~"FG" H"&r7   r   c                   ~    \ rS rSr\" SS5      S 5       r\" SSSS9S 5       rS r\R                  S	 5       r
S
 rSrg)TestRenameParameteri  oldnewc                     U$ r\   r]   r^   r   s     r4   old_keyword_still_accepted.TestRenameParameter.old_keyword_still_accepted      
r7   z1.9.0)dep_versionc                     U$ r\   r]   r   s     r4   old_keyword_deprecated*TestRenameParameter.old_keyword_deprecated  r   r7   c                     U R                  S5      nU R                  SS9nU R                  SS9nXs=:X  a  Us=:X  a  S:X  d   e   e[        R                  " S5      n[        R                  " [
        US9   U R                  SS9  S S S 5        [        R                  " S5      n[        R                  " [
        US9   U R                  SSS9  S S S 5        [        R                  " [
        US9   U R                  SSS9  S S S 5        [        R                  " [
        US9   U R                  SSS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nc= f! , (       d  f       g = f)	Nr   r   r   z.old_keyword_still_accepted() got an unexpectedr   
unexpectedz)old_keyword_still_accepted() got multipler   r   )r   reescaper   r   r   )r^   res1res2res3messages        r4   test_old_keyword_still_accepted3TestRenameParameter.test_old_keyword_still_accepted  s/   ..r2..2.6..2.6)t)r))))) ))LM]]9G4++r+: 5 ))GH]]9G4++BB+7 5]]9G4++BB+7 5]]9G4+++; 54 54
 544444s0   7D<>E0E"E/<
E

E
E,/
E=c                     SSK Jn  U" 5       $ )Nr   )Lock)	threadingr   )r^   r   s     r4   
kwarg_lockTestRenameParameter.kwarg_lock$  s    "vr7   c                    SnU R                  S5      nU R                  SS9nU   [        R                  " [        US9   U R                  SS9nS S S 5        S S S 5        X4s=:X  a  Ws=:X  a  S:X  d   e   e[        R
                  " S5      n[        R                  " [        US9   U R                  SS9  S S S 5        [        R
                  " S5      n[        R                  " [        US9   U R                  SSS9  S S S 5        U   [        R                  " [        US9   [        R                  " [        US9   U R                  SSS9  S S S 5        S S S 5        S S S 5        U   [        R                  " [        US9   [        R                  " [        US9   U R                  SSS	9  S S S 5        S S S 5        S S S 5        g ! , (       d  f       GN}= f! , (       d  f       GN= f! , (       d  f       GN:= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)
Nz+Use of keyword argument `old` is deprecatedr   r   r   r   z*old_keyword_deprecated() got an unexpectedr   z%old_keyword_deprecated() got multipler   )r   r   warnsDeprecationWarningr   r   r   r   )r^   r   dep_msgr   r   r   r   s          r4   test_old_keyword_deprecated/TestRenameParameter.test_old_keyword_deprecated)  s    @**2.**r*20@6626>D A  )t)r))))) ))HI]]9G4''2'6 5
 ))CD]]9G4'''3 5y8LL!37C///; D 9 
 y8LL!37C//BB/? D 9 Z' A@ Z 54 54 DC 98 Z DC 98 Zs   GGG&G)-G;H/"H<HHH/'I"II ,I4I"
G	G
G&)
G8;
H

HH
H,	(H//
H= 
I
I
I	I""
I0r]   N)rf   rg   rh   ri   r   r   r   r   r   fixturer   r   rj   r]   r7   r4   r   r     s]    
 ue$ % ue9 :<* ^^ @r7   r   c                      \ rS rSrS rS r\S 5       r\R                  R                  SSS9\R                  R                  S/ S	Q5      S
 5       5       r\R                  R                  SSS9\R                  R                  SSS9\R                  R                  SSS9\R                  R                  SSS9S 5       5       5       5       rSrg)TestContainsNaNiJ  c                 R   [         R                  " SSS[         R                  /5      n[        U5      (       d   e[        USS9(       d   e[        USS9(       d   e[        US S 5      (       a   e[        US S SS9(       a   e[        US S SS9(       a   e[        R
                  " [        SS9   [        US	S9  S S S 5        [        US S S	S9(       a   e[        R
                  " [        S
S9   [        USS9  S S S 5        g ! , (       d  f       NO= f! , (       d  f       g = f)Nr8   r9   r:   	propagate)
nan_policyomitThe input contains nan valuesr   raiseznan_policy must be one ofnan)r&   r   r   r   r   r   r0   )r^   r!   s     r4   test_policyTestContainsNaN.test_policyK  s    xxAq"&&)*T""""Tk:::Tf555 bq**** bqkBBB bqf===]]:-LM$73 N bqg>>>]]:-HI$51 JI	 NM JIs   3D3D
D
D&c                    [        [        R                  " / [        S95      (       a   e[        [        R                  " / SQ5      5      (       a   e[        [        R                  " SS/SS//5      5      (       a   e[        [        R                  " / SQ5      5      (       a   e[        [        R                  " / SQ5      5      (       a   e[        [        R                  " S	S
[        R                  /5      5      (       d   e[        [        R                  " S	S[        R                  /5      5      (       d   e[        [        R                  " [        R                  S[        R                  /5      5      (       d   e[        [        R                  " S	S/SS//5      5      (       a   e[        [        R                  " S	S/S[        R                  //5      5      (       d   eg )Nr'   )r8   r9   r:   r8   r9   r:   r;   )      ?r         @)r                  @r   r   r   r   r   r   )r   r&   r   floatr   r   s    r4   test_contains_nan!TestContainsNaN.test_contains_nan\  sZ    "E!:;;;; !)!45555 Aq6Aq6*:!;<<<< ,!78888 -!89999RXXr3&789999RXXr2rvv&678888RXXrvvr266&:;<<<< B8b"X*>!?@@@@RXXBx"bff&>?@@@@r7   c                    [         R                  " SSS[         R                  /5      n[        U5      (       a   e[         R                  " SSS[         R                  /SS9n[        U5      (       d   e[         R                  " SS/S[         R                  //5      n[        U5      (       a   e[         R                  " SS/S[         R                  //SS9n[        U5      (       d   eg )Nr8   r9   3objectr   1r:   )r&   r   r   r   )r^   data1data2data3data4s        r4   test_contains_nan_with_strings.TestContainsNaN.test_contains_nan_with_stringsl  s    !QRVV,- ''''!QRVV,H=U####3(QK01 ''''3(QK0AU####r7   Tzlazy backends tested separately)
eager_onlyreasonr   )r   r   r   c                    [         R                  R                  S5      nUR                  SS9nUR                  U5      n[	        XR5      (       a   e[
        R                  " U5      S   R                  UR                  5      nUS:X  a.  [        R                  " [        SS9   [	        XR5        S S S 5        g US:X  a  [	        XRS	S
9(       d   eg US:X  a  [	        XR5      (       d   eg g ! , (       d  f       g = f)N   }? r9   r:   r;   rZ   r8   r9   r8   r   r   r   r   Txp_omit_okayr   )r&   rK   r   asarrayr   xpxatsetr   r   r   r0   )r^   xpr   r   x0r3   s         r4   test_array_apiTestContainsNaN.test_array_apiz  s     ii##O4ZZYZ'JJrN ////FF1Ig""266* z1PQa, RQ6! TBBB;& //// '	 RQs   #C**
C8numpyzlazy backends only)r  cupyarray_api_stricttorchc                    [         R                  R                  S5      nUR                  SS9nUR                  U5      n[	        [        U5      UR                  S5      5        [	        [        US5      UR                  S5      5        [	        [        USSS9UR                  S5      5        S	n[        R                  " [        US
9   [        US5        S S S 5        [        R                  " [        US
9   [        US5        S S S 5        [        R                  " U5      S   R                  [         R                  5      n[	        [        U5      UR                  S5      5        [	        [        US5      UR                  S5      5        [	        [        USSS9UR                  S5      5        [        R                  " [        US
9   [        US5        S S S 5        [        R                  " [        US
9   [        US5        S S S 5        g ! , (       d  f       GN== f! , (       d  f       GN!= f! , (       d  f       Na= f! , (       d  f       g = f)Nr  r  rZ   Fr   r   Tr  znot supported for lazy arraysr   r   r  )r&   rK   r   r  r	   r   r   r   r   r	  r
  r  r   )r^   r  r   r  r3   r   s         r4   test_array_api_lazy#TestContainsNaN.test_array_api_lazy  s   
 ii##O4ZZYZ'JJrNa("**U*;<a5rzz%7HIadCRZZPUEVW/]]9E2!V$ 3]]9E2!W% 3 FF1Ig""266*a("**T*:;a5rzz$7GHadCRZZPTEUV]]9E2!V$ 3]]9E2!W% 32 3222 3222s0   H6HH/5I 
H
H,/
H= 
Ir]   N)rf   rg   rh   ri   r   r   r   r   r   r   skip_xp_backendsr   r  r  rj   r]   r7   r4   r   r   J  s    2"A  $ $ [[!!T)J " L[[\+IJ0 KL0  [[!!'2F!G[[!!&1E!F[[!!"4=Q!R[[!!'2F!G& H S G H&r7   r   c                  @    S n [        U 5      " 5       n/ SQnX:X  d   eg )Nc                      / SQn U $ )N)znp.random.default_rng(8989843)np.random.default_rng(seed)z8np.random.default_rng(0x9a71b21474694f919882289dc1559ca) bob r]   )liness    r4   mock_str(test__rng_html_rewrite.<locals>.mock_str  s    
 r7   )np.random.default_rng()r  r  r  )r   )r  resrefs      r4   test__rng_html_rewriter"    s)     H
%
'CC ::r7   c                      \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r\ RB                  RE                  S5      \ RB                  RF                  \ RB                  RI                  S\S 4\S 4\S!4\S 4\S 4\
S 4\S 4\S 4\S!4\S!4\S!4\S!4\S!4\S!4\S!4\S!4\S!4\S!4\S!4\S 4\S 4\S 4\S 4\S 4\S 4/5      S" 5       5       5       r%S#r&g$)%TestTransitionToRNGi  c                     [         R                  R                  S5      n[        R                  R
                  " UR                  SS9S40 UD6$ N   2Faj  )   r:   rZ   r:   r&   rK   r   r   vqkmeans2r^   rb   r   s      r4   kmeansTestTransitionToRNG.kmeans  >    ii##$78zz!!#**'*":AHHHr7   c                     [         R                  R                  S5      n[        R                  R
                  " UR                  SS9S40 UD6$ r&  r)  r,  s      r4   r+  TestTransitionToRNG.kmeans2  r/  r7   c                     [         R                  R                  S5      nUR                  S5      u  p4n[        R                  " X540 UD6nU" U5      $ )Nr'  )r:   r   )r&   rK   r   r   BarycentricInterpolator)r^   rb   r   x1x2y1fs          r4   barycentricTestTransitionToRNG.barycentric  sG    ii##$78ZZ(
//A&Aur7   c                     [         R                  R                  S5      n[        R                  " UR                  S5      S40 UD6$ )Nr'  r   r   r:   )r&   rK   r   r   clarkson_woodruff_transformr,  s      r4   r<  /TestTransitionToRNG.clarkson_woodruff_transform  s8    ii##$7811#**X2FTVTTr7   c                     [         R                  R                  S5      n[        R                  " [        R
                  UR                  S5      40 UD6R                  $ )Nr'  r:   )r&   rK   r   r   basinhoppingrosenr3   r,  s      r4   r?   TestTransitionToRNG.basinhopping  sA    ii##$78$$X^^SZZ]MfMOOOr7   c                     [         R                  R                  S5      n[        R                  " UR                  S5      * S-  UR                  S5      S-  5      nU" [        R
                  U40 UD6R                  $ )Nr'  r:   r   )r&   rK   r   r   Boundsr@  r3   )r^   funrb   r   boundss        r4   optTestTransitionToRNG.opt  s_    ii##$78#**Q-"!4cjjmb6HI8>>64V4666r7   c                 D    U R                   " [        R                  40 UD6$ r\   )rF  r   differential_evolutionr^   rb   s     r4   rI  *TestTransitionToRNG.differential_evolution  s    xx77B6BBr7   c                 D    U R                   " [        R                  40 UD6$ r\   )rF  r   dual_annealingrJ  s     r4   rM  "TestTransitionToRNG.dual_annealing  s    xx//:6::r7   c                     [         R                  R                  S5      nUR                  S5      n[        R                  " [        R
                  [        R                  U4SS0UD6$ )Nr'  r:   	directionrK   )r&   rK   r   r   
check_gradr@  	rosen_der)r^   rb   r   r3   s       r4   rQ  TestTransitionToRNG.check_grad  s[    ii##$78JJqM""8>>83E3Eq A-5A9?A 	Ar7   c                 N    [         R                  " SSS0UD6R                  5       $ )Ndensityr   )r;  )r   random_arraytoarrayrJ  s     r4   rV   TestTransitionToRNG.random_array  s$    ""CSCFCKKMMr7   c                 N    [         R                  " SSS0UD6R                  5       $ NrU  r   r;  )r   rK   rW  rJ  s     r4   rK   TestTransitionToRNG.random  s"    }};S;F;CCEEr7   c                 N    [         R                  " SSS0UD6R                  5       $ rZ  )r   randrW  rJ  s     r4   r]  TestTransitionToRNG.rand  s"    {{939&9AACCr7   c                     [         R                  R                  S5      nUR                  S5      n[        R                  R
                  " U40 UD6$ )Nr'  r;  )r&   rK   r   r   r   svds)r^   rb   r   As       r4   r`  TestTransitionToRNG.svds  s?    ii##$78JJx }}!!!.v..r7   c                 r    [         R                  R                  R                  " S0 UD6R	                  5       $ )N)r:   )r   	transformRotationrK   	as_matrixrJ  s     r4   random_rotation#TestTransitionToRNG.random_rotation  s+      ))00=f=GGIIr7   c                     [         R                  R                  S5      nUR                  S5      n[        R                  " [        R
                  U40 UD6R                  $ Nr'  r   )r&   rK   r   r   goodness_of_fitlaplacepvaluer^   rb   r   r!   s       r4   rk  #TestTransitionToRNG.goodness_of_fit  sF    ii##$78zz#$$U]]DCFCJJJr7   c                     [         R                  R                  S5      n[        UR                  S5      5      nS n[        R
                  " X440 UD6R                  $ )Nr'  r9   r   c                 T    [         R                  " XS9[         R                  " XS9-
  $ )N)axis)r&   mean)r3   yrs  s      r4   	statistic7TestTransitionToRNG.permutation_test.<locals>.statistic  s    "''!*?"''!BW*W#Wr7   )r&   rK   r   tupler   permutation_testrm  )r^   rb   r   r!   rv  s        r4   ry  $TestTransitionToRNG.permutation_test  sI    ii##$78SZZ)*W%%d@@GGGr7   c                     [         R                  R                  S5      nUR                  S5      4n[        R                  " U[         R
                  40 UD6R                  $ rj  )r&   rK   r   r   	bootstraprt  confidence_intervalrn  s       r4   r|  TestTransitionToRNG.bootstrap  sG    ii##$78

3!tRWW77KKKr7   c                     [         R                  R                  S5      nUR                  S5      u  p4n[        R                  " X44SU0UD6R
                  $ )Nr'  )r:   r   control)r&   rK   r   r   dunnettrm  )r^   rb   r   r3   ru  r  s         r4   r  TestTransitionToRNG.dunnett	  sH    ii##$78

8,g}}Q=7=f=DDDr7   c                    S n[         R                  " [        R                  * S[        R                  -  S9[         R                  " [        R                  * S[        R                  -  S9[         R                  " [        R                  * S[        R                  -  S9/n[         R                  " SUSUS.UD6nUR
                  $ )Nc                     [         R                  " U S   5      S[         R                  " U S   5      S-  -  -   SU S   S-  -  [         R                  " U S   5      -  -   $ )Nr      r8   r9   g?r;   )r&   ru   )r3   s    r4   
f_ishigami5TestTransitionToRNG.sobol_indices.<locals>.f_ishigami  sX    266!A$<!bffQqTla6G2G#G%(AaDAI%6!%E$F Gr7   r9   )locscalei   )rU   rE   distsr]   )r   uniformr&   r   sobol_indicesfirst_order)r^   rb   r  r  r   s        r4   r  !TestTransitionToRNG.sobol_indices  s    	GBEE6RUU;BEE6RUU;BEE6RUU;= !!QzTQ&Qr7   c                 8    U" SSS0UD6nUR                  S5      $ )Ndr8   r;   r]   )rK   )r^   enginerb   qrngs       r4   
qmc_engineTestTransitionToRNG.qmc_engine  s"    $$V${{1~r7   c                 X    U R                   " [        R                  R                  40 UD6$ r\   )r  r   qmcHaltonrJ  s     r4   haltonTestTransitionToRNG.halton  s     uyy//:6::r7   c                 X    U R                   " [        R                  R                  40 UD6$ r\   )r  r   r  SobolrJ  s     r4   sobolTestTransitionToRNG.sobol  s    uyy9&99r7   c                 X    U R                   " [        R                  R                  40 UD6$ r\   )r  r   r  LatinHypercuberJ  s     r4   latin_hypercube#TestTransitionToRNG.latin_hypercube!  s     uyy77B6BBr7   c                 X    U R                   " [        R                  R                  40 UD6$ r\   )r  r   r  PoissonDiskrJ  s     r4   poisson_disk TestTransitionToRNG.poisson_disk$  s     uyy44???r7   c                 h    [         R                  R                  " S/40 UD6nUR                  S5      $ )Nr   r;   )r   r  MultivariateNormalQMCrK   r^   rb   Xs      r4   multivariate_normal_qmc+TestTransitionToRNG.multivariate_normal_qmc'  s+    II++QC:6:xx{r7   c                 l    [         R                  R                  " SS/S40 UD6nUR                  S5      $ )Ng      ?r;   )r   r  MultinomialQMCrK   r  s      r4   multinomial_qmc#TestTransitionToRNG.multinomial_qmc+  s/    II$$c3Z=f=xx{r7   c                     [         R                  R                  S5      n[        UR                  S5      5      n[        R
                  " S0 UD6n[        R                  " USU06R                  $ )Nr'  rq  methodr]   )r&   rK   r   rx  r   PermutationMethodpearsonrrm  )r^   rb   r   r!   r  s        r4   permutation_method&TestTransitionToRNG.permutation_method/  sW    ii##$78SZZ)*((262~~t3F3:::r7   c                     [         R                  R                  S5      n[        UR                  S5      5      n[        R
                  " U6 n[        R                  " S0 UD6nUR                  US9$ )Nr'  rq  )r  r]   )r&   rK   r   rx  r   r  BootstrapMethodr}  )r^   rb   r   r!   r   r  s         r4   bootstrap_method$TestTransitionToRNG.bootstrap_method5  s_    ii##$78SZZ)*nnd#&&00&&f&55r7   r   zmethod, arg_nameseedrandom_statec           	      X   [         R                  R                  S 5        Sn[         R                  R                  U5      nSn[        R
                  " [        US9   U" U 40 SXBU0D6  S S S 5        [         R                  R                  U5      nU" XS9nU" XS9n[        Xv5        UR                  S;   a  U" U 40 X#0D6n[        X5        g [         R                  R                  U5      nU" U 40 X$0D6nU" U 40 X#0D6nUR                  S;   aI  U" U 40 U[         R                  R                  U5      0D6n	[        X5        U" U 40 X#0D6n
[        X5        g [         R                  R                  U5        U" U 40 US 0D6n[        Xv5        [        X5        g ! , (       d  f       GN8= f)Nl   p_ z3got multiple values for argument now known as `rng`r   r   )r   >   r  r  >   r  r  r  r  r  r  )
r&   rK   r  r   r   r   r   r   rf   rL   )r^   r  arg_namer  r   r   r   r   r   res1bres2bs              r4   test_rng_deterministic*TestTransitionToRNG.test_rng_deterministic<  s   < 			tii##D)G]]9G448E3$78 5 ii##D)d$d%T ??::$38"23D$ii##D)d.xo.d/x./?? M M 4KHbii.C.CD.I#JKE%44H#34E%
		td/x./T T ? 54s   F
F)r]   N)'rf   rg   rh   ri   r-  r+  r8  r<  r?  rF  rI  rM  rQ  rV  rK   r]  r`  rg  rk  ry  r|  r  r  r  r  r  r  r  r  r  r  r  r   r   	fail_slowslowr   r  rj   r]   r7   r4   r$  r$    s   IIUP7
C;ANFD/
JK
HL
E
;:C@;6 [[2[[[[/		&	n%	$f-	v	(	 	V	~&	 	~	.)	.)	>*	N#	^,	>*	.!	'			&!	v	 &)	&!32 6%!7  :%!r7   r$  )r8   N)?multiprocessingr   multiprocessing.poolr   r   r   r   	fractionsr   r  r&   numpy.testingr   r   r   r   rM   scipy.conftestr   scipy._lib._array_apir	   scipy._lib._utilr
   r   r   r   r   r   r   r   r   r   r   scipy._lib.array_api_extra_libarray_api_extrar	  "scipy._lib.array_api_extra.testingr   scipyr   r   r   r   r   r   r   r   r  rG   rR   rq   r~   r   r   r   r   r   r   r   r   r"  r$  r]   r7   r4   <module>r     s      , 	     /  * . 1R R R R ) ( ? P P P    >  >F1"M&&
)@ 2 2'.7 t& &$F@ F@R^& ^&B*~! ~!r7   