
    xKg                         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       a/home/alanp/www/video.onchill/myenv/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   		 	 ()/?%%&( *+-	/ ()/?%%&( *+-	/ {+v_orxxH ,?  !	
 {+v_ou}}M ,?  !	
 ,+ ,+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   sv    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Fr   c                 ,    | j                  |||d      S )NFr>   rC   rE   s       r   r1   z9TestHelperFuncs.test_integers_arg_check.<locals>.<lambda>H   s    JJ3TJGr   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2f"3au= 3 *(()
 &&z2fsC59 3 +(()
 &&z2f-c3q%H 3 +(()) ?> !&4 HHRYY/33HHRYY/33RYY Tz*f3au5 + 	"  !	

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

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

 z*fsCbii0 +8  !	
m 32 32 32# ?>6 +* +* +* +*s   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   s^   
 "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)J##OJ$?$3J$?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*Fr   )
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( 0MMD6!EFF$$% -
 0/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
    QXXZr   c                     | S r   r   r/   s    r   r1   zATestRandomGenerators.test_npgen_boxing_refcount.<locals>.<lambda>   s    Qr   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   sY    B
k;7!$UJ!7E:EjA--j%@ BA "8AAs   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5r   _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2r   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  7r   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 =	\\^##I/3a $ A 6	E%+GE&.5 & 7//	704eVQH7 7  , &   6
g?	E'\\*1 " 3++Iw,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*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Ar   )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(*Jr   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	\\^##I/3 $ 5  K	E%+GE&.5 & 7//	704eVE7 7  , &  -	!!)fg->#'"4vrl	D ^7 7    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5r   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 >	\\^##I/3 $ 5 6	  E%+GE&.5 & 7//	704eVE7 7  , &  6	!!)fg->#'"4vqk	C! ^7 7r   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    !*@*@*Br   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"Ir   r   zigr   )r   r/   r   r   r   s           r   test_standard_exponentialz.TestRandomGenerators.test_standard_exponential  s    5
zz2::.g C	\\^##I/3 $ 5 ;	  E%+GE&.5 & 7//	704eVE7 7  , &  J	!!)-H#($

";^	M# ^7 7s    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"Ir   r   )r   r    r   r   rS   r   r   s           r   test_standard_exponential_invz2TestRandomGenerators.test_standard_exponential_inv  s    5
zz2::.gJ	E%+GE&.5 & 7//	704eVE7 7  , &  7 7s   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Ar   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@	E%+GE&.5 & 7//	704eV0AC7 7  , &  B	!!)-G#&bjj"9;K	M7 7s   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!$(*Or   r   c                 *    | j                  |||      S Nr  r-   r0   r,   r	  r   s       r   r1   z2TestRandomGenerators.test_normal.<locals>.<lambda>  s    HHEH5r   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    !))!$)*Or   r   c                 *    | j                  |||      S )Nr  r  )r0   r?   r@   r   s       r   r1   z3TestRandomGenerators.test_uniform.<locals>.<lambda>	  s    II#DtI4r   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-*Mr   r   c                 (    | j                  ||      S Nr"  r  r0   r	  r   s      r   r1   z7TestRandomGenerators.test_exponential.<locals>.<lambda>!  s    MMDM1r   r	  r   r  r   r0   r/   r   rS   r   r   r  s         r   test_exponentialz%TestRandomGenerators.test_exponential  s     6
g :	\\^##I/3 $ 5  N	E'\\w\?++Iw,0%? @? (  
2	!!)gv->#&+V}	> ^ @?   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8r   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&*Ir   r   c                 *    | j                  |||      S )Nr4  r7  )r0   r5  r6  r   s       r   r1   z0TestRandomGenerators.test_beta.<locals>.<lambda>I  s    !qt)Dr   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#*Jr   r   c                 *    | j                  |||      S )Nr=  r@  )r0   r>  r?  r   s       r   r1   z-TestRandomGenerators.test_f.<locals>.<lambda>\  s    CCe5tC4r   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    !+++*Fr   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    !*;*;*;*Fr   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 >	\\^##I/3 $ 5  G	E'\\w\?++Iw,0%? @? (   @	!!)fX#'&6(	4 ^ @?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(*Dr   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)*Er   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'*Dr   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4r   r   c                 *    | j                  |||      S r  rs  r  s       r   r1   z3TestRandomGenerators.test_laplace.<locals>.<lambda>  s    II#UI6r   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4r   r   c                 *    | j                  |||      S r  r|  r  s       r   r1   z4TestRandomGenerators.test_logistic.<locals>.<lambda>  s    JJ3e$J7r   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7r   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**Jr   r   c                 (    | j                  ||      S r$  r  r%  s      r   r1   z4TestRandomGenerators.test_rayleigh.<locals>.<lambda>+  s    !**5t**Lr   r	  r   r  r   r0   r/   r&  r  s         r   test_rayleighz"TestRandomGenerators.test_rayleigh  s     6
g 7	\\^##I/3 $ 5  K	E'\\w\?++Iw,0%? @? (   M	!!)gv->#&+V}	> ^ @?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    !,,!$,*Gr   r   c                 (    | j                  ||      S rL  r  rM  s      r   r1   z6TestRandomGenerators.test_standard_t.<locals>.<lambda>>  s    q||r|'Er   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&*Pr   r   c                 *    | j                  |||      S )Nr  r  )r0   r  r	  r   s       r   r1   z0TestRandomGenerators.test_wald.<locals>.<lambda>Q  s    FFEF5r   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+*Hr   r   c                 (    | j                  ||      S Nr  r  r0   r  r   s      r   r1   z5TestRandomGenerators.test_geometric.<locals>.<lambda>e  s    akkADk&Ar   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&*Br   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Fr   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    !)))*Fr   r   c                 (    | j                  ||      S )Nr  r  )r0   r  r   s      r   r1   z3TestRandomGenerators.test_poisson.<locals>.<lambda>  s    		c	(Er   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6r   r   c                 *    | j                  |||      S Nr  r  r0   r  r  r   s       r   r1   z=TestRandomGenerators.test_negative_binomial.<locals>.<lambda>  s    !qt4r   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()+ IH&= IHs   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    0Dr   )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()+	 IH&= JJDE	ii##%jjhj'((*#sW- IHs   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"8r   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INE7E7;''	7(,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#   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5r   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Jr   )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INE7E7;''	7(,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$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}  sH    6
g(	'//
LINE7E7;''	7(,eT; <; J
(	4[
!!)c6]",sFm	= ii##A&UZ'
zz),BFF#B"":.&&OO-	!	!i(	 /
 MM5s6;K;K7LM $ 	!- <; /.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  s`    
 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   