
    9ir]                        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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`                  Rb                  S 5       r2S r3S r4S r5S r6S r7\!SS j5       r8S r9S r: " 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is_numpy)_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         [/var/www/html/land-doc-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   r9   r;      )r$   r%   Nr9   r:   r;   )r'   uint8float64range)niterr6   r!   nr2   r(   r,   js           r5   test__aligned_zerosrH      sr    E. 3A) hh

3E"#aAq\!2!&uA!%= ". "3 4 *  3r8   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 )Nr9   a)
r   r   typer'   randomRandomStateassert_raisesr1   	GeneratorPCG64)rsirgs     r5   test_check_random_staterS   ?   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//0r8   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 )Nr9   pool)r9   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 )selfrJ   bcr/   argskwargss          r5   _rvs5test_getfullargspec_no_self.<locals>._rv_generic._rvsZ   s    r8   r^   r:   r;   )__name__
__module____qualname____firstlineno__rd   __static_attributes__r^   r8   r5   _rv_genericrY   Y   s    	 	 	r8   rl   )rJ   r`   ra   rb   rc   rf   r/   )r   r   __init__r   r   __call__rd   )pargspecrl   rv_objs       r5   test_getfullargspec_no_selfrr   P   s    1A$QZZ0G+vhdD"&*B0 1$QZZ0G+vz&:D$&($4 5  ]F$V[[1G+ovx&,vhL Mr8   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      $@r9   Fr   )r'   arangesinr   r   _mapfuncmaprU   	_own_poollistr   rN   RuntimeError)in_argout_argro   outs       r5   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)Nr:   )r9   r:   r;   r<   )r   rx   mathrv   )ro   s    r5   	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)Nrt   r:   TF)r'   ru   rv   r   r   rz   r   ry   
isinstancerU   PWLrw   rN   	ExceptionrK   r1   r   rx   close)r|   r}   ro   r~   excinfoqs         r5   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'   arrayrz   rv   )r4   r`   workerss      r5   user_of_workersr      sB    gz****88D/011r8   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:   )r   r`   )r`   )r`   r   )
r'   linspacepirv   r   r   rx   r   	functoolspartial)arrreqro   vpart_fs        r5   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)Nr:      d   T)lowhighr/   endpoint)r   )r   r/   r   r   Fr<   )	r'   rL   rM   r   maxminr,   default_rngAttributeError)rngr   s     r5   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   rF   r<   c                 ,    [        US5      nUS:X  d   eg )NrF   r<   )r   r_   rF   s     r5   test_validate_int!TestValidateInt.test_validate_int   s    !S!Avvr8         @r9   c                     [         R                  " [        SS9   [        US5        S S S 5        g ! , (       d  f       g = f)Nzn must be an integermatchrF   )pytestr   	TypeErrorr   r   s     r5   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   rF   r   )r   r   r1   r   r_   s    r5   test_validate_int_below_min+TestValidateInt.test_validate_int_below_min   s1    ]]: .; <"c1%< < <s   1
?r^   N)rg   rh   ri   rj   r   markparametrizer'   rB   int16r   r   r   r   r   rk   r^   r8   r5   r   r      s    [[S1bhhqk288A;"LM N [[S3!x1~"FG" H"&r8   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     r5   old_keyword_still_accepted.TestRenameParameter.old_keyword_still_accepted      
r8   z1.9.0)dep_versionc                     U$ r]   r^   r   s     r5   old_keyword_deprecated*TestRenameParameter.old_keyword_deprecated  r   r8   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        r5   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     r5   
kwarg_lockTestRenameParameter.kwarg_lock$  s    "vr8   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          r5   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)rg   rh   ri   rj   r   r   r   r   r   fixturer   r   rk   r^   r8   r5   r   r     s]    
 ue$ % ue9 :<* ^^ @r8   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)Nr9   r:   r;   	propagate)
nan_policyomitThe input contains nan valuesr   raiseznan_policy must be one ofnan)r'   r   r   r   r   r   r1   )r_   r"   s     r5   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(   )r9   r:   r;   r9   r:   r;   r<   )      ?r         @)r                  @r   r   r   r   r   r   )r   r'   r   floatr   r   s    r5   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&>?@@@@r8   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 )Nr9   r:   3objectr   1r;   )r'   r   r   r   )r_   data1data2data3data4s        r5   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####r8   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                  [         R                  5      nUS:X  a.  [        R                  " [        SS9   [	        XR5        S S S 5        g US:X  aO  [        U5      (       d?  [        R                  " [        S	S9   [	        XR5        S S S 5        [	        XRS
S9(       d   eg US:X  a  [	        XR5      (       d   eg g ! , (       d  f       g = f! , (       d  f       NK= f)N   }? r:   r;   r<   r[   r9   r:   r9   r   r   r   r   z!nan_policy='omit' is incompatibleTxp_omit_okayr   )r'   rL   r   asarrayr   xpxatsetr   r   r   r1   r
   )r_   xpr   r   x0r4   s         r5   test_array_apiTestContainsNaN.test_array_apiz  s     ii##O4ZZYZ'JJrN ////FF1Ig""266* z1PQa, RQ6!(2,,z1TUa, V TBBB;& //// ' RQ VUs   'D++D<+
D9<
E
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  r[   Fr   r   Tr  znot supported for lazy arraysr   r   r  )r'   rL   r   r	  r	   r   r   r   r   r
  r  r  r   )r_   r  r   r  r4   r   s         r5   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)rg   rh   ri   rj   r   r   r   r   r   r   skip_xp_backendsr   r  r  rk   r^   r8   r5   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&r8   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    r5   mock_str(test__rng_html_rewrite.<locals>.mock_str  s    
 r8   )np.random.default_rng()r  r   r  )r   )r  resrefs      r5   test__rng_html_rewriter#    s)     H
%
'CC ::r8   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\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;   r[   r;   r'   rL   r   r   vqkmeans2r_   rc   r   s      r5   kmeansTestTransitionToRNG.kmeans  >    ii##$78zz!!#**'*":AHHHr8   c                     [         R                  R                  S5      n[        R                  R
                  " UR                  SS9S40 UD6$ r'  r*  r-  s      r5   r,  TestTransitionToRNG.kmeans2  r0  r8   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'   rL   r   r   BarycentricInterpolator)r_   rc   r   x1x2y1fs          r5   barycentricTestTransitionToRNG.barycentric  sG    ii##$78ZZ(
//A&Aur8   c                     [         R                  R                  S5      n[        R                  " UR                  S5      S40 UD6$ )Nr(  r   r   r;   )r'   rL   r   r   clarkson_woodruff_transformr-  s      r5   r=  /TestTransitionToRNG.clarkson_woodruff_transform  s8    ii##$7811#**X2FTVTTr8   c                     [         R                  R                  S5      n[        R                  " [        R
                  UR                  S5      40 UD6R                  $ )Nr(  r;   )r'   rL   r   r   basinhoppingrosenr4   r-  s      r5   r@   TestTransitionToRNG.basinhopping  sA    ii##$78$$X^^SZZ]MfMOOOr8   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'   rL   r   r   BoundsrA  r4   )r_   funrc   r   boundss        r5   optTestTransitionToRNG.opt  s_    ii##$78#**Q-"!4cjjmb6HI8>>64V4666r8   c                 D    U R                   " [        R                  40 UD6$ r]   )rG  r   differential_evolutionr_   rc   s     r5   rJ  *TestTransitionToRNG.differential_evolution  s    xx77B6BBr8   c                 D    U R                   " [        R                  40 UD6$ r]   )rG  r   dual_annealingrK  s     r5   rN  "TestTransitionToRNG.dual_annealing  s    xx//:6::r8   c                     [         R                  R                  S5      nUR                  S5      n[        R                  " [        R
                  [        R                  U4SS0UD6$ )Nr(  r;   	directionrL   )r'   rL   r   r   
check_gradrA  	rosen_der)r_   rc   r   r4   s       r5   rR  TestTransitionToRNG.check_grad  s[    ii##$78JJqM""8>>83E3Eq A-5A9?A 	Ar8   c                 N    [         R                  " SSS0UD6R                  5       $ )Ndensityr   )r<  )r   random_arraytoarrayrK  s     r5   rW   TestTransitionToRNG.random_array  s$    ""CSCFCKKMMr8   c                 N    [         R                  " SSS0UD6R                  5       $ NrV  r   r<  )r   rL   rX  rK  s     r5   rL   TestTransitionToRNG.random  s"    }};S;F;CCEEr8   c                 N    [         R                  " SSS0UD6R                  5       $ r[  )r   randrX  rK  s     r5   r^  TestTransitionToRNG.rand  s"    {{939&9AACCr8   c                     [         R                  R                  S5      nUR                  S5      n[        R                  R
                  " U40 UD6$ )Nr(  r<  )r'   rL   r   r   r   svds)r_   rc   r   As       r5   ra  TestTransitionToRNG.svds  s?    ii##$78JJx }}!!!.v..r8   c                 r    [         R                  R                  R                  " S0 UD6R	                  5       $ )N)r;   )r   	transformRotationrL   	as_matrixrK  s     r5   random_rotation#TestTransitionToRNG.random_rotation  s+      ))00=f=GGIIr8   c                     [         R                  R                  S5      nUR                  S5      n[        R                  " [        R
                  U40 UD6R                  $ Nr(  r   )r'   rL   r   r   goodness_of_fitlaplacepvaluer_   rc   r   r"   s       r5   rl  #TestTransitionToRNG.goodness_of_fit  sF    ii##$78zz#$$U]]DCFCJJJr8   c                     [         R                  R                  S5      n[        UR                  S5      5      nS n[        R
                  " X440 UD6R                  $ )Nr(  r:   r   c                 T    [         R                  " XS9[         R                  " XS9-
  $ )N)axis)r'   mean)r4   yrt  s      r5   	statistic7TestTransitionToRNG.permutation_test.<locals>.statistic  s    "''!*?"''!BW*W#Wr8   )r'   rL   r   tupler   permutation_testrn  )r_   rc   r   r"   rw  s        r5   rz  $TestTransitionToRNG.permutation_test   sI    ii##$78SZZ)*W%%d@@GGGr8   c                     [         R                  R                  S5      nUR                  S5      4n[        R                  " U[         R
                  40 UD6R                  $ rk  )r'   rL   r   r   	bootstrapru  confidence_intervalro  s       r5   r}  TestTransitionToRNG.bootstrap  sG    ii##$78

3!tRWW77KKKr8   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'   rL   r   r   dunnettrn  )r_   rc   r   r4   rv  r  s         r5   r  TestTransitionToRNG.dunnett  sH    ii##$78

8,g}}Q=7=f=DDDr8   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      r9   r:   g?r<   )r'   rv   )r4   s    r5   
f_ishigami5TestTransitionToRNG.sobol_indices.<locals>.f_ishigami  sX    266!A$<!bffQqTla6G2G#G%(AaDAI%6!%E$F Gr8   r:   )locscalei   )rV   rF   distsr^   )r   uniformr'   r   sobol_indicesfirst_order)r_   rc   r  r  r!  s        r5   r  !TestTransitionToRNG.sobol_indices  s    	GBEE6RUU;BEE6RUU;BEE6RUU;= !!QzTQ&Qr8   c                 8    U" SSS0UD6nUR                  S5      $ )Ndr9   r<   r^   )rL   )r_   enginerc   qrngs       r5   
qmc_engineTestTransitionToRNG.qmc_engine  s"    $$V${{1~r8   c                 X    U R                   " [        R                  R                  40 UD6$ r]   )r  r   qmcHaltonrK  s     r5   haltonTestTransitionToRNG.halton  s     uyy//:6::r8   c                 X    U R                   " [        R                  R                  40 UD6$ r]   )r  r   r  SobolrK  s     r5   sobolTestTransitionToRNG.sobol   s    uyy9&99r8   c                 X    U R                   " [        R                  R                  40 UD6$ r]   )r  r   r  LatinHypercuberK  s     r5   latin_hypercube#TestTransitionToRNG.latin_hypercube#  s     uyy77B6BBr8   c                 X    U R                   " [        R                  R                  40 UD6$ r]   )r  r   r  PoissonDiskrK  s     r5   poisson_disk TestTransitionToRNG.poisson_disk&  s     uyy44???r8   c                 h    [         R                  R                  " S/40 UD6nUR                  S5      $ )Nr   r<   )r   r  MultivariateNormalQMCrL   r_   rc   Xs      r5   multivariate_normal_qmc+TestTransitionToRNG.multivariate_normal_qmc)  s+    II++QC:6:xx{r8   c                 l    [         R                  R                  " SS/S40 UD6nUR                  S5      $ )Ng      ?r<   )r   r  MultinomialQMCrL   r  s      r5   multinomial_qmc#TestTransitionToRNG.multinomial_qmc-  s/    II$$c3Z=f=xx{r8   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(  rr  methodr^   )r'   rL   r   ry  r   PermutationMethodpearsonrrn  )r_   rc   r   r"   r  s        r5   permutation_method&TestTransitionToRNG.permutation_method1  sW    ii##$78SZZ)*((262~~t3F3:::r8   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(  rr  )r  r^   )r'   rL   r   ry  r   r  BootstrapMethodr~  )r_   rc   r   r"   r!  r  s         r5   bootstrap_method$TestTransitionToRNG.bootstrap_method7  s_    ii##$78SZZ)*nnd#&&00&&f&55r8   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'   rL   r  r   r   r   r   r   rg   rM   )r_   r  arg_namer  r   r   r   r   r   res1bres2bs              r5   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)'rg   rh   ri   rj   r.  r,  r9  r=  r@  rG  rJ  rN  rR  rW  rL   r^  ra  rh  rl  rz  r}  r  r  r  r  r  r  r  r  r  r  r  r   r   	fail_slowslowr   r  rk   r^   r8   r5   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	 &)	&!52 8%!9  <%!r8   r%  )r9   N)@multiprocessingr   multiprocessing.poolr   r   r   r   	fractionsr   r  r'   numpy.testingr   r   r   r   rN   scipy.conftestr   scipy._lib._array_apir	   r
   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  rH   rS   rr   r   r   r   r   r   r   r   r   r   r#  r%  r^   r8   r5   <module>r     s      , 	     /  * . ;R R R R ) ( ? P P P    >  >F1"M&&
)@ 2 2'.7 t& &$F@ F@R`& `&F*! !r8   