Your IP : 216.73.216.213


Current Path : /proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/
Upload File :
Current File : //proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/test_random.cpython-34.pyc

�
f fH}�@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�ndS)�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)z0Helper function to make a list of random numberscsg|]}�jj��qS�)�gen�random)�.0�i)�selfr
�5/opt/alt/python34/lib64/python3.4/test/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�timeZsleepZassertNotEqual)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_effectr4)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)rr9ZlstZseqsZ
shuffled_seqsZshuffled_seq�seqZshuffled_lstr
r
r�test_shuffle;s(
	

 

zTestBasicOps.test_shufflec
Csk|jj}|jt��|g�WdQX|j|dg�d�|j|ddg�ddg�dS)N�2��K)r�choicer0�
IndexErrorr�assertIn)rrCr
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=r0�
ValueError)rrZ
population�k�sZuniqr
r
r�test_samplebszTestBasicOps.test_samplecs�d}t|�}d}�fdd��x�t|�D]|}�|��||�}i}xSt|�D];}d|t|jj||��<t|�|krjPqjqjW|j�q7WdS)N�i'cs"|dkrdS|�|d�S)Nrr#r
)r)�	factorialr
rrNwsz8TestBasicOps.test_sample_distribution.<locals>.factorial)rr-rrHr;Zfail)rr�popZtrialsrJ�expectedZpermsrr
)rNr�test_sample_distributionqsz%TestBasicOps.test_sample_distributioncCs�|jjttd��d�|jjtd�d�|jjtd�d�|jjtd�d�|jjtd�d�dS)Nr%r)Zabcdefghijklmnopqrst)rrHr<r�strr-)rr
r
r�test_sample_inputs�s
zTestBasicOps.test_sample_inputscCs)|jt|jjtjd�d�dS)NZabcdefr))r0r1rrHr/�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#rVrWrXrYrZr[)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�)rerf)rgrh)rirj)	�openrZfindfiler_�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��?)rrv�sumrr=)rrrJr
)rvr�
test_bug_9025�s%zTestBasicOps.test_bug_9025N)rr r!rrrr4�unittest�mock�patchr7r?rFrLrQrSrUr]rdruryr
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)r0r5rrr)rr
r
rr�sz*SystemRandom_TestBasicOps.test_saverestorecCs|jjd�dS)NrG)rr)rr
r
rr4�sz'SystemRandom_TestBasicOps.test_seedargscCs6d|j_|jjd�|j|jjd�dS)NrG)rZ
gauss_nextrr)rr
r
rr]�sz$SystemRandom_TestBasicOps.test_gausscCs>x7ttjd�D]"}|jttj|j|�qWdS)Nr#)rr_r`r0r5rar)rrcr
r
rrd�sz'SystemRandom_TestBasicOps.test_picklingcCsXd}d}x1td�D]#}|t|jj�|�O}qW|j||d�dS)Nr)�5rrGr#l)rrorr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�rrGr#l" )rrrvr=r)rrr�rrtr
r
r�test_bigrand�s#z&SystemRandom_TestBasicOps.test_bigrandc	Cs�x�ddddddddd	g	D]z}|jjd
|d
�}|jjd
|�}||krjq"n|j||jj||�ko�|kn�q"WdS)N�(�P������iwii&r))rrvr=)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
)rrv)r
r)rr�r�r
rr�s	z>SystemRandom_TestBasicOps.test_rangelimits.<locals>.<listcomp>rG���)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�)rrvrEr)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�rrGrVgn��!	@g����	�@�*i/���i�)rr0rIrrv)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���rGg333333$@r+)rr=r�getrandbitsrr0r1rI)rrJ�getbitsrr�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)�)rrrEr=)r�_logrorr�numbitsrJr
r
r�test_randbelow_logic%s

/z.SystemRandom_TestBasicOps.test_randbelow_logicN)rr r!r�SystemRandomrrrr4r]rdr�r�r�r�r�r�r�rror�r
r
r
rr}�s
r}c@s�eZdZej�Zdd�Zdd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
dd�Zdd�Zdd�Zeedd�Zejjd�dd��Zdd�ZdS)�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_stablecCs|jt|jjd�dS)Nr#)r#NN)r0rIrr)rr
r
r�test_setstate_first_argIsz4MersenneTwister_TestBasicOps.test_setstate_first_argcCsd|jt|jjd�|jt|jjd
�|jt|jjddddf�|jt|jjdddddf�|jttf��&|jjdddddf�WdQX|jttf��&|jjdddddf�WdQX|jj�d}t|�}td�|d<d	d
�|D�}|jt|jjd|df�dS)Nr)r#r(r&�qrip�nancss|]}t|�VqdS)N)ro)r
�xr
r
rrwbszHMersenneTwister_TestBasicOps.test_setstate_middle_arg.<locals>.<genexpr>)r)NN�r#r)r()r)r�N)r&)r)r&)r#)r�)r#r+)r+r+)	r0r1rrrI�
OverflowErrorrr.�float)rZstate_valuesrr
r
r�test_setstate_middle_argLs&*''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)rrP�actualr&�er
r
r�test_referenceImplementationes	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:rro)rr�rPr�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~rrGr#l)rrorrr)rrr�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�rrGr#l" )rrrvr=r)rrr�rrtr
r
rr��s#z)MersenneTwister_TestBasicOps.test_bigrandc	Cs�x�ddddddddd	g	D]z}|jjd
|d
�}|jjd
|�}||krjq"n|j||jj||�ko�|kn�q"WdS)Nr�r�r�r�r�r�iwii&r))rrvr=)rrr�r�r
r
rr��s(z0MersenneTwister_TestBasicOps.test_bigrand_rangescshxadddgD]P\���jtt����t���fdd�td�D���qWdS)Nr)rr�cs%g|]}�jj����qSr
)rrv)r
r)rr�r�r
rr�s	zAMersenneTwister_TestBasicOps.test_rangelimits.<locals>.<listcomp>rGr�)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��rGlS!m�.vFXOr#i�rr)r(r*r�r�r�r~r�r�r�r�r�r&r+)	rrrr�rr=r0r1rI)rrJr�rr�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�)rrrEr=)rr�rorrr�rJr
r
rr��s

/z1MersenneTwister_TestBasicOps.test_randbelow_logiczrandom.Random.randomcCs�tj�j|_dtj>}tj��/tjdt�|jj	|dd|�WdQX|jj	dd|�d}d}||||}||||g|_|jj	|d|�dS)Nr#�ignore�maxsizeir�g{�G�z�?)
rr�r6ZBPF�warnings�catch_warnings�simplefilter�UserWarningrZ
_randbelow)r�random_mockr�r�epsilon�limitr
r
r�test_randbelow_overriden_random�s

 z<MersenneTwister_TestBasicOps.test_randbelow_overriden_randomcCsid}d}d}|jj|||�}|j||koG|kn�|j|||d�dS)NlJ)�l F�x:^Vr�rl���� F�x:^Vi8���)rrvr=r)rr�r��stepr�r
r
r�test_randrange_bug_1590891s#z7MersenneTwister_TestBasicOps.test_randrange_bug_1590891N)rr r!r�Randomrr�r�r�r�r�r�r�r�r�r�r�rror�rzr{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)�zZsqrt2piZazr
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
rr.s	z5TestDistributions.test_zeroinputs.<locals>.<listcomp>r@grMr#r$g�?g{�G�z�?gi@g@gUUUUUU�?)rr�rrO�uniform�
paretovariate�expovariate�weibullvariate�vonmisesvariate�
normalvariater\�lognormvariate�gammavariate�betavariate�
triangular)rr�r
)r�r�test_zeroinputs+s<*

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
rrCs	z2TestDistributions.test_avg_std.<locals>.<listcomp>r#��?�$@r)rV��@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�rOr;�appendrDr�r)rr�r��variate�args�muZ	sigmasqrd�yr�s1�s2r�r
)rr�test_avg_std>s8"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)NrG�$@�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�rPrr
r
r�
test_constant^s""zTestDistributions.test_constantc
Cs�tj�}d}x�dD]{}xrdD]j}xat|�D]S}|j||�}|jd|koqtjknd	d
j|||��q9Wq&WqWdS)
NrG�皙�����?�������@�������@�ffffff@�@@rr�zCvonmisesvariate({}, {}) produced a result {} out of range [0, 2*pi])r�r�r�r�)r�r�r�)rr�rr�r=�TWOPI�format)rr�rr�Zkappa�_rHr
r
r�test_von_mises_rangers

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+���)r0rIr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�?)r6rr�r��_e�_expr�)rr�Zreturned_valuerrr�ZalphaZbeta�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)rr r!r�r�r�r�r�rrzr{r|rrr
r
r
rr�*s 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Z
NV_MAGICCONSTr�ZLOG4Z
SG_MAGICCONST)rr
r
r�testMagicConstants�szTestModule.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
rr�szFTestModule.test_random_subclass_with_kwargs.<locals>.Subclass.__init__)rr r!rr
r
r
r�Subclass�srr
r#)rr�)rrr
r
r� test_random_subclass_with_kwargs�sz+TestModule.test_random_subclass_with_kwargsN)rr r!rrrr
r
r
rr�sr�__main__)rzZ
unittest.mockrrr_r��	functoolsrr�rrrrrZtestrr	r�r5ZSystemRandom_availableZ
skipUnlessZTestCaser}r�r�r�rr�mainr
r
r
r�<module>s,(�
u��