
    wg                         d dl Z d dlZd dlZd dlZd dlZd dl mZ d dlmZm	Z	 d dl
mZ d dlmZmZmZ d dlmZmZ d dlmZ d dlmZmZ d	Z G d
 de      Zd Z G d de	e      Z G d dee      Zy)    N)types)TestCaseMemoryLeakMixin)_get_proper_funcnext_uint32next_uint64next_double)MT19937	Generator)TypingError)run_in_new_process_cachingSerialMixini   c                       e Zd Zd Zd Zd Zy)TestHelperFuncsc                    d }d }| j                   t        ||t        j                        d          d       | j                   t        ||t        j                        d          d       | j                  t              5 }t        ||t        j                         d d d        | j                  dt        j                               | j                  t              5 }t        ||t        j                         d d d        | j                  dt        |j                               y # 1 sw Y   xY w# 1 sw Y   ;xY w)Nc                       y)N     r       b/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/numba/tests/test_np_randomgen.pytest_32bit_funczBTestHelperFuncs.test_proper_func_provider.<locals>.test_32bit_func       r   c                       y)N@   r   r   r   r   test_64bit_funczBTestHelperFuncs.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_providerz)TestHelperFuncs.test_proper_func_provider   s*   		 	 ()/?%%&( *+-	/ ()/?%%&( *+-	/ {+ 	Iv_orxxH	I?  !	
 {+ 	Nv_ou}}M	N?  !	
	I 	I	N 	Ns   D* D6*D36D?c                 .   t         j                  j                  d      }d } t        j                  d      |      }| j                  t              5 } ||       d d d        | j                  dt        j                               y # 1 sw Y   /xY w)N   c                 &    | j                  d      S )N)r   )locnormalxs    r   <lambda>z2TestHelperFuncs.test_check_types.<locals>.<lambda>5   s    AHHH. r   TcachezArgument loc is not one of the expected type(s): [<class 'numba.core.types.scalars.Float'>, <class 'numba.core.types.scalars.Integer'>, <class 'int'>, <class 'float'>])
r   randomdefault_rngnumbanjitr!   r   r#   r$   r%   )r&   rngpy_func
numba_funcr'   s        r   test_check_typesz TestHelperFuncs.test_check_types3   s}    ii##A&.+UZZd+G4
{+ 	vsO	4   !	
	 	s   	BBc           	         t         j                  j                  d      }d } t        j                         |      } t        j                         |      }d } t        j                         |      }t        j
                  t         j                        j                  t        j
                  t         j                        j                  t         j                  ft        j
                  t         j                        j                  t        j
                  t         j                        j                  t         j                  ft        j
                  t         j                        j                  t        j
                  t         j                        j                  t         j                  ft        j
                  t         j                        j                  t        j
                  t         j                        j                  t         j                  ft        j
                  t         j                        j                  t        j
                  t         j                        j                  t         j                  ft        j
                  t         j                        j                  t        j
                  t         j                        j                  t         j                  fg}|D ]  \  }}}	| j                  |||	      5  | j                  t               5 }
 |||dz
  ||	       d d d        | j#                  dt%        
j&                               | j                  t               5 }
 ||||dz   |	       d d d        | j#                  dt%        |
j&                               | j                  t               5 }
 ||||dz   |	       d d d        | j#                  dt%        |
j&                               d d d         t        j
                  t         j(                        j                  t        j
                  t         j(                        j                  t         j(                  }	}}| j                  t               5 }
 |||dz
  ||	       d d d        | j#                  dt%        
j&                               t        j
                  t         j*                        j                  t        j
                  t         j*                        j                  t         j*                  }	}}| j                  t               5 }
 ||||dz   |	       d d d        | j#                  dt%        |
j&                               | j                  t               5 }
 ||||dz   |	       d d d        | j#                  dt%        |
j&                               | j                  t               5 }
 ||dd	t         j                         d d d        | j#                  d
t%        |
j&                               y # 1 sw Y    xY w# 1 sw Y   xY w# 1 sw Y   xxY w# 1 sw Y   px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)Nr*   c                 ,    | j                  |||d      S )NTlowhighdtypeendpointintegersr0   r?   r@   rA   s       r   r1   z9TestHelperFuncs.test_integers_arg_check.<locals>.<lambda>C   s    JJ3TJF r   c                 ,    | j                  |||d      S )NFr>   rC   rE   s       r   r1   z9TestHelperFuncs.test_integers_arg_check.<locals>.<lambda>H   s    JJ3TJG r   r?   r@   rA   zlow is out of boundszhigh is out of bounds   i   d   z*low is greater than high in given interval)r   r4   r5   r6   r7   iinfouint8minmaxint8uint16int16uint32r"   subTestr!   
ValueErrorr#   r$   r%   uint64int64)r&   r8   r9   r:   numba_func_lownumba_func_endpoint_falsecasesr?   r@   rA   r'   s              r   test_integers_arg_checkz'TestHelperFuncs.test_integers_arg_checkA   s   ii##A&G!UZZ\'*
%g.H$0EJJL$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
 !& 	Cu#D> &&z2 >f"3au=> *(()
 &&z2 :fsC59: +(()
 &&z2 If-c3q%HI +(()) 	4 HHRYY/33HHRYY/33RYY Tz* 	6f3au5	6 	"  !	

 HHRXX.22HHRXX.22BHH Tz* 	2fsC51	2 	#  !	

 z* 	Af%c3q%@	A 	#  !	

 z* 	1fsCbii0	18  !	
m> >: :I I# 6	6 	6	2 	2	A 	A	1 	1s   YX')AY+X4:AY<Y-YY=Y(Y5Z'X1,Y4X>9YYYY	Y%(Y25Y>Z
N)__name__
__module____qualname__r(   r;   rZ   r   r   r   r   r      s    
4
O
r   r   c                     t         j                  j                  d      } t         j                  j                  d      }d } t        j                  d      |      }t        j
                  |j                  d       ||             sJ y )Nr*   c                 $    | j                  d      S N
   r4   r/   s    r   r1   z(test_generator_caching.<locals>.<lambda>   s     r   Tr2   ra   )r   r4   r5   r6   r7   allclose)nb_rngnp_rngr9   r:   s       r   test_generator_cachingrf      sf    YY""1%FYY""1%F$G'$'0J;;v}}R(*V*<===r   c                   *   e Zd Z	 	 	 d0dZd1d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!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/ Z0y)2TestRandomGeneratorsNc                    t        j                  |      }|d}|At        j                  j	                  |      }t        j                  j	                  |      }n"t         ||            }t         ||            } ||||      }	|j                  |||      }
t        |	t        j                        r.t        j                  |	j                  t        j                        st        |	t              r$t        j                  j                  |
|	||       n t        j                  j                  |	|
       |j                   j"                  d   }|j                   j"                  d   }|D ]  }| j%                  ||   ||           y )Nr*   seed)maxulprA   state)r6   r7   r   r4   r5   r   r9   
isinstancendarray
issubdtyperA   floatingfloattestingassert_array_max_ulpassert_equalbit_generatorrm   assertPreciseEqual)r&   distribution_funcbitgen_typerk   	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_parityz'TestRandomGenerators.check_numpy_parity   se   
 "JJ'89<D!#!6!6D!6!A!#!6!6D!6!A!*;t+<!=!*;t+<!= &&8&/=	%--.@.7E	 y"**-MM)//2;;7i/JJ++Iy3;: , O JJ##Iy9 -::@@I,::@@I) 	AJ##OJ$?$3J$?A	Ar   c                 v   t         j                  j                  |      }t         j                  j                  |      }t        |j                  j
                  |      } ||j                  j
                  j                        }t        j                  fd      } ||      }	| j                  |	|       y )Nrj   c                 (     | j                         S N)rv   )r0   bitgen_funcs    r   r1   z?TestRandomGenerators._test_bitgen_func_parity.<locals>.<lambda>   s    +aoo*F r   )
r   r4   r5   getattrrv   ctypesrm   r6   r7   rw   )
r&   	func_namer   rk   r}   r~   
numpy_funcr   r:   r   s
     `       r   _test_bitgen_func_parityz-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		95r   c                 |   t         j                  j                         }t        |      D ]  \  }}|j	                         }||   ||<   |g|z   }t        j                  |      }	| j                  t              5 }
 |	|  d d d        | j                  d| dt        
j                                y # 1 sw Y   5xY w)Nz	Argument z$ is not one of the expected type(s):)r   r4   r5   	enumeratecopyr6   r7   r!   r   r#   r$   r%   )r&   	dist_funcarg_list
valid_argsinvalid_argsr8   idx_arg	curr_argsnb_dist_funcr'   s              r   _check_invalid_typesz)TestRandomGenerators._check_invalid_types   s    ii##%"8, 
	IC")I)#.IcN	)I ::i0L"";/ )6i()MMD6!EFF$$%
	
) )s   8B22B;	c                     t         j                  j                         }t        j                  d       }| j                  | ||             | j                  t        |      t         ||                   y )Nc                     | S r   r   r/   s    r   r1   zATestRandomGenerators.test_npgen_boxing_unboxing.<locals>.<lambda>   s    ! r   )r   r4   r5   r6   r7   r   id)r&   rng_instancer:   s      r   test_npgen_boxing_unboxingz/TestRandomGenerators.test_npgen_boxing_unboxing   sV    yy,,.ZZ,
z,'?@L)2j.F+GHr   c                    t         j                  j                         }t        j                  d       }t        j                  d       } ||      }t        j                          t        j                  |      }~ ||       t        j                          t        j                  |      }| j                  ||dz          y )Nc                 "    | j                         S r   rb   r/   s    r   r1   zATestRandomGenerators.test_npgen_boxing_refcount.<locals>.<lambda>   s    QXXZ r   c                     | S r   r   r/   s    r   r1   zATestRandomGenerators.test_npgen_boxing_refcount.<locals>.<lambda>   s    Q r   r*   )
r   r4   r5   r6   r7   gccollectsysgetrefcountr   )r&   r   no_boxdo_boxyref_1ref_2s          r   test_npgen_boxing_refcountz/TestRandomGenerators.test_npgen_boxing_refcount   s    yy,,./0J'< 


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


-	*r   c                     g d}t         t        t        g}t        ||      D ]3  \  }}| j	                  ||      5  | j                  ||       d d d        5 y # 1 sw Y   @xY w)Nr   )_func
_func_name)r   r	   r
   ziprS   r   )r&   
func_namesfuncsr   r   s        r   test_bitgen_funcsz&TestRandomGenerators.test_bitgen_funcs   so    B
k;7!$UJ!7 	AE:EjA A--j%@A A	AA As   AA"	c                    g d}t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  t         j                  t         j                  g}d t        g}d }| j                         5  | j                  |d d d       d d d        d }|D ]C  }|D ]<  }|D ]5  }| j                  |||      5  | j                  ||d ||d       d d d        7 > E g d}d t        g}d }|D ]I  }|D ]B  }| j                  ||      5  | j                  ||d |t         j                  d       d d d        D K d	 }| j                         5  | j                  |d d 
       d d d        d }| j                  |g ddddt         j                  dgdddt         j                  dg       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   oxY w)NNr   )rJ   ra         c                 &    | j                  dd      S Nr   rJ   rC   r0   sizerA   s      r   r1   z4TestRandomGenerators.test_integers.<locals>.<lambda>  s    !**Q*< r   r   rz   r{   r|   c                 ,    | j                  dd||      S )N   ra   r   rA   rC   r   s      r   r1   z4TestRandomGenerators.test_integers.<locals>.<lambda>  s    JJq"4uJ5 r   _size_dtype_bitgenc                 H    | j                  dd|t        j                        S )NFTr   )rD   r   bool_r   s      r   r1   z4TestRandomGenerators.test_integers.<locals>.<lambda>  s    JJudRXXJ> r   r   r   c                 r    | j                  t        j                  d      t        j                  d            S r   )rD   r   rL   rV   r   s      r   r1   z4TestRandomGenerators.test_integers.<locals>.<lambda>   s%    JJrxx{BHHSM2 r   rz   r{   c                 .    | j                  |||||      S )Nr?   r@   r   rA   rB   rC   )r0   r?   r@   r   rA   rB   s         r   r1   z4TestRandomGenerators.test_integers.<locals>.<lambda>&  s#    JJ3T"X  7 r   r   r*   r   r*   Tr0   r/   )r   rV   r"   rQ   rO   rU   rR   rP   rL   r   rS   r   r   r   r   r&   
test_sizestest_dtypesbitgen_typesr   r   r   r   s           r   test_integersz"TestRandomGenerators.test_integers   s,   5
xx288RWWyy"))RYYBg =	\\^ 	A##I/3a $ A	A6	 	HE% H+ HGE&.5 & 7 H//	704eVQHH HHH	H 6
g?	 	FE' F\\*1 " 3 F++Iw,0%1FF FF	F3	\\^ 	5##I/3 $ 5	57	 	!!)"N#$arxx">#&VRZZ"E	GK	A 	AH HF F	5 	5s0   GG	/%G*3G6GG'*G36G?c           
      T   g ddt         j                  fddt         j                  fddt         j                  fddt         j                  fddt         j                  fddt         j                  fddt         j                  fddt         j                  fddt         j                  fdd	t         j                  fd
d	t         j                  fddt         j                  fddt         j                  fddt         j                  fddt         j                  fddt         j                  fddt         j                  fddt         j                  fddt         j                  fddt         j                  fddt         j
                  fddt         j
                  fddt         j
                  fddt         j
                  fddt         j                  fddt         j                  fddt         j                  fddt         j                  fddt         j                  fddt         j                  fddt         j                  fddt         j                  fddt         j                  fddt         j                  fddt         j                  fddt         j                  fddt         j                  fddt         j                  f}d}|D ]?  \  }| j                  |      5  fd}| j                  |d d ||d       d d d        A y # 1 sw Y   LxY w)Nr      rJ   r   l   l    l    l   l   ll    l    iii  i  i  ra   i  i  i            i)rH      rG   c                 .    | j                  ||      S Nr   rC   )r0   r   rA   r@   r?   s      r   r1   z:TestRandomGenerators.test_integers_cases.<locals>.<lambda>d  s    JJsDt5JA r   )r   rU   rV   rR   r"   rP   rQ   rL   rO   rS   r   )r&   rY   r   rA   r   r@   r?   s        @@r   test_integers_casesz(TestRandomGenerators.test_integers_cases/  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(,dE1>> >	>> >s   6LL'	c                    g d}t         j                  t         j                  g}d t        g}d }| j	                         5  | j                  |d d        d d d        d }|D ]B  }|D ];  }|D ]4  }| j	                  |||      5  | j                  ||d ||       d d d        6 = D d }| j                  |ddgd	t         j                  gd
dg       y # 1 sw Y   xY w# 1 sw Y   |xY w)Nr   c                 "    | j                         S r   rb   r   s      r   r1   z2TestRandomGenerators.test_random.<locals>.<lambda>o      !((* r   r   c                 (    | j                  ||      S r   rb   r   s      r   r1   z2TestRandomGenerators.test_random.<locals>.<lambda>t  s    !((E(*J r   r   c                 (    | j                  ||      S r   rb   r   s      r   r1   z2TestRandomGenerators.test_random.<locals>.<lambda>}  s    HH$eH, r   r   rA   r   r/   g        r   r    r   r   rS   r   r   r   s           r   test_randomz TestRandomGenerators.test_randomi  s   5
zz2::.g 5	\\^ 	5##I/3 $ 5	5 K	 	EE% E+ EGE&.5 & 7 E//	704eVEE EEE	E-	!!)fg->#'"4vrl	D	5 	5E E    CC	CC(c                    g d}t         j                  t         j                  g}d t        g}d }| j	                         5  | j                  |d d        d d d        d }|D ]B  }|D ];  }|D ]4  }| j	                  |||      5  | j                  ||d ||       d d d        6 = D d }| j                  |ddgd	t         j                  gd
dg       y # 1 sw Y   xY w# 1 sw Y   |xY w)Nr   c                 "    | j                         S r   standard_normalr   s      r   r1   z;TestRandomGenerators.test_standard_normal.<locals>.<lambda>      !*;*;*= r   r   c                 (    | j                  ||      S r   r   r   s      r   r1   z;TestRandomGenerators.test_standard_normal.<locals>.<lambda>      4u5 r   r   c                 (    | j                  ||      S r   r   r   s      r   r1   z;TestRandomGenerators.test_standard_normal.<locals>.<lambda>  r   r   r   rA   r   r/   r   r   r   s           r   test_standard_normalz)TestRandomGenerators.test_standard_normal  s   5
zz2::.g >	\\^ 	5##I/3 $ 5	56	   	EE% E+ EGE&.5 & 7 E//	704eVEE EEE	E6	!!)fg->#'"4vqk	C!	5 	5E Er   c                    g d}t         j                  t         j                  g}d t        g}d }| j	                         5  | j                  |d d        d d d        d }|D ]B  }|D ];  }|D ]4  }| j	                  |||      5  | j                  ||d ||       d d d        6 = D d }| j                  |g ddd	t         j                  gg d
       y # 1 sw Y   xY w# 1 sw Y   }xY w)Nr   c                 "    | j                         S r   standard_exponentialr   s      r   r1   z@TestRandomGenerators.test_standard_exponential.<locals>.<lambda>  s    !*@*@*B r   r   c                 (    | j                  ||      S r   r   r   s      r   r1   z@TestRandomGenerators.test_standard_exponential.<locals>.<lambda>  s    ""E": r   r   c                 *    | j                  |||      S )Nmethodr   rA   r   )r0   r   r   rA   s       r   r1   z@TestRandomGenerators.test_standard_exponential.<locals>.<lambda>  s    ""&t5"I r   r   zigr   )r   r/   r   r   r   s           r   test_standard_exponentialz.TestRandomGenerators.test_standard_exponential  s   5
zz2::.g C	\\^ 	5##I/3 $ 5	5;	   	EE% E+ EGE&.5 & 7 E//	704eVEE EEE	EJ	!!)-H#($

";^	M#	5 	5E Es    CC 	C C)c                    g d}t         j                  t         j                  g}d t        g}d }|D ]B  }|D ];  }|D ]4  }| j	                  |||      5  | j                  ||d ||       d d d        6 = D y # 1 sw Y   ExY w)Nr   c                 *    | j                  ||d      S )Ninv)r   rA   r   r   r   s      r   r1   zDTestRandomGenerators.test_standard_exponential_inv.<locals>.<lambda>  s    ""E5"I r   r   )r   r    r   r   rS   r   r   s           r   test_standard_exponential_invz2TestRandomGenerators.test_standard_exponential_inv  s    5
zz2::.gJ	 	EE% E+ EGE&.5 & 7 E//	704eVEE EEE	EE Es   A8	8Bc                 j   g d}t         j                  t         j                  g}d t        g}d }|D ]G  }|D ]@  }|D ]9  }| j	                  |||      5  | j                  ||d ||t               d d d        ; B I d }| j                  |g dddt         j                  gg d       y # 1 sw Y   vxY w)	Nr   c                 *    | j                  d||      S )N      @shaper   rA   standard_gammar   s      r   r1   z:TestRandomGenerators.test_standard_gamma.<locals>.<lambda>  s    3T? r   r   c                 *    | j                  |||      S )Nr   r   )r0   r   r   rA   s       r   r1   z:TestRandomGenerators.test_standard_gamma.<locals>.<lambda>  s    5t5A r   r   r   r   )r0   r/   r   )r   r    r   r   rS   r   adjusted_ulp_precr   r   s           r   test_standard_gammaz(TestRandomGenerators.test_standard_gamma  s    5
zz2::.g@	 	CE% C+ CGE&.5 & 7 C//	704eV0ACC CCC	CB	!!)-G#&bjj"9;K	MC Cs   B)	)B2c                 ~   g d}d t         g}d }| j                         5  | j                  |d d t               d d d        d }|D ]?  }|D ]8  }| j                  ||      5  | j                  ||d |d t               d d d        : A d }| j	                  |g dg dg d	       y # 1 sw Y   nxY w# 1 sw Y   pxY w)
Nr   c                 "    | j                         S r   r-   r   s      r   r1   z2TestRandomGenerators.test_normal.<locals>.<lambda>  r   r   r   c                 *    | j                  dd|      S )N      ?r   r,   scaler   r-   r   s      r   r1   z2TestRandomGenerators.test_normal.<locals>.<lambda>  s    !((s!$(*O r   r   c                 *    | j                  |||      S Nr  r-   r0   r,   r	  r   s       r   r1   z2TestRandomGenerators.test_normal.<locals>.<lambda>  s    HHEH5 r   r  r  r   r   r0   r0   r/   r   rS   r   r  r   r&   r   r   r   r   r   s         r   test_normalz TestRandomGenerators.test_normal  s     6
g 5	\\^ 	@##I/3-> $ @	@
 P	 	?E' ?\\w\? ?++Iw,0%,=?? ??	?6	!!)-E"02D	F	@ 	@? ?   B'"B3'B03B<c                 ~   g d}d t         g}d }| j                         5  | j                  |d d t               d d d        d }|D ]?  }|D ]8  }| j                  ||      5  | j                  ||d |d t               d d d        : A d }| j	                  |g dg dg d	       y # 1 sw Y   nxY w# 1 sw Y   pxY w)
Nr   c                 "    | j                         S r   uniformr   s      r   r1   z3TestRandomGenerators.test_uniform.<locals>.<lambda>      !))+ r   r   c                 *    | j                  dd|      S )Nr  r   r?   r@   r   r  r   s      r   r1   z3TestRandomGenerators.test_uniform.<locals>.<lambda>  s    !))!$)*O r   r   c                 *    | j                  |||      S )Nr  r  )r0   r?   r@   r   s       r   r1   z3TestRandomGenerators.test_uniform.<locals>.<lambda>	  s    II#DtI4 r   r  r  r  r  r  s         r   test_uniformz!TestRandomGenerators.test_uniform  s     6
g 6	\\^ 	@##I/3-> $ @	@
 P	 	?E' ?\\w\? ?++Iw,0%,=?? ??	?5	!!)-D"02D	F	@ 	@? ?r  c           
      j   g d}d t         g}d }| j                         5  | j                  |d d        d d d        d }|D ]:  }|D ]3  }| j                  ||      5  | j                  ||d |d        d d d        5 < d }| j                  |ddgd	d
gddg       y # 1 sw Y   ixY w# 1 sw Y   kxY w)Nr   c                 "    | j                         S r   exponentialr   s      r   r1   z7TestRandomGenerators.test_exponential.<locals>.<lambda>  s    !--/ r   r   c                 (    | j                  d|      S Nr  r	  r   r  r   s      r   r1   z7TestRandomGenerators.test_exponential.<locals>.<lambda>  s    !--c-*M r   r   c                 (    | j                  ||      S Nr"  r  r0   r	  r   s      r   r1   z7TestRandomGenerators.test_exponential.<locals>.<lambda>!  s    MMDM1 r   r	  r   r  r   r0   r/   r   rS   r   r   r  s         r   test_exponentialz%TestRandomGenerators.test_exponential  s     6
g :	\\^ 	5##I/3 $ 5	5 N	 	?E' ?\\w\? ?++Iw,0%?? ??	?
2	!!)gv->#&+V}	>	5 	5? ?   BB)B&)B2c                     g d}d t         g}d }|D ]?  }|D ]8  }| j                  ||      5  | j                  ||d |d t               d d d        : A d }| j	                  |g dg dg d       y # 1 sw Y   dxY w)Nr   c                 *    | j                  dd|      S )Nr   r  r   r	  r   gammar   s      r   r1   z1TestRandomGenerators.test_gamma.<locals>.<lambda>-  s    !''37; +2 += r   r   c                 *    | j                  |||      S )Nr+  r,  )r0   r   r	  r   s       r   r1   z1TestRandomGenerators.test_gamma.<locals>.<lambda>5  s    GG%u4G8 r   r+  r   r  r   r  r  r  s         r   
test_gammazTestRandomGenerators.test_gamma&  s     6
g=	 	?E' ?\\w\? ?++Iw,0%,=?? ??	?9	!!)-G"24F	H? ?   A22A;c                     g d}d t         g}d }|D ]?  }|D ]8  }| j                  ||      5  | j                  ||d |d t               d d d        : A d }| j	                  |g dg dg d       y # 1 sw Y   dxY w)Nr   c                 *    | j                  dd|      S )Nr  g      @abr   betar   s      r   r1   z0TestRandomGenerators.test_beta.<locals>.<lambda>A  s    !&&3#D&*I r   r   c                 *    | j                  |||      S )Nr4  r7  )r0   r5  r6  r   s       r   r1   z0TestRandomGenerators.test_beta.<locals>.<lambda>I  s    !qt)D r   r4  r/  r  r  r  s         r   	test_betazTestRandomGenerators.test_beta:  s     6
gI	 	?E' ?\\w\? ?++Iw,0%,=?? ??	? E	!!)-?"24F	H? ?r1  c                     g d}d t         g}d }|D ]?  }|D ]8  }| j                  ||      5  | j                  ||d |d t               d d d        : A d }| j	                  |g dg dg d       y # 1 sw Y   dxY w)Nr   c                 *    | j                  dd|      S )NrH   r   dfnumdfdenr   fr   s      r   r1   z-TestRandomGenerators.test_f.<locals>.<lambda>T  s    !##AQT#*J r   r   c                 *    | j                  |||      S )Nr=  r@  )r0   r>  r?  r   s       r   r1   z-TestRandomGenerators.test_f.<locals>.<lambda>\  s    CCe5tC4 r   r=  )r   r*   r   r  r  r  s         r   test_fzTestRandomGenerators.test_fM  s     6
gJ	 	?E' ?\\w\? ?++Iw,0%,=?? ??	?5	!!)-G".0B	D? ?r1  c                     g d}d t         g}d }|D ]?  }|D ]8  }| j                  ||      5  | j                  ||d |d t               d d d        : A d }| j	                  |ddgddgd	d
g       y # 1 sw Y   dxY w)Nr   c                 (    | j                  d|      S NrH   dfr   	chisquarer   s      r   r1   z5TestRandomGenerators.test_chisquare.<locals>.<lambda>h  s    !+++*F r   r   c                 (    | j                  ||      S NrG  rI  r0   rH  r   s      r   r1   z5TestRandomGenerators.test_chisquare.<locals>.<lambda>p  s    KK2DK) r   rH  r   rH   r   r0   r/   r  r  s         r   test_chisquarez#TestRandomGenerators.test_chisquarea  s     6
gF	 	?E' ?\\w\? ?++Iw,0%,=?? ??	?*	!!)dF^#$d)c6]	<? ?r1  c           
      d   g d}d t         g}d }| j                         5  | j                  |d d        d d d        d }|D ]:  }|D ]3  }| j                  ||      5  | j                  ||d |d        d d d        5 < d }| j                  |dgdgd	g       y # 1 sw Y   fxY w# 1 sw Y   hxY w)
Nr   c                 "    | j                         S r   standard_cauchyr   s      r   r1   z;TestRandomGenerators.test_standard_cauchy.<locals>.<lambda>}  r   r   r   c                 &    | j                  |      S Nr   rQ  r   s      r   r1   z;TestRandomGenerators.test_standard_cauchy.<locals>.<lambda>  s    !*;*;*;*F r   r   c                 &    | j                  |      S rT  rQ  )r0   r   s     r   r1   z;TestRandomGenerators.test_standard_cauchy.<locals>.<lambda>  s    1#4#4$#4#? r   r   r   r/   r&  r  s         r   test_standard_cauchyz)TestRandomGenerators.test_standard_cauchyu  s     6
g >	\\^ 	5##I/3 $ 5	5 G	 	?E' ?\\w\? ?++Iw,0%?? ??	? @	!!)fX#'&6(	4	5 	5? ?s   BB&B#&B/c           
          g d}d t         g}d }|D ]:  }|D ]3  }| j                  ||      5  | j                  ||d |d        d d d        5 < d }| j                  |ddgddgd	d
g       y # 1 sw Y   _xY w)Nr   c                 (    | j                  d|      S N      ?r5  r   paretor   s      r   r1   z2TestRandomGenerators.test_pareto.<locals>.<lambda>  s    !((St(*D r   r   c                 (    | j                  ||      S Nr\  r]  r0   r5  r   s      r   r1   z2TestRandomGenerators.test_pareto.<locals>.<lambda>  s    ahhh&> r   r5  r   r*   r   r0   r/   r&  r  s         r   test_paretoz TestRandomGenerators.test_pareto  s     6
gD	 	?E' ?\\w\? ?++Iw,0%?? ??	? ?	!!)c6]#$d)c6]	<? ?   A--A6c           
          g d}d t         g}d }|D ]:  }|D ]3  }| j                  ||      5  | j                  ||d |d        d d d        5 < d }| j                  |ddgddgd	d
g       y # 1 sw Y   _xY w)Nr   c                 (    | j                  d|      S rZ  weibullr   s      r   r1   z3TestRandomGenerators.test_weibull.<locals>.<lambda>  s    !))c)*E r   r   c                 (    | j                  ||      S r`  rf  ra  s      r   r1   z3TestRandomGenerators.test_weibull.<locals>.<lambda>  s    aii!$i&? r   r5  r   r*   r   r0   r/   r&  r  s         r   test_weibullz!TestRandomGenerators.test_weibull  s     6
gE	 	?E' ?\\w\? ?++Iw,0%?? ??	? @	!!)c6]#$d)c6]	<? ?rc  c           
          g d}d t         g}d }|D ]:  }|D ]3  }| j                  ||      5  | j                  ||d |d        d d d        5 < d }| j                  |ddgddgd	d
g       y # 1 sw Y   _xY w)Nr   c                 (    | j                  d|      S )N      ?r\  powerr   s      r   r1   z1TestRandomGenerators.test_power.<locals>.<lambda>  s    !''Dt'*D r   r   c                 (    | j                  ||      S r`  rm  ra  s      r   r1   z1TestRandomGenerators.test_power.<locals>.<lambda>  s    aggg&= r   r5  r   rl  r   r0   r/   r&  r  s         r   
test_powerzTestRandomGenerators.test_power  s     6
gD	 	?E' ?\\w\? ?++Iw,0%?? ??	? >	!!)c6]#',f	?? ?rc  c                 ~   g d}d t         g}d }| j                         5  | j                  |d d t               d d d        d }|D ]?  }|D ]8  }| j                  ||      5  | j                  ||d |d t               d d d        : A d }| j	                  |g dg dg d	       y # 1 sw Y   nxY w# 1 sw Y   pxY w)
Nr   c                 "    | j                         S r   laplacer   s      r   r1   z3TestRandomGenerators.test_laplace.<locals>.<lambda>  r  r   r   c                 *    | j                  dd|      S Nr[  r  r  rs  r   s      r   r1   z3TestRandomGenerators.test_laplace.<locals>.<lambda>  s    II#StI4 r   r   c                 *    | j                  |||      S r  rs  r  s       r   r1   z3TestRandomGenerators.test_laplace.<locals>.<lambda>  s    II#UI6 r   r  r[  r  r   r  r  r  s         r   test_laplacez!TestRandomGenerators.test_laplace  s     6
g 6	\\^ 	@##I/3-> $ @	@
5	 	?E' ?\\w\? ?++Iw,0%,=?? ??	?7	!!)-E"24F	H!	@ 	@? ?r  c                 ~   g d}d t         g}d }| j                         5  | j                  |d d t               d d d        d }|D ]?  }|D ]8  }| j                  ||      5  | j                  ||d |d t               d d d        : A d }| j	                  |g dg dg d	       y # 1 sw Y   nxY w# 1 sw Y   pxY w)
Nr   c                 "    | j                         S r   logisticr   s      r   r1   z4TestRandomGenerators.test_logistic.<locals>.<lambda>      !**, r   r   c                 *    | j                  dd|      S rv  r|  r   s      r   r1   z4TestRandomGenerators.test_logistic.<locals>.<lambda>  s    JJ3StJ4 r   r   c                 *    | j                  |||      S r  r|  r  s       r   r1   z4TestRandomGenerators.test_logistic.<locals>.<lambda>  s    JJ3e$J7 r   r  rx  r  r  r  s         r   test_logisticz"TestRandomGenerators.test_logistic  s     6
g 7	\\^ 	@##I/3-> $ @	@
5	 	?E' ?\\w\? ?++Iw,0%,=?? ??	?8	!!)-E"24F	H!	@ 	@? ?r  c                 ~   g d}d t         g}d }| j                         5  | j                  |d d t               d d d        d }|D ]?  }|D ]8  }| j                  ||      5  | j                  ||d |d t               d d d        : A d }| j	                  |g dg dg d	       y # 1 sw Y   nxY w# 1 sw Y   pxY w)
Nr   c                 "    | j                         S r   	lognormalr   s      r   r1   z5TestRandomGenerators.test_lognormal.<locals>.<lambda>  s    !++- r   r   c                 *    | j                  dd|      S )Nr   r  meansigmar   r  r   s      r   r1   z5TestRandomGenerators.test_lognormal.<locals>.<lambda>	  s    KKS$K7 r   r   c                 *    | j                  |||      S )Nr  r  )r0   r  r  r   s       r   r1   z5TestRandomGenerators.test_lognormal.<locals>.<lambda>  s    KKTTK: r   r  rx  r  r  r  s         r   test_lognormalz#TestRandomGenerators.test_lognormal  s     6
g 8	\\^ 	@##I/3-> $ @	@
8	 	?E' ?\\w\? ?++Iw,0%,=?? ??	?;	!!)-F"24F	H!	@ 	@? ?r  c           
      j   g d}d t         g}d }| j                         5  | j                  |d d        d d d        d }|D ]:  }|D ]3  }| j                  ||      5  | j                  ||d |d        d d d        5 < d }| j                  |ddgd	d
gddg       y # 1 sw Y   ixY w# 1 sw Y   kxY w)Nr   c                 "    | j                         S r   rayleighr   s      r   r1   z4TestRandomGenerators.test_rayleigh.<locals>.<lambda>  r~  r   r   c                 (    | j                  d|      S r!  r  r   s      r   r1   z4TestRandomGenerators.test_rayleigh.<locals>.<lambda>$  s    !**3T**J r   r   c                 (    | j                  ||      S r$  r  r%  s      r   r1   z4TestRandomGenerators.test_rayleigh.<locals>.<lambda>+  s    !**5t**L r   r	  r   r  r   r0   r/   r&  r  s         r   test_rayleighz"TestRandomGenerators.test_rayleigh  s     6
g 7	\\^ 	5##I/3 $ 5	5 K	 	?E' ?\\w\? ?++Iw,0%?? ??	? M	!!)gv->#&+V}	>	5 	5? ?r(  c                     g d}d t         g}d }|D ]?  }|D ]8  }| j                  ||      5  | j                  ||d |d t               d d d        : A d }| j	                  |ddgddgd	d
g       y # 1 sw Y   dxY w)Nr   c                 (    | j                  d|      S rF  
standard_tr   s      r   r1   z6TestRandomGenerators.test_standard_t.<locals>.<lambda>6  s    !,,!$,*G r   r   c                 (    | j                  ||      S rL  r  rM  s      r   r1   z6TestRandomGenerators.test_standard_t.<locals>.<lambda>>  s    q||r|'E r   rH  r   rH   r   r0   r/   r  r  s         r   test_standard_tz$TestRandomGenerators.test_standard_t/  s     6
gG	 	?E' ?\\w\? ?++Iw,0%,=?? ??	? F	!!)dF^#$d)c6]	<? ?r1  c                     g d}d t         g}d }|D ]?  }|D ]8  }| j                  ||      5  | j                  ||d |d t               d d d        : A d }| j	                  |g dg dg d       y # 1 sw Y   dxY w)Nr   c                 *    | j                  dd|      S )Nr   r  r  r	  r   waldr   s      r   r1   z0TestRandomGenerators.test_wald.<locals>.<lambda>I  s    !&&c4&*P r   r   c                 *    | j                  |||      S )Nr  r  )r0   r  r	  r   s       r   r1   z0TestRandomGenerators.test_wald.<locals>.<lambda>Q  s    FFEF5 r   r  rx  r  r  r  s         r   	test_waldzTestRandomGenerators.test_waldB  s     6
gP	 	?E' ?\\w\? ?++Iw,0%,=?? ??	?6	!!)-F"24F	H? ?r1  c                     g d}d t         g}d }|D ]?  }|D ]8  }| j                  ||      5  | j                  ||d |d t               d d d        : A d }| j	                  |ddgddgd	d
g       y # 1 sw Y   dxY w)Nr   c                 (    | j                  d|      S )Nrl  pr   	geometricr   s      r   r1   z5TestRandomGenerators.test_geometric.<locals>.<lambda>]  s    !++4+*H r   r   c                 (    | j                  ||      S Nr  r  r0   r  r   s      r   r1   z5TestRandomGenerators.test_geometric.<locals>.<lambda>e  s    akkADk&A r   r  r   rl  r   r0   r/   r  r  s         r   test_geometricz#TestRandomGenerators.test_geometricV  s     6
gH	 	?E' ?\\w\? ?++Iw,0%,=?? ??	? B	!!)c6]#',f	?? ?r1  c           
          g d}d t         g}d }|D ]:  }|D ]3  }| j                  ||      5  | j                  ||d |d        d d d        5 < d }| j                  |ddgddgd	d
g       y # 1 sw Y   _xY w)Nr   c                 (    | j                  d|      S )Nr  r\  zipfr   s      r   r1   z0TestRandomGenerators.test_zipf.<locals>.<lambda>p  s    !&&3T&*B r   r   c                 (    | j                  ||      S r`  r  ra  s      r   r1   z0TestRandomGenerators.test_zipf.<locals>.<lambda>w  s    affqtf&< r   r5  r   r*   r   r0   r/   r&  r  s         r   	test_zipfzTestRandomGenerators.test_zipfi  s     6
gB	 	?E' ?\\w\? ?++Iw,0%?? ??	? =	!!)c6]#$d)c6]	<? ?rc  c           
          g d}d t         g}d }|D ]:  }|D ]3  }| j                  ||      5  | j                  ||d |d        d d d        5 < d }| j                  |g dg dg d       y # 1 sw Y   _xY w)Nr   c                 ,    | j                  ddd|      S )Nr   r   r   leftmoderightr   
triangularr   s      r   r1   z6TestRandomGenerators.test_triangular.<locals>.<lambda>  s    LLaaqtL< r   r   c                 ,    | j                  ||||      S )Nr  r  )r0   r  r  r  r   s        r   r1   z6TestRandomGenerators.test_triangular.<locals>.<lambda>  s    LLdULF r   r  )r   r   r   r   r0   r0   r0   r/   r&  r  s         r   test_triangularz$TestRandomGenerators.test_triangular{  s     6
g=	 	?E' ?\\w\? ?++Iw,0%?? ??	?G	!!)-N"13J	L? ?rc  c                     g d}d t         g}d }|D ]?  }|D ]8  }| j                  ||      5  | j                  ||d |d t               d d d        : A d }| j	                  |ddgddgd	d
g       y # 1 sw Y   dxY w)Nr   c                 (    | j                  d|      S )Nr   lamr   poissonr   s      r   r1   z3TestRandomGenerators.test_poisson.<locals>.<lambda>  s    !)))*F r   r   c                 (    | j                  ||      S )Nr  r  )r0   r  r   s      r   r1   z3TestRandomGenerators.test_poisson.<locals>.<lambda>  s    		c	(E r   r  r   r   r   r0   r/   r  r  s         r   test_poissonz!TestRandomGenerators.test_poisson  s     6
gF	 	?E' ?\\w\? ?++Iw,0%,=?? ??	? F	!!)eV_#%t*sFm	=? ?r1  c                     g d}d t         g}d }|D ]?  }|D ]8  }| j                  ||      5  | j                  ||d |d t               d d d        : A d }| j	                  |g dg dg d       y # 1 sw Y   dxY w)Nr   c                 *    | j                  dd|      S Nr*   皙?nr  r   negative_binomialr   s      r   r1   z=TestRandomGenerators.test_negative_binomial.<locals>.<lambda>  s    !s6 r   r   c                 *    | j                  |||      S Nr  r  r0   r  r  r   s       r   r1   z=TestRandomGenerators.test_negative_binomial.<locals>.<lambda>  s    !qt4 r   r  r*   rl  r   r  r  r  s         r   test_negative_binomialz+TestRandomGenerators.test_negative_binomial  s     6
g7	 	?E' ?\\w\? ?++Iw,0%,=?? ??	?5	!!)-?"13E	G? ?r1  c           
          dg}d t         g}g d}t        j                  |||      D ]>  \  }}| j                  ||      5  fd}| j	                  ||d |d d       d d d        @ y # 1 sw Y   KxY w)Nr   )r   r*   rH   r   r   _axisc                 R    | j                  |      }| j                  |       |S )NrU  axis)r4   shuffle)r0   r   rA   arrr  s       r   r   z4TestRandomGenerators.test_shuffle.<locals>.dist_func  s(    (((-CIIcI.Jr   r   )r   	itertoolsproductrS   r   )r&   r   r   axesr   r   r   r  s          @r   test_shufflez!TestRandomGenerators.test_shuffle  s    "^
g%.%6%6z7C7;&= 
	+!E7E E7%H + ''	7(,eT()++ +
	++ +s   A**A3	c                     t        j                  g       }t        j                  g       }d }t        j                  |      }d }| j	                   | |       |       | |       |             y )Nc                 (    | j                  |       |S r   r  r0   r  s     r   r   z:TestRandomGenerators.test_shuffle_empty.<locals>.dist_func  s    IIcNJr   c                  @    t         j                  j                  d      S Nr*   r   r4   r5   r   r   r   r1   z9TestRandomGenerators.test_shuffle_empty.<locals>.<lambda>      bii++A. r   r   arrayr6   r7   rw   r&   r5  r6  r   nb_funcr8   s         r   test_shuffle_emptyz'TestRandomGenerators.test_shuffle_empty  sX    HHRLHHRL	 **Y'.	#% 3WSUA5FGr   c                    | j                          d }| j                  |ddgt        j                  g d      dgddg       t        j                  j                  d      }| j                  t              5 } t        j                  |      |t        j                  g d      d       d d d        | j                  dt        j                               y # 1 sw Y   /xY w)	Nc                 ,    | j                  ||       |S Nr  r  r0   r  r  s      r   r   z:TestRandomGenerators.test_shuffle_check.<locals>.dist_func  s    IIcI%Jr   r0   r  r      r   r   r*   rH   )Axis is out of bounds for the given arraydisable_leak_checkr   r   r  r4   r5   r!   
IndexErrorr6   r7   r#   r$   r%   r&   r   r8   r'   s       r   test_shuffle_checkz'TestRandomGenerators.test_shuffle_check  s    !	 	!!)c6]#%88G#4a"83*	F ii##A&z* 	=f!EJJy!#rxx'8!<	=7  !	
	= 	=s   73CC!c           
         dg}d t         g}g d}t        j                  |||      D ]<  \  }}}| j                  |||      5  d }| j	                  ||d |d d       d d d        > t        j                  d       }t        j                  j                         }|j                  d      }	|	j                         }
 |||	       | j                  |	|
       y # 1 sw Y   xY w)	Nr   )r   r*   rH   r  c                 L    | j                  |      }| j                  |d      S )NrU  r*   r  )r4   permutation)r0   r   rA   r  s       r   r   z8TestRandomGenerators.test_permutation.<locals>.dist_func  s%    (((-C==1=55r   r   c                 $    | j                  |      S r   r  )r8   r  s     r   r1   z7TestRandomGenerators.test_permutation.<locals>.<lambda>  s    0D r   )ra   r   rU  )r   r  r  rS   r   r6   r7   r   r4   r5   r   rw   )r&   r   r   r  r   r   r  r   r8   r  arr_cpys              r   test_permutationz%TestRandomGenerators.test_permutation  s    "^
g %.%6%6z7C7;&= 		+!E7E E7%H +6 ''	7(,eT()+	+ +		+ JJDE	ii##%jjhj'((*#sW-+ +s   CC!	c                    | j                          d }| j                  |ddgt        j                  g d      dgddg       t        j                  j                  d      }| j                  t              5 } t        j                  |      |t        j                  g d      d       d d d        | j                  dt        j                               | j                  t              5 } t        j                  |      |t        j                  g d      d	       d d d        | j                  dt        |j                               y # 1 sw Y   xY w# 1 sw Y   ;xY w)
Nc                 (    | j                  ||      S r  r  r  s      r   r   zBTestRandomGenerators.test_permutation_exception.<locals>.dist_func  s    ==4=00r   r0   r  r  r   r*   rH   r  r  r  r  s       r   test_permutation_exceptionz/TestRandomGenerators.test_permutation_exception  s   !	1 	!!)c6]#%88G#4a"83*	F ii##A&z* 	=f!EJJy!#rxx'8!<	=7  !	
 z* 	>f!EJJy!#rxx'8"=	>7  !	
	= 	=	> 	>s   73E,3EEE"c                     t        j                  g       }t        j                  g       }d }t        j                  |      }d }| j	                   | |       |       | |       |             y )Nc                 $    | j                  |      S r   r  r  s     r   r   z>TestRandomGenerators.test_permutation_empty.<locals>.dist_func   s    ==%%r   c                  @    t         j                  j                  d      S r  r  r   r   r   r1   z=TestRandomGenerators.test_permutation_empty.<locals>.<lambda>$  r  r   r  r  s         r   test_permutation_emptyz+TestRandomGenerators.test_permutation_empty  sX    HHRLHHRL	& **Y'.	#% 3WSUA5FGr   c           	      N   g d}d t         g}d }t        j                  ||      D ]6  \  }}| j                  ||      5  | j	                  ||d |d        d d d        8 d }g d}| j                  |g d|g d       t        j                  j                         }|g|z   }t        j                  |      }| j                  t              5 }	|j                         }
d|
d	<    ||
  d d d        | j                  d
t        	j                                | j                  t              5 }	|j                         }
d|
d<    ||
  d d d        | j                  dt        |	j                                | j#                          y # 1 sw Y   fxY w# 1 sw Y   xY w# 1 sw Y   XxY w)Nr   c                 *    | j                  dd|      S N      @g      4@rU  noncentral_chisquarer   s      r   r1   z@TestRandomGenerators.test_noncentral_chisquare.<locals>.<lambda>/  s    ""34"8 r   r   c                 *    | j                  |||      S )NrH  noncr   r	  )r0   rH  r  r   s       r   r1   z@TestRandomGenerators.test_noncentral_chisquare.<locals>.<lambda>6  s    ""bt$"? r   )r  r   r   r  r  r   r*   zdf <= 0r  rH   nonc < 0)r   r  r  rS   r   r   r   r4   r5   r6   r7   r!   rT   r   r#   r$   r%   r  r&   r   r   r   r   r   r   r8   r   r'   r   s              r   test_noncentral_chisquarez.TestRandomGenerators.test_noncentral_chisquare(  s    6
g9	'//
LI 	;NE7E7; ;''	7(,eT;; ;	;
@	%
!!)-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#   FF)FF	FF$c           
      ,   g d}d t         g}d }t        j                  ||      D ];  \  }}| j                  ||      5  | j	                  ||d |d t
               d d d        = d }g d}| j                  |g d|g d       t        j                  j                         }|g|z   }t        j                  |      }| j                  t              5 }	|j                         }
d|
d	<    ||
  d d d        | j                  d
t!        	j"                               | j                  t              5 }	|j                         }
d|
d<    ||
  d d d        | j                  dt!        |	j"                               | j                  t              5 }	|j                         }
d|
d<    ||
  d d d        | j                  dt!        |	j"                               | j%                          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   exY w)Nr   c                 ,    | j                  ddd|      S r  noncentral_fr   s      r   r1   z8TestRandomGenerators.test_noncentral_f.<locals>.<lambda>V  s    NN3cN5 r   r   c                 ,    | j                  ||||      S )Nr>  r?  r  r   r  )r0   r>  r?  r  r   s        r   r1   z8TestRandomGenerators.test_noncentral_f.<locals>.<lambda>^  s    NNe$TNJ r   )r  r   r  r   r  r  r   r*   z
dfnum <= 0rH   z
dfden <= 0r  r   r  )r   r  r  rS   r   r  r   r   r4   r5   r6   r7   r!   rT   r   r#   r$   r%   r  r  s              r   test_noncentral_fz&TestRandomGenerators.test_noncentral_fO  s    6
g6	'//
LI 	;NE7E7; ;''	7(,eT(9;; ;	;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$G1.G>H
$G.	1G;>H
Hc           	         g d}d t         g}d }t        j                  ||      D ]6  \  }}| j                  ||      5  | j	                  ||d |d        d d d        8 d }ddg}| j                  |ddg|d	d
g       t        j                  j                  d      }|g|z   }t        j                  |      }ddt        j                  fD ]_  }	| j                  t              5 }
|j                         }|	|d<    ||  d d d        | j                  dt!        
j"                               a | j%                          y # 1 sw Y   "xY w# 1 sw Y   NxY w)Nr   c                 (    | j                  d|      S )N333333?rU  	logseriesr   s      r   r1   z5TestRandomGenerators.test_logseries.<locals>.<lambda>  s    KK$K' r   r   c                 (    | j                  ||      S r  r  r  s      r   r1   z5TestRandomGenerators.test_logseries.<locals>.<lambda>  s    KK!$K' r   r  r   r  r   r0   r/   r*   gzp < 0, p >= 1 or p is NaN)r   r  r  rS   r   r   r   r4   r5   r6   r7   nanr!   rT   r   r#   r$   r%   r  )r&   r   r   r   r   r   r   r8   r   _pr'   r   s               r   test_logseriesz#TestRandomGenerators.test_logseries}  sc    6
g(	'//
LI 	;NE7E7; ;''	7(,eT;; ;	;
(	4[
!!)c6]",sFm	= ii##A&UZ'
zz),BFF# 	NB"":. )&&OO-	!	!i(	)
 MM5s6;K;K7LM	N 	!-; ;) )s   D>#E>E	E	c                     g d}d t         g}d }|D ]?  }|D ]8  }| j                  ||      5  | j                  ||d |d t               d d d        : A d }| j	                  |g dg dg d       y # 1 sw Y   dxY w)Nr   c                 *    | j                  dd|      S r  binomialr   s      r   r1   z4TestRandomGenerators.test_binomial.<locals>.<lambda>  s    JJcJ- r   r   c                 *    | j                  |||      S r  r#  r  s       r   r1   z4TestRandomGenerators.test_binomial.<locals>.<lambda>  s    JJadJ+ r   r  r  r  r  r  s         r   test_binomialz"TestRandomGenerators.test_binomial  s     6
g.	 	?E' ?\\w\? ?++Iw,0%,=?? ??	?,	!!)-?"13E	G? ?r1  c           
          g d}d }|D ]=  \  | j                        5  fd}| j                  |d d |d d       d d d        ? y # 1 sw Y   JxY w)N))r*   r  )2   ?)rJ   g?)rJ   r)  )r  r  c                 ,    | j                  |      S rT  r#  )r0   r   rA   r  r  s      r   r1   z:TestRandomGenerators.test_binomial_cases.<locals>.<lambda>  s    JJq!$J/ r   r   )rS   r   )r&   rY   r   r   r  r  s       @@r   test_binomial_casesz(TestRandomGenerators.test_binomial_cases  sp    
  	=DAqQ' =0	''	4(,dD!== =	== =s   AA	)NNNNr   r   )1r[   r\   r]   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r'  r0  r:  rC  rN  rW  rb  ri  rp  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r   r&  r+  r   r   r   rh   rh      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*=r   rh   c                       e Zd Zd Zy)TestGeneratorCachingc                    t         j                  j                  d      }t         j                  j                  d      }t        j                  d d      }| j                  |j                  d       ||             | j                  |j                  d       ||             t        t              }| j                  |d   d       y )Nr*   c                 $    | j                  d      S r`   rb   r/   s    r   r1   z=TestGeneratorCaching.test_randomgen_caching.<locals>.<lambda>  s    !((2, r   Tr2   ra   exitcoder   )	r   r4   r5   r6   r7   rw   r   rf   r   )r&   rd   re   r:   ress        r   test_randomgen_cachingz+TestGeneratorCaching.test_randomgen_caching  s    &&q)&&q)ZZ 6dC
b 1:f3EFb 1:f3EF()?@Z!,r   N)r[   r\   r]   r2  r   r   r   r-  r-    s    
-r   r-  )r6   numpyr   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   rf   rh   r-  r   r   r   <module>r9     sg      
  	  9 > P P + ) G  x
h x
v>g=?H g=T!-8[ -r   