Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /opt/cppython/lib/python3.8/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : //opt/cppython/lib/python3.8/test/__pycache__/test_random.cpython-38.pyc
U

>��g\��@sLddlZddlZddlZddlZddlZddlZddlZddlmZddl	m
Z
mZmZm
Z
mZmZddlmZddlmZGdd�d�Zze����Wnek
r�dZYnXd	Ze�ed
�Gdd�deej��ZGd
d�deej�Zdedfdd�ZGdd�dej�ZGdd�dej�ZGdd�dej�Ze dk�rHe�!�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)z0Helper function to make a list of random numberscsg|]}�j���qS���gen�random��.0�i��selfr�//opt/cppython/lib/python3.8/test/test_random.py�
<listcomp>sz+TestBasicOps.randomlist.<locals>.<listcomp>)�range�r�nrrr�
randomlistszTestBasicOps.randomlistcCsB|j��|j��}t�d�|j��|j��}|�||�dS)N皙�����?)r�seed�getstate�time�sleep�assertNotEqual)rZstate1Zstate2rrr�
test_autoseeds




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


zTestBasicOps.test_saverestorecCs�Gdd�dt�}ddddddddddd	d
td�|�fD]}|j�|�q6ttd��tdd
�fD]}|�t|jj|�q^|�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:^V��� F�x:^V���Q�	@y�?@�a�abc�)Zone��)
�object�tuplerr�listr�dict�assertRaises�	TypeError�type)rr,�argrrr�
test_seedargs's�zTestBasicOps.test_seedargszrandom._urandomcCst|_|��dS�N)�NotImplementedError�side_effectr>)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�}|D]}||�qdt||�D]0\}}|�t|�t|��|�t|�t|��q|ttd��}ttd��}||�|�||k�||�|�||k�|�	t
|d�dS)N�%cSsg|]}tt|���qSr�r8r�rrrrrrFsz-TestBasicOps.test_shuffle.<locals>.<listcomp>�
cSsg|]}tt|���qSrrDrErrrrGsr"�r-r4r3)r�shuffler$r�zip�len�setr8�
assertTruer:r;)rrHZlstZseqsZ
shuffled_seqsZshuffled_seq�seqZshuffled_lstrrr�test_shuffle>s*
zTestBasicOps.test_shufflecCs4|jj}tjjdd�}td�}|||�|��dS)N��?)�return_valuesabcdefghijk)rrH�unittest�mockZMock�	bytearrayZassert_called_with)rrHZmock_randomrMrrr�test_shuffle_random_argument_s

z)TestBasicOps.test_shuffle_random_argumentc	CsT|jj}|�t��|g�W5QRX|�|dg�d�|�|ddg�ddg�dS)N�2��K)r�choicer:�
IndexErrorr$�assertIn)rrXrrr�test_choicegs
zTestBasicOps.test_choicecCs�d}t|�}t|d�D]L}|j�||�}|�t|�|�t|�}|�t|�|�|�|t|�k�q|�|j�gd�g�|�t|jj||d�|�t|jjgd�dS)N�dr-rr.)	rr�sampler$rJrKrLr:�
ValueError)rr%�
population�k�sZuniqrrr�test_samplenszTestBasicOps.test_samplec	Csvd}t|�}d}t|�D]X}t|�t||�}i}t|�D]*}d|t|j�||��<t|�|kr<qq<|��qdS)N��')rrr7rr]rJZfail)rr�popZtrialsr`�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�r4Zabcdefghijklmnopqrst)rr]rKr�strr7rrrr�test_sample_inputs�s
zTestBasicOps.test_sample_inputscCs|�t|jjt�d�d�dS)NZabcdefr4)r:r;rr]r9�fromkeysrrrr�test_sample_on_dicts�sz!TestBasicOps.test_sample_on_dictsc	Csr|jj}ddddg}d}td�}ttd��}||dd�||td�dd�|d|td�d	�|d|td�d
�fD]:}|�t|�d�|�t|�t�|�t|�t|�k�qj|�	t
��|d�W5QRX|�||dd�g�|�||d
d�g�|�	t
��||dd�W5QRX|�t||dd��t|�k�|�t||dd��t|�k�|�	t
��||dd�W5QRX|�t||ddd��t|�k�|�t||ddd��t|�k�|�	t��||ddgdd�W5QRX|�	t
��||ddd�W5QRX|�	t
��||dgddd�W5QRXddddgddddgtdd�tdd�tdd�tdd�gddddgfD]&}|�t|||dd��t|�k��qf|�	t��||ddgdd�W5QRX|�	t
��||ddd�W5QRX|�	t
��||dgddd�W5QRX|�	t
��||td�td�dd�W5QRXddddgddddgtdd�tdd�tdd�tdd�gfD]&}|�t|||dd��t|�k��ql|�|dddddg�dg�|�|dddddg�dg�|�|dddddg�d g�|�|dddddg�d!g�|�	t
��|gdd�W5QRX|�	t
��|ggdd�W5QRX|�	t
��|ggdd�W5QRXdS)"NZredZgreenZblueZyellowZabcdr5rc�r`)r`r_�weights)r`r_�cum_weightsr4rr.g@)rnr`r-rF�rV�g333333.@gffffff$@g3333339@g�����L>@r3�TF�ror`r1�b�c�d)r�choicesrrKr$rJr<r8rLr:r;r^r
rY)rrw�dataZstr_dataZ
range_data�set_datar]rnrrr�test_choices�sx
�  

"
�$"

"�$zTestBasicOps.test_choicescCs"|jj}|ddgddgdd�dS)Nr-r4g�)r_rnr`)rrw)rrwrrr�test_choices_subnormal�sz#TestBasicOps.test_choices_subnormalcCsndD]d}|j�|�|j��}|j�dd�}|j�|�|j��}|j�dd�}|�||�|�||�qdS)N)r-��{i�i90i@�i�	rr-)rrr�gaussr$)rrZx1Zy1Zx2Zy2rrr�
test_gauss�s

zTestBasicOps.test_gausscshttjd�D]T}t��j|�}�fdd�td�D�}t�|���fdd�td�D�}��||�qdS)Nr-csg|]}�j���qSrr
rrrrrsz.TestBasicOps.test_pickling.<locals>.<listcomp>rFcsg|]}����qSr�rr)�newgenrrrs)r�pickle�HIGHEST_PROTOCOL�dumpsr�loadsr$)r�protor&ZorigseqZrestoredseqr)r�rr�
test_pickling�s
zTestBasicOps.test_picklingc
CsZdddg}|D]F\}}tt�|�d��}t�|�}W5QRX|�t|��d�|�qdS)N)z
randv2_32.pcki)z
randv2_64.pckib)z
randv3.pckiW�rbr")�openr	Zfindfiler��loadr$�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�r3r4Nrr��	randrangerr�	<genexpr>sz-TestBasicOps.test_bug_9025.<locals>.<genexpr>�333333�?g�G�z��?)rr��sumrrL)rrr`rr�r�
test_bug_9025szTestBasicOps.test_bug_9025N)r)r*r+rr!r'r>rQrR�patchrBrNrTr[rbrgrjrlrzr|r�r�r�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��dSr?�rrrrrrr!&sz'SystemRandom_TestBasicOps.test_autoseedcCs&|�t|jj�|�t|jjd�dSr?)r:r@rrr#rrrrr'*sz*SystemRandom_TestBasicOps.test_saverestorecCs|j�d�dS�Nr\r�rrrrr>.sz'SystemRandom_TestBasicOps.test_seedargscCs(d|j_|j�d�|�|jjd�dSr�)r�
gauss_nextrr$rrrrr�2sz$SystemRandom_TestBasicOps.test_gausscCs,ttjd�D]}|�ttj|j|�qdS)Nr-)rr�r�r:r@r�r)rr�rrrr�7sz'SystemRandom_TestBasicOps.test_picklingcCs@d}d}td�D]}|t|j��|�O}q|�||d�dS�Nlrr\r-�rr�rrr$�r�span�cumrrrr�test_53_bits_per_float;s
z0SystemRandom_TestBasicOps.test_53_bits_per_floatcCs`dd}d}td�D]6}|j�|�}|�d|ko:|kn�||O}q|�||d�dS�Nr4i�rr\r-�rrr�rLr$�rr�r�rr�rrr�test_bigrandCs
z&SystemRandom_TestBasicOps.test_bigrandcCsddD]Z}|j�d|d�}|j�d|�}||kr6q|�||j�||�koV|kn�qdS�N)	�(�P������iwii&r4�rr�rL�rr�start�stoprrr�test_bigrand_rangesNsz-SystemRandom_TestBasicOps.test_bigrand_rangescsBdD]8\����tt����t���fdd�td�D���qdS)N�)���r)l����l����)llcsg|]}�j�����qSr�rr�r�rr�r�rrrYsz>SystemRandom_TestBasicOps.test_rangelimits.<locals>.<listcomp>r\�r$rKrrrr�r�test_rangelimitsVs�z*SystemRandom_TestBasicOps.test_rangelimitscCs<|j�ddd�}|�|d�|j�ddd�}|�|d�dS)NrrFr4)rr4r5rr�)rr�rZr$)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)	Nr3i/���rr\i��n��!	@���	�@�*)rr:r^rr�)rZraisesrrr�test_randrange_errorsas

z/SystemRandom_TestBasicOps.test_randrange_errorscCs�tdd�D].}|�d|j�|�ko0d|kn�q
|jj}dD]6}d}td�D]}|||�O}qV|�|d|d�qF|�t|jj�|�t|jjdd�|�t|jjd�|�t|jjd�|�t|jjd�dS)	Nr-r"rr4�r-r4r3r5�� r��4�5�6�w���r\r.g333333$@)rrLr�getrandbitsr$r:r;r^�rr`Zgetbitsr�r�rrrr�test_genrandbitsns,z*SystemRandom_TestBasicOps.test_genrandbitscCstdd�D]�}d|>}|d}|d||d��}|�||�|�|d|d�||d7}|d||d��}|�|||dg�|�d||ko�d|dkn�||d?8}|d||d��}|�||�|�d||ko�d|dkn�q
dS�Nr-r"gr�Z|
�?r4rp�rr$rZrL�r�_logr�rrZnumbitsr`rrr�test_randbelow_logic�s*z.SystemRandom_TestBasicOps.test_randbelow_logicN)r)r*r+r�SystemRandomrr!r'r>r�r�r�r�r�r�r�r�r�rr�r�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�Zdd�Zeefdd �Zd!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�rr�hexrrrrr�szGMersenneTwister_TestBasicOps.test_guaranteed_stable.<locals>.<listcomp>r5z0x1.ac362300d90d2p-1z0x1.9d16f74365005p-1z0x1.1ebb4352e4c4dp-1z0x1.1a7422abf9c11p-1zthe quick brown foxr4csg|]}�j�����qSrr�rrrrr�sz0x1.1239ddfb11b7cp-3z0x1.b3cbb5c51b120p-4z0x1.8c4f55116b60fp-1z0x1.63eb525174a27p-1�rrr$rrr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�rrrrr�sz?MersenneTwister_TestBasicOps.test_bug_27706.<locals>.<listcomp>r5�0x1.8645314505ad7p-1�0x1.afb1f82e40a40p-5�0x1.2a59d2285e971p-1�0x1.56977142a7880p-6Zrachelcsg|]}�j�����qSrr�rrrrr�s�0x1.0b294cc856fcdp-1�0x1.2ad22d79e77b8p-3�0x1.3052b9c072678p-2�0x1.578f332106574p-3�csg|]}�j�����qSrr�rrrrr�s�0x1.b0580f98a7dbep-1�0x1.84129978f9c1ap-1�0x1.aeaa51052e978p-2�0x1.092178fb945a6p-2r�rrrr�test_bug_27706�s*������z+MersenneTwister_TestBasicOps.test_bug_27706cCs<Gdd�dt�}z|j�|��Wntk
r6YnXdS)Nc@seZdZdd�ZdS)z;MersenneTwister_TestBasicOps.test_bug_31478.<locals>.BadIntcSsdSr?rrrrr�__abs__�szCMersenneTwister_TestBasicOps.test_bug_31478.<locals>.BadInt.__abs__N)r)r*r+r�rrrr�BadInt�sr�)r�rrr;)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�rrrrr�sz?MersenneTwister_TestBasicOps.test_bug_31482.<locals>.<listcomp>r5r�r�r�r�srachelcsg|]}�j�����qSrr�rrrrr�sr�r�r�r��csg|]}�j�����qSrr�rrrrr�sr�r�r�r�s	 @`�����csg|]}�j�����qSrr�rrrrr�sz0x1.52c2fde444d23p-1z0x1.875174f0daea4p-2z0x1.9e9b2c50e5cd2p-1z0x1.fa57768bd321cp-2r�)rrtrrr�test_bug_31482�s:��������z+MersenneTwister_TestBasicOps.test_bug_31482cCs|�t|jjd�dS)N)r-NN)r:r^rr#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�W5QRX|�ttf�� |j�dddd
df�W5QRX|j�d�}|j�|�|�|j�d�|�|j��d}t	|�}t
d
�|d<dd�|D�}|�t|jjd|df�dS)N)r4NN)r4rGNr4)r1�q)rip)r-)r�)r.r\r-�nanr.css|]}t|�VqdSr?)r�)r�xrrrr��szHMersenneTwister_TestBasicOps.test_setstate_middle_arg.<locals>.<genexpr>)rrr:r;r#r^�
OverflowErrorr�r$r8�float)rZstart_stateZbits100Zstate_valuesr&rrr�test_setstate_middle_arg�s"
 $$z5MersenneTwister_TestBasicOps.test_setstate_middle_argc
Cs^ddddddddd	d
g
}|j�d�|�d�d
d�}t||�D]\}}|j||dd�q@dS)Ng>F��dV�?g�wR1ۉ�?g�Q�"��?g~��5��?g�mb�?g�Y�KbX�?gH,r̊��?g�V���8�?g�O��ֶ?g�4�Ԗ�?�#q`&�'R������)�places)rrrrI�assertAlmostEqual)rrf�actualr1�errr�test_referenceImplementation�s�z9MersenneTwister_TestBasicOps.test_referenceImplementationc
Cspddlm}ddddddd	d
ddg
}|j�d
�|�d�dd�}t||�D]\}}|�t||d��|�qLdS)Nr)�ldexpl#�1�,ul�w�bl'�l�J�X�l�u�ak~[l@"p1ylsV�%bX$l�E3EJl�V�b�l�a�oekl�4�)[v�r�r�r�r�)�mathr�rrrrIr$r�)rr�rfr�r1r�rrr�$test_strong_reference_implementations �
zAMersenneTwister_TestBasicOps.test_strong_reference_implementationcCsdd>d}|j�|�dS)Nr-i�8r�)rrrrr�test_long_seed4sz+MersenneTwister_TestBasicOps.test_long_seedcCs@d}d}td�D]}|t|j��|�O}q|�||d�dSr�r�r�rrrr�=s
z3MersenneTwister_TestBasicOps.test_53_bits_per_floatcCs`dd}d}td�D]6}|j�|�}|�d|ko:|kn�||O}q|�||d�dSr�r�r�rrrr�Es
z)MersenneTwister_TestBasicOps.test_bigrandcCsddD]Z}|j�d|d�}|j�d|�}||kr6q|�||j�||�koV|kn�qdSr�r�r�rrrr�Psz0MersenneTwister_TestBasicOps.test_bigrand_rangescsBdD]8\����tt����t���fdd�td�D���qdS)Nr�csg|]}�j�����qSrr�rr�rrr[szAMersenneTwister_TestBasicOps.test_rangelimits.<locals>.<listcomp>r\r�rrr�rr�Xs�z-MersenneTwister_TestBasicOps.test_rangelimitscCs�|j�d�|�|j�d�d�tdd�D].}|�d|j�|�koPd|kn�q*|jj}dD]6}d}td�D]}|||�O}qv|�|d|d�qf|�t|jj�|�t|jjd	�|�t|jjdd�|�t|jjd�|�t|jjd
�dS)N��r\�S!m�.vFXOr-r"rr4r�r1r.)	rrr$r�rrLr:r;r^r�rrrr�]s"�,z-MersenneTwister_TestBasicOps.test_genrandbitscCs(|j�d�|�|j�dd�d�dS)Nrr4�cr)rrr$r�rrrr�test_randrange_uses_getrandbitsus�z<MersenneTwister_TestBasicOps.test_randrange_uses_getrandbitscCstdd�D]�}d|>}|d}|d||d��}|�||�|�|d|d�||d7}|d||d��}|�|||dg�|�d||ko�d|dkn�||d?8}|d||d��}|�||�|�d||ko�d|dkn�q
dSr�r�r�rrrr�s*z1MersenneTwister_TestBasicOps.test_randbelow_logicc	Cs�dtj>}t���&t�dt�|jj|d|d�W5QRX|jjd|d�|�t	��|jjd|d�W5QRXd}d}||||}t
jj�
tjd��6}||||g|_|jj||d�|�|jd	�W5QRXdS)
Nr-�ignore)�maxsizeirr��{�G�z�?rr4)r�BPF�warnings�catch_warnings�simplefilter�UserWarningr�_randbelow_without_getrandbitsr:r^rQrRr�r6�RandomrAr$Z
call_count)rrr�epsilon�limit�random_mockrrr�"test_randbelow_without_getrandbits�s"

�z?MersenneTwister_TestBasicOps.test_randbelow_without_getrandbitscCsRd}d}d}|j�|||�}|�||ko2|kn�|�|||d�dS)NlJ)�r/i8���r)rr�rLr$)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�_�rdrmr-rsZRedZBlackZGreen�r4�$�&i�߉)rrwrrr$)
rrwrr1rtrur_rnroZexpanded_populationrrr�test_choices_algorithms�s, 


z4MersenneTwister_TestBasicOps.test_choices_algorithmsN)r)r*r+rrrr�r�r�r�r�r�r�r�rr�r�r�r�r�rrr�r�rrrrrrrr��s(	
&r��@rOc
Cs�|dkr$ttt|�td|�S|d}||dt|�|tdd|d|dd|dd	|d
d|dd
|dd|dd|dg	�S)NrO��?g@g
����?g�
ö)$�@g&Ԏ����g
t�a��@rg���Q�f��@g>@~�)@g@gA~������@g�~\���>g@g���i�E�>g@)rr�gammarr)�zZsqrt2pi�azrrrr�s






�rc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Ze	j
�d
�dd��Ze	j
�d
�dd��Z
e	j
�d
�dd��Ze	j
�d
�dd��Ze	j
�d�dd��ZdS)�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�r��grrr�sz5TestDistributions.test_zeroinputs.<locals>.<listcomp>rU�rcr-rFrrgi@r�UUUUUU�?)rrrre�uniform�
paretovariate�expovariate�weibullvariate�vonmisesvariate�
normalvariater�lognormvariate�gammavariate�betavariate�
triangular)rr�rr!r�test_zeroinputs�s< 

z!TestDistributions.test_zeroinputscsbt��}d��fdd�td��D�}|jdddf|jdd	d
f|jddd	f|jd
ttddf|jdddf|j	dt
d�t
d�t
d�dffD]�\}}}}|dd�j|_g}tt|��D],}z|�
||��Wq�tk
r�Yq�Xq�d}	}
|D]}|	|7}	|
||d7}
q�t|��|j|	�|dd|j|fd�|j|
�d|dd|j|fd�q�dS)Nr{csg|]}|t���qSr)r�r�r%rrrsz2TestDistributions.test_avg_std.<locals>.<listcomp>r-)r�$@g@g@)r#rr$g�q�q�?g�<ݚ�?)g�?gUUUUUU�?)g�G�z��?rr4r3)rg�?g�������?)rrgUUUUUU�?g�������?rz%s%r)r��msg)rrrr%r.r'r)rr&r(rrerJ�appendrYr�r))rr"r��variate�args�muZ	sigmasqrd�yr�s1�s2r�rr0r�test_avg_std	s@���	��zTestDistributions.test_avg_stdcCs�t��}d}|jddf|jddf|jddf|jtd�fdf|jdtd�fdf|jddf|jd	d
f|jtd�dfdf|j	ddf|j
td�fd
f|jdtd�fdf|jddffD](\}}}t|�D]}|�
||�|�q�q�dS)Nr\)r1r1r1)r1r1r1�infr#r)r1r#)r#r#r)r#r1)rrr%r.r'r�r)rr+r*r&r(rr$)rr"r%r4r5rfrrrr�
test_constant)s"






�zTestDistributions.test_constantc
Cslt��}d}dD]V}dD]L}t|�D]>}|�||�}|jd|koLtjknd�|||�d�q$qqdS)Nr\)r#rg������@g������@)r#�ffffff@g@@rzCvonmisesvariate({}, {}) produced a result {} out of range [0, 2*pi])r2)rrrr)rL�TWOPI�format)rr"r%r6�kappa�_r]rrr�test_von_mises_range=s��z&TestDistributions.test_von_mises_rangecCst�dd�t�dd�dS)Nrg4&�kCg}Ô%�I�T)rr)rrrr�test_von_mises_large_kappaKsz,TestDistributions.test_von_mises_large_kappacCsL|�ttjdd�|�ttjdd�|�ttjdd�|�ttjdd�dS)Nr.r3rr4r-���)r:r^rr,rrrr�test_gammavariate_errorsPsz*TestDistributions.test_gammavariate_errorszrandom.Random.randomcCs(dddg|_t�dd�}|�|d�dS)N�:�0�yE>rOr�g�������?r=g=
ףp=@�rArr,r��rr�returned_valuerrr�#test_gammavariate_alpha_greater_one[sz5TestDistributions.test_gammavariate_alpha_greater_onecCs$dg|_t�dd�}|�|d�dS)Ng�������?rr0g�/qr	�?rGrHrrr�!test_gammavariate_alpha_equal_onefsz3TestDistributions.test_gammavariate_alpha_equal_onecCs8d}ddg|_t�d|�}t�d|�}|�||�dS)Nr0rFr)rArr,r'r�)rr�betaZgammavariate_returned_valueZexpovariate_returned_valuerrr�4test_gammavariate_alpha_equal_one_equals_expovariateqs

zFTestDistributions.test_gammavariate_alpha_equal_one_equals_expovariatecCs�tj}tj}tj}d}d}|||}d}d}	d}
|	|
||	|
g|_t�||�}|�|d�d}	d}
|	|
||	|
g|_t�||�}|�|d	�dS)
Ngffffff�?g333333�?rgX� �Y�?g=�,6V��?g�.3333�?g�l%�t��?g�K,	�9�?g7SvT�?)r�_e�_expr�rAr,r�)rrrNrOr��alpharLrtrZr1Zr2rIrrr�,test_gammavariate_alpha_between_zero_and_one|s"#	z>TestDistributions.test_gammavariate_alpha_between_zero_and_onezrandom.Random.gammavariatecCsd|_|�dt�dd��dS)Nr#r�r�)rPr$rr-)rZgammavariate_mockrrr�test_betavariate_return_zero�sz.TestDistributions.test_betavariate_return_zeroN)r)r*r+r/r:r<rBrCrErQrRr�rJrKrMrQrRrrrrr �s  










E
r c@seZdZdd�Zdd�ZdS)�TestRandomSubclassingcCs Gdd�dtj�}|dd�dS)Nc@seZdZddd�ZdS)zHTestRandomSubclassing.test_random_subclass_with_kwargs.<locals>.SubclassNcSstj�|�dSr?)rr�__init__)r�newargrrrrT�szQTestRandomSubclassing.test_random_subclass_with_kwargs.<locals>.Subclass.__init__)N)r)r*r+rTrrrr�Subclass�srVr-)rU)rr)rrVrrr� test_random_subclass_with_kwargs�sz6TestRandomSubclassing.test_random_subclass_with_kwargscs�G�fdd�dtj�}t��|��d�|��dh�G�fdd�dtj�}t��|��d�|��dh�G�fdd	�d	|�}t��|��d�|��d
h�G�fdd�d|�}t��|��d�|��d
h�G�fdd�d�}G�fdd�d�}Gdd�d|tj�}t��|��d�|��dh�Gdd�d|tj�}t��|��d�|��dh�Gdd�d||tj�}	t��|	��d�|��dh�Gdd�d||tj�}
t��|
��d�|��dh�dS)Ncs$eZdZ�fdd�Z�fdd�ZdS)zKTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass1cs��d�tj�|�S)NzSubClass1.random��addrrr�Zcalledrrr�s
zRTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass1.randomcs��d�tj�||�S)N�SubClass1.getrandbits�rYrrr�rrZrrr��s
zWTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass1.getrandbitsN)r)r*r+rr�rrZrr�	SubClass1�sr]r�r[cseZdZ�fdd�ZdS)zKTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass2cs��d�tj�|�S)N�SubClass2.randomrXrrZrrr�s
zRTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass2.randomN�r)r*r+rrrZrr�	SubClass2�sr`r^cseZdZ�fdd�ZdS)zKTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass3cs��d�tj�||�S)N�SubClass3.getrandbitsr\rrZrrr��s
zWTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass3.getrandbitsN�r)r*r+r�rrZrr�	SubClass3�srcracseZdZ�fdd�ZdS)zKTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass4cs��d�tj�|�S)N�SubClass4.randomrXrrZrrr�s
zRTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass4.randomNr_rrZrr�	SubClass4�srerdcseZdZ�fdd�ZdS)zHTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.Mixin1cs��d�tj�|�S)N�
Mixin1.randomrXrrZrrrs
zOTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.Mixin1.randomNr_rrZrr�Mixin1srgcseZdZ�fdd�ZdS)zHTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.Mixin2cs��d�tj�||�S)N�Mixin2.getrandbitsr\rrZrrr�
s
zTTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.Mixin2.getrandbitsNrbrrZrr�Mixin2	sric@seZdZdS)zKTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass5N�r)r*r+rrrr�	SubClass5srkrfc@seZdZdS)zKTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass6Nrjrrrr�	SubClass6srlrhc@seZdZdS)zKTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass7Nrjrrrr�	SubClass7srmc@seZdZdS)zKTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass8Nrjrrrr�	SubClass8 srn)rrrKr�r$)rr]r`rcrergrirkrlrmrnrrZr�"test_subclasses_overriding_methods�sDz8TestRandomSubclassing.test_subclasses_overriding_methodsN)r)r*r+rWrorrrrrS�srSc@s6eZdZdd�Zdd�Ze�eed�d�dd��Z	d	S)
�
TestModulecCs<|�tjd�|�tjd�|�tjd�|�tjd�dS)Ng�3?�r�?g�.DT�!@g�9��B.�?g�t�Y@)r�r�
NV_MAGICCONSTr>�LOG4�
SG_MAGICCONSTrrrr�testMagicConstants(szTestModule.testMagicConstantscCs |�ttj�ttt��k�dSr?)rLrKr�__all__�dirrrrr�test__all__.szTestModule.test__all__�forkzfork() requiredc	Cs�t��\}}t��}|dkr^z2t�d�}t|d��}|�t|��W5QRXW5t�d�Xn^t�	|�t�d�}t|d��}t
|���}W5QRX|�||�t�
|d�\}}|�|d�dS)Nrr��wr�)�os�piperx�_exitrr�r��writeri�close�eval�readr �waitpidr$)rr�ry�pid�valr�Z	child_val�statusrrr�test_after_fork2s


zTestModule.test_after_forkN)
r)r*r+rtrwrQ�
skipUnless�hasattrrzr�rrrrrp'srp�__main__)"rQZ
unittest.mockrrzrr�r	�	functoolsrr�rrrrrr�testr	Z	fractionsr
rr�r@ZSystemRandom_availabler�ZTestCaser�r�rr rSrpr)�mainrrrr�<module>s< 

uMV]$


F1le Man4ger