o
    h                    @   s   d dl Z d dlZd dlZd dlmZmZmZmZm	Z	m
Z
mZmZmZ d dlmZ d dlZG dd dZG dd dZG dd	 d	ZG d
d dZG dd dZG dd dZG dd dZejjeddG dd dZG dd dZdS )    N)	assert_assert_raisesassert_equalassert_warnsassert_no_warningsassert_array_equalassert_array_almost_equalsuppress_warningsIS_WASM)randomc                   @   4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )TestSeedc                 C   s<   t jd}t|dd t jd}t|dd d S )Nr     i      i  )npr   RandomStater   randintselfs r   r/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/numpy/random/tests/test_random.pytest_scalar   s   zTestSeed.test_scalarc                 C   s   t jtd}t|dd t jt d}t|dd t jdg}t|dd t jdg}t|dd d S )N
   r   i  r   i  r   i	  )r   r   r   ranger   r   aranger   r   r   r   
test_array   s   zTestSeed.test_arrayc                 C   s$   t ttjjd t ttjjd d S )N      r   	TypeErrorr   r   r   
ValueErrorr   r   r   r   test_invalid_scalar    s   zTestSeed.test_invalid_scalarc                 C   sb   t ttjjdg t ttjjdg t ttjjdg t ttjjg d t ttjjg d d S )Nr   r           )      r$   )r%   r$   r   r"   r   r   r   test_invalid_array%   s
   zTestSeed.test_invalid_arrayc                 C   sR   t ttjjtjg tjd t ttjjg dg t ttjjg dg dg d S )Ndtyper%   r&      )         )r   r!   r   r   r   arrayint64r"   r   r   r   test_invalid_array_shape-   s   

z!TestSeed.test_invalid_array_shapeN)__name__
__module____qualname__r   r   r#   r(   r2   r   r   r   r   r      s    
r   c                   @   s   e Zd Zdd Zdd ZdS )TestBinomialc                 C   sB   t jddd}dD ]}ttd|dk tt||| q	d S )Nr&   intr)   )r         ?r%   r   )r   zerosr   r   binomialr   )r   r9   pr   r   r   test_n_zero7   s
   zTestBinomial.test_n_zeroc                 C   s   t ttjdtj d S )Nr%   )r   r!   r   r:   r   nanr"   r   r   r   test_p_is_nan@   s   zTestBinomial.test_p_is_nanN)r3   r4   r5   r<   r>   r   r   r   r   r6   6   s    	r6   c                   @   r   )TestMultinomialc                 C   s   t dddg d S )Nd   皙?皙?r   multinomialr"   r   r   r   
test_basicF      zTestMultinomial.test_basicc                 C   s   t dg d d S )Nr@   )rA   rB           rG   rG   rC   r"   r   r   r   test_zero_probabilityI   rF   z%TestMultinomial.test_zero_probabilityc                 C   sZ   t dtdd  kodk n   tddd}t td|k t t|dk  d S )Nr   r.   )r   r   r   r   all)r   xr   r   r   test_int_negative_intervalL   s   $z*TestMultinomial.test_int_negative_intervalc                 C   s   ddg}t tjd|tdjd t tjd|tdjd t tjd|tdjd t tjd|ddgjd t tjd|djd t tjd|tdjd tttjjd|t	d d S )Nr8   r%   r%   r&   r&   r&   r&   r&   r&   r&   )
r   r   r   rD   uint32shaper0   r   r    floatr   r;   r   r   r   	test_sizeR   s   zTestMultinomial.test_sizec              	   C   s   t ttjjdddgg t ttjjddgdgg t ttjjddgdggdgdggg t ttjjdtddgddgg d S )Nr   r   r%   )r   r!   r   r   rD   r0   r"   r   r   r   test_multidimensional_pvals`   s   &(z+TestMultinomial.test_multidimensional_pvalsN)r3   r4   r5   rE   rH   rL   rT   rU   r   r   r   r   r?   E   s    r?   c                   @   sD   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dS )TestSetStatec                 C   s$   d| _ t| j | _| j | _d S NiI)seedr   r   prng	get_statestater"   r   r   r   setup_methodh   s   zTestSetState.setup_methodc                 C   s<   | j d}| j | j | j d}tt||k d S )N   )rY   tomaxint	set_stater[   r   r   rJ   r   oldnewr   r   r   rE   m   s   zTestSetState.test_basicc                 C   s@   | j jdd}| j | j | j jdd}tt||k d S Nr,   size)rY   standard_normalr_   r[   r   r   rJ   r`   r   r   r   test_gaussian_resets   s   z TestSetState.test_gaussian_resetc                 C   sR   | j   | j  }| j jdd}| j | | j jdd}tt||k d S rc   )rY   rf   rZ   r_   r   r   rJ   )r   r[   ra   rb   r   r   r    test_gaussian_reset_in_media_resz   s   

z-TestSetState.test_gaussian_reset_in_media_resc                 C   sz   | j d d }| jjdd}| j| | jjdd}| j| j  | jjdd}tt||k tt||k d S )Nr'   r]   rd   )r[   rY   rf   r_   r   r   rJ   )r   	old_statex1x2x3r   r   r   test_backwards_compatibility   s   z)TestSetState.test_backwards_compatibilityc                 C   s   | j dd d S Nr8   )rY   negative_binomialr"   r   r   r   test_negative_binomial   s   z#TestSetState.test_negative_binomialc                 C   s<   t t | jd W d    d S 1 sw   Y  d S )Nr   )pytestraises
IndexErrorrY   r_   r"   r   r   r   test_set_invalid_state   s   "z#TestSetState.test_set_invalid_stateN)
r3   r4   r5   r\   rE   rg   rh   rm   rp   rt   r   r   r   r   rV   g   s    rV   c                	   @   s|   e Zd ZejjZejejej	ej
ejejejejejg	Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Zdd ZdS )TestRandintc                 C   s   t t| jdtd d S Nr%   r)   )r   r    rfuncrR   r"   r   r   r   test_unsupported_type   s   z!TestRandint.test_unsupported_typec                 C   s   | j D ]J}|tju rdnt|j}|tju rdnt|jd }tt| j|d ||d tt| j||d |d tt| j|||d tt| jdd|d qd S )Nr   r&   r%   r)   )	ityper   booliinfominmaxr   r!   rw   )r   dtlbndubndr   r   r   test_bounds_checking   s   
z TestRandint.test_bounds_checkingc                 C   s   | j D ]T}|tju rdnt|j}|tju rdnt|jd }|d }t| j||d d|d| |}t| j||d d|d| || d }t| j||d d|d| qd S )Nr   r&   r%   r   re   r*   )ry   r   rz   r{   r|   r}   r   rw   )r   r~   r   r   tgtr   r   r   test_rng_zero_and_extremes   s   
z&TestRandint.test_rng_zero_and_extremesc                 C   s   | j D ]<}|tju rdnt|j}|tju rdnt|jd }z
| j|||d W q ty? } ztdt	| d }~ww d S )Nr   r&   r%   r)   zMNo error should have been raised, but one was with the following message:

%s)
ry   r   rz   r{   r|   r}   rw   	ExceptionAssertionErrorstr)r   r~   r   r   er   r   r   test_full_range   s   
zTestRandint.test_full_rangec                 C   s   t j  | jdd  D ] }dD ]}| jd|d|d}t| |k  t| dk qq| jdddt jd}t| dk  t| dk d S )Nr%   )r-      r]   r&   i   r   r   )	r   r   rX   ry   rw   r   r}   r|   rz   )r   r~   r   valsr   r   r   test_in_bounds_fuzz   s   
zTestRandint.test_in_bounds_fuzzc              
   C   s   dd l }dddddddddd	}| jdd  D ]9}tjd	 tjd
kr.| jddd|d}n| jddd|d }|	|
tj }t|t|j |k qtjd	 | jdddtd
tj}|	| }t|ttj |k d S )Nr   @509aea74d792fb931784c4b0135392c65aec64beee12b0cc167548a2c3d31e71@7b07f1a920e46f6d0fe02314155a2330bcfd7635e708da50e536c5ebb631a7d4@e577bfed6c935de944424667e3da285012e741892dcb7051a8f1ce68ab05c92f@0fbead0b06759df2cfb55e43148822d4a1ff953c7eb19a5b08445a63bb64fa9e@001aac3a5acb935a9b186cbe14a1ca064b8bb2dd0b045d48abeacf74d0203404)	rz   int16int32r1   int8uint16rP   uint64uint8r%   i  littler/   r   r   r&   )hashlibry   r   r   rX   sys	byteorderrw   byteswapsha256viewr   	hexdigestr   r*   namerz   )r   r   r   r~   valresr   r   r   test_repeatability   s,   

zTestRandint.test_repeatabilityc                 C   s`   t j}t t jj}t t t jj}t t t jjd }t jj|||d}t|| d S rv   )r   r1   r{   r}   r   r   r   r   )r   r~   r   r   r   actualr   r   r   test_int64_uint64_corner_case   s   z)TestRandint.test_int64_uint64_corner_casec                 C   s   | j D ]/}|tju rdnt|j}|tju rdnt|jd }| j|||d}t|jt| qtt	fD ]3}|tu r?dntdj}|tu rKdntdjd }| j|||d}t
t|d  tt|| q7d S )Nr   r&   r%   r)   longr*   )ry   r   rz   r{   r|   r}   rw   r   r*   r7   r   hasattrtype)r   r~   r   r   sampler   r   r   test_respect_dtype_singleton  s   
z(TestRandint.test_respect_dtype_singletonN)r3   r4   r5   r   r   r   rw   rz   r   r   r   r   r   rP   r1   r   ry   rx   r   r   r   r   r   r   r   r   r   r   r   ru      s    	!ru   c                   @   s  e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zejd'ejej ej gd(d) Zejd'ejej ej gejd*d+d,gd-d. Zd/d0 Zd1d2 Z d3d4 Z!d5d6 Z"d7d8 Z#d9d: Z$d;d< Z%d=d> Z&d?d@ Z'dAdB Z(dCdD Z)dEdF Z*dGdH Z+dIdJ Z,dKdL Z-dMdN Z.dOdP Z/dQdR Z0dSdT Z1dUdV Z2dWdX Z3dYdZ Z4d[d\ Z5d]d^ Z6d_d` Z7dadb Z8dcdd Z9dedf Z:dgdh Z;didj Z<dkdl Z=dmdn Z>dodp Z?dqdr Z@dsdt ZAdudv ZBdwdx ZCdydz ZDd{d| ZEd}d~ ZFdd ZGdd ZHdd ZIdd ZJdd ZKdd ZLdd ZMdd ZNdd ZOdd ZPdd ZQdd ZRdS )TestRandomDistc                 C   
   d| _ d S rW   rX   r"   r   r   r   r\   +     
zTestRandomDist.setup_methodc                 C   J   t j| j t jdd}t ddgddgddgg}t||d	d
 d S )Nr,   r&   _\*?琛?<p?,o?H?Z?   decimal)r   r   rX   randr0   r   r   r   desiredr   r   r   	test_rand.     
zTestRandomDist.test_randc                 C   r   )Nr,   r&   !<Oq?4u,?3?LI/DͿ@? @HS\@r   r   )r   r   rX   randnr0   r   r   r   r   r   
test_randn6  r   zTestRandomDist.test_randnc                 C   J   t j| j t jjdddd}t ddgddgd	d
gg}t|| d S )Nc   r,   r&   rd      r,   )   )r   r   rX   r   r0   r   r   r   r   r   test_randint>     
zTestRandomDist.test_randintc                 C   s   t j| j t }|t}t jjdddd}tt|dk W d    n1 s+w   Y  t 	ddgdd	gd
dgg}t
|| d S )Nr   r   r   rd   r%   r   r,   r   r   r   r   )r   r   rX   r	   recordDeprecationWarningrandom_integersr   lenr0   r   r   supwr   r   r   r   r   test_random_integersF  s   

z#TestRandomDist.test_random_integersc                 C   sx   t  $}|t}tjtdjtdj}tt	|dk W d    n1 s*w   Y  tdj}t
|| d S )Nlr%   )r	   r   r   r   r   r   r{   r}   r   r   r   r   r   r   r   test_random_integers_max_intQ  s   

z+TestRandomDist.test_random_integers_max_intc                 C   st   t  , t dt tttjjtdj	 tttjjtdj	tdj	 W d    d S 1 s3w   Y  d S )Nerrorr   )
warningscatch_warningssimplefilterr   r   r   r   r   r{   r}   r"   r   r   r   test_random_integers_deprecated`  s   

"z.TestRandomDist.test_random_integers_deprecatedc                 C   sH   t j| j t jd}t ddgddgddgg}t||dd	 d S )
Nr   r   r   r   r   r   r   r   r   )r   r   rX   r0   r   r   r   r   r   test_randomn  s   
zTestRandomDist.test_randomc                 C   s8   t j| j t jdd}t g d}t|| d S )Nr-   )r&   r,   r&   r,   r   r   rX   choicer0   r   r   r   r   r   test_choice_uniform_replacev  s   z*TestRandomDist.test_choice_uniform_replacec                 C   s@   t j| j t jjddg dd}t g d}t|| d S )Nr-   )皙?r   皙?r   r;   )r%   r%   r&   r&   r   r   r   r   r   test_choice_nonuniform_replace|  s   z-TestRandomDist.test_choice_nonuniform_replacec                 C   s<   t j| j t jjdddd}t g d}t|| d S )Nr-   r,   Freplace)r   r%   r,   r   r   r   r   r   test_choice_uniform_noreplace     z,TestRandomDist.test_choice_uniform_noreplacec                 C   sB   t j| j t jjdddg dd}t g d}t|| d S )Nr-   r,   F)r   g333333?r8   r   r   r;   )r&   r,   r%   r   r   r   r   r    test_choice_nonuniform_noreplace  s   z/TestRandomDist.test_choice_nonuniform_noreplacec                 C   s<   t j| j t jg dd}t g d}t|| d S )N)abcdr-   )r   r   r   r   r   r   r   r   r   test_choice_noninteger  r   z%TestRandomDist.test_choice_nonintegerc                 C   s4  t jj}tt|dd tt|dd tt|ddgddggd tt|g d tt|g ddddgddggd	 tt|ddgdg d
d	 tt|ddgdddgd	 tt|ddgdddgd	 tt|g dddd tt|g dddd tt|g dddd tt|g dddd tt|g dddg dd d S )Nr   r,   g      @r%   r&   r-   )r%   r&   r,   r-   g      ?r   )r   r   rA   g?gr   r+   Fr   r'   )r   )r   r%   )r%   r   r   r   )r   r   r   r   r!   )r   r   r   r   r   test_choice_exceptions  s$   
z%TestRandomDist.test_choice_exceptionsc              	   C   s4  ddg}t ttjjddd t ttjjddd t ttjjdd|d t ttjjdd|d t ttjjddgdd t tjjd gddd u  tddg}tjdtd	}||d
< t tjj|dd|u  t }t ttjjd|dd  t ttjjd|dd  t ttjjd|d|d  t ttjjd|d|d  t ttjjddg|dd  t tjjd g|ddj	d
k tddg}tjdtd	}||d
< t tjj||dd
 |u  d}g d}ttjjd|ddj| ttjjd|ddj| ttjjd|d|dj| ttjjd|d|dj| ttjjtd|ddj| ttjjd
d
ddjd ttjjd
dd
djd ttjjddd
djd ttjjd
d
djd ttjjg ddjd ttjjddgddjd tttjjg d d S )Nr   ?r&   Tr   Fr   r%   r)   r   )r&   r,   )r   r   r   r   r   rA   r/   )r,   r   r-   rd   i)r   r   r   r   )r   r   isscalarr   r   r0   emptyobjecttuplendimitemr   rQ   r   r   r   r!   )r   r;   r   arrr   r   r   r   test_choice_return_shape  sL     " z'TestRandomDist.test_choice_return_shapec                 C   s.   t g d}g d}ttt jj||d d S )N)*   r%   r&   )NNNr   )r   r0   r   r!   r   r   )r   r   r;   r   r   r   test_choice_nan_probabilities  s   z,TestRandomDist.test_choice_nan_probabilitiesc                 C   s,   t j| j t jd}d}t|| d S )Nr   s
   Ui+Wf)r   r   rX   bytesr   r   r   r   r   
test_bytes  s   zTestRandomDist.test_bytesc                 C   s   dd dd dd dd dd dd dd d	d d
d dd dd fD ]"}t j| j |g d}t j| |}|g d}t|| q#d S )Nc                 S   s
   t g S N)r   r0   rK   r   r   r   <lambda>  s   
 z-TestRandomDist.test_shuffle.<locals>.<lambda>c                 S   s   | S r  r   r  r   r   r   r    s    c                 S      t | t jS r  )r   asarrayastyper   r  r   r   r   r        c                 S   r  r  )r   r  r  float32r  r   r   r   r    r  c                 S   r  r  )r   r  r  	complex64r  r   r   r   r    r  c                 S   s   t | tS r  )r   r  r  r   r  r   r   r   r        c                 S   s   dd | D S )Nc                 S      g | ]}||fqS r   r   .0ir   r   r   
<listcomp>      ATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>r   r  r   r   r   r    s    c                 S   s   t dd | D S )Nc                 S   s   g | ]}||gqS r   r   r  r   r   r   r    r  r  )r   r  r  r   r   r   r    r  c                 S   s   t | | gjS r  )r   vstackTr  r   r   r   r    r
  c                 S   s*   t dd | D dtfdtfgt jS )Nc                 S   r  r   r   r  r   r   r   r    r  r  r   r   )r   r  r7   r   recarrayr  r   r   r   r    s    
c                 S   s$   t dd | D dtfdt jfgS )Nc                 S   r  r   r   r  r   r   r   r    r  r  r   r   )r   r  r   r   r  r   r   r   r    s    )
r%   r&   r,   r-   r.   r/      r   	   r   )
r   r%   r  r/   r&   r-   r.   r   r  r,   )r   r   rX   shuffler   )r   convalistr   r   r   r   r   test_shuffle  s&   zTestRandomDist.test_shufflec                 C   s   t jt tddd d d}t jt dd d d}| }| }tdD ]4}t j| t	t
|j|j  t
|j|j   t j| t	t
|j|j  t
|j|j   q+d S )N   )r.   r-   r,   r%   r   2   )r   mamasked_valuesreshaper   r   copyr   r  r   sorteddatamask)r   r   r   a_origb_origr  r   r   r   test_shuffle_masked  s   "  z"TestRandomDist.test_shuffle_maskedr   c                 C   sb   dddddddd}t jtd	d
}|| W d    n1 s!w   Y  d|d jv s/J d S )Nr   r%   r&   r,   r-   r.   r/   )r   r%   r&   r,   r-   r.   r/   z!you are shuffling a 'dict' objectmatchr   )rq   warnsUserWarningr  filename)r   r   valuesrecr   r   r   test_shuffle_untyped_warning	  s   z+TestRandomDist.test_shuffle_untyped_warninguse_array_likeTFc                    s   G dd dt j}d t dgt dt dt dg}t j|td}dd |D  |r2||}t fd	d
|D s?J |rgt|t jj	sgt
jtdd || W d    d S 1 s`w   Y  d S || t fdd
|D syJ d S )Nc                   @   s   e Zd ZdS )z>TestRandomDist.test_shuffle_no_object_unpacking.<locals>.MyArrN)r3   r4   r5   r   r   r   r   MyArr  s    r0  r,   r   r  r)   c                 S   s   h | ]}t |qS r   idr  r   r   r   	<setcomp>  r  zBTestRandomDist.test_shuffle_no_object_unpacking.<locals>.<setcomp>c                 3       | ]	}t | v V  qd S r  r1  r  item_idsr   r   	<genexpr>#      zBTestRandomDist.test_shuffle_no_object_unpacking.<locals>.<genexpr>z#Shuffling a one dimensional array.*r'  c                 3   r4  r  r1  r  r5  r   r   r7  ,  r8  )r   ndarrayr0   float64r   r   rJ   
isinstancer   	Generatorrq   r)  r*  r  )r   r   r/  r0  itemsr   r   r5  r    test_shuffle_no_object_unpacking  s    $
"
z/TestRandomDist.test_shuffle_no_object_unpackingc                 C   s   t j| j t dj}t j| tt |g d t j| j}|| tt |g d t j	| j}|| tt |g d d S )Nr.   )r   r%   r-   r,   r&   )r   r%   r&   r,   r-   )r-   r%   r   r,   r&   )
r   r   rX   r   r"  r  r   r  r   default_rng)r   r   rngr   r   r   test_shuffle_memoryview.  s   

z&TestRandomDist.test_shuffle_memoryviewc                 C   sR   t d}d|j_tjtdd t j| W d    d S 1 s"w   Y  d S )Nr,   Fz	read-onlyr'  )	r   r9   flags	writeablerq   rr   r!   r   r  )r   r   r   r   r   test_shuffle_not_writeable=  s
   
"z)TestRandomDist.test_shuffle_not_writeablec                 C   N   t j| j t jjdddd}t ddgddgd	d
gg}t||dd d S )Nr   r   r   rd   gAKč?ghA?g ҇o>gάXf+q?gS1$?g'8zX ?r   r   )r   r   rX   betar0   r   r   r   r   r   	test_betaC  s   zTestRandomDist.test_betac                 C   r   )Nr@   gv/?r   rd   %   +   r   0   .   -   )r   r   rX   r:   r0   r   r   r   r   r   test_binomialL  r   zTestRandomDist.test_binomialc                 C   L   t j| j t jjddd}t ddgddgdd	gg}t||d
d d S )Nr  r   rd   g+Q]uO@g+Q@gY7`ZqP@ge(fG@gvtR@gEIȋR@   r   )r   r   rX   	chisquarer0   r   r   r   r   r   test_chisquareT     
zTestRandomDist.test_chisquarec                 C   st   t j| j t ddg}t jjj|dd}t ddgddggd	d
gddggddgddggg}t||dd d S )NI<I@EZC@r   rd   gi{s?gn,	A?g]^?gpDB?gȧ#y?gr?g1U?gѨUC?g^,%?gB?gډOoX;?gM`!O?r   r   )r   r   rX   r0   mtrand	dirichletr   )r   alphar   r   r   r   r   test_dirichlet\  s   
zTestRandomDist.test_dirichletc                 C   s   t ddg}tt j|t djd tt j|t djd tt j|t djd tt j|ddgjd tt j|djd tt j|t djd ttt jj|t	d d S )NrS  rT  r%   rM   r&   rN   rO   )
r   r0   r   r   rV  rP   rQ   r   r    rR   rS   r   r   r   test_dirichlet_sizeh  s   z"TestRandomDist.test_dirichlet_sizec                 C   s   t ddg}ttt jjj| tttjddgg tttjdgdgg tttjdgdggdgdggg tttjt ddgddgg d S )NgHzG?gؗҜr.   r%   )r   r0   r   r!   r   rU  rV  )r   rW  r   r   r   test_dirichlet_bad_alphat  s   "$z'TestRandomDist.test_dirichlet_bad_alphac                 C   rN  )Ng8EGr?r   rd   gNU?gbI0?gVU\@g:3@gU?g"qo?r   r   )r   r   rX   exponentialr0   r   r   r   r   r   test_exponential  rR  zTestRandomDist.test_exponentialc                 C   *   t tjjddd tttjjdd d S Nr   scale       )r   r   r   r[  r   r!   r"   r   r   r   test_exponential_0     z!TestRandomDist.test_exponential_0c                 C   rE  )N   M   r   rd   g7?g`j?g6"+?gܳ2>?gc>+Y?g_}S?r   r   )r   r   rX   fr0   r   r   r   r   r   test_f     
zTestRandomDist.test_fc                 C   rE  )Nr.   r,   r   rd   gԏGM8@gȌ<@g	":@gv#)@gZQ?@gr[@@   r   )r   r   rX   gammar0   r   r   r   r   r   
test_gamma  rh  zTestRandomDist.test_gammac                 C   s.   t tjjdddd tttjjddd d S )Nr   )rQ   r`  ra  )r   r   r   rj  r   r!   r"   r   r   r   test_gamma_0  s   zTestRandomDist.test_gamma_0c                 C   H   t j| j t jjddd}t ddgddgddgg}t|| d S )	N_c97ݚ?r   rd   r   r     r.   rd  )r   r   rX   	geometricr0   r   r   r   r   r   test_geometric     
zTestRandomDist.test_geometricc                 C   rE  )Nrn         @r   locr`  re   gؕ?gs0 ?g#0g(xg-KD?gůp`@r   r   )r   r   rX   gumbelr0   r   r   r   r   r   test_gumbel  rh  zTestRandomDist.test_gumbelc                 C   r]  r^  )r   r   r   rv  r   r!   r"   r   r   r   test_gumbel_0  rc  zTestRandomDist.test_gumbel_0c                 C   s   t j| j t jjddddd}t ddgddgddgg}t|| t jjdddd	d}t g d
}t|| t jjdddd	d}t g d}t|| t jjdddd	d}t g d}t|| t jjdddd	d}t g d}t|| d S )Nr   r.   ri  r   rd   r  r   r,   r-   )r,   r,   r,   r,   r   rd  )rd  rd  rd  rd  )r   r   r   r   )r   r   rX   hypergeometricr0   r   r   r   r   r   test_hypergeometric  s&   




z"TestRandomDist.test_hypergeometricc                 C   rE  )Nrn  rs  r   rt  g bO?g¸?gpJm	@g{K*t	@g:^w-gY~o?r   r   )r   r   rX   laplacer0   r   r   r   r   r   test_laplace  rh  zTestRandomDist.test_laplacec                 C   r]  r^  )r   r   r   r{  r   r!   r"   r   r   r   test_laplace_0  rc  zTestRandomDist.test_laplace_0c                 C   rE  )Nrn  rs  r   rt  g#K-z?gJ?g92@gر[@g#+^˿g-@r   r   )r   r   rX   logisticr0   r   r   r   r   r   test_logistic  rh  zTestRandomDist.test_logisticc                 C   rE  )Nrn  rs  r   )meansigmare   gɁ0@go,+4FB@g)ʭ6@g5?gnxNnP@g)U@rO  r   )r   r   rX   	lognormalr0   r   r   r   r   r   test_lognormal  rh  zTestRandomDist.test_lognormalc                 C   s*   t tjjddd tttjjdd d S )Nr   )r  r%   ra  )r   r   r   r  r   r!   r"   r   r   r   test_lognormal_0  rc  zTestRandomDist.test_lognormal_0c                 C   sH   t j| j t jjddd}t ddgddgddgg}t|| d S )Ngƀ@?r   )r;   re   r&   r/   ro  r,   )r   r   rX   	logseriesr0   r   r   r   r   r   test_logseries  rr  zTestRandomDist.test_logseriesc                 C   sh   t j| j t jjddgd dd}t g dg dgg dg d	gg d
g dgg}t|| d S )Nr  UUUUUU?r/   r   rd   )r-   r,   r.   r-   r&   r&   )r.   r&   r   r&   r&   r%   )r,   r-   r,   r/   r   r-   )r&   r%   r-   r,   r/   r-   )r-   r-   r&   r.   r&   r,   )r-   r,   r-   r&   r,   r-   )r   r   rX   rD   r0   r   r   r   r   r   test_multinomial  s   
zTestRandomDist.test_multinomialc                 C   sf  t j| j d}ddgddgg}d}t j|||}t ddgddggd	d
gddggddgddggg}t||dd t j||}t ddg}t||dd ddg}ddgddgg}ttt jj|| tt jj||dd t	t
t jj||dd t jddgddggt jd}t }t j|| |t}t|dksJ W d    d S 1 sw   Y  d S )N)rn  r   r%   r   r   g4Vj?gy'@gI1?gSB#@ge<@g 4W(@g6R¿?g9r
v"@gс?g{#@g4xg"f"@r   r   gN}O6?gYMW"@r&   ignore)check_validraiser   r)   )r   r   rX   multivariate_normalr0   r   r   RuntimeWarningr   r   r!   r  r	   r   r   )r   r  covre   r   r   r   r   r   r   r   test_multivariate_normal   sD   

"z'TestRandomDist.test_multivariate_normalc                 C   r   )Nr@   g|Pk?r   )nr;   re   iP  iI  i|  ic  i  i  )r   r   rX   ro   r0   r   r   r   r   r   rp   (  r   z%TestRandomDist.test_negative_binomialc                 C   s   t j| j t jjdddd}t ddgddgdd	gg}t||d
d t jjdddd}t ddgddgddgg}t||d
d t j| j t jjdddd}t ddgddgddgg}t||d
d d S )Nr.   r   )dfnoncre   gG7@g! ܴ*@g1}z9?@g+驸0@g26E_r#@gI!1@ri  r   r8   rA   g?gTD?g?T?g+qnl?g~|D?g밬?r   g{01#@gprs'@g~;$@g"dI@g*@g}',@)r   r   rX   noncentral_chisquarer0   r   r   r   r   r   test_noncentral_chisquare0  s(   


z(TestRandomDist.test_noncentral_chisquarec                 C   P   t j| j t jjddddd}t ddgdd	gd
dgg}t||dd d S )Nr.   r&   r%   r   )dfnumdfdenr  re   g^~?g/+c?g".@g@g7?gE?ri  r   )r   r   rX   noncentral_fr0   r   r   r   r   r   test_noncentral_fE     
z TestRandomDist.test_noncentral_fc                 C   rE  )Nrn  rs  r   rt  g&&n@gOG_@g~w@gtw]տgm&5@g$>@r   r   )r   r   rX   normalr0   r   r   r   r   r   test_normalN  rh  zTestRandomDist.test_normalc                 C   r]  r^  )r   r   r   r  r   r!   r"   r   r   r   test_normal_0V  rc  zTestRandomDist.test_normal_0c                 C   sP   t j| j t jjddd}t ddgddgdd	gg}t jj||d
d d S )Nrn  r   r   re   gWI@gԨy@gy]0Ag1~\Aga@gY
7A   )nulp)r   r   rX   paretor0   testingassert_array_almost_equal_nulpr   r   r   r   test_paretoZ  s   
zTestRandomDist.test_paretoc                 C   sH   t j| j t jjddd}t ddgddgddgg}t|| d S )Nrn  r   )lamre   r   r%   )r   r   rX   poissonr0   r   r   r   r   r   test_poissoni  rr  zTestRandomDist.test_poissonc                 C   s`   t dj}d}ttt jj| ttt jj|gd  ttt jj| ttt jj|gd  d S )Nr   r   r   )r   r{   r}   r   r!   r   r  )r   lambiglamnegr   r   r   test_poisson_exceptionsq  s   z&TestRandomDist.test_poisson_exceptionsc                 C   rN  )Nrn  r   r  g;'?gܴw*?g5?gFG?g D]?g$`?r   r   )r   r   rX   powerr0   r   r   r   r   r   
test_powery  rR  zTestRandomDist.test_powerc                 C   rN  )Nr   r   )r`  re   g"u+@gN$MB*@g7v8B4@g55@ge&@g~ӣZ1@ri  r   )r   r   rX   rayleighr0   r   r   r   r   r   test_rayleigh  rR  zTestRandomDist.test_rayleighc                 C   r]  r^  )r   r   r   r  r   r!   r"   r   r   r   test_rayleigh_0  rc  zTestRandomDist.test_rayleigh_0c                 C   J   t j| j t jjdd}t ddgddgddgg}t||d	d
 d S )Nr   rd   gMoDL?g6([9grF=?gM'	- gVgVA:Qy?r   r   )r   r   rX   standard_cauchyr0   r   r   r   r   r   test_standard_cauchy  r   z#TestRandomDist.test_standard_cauchyc                 C   r  )Nr   rd   g܁?gc!z?g&N"@gNI@gF>?g~ME?r   r   )r   r   rX   standard_exponentialr0   r   r   r   r   r   test_standard_exponential  r   z(TestRandomDist.test_standard_exponentialc                 C   rN  )Nr,   r   )rQ   re   g)@gľ@gd],q@gPk{@g9B#1@gv @ri  r   )r   r   rX   standard_gammar0   r   r   r   r   r   test_standard_gamma  rR  z"TestRandomDist.test_standard_gammac                 C   r]  )Nr   )rQ   ra  )r   r   r   r  r   r!   r"   r   r   r   test_standard_gamma_0  rc  z$TestRandomDist.test_standard_gamma_0c                 C   r  )Nr   rd   r   r   r   r   r   r   r   r   )r   r   rX   rf   r0   r   r   r   r   r   test_standard_normal  r   z#TestRandomDist.test_standard_normalc                 C   rN  )Nr   r   )r  re   g\VH?ghU%gH$M?gLgVqdzǿg㖀?r   r   )r   r   rX   
standard_tr0   r   r   r   r   r   test_standard_t  rR  zTestRandomDist.test_standard_tc                 C   r  )Ng{Gz@g(\u$@gףp=
W4@r   )leftmoderightre   g:}\)@ghرTj(@gǨL30@g6ڜA0@g6sh&@g<,@ri  r   )r   r   rX   
triangularr0   r   r   r   r   r   test_triangular  r  zTestRandomDist.test_triangularc                 C   rE  )NGz?gGz%@r   )lowhighre   g>#H@gu@g#@g}d]#@gN@gw)* @r   r   )r   r   rX   uniformr0   r   r   r   r   r   test_uniform  rh  zTestRandomDist.test_uniformc                 C   s   t dj}t dj}t jj}tt|t j d tt|dt j tt||| tt|t j gdg tt|dgt jg t jjt 	|d|d d d S )NrR   r   r%   g ؅W4vC)r  r  )
r   finfor|   r}   r   r  r   OverflowErrorinf	nextafter)r   fminfmaxfuncr   r   r   test_uniform_range_bounds  s    z(TestRandomDist.test_uniform_range_boundsc                 C   sn   G dd dt j}t d|}ttt jj|| G dd dt j}t d|}ttt jj|dd d S )Nc                   @   s   e Zd Zdd ZdS )zGTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloatc                 S      t r  r    r"   r   r   r   	__float__     zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloat.__float__N)r3   r4   r5   r  r   r   r   r   ThrowingFloat  s    r  g      ?c                   @   s   e Zd Zdd ZeZdS )zITestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingIntegerc                 S   r  r  r  r"   r   r   r   __int__  r  zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingInteger.__int__N)r3   r4   r5   r  	__index__r   r   r   r   ThrowingInteger  s    r  r%   )	r   r9  r0   r   r   r    r   r  ry  )r   r  throwing_floatr  throwing_intr   r   r   !test_scalar_exception_propagation  s   z0TestRandomDist.test_scalar_exception_propagationc                 C   rE  )Nr  p=
ף?r   mukappare   gLZI@g'N"@gkr?gk=m@gډ?g^=\?r   r   )r   r   rX   vonmisesr0   r   r   r   r   r   test_vonmises  rh  zTestRandomDist.test_vonmisesc                 C   s:   t j| j t jjdddd}t jt |  d S )NrG   gg5_PG>i@B r  )r   r   rX   r  r  r   isfiniterJ   )r   rr   r   r   test_vonmises_small  s   z"TestRandomDist.test_vonmises_smallc                 C   rE  )Nr  r  r   )r  r`  re   gZ@g-g@g8
m?gVP"?g`V?gx^&3?ri  r   )r   r   rX   waldr0   r   r   r   r   r   	test_wald   rh  zTestRandomDist.test_waldc                 C   rN  )Nr  r   r  g@6?g]A?g(1ڥR?gU?g2_u?g^}-Q?r   r   )r   r   rX   weibullr0   r   r   r   r   r   test_weibull  rR  zTestRandomDist.test_weibullc                 C   s@   t j| j tt jjdddt d ttt jjdd d S )Nr   rd  r  ra  )r   )r   r   rX   r   r  r9   r   r!   r"   r   r   r   test_weibull_0  s   zTestRandomDist.test_weibull_0c                 C   rm  )	Nr  r   r  B      r%   r,   rO  )r   r   rX   zipfr0   r   r   r   r   r   	test_zipf  rr  zTestRandomDist.test_zipfN)Sr3   r4   r5   r\   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r&  rq   markparametrizer   r   r   r?  r.  r>  rA  rD  rG  rM  rQ  rX  rY  rZ  r\  rb  rg  rk  rl  rq  rw  rx  rz  r|  r}  r  r  r  r  r  r  rp   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r   r   '  s    .
	(		r   c                   @   s  e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Z d=d> Z!d?d@ Z"dAS )BTestBroadcastc                 C   r   )Ni[r   r"   r   r   r   r\   !  r   zTestBroadcast.setup_methodc                 C   s   t j| j d S r  )r   r   rX   r"   r   r   r   setSeed$  s   zTestBroadcast.setSeedc                 C   sn   dg}dg}t jj}t g d}|   ||d |}t||dd |   |||d }t||dd d S )Nr   r%   gl?g_x?g=*BN?r,   ri  r   )r   r   r  r0   r  r   )r   r  r  r  r   r   r   r   r   r  *  s   zTestBroadcast.test_uniformc                 C      dg}dg}dg}t jj}t g d}|   ||d |}t||dd tt||d | |   |||d }t||dd tt|||d  d S )Nr   r%   r   )g-r@gYl@g-`w?r,   ri  r   )r   r   r  r0   r  r   r   r!   )r   ru  r`  	bad_scaler  r   r   r   r   r   r  :     zTestBroadcast.test_normalc                 C      dg}dg}dg}dg}t jj}t g d}|   ||d |}t||dd tt||d | tt||d | |   |||d }t||dd tt|||d  tt|||d  d S )	Nr%   r&   r   r'   )gnQVf?gVKB?gv`k?r,   ri  r   )r   r   rF  r0   r  r   r   r!   )r   r   r   bad_abad_brF  r   r   r   r   r   rG  M      zTestBroadcast.test_betac                 C   X   dg}dg}t jj}t g d}|   ||d }t||dd tt||d  d S Nr%   r   )g.UgZ?gi Prq?gEK?r,   ri  r   )r   r   r[  r0   r  r   r   r!   )r   r`  r  r[  r   r   r   r   r   r\  c     zTestBroadcast.test_exponentialc                 C   r  r  )r   r   r  r0   r  r   r   r!   )r   rQ   	bad_shape	std_gammar   r   r   r   r   r  p  r  z!TestBroadcast.test_standard_gammac                 C   r  )	Nr%   r&   r   r'   )g.UgZ?gi Prq?gEK?r,   ri  r   )r   r   rj  r0   r  r   r   r!   )r   rQ   r`  r  r  rj  r   r   r   r   r   rk  }  r  zTestBroadcast.test_gammac                 C   r  )	Nr%   r&   r   r'   )gbyʜ?go?gT7@r,   ri  r   )r   r   rf  r0   r  r   r   r!   )r   r  r  	bad_dfnum	bad_dfdenrf  r   r   r   r   r   rg    r  zTestBroadcast.test_fc           
      C   sd  dg}dg}dg}dg}dg}dg}t jj}t g d}|   ||d ||}	t|	|dd	 tt||d || tt||d || tt||d || |   |||d |}	t|	|dd	 tt|||d | tt|||d | tt|||d | |   ||||d }	t|	|dd	 tt||||d  tt||||d  tt||||d  d S )
Nr&   r,   r-   r   r   r'   )gr^G"@g/*@gц!@ri  r   )r   r   r  r0   r  r   r   r!   )
r   r  r  r  r  r  bad_noncnonc_fr   r   r   r   r   r    s4   zTestBroadcast.test_noncentral_fc                 C   s<   |    tddg}tjjddddd}t||dd d S )Ngaz@gn4M;%?r   r&   rd   ri  r   )r  r   r0   r   r  r   )r   r   r   r   r   r   test_noncentral_f_small_df  s   z(TestBroadcast.test_noncentral_f_small_dfc                 C   r  )Nr%   r   )g~}N??g$F?g'rS?r,   ri  r   )r   r   rP  r0   r  r   r   r!   )r   r  bad_dfrP  r   r   r   r   r   rQ    r  zTestBroadcast.test_chisquarec                 C   r  )	Nr%   r&   r   r'   )g w "@g2WR@gRY@r,   ri  r   )r   r   r  r0   r  r   r   r!   )r   r  r  r   r  nonc_chir   r   r   r   r   r    r  z'TestBroadcast.test_noncentral_chisquarec                 C   r  )Nr%   r   )gT@g~Fl@gƚtp?r,   ri  r   )r   r   r  r0   r  r   r   r!   )r   r  r   tr   r   r   r   r   r    r  zTestBroadcast.test_standard_tc                 C   r  )Nr&   r%   r   )gW!@gOBg}?r,   ri  r   )r   r   r  r0   r  r   r   r!   )r   r  r  	bad_kappar  r   r   r   r   r   r     r  zTestBroadcast.test_vonmisesc                 C   r  )Nr%   r   )g&8??geFX?gՋː?r,   ri  r   )r   r   r  r0   r  r   r   r!   )r   r   r  r  r   r   r   r   r   r    r  zTestBroadcast.test_paretoc                 C   r  r  )r   r   r  r0   r  r   r   r!   )r   r   r  r  r   r   r   r   r   r     r  zTestBroadcast.test_weibullc                 C   r  )Nr%   r   r  r,   ri  r   )r   r   r  r0   r  r   r   r!   )r   r   r  r  r   r   r   r   r   r  -  r  zTestBroadcast.test_powerc                 C   r  )Nr   r%   r   )g:BKc?g3k?g~q?r,   ri  r   )r   r   r{  r0   r  r   r   r!   )r   ru  r`  r  r{  r   r   r   r   r   r|  :  r  zTestBroadcast.test_laplacec                 C   r  )Nr   r%   r   )g'Zy?gdSO=?g3L1?r,   ri  r   )r   r   rv  r0   r  r   r   r!   )r   ru  r`  r  rv  r   r   r   r   r   rw  M  r  zTestBroadcast.test_gumbelc                 C   r  )Nr   r%   r   )gy?gJR?g
~&?r,   ri  r   )r   r   r~  r0   r  r   r   r!   )r   ru  r`  r  r~  r   r   r   r   r   r  `  r  zTestBroadcast.test_logisticc                 C   r  )Nr   r%   r   )gH"@gܮ @gvv	:@r,   ri  r   )r   r   r  r0   r  r   r   r!   )r   r  r  	bad_sigmar  r   r   r   r   r   r  s  r  zTestBroadcast.test_lognormalc                 C   r  )Nr%   r   )gݱlo?g/ӂ?gz~R?r,   ri  r   )r   r   r  r0   r  r   r   r!   )r   r`  r  r  r   r   r   r   r   r    r  zTestBroadcast.test_rayleighc                 C   s   dg}dg}dg}dg}t jj}t g d}|   ||d |}t||dd tt||d | tt||d | |   |||d }t||dd tt|||d  tt|||d  tt|d	d tt|dd	 d S )
Nr8   r%   r   r'   )g@m e?g`I߿?g|2?r,   ri  r   rG   )r   r   r  r0   r  r   r   r!   )r   r  r`  bad_meanr  r  r   r   r   r   r   r    s$   zTestBroadcast.test_waldc                 C   sj  dg}dg}dg}dg}dg}|d \}}t jj}t g d}	|   ||d ||}
t|
|	dd tt||d || tt||d || tt||d || |   |||d |}
t|
|	dd tt|||d | tt|||d | tt|||d | |   ||||d }
t|
|	dd tt||||d  tt||||d  tt||||d  d S )Nr%   r,   r&   r-   )g,P;bD @g%G @g,~S @ri  r   )r   r   r  r0   r  r   r   r!   )r   r  r  r  bad_left_onebad_mode_onebad_left_twobad_mode_twor  r   r   r   r   r   r    s@   
zTestBroadcast.test_triangularc           	      C      dg}dg}dg}dg}dg}t jj}t g d}|   ||d |}t|| tt||d | tt||d | tt||d | |   |||d }t|| tt|||d  tt|||d  tt|||d  d S )Nr%   r8   r         ?r%   r%   r%   r,   )r   r   r:   r0   r  r   r   r!   )	r   r  r;   bad_n	bad_p_one	bad_p_twobinomr   r   r   r   r   rM    &   

zTestBroadcast.test_binomialc           	      C   r
  )Nr%   r8   r   r  )r%   r   r%   r,   )r   r   ro   r0   r  r   r   r!   )	r   r  r;   r  r  r  	neg_binomr   r   r   r   r   rp     r  z$TestBroadcast.test_negative_binomialc                 C   sz   t j j}dg}dg}|d g}t jj}t g d}|   ||d }t|| tt	||d  tt	||d  d S )Nr%   r   r&   )r%   r%   r   r,   )
r   r   r   _poisson_lam_maxr  r0   r  r   r   r!   )r   max_lamr  bad_lam_onebad_lam_twor  r   r   r   r   r   r    s   

zTestBroadcast.test_poissonc                 C   s   dg}dg}t jj}t g d}|   ||d }t|| tt||d  t jdd tt|t j	 tt|ddt j	g W d    d S 1 sKw   Y  d S )Nr&   r   )r&   r&   r%   r,   r  )invalid)
r   r   r  r0   r  r   r   r!   errstater=   )r   r   r  r  r   r   r   r   r   r    s   
"zTestBroadcast.test_zipfc                 C   j   dg}dg}dg}t jj}t g d}|   ||d }t|| tt||d  tt||d  d S )Nr8   r   r  rN   r,   )r   r   rp  r0   r  r   r   r!   )r   r;   r  r  geomr   r   r   r   r   rq       
zTestBroadcast.test_geometricc                 C   s  dg}dg}dg}dg}dg}dg}dg}t jj}t g d}	|   ||d ||}
t|
|	 tt||d || tt||d || tt||d || tt||d || |   |||d |}
t|
|	 tt|||d | tt|||d | tt|||d | tt|||d | |   ||||d }
t|
|	 tt||||d  tt||||d  tt||||d  tt||||d  d S )	Nr%   r&   r   r'   r   r-   r  r,   )r   r   ry  r0   r  r   r   r!   )r   ngoodnbadnsample	bad_ngoodbad_nbadbad_nsample_onebad_nsample_two	hypergeomr   r   r   r   r   rz  '  s<   


z!TestBroadcast.test_hypergeometricc                 C   r  )Nr8   r&   r   r  r,   )r   r   r  r0   r  r   r   r!   )r   r;   r  r  r  r   r   r   r   r   r  J  r  zTestBroadcast.test_logseriesN)#r3   r4   r5   r\   r  r  r  rG  r\  r  rk  rg  r  r  rQ  r  r  r  r  r  r  r|  rw  r  r  r  r  r  rM  rp   r  r  rq  rz  r  r   r   r   r   r    sB    !$#r  zcan't start thread)reasonc                   @   r   )
TestThreadc                 C   s   t d| _d S )Nr-   )r   seedsr"   r   r   r   r\   [  s   zTestThread.setup_methodc                    s   ddl m  tt| jf| }tt| jf| } fddt| j|D }dd |D  dd |D  t| j|D ]\}}tj|| q>t	 j
jdkr`tjdkr`t|| d S t|| d S )	Nr   )Threadc                    s(   g | ]\}} t j||fd qS ))targetargs)r   r   r   )r  r   or'  functionr   r   r  e  s    z-TestThread.check_function.<locals>.<listcomp>c                 S      g | ]}|  qS r   )startr  rK   r   r   r   r  g  r  c                 S   r-  r   )joinr/  r   r   r   r  h  r  r-   win32)	threadingr'  r   r   r   r&  zipr   r   intpr*   itemsizer   platformr   r   )r   r,  szout1out2r  r   r*  r   r+  r   check_function^  s   
zTestThread.check_functionc                 C      dd }| j |dd d S )Nc                 S   s   | j dd|d< d S )N'  rd   .)r  r[   outr   r   r   
gen_randomu  rF   z*TestThread.test_normal.<locals>.gen_random)r<  r7  r:  r   r?  r   r   r   r  t     zTestThread.test_normalc                 C   r;  )Nc                 S   s   | j tdd|d< d S )Nr@   r   r_  .)r[  r   onesr=  r   r   r   r?  z  s   z'TestThread.test_exp.<locals>.gen_randomrD  r@  rA  rB  r   r   r   test_expy  rC  zTestThread.test_expc                 C   r;  )Nc                 S   s   | j ddgd dd|d< d S )Nr   r  r/   r<  rd   .)rD   r=  r   r   r   r?    s   z/TestThread.test_multinomial.<locals>.gen_random)r<  r/   r@  rA  rB  r   r   r   r  ~  rC  zTestThread.test_multinomialN)r3   r4   r5   r\   r:  r  rF  r  r   r   r   r   r%  X  s    r%  c                   @   r   )TestSingleEltArrayInputc                 C   s4   t dg| _t dg| _t dg| _d| _d S )Nr&   r,   r-   )r%   )r   r0   argOneargTwoargThreetgtShaper"   r   r   r   r\     s   
z$TestSingleEltArrayInput.setup_methodc                 C   s   t jjt jjt jjt jjt jjt jjt jjt jj	t jj
t jjt jjt jjf}t jjt jjf}|D ]}||v r?|t dg}n|| j}t|j| j q0d S rn   )r   r   r[  r  rP  r  r  r  r  r  r  r  rp  r  r0   rH  r   rQ   rK  )r   funcs	probfuncsr  r>  r   r   r   test_one_arg_funcs  s   
z*TestSingleEltArrayInput.test_one_arg_funcsc                 C   s   t jjt jjt jjt jjt jjt jjt jjt jj	t jj
t jjt jjt jjt jjt jjf}t jjt jjf}|D ];}||v rCt dg}n| j}|| j|}t|j| j || jd |}t|j| j || j|d }t|j| j q6d S )Nr8   r   )r   r   r  r  rF  rj  rf  r  r  r{  rv  r~  r  r  r:   ro   r0   rI  rH  r   rQ   rK  )r   rL  rM  r  rI  r>  r   r   r   test_two_arg_funcs  s(   z*TestSingleEltArrayInput.test_two_arg_funcsc              	   C   s   t tjtjtjtjtjtjtjtj	g	}tj
j}tdg}tdg}|D ]0}||||d}t|j| j ||d ||d}t|j| j |||d |d}t|j| j q%d S )Nr%   r   r)   )rz   r   r   r   r   r   r   rP   r1   r   r   r   r0   r   rQ   rK  )r   ry   r  r  r  r~   r>  r   r   r   r     s   z$TestSingleEltArrayInput.test_randintc                 C   s   t jjt jjt jjg}|D ]6}|| j| j| j}t|j	| j
 || jd | j| j}t|j	| j
 || j| jd | j}t|j	| j
 qd S )Nr   )r   r   r  r  ry  rH  rI  rJ  r   rQ   rK  )r   rL  r  r>  r   r   r   test_three_arg_funcs  s   z,TestSingleEltArrayInput.test_three_arg_funcsN)r3   r4   r5   r\   rN  rO  r   rP  r   r   r   r   rG    s    rG  )r   rq   numpyr   numpy.testingr   r   r   r   r   r   r   r	   r
   r   r   r   r6   r?   rV   ru   r   r  r  skipifr%  rG  r   r   r   r   <module>   s4    ,'"5      |    >,