
    Bpj X                        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  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        S r.S r/S r0S r1S r2\SS j5       r3S r4S r5 " S S5      r6 " S S5      r7 " S S5      r8S r9 " S S5      r:g)    )PoolN)Fraction)assert_equalassert_)raises)skip_xp_invalid_arg)xp_assert_equal)
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                  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 )N   a)
r
   r   typenprandomRandomStateassert_raises
ValueError	GeneratorPCG64)rsirgs     W/var/www/html/pdf-tiff/venv/lib/python3.13/site-packages/scipy/_lib/tests/test__util.pytest_check_random_stater*      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//0    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 )Nr   pool)r   funciterablec                   &    \ rS rSrSSS.S jjrSrg)0test_getfullargspec_no_self.<locals>._rv_generic5   Nsizec                    g N )selfr   bcr4   argskwargss          r)   _rvs5test_getfullargspec_no_self.<locals>._rv_generic._rvs6   s    r+   r7         )__name__
__module____qualname____firstlineno__r=   __static_attributes__r7   r+   r)   _rv_genericr1   5   s    	 	 	r+   rG   )r   r9   r:   r;   r<   r?   r4   )r   r   __init__r   r   __call__r=   )pargspecrG   rv_objs       r)   test_getfullargspec_no_selfrM   ,   s    1A$QZZ0G+vhdD"&*B0 1$QZZ0G+vz&:D$&($4 5  ]F$V[[1G+ovx&,vhL Mr+   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      $@r   Fr   )r    arangesinr   r   _mapfuncmapr-   	_own_poollistr   r#   RuntimeError)in_argout_argrJ   outs       r)   test_mapwrapper_serialrZ   ?   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)Nr@   )r   r@   rA      )r   rS   mathrQ   )rJ   s    r)   	test_poolr^   N   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)NrO   r@   TF)r    rP   rQ   r   r   rU   r   rT   
isinstancer-   PWLrR   r#   	Exceptionr   r$   r   rS   close)rW   rX   rJ   rY   excinfoqs         r)   test_mapwrapper_parallelrf   S   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      $ r6   )r`   r   r    arrayrU   rQ   )xr9   workerss      r)   user_of_workersrk   s   sB    gz****88D/011r+   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          @r@   )rj   r9   )r9   )r9   rj   )
r    linspacepirQ   r   rk   rS   r   	functoolspartial)arrreqrJ   vpart_fs        r)   test__workers_wrapperrv   z   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)Nr@      d   T)lowhighr4   endpoint)ry   )rz   r4   r|   r   Fr\   )	r    r!   r"   r   maxminshapedefault_rngAttributeError)rngrr   s     r)   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   nr\   c                 ,    [        US5      nUS:X  d   eg )Nr   r\   )r   r8   r   s     r)   test_validate_int!TestValidateInt.test_validate_int   s    !S!Avvr+         @r   c                     [         R                  " [        SS9   [        US5        S S S 5        g ! , (       d  f       g = f)Nzn must be an integermatchr   )pytestr   	TypeErrorr   r   s     r)   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   r   r   )r   r   r$   r   r8   s    r)   test_validate_int_below_min+TestValidateInt.test_validate_int_below_min   s1    ]]: .; <"c1%< < <s   1
?r7   N)rB   rC   rD   rE   r   markparametrizer    uint8int16rh   r   r   r   r   rF   r7   r+   r)   r   r      s    [[S1bhhqk288A;"LM N [[S3!x1~"FG" H"&r+   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)TestRenameParameter   oldnewc                     U$ r6   r7   r8   r   s     r)   old_keyword_still_accepted.TestRenameParameter.old_keyword_still_accepted       
r+   z1.9.0)dep_versionc                     U$ r6   r7   r   s     r)   old_keyword_deprecated*TestRenameParameter.old_keyword_deprecated   r   r+   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)	N
   r   r   z.old_keyword_still_accepted() got an unexpectedr   
unexpectedz)old_keyword_still_accepted() got multipler   r   )r   reescaper   r   r   )r8   res1res2res3messages        r)   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   )r8   r   s     r)   
kwarg_lockTestRenameParameter.kwarg_lock   s    "vr+   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   )r8   r   dep_msgr   r   r   r   s          r)   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r7   N)rB   rC   rD   rE   r   r   r   r   r   fixturer   r   rF   r7   r+   r)   r   r      s]    
 ue$ % ue9 :<* ^^ @r+   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      \R                  R                  S
SS9S 5       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\R                  R                  S
SS9S 5       5       5       5       5       rSrg)TestContainsNaNi&  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)Nr   r@   rA   	propagate)
nan_policyomitThe input contains nan valuesr   raiseznan_policy must be one ofnan)r    rh   r   r   r   r   r$   )r8   datas     r)   test_policyTestContainsNaN.test_policy'  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dtype)r   r@   rA   r   r@   rA   r\   )      ?rm         @)r                  @r   r   r   rm   r   r   )r   r    rh   floatr   r   s    r)   test_contains_nan!TestContainsNaN.test_contains_nan8  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&>?@@@@r+   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 )Nr   r@   3objectr   1rA   )r    rh   r   r   )r8   data1data2data3data4s        r)   test_contains_nan_with_strings.TestContainsNaN.test_contains_nan_with_stringsH  s    !QRVV,- ''''!QRVV,H=U####3(QK01 ''''3(QK0AU####r+   Tzlazy backends tested separately)
eager_onlyreasonr   )r   r   r   Fznot applicable)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   }? r@   rA   r\   r3   r   r@   r   r   r   r   r   Txp_omit_okayr   )r    r!   r   asarrayr   xpxatsetr   r   r   r$   )r8   xpr   r   x0ri   s         r)   test_array_apiTestContainsNaN.test_array_apiV  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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   r3   Fr   r   Tr   znot supported for lazy arraysr   r   r   )r    r!   r   r   r	   r   r   r   r   r   r   r   r   )r8   r   r   r   ri   r   s         r)   test_array_api_lazy#TestContainsNaN.test_array_api_lazyj  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r7   N)rB   rC   rD   rE   r   r   r   r   r   r   skip_xp_backendsr   uses_xp_capabilitiesr   r   rF   r7   r+   r)   r   r   &  s,   2"A  $ $ [[!!T)J " L[[\+IJ[[%%e4D%E0 F KL0  [[!!'2F!G[[!!&1E!F[[!!"4=Q!R[[!!'2F!G[[%%e4D%E& F H S G H
&r+   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 r7   )liness    r)   mock_str(test__rng_html_rewrite.<locals>.mock_str  s    
 r+   )np.random.default_rng()r   r  r  )r   )r  resrefs      r)   test__rng_html_rewriter    s)     H
%
'CC ::r+   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  )   rA   r3   rA   r    r!   r   r   vqkmeans2r8   r<   r   s      r)   kmeansTestTransitionToRNG.kmeans  >    ii##$78zz!!#**'*":AHHHr+   c                     [         R                  R                  S5      n[        R                  R
                  " UR                  SS9S40 UD6$ r  r  r  s      r)   r  TestTransitionToRNG.kmeans2  r  r+   c                     [         R                  R                  S5      nUR                  S5      u  p4n[        R                  " X540 UD6nU" U5      $ )Nr  )rA   r   )r    r!   r   r   BarycentricInterpolator)r8   r<   r   x1x2y1fs          r)   barycentricTestTransitionToRNG.barycentric  sG    ii##$78ZZ(
//A&Aur+   c                     [         R                  R                  S5      n[        R                  " UR                  S5      S40 UD6$ )Nr  r   r   rA   )r    r!   r   r   clarkson_woodruff_transformr  s      r)   r"  /TestTransitionToRNG.clarkson_woodruff_transform  s8    ii##$7811#**X2FTVTTr+   c                     [         R                  R                  S5      n[        R                  " [        R
                  UR                  S5      40 UD6R                  $ )Nr  rA   )r    r!   r   r   basinhoppingrosenri   r  s      r)   r%   TestTransitionToRNG.basinhopping  sA    ii##$78$$X^^SZZ]MfMOOOr+   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  rA   r   )r    r!   r   r   Boundsr&  ri   )r8   funr<   r   boundss        r)   optTestTransitionToRNG.opt  s_    ii##$78#**Q-"!4cjjmb6HI8>>64V4666r+   c                 D    U R                   " [        R                  40 UD6$ r6   )r,  r   differential_evolutionr8   r<   s     r)   r/  *TestTransitionToRNG.differential_evolution  s    xx77B6BBr+   c                 D    U R                   " [        R                  40 UD6$ r6   )r,  r   dual_annealingr0  s     r)   r3  "TestTransitionToRNG.dual_annealing  s    xx//:6::r+   c                     [         R                  R                  S5      nUR                  S5      n[        R                  " [        R
                  [        R                  U4SS0UD6$ )Nr  rA   	directionr!   )r    r!   r   r   
check_gradr&  	rosen_der)r8   r<   r   ri   s       r)   r7  TestTransitionToRNG.check_grad  s[    ii##$78JJqM""8>>83E3Eq A-5A9?A 	Ar+   c                 N    [         R                  " SSS0UD6R                  5       $ )Ndensityr   )r!  )r   random_arraytoarrayr0  s     r)   r<   TestTransitionToRNG.random_array  s$    ""CSCFCKKMMr+   c                 N    [         R                  " SSS0UD6R                  5       $ Nr;  r   r!  )r   r!   r=  r0  s     r)   r!   TestTransitionToRNG.random  s"    }};S;F;CCEEr+   c                 N    [         R                  " SSS0UD6R                  5       $ r@  )r   randr=  r0  s     r)   rC  TestTransitionToRNG.rand  s"    {{939&9AACCr+   c                     [         R                  R                  S5      nUR                  S5      n[        R                  R
                  " U40 UD6$ )Nr  r!  )r    r!   r   r   r   svds)r8   r<   r   As       r)   rF  TestTransitionToRNG.svds  s?    ii##$78JJx }}!!!.v..r+   c                 r    [         R                  R                  R                  " S0 UD6R	                  5       $ )N)rA   )r   	transformRotationr!   	as_matrixr0  s     r)   random_rotation#TestTransitionToRNG.random_rotation  s+      ))00=f=GGIIr+   c                     [         R                  R                  S5      nUR                  S5      n[        R                  " [        R
                  U40 UD6R                  $ Nr  ry   )r    r!   r   r   goodness_of_fitlaplacepvaluer8   r<   r   r   s       r)   rQ  #TestTransitionToRNG.goodness_of_fit  sF    ii##$78zz#$$U]]DCFCJJJr+   c                     [         R                  R                  S5      n[        UR                  S5      5      nS n[        R
                  " X440 UD6R                  $ )Nr  r@   ry   c                 T    [         R                  " XS9[         R                  " XS9-
  $ )N)axis)r    mean)ri   yrY  s      r)   	statistic7TestTransitionToRNG.permutation_test.<locals>.statistic  s    "''!*?"''!BW*W#Wr+   )r    r!   r   tupler   permutation_testrS  )r8   r<   r   r   r\  s        r)   r_  $TestTransitionToRNG.permutation_test  sI    ii##$78SZZ)*W%%d@@GGGr+   c                     [         R                  R                  S5      nUR                  S5      4n[        R                  " U[         R
                  40 UD6R                  $ rP  )r    r!   r   r   	bootstraprZ  confidence_intervalrT  s       r)   rb  TestTransitionToRNG.bootstrap  sG    ii##$78

3!tRWW77KKKr+   c                     [         R                  R                  S5      nUR                  S5      u  p4n[        R                  " X44SU0UD6R
                  $ )Nr  )rA   ry   control)r    r!   r   r   dunnettrS  )r8   r<   r   ri   r[  rf  s         r)   rg  TestTransitionToRNG.dunnett  sH    ii##$78

8,g}}Q=7=f=DDDr+   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      r   r@   g?r\   )r    rQ   )ri   s    r)   
f_ishigami5TestTransitionToRNG.sobol_indices.<locals>.f_ishigami  sX    266!A$<!bffQqTla6G2G#G%(AaDAI%6!%E$F Gr+   r@   )locscalei   )r.   r   distsr7   )r   uniformr    ro   sobol_indicesfirst_order)r8   r<   rl  rp  r  s        r)   rr  !TestTransitionToRNG.sobol_indices  s    	GBEE6RUU;BEE6RUU;BEE6RUU;= !!QzTQ&Qr+   c                 8    U" SSS0UD6nUR                  S5      $ )Ndr   r\   r7   )r!   )r8   enginer<   qrngs       r)   
qmc_engineTestTransitionToRNG.qmc_engine  s"    $$V${{1~r+   c                 X    U R                   " [        R                  R                  40 UD6$ r6   )ry  r   qmcHaltonr0  s     r)   haltonTestTransitionToRNG.halton  s     uyy//:6::r+   c                 X    U R                   " [        R                  R                  40 UD6$ r6   )ry  r   r|  Sobolr0  s     r)   sobolTestTransitionToRNG.sobol  s    uyy9&99r+   c                 X    U R                   " [        R                  R                  40 UD6$ r6   )ry  r   r|  LatinHypercuber0  s     r)   latin_hypercube#TestTransitionToRNG.latin_hypercube  s     uyy77B6BBr+   c                 X    U R                   " [        R                  R                  40 UD6$ r6   )ry  r   r|  PoissonDiskr0  s     r)   poisson_disk TestTransitionToRNG.poisson_disk  s     uyy44???r+   c                 h    [         R                  R                  " S/40 UD6nUR                  S5      $ )Nr   r\   )r   r|  MultivariateNormalQMCr!   r8   r<   Xs      r)   multivariate_normal_qmc+TestTransitionToRNG.multivariate_normal_qmc  s+    II++QC:6:xx{r+   c                 l    [         R                  R                  " SS/S40 UD6nUR                  S5      $ )Ng      ?r\   )r   r|  MultinomialQMCr!   r  s      r)   multinomial_qmc#TestTransitionToRNG.multinomial_qmc	  s/    II$$c3Z=f=xx{r+   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  rW  methodr7   )r    r!   r   r^  r   PermutationMethodpearsonrrS  )r8   r<   r   r   r  s        r)   permutation_method&TestTransitionToRNG.permutation_method  sW    ii##$78SZZ)*((262~~t3F3:::r+   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  rW  )r  r7   )r    r!   r   r^  r   r  BootstrapMethodrc  )r8   r<   r   r   r  r  s         r)   bootstrap_method$TestTransitionToRNG.bootstrap_method  s_    ii##$78SZZ)*nnd#&&00&&f&55r+   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   >   rg  rr  >   r  r~  r  r  r  r  )
r    r!   r  r   r   r   r   r   rB   r"   )r8   r  arg_namer  r   r   r   r   r   res1bres2bs              r)   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)r7   N)'rB   rC   rD   rE   r  r  r  r"  r%  r,  r/  r3  r7  r<  r!   rC  rF  rM  rQ  r_  rb  rg  rr  ry  r~  r  r  r  r  r  r  r  r   r   	fail_slowslowr   r  rF   r7   r+   r)   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  :%!r+   r
  )r   N);multiprocessingr   multiprocessing.poolra   r   r]   rp   	fractionsr   r   r    numpy.testingr   r   r   r   r#   scipy.conftestr   scipy._lib._array_apir	   scipy._lib._utilr
   r   r   r   r   r   r   r   r   r   scipy._external.array_api_extra	_externalarray_api_extrar   'scipy._external.array_api_extra.testingr   scipyr   r   r   r   r   r   r   r*   rM   rZ   r^   rf   rk   rv   r   r   r   r   r  r
  r7   r+   r)   <module>r     s      , 	     /  * . 1R R R . - D P P P  1"M&&
)@ 2 2'.7 t& &$F@ F@R`& `&F*~! ~!r+   