Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib64/python3.5/test/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/test/__pycache__/test_random.cpython-35.opt-2.pyc



���]߁�@s�ddlZddlZddlZddlZddlZddlZddlmZddlm	Z	m
Z
mZmZm
Z
ddlmZGdd�d�Zyej�j�Wnek
r�dZYnXdZejed	�Gd
d�deej��ZGdd
�d
eej�Zdeddd�ZGdd�dej�ZGdd�dej�Zedkr�ej�dS)�N)�partial)�log�exp�pi�fsum�sin)�supportc@s�eZdZdd�Zdd�Zdd�Zdd�Zejj	d	�d
d��Z
dd
�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd S)!�TestBasicOpscs�fdd�t|�D�S)Ncsg|]}�jj��qS�)�gen�random)�.0�i)�selfr
�0/opt/alt/python35/lib64/python3.5/test_random.py�
<listcomp>s	z+TestBasicOps.randomlist.<locals>.<listcomp>)�range)r�nr
)rr�
randomlistszTestBasicOps.randomlistcCsY|jj�|jj�}tjd�|jj�|jj�}|j||�dS)Ng�������?)r�seed�getstate�time�sleepZassertNotEqual)rZstate1Zstate2r
r
r�
test_autoseeds


zTestBasicOps.test_autoseedcCs^d}|jj�|jj�}|j|�}|jj|�|j||j|��dS)Ni�)rrrr�setstate�assertEqual)r�N�stateZrandseqr
r
r�test_saverestores
zTestBasicOps.test_saverestorecCs�Gdd�dt�}xQdddddddddddd	td
�|�gD]}|jj|�qPWxBttd��tdd�gD]}|jt|jj|�q�W|jt|jjdd
dd�|jtt	|j�g�dS)Nc@seZdZdd�ZdS)z*TestBasicOps.test_seedargs.<locals>.MySeedcSsdS)Ni�i?���r
)rr
r
r�__hash__'sz3TestBasicOps.test_seedargs.<locals>.MySeed.__hash__N)�__name__�
__module__�__qualname__rr
r
r
r�MySeed&sr#r��
�g��Q�	@y@�a�abc�Zone�����r,l F�x:^Vl F�x:^Vl���� F�x:^Vy�?@)
�object�tuplerr�listr�dict�assertRaises�	TypeError�type)rr#�argr
r
r�
test_seedargs$s"("zTestBasicOps.test_seedargszrandom._urandomcCst|_|j�dS)N)�NotImplementedError�side_effectr5)rZurandom_mockr
r
r�*test_seed_when_randomness_source_not_found1s	z7TestBasicOps.test_seed_when_randomness_source_not_foundcCsY|jj}g}||�|j|g�dg}||�|j|dg�dd�td�D�}dd�td�D�}x|D]}||�q�WxUt||�D]D\}}|jt|�t|��|jt|�t|��q�Wttd��}ttd��}||�|j||k�||�|j||k�dS)N�%cSs"g|]}tt|���qSr
)r/r)r
rr
r
rrCs	z-TestBasicOps.test_shuffle.<locals>.<listcomp>r%cSs"g|]}tt|���qSr
)r/r)r
rr
r
rrDs	i�)	r�shufflerr�zip�len�setr/�
assertTrue)rr:ZlstZseqsZ
shuffled_seqsZshuffled_seq�seqZshuffled_lstr
r
r�test_shuffle;s(
	

 

zTestBasicOps.test_shufflecCsl|jj}|jt��|g�WdQRX|j|dg�d�|j|ddg�ddg�dS)N�2��K)r�choicer1�
IndexErrorr�assertIn)rrDr
r
r�test_choice[s
zTestBasicOps.test_choicecCs�d}t|�}x~t|d�D]l}|jj||�}|jt|�|�t|�}|jt|�|�|j|t|�k�q#W|j|jjgd�g�|jt|jj||d�dS)N�dr$r)	rr�samplerr<r=r>r1�
ValueError)rr�
population�k�sZuniqr
r
r�test_samplebszTestBasicOps.test_samplecs�d}t|�}d}�fdd��x�t|�D]y}�|��||�}i}xPt|�D]8}d|t|jj||��<t|�|krjPqjW|j�q7WdS)N�i'cs"|dkrdS|�|d�S)Nrr$r
)r)�	factorialr
rrPwsz8TestBasicOps.test_sample_distribution.<locals>.factorial)rr.rrIr<Zfail)rr�popZtrialsrL�expectedZpermsrr
)rPr�test_sample_distributionqsz%TestBasicOps.test_sample_distributioncCs�|jjttd��d�|jjtd�d�|jjtd�d�|jjtd�d�|jjtd�d�dS)Nr&r*Zabcdefghijklmnopqrst)rrIr=r�strr.)rr
r
r�test_sample_inputs�s
zTestBasicOps.test_sample_inputscCs)|jt|jjtjd�d�dS)NZabcdefr*)r1r2rrIr0�fromkeys)rr
r
r�test_sample_on_dicts�sz!TestBasicOps.test_sample_on_dictscCs�x�d	D]�}|jj|�|jj�}|jjdd�}|jj|�|jj�}|jjdd�}|j||�|j||�qWdS)
Nr$��{���90�@���	r)r$rXrYrZr[r\r])rrr�gaussr)rrZx1Zy1Zx2Zy2r
r
r�
test_gauss�s
zTestBasicOps.test_gausscs�x�ttjd�D]x}tj�j|�}�fdd�td�D�}tj|���fdd�td�D�}�j||�qWdS)Nr$csg|]}�jj��qSr
)rr)r
r)rr
rr�s	z.TestBasicOps.test_pickling.<locals>.<listcomp>r%csg|]}�j��qSr
)r)r
r)�newgenr
rr�s	)r�pickle�HIGHEST_PROTOCOL�dumpsr�loadsr)r�protorZorigseqZrestoredseqr
)r`rr�
test_pickling�szTestBasicOps.test_picklingcCs{d	d
dg}xe|D]]\}}ttj|�d�}tj|�}|j�|jt|j�d�|�qWdS)N�
randv2_32.pck��
randv2_64.pck�b�
randv3.pck�W�rbi�)rgrh)rirj)rkrl)	�openrZfindfilera�load�closer�intr)r�files�file�value�f�rr
r
r�test_bug_1727780�s	
zTestBasicOps.test_bug_1727780csid}|jj�t�fdd�t|�D��}|jd||koXdkn||�dS)Ni��c3s%|]}�d�ddkVqdS)l�r)r*Nr
)r
r)�	randranger
r�	<genexpr>�sz-TestBasicOps.test_bug_9025.<locals>.<genexpr>g333333�?g�G�z��?)rrx�sumrr>)rrrLr
)rxr�
test_bug_9025�s%zTestBasicOps.test_bug_9025N)r r!r"rrrr5�unittest�mock�patchr8r@rGrNrSrUrWr_rfrwr{r
r
r
rr	s

 
r	FTz!random.SystemRandom not availablec@s�eZdZej�Zdd�Zdd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
dd�Zdd�Zdd�Zdd�Zeedd�ZdS)�SystemRandom_TestBasicOpscCs|jj�dS)N)rr)rr
r
rr�sz'SystemRandom_TestBasicOps.test_autoseedcCs3|jt|jj�|jt|jjd�dS)N)r1r6rrr)rr
r
rr�sz*SystemRandom_TestBasicOps.test_saverestorecCs|jjd�dS)NrH)rr)rr
r
rr5�sz'SystemRandom_TestBasicOps.test_seedargscCs6d|j_|jjd�|j|jjd�dS)NrH)r�
gauss_nextrr)rr
r
rr_�sz$SystemRandom_TestBasicOps.test_gausscCs>x7ttjd�D]"}|jttj|j|�qWdS)Nr$)rrarbr1r6rcr)rrer
r
rrf�sz'SystemRandom_TestBasicOps.test_picklingcCsXd}d}x1td�D]#}|t|jj�|�O}qW|j||d�dS)Nr*�5rrHr$l)rrqrrr)r�span�cumrr
r
r�test_53_bits_per_float�s
!z0SystemRandom_TestBasicOps.test_53_bits_per_floatcCszd}d}xStd�D]E}|jj|�}|jd|koN|kn�||O}qW|j||d�dS)Nr*i�rrHr$l" )rrrxr>r)rr�r�rrvr
r
r�test_bigrand�s#z&SystemRandom_TestBasicOps.test_bigrandc	Cs�x�ddddddddd	g	D]w}|jjd
|d
�}|jjd
|�}||krgq"|j||jj||�ko�|kn�q"WdS)N�(�P������iwii&r*)rrxr>)rr�start�stopr
r
r�test_bigrand_ranges�s(z-SystemRandom_TestBasicOps.test_bigrand_rangescshxadddgD]P\���jtt����t���fdd�td�D���qWdS)Nr*r�<cs%g|]}�jj����qSr
)rrx)r
r)rr�r�r
rr�s	z>SystemRandom_TestBasicOps.test_rangelimits.<locals>.<listcomp>rH���)r�rll�������l���)r�r��l�)r�r�)rr=r)rr
)rr�r�r�test_rangelimits�sz*SystemRandom_TestBasicOps.test_rangelimitscCsT|jjddd�}|j|d�|jjddd�}|j|d�dS)Nrr%r*r+��)rr*r+r�r�)rrxrFr)rZrintr
r
r�test_randrange_nonunit_step�sz5SystemRandom_TestBasicOps.test_randrange_nonunit_stepcCs}t|jt|jj�}|dd�|d	�|ddd
�|d�|dd�|ddd�|ddd�dS)Nr)i�rrHrXgn��!	@g����	�@�*i/���i�)rr1rJrrx)rZraisesr
r
r�test_randrange_errorss



z/SystemRandom_TestBasicOps.test_randrange_errorscCsZxJtdd�D]9}|jd|jj|�koCd|kn�qW|jj}x}dddddddd	d
ddd
ddgD]K}d}x$td�D]}|||�O}q�W|j|d|d�q�W|jt|jj�|jt|jjdd�|jt|jjd�|jt|jjd�|jt|jjd�dS)Nr$i�rr*r)r+�� �4r��6�w���rHg333333$@r,)rr>r�getrandbitsrr1r2rJ)rrL�getbitsr�r�rr
r
r�test_genrandbitss77z*SystemRandom_TestBasicOps.test_genrandbitscCsIxBtdd�D]1}d|>}|d}|d||d��}|j||�|j|d|d�||d7}|d||d��}|j|||dg�|jd||ko�d|dkn�||d?8}|d||d��}|j||�|jd||ko;d|dkn�qWdS)Nr$i�gr�Z|
�?r*�)rrrFr>)r�_logrqrr�numbitsrLr
r
r�test_randbelow_logic%s

/z.SystemRandom_TestBasicOps.test_randbelow_logicN)r r!r"r�SystemRandomrrrr5r_rfr�r�r�r�r�r�r�rrqr�r
r
r
rr�s
rc@s�eZdZej�Zdd�Zdd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
dd�Zdd�Zdd�Zdd�Zeedd�Zejjd�dd��Zdd�Zd S)!�MersenneTwister_TestBasicOpscs��jjddd��j�fdd�td�D�ddd	d
g��jjddd��j�fd
d�td�D�ddddg�dS)Ni��4�versionr$cs%g|]}�jj�j��qSr
)rr�hex)r
r)rr
rrAs	zGMersenneTwister_TestBasicOps.test_guaranteed_stable.<locals>.<listcomp>r+z0x1.ac362300d90d2p-1z0x1.9d16f74365005p-1z0x1.1ebb4352e4c4dp-1z0x1.1a7422abf9c11p-1zthe quick brown foxr*cs%g|]}�jj�j��qSr
)rrr�)r
r)rr
rrEs	z0x1.1239ddfb11b7cp-3z0x1.b3cbb5c51b120p-4z0x1.8c4f55116b60fp-1z0x1.63eb525174a27p-1)rrrr)rr
)rr�test_guaranteed_stable>s"
"z3MersenneTwister_TestBasicOps.test_guaranteed_stablecs��jjddd��j�fdd�td�D�ddd	d
g��jjddd��j�fdd�td�D�d
dddg��jjddd��j�fdd�td�D�ddddg�dS)NZnofarr�r$cs%g|]}�jj�j��qSr
)rrr�)r
r)rr
rrMs	z?MersenneTwister_TestBasicOps.test_bug_27706.<locals>.<listcomp>r+z0x1.8645314505ad7p-1z0x1.afb1f82e40a40p-5z0x1.2a59d2285e971p-1z0x1.56977142a7880p-6Zrachelcs%g|]}�jj�j��qSr
)rrr�)r
r)rr
rrRs	z0x1.0b294cc856fcdp-1z0x1.2ad22d79e77b8p-3z0x1.3052b9c072678p-2z0x1.578f332106574p-3�cs%g|]}�jj�j��qSr
)rrr�)r
r)rr
rrWs	z0x1.b0580f98a7dbep-1z0x1.84129978f9c1ap-1z0x1.aeaa51052e978p-2z0x1.092178fb945a6p-2)rrrr)rr
)rr�test_bug_27706Is"
"
"z+MersenneTwister_TestBasicOps.test_bug_27706cCs|jt|jjd�dS)Nr$)r$NN)r1rJrr)rr
r
r�test_setstate_first_arg[sz4MersenneTwister_TestBasicOps.test_setstate_first_argcCs�|jj�}|jt|jjd�|jt|jjd�|jt|jjddddf�|jt|jjdddddf�|jttf��&|jjdddddf�WdQRX|jttf��&|jjdddddf�WdQRX|jjd�}|jj|�|j|jjd�|�|jj�d}t	|�}t
d	�|d<d
d�|D�}|jt|jjd|df�dS)Nr*r$r)r'�qriprH�nancss|]}t|�VqdS)N)rq)r
�xr
r
rryyszHMersenneTwister_TestBasicOps.test_setstate_middle_arg.<locals>.<genexpr>)r*NN�r$r*r))r*r�N)r')r)r')r$)r�)r$r,)r,r,)rrr1r2rrJ�
OverflowErrorr�rr/�float)rZstart_stateZbits100Zstate_valuesrr
r
r�test_setstate_middle_arg^s"&*((z5MersenneTwister_TestBasicOps.test_setstate_middle_argc
Cs�ddddddddd	d
g
}|jjd�|jd�dd�}x3t||�D]"\}}|j||dd�q]WdS)Ng>F��dV�?g�wR1ۉ�?g�Q�"��?g~��5��?g�mb�?g�Y�KbX�?gH,r̊��?g�V���8�?g�O��ֶ?g�4�Ԗ�?i#�iGar�if�@i���`i�r%�places�ll#ql`&l#q`&l�'Rl#q`&�'Ri����)rrrr;�assertAlmostEqual)rrR�actualr'�er
r
r�test_referenceImplementation|s	z9MersenneTwister_TestBasicOps.test_referenceImplementationc
Cs�ddlm}ddddddd	d
ddg
}|jjd�|jd�dd�}x<t||�D]+\}}|jt||d��|�qmWdS)Nr)�ldexpl#�1�,ul�w�bl'�l�J�X�l�u�ak~[l@"p1ylsV�%bX$l�E3EJl�V�b�l�a�oekl�4�)[v�i#�iGar�ifr�i��r�i�r%r�ll#ql`&l#q`&l�'Rl#q`&�'Ri����)�mathr�rrrr;rrq)rr�rRr�r'r�r
r
r�$test_strong_reference_implementation�s	zAMersenneTwister_TestBasicOps.test_strong_reference_implementationcCsd}|jj|�dS)Nr$i'r�i�8l� l������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������)rr)rrr
r
r�test_long_seed�sz+MersenneTwister_TestBasicOps.test_long_seedcCsXd}d}x1td�D]#}|t|jj�|�O}qW|j||d�dS)Nr*r�rrHr$l)rrqrrr)rr�r�rr
r
rr��s
!z3MersenneTwister_TestBasicOps.test_53_bits_per_floatcCszd}d}xStd�D]E}|jj|�}|jd|koN|kn�||O}qW|j||d�dS)Nr*i�rrHr$l" )rrrxr>r)rr�r�rrvr
r
rr��s#z)MersenneTwister_TestBasicOps.test_bigrandc	Cs�x�ddddddddd	g	D]w}|jjd
|d
�}|jjd
|�}||krgq"|j||jj||�ko�|kn�q"WdS)Nr�r�r�r�r�r�iwii&r*)rrxr>)rrr�r�r
r
rr��s(z0MersenneTwister_TestBasicOps.test_bigrand_rangescshxadddgD]P\���jtt����t���fdd�td�D���qWdS)Nr*rr�cs%g|]}�jj����qSr
)rrx)r
r)rr�r�r
rr�s	zAMersenneTwister_TestBasicOps.test_rangelimits.<locals>.<listcomp>rHr�)r�rll�������l���)r�r��l�)r�r�)rr=r)rr
)rr�r�rr��sz-MersenneTwister_TestBasicOps.test_rangelimitscCs�|jjd�|j|jjd�d�xJtdd�D]9}|jd|jj|�kood|kn�q<W|jj}x}dddd	d
dddd
dddddgD]K}d}x$td�D]}|||�O}q�W|j|d|d�q�W|jt|jj�|jt|jjd�|jt|jjdd�|jt|jjd�|jt|jjd�dS)Ni��rHlS!m�.vFXOr$i�rr*r)r+r�r�r�r�r�r�r�r�r�r'r,)	rrrr�rr>r1r2rJ)rrLr�r�r�rr
r
rr��s 77z-MersenneTwister_TestBasicOps.test_genrandbitscCsIxBtdd�D]1}d|>}|d}|d||d��}|j||�|j|d|d�||d7}|d||d��}|j|||dg�|jd||ko�d|dkn�||d?8}|d||d��}|j||�|jd||ko;d|dkn�qWdS)Nr$i�gr�Z|
�?r*r�)rrrFr>)rr�rqrrr�rLr
r
rr��s

/z1MersenneTwister_TestBasicOps.test_randbelow_logiczrandom.Random.randomcCs�tj�j|_dtj>}tj��/tjdt�|jj	|dd|�WdQRX|jj	dd|�d}d}||||}||||g|_|jj	|d|�dS)Nr$�ignore�maxsizeir�g{�G�z�?)
rr�r7�BPF�warnings�catch_warnings�simplefilter�UserWarningr�
_randbelow)r�random_mockr�r�epsilon�limitr
r
r� test_randbelow_overridden_randoms

!z=MersenneTwister_TestBasicOps.test_randbelow_overridden_randomcCsid}d}d}|jj|||�}|j||koG|kn�|j|||d�dS)NlJ)�l F�x:^Vr�rl���� F�x:^Vi8���)rrxr>r)rr�r��stepr�r
r
r�test_randrange_bug_1590891's#z7MersenneTwister_TestBasicOps.test_randrange_bug_1590891N)r r!r"r�Randomrr�r�r�r�r�r�r�r�r�r�r�r�rrqr�r|r}r~r�r�r
r
r
rr�;s 	 r�g@g�?c
Cs�|dkr,ttt|�td|�S|d}||dt|�|tdd|d|dd|dd|d
d|dd|dd|dd|dg	�S)Ng�?g�?g@g
����?g�
ö)$�@g&Ԏ���@g
t�a��@g@g���Q�f@g@g>@~�)@g@gA~����?g@g�~\���>g@g���i�E�>g@g&Ԏ����g���Q�f�gA~�����)rr�gammarr)�zZsqrt2pi�azr
r
rr�/s 
r�c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Ze	j
jd
�dd��Ze	j
jd�dd��Z
dS)�TestDistributionscsKtj���fdd�td�D�dgd}|dd�j�_�jdd�|dd�j�_�jd�|dd�j�_�jd�|dd�j�_�jdd�|dd�j�_�jdd�|dd�j�_�j	dd�|dd�j�_�j
dd�|dd�j�_�jdd�|dd�j�_�jdd�|dd�j�_�jd	d�|dd�j�_�jdd�|dd�j�_�jd
d�|dd�j�_�j
dd�|dd�j�_�jddd�dS)
Ncsg|]}�j��qSr
)r)r
r)�gr
rrEs	z5TestDistributions.test_zeroinputs.<locals>.<listcomp>rAgrOr$r%g�?g{�G�z�?gi@g@gUUUUUU�?)rr�rrQ�uniform�
paretovariate�expovariate�weibullvariate�vonmisesvariate�
normalvariater^�lognormvariate�gammavariate�betavariate�
triangular)rr�r
)r�r�test_zeroinputsBs<*

z!TestDistributions.test_zeroinputsc
s�tj�}d��fdd�td��D�}x�|jdddf|jddd!f|jd"d#d%f|jd&ttddf|jd'd)d.f|j	d/t
d1�t
d3�t
d5�dfgD]\}}}}|dd�j|_g}xFtt|��D]2}y|j
||��Wq
tk
r;Yq
Xq
Wd}	}
x*|D]"}|	|7}	|
||d7}
qQWt|��|j|	�|dddd|j|f�|j|
�d|dddd|j|f�q�WdS)6Ni�cs g|]}|t���qSr
)r�)r
r)rr
rrZs	z2TestDistributions.test_avg_std.<locals>.<listcomp>r$��?�$@r*rX��@g@g"@g@g2@��?�G�z��?rr)�@r��msgz%s%r)r�r�g&@g@g"@g@T@g@�UUUUUU�?)r�r�r�g�q�q�?g9��8���?g�<ݚ�?)r�gUUUUUU�?g@g�q�q�?)r�r)r�g@g�?g@g0@g@gH@g�������?)r�r�gUUUUUU�?gUUUUUU�?gUUUUUU�?g�������?gUUUUUU�?gUUUUUU�?)rr�rr�r�r�r�rr�r�r�rQr<�appendrEr�r )rr�r��variate�args�muZ	sigmasqrd�yr�s1�s2r�r
)rr�test_avg_stdUs8"0
	


zTestDistributions.test_avg_stdcCsHtj�}d}x/|jddf|jddf|jd	df|jtd�fdf|jdtd�fdf|jd
df|jddf|jtd�dfdf|j	ddf|j
td�fdf|jdtd�fdf|jd
dfgD]<\}}}x*t|�D]}|j
||�|�q WqWdS)NrH�$@�inf�g@g�?)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�rr)rr�rr�r�rRrr
r
r�
test_constantus""zTestDistributions.test_constantc
Cs�tj�}d}x�dD]{}xrdD]j}xat|�D]S}|j||�}|jd|koqtjknd	d
j|||��q9Wq&WqWdS)
NrH�皙�����?�������@�������@�ffffff@�@@rr�zCvonmisesvariate({}, {}) produced a result {} out of range [0, 2*pi])r�r�r�r)r�rr)rr�rr�r>�TWOPI�format)rr�rr��kappa�_rIr
r
r�test_von_mises_range�s

z&TestDistributions.test_von_mises_rangecCs$tjdd�tjdd�dS)Nrg4&�kCg}Ô%�I�T)rr�)rr
r
r�test_von_mises_large_kappa�sz,TestDistributions.test_von_mises_large_kappacCsh|jttjdd�|jttjdd�|jttjdd�|jttjdd�dS)Nr$r)rr*r,���)r1rJrr�)rr
r
r�test_gammavariate_errors�sz*TestDistributions.test_gammavariate_errorszrandom.Random.randomcCs2dddg|_tjdd�}|j|d�ddg|_tjdd	�}|j|d
�tj}tj}tj}d}d}|||}d
}	d}
d}|
||	|
|g|_tj||�}|j|d�d}
d}|
||	|
|g|_tj||�}|j|d�dS)Ng:�0�yE>g�?g333333�?g�������?gffffff@g=
ףp=@g�������?g�?g��Q�	@g�dº�@gffffff�?g333333�?g{�G�z�?gX� �Y�?g=�,6V��?g�.3333�?g�l%�t��?g�K,	�9�?g7SvT�?)r7rr�r��_e�_expr�)rr�Zreturned_valuerrr��alpha�beta�br�Zr1Zr2r
r
r�$test_gammavariate_full_code_coverage�s.
!				z6TestDistributions.test_gammavariate_full_code_coveragezrandom.Random.gammavariatecCs)d|_|jdtjdd��dS)Ngg����	�@gn��!	@)Zreturn_valuerrr�)rZgammavariate_mockr
r
r�test_betavariate_return_zero�s	z.TestDistributions.test_betavariate_return_zeroN)r r!r"r�r�r�rrr
r|r}r~rrr
r
r
rr�As Wr�c@s4eZdZdd�Zdd�Zdd�ZdS)�
TestModulecCsP|jtjd�|jtjd�|jtjd�|jtjd�dS)Ng�3?�r�?g�.DT�!@g�9��B.�?g�t�Y@)r�r�
NV_MAGICCONSTr�LOG4�
SG_MAGICCONST)rr
r
r�testMagicConstantsszTestModule.testMagicConstantscCs,|jttj�ttt��k�dS)N)r>r=r�__all__�dir)rr
r
r�test__all__szTestModule.test__all__cCs*Gdd�dtj�}|dd�dS)Nc@seZdZddd�ZdS)z=TestModule.test_random_subclass_with_kwargs.<locals>.SubclassNcSstjj|�dS)N)rr��__init__)r�newargr
r
rrszFTestModule.test_random_subclass_with_kwargs.<locals>.Subclass.__init__)r r!r"rr
r
r
r�Subclasssrrr$)rr�)rrr
r
r� test_random_subclass_with_kwargssz+TestModule.test_random_subclass_with_kwargsN)r r!r"rrrr
r
r
rrsr�__main__)r|Z
unittest.mockrrrar��	functoolsrr�rrrrrZtestrr	r�r6ZSystemRandom_availableZ
skipUnlessZTestCaserr�r�r�rr �mainr
r
r
r�<module>s,(�
u��