
    >qj X                        d dl mZ d dlmZ d dlZd dlZd dlZd dlmZ d dl	Z
d dlmZmZ d dlZd dlmZ d dlmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZ d dl m!c m"Z# d d	l$m%Z% d d
l&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-  e%e       d Z.d Z/d Z0d Z1d Z2edd       Z3d Z4d Z5 G d d      Z6 G d d      Z7 G d d      Z8d Z9 G d d      Z:y)    )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   t        d      } t        t        |       t        j                  j
                         t        |       } t        t        |       t        j                  j
                         t        d       } t        t        |       t        j                  j
                         t        t        t         d       t        j                  j                  t        j                  j                               }t        |      } t        t        |       t        j                  j                         y )N   a)
r
   r   typenprandomRandomStateassert_raises
ValueError	GeneratorPCG64)rsirgs     Z/opt/rentech/trading_bot/.venv/lib/python3.12/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   t        d      } t        | j                        }t        |t	        dgd d dg d i              t        | j
                        }t        |t	        ddgd d d g d i               G d d      } |       }t        |j                        }t        |t	        g dd	d
ddgdd ii              y )Nr   pool)r   funciterablec                       e Zd ZddddZy)0test_getfullargspec_no_self.<locals>._rv_genericNsizec                     y N )selfr   bcr3   argskwargss          r)   _rvsz5test_getfullargspec_no_self.<locals>._rv_generic._rvs6   s    r+         )__name__
__module____qualname__r<   r6   r+   r)   _rv_genericr1   5   s    	 	r+   rC   )r   r8   r9   r:   r;   r=   r3   )r   r   __init__r   r   __call__r<   )pargspecrC   rv_objs       r)   test_getfullargspec_no_selfrI   ,   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                     t        j                  d      } t        j                  |       }t        d      }t	        |j
                  t        u        t	        |j                  d u        t	        |j                  du        t         |t         j                  |             }t        ||       t        t              5  t        d      }d d d        y # 1 sw Y   y xY w)N      $@r   Fr   )r    arangesinr   r   _mapfuncmapr-   	_own_poollistr   r#   RuntimeError)in_argout_argrF   outs       r)   test_mapwrapper_serialrV   ?   s    YYs^FffVnG1AAJJ#AFFdNAKK5 !
q 
!Cg	|	$ qM  s   :CCc                      t        d      5 } | j                  t        j                  g d       d d d        y # 1 sw Y   y xY w)Nr>   )r   r>   r?      )r   rO   mathrM   )rF   s    r)   	test_poolrZ   N   s2    	a &A	dhh%& & &s	   #8Ac                  `   t        j                  d      } t        j                  |       }t        d      5 } |t         j                  |       }t	        t        |      |       t        |j                  du        t        t        |j                  t                     t        |j                  d u       d d d        t        t              5 } t         j                  |        d d d        t        j                  t        u        t!        d      5 }t        |j"                        }t        |j                  du        |j%                          |j#                  t         j                  |       }t	        t        |      |       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)NrK   r>   TF)r    rL   rM   r   r   rQ   r   rP   
isinstancer-   PWLrN   r#   	Exceptionr   r$   r   rO   close)rS   rT   rF   rU   excinfoqs         r)   test_mapwrapper_parallelrb   S   s@   YYs^FffVnG	A (!T#Y(t#$
1663'(

$&'( 
y	! W	"&&& GLLJ&' 
a 	)Aquuu$%		 eeBFFF#T#Y(	) 	)!( ( 	) 	)s%   A>FFA2F$FF!$F-c           	          |J t        |t              sJ t        j                  t	         |t        j
                  | |z                    S r5   )r\   r   r    arrayrQ   rM   )xr8   workerss      r)   user_of_workersrg   s   sA    gz***88DQ/011r+   c                  v   t        j                  dt         j                        } t        j                  | dz        }t	        d      5 }t        | |j                  d      }t        ||       d d d        t        | d d      }t        ||       t        | dd      }t        ||       t        j                  t
        d      }t         ||       |       t	        d      5 }t        j                  t
        d|j                        }t         ||       |       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr          @r>   )rf   r8   )r8   )r8   rf   )
r    linspacepirM   r   rg   rO   r   	functoolspartial)arrreqrF   vpart_fs        r)   test__workers_wrapperrr   z   s    
++a
C
&&s
C	a AC!4Q 	TQ/ACQ!,AC !4Fc"	a 'A""?aGVC[#&' ' ' 's   %D#!9D/#D,/D8c                     t         j                  j                         } t        | dddd      }t        j                  |      dk(  sJ t        j
                  |      dk(  sJ |j                  dk(  sJ t        | ddd      }t        j                  |      dk(  sJ t        j
                  |      dk(  sJ |j                  dk(  sJ t        | dddd	      }t        j                  |      d
k(  sJ t        j
                  |      dk(  sJ |j                  dk(  sJ t        | ddd	      }t        j                  |      d
k(  sJ t        j
                  |      dk(  sJ |j                  dk(  sJ 	 t         j                  j                         } t        | dddd      }t        j                  |      dk(  sJ t        j
                  |      dk(  sJ |j                  dk(  sJ t        | ddd      }t        j                  |      dk(  sJ t        j
                  |      dk(  sJ |j                  dk(  sJ t        | dddd	      }t        j                  |      d
k(  sJ t        j
                  |      dk(  sJ |j                  dk(  sJ t        | ddd	      }t        j                  |      d
k(  sJ t        j
                  |      dk(  sJ |j                  dk(  sJ y # t        $ r Y y w xY w)Nr>      d   T)lowhighr3   endpoint)ru   )rv   r3   rx   r   FrX   )	r    r!   r"   r   maxminshapedefault_rngAttributeError)rngrn   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   2K# #	K/.K/c            	       8   e Zd Zej                  j                  dd ej                  d       ej                  d       ej                  d      g      d        Z
ej                  j                  dd ej                  dg       edd      g      d        Zd Zy)	TestValidateIntnrX   c                 *    t        |d      }|dk(  sJ y )Nr   rX   )r   r7   r   s     r)   test_validate_intz!TestValidateInt.test_validate_int   s    !S!Avvr+         @r   c                 |    t        j                  t        d      5  t        |d       d d d        y # 1 sw Y   y xY w)Nzn must be an integermatchr   )pytestr   	TypeErrorr   r   s     r)   test_validate_int_badz%TestValidateInt.test_validate_int_bad   s0    ]]9,BC 	"!S!	" 	" 	"s   2;c                 ~    t        j                  t        d      5  t        ddd       d d d        y # 1 sw Y   y xY w)Nz$n must be an integer not less than 0r   r   r   )r   r   r$   r   r7   s    r)   test_validate_int_below_minz+TestValidateInt.test_validate_int_below_min   s6    ]]: .; < 	&"c1%	& 	& 	&s   3<N)r@   rA   rB   r   markparametrizer    uint8int16rd   r   r   r   r   r6   r+   r)   r   r      s    [[S1hbhhqk8288A;"LM N [[S3!x1~"FG" H"&r+   r   c                   |    e Zd Z edd      d        Z eddd      d        Zd Zej                  d        Z	d	 Z
y
)TestRenameParameteroldnewc                     |S r5   r6   r7   r   s     r)   old_keyword_still_acceptedz.TestRenameParameter.old_keyword_still_accepted       
r+   z1.9.0)dep_versionc                     |S r5   r6   r   s     r)   old_keyword_deprecatedz*TestRenameParameter.old_keyword_deprecated   r   r+   c                    | j                  d      }| j                  d      }| j                  d      }||cxk(  r|cxk(  rdk(  sJ  J t        j                  d      }t        j                  t
        |      5  | j                  d       d d d        t        j                  d      }t        j                  t
        |      5  | j                  dd       d d d        t        j                  t
        |      5  | j                  dd       d d d        t        j                  t
        |      5  | j                  dd       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   YxY w# 1 sw Y   y xY w)	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   )r7   res1res2res3messages        r)   test_old_keyword_still_acceptedz3TestRenameParameter.test_old_keyword_still_accepted   sS   ..r2..2.6..2.6t)t)r))))) ))LM]]9G4 	;++r+:	; ))GH]]9G4 	8++BB+7	8]]9G4 	8++BB+7	8]]9G4 	<+++;	< 	<	; 	;
	8 	8	8 	8	< 	<s0   <EE>E*5E6EE'*E36E?c                     ddl m}  |       S )Nr   )Lock)	threadingr   )r7   r   s     r)   
kwarg_lockzTestRenameParameter.kwarg_lock   s    "vr+   c                    d}| j                  d      }| j                  d      }|5  t        j                  t        |      5  | j                  d      }d d d        d d d        ||cxk(  rcxk(  rdk(  sJ  J t	        j
                  d      }t        j                  t        |      5  | j                  d       d d d        t	        j
                  d      }t        j                  t        |      5  | j                  dd       d d d        |5  t        j                  t        |      5  t        j                  t        |      5  | j                  dd       d d d        d d d        d d d        |5  t        j                  t        |      5  t        j                  t        |      5  | j                  dd	       d d d        d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   =xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   qxY w# 1 sw Y   uxY w# 1 sw Y   y xY w)
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   )r7   r   dep_msgr   r   r   r   s          r)   test_old_keyword_deprecatedz/TestRenameParameter.test_old_keyword_deprecated  s"    @**2.**r*2 	?0@ ?6626>D?	? t)t)r))))) ))HI]]9G4 	7''2'6	7
 ))CD]]9G4 	4'''3	4 	<y8 <LL!37C< ///;< <	<
  	@y8 @LL!37C@//BB/?@ @	@ 	@'? ?	? 	?	7 	7	4 	4< < < <	< 	<@ @ @ @	@ 	@s   G.G!G.-G;8HH,2H H"H *H,<II4H8II!G+	&G..G8;HHHH  H)	%H,,H58I=II		IIN)r@   rA   rB   r   r   r   r   r   fixturer   r   r6   r+   r)   r   r      s]    
 ue$ % ue9 :<* ^^ @r+   r   c                   6   e Zd Zd Zd Zed        Zej                  j                  dd      ej                  j                  dg d      ej                  j                  d	d
      d                      Zej                  j                  dd      ej                  j                  dd      ej                  j                  dd      ej                  j                  dd      ej                  j                  d	d
      d                                    Zy)TestContainsNaNc                 (   t        j                  dddt         j                  g      }t        |      sJ t        |d      sJ t        |d      sJ t        |d d       rJ t        |d d d      rJ t        |d d d      rJ t	        j
                  t        d      5  t        |d	       d d d        t        |d d d	      rJ t	        j
                  t        d
      5  t        |d       d d d        y # 1 sw Y   MxY w# 1 sw Y   y xY w)Nr   r>   r?   	propagate)
nan_policyomitThe input contains nan valuesr   raiseznan_policy must be one ofnan)r    rd   r   r   r   r   r$   )r7   datas     r)   test_policyzTestContainsNaN.test_policy'  s   xxAq"&&)*T"""Tk:::Tf555 bq*** bqkBBB bqf===]]:-LM 	4$73	4 bqg>>>]]:-HI 	2$51	2 	2		4 	4	2 	2s   "C<%D<DDc                 ^   t        t        j                  g t                    rJ t        t        j                  g d            rJ t        t        j                  ddgddgg            rJ t        t        j                  g d            rJ t        t        j                  g d            rJ t        t        j                  d	d
t        j                  g            sJ t        t        j                  d	dt        j                  g            sJ t        t        j                  t        j                  dt        j                  g            sJ t        t        j                  d	dgddgg            rJ t        t        j                  d	dgdt        j                  gg            sJ y )Ndtype)r   r>   r?   r   r>   r?   rX   )      ?ri         @)r                  @r   r   r   ri   r   r   )r   r    rd   floatr   r   s    r)   test_contains_nanz!TestContainsNaN.test_contains_nan8  s<    "E!:;;; !)!4555 Aq6Aq6*:!;<<< ,!7888 -!8999RXXr3&78999RXXr2rvv&67888RXXrvvr266&:;<<< B8b"X*>!?@@@RXXBx"bff&>?@@@r+   c                    t        j                  dddt         j                  g      }t        |      rJ t        j                  dddt         j                  gd      }t        |      sJ t        j                  ddgdt         j                  gg      }t        |      rJ t        j                  ddgdt         j                  ggd      }t        |      sJ y )Nr   r>   3objectr   1r?   )r    rd   r   r   )r7   data1data2data3data4s        r)   test_contains_nan_with_stringsz.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                    t         j                  j                  d      }|j                  d      }|j                  |      }t	        ||      rJ t        j                  |      d   j                  |j                        }|dk(  r1t        j                  t        d      5  t	        ||       d d d        y |dk(  rt	        ||d	
      sJ y |dk(  rt	        ||      sJ y y # 1 sw Y   y xY w)N   }? r>   r?   rX   r2   r   r>   r   r   r   r   r   Txp_omit_okayr   )r    r!   r|   asarrayr   xpxatsetr   r   r   r$   )r7   xpr   r~   x0re   s         r)   test_array_apizTestContainsNaN.test_array_apiV  s    
 ii##O4ZZYZ'JJrN J///FF1Ig""266* z1PQ -a,- -6! JTBBB;& J/// '	- -s   "C##C,numpyzlazy backends onlycupyarray_api_stricttorchc                    t         j                  j                  d      }|j                  d      }|j                  |      }t	        t        |      |j                  d             t	        t        |d      |j                  d             t	        t        |dd      |j                  d             d	}t        j                  t        |
      5  t        |d       d d d        t        j                  t        |
      5  t        |d       d d d        t        j                  |      d   j                  t         j                        }t	        t        |      |j                  d             t	        t        |d      |j                  d             t	        t        |dd      |j                  d             t        j                  t        |
      5  t        |d       d d d        t        j                  t        |
      5  t        |d       d d d        y # 1 sw Y   @xY w# 1 sw Y   xY w# 1 sw Y   TxY w# 1 sw Y   y xY w)Nr   r   r2   Fr   r   Tr   znot supported for lazy arraysr   r   r   )r    r!   r|   r   r	   r   r   r   r   r   r   r   r   )r7   r   r~   r   re   r   s         r)   test_array_api_lazyz#TestContainsNaN.test_array_api_lazyj  s    ii##O4ZZYZ'JJrNa("**U*;<a5rzz%7HIadCRZZPUEVW/]]9E2 	%!V$	%]]9E2 	&!W%	& FF1Ig""266*a("**T*:;a5rzz$7GHadCRZZPTEUV]]9E2 	%!V$	%]]9E2 	&!W%	& 	&	% 	%	& 	&	% 	%	& 	&s0   H H(H5IH%(H25H>I
N)r@   rA   rB   r   r   r   r   r   r   skip_xp_backendsr   uses_xp_capabilitiesr   r   r6   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                  @    d }  t        |              }g d}||k(  sJ y )Nc                      g d} | S )N)znp.random.default_rng(8989843)np.random.default_rng(seed)z8np.random.default_rng(0x9a71b21474694f919882289dc1559ca) bob r6   )liness    r)   mock_strz(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                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej@                  jC                  d      ej@                  jD                  ej@                  jG                  dedfedfed fedfedfe	dfe
dfedfed fed fed fed fed fed fed fed fed fed fed fedfedfedfedfedfedfg      d!                      Z$y")#TestTransitionToRNGc                     t         j                  j                  d      }t        j                  j
                  |j                  d      dfi |S N   2Faj  )   r?   r2   r?   r    r!   r|   r   vqkmeans2r7   r;   r~   s      r)   kmeanszTestTransitionToRNG.kmeans  >    ii##$78zz!!#**'*":AHHHr+   c                     t         j                  j                  d      }t        j                  j
                  |j                  d      dfi |S r   r   r   s      r)   r   zTestTransitionToRNG.kmeans2  r   r+   c                     t         j                  j                  d      }|j                  d      \  }}}t        j                  ||fi |} ||      S )Nr   )r?   r   )r    r!   r|   r   BarycentricInterpolator)r7   r;   r~   x1x2y1fs          r)   barycentriczTestTransitionToRNG.barycentric  sK    ii##$78ZZ(
B//BA&Aur+   c                     t         j                  j                  d      }t        j                  |j                  d      dfi |S )Nr   r   r   r?   )r    r!   r|   r   clarkson_woodruff_transformr   s      r)   r  z/TestTransitionToRNG.clarkson_woodruff_transform  s8    ii##$7811#**X2FTVTTr+   c                     t         j                  j                  d      }t        j                  t        j
                  |j                  d      fi |j                  S )Nr   r?   )r    r!   r|   r   basinhoppingrosenre   r   s      r)   r  z TestTransitionToRNG.basinhopping  sA    ii##$78$$X^^SZZ]MfMOOOr+   c                     t         j                  j                  d      }t        j                  |j                  d       dz  |j                  d      dz        } |t        j
                  |fi |j                  S )Nr   r?   r   )r    r!   r|   r   Boundsr  re   )r7   funr;   r~   boundss        r)   optzTestTransitionToRNG.opt  s_    ii##$78#**Q-"!4cjjmb6HI8>>64V4666r+   c                 D     | j                   t        j                  fi |S r5   )r  r   differential_evolutionr7   r;   s     r)   r  z*TestTransitionToRNG.differential_evolution  s    txx77B6BBr+   c                 D     | j                   t        j                  fi |S r5   )r  r   dual_annealingr  s     r)   r  z"TestTransitionToRNG.dual_annealing  s    txx//:6::r+   c                     t         j                  j                  d      }|j                  d      }t        j                  t        j
                  t        j                  |fddi|S )Nr   r?   	directionr!   )r    r!   r|   r   
check_gradr  	rosen_der)r7   r;   r~   re   s       r)   r  zTestTransitionToRNG.check_grad  s[    ii##$78JJqM""8>>83E3Eq A-5A9?A 	Ar+   c                 L    t        j                  dddi|j                         S )Ndensityr   )r
  )r   random_arraytoarrayr  s     r)   r  z TestTransitionToRNG.random_array  s$    ""CSCFCKKMMr+   c                 L    t        j                  dddi|j                         S Nr  r   r
  )r   r!   r   r  s     r)   r!   zTestTransitionToRNG.random  s"    }};S;F;CCEEr+   c                 L    t        j                  dddi|j                         S r"  )r   randr   r  s     r)   r$  zTestTransitionToRNG.rand  s"    {{939&9AACCr+   c                     t         j                  j                  d      }|j                  d      }t        j                  j
                  |fi |S )Nr   r
  )r    r!   r|   r   r   svds)r7   r;   r~   As       r)   r&  zTestTransitionToRNG.svds  s?    ii##$78JJx }}!!!.v..r+   c                 p    t        j                  j                  j                  di |j	                         S )N)r?   )r   	transformRotationr!   	as_matrixr  s     r)   random_rotationz#TestTransitionToRNG.random_rotation  s+      ))00=f=GGIIr+   c                     t         j                  j                  d      }|j                  d      }t        j                  t        j
                  |fi |j                  S Nr   ru   )r    r!   r|   r   goodness_of_fitlaplacepvaluer7   r;   r~   r   s       r)   r/  z#TestTransitionToRNG.goodness_of_fit  sF    ii##$78zz#$$U]]DCFCJJJr+   c                     t         j                  j                  d      }t        |j                  d            }d }t	        j
                  ||fi |j                  S )Nr   r>   ru   c                 `    t        j                  | |      t        j                  ||      z
  S )N)axis)r    mean)re   yr6  s      r)   	statisticz7TestTransitionToRNG.permutation_test.<locals>.statistic  s#    "''!$*?"''!RVBW*W#Wr+   )r    r!   r|   tupler   permutation_testr1  )r7   r;   r~   r   r9  s        r)   r;  z$TestTransitionToRNG.permutation_test  sK    ii##$78SZZ)*W%%dI@@GGGr+   c                     t         j                  j                  d      }|j                  d      f}t        j                  |t         j
                  fi |j                  S r.  )r    r!   r|   r   	bootstrapr7  confidence_intervalr2  s       r)   r=  zTestTransitionToRNG.bootstrap  sG    ii##$78

3!tRWW77KKKr+   c                     t         j                  j                  d      }|j                  d      \  }}}t        j                  ||fd|i|j
                  S )Nr   )r?   ru   control)r    r!   r|   r   dunnettr1  )r7   r;   r~   re   r8  r@  s         r)   rA  zTestTransitionToRNG.dunnett  sL    ii##$78

8,1g}}Q=7=f=DDDr+   c                    d }t        j                  t        j                   dt        j                  z        t        j                  t        j                   dt        j                  z        t        j                  t        j                   dt        j                  z        g}t        j                  d|d|d|}|j
                  S )Nc                     t        j                  | d         dt        j                  | d         dz  z  z   d| d   dz  z  t        j                  | d         z  z   S )Nr      r   r>   g?rX   )r    rM   )re   s    r)   
f_ishigamiz5TestTransitionToRNG.sobol_indices.<locals>.f_ishigami  sX    266!A$<!bffQqTla6G2G#G%(AaDAI%6!%E$F Gr+   r>   )locscalei   )r.   r   distsr6   )r   uniformr    rk   sobol_indicesfirst_order)r7   r;   rE  rH  r   s        r)   rJ  z!TestTransitionToRNG.sobol_indices  s    	GBEE6RUU;BEE6RUU;BEE6RUU;= !!QzTQ&Qr+   c                 8     |dddi|}|j                  d      S )Ndr   rX   r6   )r!   )r7   enginer;   qrngs       r)   
qmc_enginezTestTransitionToRNG.qmc_engine  s"    $$V${{1~r+   c                 X     | j                   t        j                  j                  fi |S r5   )rP  r   qmcHaltonr  s     r)   haltonzTestTransitionToRNG.halton  s"    tuyy//:6::r+   c                 X     | j                   t        j                  j                  fi |S r5   )rP  r   rR  Sobolr  s     r)   sobolzTestTransitionToRNG.sobol  s     tuyy9&99r+   c                 X     | j                   t        j                  j                  fi |S r5   )rP  r   rR  LatinHypercuber  s     r)   latin_hypercubez#TestTransitionToRNG.latin_hypercube  s"    tuyy77B6BBr+   c                 X     | j                   t        j                  j                  fi |S r5   )rP  r   rR  PoissonDiskr  s     r)   poisson_diskz TestTransitionToRNG.poisson_disk  s"    tuyy44???r+   c                 f    t        j                  j                  dgfi |}|j                  d      S )Nr   rX   )r   rR  MultivariateNormalQMCr!   r7   r;   Xs      r)   multivariate_normal_qmcz+TestTransitionToRNG.multivariate_normal_qmc  s+    II++QC:6:xx{r+   c                 j    t        j                  j                  ddgdfi |}|j                  d      S )Ng      ?rX   )r   rR  MultinomialQMCr!   r`  s      r)   multinomial_qmcz#TestTransitionToRNG.multinomial_qmc	  s/    II$$c3Z=f=xx{r+   c                     t         j                  j                  d      }t        |j                  d            }t	        j
                  di |}t	        j                  |d|ij                  S )Nr   r4  methodr6   )r    r!   r|   r:  r   PermutationMethodpearsonrr1  )r7   r;   r~   r   rg  s        r)   permutation_methodz&TestTransitionToRNG.permutation_method  sW    ii##$78SZZ)*((262~~t3F3:::r+   c                     t         j                  j                  d      }t        |j                  d            }t	        j
                  | }t	        j                  di |}|j                  |      S )Nr   r4  )rg  r6   )r    r!   r|   r:  r   ri  BootstrapMethodr>  )r7   r;   r~   r   r   rg  s         r)   bootstrap_methodz$TestTransitionToRNG.bootstrap_method  s_    ii##$78SZZ)*nnd#&&00&&f&55r+   r   zmethod, arg_nameseedrandom_statec           	      p   t         j                  j                  d        d}t         j                  j                  |      }d}t	        j
                  t        |      5   || fi d|||i d d d        t         j                  j                  |      } || |      } || |      }t        ||       |j                  dv r || fi ||i}t        ||       y t         j                  j                  |      } || fi ||i} || fi ||i}|j                  dv rL || fi |t         j                  j                  |      i}	t        |	|        || fi ||i}
t        |
|       y t         j                  j                  |        || fi |d i}t        ||       t        ||       y # 1 sw Y   AxY w)Nl   p_ z3got multiple values for argument now known as `rng`r   r~   )r~   >   rA  rJ  >   rW  rT  r]  rZ  re  rb  )
r    r!   rn  r|   r   r   r   r   r@   r"   )r7   rg  arg_namern  r~   r   r   r   r   res1bres2bs              r)   test_rng_deterministicz*TestTransitionToRNG.test_rng_deterministic  s   < 			tii##D)G]]9G4 	948E3$78	9 ii##D)d$d%T4 ??::$38T"23Dt$ii##D)d.xo.d/x./?? M M 4KHbii.C.CD.I#JKE%44Hd#34E%
		td/x./T4 T4 ?	9 	9s   F++F5N)%r@   rA   rB   r   r   r  r  r  r  r  r  r  r  r!   r$  r&  r,  r/  r;  r=  rA  rJ  rP  rT  rW  rZ  r]  rb  re  rj  rm  r   r   	fail_slowslowr   rt  r6   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.poolr]   r   rY   rl   	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*   rI   rV   rZ   rb   rg   rr   r   r   r   r   r   r   r6   r+   r)   <module>r     s      , 	     /  * . 1R R R . - D P P P  1"M&&
)@ 2 2'.7 t& &$F@ F@R`& `&F*~! ~!r+   