HEX
Server: Apache
System: Linux opal14.opalstack.com 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64
User: curbgloabal_opal (1234)
PHP: 8.1.29
Disabled: exec,passthru,shell_exec,system
Upload Files
File: //lib64/python3.6/test/__pycache__/test_random.cpython-36.pyc
3


 \S��@s.ddlZddlZddlZddlZddlZddlZddlmZddlm	Z	m
Z
mZmZm
Z
ddlmZddlmZGdd�d�Zyej�j�Wnek
r�dZYnXd	Zejed
�Gdd�deej��ZGd
d�deej�Zdedfdd�ZGdd�dej�ZGdd�dej�Zedk�r*ej�dS)�N)�partial)�log�exp�pi�fsum�sin)�support)�Fractionc@s�eZdZdd�Zdd�Zdd�Zdd�Zejj	d	�d
d��Z
dd
�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$S)%�TestBasicOpscs�fdd�t|�D�S)z0Helper function to make a list of random numberscsg|]}�jj��qS�)�gen�random)�.0�i)�selfr�#/usr/lib64/python3.6/test_random.py�
<listcomp>sz+TestBasicOps.randomlist.<locals>.<listcomp>)�range)r�nr)rr�
randomlistszTestBasicOps.randomlistcCsB|jj�|jj�}tjd�|jj�|jj�}|j||�dS)Ng�������?)r�seed�getstate�timeZsleepZassertNotEqual)rZstate1Zstate2rrr�
test_autoseeds




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


zTestBasicOps.test_saverestorecCs�Gdd�dt�}x:dddddddddddd	td
�|�gD]}|jj|�q8Wx0ttd��tdd�gD]}|jt|jj|�qdW|jt|jjdd
dd�|jtt	|j�g�dS)Nc@seZdZdd�ZdS)z*TestBasicOps.test_seedargs.<locals>.MySeedcSsdS)Ni�i?���r)rrrr�__hash__(sz3TestBasicOps.test_seedargs.<locals>.MySeed.__hash__N)�__name__�
__module__�__qualname__rrrrr�MySeed'sr#r��
�g��Q�	@y@�a�abc�)Zone�����r,l F�x:^Vl F�x:^Vl���� F�x:^Vy�?@)
�object�tuplerr�listr�dict�assertRaises�	TypeError�type)rr#�argrrr�
test_seedargs%szTestBasicOps.test_seedargszrandom._urandomcCst|_|j�dS)N)�NotImplementedError�side_effectr5)rZurandom_mockrrr�*test_seed_when_randomness_source_not_found2sz7TestBasicOps.test_seed_when_randomness_source_not_foundcCs�|jj}g}||�|j|g�dg}||�|j|dg�dd�td�D�}dd�td�D�}x|D]}||�qfWx>t||�D]0\}}|jt|�t|��|jt|�t|��q�Wttd��}ttd��}||�|j||k�||�|j||k�dS)N�%cSsg|]}tt|���qSr)r/r)rrrrrrDsz-TestBasicOps.test_shuffle.<locals>.<listcomp>r%cSsg|]}tt|���qSr)r/r)rrrrrrEsi�)	r�shufflerr�zip�len�setr/�
assertTrue)rr:ZlstZseqsZ
shuffled_seqsZshuffled_seq�seqZshuffled_lstrrr�test_shuffle<s(
zTestBasicOps.test_shufflecCsT|jj}|jt��|g�WdQRX|j|dg�d�|j|ddg�ddg�dS)N�2��K)r�choicer1�
IndexErrorr�assertIn)rrDrrr�test_choice\s
zTestBasicOps.test_choicecCs�d}t|�}x\t|d�D]L}|jj||�}|jt|�|�t|�}|jt|�|�|j|t|�k�qW|j|jjgd�g�|jt|jj||d�|jt|jjgd�dS)N�dr$rr,)	rr�samplerr<r=r>r1�
ValueError)rr�
population�k�sZuniqrrr�test_samplecszTestBasicOps.test_samplecs�d}t|�}d}�fdd��xft|�D]Z}�|��||�}i}x<t|�D](}d|t|jj||��<t|�|krLPqLW|j�q&WdS)N�i'cs|dkrdS|�|d�S)Nrr$r)r)�	factorialrrrPysz8TestBasicOps.test_sample_distribution.<locals>.factorial)rr.rrIr<Zfail)rr�popZtrialsrL�expectedZpermsrr)rPr�test_sample_distributionssz%TestBasicOps.test_sample_distributioncCsb|jjttd��d�|jjtd�d�|jjtd�d�|jjtd�d�|jjtd�d�dS)Nr&r*Zabcdefghijklmnopqrst)rrIr=r�strr.)rrrr�test_sample_inputs�s
zTestBasicOps.test_sample_inputscCs|jt|jjtjd�d�dS)NZabcdefr*)r1r2rrIr0�fromkeys)rrrr�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]:}|jt|�d�|jt|�t�|jt|�t|�k�qlW|j	t
��|d�WdQRX|j||dd�g�|j||d!d�g�|j	t
��||dd�WdQRX|jt||dd��t|�k�|jt||dd��t|�k�|j	t
��||dd�WdQRX|jt||ddd��t|�k�|jt||ddd��t|�k�|j	t��||d
dgdd�WdQRX|j	t
��||ddd�WdQRX|j	t
��||dgddd�WdQRXxnddddgddddgtd
d�tdd�tdd�tdd�gddddggD]&}|jt|||dd��t|�k��qlW|j	t��||d
dgdd�WdQRX|j	t
��||ddd�WdQRX|j	t
��||dgddd�WdQRX|j	t
��||td�td�dd�WdQRXxdddddgddddgtd
d�tdd�tdd�tdd�ggD]&}|jt|||dd��t|�k��qvW|j|dd
dddg�dg�|j|ddd
ddg�dg�|j|dddd
dg�dg�|j|ddddd
g�d g�|j	t
��|gd
d�WdQRX|j	t
��|ggd
d�WdQRX|j	t
��|ggdd�WdQRXdS)"NZredZgreenZblueZyellowZabcdr+rO)rL)rLrK�weights)rLrK�cum_weightsr*rr$g@)rXrLr%�rB�g333333.@gffffff$@g3333339@g�����L>@r)�TF)rYrLr'�b�c�dr,)r�choicesrr=rr<r3r/r>r1r2rJr	rE)rr`�dataZstr_dataZ
range_data�set_datarIrXrrr�test_choices�sx
  

"&"

*&zTestBasicOps.test_choicescCs"|jj}|ddgddgdd�dS)Nr$r*gi�)rKrXrL)rr`)rr`rrr�test_choices_subnormal�sz#TestBasicOps.test_choices_subnormalcCsrxld	D]d}|jj|�|jj�}|jjdd�}|jj|�|jj�}|jjdd�}|j||�|j||�qWdS)
Nr$��{���90�@���	r)r$rerfrgrhrirj)rrr
�gaussr)rrZx1Zy1Zx2Zy2rrr�
test_gauss�s


zTestBasicOps.test_gausscslxfttjd�D]T}tj�j|�}�fdd�td�D�}tj|���fdd�td�D�}�j||�qWdS)Nr$csg|]}�jj��qSr)rr
)rr)rrrr�sz.TestBasicOps.test_pickling.<locals>.<listcomp>r%csg|]}�j��qSr)r
)rr)�newgenrrr�s)r�pickle�HIGHEST_PROTOCOL�dumpsr�loadsr)r�protorZorigseqZrestoredseqr)rmrr�
test_pickling�s
zTestBasicOps.test_picklingcCsZd	d
dg}xJ|D]B\}}ttj|�d�}tj|�}|j�|jt|j�d�|�qWdS)N�
randv2_32.pck��
randv2_64.pck�b�
randv3.pck�W�rbi�)rtru)rvrw)rxry)	�openrZfindfilern�load�closer�intr
)r�files�file�value�f�rrrr�test_bug_1727780s
zTestBasicOps.test_bug_1727780csRd}|jj�t�fdd�t|�D��}|jd||ko@dkn||�dS)Ni��c3s|]}�d�ddkVqdS)l�r)r*Nr)rr)�	randrangerr�	<genexpr>sz-TestBasicOps.test_bug_9025.<locals>.<genexpr>g333333�?g�G�z��?)rr��sumrr>)rrrLr)r�r�
test_bug_9025
szTestBasicOps.test_bug_9025N)r r!r"rrrr5�unittest�mock�patchr8r@rGrNrSrUrWrcrdrlrsr�r�rrrrr
s"

 M
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�Zeefdd�ZdS)�SystemRandom_TestBasicOpscCs|jj�dS)N)rr)rrrrr sz'SystemRandom_TestBasicOps.test_autoseedcCs&|jt|jj�|jt|jjd�dS)N)r1r6rrr)rrrrr$sz*SystemRandom_TestBasicOps.test_saverestorecCs|jjd�dS)NrH)rr)rrrrr5(sz'SystemRandom_TestBasicOps.test_seedargscCs(d|j_|jjd�|j|jjd�dS)NrH)rZ
gauss_nextrr)rrrrrl,sz$SystemRandom_TestBasicOps.test_gausscCs0x*ttjd�D]}|jttj|j|�qWdS)Nr$)rrnror1r6rpr)rrrrrrrs1sz'SystemRandom_TestBasicOps.test_picklingcCsDd}d}x&td�D]}|t|jj�|�O}qW|j||d�dS)Nr*�5rrHr$l)rr~rr
r)r�span�cumrrrr�test_53_bits_per_float5s
z0SystemRandom_TestBasicOps.test_53_bits_per_floatcCsddd}d}xBtd�D]6}|jj|�}|jd|ko<|kn�||O}qW|j||d�dS)Nr*i�rrHr$)rrr�r>r)rr�r�rr�rrr�test_bigrand=sz&SystemRandom_TestBasicOps.test_bigrandc	CshxbdD]Z}|jjd
|d
�}|jjd
|�}||kr8q|j||jj||�koX|kn�qWdS)N�(�P�������w��&r*)	r�r�r�r�r�r�r�r�r�)rr�r>)rr�start�stoprrr�test_bigrand_rangesHs
z-SystemRandom_TestBasicOps.test_bigrand_rangescsFx@dD]8\���jtt����t���fdd�td�D���qWdS)Nr*r�<csg|]}�jj����qSr)rr�)rr)rr�r�rrrSsz>SystemRandom_TestBasicOps.test_rangelimits.<locals>.<listcomp>rH����r�rll�������l����r�r��l��r�r�)r�r�r�)rr=r)rr)rr�r�r�test_rangelimitsPsz*SystemRandom_TestBasicOps.test_rangelimitscCs<|jjddd�}|j|d�|jjddd�}|j|d�dS)Nrr%r*r+r\�)rr*r+r\r�)rr�rFr)rZrintrrr�test_randrange_nonunit_stepUsz5SystemRandom_TestBasicOps.test_randrange_nonunit_stepcCs^t|jt|jj�}|dd�|d	�|ddd
�|d�|dd�|ddd�|ddd�dS)Nr)i�rrHregn��!	@g����	�@�*i/���i�)rr1rJrr�)rZraisesrrr�test_randrange_errors[s

z/SystemRandom_TestBasicOps.test_randrange_errorscCs�x<tdd�D].}|jd|jj|�ko2d|kn�qW|jj}xBdD]:}d}xtd�D]}|||�O}q^W|j|d|d�qLW|jt|jj�|jt|jjdd�|jt|jjd�|jt|jjd�|jt|jjd�dS)Nr$i�rr*r)r+�� �4r��6�w���rHg333333$@)r$r*r)r+r�r�r�r�r�r�r�r�r�r�r,)rr>r�getrandbitsrr1r2rJ)rrL�getbitsr�r�rrrr�test_genrandbitshs.
z*SystemRandom_TestBasicOps.test_genrandbitscCs�xtdd�D]�}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*rZ)rrrFr>)r�_logr~rr�numbitsrLrrr�test_randbelow_logic|s*z.SystemRandom_TestBasicOps.test_randbelow_logicN)r r!r"r
�SystemRandomrrrr5rlrsr�r�r�r�r�r�r�rr~r�rrrrr�s
r�c@s�eZdZej�Zdd�Zdd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zeefdd�Zejjd�d d!��Zd"d#�Zd$d%�Zd&S)'�MersenneTwister_TestBasicOpscsp�jjddd��j�fdd�td�D�ddd	d
g��jjddd��j�fd
d�td�D�ddddg�dS)Ni��4r$)�versioncsg|]}�jj�j��qSr)rr
�hex)rr)rrrr�szGMersenneTwister_TestBasicOps.test_guaranteed_stable.<locals>.<listcomp>r+z0x1.ac362300d90d2p-1z0x1.9d16f74365005p-1z0x1.1ebb4352e4c4dp-1z0x1.1a7422abf9c11p-1zthe quick brown foxr*csg|]}�jj�j��qSr)rr
r�)rr)rrrr�sz0x1.1239ddfb11b7cp-3z0x1.b3cbb5c51b120p-4z0x1.8c4f55116b60fp-1z0x1.63eb525174a27p-1)rrrr)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�csg|]}�jj�j��qSr)rr
r�)rr)rrrr�sz?MersenneTwister_TestBasicOps.test_bug_27706.<locals>.<listcomp>r+z0x1.8645314505ad7p-1z0x1.afb1f82e40a40p-5z0x1.2a59d2285e971p-1z0x1.56977142a7880p-6Zrachelcsg|]}�jj�j��qSr)rr
r�)rr)rrrr�sz0x1.0b294cc856fcdp-1z0x1.2ad22d79e77b8p-3z0x1.3052b9c072678p-2z0x1.578f332106574p-3�csg|]}�jj�j��qSr)rr
r�)rr)rrrr�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|jj|��Wntk
r6YnXdS)Nc@seZdZdd�ZdS)z;MersenneTwister_TestBasicOps.test_bug_31478.<locals>.BadIntcSsdS)Nr)rrrr�__abs__�szCMersenneTwister_TestBasicOps.test_bug_31478.<locals>.BadInt.__abs__N)r r!r"r�rrrr�BadInt�sr�)r~rrr2)rr�rrr�test_bug_31478�s
z+MersenneTwister_TestBasicOps.test_bug_31478cs��jjddd��j�fdd�td�D�ddd	d
g��jjddd��j�fdd�td�D�d
dddg��jjddd��j�fdd�td�D�ddddg�d}�jj|dd��j�fdd�td�D�ddddg�dS)Nsnofarr$)r�csg|]}�jj�j��qSr)rr
r�)rr)rrrr�sz?MersenneTwister_TestBasicOps.test_bug_31482.<locals>.<listcomp>r+z0x1.8645314505ad7p-1z0x1.afb1f82e40a40p-5z0x1.2a59d2285e971p-1z0x1.56977142a7880p-6srachelcsg|]}�jj�j��qSr)rr
r�)rr)rrrr�sz0x1.0b294cc856fcdp-1z0x1.2ad22d79e77b8p-3z0x1.3052b9c072678p-2z0x1.578f332106574p-3�csg|]}�jj�j��qSr)rr
r�)rr)rrrr�sz0x1.b0580f98a7dbep-1z0x1.84129978f9c1ap-1z0x1.aeaa51052e978p-2z0x1.092178fb945a6p-2s	 @`�����csg|]}�jj�j��qSr)rr
r�)rr)rrrr�sz0x1.52c2fde444d23p-1z0x1.875174f0daea4p-2z0x1.9e9b2c50e5cd2p-1z0x1.fa57768bd321cp-2)rrrr)rr]r)rr�test_bug_31482�s"


z+MersenneTwister_TestBasicOps.test_bug_31482cCs|jt|jjd�dS)Nr$)r$NN)r1rJrr)rrrr�test_setstate_first_arg�sz4MersenneTwister_TestBasicOps.test_setstate_first_argcCsJ|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)r~)r�xrrrr��szHMersenneTwister_TestBasicOps.test_setstate_middle_arg.<locals>.<genexpr>)r*NN�r$r*r))r*r�N)r')r)r')r$)r�)r$r,)r,r,)rrr1r2rrJ�
OverflowErrorr�rr/�float)rZstart_stateZbits100Zstate_valuesrrrr�test_setstate_middle_arg�s"
 $$z5MersenneTwister_TestBasicOps.test_setstate_middle_argc
Csbddddddddd	d
g
}|jjd�|jd�dd�}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�Ԗ�?i#�iGar�if�@i���`i�r%�)�placesll#ql`&l#q`&l�'Rl#q`&�'Ri����)rrrr;�assertAlmostEqual)rrR�actualr'�errr�test_referenceImplementation�sz9MersenneTwister_TestBasicOps.test_referenceImplementationc
Cstddlm}ddddddd	d
ddg
}|jjd�|jd�dd�}x,t||�D]\}}|jt||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�i#�iGar�ifr�i��r�i�r%r�ll#ql`&l#q`&l�'Rl#q`&�'Ri����)�mathr�rrrr;rr~)rr�rRr�r'r�rrr�$test_strong_reference_implementationszAMersenneTwister_TestBasicOps.test_strong_reference_implementationcCsdd>d}|jj|�dS)Nr$i'r�i�8)rr)rrrrr�test_long_seed.sz+MersenneTwister_TestBasicOps.test_long_seedcCsDd}d}x&td�D]}|t|jj�|�O}qW|j||d�dS)Nr*r�rrHr$l)rr~rr
r)rr�r�rrrrr�7s
z3MersenneTwister_TestBasicOps.test_53_bits_per_floatcCsddd}d}xBtd�D]6}|jj|�}|jd|ko<|kn�||O}qW|j||d�dS)Nr*i�rrHr$)rrr�r>r)rr�r�rr�rrrr�?sz)MersenneTwister_TestBasicOps.test_bigrandc	CshxbdD]Z}|jjd
|d
�}|jjd
|�}||kr8q|j||jj||�koX|kn�qWdS)Nr�r�r�r�r�r��w��&r*)	r�r�r�r�r�r�r�r�r�)rr�r>)rrr�r�rrrr�Js
z0MersenneTwister_TestBasicOps.test_bigrand_rangescsFx@dD]8\���jtt����t���fdd�td�D���qWdS)Nr*rr�csg|]}�jj����qSr)rr�)rr)rr�r�rrrUszAMersenneTwister_TestBasicOps.test_rangelimits.<locals>.<listcomp>rHr��r�rll�������l����r�r��l��r�r�)r�r�r�)rr=r)rr)rr�r�rr�Rsz-MersenneTwister_TestBasicOps.test_rangelimitscCs|jjd�|j|jjd�d�x<tdd�D].}|jd|jj|�koRd|kn�q,W|jj}xBdD]:}d}xtd�D]}|||�O}q~W|j|d|d�qlW|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$r*r)r+r�r�r�r�r�r�r�r�r�r�r,)	rrrr�rr>r1r2rJ)rrLr�r�r�rrrrr�Ws .
z-MersenneTwister_TestBasicOps.test_genrandbitscCs�xtdd�D]�}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*rZ)rrrFr>)rr�r~rrr�rLrrrr�os*z1MersenneTwister_TestBasicOps.test_randbelow_logiczrandom.Random.randomcCs�tj�j|_dtj>}tj��&tjdt�|jj	|d|d�WdQRX|jj	d|d�|j
t��|jj	d|d�WdQRXd}d}||||}||||g|_|jj	||d�dS)Nr$�ignore)�maxsizeirr�g{�G�z�?)r
r�r7ZBPF�warnings�catch_warnings�simplefilter�UserWarningrZ
_randbelowr1rJ)r�random_mockr�r�epsilon�limitrrr� test_randbelow_overridden_random�s

z=MersenneTwister_TestBasicOps.test_randbelow_overridden_randomcCsRd}d}d}|jj|||�}|j||ko2|kn�|j|||d�dS)NlJ)�l F�x:^Vr�rl���� F�x:^Vi8���)rr�r>r)rr�r��stepr�rrr�test_randrange_bug_1590891�sz7MersenneTwister_TestBasicOps.test_randrange_bug_1590891c
CsH|jj}d}|jjd�|jjt|�dd�}|jjd�|jjt|�dg|dd�}|j||�|jjd�|jjt|�td|d�dd�}|j||�ddd	g}d
d
dg}d
dd
g}dgd
dgd
d	gd}	|jjd�|jj|	dd�}|jjd�|jj||dd�}|j||�|jjd�|jj||dd�}|j||�dS)Ni�i�_�i')rLr$)rYrLZRedZBlackZGreen�r*�$�&i�߉)rr`rrr)
rr`rr'r]r^rKrXrYZexpanded_populationrrr�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�rr~r�r�r�r�r�r�r�rrrrr��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)�zZsqrt2piZazrrrr��s





r�c@sdeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Ze	j
jd
�dd��Ze	j
jd�dd��Z
dS)�TestDistributionscs�tj���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
)rr)�grrr�sz5TestDistributions.test_zeroinputs.<locals>.<listcomp>rAgrOr$r%g�?g{�G�z�?gi@g@gUUUUUU�?)r
r�rrQ�uniform�
paretovariate�expovariate�weibullvariate�vonmisesvariate�
normalvariaterk�lognormvariate�gammavariate�betavariate�
triangular)rr�r)r�r�test_zeroinputs�s< 

z!TestDistributions.test_zeroinputsc
sxtj�}d��fdd�td��D�}�xL|jdddf|jddd f|jd!d"d$f|jd%ttddf|jd&d(d-f|j	d.t
d0�t
d2�t
d4�dfgD]�\}}}}|dd�j|_g}x@tt|��D]0}y|j
||��Wntk
�r�YnX�q�Wd}	}
x&|D]}|	|7}	|
||d7}
�qWt|��|j|	�|dd|j|fd�|j|
�d|dd|j|fd��q�WdS)5Ni�csg|]}|t���qSr)r�)rr)rrrr�sz2TestDistributions.test_avg_std.<locals>.<listcomp>r$��?�$@r*re��@g@g"@g@g2@��?�G�z��?rr)�@z%s%r)r��msg)rrg&@g@g"@g@T@g@�UUUUUU�?)rrrg�q�q�?g9��8���?g�<ݚ�?)rgUUUUUU�?g@g�q�q�?)r	r)r
g@g�?g@g0@g@gH@g�������?)rrgUUUUUU�?gUUUUUU�?gUUUUUU�?g�������?gUUUUUU�?gUUUUUU�?)r
r�rr�rr�r�rr�r�r�rQr<�appendrEr�r )rr�r��variate�args�muZ	sigmasqrd�yr�s1�s2r�r)rr�test_avg_std�s8$
zTestDistributions.test_avg_stdcCs�tj�}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�Wq�WdS)NrH�$@�inf�g@g�?)rr)rr)rrr)rr)rr)rr)rr)r
r�r�rr�r�r�rkr�r�r�r�rr)rr�rrrrRrrrr�
test_constants"





zTestDistributions.test_constantc	Csxtj�}d}xfdD]^}xXdD]P}xJt|�D]>}|j||�}|jd|koRtjknd	j|||�d
�q*WqWqWdS)
NrH�皙�����?�������@�������@�ffffff@�@@rzCvonmisesvariate({}, {}) produced a result {} out of range [0, 2*pi])r)rrrr)rrr)r
r�rr�r>�TWOPI�format)rr�rrZkappa�_rIrrr�test_von_mises_range*s

z&TestDistributions.test_von_mises_rangecCstjdd�tjdd�dS)Nrg4&�kCg}Ô%�I�T)r
r�)rrrr�test_von_mises_large_kappa8sz,TestDistributions.test_von_mises_large_kappacCsL|jttjdd�|jttjdd�|jttjdd�|jttjdd�dS)Nr$r)rr*r,���)r1rJr
r)rrrr�test_gammavariate_errors=sz*TestDistributions.test_gammavariate_errorszrandom.Random.randomcCs�dddg|_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
rr��_e�_expr�)rr�Zreturned_valuer&r'r�ZalphaZbetar]r�Zr1Zr2rrr�$test_gammavariate_full_code_coverageDs.

!	z6TestDistributions.test_gammavariate_full_code_coveragezrandom.Random.gammavariatecCsd|_|jdtjdd��dS)Ngg����	�@gn��!	@)Zreturn_valuerr
r)rZgammavariate_mockrrr�test_betavariate_return_zero�sz.TestDistributions.test_betavariate_return_zeroN)r r!r"rrrr"r#r%r�r�r�r(r)rrrrr��s Wr�c@s$eZdZdd�Zdd�Zdd�ZdS)�
TestModulecCs<|jtjd�|jtjd�|jtjd�|jtjd�dS)Ng�3?�r�?g�.DT�!@g�9��B.�?g�t�Y@)r�r
Z
NV_MAGICCONSTrZLOG4Z
SG_MAGICCONST)rrrr�testMagicConstants�szTestModule.testMagicConstantscCs |jttj�ttt��k�dS)N)r>r=r
�__all__�dir)rrrr�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�newargrrrr/�szFTestModule.test_random_subclass_with_kwargs.<locals>.Subclass.__init__)N)r r!r"r/rrrr�Subclass�sr1r$)r0)r
r�)rr1rrr� test_random_subclass_with_kwargs�sz+TestModule.test_random_subclass_with_kwargsN)r r!r"r+r.r2rrrrr*�sr*�__main__)r�Z
unittest.mockr
rrnr��	functoolsrr�rrrrrZtestrZ	fractionsr	r
r�r6ZSystemRandom_availableZ
skipUnlessZTestCaser�r�r�r�r*r �mainrrrr�<module>s8
u@A