HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //proc/thread-self/root/usr/local/lib/python3.7/test/__pycache__/test_random.cpython-37.opt-2.pyc
B

��g^��@s:ddlZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
mZmZm
Z
mZmZddlmZddlmZGdd�d�Zye����Wnek
r�dZYnXd	Ze�ed
�Gdd�deej��ZGd
d�deej�Zdedfdd�ZGdd�dej�ZGdd�dej�Zedk�r6e� �dS)�N)�partial)�log�exp�pi�fsum�sin�	factorial)�support)�Fractionc@s�eZdZdd�Zdd�Zdd�Zdd�Zej�	d	�d
d��Z
dd
�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&S)'�TestBasicOpscs�fdd�t|�D�S)Ncsg|]}�j���qS�)�gen�random)�.0�i)�selfr�,/usr/local/lib/python3.7/test/test_random.py�
<listcomp>sz+TestBasicOps.randomlist.<locals>.<listcomp>)�range)r�nr)rr�
randomlistszTestBasicOps.randomlistcCsB|j��|j��}t�d�|j��|j��}|�||�dS)Ng�������?)r
�seed�getstate�timeZsleep�assertNotEqual)rZstate1Zstate2rrr�
test_autoseeds




zTestBasicOps.test_autoseedcCsDd}|j��|j��}|�|�}|j�|�|�||�|��dS)Ni�)r
rrr�setstate�assertEqual)r�N�stateZrandseqrrr�test_saverestores


zTestBasicOps.test_saverestorecCs�Gdd�dt�}x:ddddddddddd	d
td�|�gD]}|j�|�q8Wx0ttd��tdd
�gD]}|�t|jj|�qdW|�t|jjdddd�|�tt	|j�g�dS)Nc@seZdZdd�ZdS)z*TestBasicOps.test_seedargs.<locals>.MySeedcSsdS)Ni?���r)rrrr�__hash__*sz3TestBasicOps.test_seedargs.<locals>.MySeed.__hash__N)�__name__�
__module__�__qualname__r!rrrr�MySeed)sr%r����l F�x:^Vl���� F�x:^Vg��Q�	@y�?@�a�abc�)Zone��)
�object�tupler
r�listr�dict�assertRaises�	TypeError�type)rr%�argrrr�
test_seedargs'szTestBasicOps.test_seedargszrandom._urandomcCst|_|��dS)N)�NotImplementedError�side_effectr5)rZurandom_mockrrr�*test_seed_when_randomness_source_not_found4sz7TestBasicOps.test_seed_when_randomness_source_not_foundcCs|jj}g}||�|�|g�dg}||�|�|dg�dd�td�D�}dd�td�D�}x|D]}||�qfWx>t||�D]0\}}|�t|�t|��|�t|�t|��q�Wttd��}ttd��}||�|�||k�||�|�||k�|�	t
|d�dS)N�%cSsg|]}tt|���qSr)r/r)rrrrrrFsz-TestBasicOps.test_shuffle.<locals>.<listcomp>�
cSsg|]}tt|���qSr)r/r)rrrrrrGsi�)r&r+r*)r
�shufflerr�zip�len�setr/�
assertTruer1r2)rr;ZlstZseqsZ
shuffled_seqsZshuffled_seq�seqZshuffled_lstrrr�test_shuffle>s*
zTestBasicOps.test_shufflecCs4|jj}tjjdd�}td�}|||�|��dS)Ng�?)�return_valuesabcdefghijk)r
r;�unittest�mockZMock�	bytearrayZassert_called_with)rr;Zmock_randomr@rrr�test_shuffle_random_argument_s

z)TestBasicOps.test_shuffle_random_argumentc	CsT|jj}|�t��|g�WdQRX|�|dg�d�|�|ddg�ddg�dS)N�2��K)r
�choicer1�
IndexErrorr�assertIn)rrJrrr�test_choicegs
zTestBasicOps.test_choicecCs�d}t|�}x\t|d�D]L}|j�||�}|�t|�|�t|�}|�t|�|�|�|t|�k�qW|�|j�gd�g�|�t|jj||d�|�t|jjgd�dS)N�dr&rr')	rr
�samplerr=r>r?r1�
ValueError)rr�
population�k�sZuniqrrr�test_samplenszTestBasicOps.test_samplec	Cs|d}t|�}d}xft|�D]Z}t|�t||�}i}x<t|�D](}d|t|j�||��<t|�|kr@Pq@W|��qWdS)N�i')rrr.r
rOr=Zfail)rr�popZtrialsrR�expectedZpermsrrrr�test_sample_distribution~sz%TestBasicOps.test_sample_distributioncCsb|j�ttd��d�|j�td�d�|j�td�d�|j�td�d�|j�td�d�dS)N�r+Zabcdefghijklmnopqrst)r
rOr>r�strr.)rrrr�test_sample_inputs�s
zTestBasicOps.test_sample_inputscCs|�t|jjt�d�d�dS)NZabcdefr+)r1r2r
rOr0�fromkeys)rrrr�test_sample_on_dicts�sz!TestBasicOps.test_sample_on_dictsc	Cs~|jj}ddddg}d}td�}ttd��}x|||dd�||td�dd�|d|td�d	�|d|td�d
�gD]:}|�t|�d�|�t|�t�|�t|�t|�k�qlW|�	t
��|d�WdQRX|�||dd�g�|�||d
d�g�|�	t
��||dd�WdQRX|�t||dd��t|�k�|�t||dd��t|�k�|�	t
��||dd�WdQRX|�t||ddd��t|�k�|�t||ddd��t|�k�|�	t��||ddgdd�WdQRX|�	t
��||ddd�WdQRX|�	t
��||dgddd�WdQRXxnddddgddddgtdd�tdd�tdd�tdd�gddddggD]&}|�t|||dd��t|�k��qlW|�	t��||ddgdd�WdQRX|�	t
��||ddd�WdQRX|�	t
��||dgddd�WdQRX|�	t
��||td�td�dd�WdQRXxdddddgddddgtdd�tdd�tdd�tdd�ggD]&}|�t|||dd��t|�k��qvW|�|dddddg�dg�|�|dddddg�dg�|�|dddddg�d g�|�|dddddg�d!g�|�	t
��|gdd�WdQRX|�	t
��|ggdd�WdQRX|�	t
��|ggdd�WdQRXdS)"NZredZgreenZblueZyellowZabcdr,rU)rR)rRrQ�weights)rRrQ�cum_weightsr+rr'g@)r^rRr&r:�rH�g333333.@gffffff$@g3333339@g�����L>@r*�TF)r_rRr(�b�c�d)r
�choicesrr>rr=r3r/r?r1r2rPr
rK)rrf�dataZstr_dataZ
range_data�set_datarOr^rrr�test_choices�sx
  

"&"

*&zTestBasicOps.test_choicescCs"|jj}|ddgddgdd�dS)Nr&r+gi�)rQr^rR)r
rf)rrfrrr�test_choices_subnormal�sz#TestBasicOps.test_choices_subnormalcCsrxldD]d}|j�|�|j��}|j�dd�}|j�|�|j��}|j�dd�}|�||�|�||�qWdS)N)r&��{i�i90i@�i�	rr&)r
rr�gaussr)rrZx1Zy1Zx2Zy2rrr�
test_gauss�s


zTestBasicOps.test_gausscslxfttjd�D]T}t��j|�}�fdd�td�D�}t�|���fdd�td�D�}��||�qWdS)Nr&csg|]}�j���qSr)r
r)rr)rrrrsz.TestBasicOps.test_pickling.<locals>.<listcomp>r:csg|]}����qSr)r)rr)�newgenrrrs)r�pickle�HIGHEST_PROTOCOL�dumpsr
�loadsr)r�protorZorigseqZrestoredseqr)rorr�
test_pickling�s
zTestBasicOps.test_picklingcCsZdddg}xJ|D]B\}}tt�|�d�}t�|�}|��|�t|��d�|�qWdS)N)z
randv2_32.pcki)z
randv2_64.pckib)z
randv3.pckiW�rbi�)	�openr	Zfindfilerp�load�closer�intr)r�files�file�value�f�rrrr�test_bug_1727780s
zTestBasicOps.test_bug_1727780csRd}|jj�t�fdd�t|�D��}|�d||ko@dkn||�dS)Ni��c3s|]}�d�ddkVqdS)l�r*r+Nr)rr)�	randrangerr�	<genexpr>sz-TestBasicOps.test_bug_9025.<locals>.<genexpr>g333333�?g�G�z��?)r
r��sumrr?)rrrRr)r�r�
test_bug_9025szTestBasicOps.test_bug_9025N)r"r#r$rrr r5rCrD�patchr8rArFrMrTrXr[r]rirjrnrur�r�rrrrrs$

!M
rFTz!random.SystemRandom not availablec@s�eZdZe��Zdd�Zdd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
dd�Zdd�Zdd�Zdd�Zeefdd�ZdS)�SystemRandom_TestBasicOpscCs|j��dS)N)r
r)rrrrr'sz'SystemRandom_TestBasicOps.test_autoseedcCs&|�t|jj�|�t|jjd�dS)N)r1r6r
rr)rrrrr +sz*SystemRandom_TestBasicOps.test_saverestorecCs|j�d�dS)NrN)r
r)rrrrr5/sz'SystemRandom_TestBasicOps.test_seedargscCs(d|j_|j�d�|�|jjd�dS)NrN)r
Z
gauss_nextrr)rrrrrn3sz$SystemRandom_TestBasicOps.test_gausscCs0x*ttjd�D]}|�ttj|j|�qWdS)Nr&)rrprqr1r6rrr
)rrtrrrru8sz'SystemRandom_TestBasicOps.test_picklingcCsDd}d}x&td�D]}|t|j��|�O}qW|�||d�dS)NlrrNr&)rrzr
rr)r�span�cumrrrr�test_53_bits_per_float<s
z0SystemRandom_TestBasicOps.test_53_bits_per_floatcCsddd}d}xBtd�D]6}|j�|�}|�d|ko<|kn�||O}qW|�||d�dS)Nr+i�rrNr&)rr
r�r?r)rr�r�rrrrr�test_bigrandDsz&SystemRandom_TestBasicOps.test_bigrandcCshxbdD]Z}|j�d|d�}|j�d|�}||kr8q|�||j�||�koX|kn�qWdS)N)	�(�P������iwii&r+)r
r�r?)rr�start�stoprrr�test_bigrand_rangesOs
z-SystemRandom_TestBasicOps.test_bigrand_rangescsFx@dD]8\����tt����t���fdd�td�D���qWdS)N))���r)l����l����)llcsg|]}�j�����qSr)r
r�)rr)rr�r�rrrZsz>SystemRandom_TestBasicOps.test_rangelimits.<locals>.<listcomp>rN)rr>r)rr)rr�r�r�test_rangelimitsWsz*SystemRandom_TestBasicOps.test_rangelimitscCs<|j�ddd�}|�|d�|j�ddd�}|�|d�dS)Nrr:r+)rr+r,rb�)r
r�rLr)rZrintrrr�test_randrange_nonunit_step\sz5SystemRandom_TestBasicOps.test_randrange_nonunit_stepcCs^t|jt|jj�}|dd�|d�|ddd�|d�|dd�|ddd�|ddd�dS)	Nr*i/���rrNi�gn��!	@g����	�@�*)rr1rPr
r�)rZraisesrrr�test_randrange_errorsbs

z/SystemRandom_TestBasicOps.test_randrange_errorscCs�x<tdd�D].}|�d|j�|�ko2d|kn�qW|jj}xBdD]:}d}xtd�D]}|||�O}q^W|�|d|d�qLW|�t|jj�|�t|jjdd�|�t|jjd�|�t|jjd�|�t|jjd�dS)	Nr&i�rr+)r&r+r*r,�� r��4�5�6�w���rNr'g333333$@)rr?r
�getrandbitsrr1r2rP)rrR�getbitsr�r�rrrr�test_genrandbitsos.
z*SystemRandom_TestBasicOps.test_genrandbitscCs�xtdd�D]�}d|>}|d}|d||d��}|�||�|�|d|d�||d7}|d||d��}|�|||dg�|�d||ko�d|dkn�||d?8}|d||d��}|�||�|�d||ko�d|dkn�qWdS)Nr&i�gr�Z|
�?r+r`)rrrLr?)r�_logrzrr�numbitsrRrrr�test_randbelow_logic�s*z.SystemRandom_TestBasicOps.test_randbelow_logicN)r"r#r$r�SystemRandomr
rr r5rnrur�r�r�r�r�r�r�rrzr�rrrrr�#s
r�c@s�eZdZe��Zdd�Zdd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zeefdd�Zej�d�d d!��Zd"d#�Zd$d%�Zd&S)'�MersenneTwister_TestBasicOpscsp�jjddd����fdd�td�D�ddd	d
g��jjddd����fd
d�td�D�ddddg�dS)Ni��4r&)�versioncsg|]}�j�����qSr)r
r�hex)rr)rrrr�szGMersenneTwister_TestBasicOps.test_guaranteed_stable.<locals>.<listcomp>r,z0x1.ac362300d90d2p-1z0x1.9d16f74365005p-1z0x1.1ebb4352e4c4dp-1z0x1.1a7422abf9c11p-1zthe quick brown foxr+csg|]}�j�����qSr)r
rr�)rr)rrrr�sz0x1.1239ddfb11b7cp-3z0x1.b3cbb5c51b120p-4z0x1.8c4f55116b60fp-1z0x1.63eb525174a27p-1)r
rrr)rr)rr�test_guaranteed_stable�s
z3MersenneTwister_TestBasicOps.test_guaranteed_stablecs��jjddd����fdd�td�D�ddd	d
g��jjddd����fdd�td�D�d
dddg��jjddd����fdd�td�D�ddddg�dS)NZnofarr&)r�csg|]}�j�����qSr)r
rr�)rr)rrrr�sz?MersenneTwister_TestBasicOps.test_bug_27706.<locals>.<listcomp>r,z0x1.8645314505ad7p-1z0x1.afb1f82e40a40p-5z0x1.2a59d2285e971p-1z0x1.56977142a7880p-6Zrachelcsg|]}�j�����qSr)r
rr�)rr)rrrr�sz0x1.0b294cc856fcdp-1z0x1.2ad22d79e77b8p-3z0x1.3052b9c072678p-2z0x1.578f332106574p-3�csg|]}�j�����qSr)r
rr�)rr)rrrr�sz0x1.b0580f98a7dbep-1z0x1.84129978f9c1ap-1z0x1.aeaa51052e978p-2z0x1.092178fb945a6p-2)r
rrr)rr)rr�test_bug_27706�s

z+MersenneTwister_TestBasicOps.test_bug_27706cCs<Gdd�dt�}y|j�|��Wntk
r6YnXdS)Nc@seZdZdd�ZdS)z;MersenneTwister_TestBasicOps.test_bug_31478.<locals>.BadIntcSsdS)Nr)rrrr�__abs__�szCMersenneTwister_TestBasicOps.test_bug_31478.<locals>.BadInt.__abs__N)r"r#r$r�rrrr�BadInt�sr�)rzr
rr2)rr�rrr�test_bug_31478�s
z+MersenneTwister_TestBasicOps.test_bug_31478cs��jjddd����fdd�td�D�ddd	d
g��jjddd����fdd�td�D�d
dddg��jjddd����fdd�td�D�ddddg�d}�jj|dd����fdd�td�D�ddddg�dS)Nsnofarr&)r�csg|]}�j�����qSr)r
rr�)rr)rrrr�sz?MersenneTwister_TestBasicOps.test_bug_31482.<locals>.<listcomp>r,z0x1.8645314505ad7p-1z0x1.afb1f82e40a40p-5z0x1.2a59d2285e971p-1z0x1.56977142a7880p-6srachelcsg|]}�j�����qSr)r
rr�)rr)rrrr�sz0x1.0b294cc856fcdp-1z0x1.2ad22d79e77b8p-3z0x1.3052b9c072678p-2z0x1.578f332106574p-3�csg|]}�j�����qSr)r
rr�)rr)rrrr�sz0x1.b0580f98a7dbep-1z0x1.84129978f9c1ap-1z0x1.aeaa51052e978p-2z0x1.092178fb945a6p-2s	 @`�����csg|]}�j�����qSr)r
rr�)rr)rrrr�sz0x1.52c2fde444d23p-1z0x1.875174f0daea4p-2z0x1.9e9b2c50e5cd2p-1z0x1.fa57768bd321cp-2)r
rrr)rrcr)rr�test_bug_31482�s"


z+MersenneTwister_TestBasicOps.test_bug_31482cCs|�t|jjd�dS)N)r&NN)r1rPr
r)rrrr�test_setstate_first_arg�sz4MersenneTwister_TestBasicOps.test_setstate_first_argc	CsJ|j��}|�t|jjd�|�t|jjd�|�t|jjddddf�|�t|jjdddddf�|�ttf�� |j�dddd	df�WdQRX|�ttf�� |j�dddd
df�WdQRX|j�d�}|j�|�|�|j�d�|�|j��d}t	|�}t
d
�|d<dd�|D�}|�t|jjd|df�dS)N)r+NN)r+)r&r+r*Nr+)r(iq)rip)r&)iq)r'rNr&�nanr'css|]}t|�VqdS)N)rz)r�xrrrr��szHMersenneTwister_TestBasicOps.test_setstate_middle_arg.<locals>.<genexpr>)r
rr1r2rrP�
OverflowErrorr�rr/�float)rZstart_stateZbits100Zstate_valuesrrrr�test_setstate_middle_arg�s"
 $$z5MersenneTwister_TestBasicOps.test_setstate_middle_argc
Csbddddddddd	d
g
}|j�d�|�d�d
d�}x&t||�D]\}}|j||dd�qBWdS)Ng>F��dV�?g�wR1ۉ�?g�Q�"��?g~��5��?g�mb�?g�Y�KbX�?gH,r̊��?g�V���8�?g�O��ֶ?g�4�Ԗ�?l#q`&�'Ri�i�����)�places)r
rrr<�assertAlmostEqual)rrW�actualr(�errr�test_referenceImplementationsz9MersenneTwister_TestBasicOps.test_referenceImplementationc
Cstddlm}ddddddd	d
ddg
}|j�d
�|�d�dd�}x,t||�D]\}}|�t||d��|�qNWdS)Nr)�ldexpl#�1�,ul�w�bl'�l�J�X�l�u�ak~[l@"p1ylsV�%bX$l�E3EJl�V�b�l�a�oekl�4�)[v�l#q`&�'Ri�i����r�)�mathr�r
rrr<rrz)rr�rWr�r(r�rrr�$test_strong_reference_implementationszAMersenneTwister_TestBasicOps.test_strong_reference_implementationcCsdd>d}|j�|�dS)Nr&i�8)r
r)rrrrr�test_long_seed5sz+MersenneTwister_TestBasicOps.test_long_seedcCsDd}d}x&td�D]}|t|j��|�O}qW|�||d�dS)NlrrNr&)rrzr
rr)rr�r�rrrrr�>s
z3MersenneTwister_TestBasicOps.test_53_bits_per_floatcCsddd}d}xBtd�D]6}|j�|�}|�d|ko<|kn�||O}qW|�||d�dS)Nr+i�rrNr&)rr
r�r?r)rr�r�rrrrrr�Fsz)MersenneTwister_TestBasicOps.test_bigrandcCshxbdD]Z}|j�d|d�}|j�d|�}||kr8q|�||j�||�koX|kn�qWdS)N)	r�r�r�r�r�r�iwii&r+)r
r�r?)rrr�r�rrrr�Qs
z0MersenneTwister_TestBasicOps.test_bigrand_rangescsFx@dD]8\����tt����t���fdd�td�D���qWdS)N))r�r)l����l����)llcsg|]}�j�����qSr)r
r�)rr)rr�r�rrr\szAMersenneTwister_TestBasicOps.test_rangelimits.<locals>.<listcomp>rN)rr>r)rr)rr�r�rr�Ysz-MersenneTwister_TestBasicOps.test_rangelimitscCs|j�d�|�|j�d�d�x<tdd�D].}|�d|j�|�koRd|kn�q,W|jj}xBdD]:}d}xtd�D]}|||�O}q~W|�|d|d�qlW|�t|jj�|�t|jjd	�|�t|jjdd�|�t|jjd�|�t|jjd
�dS)Ni��rNlS!m�.vFXOr&i�rr+)r&r+r*r,r�r�r�r�r�r�r�r�r�r�r(r')	r
rrr�rr?r1r2rP)rrRr�r�r�rrrrr�^s .
z-MersenneTwister_TestBasicOps.test_genrandbitscCs�xtdd�D]�}d|>}|d}|d||d��}|�||�|�|d|d�||d7}|d||d��}|�|||dg�|�d||ko�d|dkn�||d?8}|d||d��}|�||�|�d||ko�d|dkn�qWdS)Nr&i�gr�Z|
�?r+r`)rrrLr?)rr�rzrrr�rRrrrr�vs*z1MersenneTwister_TestBasicOps.test_randbelow_logiczrandom.Random.randomc	Cs�t��j|_dtj>}t���&t�dt�|jj	|d|d�WdQRX|jj	d|d�|�
t��|jj	d|d�WdQRXd}d}||||}||||g|_|jj	||d�dS)Nr&�ignore)�maxsizeirr�g{�G�z�?)rr�r7ZBPF�warnings�catch_warnings�simplefilter�UserWarningr
Z
_randbelowr1rP)r�random_mockr�r�epsilon�limitrrr� test_randbelow_overridden_random�s

z=MersenneTwister_TestBasicOps.test_randbelow_overridden_randomcCsRd}d}d}|j�|||�}|�||ko2|kn�|�|||d�dS)NlJ)�l���� F�x:^Vi8���r)r
r�r?r)rr�r��stepr�rrr�test_randrange_bug_1590891�sz7MersenneTwister_TestBasicOps.test_randrange_bug_1590891c
CsH|jj}d}|j�d�|jjt|�dd�}|j�d�|jjt|�dg|dd�}|�||�|j�d�|jjt|�td|d�dd�}|�||�ddd	g}d
d
dg}d
dd
g}dgd
dgd
d	gd}	|j�d�|jj|	dd�}|j�d�|jj||dd�}|�||�|j�d�|jj||dd�}|�||�dS)Ni�i�_�i')rRr&)r_rRZRedZBlackZGreen�r+�$�&i�߉)r
rfrrr)
rrfrr(rcrdrQr^r_Zexpanded_populationrrr�test_choices_algorithms�s, 


z4MersenneTwister_TestBasicOps.test_choices_algorithmsN)r"r#r$r�Randomr
r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrzr�rCrDr�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@)rr�gammarr)�zZsqrt2pi�azrrrr��s





r�c@sdeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Ze	j
�d
�dd��Ze	j
�d�dd��Z
dS)�TestDistributionscs�t����fdd�td�D�dgd}|dd�j�_��dd�|dd�j�_��d�|dd�j�_��d�|dd�j�_��dd�|dd�j�_��dd�|dd�j�_��	dd�|dd�j�_��
dd�|dd�j�_��dd�|dd�j�_��dd�|dd�j�_��d	d�|dd�j�_��dd�|dd�j�_��d
d�|dd�j�_��
dd�|dd�j�_��ddd�dS)
Ncsg|]}����qSr)r)rr)�grrr�sz5TestDistributions.test_zeroinputs.<locals>.<listcomp>rGgrUr&r:g�?g{�G�z�?gi@g@gUUUUUU�?)rr�rrV�uniform�
paretovariate�expovariate�weibullvariate�vonmisesvariate�
normalvariaterm�lognormvariate�gammavariate�betavariate�
triangular)rr�r)r�r�test_zeroinputs�s< 

z!TestDistributions.test_zeroinputscspt��}d��fdd�td��D�}�xD|jdddf|jdd	d
f|jddd	f|jd
ttddf|jdddf|j	dt
d�t
d�t
d�dfgD]�\}}}}|dd�j|_g}x<tt|��D],}y|�
||��Wq�tk
r�Yq�Xq�Wd}	}
x$|D]}|	|7}	|
||d7}
q�Wt|��|j|	�|dd|j|fd�|j|
�d|dd|j|fd�q�WdS)Ni�csg|]}|t���qSr)r�)rr)rrrrsz2TestDistributions.test_avg_std.<locals>.<listcomp>r&)g�?g$@g@g@)gg�?gUUUUUU�?g�q�q�?g�<ݚ�?)g�?gUUUUUU�?)g�G�z��?rr+r*)g@g�?g�������?)g�?g@gUUUUUU�?g�������?rz%s%r)r��msg)rr�rr�r�r�r�rr�r�r�rVr=�appendrKr�r")rr�r��variate�args�muZ	sigmasqrd�yr�s1�s2r�r)rr�test_avg_std�s8$

zTestDistributions.test_avg_stdcCs�t��}d}x�|jddf|jddf|jddf|jtd�fdf|jdtd�fdf|jddf|jd	d
f|jtd�dfdf|j	ddf|j
td�fd
f|jdtd�fdf|jddfgD],\}}}x t|�D]}|�
||�|�q�Wq�WdS)NrN)g$@g$@g$@)g$@g$@g$@�infgg@)g$@g)ggg�?)gg$@)rr�r�r�r�r�r�rmr�r�r�r�rr)rr�rr�r�rWrrrr�
test_constants"





zTestDistributions.test_constantc
Csxt��}d}xfdD]^}xXdD]P}xJt|�D]>}|�||�}|jd|koRtjknd�|||�d�q*WqWqWdS)NrN)gg�������?g������@g������@)ggffffff@g@@rzCvonmisesvariate({}, {}) produced a result {} out of range [0, 2*pi])r�)rr�rr�r?�TWOPI�format)rr�rr�Zkappa�_rOrrr�test_von_mises_range1s

z&TestDistributions.test_von_mises_rangecCst�dd�t�dd�dS)Nrg4&�kCg}Ô%�I�T)rr�)rrrr�test_von_mises_large_kappa?sz,TestDistributions.test_von_mises_large_kappacCsL|�ttjdd�|�ttjdd�|�ttjdd�|�ttjdd�dS)Nr'r*rr+r&���)r1rPrr�)rrrr�test_gammavariate_errorsDsz*TestDistributions.test_gammavariate_errorszrandom.Random.randomcCs�dddg|_t�dd�}|�|d�ddg|_t�dd	�}|�|d
�tj}tj}tj}d}d}|||}d
}	d}
d}|
||	|
|g|_t�||�}|�|d�d}
d}|
||	|
|g|_t�||�}|�|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�?)r7rr�r��_e�_expr�)rr�Zreturned_valuer�r�r�ZalphaZbetarcr�Zr1Zr2rrr�$test_gammavariate_full_code_coverageKs.

!	z6TestDistributions.test_gammavariate_full_code_coveragezrandom.Random.gammavariatecCsd|_|�dt�dd��dS)Ngg����	�@gn��!	@)rBrrr�)rZgammavariate_mockrrr�test_betavariate_return_zero�sz.TestDistributions.test_betavariate_return_zeroN)r"r#r$r�r�r�r�r�r�rCrDr�r�r�rrrrr��s Wr�c@s>eZdZdd�Zdd�Zdd�Ze�ee	d�d�d	d
��Z
dS)�
TestModulecCs<|�tjd�|�tjd�|�tjd�|�tjd�dS)Ng�3?�r�?g�.DT�!@g�9��B.�?g�t�Y@)r�rZ
NV_MAGICCONSTr�ZLOG4Z
SG_MAGICCONST)rrrr�testMagicConstants�szTestModule.testMagicConstantscCs |�ttj�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>.SubclassNcSstj�|�dS)N)rr��__init__)r�newargrrrr�szFTestModule.test_random_subclass_with_kwargs.<locals>.Subclass.__init__)N)r"r#r$rrrrr�Subclass�srr&)r)rr�)rrrrr� test_random_subclass_with_kwargs�sz+TestModule.test_random_subclass_with_kwargs�forkzfork() requiredc	Cs�t��\}}t��}|dkr^z2t�d�}t|d��}|�t|��WdQRXWdt�d�Xn^t�	|�t�d�}t|d��}t
|���}WdQRX|�||�t�
|d�\}}|�|d�dS)Nrr��wr)�os�piperrr�rw�writerZ�_exitry�eval�readr�waitpidr)rrr�pid�valr~Z	child_val�statusrrr�test_after_fork�s


zTestModule.test_after_forkN)r"r#r$r�rrrC�
skipUnless�hasattrrrrrrrr��sr��__main__)!rCZ
unittest.mockrrrrpr��	functoolsrr�rrrrrrZtestr	Z	fractionsr
rr�r6ZSystemRandom_availablerZTestCaser�r�r�r�r�r"�mainrrrr�<module>s: 
u@A+