HEX
Server: Apache
System: Linux pdx1-shared-a1-38 6.6.104-grsec-jammy+ #3 SMP Tue Sep 16 00:28:11 UTC 2025 x86_64
User: mmickelson (3396398)
PHP: 8.1.31
Disabled: NONE
Upload Files
File: //lib/python3/dist-packages/numpy/random/tests/__pycache__/test_generator_mt19937.cpython-310.pyc
o

6��a���@s,ddlZddlZddlZddlZddlmZddlmZm	Z	m
Z
mZmZm
Z
mZmZmZddlmZmZmZmZee��Zddddd�d	d
d�d�dd
ddd�ddd�d�gd�dddd�ddd�d�gZejdddgd�dd��ZGdd�d�ZGd d!�d!�ZGd"d#�d#�ZGd$d%�d%�ZGd&d'�d'�ZGd(d)�d)�ZGd*d+�d+�Z Gd,d-�d-�Z!Gd.d/�d/�Z"Gd0d1�d1�Z#ej$�%d2e�d3d4��Z&d5d6�Z'd7d8�Z(d9d:�Z)ej$�%d;d<d<gg�ej$�%dddg�d=d>���Z*ej$�%d?d@dAg�dBdC��Z+ej$�%d?d@dAg�ej$�%dDdEdFg�ej$�%dGej,ejg�dHdI����Z-dS)J�N)�LinAlgError)	�assert_�
assert_raises�assert_equal�assert_allclose�assert_warns�assert_no_warnings�assert_array_equal�assert_array_almost_equal�suppress_warnings)�	Generator�MT19937�SeedSequence�RandomState�
�@bb1636883c2707b51c5b7fc26c6927af4430f2e0785a8c7bc886337f919f9edf�	)�
key_sha256�pos�@ff682ac12bb140f2d72fba8d3506cf4e46817a0db27aae1683867629031d8d55iV)�seed�steps�initial�jumpedi$<�i8�@16b791a1e04886ccbbb4d448d6ff791267dc458ae599475d08d5cced29d11614i7�@a0110a2cf23b56be0feaed8f787a7fc84bef0cb5623003d75b26bdfa1c18002ci)i|�2i�Em:iS43i5i��@d306cf01314d51bd37892d874308200951a35265ede54d200f1e065004c3e9eai��@0e00ab449f01a5195a83b4aee0dfbc2ce8d46466a640b92e33977d2e42f777f8i��moduleTF)�scope�paramscCs|jS�N)�param)�request�r$�K/usr/lib/python3/dist-packages/numpy/random/tests/test_generator_mt19937.py�endpoint&sr&c@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�TestSeedcCs<ttd��}t|�d�d�ttd��}t|�d�d�dS)Nr��������D)rr
r�integers��self�sr$r$r%�test_scalar,szTestSeed.test_scalarcCs�tttd���}t|�d�d�ttt�d���}t|�d�d�ttdg��}t|�d�d�ttdg��}t|�d�d�dS)Nrr(i�rr)r*r+)rr
�rangerr,�np�aranger-r$r$r%�
test_array2szTestSeed.test_arraycCs ttd��}t|�d�d�dS)Nr�i��z)r
rr�
random_rawr-r$r$r%�test_seedsequence<szTestSeed.test_seedsequencecCstttd�tttd�dS)N������r�	TypeErrorr
�
ValueError�r.r$r$r%�test_invalid_scalar@szTestSeed.test_invalid_scalarcCs0tttdg�tttdg�tttgd��dS)Nr8r9)r5����r:r=r$r$r%�test_invalid_arrayEszTestSeed.test_invalid_arraycCstttt�dSr!)rr<rr
r=r$r$r%�test_noninstantized_bitgenKsz#TestSeed.test_noninstantized_bitgenN)	�__name__�
__module__�__qualname__r0r4r7r>rArBr$r$r$r%r'+s
r'c@seZdZdd�Zdd�ZdS)�TestBinomialcCsBtjddd�}dD]}tt�d|�dk�tt�||�|�q	dS)N��int��dtype)r��?r5r)r2�zerosr�random�binomialr	)r.rL�pr$r$r%�test_n_zeroPs
�zTestBinomial.test_n_zerocCstttjdtj�dS)Nr5)rr<rMrNr2�nanr=r$r$r%�
test_p_is_nanYszTestBinomial.test_p_is_nanN)rCrDrErPrRr$r$r$r%rFOs	rFc@sTeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)�TestMultinomialcCst�dddg�dS)N�d皙�����?皙�����?�rM�multinomialr=r$r$r%�
test_basic_�zTestMultinomial.test_basiccCst�dgd��dS)NrT)rUrV�r[r[rWr=r$r$r%�test_zero_probabilitybrZz%TestMultinomial.test_zero_probabilitycCsZtdt�dd�kodkn�t�ddd�}tt�d|k��tt�|dk��dS)N���r9�)rrMr,r2�all�r.�xr$r$r%�test_int_negative_intervales$z*TestMultinomial.test_int_negative_intervalcCs�ddg}tt�d|t�d��jd�tt�d|t�d��jd�tt�d|t�d��jd�tt�d|ddg�jd�tt�d|d�jd�tt�d|t�d��jd�tttjd|t	d��dS)NrKr5�r5rGrG�rGrGrG�rGrG)
rrMrXr2�uint32�shape�arrayrr;�float�r.rOr$r$r%�	test_sizeks��zTestMultinomial.test_sizecCs,tttjdddg�tttjdddg�dS)NrT皙�����?rU皙��������������?�rr<rMrXr=r$r$r%�test_invalid_probysz!TestMultinomial.test_invalid_probcCs2tttjdddg�tttjdgdddg�dS)Nr9rVrUrror=r$r$r%�test_invalid_n}szTestMultinomial.test_invalid_ncCsxt�d�}|t�|ddd��}|ddd�}ttd��}|jd|d�}ttd��}|jdt�|�d�}t||�dS)Ng.@r5��۠iUrT)�pvals)r2r3�sumrr
rX�ascontiguousarrayr	)r.rOrtrM�
non_contig�contigr$r$r%�test_p_non_contiguous�s
z%TestMultinomial.test_p_non_contiguousc	Csxtttjdddgg�tttjddgdgg�tttjddgdggdgdggg�tttjdt�ddgddgg��dS)Nrrr5)rr<rMrXr2rhr=r$r$r%�test_multidimensional_pvals�s$&z+TestMultinomial.test_multidimensional_pvalscCsptjgd�tjd�}||��}ttd��}d}tjt|d��|�	d|�Wd�dS1s1wYdS)N)
�G�z��?r{��&�.>r|r|r|r|r|r|r|rIrsz-[\w\s]*pvals array is cast to 64-bit floating��matchr5)
r2rh�float32rurr
�pytest�raisesr<rX)r.rartrMr~r$r$r%�test_multinomial_pvals_float32�s
�"�z.TestMultinomial.test_multinomial_pvals_float32N)rCrDrErYr\rbrkrprqryrzr�r$r$r$r%rS^s
rSc@s�eZdZdd�Zdd�Zej�dddg�dd	��Zej�d
gd��ej�dddg�ej�dgd
��dd����Z	dd�Z
dd�Zdd�ZdS)�TestMultivariateHypergeometriccC�
d|_dS)Ni�_��rr=r$r$r%�setup��
z$TestMultivariateHypergeometric.setupcCs�tttjdd�tttjgd�d�tttjgd�d�tttjgd�d�tttjgd�tttjdd	gd
dd�t�tj�}|j}||jj	}tttj|dd	gd
dd
�dS)Nr�)rGrrr�r9)r9rGrrrGr5i�ɚ;�er^�	marginalsrT�count)
rr<rM�multivariate_hypergeometricr2�iinfo�int64�maxrJ�itemsize)r.�
int64_info�	max_int64�max_int64_indexr$r$r%�test_argument_validation�s0�������z7TestMultivariateHypergeometric.test_argument_validation�methodr�r�cCs
tt|j��}|jgd�d|d�}t|gd��|jgd|d�}t|g�|jgdd|d�}t|tjdtjd��|jgd�d|d�}t|gd��|jgd	�d
|d�}t|gd��gd�}|j|t|�|d�}t||�|jgd
�dd
|d�}t|gd
�gd
�dS)N)rrrr�r�r5��sizer�)r5rrI�r5rGrr)rrrrr)rrrr)r5r5rr5r5�rrr�r^�)	rr
rr�r	r2�emptyr�ru)r.r�rMra�colorsr$r$r%�test_edge_cases�s(
�
�z.TestMultivariateHypergeometric.test_edge_cases�nsample)���-�7r�)r^�rGrri�IcCs�tt|j��}t�gd��}|j||||d�}t|t�r#|f|j}n||j}t	|j|�t
|dk���t
||k���t|j
dd�tj||td��t|t�rj|dkrlt|jdd�|||�
�dd	d
�dSdSdS)N)rr^�r�r�rr9��axis)�
fill_valuerJi�����MbP?g{�G�zt?)�rtol�atol)rr
rr2rhr��
isinstancerHrgrrr_r	ru�fullr�mean)r.r�r�r�rMr��sample�expected_shaper$r$r%�test_typical_cases�s(
�

�
��z1TestMultivariateHypergeometric.test_typical_casescCsZtt|j��}|jgd�dddd�}t�gd�gd�gd�gd�gd�g�}t||�dS)Nr�r^r�r�)rGr5rG�r5r5rr�rGrrr�rr
rr�r2rhr	�r.rMr��expectedr$r$r%�test_repeatability1�s�
�z2TestMultivariateHypergeometric.test_repeatability1cCsZtt|j��}|jgd�dddd�}t�gd�gd�gd�gd�gd	�g�}t||�dS)
N�r���2r�r^r�r�)r��)��
r�)r��)r��r�r�r�r$r$r%�test_repeatability2��
�z2TestMultivariateHypergeometric.test_repeatability2cCsZtt|j��}|jgd�dddd�}t�gd�gd�gd�gd�gd	�g�}t||�dS)
Nr�r�r^r�r�)rGrrr�)r^rrr�)rGr^r^)r5r^�r�r�r$r$r%�test_repeatability3r�z2TestMultivariateHypergeometric.test_repeatability3N)
rCrDrEr�r�r��mark�parametrizer�r�r�r�r�r$r$r$r%r��s!
"r�c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�TestSetStatecCsTd|_tt|j��|_|jj|_|jj|_|jd|jdd|jddf|_dS)N���I�
bit_generator�state�keyr)rrr
�rgr�r��legacy_stater=r$r$r%r�!s


�zTestSetState.setupcCs<|jjdd�}|j|j_|jjdd�}tt�||k��dS�Nrr�r�)r��standard_normalr�r�rr2r_)r.�old�newr$r$r%�test_gaussian_reset*s
z TestSetState.test_gaussian_resetcCsL|j��|jj}|jjdd�}||j_|jjdd�}tt�||k��dSr�)r�r�r�r�rr2r_)r.r�r�r�r$r$r%� test_gaussian_reset_in_media_res1s
z-TestSetState.test_gaussian_reset_in_media_rescCs|j�dd�dS�NrK)r��negative_binomialr=r$r$r%�test_negative_binomial<sz#TestSetState.test_negative_binomialN)rCrDrEr�r�r�r�r$r$r$r%r� s
	r�c@s\eZdZejZeejej	ej
ejejej
ejejg	Zdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Zdd�Zdd�Zdd�Zdd�Zej�dde�gd��fde�gd��fde�gd��fg�dd��Z d d!�Z!d"d#�Z"d$d%�Z#d&d'�Z$d(d)�Z%d*d+�Z&d,d-�Z'ejj(ej�d.d/d0ejd1fd/d2ej	d3fd4d5ej
d6fd7d8ejd9fg�d:d;���Z)d<S)=�TestIntegerscCstt|jd|td�dS�Nr5�r&rJ)rr;�rfuncri)r.r&r$r$r%�test_unsupported_typeIsz"TestIntegers.test_unsupported_typec	Cs |jD]�}|turdnt�|�j}|turdnt�|�jd}|r%|dn|}tt|j|d|||d�tt|j||d||d�tt|j||||d�tt|jdd||d�tt|j|dg|||d�tt|j|g|dg||d�tt|j|g|g||d�tt|jddg||d�qdS�NrrGr5r��	�itype�boolr2r��minr�rr<r��r.r&�dt�lbnd�ubndr$r$r%�test_bounds_checkingLs:
���������z!TestIntegers.test_bounds_checkingc	Cs�|jD]_}|turdnt�|�j}|turdnt�|�j|}tt|j|dgd|gd||d�tt|j|gd|dgd||d�tt|j||gd||d�tt|jdgdd||d�qdSr�r�r�r$r$r%�test_bounds_checking_arraycs 
�����z'TestIntegers.test_bounds_checking_arrayc	Cs.|jD]�}|turdnt�|�j}|turdnt�|�jd}|r%|dn|}|}|d}t|j|||d||d�|�t|j|g||d||d�|�|}t|j|||d||d�|�t|j|||gd||d�|�||d}t|j|||d||d�|�t|j|g||gd||d�|�qdS)NrrGr5r(�r�r&rJ�r�r�r2r�r�r�rr�)r.r&r�r�r��is_open�tgtr$r$r%�test_rng_zero_and_extremesqsN
�������������z'TestIntegers.test_rng_zero_and_extremescCs�d}|jD]�}|tur
dnt�|�j}|turdnt�|�jd}|r'|dn|}|d}t|j|g|dg||d�|�t|j|g||dg||d�|�t|j|g||dg|||d�|�|}t|j|g|dg||d�|�t|j|g||dg||d�|�t|j|g||dg|||d�|�||d}t|j|g|dg||d�|�t|j|g||dg||d�|�t|j|g||dg|||d�|�qdS)Nr(rrGr5�r�rJrIr�)r.r&r�r�r�r�r�r$r$r%� test_rng_zero_and_extremes_array�sl
�������������������z-TestIntegers.test_rng_zero_and_extremes_arraycCs�|jD]C}|turdnt�|�j}|turdnt�|�jd}|r%|dn|}z|j||||d�WqtyF}ztdt	|���d}~wwdS�NrrGr5r�zMNo error should have been raised, but one was with the following message:

%s�
r�r�r2r�r�r�r��	Exception�AssertionError�str�r.r&r�r�r��er$r$r%�test_full_range�s
����zTestIntegers.test_full_rangecCs�|jD]G}|turdnt�|�j}|turdnt�|�jd}|r%|dn|}z|j|gd|g||d�WqtyJ}ztdt	|���d}~wwdSr�r�r�r$r$r%�test_full_range_array�s
����z"TestIntegers.test_full_range_arrayc	Cs�tt��}|jdd�D]#}dD]}|jd||d||d�}t|��|k�t|��dk�qq|jdd|d|td�}t|��dk�t|��dk�dS)Nr5)r�r��rGir�r)rr
r�r�rr�r�r�)r.r&rMr�r��valsr$r$r%�test_in_bounds_fuzz�s
���z TestIntegers.test_in_bounds_fuzzc
Cs�|jD]h}|turdnt�|�j}|turdnt�|�jd}|r%|dn|}d}ttd��}|j|||||d�}ttd��}|j|g|g|||d�}ttd��}|j|g||g||||d�}	t	||�t	||	�qdS)NrrGr5r(��r�)
r�r�r2r�r�r�rr
r,r	)
r.r&r�r�r�r�rM�scalar�scalar_arrayrhr$r$r%�test_scalar_array_equiv�s,
����
�z$TestIntegers.test_scalar_array_equivc
Cs�dddddddddd�	}|jdd�D];}ttd��}tjd	kr-|jd
d|d||d
�}n|jd
d|d||d
���}t�|��	�}t
|t�|�j
|k�qttd��}|jd
d|d|td
��tj�}t�|��	�}t
|t�t�j
|k�dS)N�@053594a9b82d656f967c54869bc6970aa0358cf94ad469c81478459c6a90eee3�@54de9072b6ee9ff7f20b58329556a46a447a8a29d67db51201bf88baa6e4e5d4�@d3a0d5efb04542b25ac712e50d21f39ac30f312a5052e9bbb1ad3baa791ac84b�@14e224389ac4580bfbdccb5697d6190b496f91227cf67df60989de3d546389b1�@0e203226ff3fbbd1580f15da4621e5f7164d0d8d6b51696dd42d004ece2cbec1)	r��int16�int32r��int8�uint16rf�uint64�uint8r5r��littlerr�r(r�rG)r�rr
�sys�	byteorderr,�byteswap�hashlib�sha256�	hexdigestrr2rJ�namer��viewr)r.r&r�r�rM�val�resr$r$r%�test_repeatability�s>�

�����zTestIntegers.test_repeatabilitycCs�|jD]k}|ttjfvrdnt�|�j}|ttjfvrdnt�|�jd}|r+|dn|}ttd��}|j	||d||d�}ttd��}|j	|gd|||d�}t
||�ttd��}|j	|gd|gd||d�}t
||�qdS)NrrGr5r�r(r�r�)r�r�r2�bool_r�r�r�rr
r,r	)r.r&r�r�r�rMr�val_bcr$r$r%�test_repeatability_broadcastings&
"��
��z,TestIntegers.test_repeatability_broadcastingzbound, expectedr*)iu�i�,YQi�Xgi$#�Pl�bAi{��El/Y�ir@)�u�i�,YQ��Xgi%#�Pl�bAi|��El0Y�i�)rrl�bAl1Y�ii�{,mi��uHl�HMcCsJdt|�fD]}ttd��}|j||d�}t||dur|n|d�qdS)Nr�r�r)�lenrr
r,r)r.�boundr�r�rMrar$r$r%�!test_repeatability_32bit_boundary's

�z.TestIntegers.test_repeatability_32bit_boundaryc
Cs�t�gd�gd�gd�ggd�gd�gd�ggd�gd�gd	�ggd
�gd�gd�ggd
�gd�gd�gg�}dD]%}ttd��}|jdgdgdgggd�|d�}t||durY|n|d�q9dS)N)i�
�`l�Y�/i�0�b)i)H{Ti�P-iT��q)l��Ci��Z'l!�g)l�k40ln2cl�DBJ)i�|�(iy+l�_&A)ip@�GiG��^lJ|xK)l�
flDmvl�E"g)i��>{lwT2Li�JQ)iQ�//it�Lol�k�)i\�si���Ji���)i��=l}DlE9l)l
+xi#J�lb�)i��0i7��Olrn)ix��ii���Ai.��t)lq/�qi;-�/i���)N)r^rrrri90r9rr5)r*r@rr�)r2rhrr
r,r	)r.�desiredr�rMrar$r$r%�.test_repeatability_32bit_boundary_broadcasting6s:
��������z;TestIntegers.test_repeatability_32bit_boundary_broadcastingc
Cs2tjdddfdddftjdi}|D]�}||D]}}|\}}||}t�|gdg�}t�|gd�}tttj||||d	�tttj||||d	�tttj||||d	�tttj||||d	�tj|gdgtd
�}	tj|gdtd
�}
tttj|	|||d	�tttj||
||d	�tttj|	|
||d	�qqdS)NrrG�A)r9��rr�rr))rl)l����r#r$r%)���r&rr�rI)	r2r	r�rhrr<rMr,�object)r.r&�configsrJ�config�low�high�low_a�high_a�low_o�high_or$r$r%�&test_int64_uint64_broadcast_exceptionsMsD����������z3TestIntegers.test_int64_uint64_broadcast_exceptionscCsdtj}t�tj�j}t�t�tj�j�}t�t�tj�jd|�}tj||||d�}t||�dSr�)r2r�r�r�r	rMr,r)r.r&r�r�r�r��actualr$r$r%�test_int64_uint64_corner_caseis
z*TestIntegers.test_int64_uint64_corner_casecCs
|jD]<}|turdnt�|�j}|turdnt�|�jd}|r%|dn|}|tur.tjn|}|j||||d�}t|j	|�qtt
tjjfD];}|turOdnt�|�j}|tur[dnt�|�jd}|ri|dn|}|j||||d�}t
|d�r{J�tt|�|�qGdS)NrrGr5r�rJ)r�r�r2r�r�r�rr�rrJrH�compat�long�hasattr�type�r.r&r�r�r�r�r$r$r%�test_respect_dtype_singleton�s
�z)TestIntegers.test_respect_dtype_singletoncCs�|jD]S}|turdnt�|�j}|turdnt�|�jd}|r%|dn|}|tur.tjn|}|j|g|g||d�}t|j	|�|j|gd|gd||d�}t|j	|�qdSr�)
r�r�r2r�r�r�rr�rrJr7r$r$r%�test_respect_dtype_array�s
��z%TestIntegers.test_respect_dtype_arraycCs�|jD]M}|jddd||d�}|jdksJ�|j|ksJ�|jddd||d�jdks,J�ttjdddd�jd�ttjdddd�jd�ttjdddd�jd�qdS)Nr�rrrr�r�����rr�r)r�r�rgrJrrMr,)r.r&r�r�r$r$r%�test_zero_size�s
����zTestIntegers.test_zero_sizecCsTtjdkrdnd}t�t��tjddd|d�Wd�dS1s#wYdS)N�bigz<i4z>i4r��rr�)rr
r�r�r<rMr,)r.�other_byteord_dtr$r$r%�test_error_byteorder�s"�z!TestIntegers.test_error_byteorderzsample_size,high,dtype,chi2maxi@KLr^g@_@r�g�b@i���i�	gȩ@i���gd�@c
CsNtj|||d�}tj|dd�\}}||}||d|��}	|	|ks%J�dS)Nr�T)�
return_countsrG)rMr,r2�uniqueru)
r.�sample_sizer+rJ�chi2max�samples�values�countsr��chi2r$r$r%�$test_integers_small_dtype_chisquared�s

z1TestIntegers.test_integers_small_dtype_chisquaredN)*rCrDrErMr,r�r�r2rr
rrrrfr�r	r�r�r�r�r�r�r�r�r�r�rrr�r�r�rhrr!r0r2r8r9r=rA�slowrKr$r$r$r%r�BsP�#��
	
��r�c@sTeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�Zd;d<�Z d=d>�Z!d?d@�Z"e#j$�%dAe&e'g�e#j$�%dBdCe(�)gdD�gdE�g�fdFe(�)gdG�gdH�g�fdIe(�)gdJ�gdK�g�fg�dLdM���Z*dNdO�Z+dPdQ�Z,e#j$�%dRdSdTg�dUdV��Z-dWdX�Z.dYdZ�Z/d[d\�Z0d]d^�Z1d_d`�Z2dadb�Z3dcdd�Z4dedf�Z5dgdh�Z6e#j$j7didj��Z8dkdl�Z9dmdn�Z:dodp�Z;dqdr�Z<dsdt�Z=dudv�Z>dwdx�Z?dydz�Z@d{d|�ZAd}d~�ZBdd��ZCd�d��ZDd�d��ZEd�d��ZFd�d��ZGd�d��ZHd�d��ZId�d��ZJe#j$�%d�gd���d�d���ZKe#j$�%d�gd���d�d���ZLd�d��ZMd�d��ZNd�d��ZOd�d��ZPd�d��ZQd�d��ZRd�d��ZSd�d��ZTd�d��ZUd�d��ZVd�d��ZWd�d��ZXd�d��ZYd�d��ZZd�d��Z[d�d��Z\d�d��Z]d�d��Z^d�d��Z_d�d��Z`d�d��Zad�d��Zbd�d„Zcd�dĄZdd�dƄZed�dȄZfd�dʄZgd�d̄Zhd�d΄Zid�dЄZjd�d҄Zkd�dԄZld�dքZmd�d؄Znd�dڄZod�d܄Zpe#j$�%d�d�d�g�d�d��Zqe#j$�%d�d�e(jrd�e(jrd�g�e#j$�%d�gd��d�d���Zsd�d�Ztd�d�Zud�d�Zvd�d�ZwdCS)��TestRandomDistcCr�)Nr�r�r=r$r$r%r��r�zTestRandomDist.setupcC�Htt|j��}|jdddd�}t�ddgddgd	d
gg�}t||�dS)N����c�rrrGr���������)�%���i��rr
rr,r2rhr	�r.rMr1r r$r$r%�
test_integers�szTestRandomDist.test_integerscCsRtt|j��}|jdddtjd�}tjddgddgd	d
ggtjd�}t||�dS)NrrPrQr�r��F�Dr�rTrI)rr
rr,r2rfrhr	rXr$r$r%�test_integers_masked�s"z#TestRandomDist.test_integers_maskedcCsJtt|j��}|jddddd�}t�ddgdd	gd
dgg�}t||�dS)NrOrPrQT)r�r&rRrSrT�&rVi�rWrXr$r$r%�test_integers_closed�sz#TestRandomDist.test_integers_closedcCs:tjt�d�jt�d�jdd�}t�d�j}t||�dS)N�lT�r&)rMr,r2r�r�r)r.r1r r$r$r%�test_integers_max_int�s
�z$TestRandomDist.test_integers_max_intcCsntt|j��}|�d�}t�ddgddgddgg�}t||dd	�tt|j��}|��}t||d
dd	�dS)NrQgG0��Ը?g�æ���?g2�
?gu	A��?g�H
�>H�?g;�dE��?r���decimalr%�rr
rrMr2rhr
rXr$r$r%�test_random�s

�zTestRandomDist.test_randomcCsFtt|j��}|�d�}t�ddgddgddgg�}t||dd	�dS)
NrQ�C����Ը?gP�����?gtX�?g81�
A��?g�rO�>H�?g�88dE��?r�rcrerXr$r$r%�test_random_float�s

�z TestRandomDist.test_random_floatcCs2tt|j��}|jtjd�}d}t||dd�dS)NrIrgr�rc)rr
rrMr2rr
rXr$r$r%�test_random_float_scalarsz'TestRandomDist.test_random_float_scalarcCstttjdd�dS)NrrI)rr;rMr=r$r$r%�test_random_unsupported_type	rZz+TestRandomDist.test_random_unsupported_typecCs<tt|j��}|�dd�}tjgd�tjd�}t||�dS)Nr�)rrrGrGrI�rr
r�choicer2rhr�r	rXr$r$r%�test_choice_uniform_replacesz*TestRandomDist.test_choice_uniform_replacecCsDtt|j��}|jddgd�d�}tjgd�tjd�}t||�dS)Nr�)皙�����?rn皙�����?ro�rO)rr5rr5rIrkrXr$r$r%�test_choice_nonuniform_replacesz-TestRandomDist.test_choice_nonuniform_replacecCsltt|j��}|jdddd�}tjgd�tjd�}t||�|jddddd�}tjdtjd�}t||�dS)Nr�rrF��replacer�rI)rs�shuffle)	rr
rrlr2rhr�r	r3rXr$r$r%�test_choice_uniform_noreplaces
z,TestRandomDist.test_choice_uniform_noreplacecCsFtt|j��}|jdddgd�d�}tjgd�tjd�}t||�dS)Nr�rrF)ro�333333�?rKro�rsrO)rrGrrrIrkrXr$r$r%� test_choice_nonuniform_noreplace!sz/TestRandomDist.test_choice_nonuniform_noreplacecCs:tt|j��}|�gd�d�}t�gd��}t||�dS)N)�a�b�c�dr�)ryryr{r{�rr
rrlr2rhr	rXr$r$r%�test_choice_noninteger'sz%TestRandomDist.test_choice_nonintegercCs\tt|j��}|�ddgddgddgddggd�}t�ddgddgddgg�}t||�dS)	Nrr5rGrrr�r^r�r�r}rXr$r$r%�)test_choice_multidimensional_default_axis-s$z8TestRandomDist.test_choice_multidimensional_default_axiscCs^tt|j��}|jddgddgddgddggddd	�}t�dgdgdgdgg�}t||�dS)
Nrr5rGrrr�r^r�r�r�r}rXr$r$r%�(test_choice_multidimensional_custom_axis3s(z7TestRandomDist.test_choice_multidimensional_custom_axiscCstj}tt|dd�tt|dd�tt|gd�tt|gd�dddgddggd�tt|ddgdgd	�d�tt|ddgdd
dgd�tt|ddgdddgd�tt|gd
�ddd�tt|gd
�ddd�tt|gd
�ddd�tt|gd
�ddd�tt|gd
�ddgd�d�dS)Nr9rr�@)r5rGrrr�g�?rpr5rG)rnrnrUrlrmrnr�r�Frrr?)r9)r9r5)r5rrrw)rMrlrr<)r.r�r$r$r%�test_choice_exceptions9s"�
�z%TestRandomDist.test_choice_exceptionsc	Csddg}tt�tjddd���tt�tjddd���tt�tjdd|d���tt�tjdd|d���tt�tjddgdd���ttjdgdd�du�t�ddg�}tjdtd	�}||d
<ttj|dd�|u�t�}tt�tjd|dd���tt�tjd|dd���tt�tjd|d|d���tt�tjd|d|d���tt�tjddg|dd���ttjdg|dd�j	d
k�t�ddg�}tjdtd	�}||d
<ttj||dd��
�|u�d}gd�}ttjd
|dd�j|�ttjd
|dd�j|�ttjd
|d|d�j|�ttjd
|d|d�j|�ttjt�
d
�|dd�j|�ttjd
d
dd�jd�ttjd
dd
d�jd�ttjddd
d�jd�ttjd
d
d�jd�ttjgdd�jd�ttjddgdd�jd�tttjgd�dS)NrornrGTrrFrwr5rIrr�)rorororornrUr�r:r�r;r<rryrz)rr2�isscalarrMrlrhr�r'�tuple�ndim�itemrrgr3r,rr<)r.rOry�arrr/r$r$r%�test_choice_return_shapeKsL �z'TestRandomDist.test_choice_return_shapecCs,t�gd��}gd�}tttj||d�dS)N)�*r5rG)NNNrp)r2rhrr<rMrl)r.ryrOr$r$r%�test_choice_nan_probabilitiesysz,TestRandomDist.test_choice_nan_probabilitiesc	Cs�t�d�d}d|ddd�<tt|j��}|jdd|ddd�d�}tt|j��}|jddt�|ddd��d�}t||�dS)Nrr^r�r5rGrrrp)r2�onesrr
rrlrvr	)r.rOrMrwrxr$r$r%�test_choice_p_non_contiguous~s z+TestRandomDist.test_choice_p_non_contiguouscCs�t�d�d}t�dd�}|jtjksJ�tjdddd�}|jtjks%J�tjdd|d�}|jtjks5J�tjdd|dd�}|jtjksFJ�dS)Nr�g@rGFrrrp)rOrs)r2r�rMrlrJr�)r.rOr1r$r$r%�test_choice_return_type�sz&TestRandomDist.test_choice_return_typecCsZd}tt|j��}|jdddd�}tjdkr|��}t�|�	t
j����}t
||k�dS)N�@4266599d12bfcfb815213303432341c06b4349f5455890446578877bb322e222�'rBFrrr)rr
rrlrr
rrrrr2rrr)r.�choice_hashrMr1rr$r$r%�test_choice_large_sample�s
z'TestRandomDist.test_choice_large_samplecCs*tt|j��}|�d�}d}t||�dS)Nrs
����	8%�)rr
r�bytesrrXr$r$r%�
test_bytes�s
zTestRandomDist.test_bytescCs�dd�dd�dd�dd�dd�dd�dd�d	d�d
d�dd�dd�fD]!}tt|j��}|gd
��}|�|�|}|gd��}t||�q#dS)NcSs
t�g�Sr!)r2rh�rar$r$r%�<lambda>�s
z-TestRandomDist.test_shuffle.<locals>.<lambda>cSs|Sr!r$r�r$r$r%r��scS�t�|��tj�Sr!)r2�asarray�astyperr�r$r$r%r���cSr�r!)r2r�r�rr�r$r$r%r��r�cSr�r!)r2r�r��	complex64r�r$r$r%r��r�cSst�|��t�Sr!)r2r�r�r'r�r$r$r%r���cSsdd�|D�S)NcS�g|]}||f�qSr$r$��.0�ir$r$r%�
<listcomp>���ATestRandomDist.test_shuffle.<locals>.<lambda>.<locals>.<listcomp>r$r�r$r$r%r��scSst�dd�|D��S)NcSsg|]}||g�qSr$r$r�r$r$r%r��r�r�)r2r�r�r$r$r%r��r�cSst�||g�jSr!)r2�vstack�Tr�r$r$r%r��r�cSs*t�dd�|D�dtfdtfg��tj�S)NcSr�r$r$r�r$r$r%r��r�r�ryrz)r2r�rHr�recarrayr�r$r$r%r��s�
cSs(t�dd�|D�dtdfdtjdfg�S)NcSr�r$r$r�r$r$r%r��r�r�ry�r5rz)r2r�r'rr�r$r$r%r��s

���
r5rGrrr�r^r�r�r�rr�
r�r5rr�rr^rrr�rGr�)rr
rrtr	)r.�convrM�alistr1r r$r$r%�test_shuffle�s&�
�zTestRandomDist.test_shufflecCs�tt|j��}t�d��d�}|j|dd�t�gd�gd�gd�gd�g�}t||�tt|j��}t�d��d�}|j|d	d�t||�dS)
Nr��r�r�r5r��rrrr5rG�r�r�r^r��r��rr�r�r�r�r�r9)	rr
rr2r3�reshapertrhr	rXr$r$r%�test_shuffle_custom_axis�s
�
z'TestRandomDist.test_shuffle_custom_axiscCsTtt|j��}t�g��d�}dD]}t�g��d�}|j||d�t||�qdS)N)rr�)rr5r�)rr
rr2rhr�rtr	)r.rMr r�r1r$r$r%�test_shuffle_custom_axis_empty�s�z-TestRandomDist.test_shuffle_custom_axis_emptycCs^t�d��dd�}|��}tt|j��}|j|dd�tt|j��}|�|j�t	||�dS)Nr�rGrr5r�)
r2r3r��copyrr
rrtr�r	)r.�y1�y2rMr$r$r%�test_shuffle_axis_nonsquare�sz*TestRandomDist.test_shuffle_axis_nonsquarecCs�tj�t�td�d�ddd�}tj�t�d�ddd�}|��}|��}td�D]2}t�|�t	t
|j|j�t
|j|j��t�|�t	t
|j|j�t
|j|j��q+dS)Nr�)r^r�rrr5r9r�)
r2�ma�
masked_valuesr�r1r3r�rMrtr�sorted�data�mask)r.ryrz�a_orig�b_origr�r$r$r%�test_shuffle_masked�s"
 �
 ��z"TestRandomDist.test_shuffle_maskedcCs�tt|j��}t�d�}ttj|j|d�t�d��d�}ttj|j|d�tt	|j|t
ddd��gd�gd�g}tt|j|d�t�d�}tt	|j|�t�
d	�}ttj|j|d�dS)
Nrr5r�rrrrrrrGr�)r�r^r�rQ)rr
rr2r3r�	AxisErrorrtr�r;�slice�NotImplementedErrorrhr��r.rMr�r$r$r%�test_shuffle_exceptions�s


z&TestRandomDist.test_shuffle_exceptionsc	Cs�tt|j��}gd�}|�|�}gd�}t||�tt|j��}t�gd��j}|�|�}t|t�|�j�d}ttj	|j|�d}ttj	|j|�tt|j��}d}gd�}|�|�}t||�dS)Nr�r��abcdg333333�?r)
rrrr�r�rr�rGr^r5r�)
rr
r�permutationr	r2�
atleast_2dr�rr�)	r.rMr�r1r �arr_2d�	bad_x_str�bad_x_float�integer_valr$r$r%�test_permutation�s$



zTestRandomDist.test_permutationcCs�t�d��d�}t�gd�gd�gd�gd�g�}tt|j��}|j|dd�}t||�tt|j��}|j|d	d�}t||�dS)
Nr�r�r�r�r�r�r5r�r9)	r2r3r�rhrr
rr�r	)r.ryr rMr1r$r$r%�test_permutation_custom_axiss
�
z+TestRandomDist.test_permutation_custom_axiscCshtt|j��}t�d�}ttj|j|d�t�d��d�}ttj|j|d�tt	|j|t
ddd��dS)Nrr5rr�rrrG)rr
rr2r3rr�r�r�r;r�r�r$r$r%�test_permutation_exceptionss
z*TestRandomDist.test_permutation_exceptionsrJzaxis, expectedN)rrr�rrrr�)r�r�rGr^r5r�r)r�r5rGrrr�)rr�r�rrr�r^r5)r^rrr�rrGr5)r�rrr�r�r�cCs�tt|j��}t�d��dd��|�}|j|||d�t||�tt|j��}t�d��dd��|�}|j||d�}|j	|ksAJ�t||�dS)Nr�rGr��r��outr�)
rr
rr2r3r�r��permutedr	rJ)r.rJr�r�rMra�yr$r$r%�
test_permuted's	
zTestRandomDist.test_permutedcCs�tt|j��}t�d��dd�}|��}|dd�ddd�f}|j|d|d�}t�gd�gd�g�}t	||�||dd�ddd�f<t	||�dS)	N�rGr�rrr5r�)rrrrr�)r�r�r�r�)
rr
rr2r3r�r�r�rhr	)r.rM�x0�x1rar�r�r$r$r%�test_permuted_with_strides;s
�
z)TestRandomDist.test_permuted_with_stridescCst�g�}t|g�dSr!)rMr�r	)r.r�r$r$r%�test_permuted_emptyHs
z"TestRandomDist.test_permuted_empty�outshaper�r^cCs`t�gd��}tj||jd�}tjtdd��tj||d�Wd�dS1s)wYdS)Nr�rIz
same shaper}�r�)	r2rhrLrJr�r�r<rMr�)r.r�ryr�r$r$r%�"test_permuted_out_with_wrong_shapeLs
"�z1TestRandomDist.test_permuted_out_with_wrong_shapecCs^tjdtjd�}t�d�}tjtdd��tj|d|d�Wd�dS1s(wYdS)N)rrr^rIzCannot castr}r5r�)	r2rLrr�r�r�r;rMr�)r.r�rar$r$r%�!test_permuted_out_with_wrong_typeSs

"�z0TestRandomDist.test_permuted_out_with_wrong_typecC�Ltt|j��}|jdddd�}t�ddgddgd	d
gg�}t||dd�dS)
NrornrQr�gW�<$��=g�^
�=g�/:�Ћ�?g���G!Gc>g��'�`�2?g��U�?r�rc)rr
r�betar2rhr
rXr$r$r%�	test_betaYs��zTestRandomDist.test_betacCsptt|j��}|jdddd�}t�ddgddgdd	gg�}t||�tt|j��}|�dd�}d}t||�dS)
NgZd;�Y@g�v��/�?rQr�r�rT�0�,r�)rr
rrNr2rhr	rXr$r$r%�
test_binomialbs
�
zTestRandomDist.test_binomialcC�Jtt|j��}|jddd�}t�ddgddgdd	gg�}t||d
d�dS)Nr�rQr�gm��E~@@g�
�1ςC@g�rӳ�L@g�m%x�L@g<k��Q�K@g�t��K@r�rc)rr
r�	chisquarer2rhr
rXr$r$r%�test_chisquareo�
�zTestRandomDist.test_chisquarecCs�tt|j��}t�ddg�}|j|dd�}t�ddgddggd	d
gddggd
dgddggg�}t||dd�t�ddg�}tt|j|�tt|j��}t�ddg�}|�|�}t||ddd�dS)N���I<�I@��EZ�C@rQr�g�2�8\h�?g�ɎG/�?g
�A�p��?g�|);�?g�LX���?gfO�h��?g�됷W��?g(ސP��?gz$Q���?g�mWt �?g搝K���?g4��h�z�?r�rc�H�z�G�?缉ؗ�Ҝ�r%)	rr
rr2rh�	dirichletr
rr<)r.rM�alphar1r �	bad_alphar$r$r%�test_dirichletws(
����
zTestRandomDist.test_dirichletcCs�t�ddg�}tt�|t�d��jd�tt�|t�d��jd�tt�|t�d��jd�tt�|ddg�jd�tt�|d�jd�tt�|t�d��jd�tttj|t	d��dS)Nr�r�r5rcrGrdre)
r2rhrrMr�rfrgrr;rirjr$r$r%�test_dirichlet_size�sz"TestRandomDist.test_dirichlet_sizecCs�t�ddg�}tttj|�tttjddgg�tttjdgdgg�tttjdgdggdgdggg�tttjt�ddgddgg��dS)Nr�r�r^r5)r2rhrr<rMr�)r.r�r$r$r%�test_dirichlet_bad_alpha�s"$z'TestRandomDist.test_dirichlet_bad_alphacCsht�gd��}|ddd�}tt|j��}|j|dd�}tt|j��}|jt�|�dd�}t||�dS)N)r�g�r�rGrQr�)r2rhrr
rr�rvr
)r.ryr�rMrwrxr$r$r%�#test_dirichlet_alpha_non_contiguous�s�z2TestRandomDist.test_dirichlet_alpha_non_contiguouscCsxd}|t�ddg�}tt|j��}|j|dd�}t�ddgddggddgddggddgddggg�}t||dd�dS)	Nr|��?r�rQr�r[r�rc)r2rhrr
rr�r
)r.�epsr�rMr1r�r$r$r%�test_dirichlet_small_alpha�s ����z)TestRandomDist.test_dirichlet_small_alphacCsTt�gd��}||��}tt|j��}|j|dd�}|jdd�}t||dd�dS)N)g{�G�z�?g{�G�z�?g���Q��?i-1r�rr�r�)r�)	r2rhrurr
rr�r�r)r.r��
exact_meanrMr��sample_meanr$r$r%�%test_dirichlet_moderately_small_alpha�sz4TestRandomDist.test_dirichlet_moderately_small_alphacCr�)Ng�8EGr��?rQr�g�v���M�?g�����?g#��c�?g�Q��:N�?g�A��P�?gE_9���@r�rc)rr
r�exponentialr2rhr
rXr$r$r%�test_exponential�r�zTestRandomDist.test_exponentialcC�&ttjdd�d�tttjdd�dS�Nr��scale��)rrMr�rr<r=r$r$r%�test_exponential_0��z!TestRandomDist.test_exponential_0cCr�)
Nr��MrQr�g}
(Ҍ�?g�
i��?g=��r���?g]h��DA�?gjӨ��?g8��k*u�?r�rc)rr
r�fr2rhr
rXr$r$r%�test_f��
�zTestRandomDist.test_fcCr�)
Nr^rrrQr�g,ש�n'@gt��@g
�<�e�2@g�1��a�3@g3r
y�-2@gs��1-2@r�rc)rr
r�gammar2rhr
rXr$r$r%�
test_gamma�rzTestRandomDist.test_gammacCs*ttjddd�d�tttjddd�dS)Nr)rgr�r)rrMrrr<r=r$r$r%�test_gamma_0�szTestRandomDist.test_gamma_0cCsFtt|j��}|jddd�}t�ddgddgddgg�}t||�dS)N�_c97ݚ�?rQr�r5r�r�r�)rr
r�	geometricr2rhr	rXr$r$r%�test_geometric��
�zTestRandomDist.test_geometriccCs�tttjd�tttjdgd�tttjd�tttjdgd�tjdd��tttjtj�tttjtjgd�Wd�dS1sGwYdS)Nrlrrm�ignore��invalid)rr<rMrr2�errstaterQr=r$r$r%�test_geometric_exceptions�s"�z(TestRandomDist.test_geometric_exceptionscCr�)
Nr
�@rQ��locr�r�g�A7G�@g��1Fi�ҿge�i��@g����_C�g0c�P��g�`�(�_տr�rc)rr
r�gumbelr2rhr
rXr$r$r%�test_gumbel�rzTestRandomDist.test_gumbelcCr�r�)rrMrrr<r=r$r$r%�
test_gumbel_0�rzTestRandomDist.test_gumbel_0cCs�tt|j��}|jddddd�}t�ddgddgddgg�}t||�|jdd	d
dd�}t�gd��}t||�|jd
d	ddd�}t�gd��}t||�|jd	dd
dd�}t�gd��}t||�|jd	d
ddd�}t�gd��}t||�dS)Ng333333$@g@r�rQr�rrr^rrrr�)rrrrrrrrr�r�)r�r�r�r�)rrrr)rr
r�hypergeometricr2rhr	rXr$r$r%�test_hypergeometrics&
�



z"TestRandomDist.test_hypergeometriccCr�)
Nr
rrQrg���6@	�ga@bDA"�?g*�[r�{�g�>K���?g���(��?g�<����?r�rc)rr
r�laplacer2rhr
rXr$r$r%�test_laplacerzTestRandomDist.test_laplacecCr�r�)rrMrrr<r=r$r$r%�test_laplace_0#rzTestRandomDist.test_laplace_0cCr�)
Nr
rrQrgb��Z�gHʊg$>�?g>��&���g�Qh�@g%?n��?g�ĉ�8|�?r�rc)rr
r�logisticr2rhr
rXr$r$r%�
test_logistic'rzTestRandomDist.test_logisticcCr�)
Nr
rrQ)r��sigmar�gܒ��x�?g���k*�+@g��<��Ҿ?g��
�@g5��a�@g�%jz�(@r�rc)rr
r�	lognormalr2rhr
rXr$r$r%�test_lognormal/rzTestRandomDist.test_lognormalcCs&ttjdd�d�tttjdd�dS)Nr)r r5r)rrMr!rr<r=r$r$r%�test_lognormal_07rzTestRandomDist.test_lognormal_0cCsFtt|j��}|jddd�}t�ddgddgdd	gg�}t||�dS)
Ngƀ@���?rQ)rOr�r�r�rr�r^r5)rr
r�	logseriesr2rhr	rXr$r$r%�test_logseries;r
zTestRandomDist.test_logseriescCsXtjdd��tttjtj�tttjtjgd�Wd�dS1s%wYdS)Nrrr)r2rrr<rMr%rQr=r$r$r%�test_logseries_exceptionsCs"�z(TestRandomDist.test_logseries_exceptionscCsftt|j��}|jddgddd�}t�gd�gd�ggd�gd	�ggd
�gd�gg�}t||�dS)Nr��UUUUUU�?r�rQr�)r5r^r5r�r�rr)r�rGr�rGr�rG)r^rrrGr�rrr5)r�r�rrGrrr�)r�rrr5r^rrrG)r^r^rrr5rGr�)rr
rrXr2rhr	rXr$r$r%�test_multinomialHs
����zTestRandomDist.test_multinomialr�)�svd�eigh�choleskycCs�tt|j��}d}ddgddgg}d}|j||||d�}t�ddgdd	ggd
dgdd
ggddgddggg�}t||dd�|j|||d�}t�ddg�}t||dd�ddg}ddgddgg}tt|j||dd�ddgddgg}t	t
|j||�t	t
|j||dd�tt|j||dd�t|j||dd�tt|j||dd�tt|j||ddd�ddgddgg}|dvr�|j||d|d�}t|d|d d!d�n
tt|j||dd�tjdd"gd"dggtj
d#�}t��}	|j|||d�|	�t
�}
t|
�dks�J�Wd�n	1�swYt�d�}t�d�}tt|j||d$d�tt|jt�d%�|�tt|j|t�d��tt|j|t�d&��dS)'N)r
rr5rrQr�g�t������g���$�&@g&بO=��g!���$@g�D�o��?g����\&@g�,�R�{�?g��
f�!@g?ժ���?gT�^o#@g`�R���?g��P��'@r�rcg��l��?g$�(�"@rG�raise)�check_validr+r,r)r.r�)r*r+r�).r).r5r�rorI�other)rGr5r5rr)rr
r�multivariate_normalr2rhr
rr<r�RuntimeWarningrrrr�recordrrL�eyer�)r.r�rMr��covr�r1r rG�sup�w�mur$r$r%�test_multivariate_normalSs�
�������
���
���
�

�
�
�
�z'TestRandomDist.test_multivariate_normalc	Cs�tt|j��}d}t�ddg�}t�ddgddgg�}|j|||f|d�}||}|j||d}t�t�|�	d��dk�sAJ�t�t�||�dk�sOJ�dS)Nr(r5rGr�r?rorU)
rr
rr2rhr0r�r_�absr�)	r.r�rM�n_sr�r4r/�s_center�cov_empr$r$r%�$test_multivariate_normal_basic_stats�s z3TestRandomDist.test_multivariate_normal_basic_statscCrN)NrTg|�Pk��?rQ)�nrOr�ii�ii�iXi�)rr
rr�r2rhr	rXr$r$r%r��s
�z%TestRandomDist.test_negative_binomialcCs\tjdd��tttjdtj�tttjdtjgd�Wd�dS1s'wYdS)NrrrTr)r2rrr<rMr�rQr=r$r$r%�!test_negative_binomial_exceptions�s

�"�z0TestRandomDist.test_negative_binomial_exceptionscCs:tt��t�dd�}Wd�dS1swYdS�Nr5r)rr<rMr�r`r$r$r%�#test_negative_binomial_p0_exception�s
"�z2TestRandomDist.test_negative_binomial_p0_exceptioncCs�tt|j��}|jdddd�}t�ddgddgdd	gg�}t||d
d�|jdd
dd�}t�ddgddgddgg�}t||d
d�tt|j��}|jdddd�}t�ddgddgddgg�}t||d
d�dS)Nr^rQ)�df�noncr�gs؀3J�?gugو��/@gN�J��m+@g��A}�-4@gq=��&@gj���hn
@r�rcrKrUgZօ�D�N?g��E!X&?gt��%T�?gQ�)��V?g5�Zlf��?gΎ��{�?rgm�K���?g��Z��?g�%yKY@g�@�W@gĈ��{>@g�&�BB=@)rr
r�noncentral_chisquarer2rhr
rXr$r$r%�test_noncentral_chisquare�s(
�
�
�z(TestRandomDist.test_noncentral_chisquarecC�Ntt|j��}|jddddd�}t�ddgdd	gd
dgg�}t||dd
�dS)Nr^rGr5rQ)�dfnum�dfdenrCr�g�HP
�?g��n��?g�%�f���?gc�h�?g�zƎ���?g�]�?:�?r�rc)rr
r�noncentral_fr2rhr
rXr$r$r%�test_noncentral_f��
�
�z TestRandomDist.test_noncentral_fcCs2tt|j��}|jddtjd�}t�|�sJ�dS)Nr^rG)rGrHrC)rr
rrIr2rQ�isnan)r.rMr1r$r$r%�test_noncentral_f_nan�sz$TestRandomDist.test_noncentral_f_nancCr�)
Nr
rrQrg�?`x���g\�P�@g/7��u��g�0aj���?g��i�%�?go��g��@r�rc)rr
r�normalr2rhr
rXr$r$r%�test_normal�rzTestRandomDist.test_normalcCr�r�)rrMrNrr<r=r$r$r%�
test_normal_0�rzTestRandomDist.test_normal_0cCsNtt|j��}|jddd�}t�ddgddgdd	gg�}tjj||d
d�dS)Nr
rQ�ryr�g��á�?g�ƫ�h��@g�i�`�>�?g��0"&Ag���c�@g=��f�Ar�)�nulp)rr
r�paretor2rh�testing�assert_array_almost_equal_nulprXr$r$r%�test_pareto�s
�	zTestRandomDist.test_paretocCsFtt|j��}|jddd�}t�ddgddgddgg�}t||�dS)Nr
rQ)�lamr�r)rr
r�poissonr2rhr	rXr$r$r%�test_poisson�r
zTestRandomDist.test_poissoncCs�t�d�j}d}tttj|�tttj|gd�tttj|�tttj|gd�tjdd��tttjtj�tttjtjgd�Wd�dS1sOwYdS)Nr�r9rrr)	r2r�r�rr<rMrXrrQ)r.�lambig�lamnegr$r$r%�test_poisson_exceptionss"�z&TestRandomDist.test_poisson_exceptionscCr�)Nr
rQrQg����Z� >g������?gÄ�(�=g҇����?g�Ś�E��?g�ߢ��H�?r�rc)rr
r�powerr2rhr
rXr$r$r%�
test_power
r�zTestRandomDist.test_powercCr�)NrrQ)r�r�gr�y��@g�tQ�P�0@gAI���_
@g@�u8�1@g��	��G0@g"w�c5@r�rc)rr
r�rayleighr2rhr
rXr$r$r%�
test_rayleighr�zTestRandomDist.test_rayleighcCr�r�)rrMr_rr<r=r$r$r%�test_rayleigh_0rzTestRandomDist.test_rayleigh_0cC�Htt|j��}|jdd�}t�ddgddgddgg�}t||d	d
�dS)NrQr�g�H1����gW�|�3
�g����\��?gL�e���g5�P�	��g��FA��?r�rc)rr
r�standard_cauchyr2rhr
rXr$r$r%�test_standard_cauchy!�
�z#TestRandomDist.test_standard_cauchycCr�)NrQ�invr�ga\�5��?gr�7k��?g8�PC*��?g5��$�[�?gW3�T��?g*���?r�rc)rr
r�standard_exponentialr2rhr
rXr$r$r%�test_standard_exponential)r�z(TestRandomDist.test_standard_exponentialcC�tttjtjd�dS�NrI)rr;rMrgr2rr=r$r$r%�#test_standard_expoential_type_error1�z2TestRandomDist.test_standard_expoential_type_errorcCr�)NrrrQ�rgr�g
Έ̏&�?gT�Ͽ���?g1n2�1@gDb<z�@g�Bv�
@g��c^��
@r�rc�rr
r�standard_gammar2rhr
rXr$r$r%�test_standard_gamma4r�z"TestRandomDist.test_standard_gammacCs4tt|j��}|jdtjd�}d}t||dd�dS)NrrrIg��d@r�rc)rr
rror2rr
rXr$r$r%�!test_standard_gammma_scalar_float<sz0TestRandomDist.test_standard_gammma_scalar_floatcCr�)NrrrQrmgf���&�?gM�
O���?g���1@g�):��@g����
@g;�i���
@r^rcrnrXr$r$r%�test_standard_gamma_floatBr�z(TestRandomDist.test_standard_gamma_floatcCs�tjdtjd�}tt|j��}|jd|tjd�tjddgddgd	d
ggtjd�}t||dd�tt|j��}|jd|dtjd
�t||dd�dS)NrQrI�$@�r�rJg�M�»L$@g�a��{@g��N]��"@gPS��")@g����_�+@gm���B@r^rc�r�r�rJ)	r2rLrrr
rrorhr
)r.r1rMr r$r$r%�test_standard_gammma_float_outJs
��z-TestRandomDist.test_standard_gammma_float_outcCstttjddd�dS)Nr�rrI)rr;rMror=r$r$r%� test_standard_gamma_unknown_typeWs

�z/TestRandomDist.test_standard_gamma_unknown_typecCs6t�d�}tttjdd|d�tttjdd|d�dS)Nrrsr�)r�r�)rr5)r2rLrr<rMro)r.r�r$r$r%�test_out_size_mismatch[s
�
�z%TestRandomDist.test_out_size_mismatchcCr�)Nr)rgr)rrMrorr<r=r$r$r%�test_standard_gamma_0brz$TestRandomDist.test_standard_gamma_0cCrb)NrQr�g�
bY�g?�� �?gGH{L��gz�\��?gc��`+�?gT�}���?r�rc)rr
rr�r2rhr
rXr$r$r%�test_standard_normalfrez#TestRandomDist.test_standard_normalcCrirj)rr;rMr�r2rr=r$r$r%�%test_standard_normal_unsupported_typenrlz4TestRandomDist.test_standard_normal_unsupported_typecCr�)NrrQ)rBr�g��V1���g	|ڙ(��?g����-��?g�N�hڿgM�c�?g!uL��M�r�rc)rr
r�
standard_tr2rhr
rXr$r$r%�test_standard_tqr�zTestRandomDist.test_standard_tcCrF)Ng{�G�z@g�(\��u$@gףp=
W4@rQ)�left�mode�rightr�g�E�pw@g�4�DC+@g��ŋ�@g���/�,@gk���uR*@gHNP�cr+@r�rc)rr
r�
triangularr2rhr
rXr$r$r%�test_triangularyrKzTestRandomDist.test_triangularcCr�)
N�G�z��?g�G�z%@rQ)r*r+r�gm�2�@gJ�a�D@g��:�@g
���Q� @g@T{e�@g�b��@r�rc�rr
r�uniformr2rhr
rXr$r$r%�test_uniform�rzTestRandomDist.test_uniformcCs�t�d�j}t�d�j}tj}tt|tjd�tt|dtj�tt|||�tt|tjgdg�tt|dgtjg�tjt�	|d�|dd�dS)Nrirr5g�؅W4vC)r*r+)
r2�finfor�r�rMr�r�
OverflowError�inf�	nextafter)r.�fmin�fmax�funcr$r$r%�test_uniform_range_bounds�sz(TestRandomDist.test_uniform_range_boundscCsntj}|dd�}t|d�|dtjgdtjg�}t|dtjg�|dgdggddg�}t|dt�d��dS)N��?r[g
ףp= @re)rMr�rr2�pirL)r.r��resultr$r$r%�test_uniform_zero_range�s

z&TestRandomDist.test_uniform_zero_rangecCsHtj}tt|dd�tt|ddgddg�tt|ddgddggd�dS)NrGr5rrr)rMr�rr<)r.r�r$r$r%�test_uniform_neg_range�sz%TestRandomDist.test_uniform_neg_rangecCsjGdd�dtj�}t�d��|�}tttj||�Gdd�dtj�}t�d��|�}tttj|dd�dS)Nc@�eZdZdd�ZdS)zGTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloatcS�t�r!�r;r=r$r$r%�	__float__��zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingFloat.__float__N)rCrDrEr�r$r$r$r%�
ThrowingFloat��r�r�c@r�)zITestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingIntegercSr�r!r�r=r$r$r%�__int__�r�zQTestRandomDist.test_scalar_exception_propagation.<locals>.ThrowingInteger.__int__N)rCrDrEr�r$r$r$r%�ThrowingInteger�r�r�r5)	r2�ndarrayrhrrr;rMr�r)r.r��throwing_floatr��throwing_intr$r$r%�!test_scalar_exception_propagation�s
�z0TestRandomDist.test_scalar_exception_propagationcCr�)
Nr��p=
ף�?rQ�r7�kappar�gL��A��?g�x�yw�@g��z�VR�?g�pE� �?g�8&�A�пg���v@r�rc)rr
r�vonmisesr2rhr
rXr$r$r%�
test_vonmises�rzTestRandomDist.test_vonmisescCs4tt|j��}|jdddd�}tt�|����dS)Nr[gg5_P�G>i@Br�)rr
rr�rr2�isfiniter_�r.rM�rr$r$r%�test_vonmises_small�sz"TestRandomDist.test_vonmises_smallcCs0tt|j��}|jdtjd�}tt�|��dS)Nr[)r7r�)rr
rr�r2rQrrLr�r$r$r%�test_vonmises_nan�sz TestRandomDist.test_vonmises_nanr�g��@�4&�kCcCsttt|j��}t|j�}|jj}|jd|dd�}||j_|jd|dd�}|dkr/t||�dSt�	||k�s8J�dS)Nrrr�g��.A)
rr
rrr�r�r�rr2r_)r.r�rM�rsr��random_state_vals�gen_valsr$r$r%�test_vonmises_large_kappa�s
z(TestRandomDist.test_vonmises_large_kappar7g�g�������g������	@)r|g���ư>r5g@�@r�cCs8t�||d�}tt�|tjk�ot�|tjk��dS)Nr�)rMr�rr2r_r�)r.r7r�r�r$r$r%�test_vonmises_large_kappa_range�s*z.TestRandomDist.test_vonmises_large_kappa_rangecCr�)
Nr�r�rQ)r�r�r�g
*س�2�?g�t���	@g�;S�@g\���F@g�x��F�@g���6b�?r�rc)rr
r�waldr2rhr
rXr$r$r%�	test_wald�rzTestRandomDist.test_waldcCr�)Nr�rQrQgnJZ���?g*�/F��?gs�(RY��?g��]'%�?g,�q�D�?g�8 �?r�rc)rr
r�weibullr2rhr
rXr$r$r%�test_weibull�r�zTestRandomDist.test_weibullcCs<tt|j��}t|jddd�t�d��tt|jdd�dS)Nrr�rQr)ry)	rr
rrr�r2rLrr<)r.rMr$r$r%�test_weibull_0�szTestRandomDist.test_weibull_0cCsFtt|j��}|jddd�}t�ddgddgddgg�}t||�dS)	Nr�rQrQr5ricibrG)rr
r�zipfr2rhr	rXr$r$r%�	test_zipf�r
zTestRandomDist.test_zipf)xrCrDrEr�rYr]r_rbrfrhrirjrmrqrurxr~rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rHr'r2rhr�r�r�r�r�r�r�r�r�r�r�r�r�rLr�r�rrrr	rrrrrrrrr"r#r&r'r)r8r=r�r?rArErJrMrOrPrVrYr\r^r`rardrhrkrprqrrrvrwrxryrzr{r}r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r$r$r$r%rM�s	.			
�����

	


		
I
	
		

rMc@seZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�Zd;d<�Z d=d>�Z!d?d@�Z"dAS)B�
TestBroadcastcCr�)Ni�[r�r=r$r$r%r�r�zTestBroadcast.setupcCs�tt|j��}dg}dg}|j}t�gd��}tt|j��}|�|d|�}t||dd�tt|j��}|�||d�}t||dd�dS)Nrr5)g�4�
7^�?g�F]
"�?g�� .�?rrr�rcr�)r.rMr*r+r�r r1r$r$r%r�szTestBroadcast.test_uniformcCs�dg}dg}dg}tt|j��}t�gd��}tt|j��}|�|d|�}t||dd�tt|j|d|�tt|j��}|j}|||d�}t||dd�tt|||d�dS)Nrr5r9)gw-D���ؿgn�0_x�?g�ʊ;<.�?rrr�rc)	rr
rr2rhrNr
rr<)r.rr��	bad_scalerMr r1rNr$r$r%rOszTestBroadcast.test_normalc	Cs�dg}dg}dg}dg}t�gd��}tt|j��}|j}||d|�}t||dd�tt||d|�tt||d|�tt|j��}|�||d�}t||dd�dS)	Nr5rGr9r?)gf�8���?g��%�eo�?g�$q?���?rrr�rc)	r2rhrr
rr�r
rr<)	r.ryrz�bad_a�bad_br rMr�r1r$r$r%r�,szTestBroadcast.test_betacC�Zdg}dg}t�gd��}tt|j��}|�|d�}t||dd�tt|j|d�dS�Nr5r9)g`��ʄ�?g�E��]�?g�
��?rrr�rc)	r2rhrr
rr�r
rr<�r.r�r�r rMr1r$r$r%r�>�zTestBroadcast.test_exponentialcCs\dg}dg}t�gd��}tt|j��}|j}||d�}t||dd�tt||d�dSr�)	r2rhrr
rror
rr<)r.rg�	bad_shaper rM�	std_gammar1r$r$r%rpHsz!TestBroadcast.test_standard_gammac	C��dg}dg}dg}dg}t�gd��}tt|j��}|j}||d|�}t||dd�tt||d|�tt||d|�tt|j��}|j}|||d�}t||dd�tt|||d�tt|||d�dS)	Nr5rGr9r?)g3��ʄ�?gJE��]�?g�
��?rrr�rc)	r2rhrr
rrr
rr<)	r.rgr�r�r�r rMrr1r$r$r%rS�"zTestBroadcast.test_gammac	Cr�)	Nr5rGr9r?)g�M3B��?gybi��@g0���?rrr�rc)	r2rhrr
rrr
rr<)	r.rGrH�	bad_dfnum�	bad_dfdenr rMrr1r$r$r%rhr�zTestBroadcast.test_fc	Cs�dg}dg}dg}dg}dg}dg}t�gd��}tt|j��}|j}	|	|d||�}
t|
|dd	�t�t�|	||tj	gd���sDJ�t
t|	|d||�t
t|	|d||�t
t|	|d||�tt|j��}|j}	|	||d|�}
t|
|dd	�t
t|	||d|�t
t|	||d|�t
t|	||d|�tt|j��}|j}	|	|||d�}
t|
|dd	�t
t|	|||d�t
t|	|||d�t
t|	|||d�dS)
NrGrrr�rr9r?)gŜ,n�1@g�!�6�)@g���9��?r�rc)r2rhrr
rrIr
r_rLrQrr<)r.rGrHrCr�r��bad_noncr rM�nonc_fr1r$r$r%rJ}s:$zTestBroadcast.test_noncentral_fcCs@tt|j��}t�ddg�}|jddddd�}t||dd�dS)NgZ\���#�?gDq�w��?rnrGr�r�rc)rr
rr2rhrIr
)r.rMr r1r$r$r%�test_noncentral_f_small_df�sz(TestBroadcast.test_noncentral_f_small_dfcCr�)Nr5r9)g���C{��?g7Q��#��?g%h�1T�@rrr�rc)	r2rhrr
rr�r
rr<�r.rB�bad_dfr rMr1r$r$r%r��r�zTestBroadcast.test_chisquarec	Cr�)	Nr5rGr9r?)g-��S��?g�[�@gr�3/�.�?rrr�rc)	r2rhrr
rrDr
rr<)	r.rBrCr�r�r rM�nonc_chir1r$r$r%rE�r�z'TestBroadcast.test_noncentral_chisquarecCr�)Nr5r9)g
��>�Q��g��{��g�,��e�?rrr�rc)	r2rhrr
rr|r
rr<r�r$r$r%r}�r�zTestBroadcast.test_standard_tcCs�dg}dg}dg}t�gd��}tt|j��}|�|d|�}t||dd�tt|j|d|�tt|j��}|�||d�}t||dd�tt|j||d�dS)NrGr5r9)g�D�()@g,)ʸ�@gP��o��rrr�rc)	r2rhrr
rr�r
rr<)r.r7r��	bad_kappar rMr1r$r$r%r��szTestBroadcast.test_vonmisescCr�)Nr5r9)g�/h����?gc��E��?g/g�V��?rrr�rc)	r2rhrr
rrSr
rr<�r.ryr�r rMr1r$r$r%rV�r�zTestBroadcast.test_paretocCr�r�)	r2rhrr
rr�r
rr<r�r$r$r%r��r�zTestBroadcast.test_weibullcCr�)Nr5r9)g���T�?g��ʥ��?gK�ܮc�?rrr�rc)	r2rhrr
rr]r
rr<r�r$r$r%r^�r�zTestBroadcast.test_powercC�dg}dg}dg}t�gd��}tt|j��}|j}||d|�}t||dd�tt||d|�tt|j��}|j}|||d�}t||dd�tt|||d�dS)Nrr5r9)gh&�B��g�s���gR�#���?rrr�rc)	r2rhrr
rrr
rr<)r.rr�r�r rMrr1r$r$r%r��zTestBroadcast.test_laplacecCr�)Nrr5r9)g�s�4�?g�$Cw%T�?g���տrrr�rc)	r2rhrr
rrr
rr<)r.rr�r�r rMrr1r$r$r%rr�zTestBroadcast.test_gumbelcCs�dg}dg}dg}t�gd��}tt|j��}|�|d|�}t||dd�tt|j|d|�tt|j��}|�||d�}t||dd�tt|j||d�t	|�dd	�d�dS)
Nrr5r9)g�$�D���g�X��P���g�,��?rrr�rcr�r[)
r2rhrr
rrr
rr<r)r.rr�r�r rMr1r$r$r%r!szTestBroadcast.test_logisticcCs�dg}dg}dg}t�gd��}tt|j��}|j}||d|�}t||dd�tt||d|�tt|j��}|�||d�}tt|j||d�dS)Nrr5r9)g�c���?g���u�@g�V��Q�?rrr�rc)	r2rhrr
rr!r
rr<)r.r�r �	bad_sigmar rMr!r1r$r$r%r"2szTestBroadcast.test_lognormalcCr�)Nr5r9)gs�(��?g4
mK���?g�Vk�+�?rrr�rc)	r2rhrr
rr_r
rr<r�r$r$r%r`Bs�zTestBroadcast.test_rayleighcCs�dg}dg}dg}dg}t�gd��}tt|j��}|�|d|�}t||dd�tt|j|d|�tt|j|d|�tt|j��}|�||d�}t||dd�tt|j||d�tt|j||d�dS)	NrKr5rr?)g�k7��Z�?g��*}z9�?gc���-	�?rrr�rc)	r2rhrr
rr�r
rr<)r.r�r��bad_meanr�r rMr1r$r$r%r�PszTestBroadcast.test_waldcCs�dg}dg}dg}dg}dg}|d\}}t�gd��}tt|j��}	|	j}
|
|d||�}t||dd�tt|
|d||�tt|
|d||�tt|
|d||�tt|j��}	|	j}
|
||d|�}t||dd�tt|
||d|�tt|
||d|�tt|
||d|�tt|j��}	|	j}
|
|||d�}t||dd�tt|
|||d�tt|
|||d�tt|
|||d�tt|
dd	d
�tt|
ddd
�tt|
ddd�dS)Nr5rrrGr�)gR8T��>�?gK���?g�;��>h@r�rcrsr[g4@g9@)	r2rhrr
rr�r
rr<)r.r~r�r�bad_left_one�bad_mode_one�bad_left_two�bad_mode_twor rMr�r1r$r$r%r�csJ��
�zTestBroadcast.test_triangularc
Cs�dg}dg}dg}dg}dg}t�gd��}tt|j��}|j}||d|�}	t|	|�tt||d|�tt||d|�tt||d|�tt|j��}|�||d�}	t|	|�tt|||d�tt|||d�tt|||d�dS)Nr5rKr9r��rrr5rr)	r2rhrr
rrNr	rr<)
r.r>rO�bad_n�	bad_p_one�	bad_p_twor rM�binomr1r$r$r%r��s&

zTestBroadcast.test_binomialc
Cs�dg}dg}dg}dg}dg}tjgd�tjd�}tt|j��}|j}||d|�}	t|	|�tt	||d|�tt	||d|�tt	||d|�tt|j��}|j}|||d�}	t|	|�tt	|||d�tt	|||d�tt	|||d�dS)Nr5rKr9r�)rrGr5rIrr)
r2rhr�rr
rr�r	rr<)
r.r>rOr�r�r�r rM�	neg_binomr1r$r$r%r��s(

z$TestBroadcast.test_negative_binomialc	Csxdg}dg}t�gd��}tt|j��}|j}|dg}|j}||d�}t||�tt	||d�tt	||d�dS)Nr5r9)rrrrrGrr)
r2rhrr
r�_poisson_lam_maxrXr	rr<)	r.rW�bad_lam_oner rM�max_lam�bad_lam_tworXr1r$r$r%rY�s

zTestBroadcast.test_poissoncCs�dg}dg}t�gd��}tt|j��}|j}||d�}t||�tt||d�tj	dd��tt|tj
�tt|ddtj
g�Wd�dS1sMwYdS)NrGr)r5r�r5rrrr)r2rhrr
rr�r	rr<rrQ)r.ryr�r rMr�r1r$r$r%r��s
"�zTestBroadcast.test_zipfcC�ndg}dg}dg}t�gd��}tt|j��}|j}||d�}t||�tt||d�tt||d�dS)NrKr9r�r�rr)	r2rhrr
rrr	rr<)r.rOr�r�r rMrr1r$r$r%r��
zTestBroadcast.test_geometriccCs2dg}dg}dg}dg}dg}dg}dg}t�gd��}tt|j��}	|	�|d||�}
t|
|�tt|	j|d||�tt|	j|d||�tt|	j|d||�tt|	j|d||�tt|j��}	|	�||d|�}
t|
|�tt|	j||d|�tt|	j||d|�tt|	j||d|�tt|	j||d|�tt|j��}	|	j}||||d�}
t|
|�tt||||d�tt||||d�tt||||d�tt||||d�tt|ddd	�tt|ddd	�tt|ddd�tt|ddd
�tt|ddd	�tt|dd
d�tt|dddgd�dS)Nr5rGr9r?r�r�rrrr�r�i@i�lr�i r()	r2rhrr
rrr	rr<)r.�ngood�nbadr��	bad_ngood�bad_nbad�bad_nsample_one�bad_nsample_twor rMr1�	hypergeomr$r$r%r�sJ


z!TestBroadcast.test_hypergeometriccCr�)NrKrGr9)r5r5r5rr)	r2rhrr
rr%r	rr<)r.rOr�r�r rMr%r1r$r$r%r&	r�zTestBroadcast.test_logseriescCs�tt|j��}|jddgdgddd�}tjgd�gd�ggd	�gd
�ggd�gd�ggtjd
�}t||�tt|j��}|�ddgdgd�}tjgd�gd�gtjd
�}t||�dS)Nr^r�r(r�rQr�)rrrGr5rGr)rGrrr�r�rGrr)r5rr5rrGr5)r�rGrGr5r�r�)rrGrr5rGr)rrrGrrrrr�r^rI)rr
rrXr2rhr�r	rXr$r$r%r)	s.
�����

��zTestBroadcast.test_multinomialN)#rCrDrEr�r�rOr�r�rprrrJr�r�rEr}r�rVr�r^rrrr"r`r�r�r�r�rYr�rrr&r)r$r$r$r%r�sB
#




(
-
r�c@�4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�
TestThreadcCstd�|_dS)Nr�)r1�seedsr=r$r$r%r�2	szTestThread.setupcs�ddlm�t�t|j�f|�}t�t|j�f|�}��fdd�t|j|�D�}dd�|D�dd�|D�t|j|�D]
\}}�tt|��|�q>t�	�j
jdkr`tj
dkr`t||�dSt||�dS)	Nr)�Threadcs(g|]\}}��tt|��|fd��qS))�target�args)rr
)r�r/�o�r��functionr$r%r�<	s�z-TestThread.check_function.<locals>.<listcomp>cS�g|]}|���qSr$)�start�r�rar$r$r%r�>	r�cSr�r$)�joinr�r$r$r%r�?	r�r��win32)�	threadingr�r2r�rr��ziprr
�intprJr�r�platformr
r	)r.r��sz�out1�out2�tr/r�r$r�r%�check_function5	s
�zTestThread.check_functioncC�dd�}|j|dd�dS)NcSs|jdd�|d<dS)Nr�r�.)rN�r�r�r$r$r%�
gen_randomL	rZz*TestThread.test_normal.<locals>.gen_random)r��r��r��r.rr$r$r%rOK	�zTestThread.test_normalcCr)NcSs|jt�d�d�|d<dS)N�rTr(r�.)r�r2r�rr$r$r%rR	sz'TestThread.test_exp.<locals>.gen_randomrrrrr$r$r%�test_expQ	rzTestThread.test_expcCr)NcSs|jddgddd�|d<dS)Nrr(r�r�r�.)rXrr$r$r%rX	sz/TestThread.test_multinomial.<locals>.gen_random)r�r�rrrr$r$r%r)W	rzTestThread.test_multinomialN)rCrDrEr�r�rOrr)r$r$r$r%r�0	sr�c@r�)�TestSingleEltArrayInputcCs4t�dg�|_t�dg�|_t�dg�|_d|_dS)NrGrrr�r�)r2rh�argOne�argTwo�argThree�tgtShaper=r$r$r%r�`	s
zTestSingleEltArrayInput.setupcCs�tjtjtjtjtjtjtjtjtj	tj
tjtjf}tjtjf}|D]}||vr1|t
�dg��}n||j�}t|j|j�q"dSr�)rMr�ror�r|rSr�r]r_rXr�rr%r2rhr
rrgr
)r.�funcs�	probfuncsr�r�r$r$r%�test_one_arg_funcsf	s�
�z*TestSingleEltArrayInput.test_one_arg_funcscCs�tjtjtjtjtjtjtjtjtj	tj
tjtjtj
tjf}tj
tjf}|D];}||vr3t�dg�}n|j}||j|�}t|j|j�||jd|�}t|j|j�||j|d�}t|j|j�q&dS)NrKr)rMr�rNr�rrrDr�rrrr!r�rNr�r2rhrr
rrgr
)r.rrr�rr�r$r$r%�test_two_arg_funcsy	s(��z*TestSingleEltArrayInput.test_two_arg_funcsc	Cs�tjtjtjtjtjtjtjtjtj	g	}t
j}t�dg�}t�dg�}|D]3}|||||d�}t
|j|j�||d|||d�}t
|j|j�|||d||d�}t
|j|j�q%dS)Nr5rr�)r2rrr
rrrrfr�r	rMr,rhrrgr
)r.r&r�r�r+r*r�r�r$r$r%rY�	s��z%TestSingleEltArrayInput.test_integerscCs�tjtjtjg}|D]6}||j|j|j�}t|j|j	�||jd|j|j�}t|j|j	�||j|jd|j�}t|j|j	�q
dS)Nr)
rMrIr�rr
rrrrgr
)r.rr�r�r$r$r%�test_three_arg_funcs�	s��z,TestSingleEltArrayInput.test_three_arg_funcsN)rCrDrEr�rrrYrr$r$r$r%r	_	sr	r)cCs�|d}|d}t|�}|�|�|jdd}tjdkr!|��}t�|�}|jdd|ddks5J�|��|ddksAJ�|�	�}|jdd}tjdkrU|��}t�|�}|jdd|d	dksiJ�|��|d	dksuJ�dS)
Nrrr�r�r>rrrr)
r
r6r�rr
rrrrr)r)rr�mt19937r�rrr$r$r%�test_jumped�	s"




rcCsht�d�}t�d�}d}tj||dd�jdksJ�t�t��tj|||d�Wd�n1s1wYt�t��tj||dd�Wd�n1sNwYt�t��tj||dd�Wd�n1skwYt�d�}t�t��tj||d�Wd�n1s�wYt�t��tj|dd�Wd�n1s�wYt�t��tj|dd�Wd�n1s�wYt�	|�}t�t��tj||d	�Wd�n1s�wYt�t��tj
d
ddgd
d�Wd�n	1�swYt�t��tj
d
dgdd
d�Wd�n	1�s%wYt�t��tj
d
dgddgd
d�Wd�n	1�sGwYt�t��tjddgddgd
d�Wd�n	1�siwYtjddd�}tjddd�}tjddd�}t�
|||�jdk�s�J�tjtdd��tj
|||dd�Wd�dS1�s�wYdS)Nrr)r�rr)rr�rG)r^r�rrr�)r5rr)r�r5r5)rrr�r5rvgffffff�?)rGr5rGr^zOutput size \(6, 5, 1, 1\) isr})r�r^r5r5)r2r�rMrNrgr�r�r<ror�rNrXr�rI)r7r r�rgr�ryrzr{r$r$r%�test_broadcast_size_error�	s\

���
���
�����$�rcCsdt�d�}t�d�}tj||dd�t�t��tj||dd�Wd�dS1s+wYdS)Nrrr�rG)r2r�rMrNr�r�r<)r7r r$r$r%�test_broadcast_size_scalar�	s

"�rcCs8ggdg}ttd��}t|j|�|dgggksJ�dSr@)rr
rrt)�seq�genr$r$r%�test_ragged_shuffle
s
rr+r?cCs�ttd��}|r
dnd}tjt|d��|j||d�Wd�n1s%wY|r.dnd}tjt|d��|jd||d�Wd�n1sJwYtjt|d��|jdg||d�Wd�dS1skwYdS)	Nrzhigh < 0z	high <= 0r}raz
low > highzlow >= highr9)rr
r�r�r<r,)r+r&r�msgr$r$r%�!test_single_arg_integer_exception
s��"�rrJ�f4�f8cCs�tjdd|d�}gd�}tjtdd��tj|||d�Wd�n1s&wYtjtdd��tj|||j|d�Wd�dS1sHwYdS)	Nr��F)�orderrJr�zSupplied output arrayr}rtru)r2r�r�r�r<rMrorg)rJr�rgr$r$r%�test_c_contig_req_out
s�"�r rr�C�distcCsHtjd||d�}|||d�}||usJ�||||jd�}||us"J�dS)Nr�)rJrrt)r�rJr�)r2r�rg)r"rrJr��variatesr$r$r%�test_contig_req_out%
s
r$).rrr��numpyr2�numpy.linalgr�
numpy.testingrrrrrrr	r
r�numpy.randomrr
rrrM�JUMP_TEST_DATA�fixturer&r'rFrSr�r�r�rMr�r�r	r�r�rrrrrr r�r$r$r$r$r%�<module>s�,
����
$<"	D0/U
+