
    sh                         S SK r S SKrS SKrS SKrS SKrS SKrS SK Jr  S SKJ	r	J
r
  S SKJr  S SKJrJrJr  S SKJrJr  S SKJr  S SKJrJr  S	r " S
 S\	5      rS r " S S\
\	5      r " S S\	\5      rg)    N)types)TestCaseMemoryLeakMixin)_get_proper_funcnext_uint32next_uint64next_double)MT19937	Generator)TypingError)run_in_new_process_cachingSerialMixini   c                   &    \ rS rSrS rS rS rSrg)TestHelperFuncs   c                    S nS nU R                  [        X[        R                  5      S   " 5       S5        U R                  [        X[        R                  5      S   " 5       S5        U R                  [        5       n[        X[        R                  5        S S S 5        U R                  S[        WR                  5      5        U R                  [        5       n[        X[        R                  5        S S S 5        U R                  S[        UR                  5      5        g ! , (       d  f       N= f! , (       d  f       NE= f)Nc                      g)N     r       q/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/tests/test_np_randomgen.pytest_32bit_funcBTestHelperFuncs.test_proper_func_provider.<locals>.test_32bit_func       r   c                      g)N@   r   r   r   r   test_64bit_funcBTestHelperFuncs.test_proper_func_provider.<locals>.test_64bit_func   r   r   r   r   r   z1Argument dtype is not one of the expected type(s))assertEqualr   npfloat64float32assertRaisesr   int32assertInstr	exceptionr   )selfr   r   raisess       r   test_proper_func_provider)TestHelperFuncs.test_proper_func_provider   s   		 	)/%%&( *+-	/)/%%&( *+-	/ {+v_rxxH ,?  !	
 {+v_u}}M ,?  !	
 ,+ ,+s    D&D7&
D47
Ec                    [         R                  R                  S5      nS n[        R                  " SS9" U5      nU R                  [        5       nU" U5        S S S 5        SnU R                  [        R                  " U[        WR                  5      5      S LSS[        UR                  5       3-   5        g ! , (       d  f       Nf= f)N   c                      U R                  SS9$ )N)r   )locnormalxs    r   <lambda>2TestHelperFuncs.test_check_types.<locals>.<lambda>6   s    AHHH.r   TcachezArgument loc is not one of the expected type\(s\): \[<class 'numba.core.types.*.Float'>, <class 'numba.core.types.*.Integer'>, <class 'int'>, <class 'float'>\]z0Expected pattern not found in exception message.z Found )r!   randomdefault_rngnumbanjitr$   r   
assertTrueresearchr'   r(   )r)   rngpy_func
numba_funcr*   expected_patterns         r   test_check_types TestHelperFuncs.test_check_types4   s    ii##A&.ZZd+G4
{+vsO ,0 	 	II&F,<,<(=>dJ>c&**+,-.	
 ,+s   	B;;
C	c           	      x   [         R                  R                  S5      nS n[        R                  " 5       " U5      n[        R                  " 5       " U5      nS n[        R                  " 5       " U5      n[         R
                  " [         R                  5      R                  [         R
                  " [         R                  5      R                  [         R                  4[         R
                  " [         R                  5      R                  [         R
                  " [         R                  5      R                  [         R                  4[         R
                  " [         R                  5      R                  [         R
                  " [         R                  5      R                  [         R                  4[         R
                  " [         R                  5      R                  [         R
                  " [         R                  5      R                  [         R                  4[         R
                  " [         R                  5      R                  [         R
                  " [         R                  5      R                  [         R                  4[         R
                  " [         R                  5      R                  [         R
                  " [         R                  5      R                  [         R                  4/nU GH  u  pxn	U R                  XxU	S9   U R                  [         5       n
U" XS-
  X5        S S S 5        U R#                  S[%        W
R&                  5      5        U R                  [         5       n
U" XUS-   U	5        S S S 5        U R#                  S[%        U
R&                  5      5        U R                  [         5       n
U" XUS-   U	5        S S S 5        U R#                  S[%        U
R&                  5      5        S S S 5        GM     [         R
                  " [         R(                  5      R                  [         R
                  " [         R(                  5      R                  [         R(                  pnU R                  [         5       n
U" XS-
  X5        S S S 5        U R#                  S[%        W
R&                  5      5        [         R
                  " [         R*                  5      R                  [         R
                  " [         R*                  5      R                  [         R*                  pnU R                  [         5       n
U" XUS-   U	5        S S S 5        U R#                  S[%        U
R&                  5      5        U R                  [         5       n
U" XUS-   U	5        S S S 5        U R#                  S[%        U
R&                  5      5        U R                  [         5       n
U" USS	[         R                  5        S S S 5        U R#                  S
[%        U
R&                  5      5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GM|  = f! , (       d  f       GN= f! , (       d  f       GN<= f! , (       d  f       N= f! , (       d  f       N= f)Nr.   c                 $    U R                  XUSS9$ )NTlowhighdtypeendpointintegersr4   rI   rJ   rK   s       r   r5   9TestHelperFuncs.test_integers_arg_check.<locals>.<lambda>J   s    JJ3JFr   c                 $    U R                  XUSS9$ )NFrH   rM   rO   s       r   r5   rP   O   s    JJ3JGr   rI   rJ   rK   zlow is out of boundszhigh is out of bounds   i   d   z*low is greater than high in given interval)r!   r9   r:   r;   r<   iinfouint8minmaxint8uint16int16uint32r%   subTestr$   
ValueErrorr&   r'   r(   uint64int64)r)   r@   rA   rB   numba_func_lownumba_func_endpoint_falsecasesrI   rJ   rK   r*   s              r   test_integers_arg_check'TestHelperFuncs.test_integers_arg_checkH   s`   ii##A&GZZ\'*
g.H$)JJL$9! XXbhh##RXXbhh%7%;%;RXXFXXbgg""BHHRWW$5$9$9277CXXbii $$bhhryy&9&=&=ryyIXXbhh##RXXbhh%7%;%;RXXFXXbii $$bhhryy&9&=&=ryyIXXbhh##RXXbhh%7%;%;RXXF
 !&Cu#>&&z2f"3a= 3 *(()
 &&z2fs59 3 +(()
 &&z2f-cq%H 3 +(()) ?> !&4 HHRYY/33HHRYY/33RYY z*f3a5 + 	"  !	

 HHRXX.22HHRXX.22BHH z*fs51 + 	#  !	

 z*f%cq%@ + 	#  !	

 z*fsCbii0 +8  !	
m 32 32 32# ?>6 +* +* +* +*s   Y#$X-1AY#3X?AY#Y-Y#Y6ZZ%Z+-
X<7Y#?
Y	Y#
Y Y##
Y3	6
Z
Z
Z(+
Z9r   N)__name__
__module____qualname____firstlineno__r+   rD   re   __static_attributes__r   r   r   r   r      s    
4
(O
r   r   c                      [         R                  R                  S5      n [         R                  R                  S5      nS n[        R                  " SS9" U5      n[         R
                  " UR                  S5      U" U 5      5      (       d   eg )Nr.   c                 $    U R                  S5      $ N
   r9   r3   s    r   r5   (test_generator_caching.<locals>.<lambda>   s    r   Tr7   ro   )r!   r9   r:   r;   r<   allclose)nb_rngnp_rngrA   rB   s       r   test_generator_cachingru      sg    YY""1%FYY""1%F$G$'0J;;v}}R(*V*<====r   c                   <   \ rS rSr   S3S jrS4S j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#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/ r0S0 r1S1 r2S2r3g)5TestRandomGenerators   Nc                    [         R                  " U5      nUc  SnUc;  [        R                  R	                  US9n[        R                  R	                  US9nO"[        U" U5      5      n[        U" U5      5      nU" UXE5      n	UR                  UXE5      n
[        U	[        R                  5      (       a4  [        R                  " U	R                  [        R                  5      (       d  [        U	[        5      (       a  [        R                  R                  XXeS9  O[        R                  R                  X5        UR                   R"                  S   nUR                   R"                  S   nU H  nU R%                  X   X   5        M     g )Nr.   seed)maxulprK   state)r;   r<   r!   r9   r:   r   rA   
isinstancendarray
issubdtyperK   floatingfloattestingassert_array_max_ulpassert_equalbit_generatorr}   assertPreciseEqual)r)   distribution_funcbitgen_typer{   	test_size
test_dtypeulp_precnumba_rng_instancenumpy_rng_instance	numba_res	numpy_resnumba_gen_statenumpy_gen_state
_state_keys                 r   check_numpy_parity'TestRandomGenerators.check_numpy_parity   sY   
 "JJ'89<D!#!6!6D!6!A!#!6!6D!6!A!*;t+<!=!*;t+<!= &&8&/=	%--.@.7E	 y"**--MM)//2;;77i//JJ++I3; , O JJ##I9 -::@@I,::@@I)J##O$?$3$?A *r   c                 l  ^ [         R                  R                  US9n[         R                  R                  US9n[        UR                  R
                  U5      nU" UR                  R
                  R                  5      n[        R                  " U4S j5      nU" U5      n	U R                  X5        g )Nrz   c                 (   > T" U R                   5      $ N)r   )r4   bitgen_funcs    r   r5   ?TestRandomGenerators._test_bitgen_func_parity.<locals>.<lambda>   s    +aoo*Fr   )
r!   r9   r:   getattrr   ctypesr}   r;   r<   r   )
r)   	func_namer   r{   r   r   
numpy_funcr   rB   r   s
     `       r   _test_bitgen_func_parity-TestRandomGenerators._test_bitgen_func_parity   s    YY222=YY222=/==DDiP
1??FFLLM	ZZ FG
12		5r   c                    [         R                  R                  5       n[        U5       H  u  pgUR	                  5       nXF   X'   U/U-   n[
        R                  " U5      n	U R                  [        5       n
U	" U6   S S S 5        U R                  SU S3[        W
R                  5      5        M     g ! , (       d  f       N<= f)Nz	Argument z$ is not one of the expected type(s):)r!   r9   r:   	enumeratecopyr;   r<   r$   r   r&   r'   r(   )r)   	dist_funcarg_list
valid_argsinvalid_argsr@   idx_arg	curr_argsnb_dist_funcr*   s              r   _check_invalid_types)TestRandomGenerators._check_invalid_types   s    ii##%"8,IC")I).IN	)I ::i0L"";/6i( 0MMD6!EFF$$% -
 0/s   6B22
C 	c                     [         R                  R                  5       n[        R                  " S 5      nU R                  X" U5      5        U R                  [        U5      [        U" U5      5      5        g )Nc                     U $ r   r   r3   s    r   r5   ATestRandomGenerators.test_npgen_boxing_unboxing.<locals>.<lambda>   s    !r   )r!   r9   r:   r;   r<   r    id)r)   rng_instancerB   s      r   test_npgen_boxing_unboxing/TestRandomGenerators.test_npgen_boxing_unboxing   sV    yy,,.ZZ,
z,'?@L)2j.F+GHr   c                    [         R                  R                  5       n[        R                  " S 5      n[        R                  " S 5      nU" U5      n[
        R                  " 5         [        R                  " U5      nAU" U5        [
        R                  " 5         [        R                  " U5      nU R                  XVS-   5        g )Nc                 "    U R                  5       $ r   rp   r3   s    r   r5   ATestRandomGenerators.test_npgen_boxing_refcount.<locals>.<lambda>   s
    QXXZr   c                     U $ r   r   r3   s    r   r5   r      s    Qr   r.   )
r!   r9   r:   r;   r<   gccollectsysgetrefcountr    )r)   r   no_boxdo_boxyref_1ref_2s          r   test_npgen_boxing_refcount/TestRandomGenerators.test_npgen_boxing_refcount   s    yy,,./0J'< 


-|


-	*r   c                     / SQn[         [        [        /n[        X!5       H.  u  p4U R	                  X4S9   U R                  XC5        S S S 5        M0     g ! , (       d  f       MB  = f)Nr   )_func
_func_name)r   r	   r
   zipr^   r   )r)   
func_namesfuncsr   r   s        r   test_bitgen_funcs&TestRandomGenerators.test_bitgen_funcs   sQ    B
k;7!$U!7EEA--j@ BA "8AAs   A
A#	c                 $   / SQn[         R                  [         R                  [         R                  [         R                  [         R
                  [         R                  [         R                  [         R                  /nS [        /nS nU R                  5          U R                  US S SS9  S S S 5        S nU HB  nU H9  nU H0  nU R                  XVUS9   U R                  XGS XVS5        S S S 5        M2     M;     MD     / SQnS [        /nS nU HH  nU H?  nU R                  UUS9   U R                  XGS U[         R                  S5        S S S 5        MA     MJ     S	 nU R                  5          U R                  US S S
9  S S S 5        S nU R                  U/ SQSSS[         R                  S/SSS[         R                  S/5        g ! , (       d  f       GN$= f! , (       d  f       GM(  = f! , (       d  f       M  = f! , (       d  f       N= f)NNr   )rU   ro         c                 &    U R                  SS5      $ Nr   rU   rM   r4   sizerK   s      r   r5   4TestRandomGenerators.test_integers.<locals>.<lambda>
  s    !**Q*<r   r   r   r   r   c                 $    U R                  SSXS9$ )N   ro   r   rK   rM   r   s      r   r5   r     s    JJq"4J5r   _size_dtype_bitgenc                 B    U R                  SSU[        R                  S9$ )NFTr   )rN   r!   bool_r   s      r   r5   r     s    JJudRXXJ>r   r   r   c                 v    U R                  [        R                  " S5      [        R                  " S5      5      $ r   )rN   r!   rW   ra   r   s      r   r5   r   '  s     JJrxx{BHHSM2r   r   r   c                 $    U R                  XUXES9$ )NrI   rJ   r   rK   rL   rM   )r4   rI   rJ   r   rK   rL   s         r   r5   r   -  s    JJ3"  7r   r   r.   r   r.   Tr4   r3   )r!   ra   r%   r\   rZ   r`   r]   r[   rW   r   r^   r   r   r   r"   r)   
test_sizestest_dtypesbitgen_typesr   r   r   r   s           r   test_integers"TestRandomGenerators.test_integers  s   5
xx288RWWyy"))RYYBg =	\\^##I/3a $ A 6	E%+GE.5 & 7//	04eQH7 7  , &   6
g?	E'\\*1 " 3++I,0%1F3 3 (  3	\\^##I/3 $ 5 7	 	!!)"N#$arxx">#&VRZZ"E	GK ^7 73 3 ^s0   G
G	)$G/0H

G
G,/
G>
Hc           
      ^  ^^ / SS[         R                  4PSS[         R                  4PSS[         R                  4PSS[         R                  4PSS[         R                  4PSS[         R                  4PSS[         R                  4PSS[         R                  4PSS[         R                  4PSS	[         R                  4PS
S	[         R                  4PSS[         R                  4PSS[         R                  4PSS[         R                  4PSS[         R                  4PSS[         R                  4PSS[         R                  4PSS[         R                  4PSS[         R                  4PSS[         R                  4PSS[         R
                  4PSS[         R
                  4PSS[         R
                  4PSS[         R
                  4PSS[         R                  4PSS[         R                  4PSS[         R                  4PSS[         R                  4PSS[         R                  4PSS[         R                  4PSS[         R                  4PSS[         R                  4PSS[         R                  4PSS[         R                  4PSS[         R                  4PSS[         R                  4PSS[         R                  4PSS[         R                  4PnSnU H=  u  mmnU R                  TTUS9   UU4S jnU R                  US S X#S5        S S S 5        M?     g ! , (       d  f       MQ  = f)Nr      rU   r   l   l    l    l   l   ll    l    iii  i  i  ro   i  i  i            i)rS      rR   c                 &   > U R                  TTXS9$ Nr   rM   )r4   r   rK   rJ   rI   s      r   r5   :TestRandomGenerators.test_integers_cases.<locals>.<lambda>k  s    JJsDtJAr   )r!   r`   ra   r]   r%   r[   r\   rW   rZ   r^   r   )r)   rd   r   rK   r   rJ   rI   s        @@r   test_integers_cases(TestRandomGenerators.test_integers_cases6  s   /
299/
 RYY/
 bii(	/

 &		2/
 "BII./
 288/
 RXX/
 bhh'/
 %rxx0/
 !288,/
  !2BHH=/
 299/
  RYY!/
" 		*#/
$ 
BII&%/
( 288)/
* RXX+/
, rxx(-/
. 	288$//
0 BHH-1/
4 2995/
6 RYY7/
8 
BII&9/
: 		";/
> 288?/
@ BHHA/
B 	288$C/
D rxx E/
F UBHH%G/
J 288K/
L BHHM/
N "((#O/
P bhhQ/
T 277OU/
V BGGW/
X !Y/
Z RWW[/
\ 3 ]/
`  %Cu#D>B	''	4(,d1> ?> !&>>s   3L
L,	c                    / SQn[         R                  [         R                  /nS [        /nS nU R	                  5          U R                  US S S9  S S S 5        S nU HA  nU H8  nU H/  nU R	                  XVUS9   U R                  XGS XV5        S S S 5        M1     M:     MC     S nU R                  USS/S	[         R                  /S
S/5        g ! , (       d  f       N= f! , (       d  f       M  = f)Nr   c                 "    U R                  5       $ r   rp   r   s      r   r5   2TestRandomGenerators.test_random.<locals>.<lambda>v  
    !((*r   r   c                      U R                  XS9$ r   rp   r   s      r   r5   r   {  s    !(((*Jr   r   c                      U R                  XS9$ r   rp   r   s      r   r5   r     s    HH$H,r   r   rK   r   r3   g        r!   r#   r"   r   r^   r   r   r   s           r   test_random TestRandomGenerators.test_randomp  s    5
zz2::.g 5	\\^##I/3 $ 5  K	E%+GE.5 & 7//	04eE7 7  , &  -	!!)fg->#'"4vrl	D ^7 7    C<C!	
C!
C0c                    / SQn[         R                  [         R                  /nS [        /nS nU R	                  5          U R                  US S S9  S S S 5        S nU HA  nU H8  nU H/  nU R	                  XVUS9   U R                  XGS XV5        S S S 5        M1     M:     MC     S nU R                  USS/S	[         R                  /S
S/5        g ! , (       d  f       N= f! , (       d  f       M  = f)Nr   c                 "    U R                  5       $ r   standard_normalr   s      r   r5   ;TestRandomGenerators.test_standard_normal.<locals>.<lambda>      !*;*;*=r   r   c                      U R                  XS9$ r   r  r   s      r   r5   r        45r   r   c                      U R                  XS9$ r   r  r   s      r   r5   r    r	  r   r   rK   r   r3   r   r   r   s           r   test_standard_normal)TestRandomGenerators.test_standard_normal  s    5
zz2::.g >	\\^##I/3 $ 5 6	  E%+GE.5 & 7//	04eE7 7  , &  6	!!)fg->#'"4vqk	C! ^7 7r  c                    / SQn[         R                  [         R                  /nS [        /nS nU R	                  5          U R                  US S S9  S S S 5        S nU HA  nU H8  nU H/  nU R	                  XVUS9   U R                  XGS XV5        S S S 5        M1     M:     MC     S nU R                  U/ SQSS	[         R                  // S
Q5        g ! , (       d  f       N= f! , (       d  f       M  = f)Nr   c                 "    U R                  5       $ r   standard_exponentialr   s      r   r5   @TestRandomGenerators.test_standard_exponential.<locals>.<lambda>  s    !*@*@*Br   r   c                      U R                  XS9$ r   r  r   s      r   r5   r    s    """:r   r   c                 "    U R                  XUS9$ )Nmethodr   rK   r  )r4   r  r   rK   s       r   r5   r    s    ""&5"Ir   r  zigr   )r   r3   r   r   r   s           r   test_standard_exponential.TestRandomGenerators.test_standard_exponential  s    5
zz2::.g C	\\^##I/3 $ 5 ;	  E%+GE.5 & 7//	04eE7 7  , &  J	!!)-H#($

";^	M# ^7 7s    C<C"	
C"
C1c                    / SQn[         R                  [         R                  /nS [        /nS nU HA  nU H8  nU H/  nU R	                  XVUS9   U R                  XGS XV5        S S S 5        M1     M:     MC     g ! , (       d  f       MK  = f)Nr   c                 "    U R                  XSS9$ )Ninv)r   rK   r  r  r   s      r   r5   DTestRandomGenerators.test_standard_exponential_inv.<locals>.<lambda>  s    ""5"Ir   r   )r!   r#   r"   r   r^   r   r   s           r   test_standard_exponential_inv2TestRandomGenerators.test_standard_exponential_inv  s    5
zz2::.gJ	E%+GE.5 & 7//	04eE7 7  , &  7 7s   A8	8
Bc                 v   / SQn[         R                  [         R                  /nS [        /nS nU HF  nU H=  nU H4  nU R	                  XVUS9   U R                  XGS XV[        5        S S S 5        M6     M?     MH     S nU R                  U/ SQSS[         R                  // SQ5        g ! , (       d  f       M|  = f)	Nr   c                 "    U R                  SXS9$ )N      @shaper   rK   standard_gammar   s      r   r5   :TestRandomGenerators.test_standard_gamma.<locals>.<lambda>  s    3T?r   r   c                 "    U R                  XUS9$ )Nr"  r$  )r4   r#  r   rK   s       r   r5   r&    s    55Ar   r"  r!  r   )r4   r3   r   )r!   r#   r"   r   r^   r   adjusted_ulp_precr   r   s           r   test_standard_gamma(TestRandomGenerators.test_standard_gamma  s    5
zz2::.g@	E%+GE.5 & 7//	04e0AC7 7  , &  B	!!)-G#&bjj"9;K	M7 7s   B)	)
B8c                    / SQnS [         /nS nU R                  5          U R                  US S [        S9  S S S 5        S nU H=  nU H4  nU R                  XES9   U R                  X5S US [        5        S S S 5        M6     M?     S nU R	                  U/ SQ/ SQ/ S	Q5        g ! , (       d  f       Nr= f! , (       d  f       Mz  = f)
Nr   c                 "    U R                  5       $ r   r1   r   s      r   r5   2TestRandomGenerators.test_normal.<locals>.<lambda>  r   r   r   c                 $    U R                  SSUS9$ )N      ?r   r0   scaler   r1   r   s      r   r5   r-    s    !((s!$(*Or   r   c                 "    U R                  XUS9$ Nr0  r1   r4   r0   r1  r   s       r   r5   r-    s    HHH5r   r0  r/  r   r   r4   r4   r3   r   r^   r   r(  r   r)   r   r   r   r   r   s         r   test_normal TestRandomGenerators.test_normal  s     6
g 5	\\^##I/3-> $ @ 
 P	E'\\\?++I,0%,=? @? (  6	!!)-E"02D	F ^ @?   B#B4#
B14
Cc                    / SQnS [         /nS nU R                  5          U R                  US S [        S9  S S S 5        S nU H=  nU H4  nU R                  XES9   U R                  X5S US [        5        S S S 5        M6     M?     S nU R	                  U/ SQ/ SQ/ S	Q5        g ! , (       d  f       Nr= f! , (       d  f       Mz  = f)
Nr   c                 "    U R                  5       $ r   uniformr   s      r   r5   3TestRandomGenerators.test_uniform.<locals>.<lambda>  
    !))+r   r   c                 $    U R                  SSUS9$ )Nr/  r   rI   rJ   r   r>  r   s      r   r5   r@  	  s    !))!$)*Or   r   c                 "    U R                  XUS9$ )NrC  r>  )r4   rI   rJ   r   s       r   r5   r@    s    II#tI4r   rC  r5  r6  r7  r8  s         r   test_uniform!TestRandomGenerators.test_uniform  s     6
g 6	\\^##I/3-> $ @ 
 P	E'\\\?++I,0%,=? @? (  5	!!)-D"02D	F ^ @?r;  c           
      x   / SQnS [         /nS nU R                  5          U R                  US S S9  S S S 5        S nU H8  nU H/  nU R                  XES9   U R                  X5S US 5        S S S 5        M1     M:     S nU R                  USS/S	S
/SS/5        g ! , (       d  f       Nm= f! , (       d  f       Mu  = f)Nr   c                 "    U R                  5       $ r   exponentialr   s      r   r5   7TestRandomGenerators.test_exponential.<locals>.<lambda>  s
    !--/r   r   c                 "    U R                  SUS9$ Nr/  r1  r   rI  r   s      r   r5   rK  "  s    !--c-*Mr   r   c                      U R                  XS9$ NrN  rI  r4   r1  r   s      r   r5   rK  (  s    MMM1r   r1  r   r/  r   r4   r3   r   r^   r   r   r8  s         r   test_exponential%TestRandomGenerators.test_exponential  s     6
g :	\\^##I/3 $ 5  N	E'\\\?++I,0%? @? (  
2	!!)gv->#&+V}	> ^ @?   BB*
B'*
B9c                    / SQnS [         /nS nU H=  nU H4  nU R                  XES9   U R                  X5S US [        5        S S S 5        M6     M?     S nU R	                  U/ SQ/ SQ/ SQ5        g ! , (       d  f       Mi  = f)Nr   c                 $    U R                  SSUS9$ )Nr!  r/  r#  r1  r   gammar   s      r   r5   1TestRandomGenerators.test_gamma.<locals>.<lambda>4  s    !''37; +2 +=r   r   c                 "    U R                  XUS9$ )NrX  rY  )r4   r#  r1  r   s       r   r5   r[  <  s    GG%4G8r   rX  r!  r/  r   r6  r7  r8  s         r   
test_gammaTestRandomGenerators.test_gamma-  s     6
g=	E'\\\?++I,0%,=? @? (  9	!!)-G"24F	H @?   A11
B c                    / SQnS [         /nS nU H=  nU H4  nU R                  XES9   U R                  X5S US [        5        S S S 5        M6     M?     S nU R	                  U/ SQ/ SQ/ SQ5        g ! , (       d  f       Mi  = f)Nr   c                 $    U R                  SSUS9$ )Nr/  g      @abr   betar   s      r   r5   0TestRandomGenerators.test_beta.<locals>.<lambda>H  s    !&&3#D&*Ir   r   c                 "    U R                  XUS9$ )Nrc  rf  )r4   rd  re  r   s       r   r5   rh  P  s    !t)Dr   rc  r]  r6  r7  r8  s         r   	test_betaTestRandomGenerators.test_betaA  s     6
gI	E'\\\?++I,0%,=? @? (   E	!!)-?"24F	H @?r`  c                    / SQnS [         /nS nU H=  nU H4  nU R                  XES9   U R                  X5S US [        5        S S S 5        M6     M?     S nU R	                  U/ SQ/ SQ/ SQ5        g ! , (       d  f       Mi  = f)Nr   c                 $    U R                  SSUS9$ )NrS   r   dfnumdfdenr   fr   s      r   r5   -TestRandomGenerators.test_f.<locals>.<lambda>[  s    !##AQT#*Jr   r   c                 "    U R                  XUS9$ )Nrn  rq  )r4   ro  rp  r   s       r   r5   rs  c  s    CCetC4r   rn  )r   r.   r   r6  r7  r8  s         r   test_fTestRandomGenerators.test_fT  s     6
gJ	E'\\\?++I,0%,=? @? (  5	!!)-G".0B	D @?r`  c                    / SQnS [         /nS nU H=  nU H4  nU R                  XES9   U R                  X5S US [        5        S S S 5        M6     M?     S nU R	                  USS/SS/S	S
/5        g ! , (       d  f       Mi  = f)Nr   c                 "    U R                  SUS9$ NrS   dfr   	chisquarer   s      r   r5   5TestRandomGenerators.test_chisquare.<locals>.<lambda>o  s    !+++*Fr   r   c                      U R                  XS9$ Nrz  r|  r4   r{  r   s      r   r5   r~  w  s    KK2K)r   r{  r   rS   r   r4   r3   r7  r8  s         r   test_chisquare#TestRandomGenerators.test_chisquareh  s     6
gF	E'\\\?++I,0%,=? @? (  *	!!)dF^#$d)c6]	< @?r`  c           
      r   / SQnS [         /nS nU R                  5          U R                  US S S9  S S S 5        S nU H8  nU H/  nU R                  XES9   U R                  X5S US 5        S S S 5        M1     M:     S nU R                  US/S/S	/5        g ! , (       d  f       Nj= f! , (       d  f       Mr  = f)
Nr   c                 "    U R                  5       $ r   standard_cauchyr   s      r   r5   ;TestRandomGenerators.test_standard_cauchy.<locals>.<lambda>  r  r   r   c                      U R                  US9$ Nr   r  r   s      r   r5   r    s    !*;*;*;*Fr   r   c                      U R                  US9$ r  r  )r4   r   s     r   r5   r    s    1#4#4$#4#?r   r   r   r3   rR  r8  s         r   test_standard_cauchy)TestRandomGenerators.test_standard_cauchy|  s     6
g >	\\^##I/3 $ 5  G	E'\\\?++I,0%? @? (   @	!!)fX#'&6(	4 ^ @?s   BB'
B$'
B6c           
          / SQnS [         /nS nU H8  nU H/  nU R                  XES9   U R                  X5S US 5        S S S 5        M1     M:     S nU R                  USS/SS/S	S
/5        g ! , (       d  f       Md  = f)Nr   c                 "    U R                  SUS9$ N      ?rd  r   paretor   s      r   r5   2TestRandomGenerators.test_pareto.<locals>.<lambda>  s    !((St(*Dr   r   c                      U R                  XS9$ Nr  r  r4   rd  r   s      r   r5   r    s    ahhh&>r   rd  r   r.   r   r4   r3   rR  r8  s         r   test_pareto TestRandomGenerators.test_pareto  s     6
gD	E'\\\?++I,0%? @? (   ?	!!)c6]#$d)c6]	< @?   A,,
A;c           
          / SQnS [         /nS nU H8  nU H/  nU R                  XES9   U R                  X5S US 5        S S S 5        M1     M:     S nU R                  USS/SS/S	S
/5        g ! , (       d  f       Md  = f)Nr   c                 "    U R                  SUS9$ r  weibullr   s      r   r5   3TestRandomGenerators.test_weibull.<locals>.<lambda>  s    !))c)*Er   r   c                      U R                  XS9$ r  r  r  s      r   r5   r    s    aii!i&?r   rd  r   r.   r   r4   r3   rR  r8  s         r   test_weibull!TestRandomGenerators.test_weibull  s     6
gE	E'\\\?++I,0%? @? (   @	!!)c6]#$d)c6]	< @?r  c           
          / SQnS [         /nS nU H8  nU H/  nU R                  XES9   U R                  X5S US 5        S S S 5        M1     M:     S nU R                  USS/SS/S	S
/5        g ! , (       d  f       Md  = f)Nr   c                 "    U R                  SUS9$ )N      ?r  powerr   s      r   r5   1TestRandomGenerators.test_power.<locals>.<lambda>  s    !''Dt'*Dr   r   c                      U R                  XS9$ r  r  r  s      r   r5   r    s    aggg&=r   rd  r   r  r   r4   r3   rR  r8  s         r   
test_powerTestRandomGenerators.test_power  s     6
gD	E'\\\?++I,0%? @? (   >	!!)c6]#',f	? @?r  c                    / SQnS [         /nS nU R                  5          U R                  US S [        S9  S S S 5        S nU H=  nU H4  nU R                  XES9   U R                  X5S US [        5        S S S 5        M6     M?     S nU R	                  U/ SQ/ SQ/ S	Q5        g ! , (       d  f       Nr= f! , (       d  f       Mz  = f)
Nr   c                 "    U R                  5       $ r   laplacer   s      r   r5   3TestRandomGenerators.test_laplace.<locals>.<lambda>  rA  r   r   c                 $    U R                  SSUS9$ Nr  r/  r0  r  r   s      r   r5   r    s    II#StI4r   r   c                 "    U R                  XUS9$ r3  r  r4  s       r   r5   r    s    II#I6r   r0  r  r/  r   r6  r7  r8  s         r   test_laplace!TestRandomGenerators.test_laplace  s     6
g 6	\\^##I/3-> $ @ 
5	E'\\\?++I,0%,=? @? (  7	!!)-E"24F	H! ^ @?r;  c                    / SQnS [         /nS nU R                  5          U R                  US S [        S9  S S S 5        S nU H=  nU H4  nU R                  XES9   U R                  X5S US [        5        S S S 5        M6     M?     S nU R	                  U/ SQ/ SQ/ S	Q5        g ! , (       d  f       Nr= f! , (       d  f       Mz  = f)
Nr   c                 "    U R                  5       $ r   logisticr   s      r   r5   4TestRandomGenerators.test_logistic.<locals>.<lambda>  
    !**,r   r   c                 $    U R                  SSUS9$ r  r  r   s      r   r5   r    s    JJ3StJ4r   r   c                 "    U R                  XUS9$ r3  r  r4  s       r   r5   r    s    JJ3$J7r   r0  r  r6  r7  r8  s         r   test_logistic"TestRandomGenerators.test_logistic  s     6
g 7	\\^##I/3-> $ @ 
5	E'\\\?++I,0%,=? @? (  8	!!)-E"24F	H! ^ @?r;  c                    / SQnS [         /nS nU R                  5          U R                  US S [        S9  S S S 5        S nU H=  nU H4  nU R                  XES9   U R                  X5S US [        5        S S S 5        M6     M?     S nU R	                  U/ SQ/ SQ/ S	Q5        g ! , (       d  f       Nr= f! , (       d  f       Mz  = f)
Nr   c                 "    U R                  5       $ r   	lognormalr   s      r   r5   5TestRandomGenerators.test_lognormal.<locals>.<lambda>
  s
    !++-r   r   c                 $    U R                  SSUS9$ )Nr!  r/  meansigmar   r  r   s      r   r5   r    s    KKS$K7r   r   c                 "    U R                  XUS9$ )Nr  r  )r4   r  r  r   s       r   r5   r    s    KKTTK:r   r  r  r6  r7  r8  s         r   test_lognormal#TestRandomGenerators.test_lognormal  s     6
g 8	\\^##I/3-> $ @ 
8	E'\\\?++I,0%,=? @? (  ;	!!)-F"24F	H! ^ @?r;  c           
      x   / SQnS [         /nS nU R                  5          U R                  US S S9  S S S 5        S nU H8  nU H/  nU R                  XES9   U R                  X5S US 5        S S S 5        M1     M:     S nU R                  USS/S	S
/SS/5        g ! , (       d  f       Nm= f! , (       d  f       Mu  = f)Nr   c                 "    U R                  5       $ r   rayleighr   s      r   r5   4TestRandomGenerators.test_rayleigh.<locals>.<lambda>&  r  r   r   c                 "    U R                  SUS9$ rM  r  r   s      r   r5   r  +  s    !**3T**Jr   r   c                      U R                  XS9$ rP  r  rQ  s      r   r5   r  2  s    !**5**Lr   r1  r   r/  r   r4   r3   rR  r8  s         r   test_rayleigh"TestRandomGenerators.test_rayleigh  s     6
g 7	\\^##I/3 $ 5  K	E'\\\?++I,0%? @? (   M	!!)gv->#&+V}	> ^ @?rU  c                    / SQnS [         /nS nU H=  nU H4  nU R                  XES9   U R                  X5S US [        5        S S S 5        M6     M?     S nU R	                  USS/SS/S	S
/5        g ! , (       d  f       Mi  = f)Nr   c                 "    U R                  SUS9$ ry  
standard_tr   s      r   r5   6TestRandomGenerators.test_standard_t.<locals>.<lambda>=  s    !,,!$,*Gr   r   c                      U R                  XS9$ r  r  r  s      r   r5   r  E  s    q||r|'Er   r{  r   rS   r   r4   r3   r7  r8  s         r   test_standard_t$TestRandomGenerators.test_standard_t6  s     6
gG	E'\\\?++I,0%,=? @? (   F	!!)dF^#$d)c6]	< @?r`  c                    / SQnS [         /nS nU H=  nU H4  nU R                  XES9   U R                  X5S US [        5        S S S 5        M6     M?     S nU R	                  U/ SQ/ SQ/ SQ5        g ! , (       d  f       Mi  = f)Nr   c                 $    U R                  SSUS9$ )Nr!  r/  r  r1  r   waldr   s      r   r5   0TestRandomGenerators.test_wald.<locals>.<lambda>P  s    !&&c4&*Pr   r   c                 "    U R                  XUS9$ )Nr  r  )r4   r  r1  r   s       r   r5   r  X  s    FFF5r   r  r  r6  r7  r8  s         r   	test_waldTestRandomGenerators.test_waldI  s     6
gP	E'\\\?++I,0%,=? @? (  6	!!)-F"24F	H @?r`  c                    / SQnS [         /nS nU H=  nU H4  nU R                  XES9   U R                  X5S US [        5        S S S 5        M6     M?     S nU R	                  USS/SS/S	S
/5        g ! , (       d  f       Mi  = f)Nr   c                 "    U R                  SUS9$ )Nr  pr   	geometricr   s      r   r5   5TestRandomGenerators.test_geometric.<locals>.<lambda>d  s    !++4+*Hr   r   c                      U R                  XS9$ Nr  r  r4   r  r   s      r   r5   r  l  s    akkAk&Ar   r  r   r  r   r4   r3   r7  r8  s         r   test_geometric#TestRandomGenerators.test_geometric]  s     6
gH	E'\\\?++I,0%,=? @? (   B	!!)c6]#',f	? @?r`  c           
          / SQnS [         /nS nU H8  nU H/  nU R                  XES9   U R                  X5S US 5        S S S 5        M1     M:     S nU R                  USS/SS/S	S
/5        g ! , (       d  f       Md  = f)Nr   c                 "    U R                  SUS9$ )Nr/  r  zipfr   s      r   r5   0TestRandomGenerators.test_zipf.<locals>.<lambda>w  s    !&&3T&*Br   r   c                      U R                  XS9$ r  r  r  s      r   r5   r  ~  s    affqf&<r   rd  r   r.   r   r4   r3   rR  r8  s         r   	test_zipfTestRandomGenerators.test_zipfp  s     6
gB	E'\\\?++I,0%? @? (   =	!!)c6]#$d)c6]	< @?r  c           
          / SQnS [         /nS nU H8  nU H/  nU R                  XES9   U R                  X5S US 5        S S S 5        M1     M:     S nU R                  U/ SQ/ SQ/ SQ5        g ! , (       d  f       Md  = f)Nr   c                 &    U R                  SSSUS9$ )Nr   r   r   leftmoderightr   
triangularr   s      r   r5   6TestRandomGenerators.test_triangular.<locals>.<lambda>  s    LLaaqtL<r   r   c                 "    U R                  XX4S9$ )Nr  r  )r4   r   r  r  r   s        r   r5   r    s    LLdULFr   r  )r   r   r   r   r4   r4   r4   r3   rR  r8  s         r   test_triangular$TestRandomGenerators.test_triangular  s     6
g=	E'\\\?++I,0%? @? (  G	!!)-N"13J	L @?r  c                    / SQnS [         /nS nU H=  nU H4  nU R                  XES9   U R                  X5S US [        5        S S S 5        M6     M?     S nU R	                  USS/SS/S	S
/5        g ! , (       d  f       Mi  = f)Nr   c                 "    U R                  SUS9$ )Nr   lamr   poissonr   s      r   r5   3TestRandomGenerators.test_poisson.<locals>.<lambda>  s    !)))*Fr   r   c                      U R                  XS9$ )Nr  r  )r4   r  r   s      r   r5   r    s    		c	(Er   r  r   r   r   r4   r3   r7  r8  s         r   test_poisson!TestRandomGenerators.test_poisson  s     6
gF	E'\\\?++I,0%,=? @? (   F	!!)eV_#%t*sFm	= @?r`  c                    / SQnS [         /nS nU H=  nU H4  nU R                  XES9   U R                  X5S US [        5        S S S 5        M6     M?     S nU R	                  U/ SQ/ SQ/ SQ5        g ! , (       d  f       Mi  = f)Nr   c                 $    U R                  SSUS9$ Nr.   皙?nr  r   negative_binomialr   s      r   r5   =TestRandomGenerators.test_negative_binomial.<locals>.<lambda>  s    !s6r   r   c                 "    U R                  XUS9$ Nr  r  r4   r  r  r   s       r   r5   r    s    !t4r   r  r.   r  r   r6  r7  r8  s         r   test_negative_binomial+TestRandomGenerators.test_negative_binomial  s     6
g7	E'\\\?++I,0%,=? @? (  5	!!)-?"13E	G @?r`  c           
         ^ S/nS [         /n/ SQn[        R                  " UUU5       H:  u  pEmU R                  XETS9   U4S jnU R	                  XeS US S5        S S S 5        M<     g ! , (       d  f       MN  = f)Nr   )r   r.   rS   r   r   _axisc                 F   > U R                  US9nU R                  UTS9  U$ )Nr  axis)r9   shuffle)r4   r   rK   arrr%  s       r   r   4TestRandomGenerators.test_shuffle.<locals>.dist_func  s(    (((-CIIcI.Jr   r   )r   	itertoolsproductr^   r   )r)   r   r   axesr   r   r   r%  s          @r   test_shuffle!TestRandomGenerators.test_shuffle  s    "^
g%.%6%6z7C7;&=!EE E%H ''	(,eT()+ IH&= IHs   A((
A7	c                     [         R                  " / 5      n[         R                  " / 5      nS n[        R                  " U5      nS nU R	                  U" U" 5       U5      U" U" 5       U5      5        g )Nc                 (    U R                  U5        U$ r   r)  r4   r*  s     r   r   :TestRandomGenerators.test_shuffle_empty.<locals>.dist_func  s    IIcNJr   c                  @    [         R                  R                  S5      $ Nr.   r!   r9   r:   r   r   r   r5   9TestRandomGenerators.test_shuffle_empty.<locals>.<lambda>      bii++A.r   r!   arrayr;   r<   r   r)   rd  re  r   nb_funcr@   s         r   test_shuffle_empty'TestRandomGenerators.test_shuffle_empty  sX    HHRLHHRL	 **Y'.	#% 3WSUA5FGr   c                    U R                  5         S nU R                  USS/[        R                  " / SQ5      S/SS/5        [        R                  R                  S5      nU R                  [        5       n[        R                  " U5      " U[        R                  " / SQ5      S5        S S S 5        U R                  S[        WR                  5      5        g ! , (       d  f       N4= f)	Nc                 $    U R                  XS9  U$ Nr'  r3  r4   r*  r(  s      r   r   :TestRandomGenerators.test_shuffle_check.<locals>.dist_func  s    IIcI%Jr   r4   r(  r      r   r   r.   rS   )Axis is out of bounds for the given arraydisable_leak_checkr   r!   r<  r9   r:   r$   
IndexErrorr;   r<   r&   r'   r(   r)   r   r@   r*   s       r   test_shuffle_check'TestRandomGenerators.test_shuffle_check  s    !	 	!!)c6]#%88G#4a"83*	F ii##A&z*fJJy!#rxx'8!< +7  !	
 +*s   85C
C)c           
         S/nS [         /n/ SQn[        R                  " UUU5       H7  u  pEnU R                  XEUS9   S nU R	                  XuS US S5        S S S 5        M9     [
        R                  " S 5      n[        R                  R                  5       nUR                  SS9n	U	R                  5       n
U" X5        U R                  X5        g ! , (       d  f       M  = f)	Nr   )r   r.   rS   r$  c                 @    U R                  US9nU R                  USS9$ )Nr  r.   r'  )r9   permutation)r4   r   rK   r*  s       r   r   8TestRandomGenerators.test_permutation.<locals>.dist_func  s%    (((-C==1=55r   r   c                 $    U R                  U5      $ r   rS  )r@   r*  s     r   r5   7TestRandomGenerators.test_permutation.<locals>.<lambda>  s    0Dr   )ro   r   r  )r   r,  r-  r^   r   r;   r<   r!   r9   r:   r   r   )r)   r   r   r.  r   r   r%  r   r@   r*  arr_cpys              r   test_permutation%TestRandomGenerators.test_permutation  s    "^
g %.%6%6z7C7;&=!EE E%H6 ''	(,eT()+	 IH&= JJDE	ii##%jjhj'((*#- IHs   C
C 	c                    U R                  5         S nU R                  USS/[        R                  " / SQ5      S/SS/5        [        R                  R                  S5      nU R                  [        5       n[        R                  " U5      " U[        R                  " / SQ5      S5        S S S 5        U R                  S[        WR                  5      5        U R                  [        5       n[        R                  " U5      " U[        R                  " / SQ5      S	5        S S S 5        U R                  S[        UR                  5      5        g ! , (       d  f       N= f! , (       d  f       NE= f)
Nc                      U R                  XS9$ rC  rV  rD  s      r   r   BTestRandomGenerators.test_permutation_exception.<locals>.dist_func  s    ===00r   r4   r(  rF  r   r.   rS   rH  rQ  rI  rL  s       r   test_permutation_exception/TestRandomGenerators.test_permutation_exception  s   !	1 	!!)c6]#%88G#4a"83*	F ii##A&z*fJJy!#rxx'8!< +7  !	
 z*fJJy!#rxx'8"= +7  !	
 +* +*s   85E/5E#
E #
E1c                     [         R                  " / 5      n[         R                  " / 5      nS n[        R                  " U5      nS nU R	                  U" U" 5       U5      U" U" 5       U5      5        g )Nc                 $    U R                  U5      $ r   rV  r4  s     r   r   >TestRandomGenerators.test_permutation_empty.<locals>.dist_func'  s    ==%%r   c                  @    [         R                  R                  S5      $ r7  r8  r   r   r   r5   =TestRandomGenerators.test_permutation_empty.<locals>.<lambda>+  r:  r   r;  r=  s         r   test_permutation_empty+TestRandomGenerators.test_permutation_empty#  sX    HHRLHHRL	& **Y'.	#% 3WSUA5FGr   c           	      h   / SQnS [         /nS n[        R                  " X5       H1  u  pEU R                  XES9   U R	                  X5S US 5        S S S 5        M3     S n/ SQnU R                  U/ SQU/ SQ5        [        R                  R                  5       nU/U-   n[        R                  " U5      nU R                  [        5       n	UR                  5       n
SU
S	'   U" U
6   S S S 5        U R                  S
[        W	R                   5      5        U R                  [        5       n	UR                  5       n
SU
S'   U" U
6   S S S 5        U R                  S[        U	R                   5      5        U R#                  5         g ! , (       d  f       GMi  = f! , (       d  f       N= f! , (       d  f       Nh= f)Nr   c                 $    U R                  SSUS9$ N      @g      4@r  noncentral_chisquarer   s      r   r5   @TestRandomGenerators.test_noncentral_chisquare.<locals>.<lambda>6  s    ""34"8r   r   c                 "    U R                  XUS9$ )Nr{  noncr   rk  )r4   r{  rp  r   s       r   r5   rm  =  s    ""b$"?r   )rj  r!  r   ro  r6  r   r.   zdf <= 0rP  rS   nonc < 0)r   r,  r-  r^   r   r   r!   r9   r:   r;   r<   r$   r_   r   r&   r'   r(   rJ  r)   r   r   r   r   r   r   r@   r   r*   r   s              r   test_noncentral_chisquare.TestRandomGenerators.test_noncentral_chisquare/  st    6
g9	'//
INEE;''	(,eT; <; J
@	%
!!)-C",.@	B ii##%UZ'
zz),z*f")IIaL)$	 +
 	iV%5%5!67z*f")IIaL)$	 +
 	j#f&6&6"78!7 <; +* +*s#   E?	F&F#?
F	
F #
F1c           
      P   / SQnS [         /nS n[        R                  " X5       H6  u  pEU R                  XES9   U R	                  X5S US [
        5        S S S 5        M8     S n/ SQnU R                  U/ SQU/ SQ5        [        R                  R                  5       nU/U-   n[        R                  " U5      nU R                  [        5       n	UR                  5       n
SU
S	'   U" U
6   S S S 5        U R                  S
[!        W	R"                  5      5        U R                  [        5       n	UR                  5       n
SU
S'   U" U
6   S S S 5        U R                  S[!        U	R"                  5      5        U R                  [        5       n	UR                  5       n
SU
S'   U" U
6   S S S 5        U R                  S[!        U	R"                  5      5        U R%                  5         g ! , (       d  f       GM  = f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       Nz= f)Nr   c                 &    U R                  SSSUS9$ ri  noncentral_fr   s      r   r5   8TestRandomGenerators.test_noncentral_f.<locals>.<lambda>]  s    NN3cN5r   r   c                 "    U R                  XX4S9$ )Nro  rp  rp  r   rw  )r4   ro  rp  rp  r   s        r   r5   ry  e  s    NN$NJr   )rj  r!  rj  r   r{  r  r   r.   z
dfnum <= 0rS   z
dfden <= 0rP  r   rq  )r   r,  r-  r^   r   r(  r   r!   r9   r:   r;   r<   r$   r_   r   r&   r'   r(   rJ  rr  s              r   test_noncentral_f&TestRandomGenerators.test_noncentral_fV  s    6
g6	'//
INEE;''	(,eT(9; <; JK	*
!!)-O",.E	G ii##%UZ'
zz),z*f")IIaL)$	 +
 	lC(8(8$9:z*f")IIaL)$	 +
 	lC(8(8$9:z*f")IIaL)$	 +
 	j#f&6&6"78!E <; +* +* +*s/   G!G4+HH!
G1	4
H
H
H%c           	         / SQnS [         /nS n[        R                  " X5       H1  u  pEU R                  XES9   U R	                  X5S US 5        S S S 5        M3     S nSS/nU R                  USS/US	S
/5        [        R                  R                  S5      nU/U-   n[        R                  " U5      nSS[        R                  4 H_  n	U R                  [        5       n
UR                  5       nXS'   U" U6   S S S 5        U R                  S[!        W
R"                  5      5        Ma     U R%                  5         g ! , (       d  f       GM&  = f! , (       d  f       N[= f)Nr   c                 "    U R                  SUS9$ )N333333?r  	logseriesr   s      r   r5   5TestRandomGenerators.test_logseries.<locals>.<lambda>  s    KK$K'r   r   c                      U R                  XS9$ r  r  r  s      r   r5   r    s    KK!K'r   r  r   r  r   r4   r3   r.   gzp < 0, p >= 1 or p is NaN)r   r,  r-  r^   r   r   r!   r9   r:   r;   r<   nanr$   r_   r   r&   r'   r(   rJ  )r)   r   r   r   r   r   r   r@   r   _pr*   r   s               r   test_logseries#TestRandomGenerators.test_logseries  s>    6
g(	'//
INEE;''	(,eT; <; J
(	4[
!!)c6]",sFm	= ii##A&UZ'
zz),BFF#B"":.&&OO-	!!i(	 /
 MM5s6;K;K7LM $ 	!- <; /.s   D< E<
E	
E	c                    / SQnS [         /nS nU H=  nU H4  nU R                  XES9   U R                  X5S US [        5        S S S 5        M6     M?     S nU R	                  U/ SQ/ SQ/ SQ5        g ! , (       d  f       Mi  = f)Nr   c                 $    U R                  SSUS9$ r  binomialr   s      r   r5   4TestRandomGenerators.test_binomial.<locals>.<lambda>  s    JJcJ-r   r   c                 "    U R                  XUS9$ r  r  r  s       r   r5   r    s    JJdJ+r   r  r   r6  r7  r8  s         r   test_binomial"TestRandomGenerators.test_binomial  s     6
g.	E'\\\?++I,0%,=? @? (  ,	!!)-?"13E	G @?r`  c           
         ^^ / SQnS nU H<  u  mmU R                  TTS9   UU4S jnU R                  US S US S5        S S S 5        M>     g ! , (       d  f       MP  = f)N))r.   r  )2   ?)rU   g?)rU   r  )r  r  c                 &   > U R                  TTUS9$ r  r  )r4   r   rK   r  r  s      r   r5   :TestRandomGenerators.test_binomial_cases.<locals>.<lambda>  s    JJq!$J/r   r   )r^   r   )r)   rd   r   r   r  r  s       @@r   test_binomial_cases(TestRandomGenerators.test_binomial_cases  s`    
 DAqQ'0	''	4(,dD!= (' ''s   A
A	c                    U R                  S5         [        R                  R                  S5      n[        R                  R                  S5      n[        R
                  S 5       nU" U5      nUR                  U5      nU R                  XE5        S S S 5        U R                  S5         [        R                  R                  S5      n[        R                  R                  S5      n[        R
                  S 5       nU" U5      nUR                  U5      nU R                  XE5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nzinfinite loop issue #9493r   c                 (    U R                  SSS5      $ )Ni  r  rU   r  gens    r   foo?TestRandomGenerators.test_binomial_specific_issues.<locals>.foo      ||Cc22r   z,issue with midrange value branch #9493/#9734c                 (    U R                  SSS5      $ )Ni-  r  rU   r  r  s    r   r  r    r  r   )r^   r!   r9   r:   r;   jitrA   r   )r)   gen1gen2r  gotexpecteds         r   test_binomial_specific_issues2TestRandomGenerators.test_binomial_specific_issues  s   
 \\56 99((+D99((+DYY3 3 d)C{{4(H##C2 7 \\HI 99((+D99((+DYY3 3 d)C{{4(H##C2 JI 76 JIs   A?D2*A?E2
E 
Er   )NNNNr   r   )4rg   rh   ri   rj   r   r   r   r   r   r   r   r   r   r  r  r  r)  r9  rE  rS  r^  rj  ru  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r/  r?  rM  rY  r^  re  rs  r|  r  r  r  r  rk   r   r   r   rw   rw      s   266:$%&AP
6I+A0Gf8>tD2C4M6EM(F4F4>0H(H&D(<(40<$<$?$H8H8H8>0<&H(?&<$L(=&G0+"H
*.0
.
H%"N,"\ "DG*=  3r   rw   c                       \ rS rSrS rSrg)TestGeneratorCachingi  c                    [         R                  R                  S5      n[         R                  R                  S5      n[        R                  " S SS9nU R                  UR                  S5      U" U5      5        U R                  UR                  S5      U" U5      5        [        [        5      nU R                  US   S5        g )Nr.   c                 $    U R                  S5      $ rn   rp   r3   s    r   r5   =TestGeneratorCaching.test_randomgen_caching.<locals>.<lambda>  s    !((2,r   Tr7   ro   exitcoder   )	r!   r9   r:   r;   r<   r   r   ru   r    )r)   rs   rt   rB   ress        r   test_randomgen_caching+TestGeneratorCaching.test_randomgen_caching  s    &&q)&&q)ZZ 6dC
b 1:f3EFb 1:f3EF()?@Z!,r   r   N)rg   rh   ri   rj   r  rk   r   r   r   r  r    s    
-r   r  )r;   numpyr!   r   r,  r   r>   r   numba.tests.supportr   r   !numba.np.random.generator_methodsr   numba.np.random.generator_corer   r	   r
   numpy.randomr   r   numba.core.errorsr   r   r   r(  r   ru   rw   r  r   r   r   <module>r     sj      
  	 	  9 > P P + ) G  ~
h ~
B>I3?H I3X"-8[ -r   