Uname: Linux web3.us.cloudlogin.co 5.10.226-xeon-hst #2 SMP Fri Sep 13 12:28:44 UTC 2024 x86_64
Software: Apache
PHP version: 8.1.31 [ PHP INFO ] PHP os: Linux
Server Ip: 162.210.96.117
Your Ip: 3.139.235.52
User: edustar (269686) | Group: tty (888)
Safe Mode: OFF
Disable Function:
NONE

name : test_random.cpython-310.pyc
o

ab���@sdddlZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
ddlmZm
Z
mZmZmZmZddlmZddlmZddlmZmZGdd�d�Zze����Wneydd	ZYnwd
Ze�ed�Gdd
�d
eej��ZGdd�deej�Zdedfdd�Z Gdd�dej�Z!Gdd�dej�Z"Gdd�dej�Z#e$dkr�e�%�dSdS)�N)�partial)�log�exp�pi�fsum�sin�	factorial)�support)�Fraction)�abc�Counterc@seZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zej	�
d�dd
��Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zd0d1�Zejj d2d3��Z!ejj d4d5��Z"d6d7�Z#d8d9�Z$d:d;�Z%d<S)=�TestBasicOpscs�fdd�t|�D�S)z0Helper function to make a list of random numbersc�g|]}�j���qS���gen�random��.0�i��selfr�9/usr/local/python-3.10/lib/python3.10/test/test_random.py�
<listcomp>�z+TestBasicOps.randomlist.<locals>.<listcomp>��range�r�nrrr�
randomlistszTestBasicOps.randomlistcCsB|j��|j��}t�d�|j��|j��}|�||�dS)N皙�����?)r�seed�getstate�time�sleep�assertNotEqual)rZstate1Zstate2rrr�
test_autoseeds




zTestBasicOps.test_autoseedcCsDd}|j��|j��}|�|�}|j�|�|�||�|��dS)N��)rr!r"r�setstate�assertEqual)r�N�stateZrandseqrrr�test_saverestore!s


zTestBasicOps.test_saverestorec	Cs�Gdd�dt�}dD]}|j�|�q
dtd�|�fD]}|�t��|j�|�Wd�n1s3wYqttd��tdd�fD] }|�t��|�	t
|jj|�Wd�n1s_wYqD|�	t
|jjdd	dd
�|�	t
t|j�g�dS)Nc@�eZdZdd�ZdS)z*TestBasicOps.test_seedargs.<locals>.MySeedcSsdS)Ni?���rrrrr�__hash__,�z3TestBasicOps.test_seedargs.<locals>.MySeed.__hash__N)�__name__�
__module__�__qualname__r.rrrr�MySeed+�r3)
Nr����l F�x:^V��� F�x:^VFT���Q�	@�ay�?@r�r5)Zone��)�objectrr!�tuple�assertWarns�DeprecationWarning�listr�dict�assertRaises�	TypeError�type)rr3�argrrr�
test_seedargs)s����zTestBasicOps.test_seedargscCs(td�}|j�|�|�|td��dS)Ns1234)�	bytearrayrr!r))rr9rrr�test_seed_no_mutate_bug_44018<�z*TestBasicOps.test_seed_no_mutate_bug_44018zrandom._urandomcCst|_|��dS�N)�NotImplementedError�side_effectrG)rZurandom_mockrrr�*test_seed_when_randomness_source_not_foundAsz7TestBasicOps.test_seed_when_randomness_source_not_foundcCs|jj}g}||�|�|g�dg}||�|�|dg�dd�td�D�}dd�td�D�}|D]}||�q2t||�D]\}}|�t|�t|��|�t|�t|��q>ttd��}ttd��}||�|�||k�||�|�||k�|�	t
|d�dS)N�%cS�g|]}tt|���qSr�rAr�rrrrrrS�z-TestBasicOps.test_shuffle.<locals>.<listcomp>�
cSrPrrQrRrrrrTrSr'�r5r;r:)r�shuffler)r�zip�len�setrA�
assertTruerCrD)rrVZlstZseqsZ
shuffled_seqsZshuffled_seq�seqZshuffled_lstrrr�test_shuffleKs*
zTestBasicOps.test_shufflecCs^|jj}tjjdd�}td�}|�t��
|||�Wd�n1s$wY|��dS)N��?)�return_valuesabcdefghijk)	rrV�unittest�mockZMockrHr?r@Zassert_called_with)rrVZmock_randomr[rrr�test_shuffle_random_argumentls�z)TestBasicOps.test_shuffle_random_argumentcCsh|jj}|�t��|g�Wd�n1swY|�|dg�d�|�|ddg�ddg�dS)N�2��K)r�choicerC�
IndexErrorr)�assertIn)rrerrr�test_choiceus
�zTestBasicOps.test_choicecCs�d}t|�}t|d�D]&}|j�||�}|�t|�|�t|�}|�t|�|�|�|t|�k�q|�|j�gd�g�|�t|jj||d�|�t|jjgd�dS)N�dr5rr6)	rr�sampler)rXrYrZrC�
ValueError)rr*�
population�k�sZuniqrrr�test_sample|szTestBasicOps.test_samplec	Csvd}t|�}d}t|�D],}t|�t||�}i}t|�D]}d|t|j�||��<t|�|kr3q8q|��qdS)N��')rrr>rrjrXZfail)rr�popZtrialsrm�expectedZpermsrrrr�test_sample_distribution�s���z%TestBasicOps.test_sample_distributioncCsL|j�td�d�|j�td�d�|j�td�d�|j�td�d�dS)N�r;Zabcdefghijklmnopqrst)rrjr�strr>rrrr�test_sample_inputs��zTestBasicOps.test_sample_inputscCs|�t|jjt�d�d�dS)NZabcdefr;)rCrDrrjrB�fromkeysrrrr�test_sample_on_dicts�sz!TestBasicOps.test_sample_on_dictscCsH|�t��hd�}|jj|dd�Wd�dS1swYdS)N>�F�(rTrbru�<�rp�rm)r?r@rrj)rrlrrr�test_sample_on_sets�s"�z TestBasicOps.test_sample_on_setscCslGdd�dtjtj�}|gd��}t���t�dt�|jj|dd�Wd�dS1s/wYdS)Nc@s$eZdZdd�Zdd�Zdd�ZdS)z3TestBasicOps.test_sample_on_seqsets.<locals>.SeqSetcSs
||_dSrK��_items)r�itemsrrr�__init__��
z<TestBasicOps.test_sample_on_seqsets.<locals>.SeqSet.__init__cSs
t|j�SrK)rXr�rrrr�__len__�r�z;TestBasicOps.test_sample_on_seqsets.<locals>.SeqSet.__len__cSs
|j|SrKr�)r�indexrrr�__getitem__�r�z?TestBasicOps.test_sample_on_seqsets.<locals>.SeqSet.__getitem__N)r0r1r2r�r�r�rrrr�SeqSet�sr�)r;r<r5r:�errorr;r)	r�Sequence�Set�warnings�catch_warnings�simplefilterr@rrj)rr�rlrrr�test_sample_on_seqsets�s

"�z#TestBasicOps.test_sample_on_seqsetsc	Cs�|jj}gd�}gd�}d}t||||d��}|�t|���|�t||�D]\}}|�|||�q&|�d|�t|�}t||||d��}|�t|���|�t||�D]\}}|�|||�qU|�d|�t|dgdgdd��}|�|tdd	��t	|�}t||dg|d|d��}|�|td|��|�
t��|gd
�ddd�Wd�n1s�wY|�
t��|gd
�gd�dd�Wd�n1s�wY|�
t��|gd
�gd
�dd�Wd�n1s�wY|�
t��|ddgddgdd�Wd�n	1�swY|�
t��|gd
�ddgdd�Wd�n	1�s3wY|�
t��|gd
�gd�dd�Wd�dS1�sUwYdS)N)�red�green�blue�orange�black�brown�amber)����rurTrprr5���countsrmr��xrT�)r�)r�r�r�)���i����i����r;)rrrr�r��r5)r5r;r:r<)
rrjrr)�sum�valuesrWZassertLessEqualZassertNotInrXrCrDrk)	rrj�colorsr�rmZsummary�colorZweightZncrrr�test_sample_with_counts�sL�����$�z$TestBasicOps.test_sample_with_countsc	Csd|jj}gd�}d}td�}ttd��}||dd�||td�dd�|d|td�d�|d|td�d�fD]}|�t|�d�|�t|�t�|�t|�t|�k�q3|�	t
��|d�Wd�n1sewY|�||d	d�g�|�||d
d�g�|�	t
��||dd�Wd�n1s�wY|�t||dd��t|�k�|�t||dd��t|�k�|�	t
��||dd�Wd�n1s�wY|�t||ddd��t|�k�|�t||ddd��t|�k�|�	t��||d
dgdd�Wd�n	1�swY|�	t
��||ddd�Wd�n	1�s)wY|�	t
��||dgddd�Wd�n	1�sIwYgd�gd�td
d�tdd�tdd�tdd�ggd�fD]}|�t|||dd��t|�k��qj|�	t��||d
dgdd�Wd�n	1�s�wY|�	t
��||ddd�Wd�n	1�s�wY|�	t
��||dgddd�Wd�n	1�s�wY|�	t
��||td�td�dd�Wd�n	1�s�wYgd�gd�td
d�tdd�tdd�tdd�gfD]}|�t|||dd��t|�k��q|�|dgd��dg�|�|dgd��dg�|�|dgd��dg�|�|dgd��dg�|�	t
��|gd
d�Wd�n	1�spwY|�	t
��|ggd
d�Wd�n	1�s�wY|�	t
��|ggdd�Wd�dS1�s�wYdS)N)r�r�r�ZyellowZabcdr<rpr)rmrl�weights)rmrl�cum_weightsr;rr6g@)r�rmr5rT)�rTrcr~)g333333.@gffffff$@g3333339@g�����L>@r:�)TFTF�r�rm)r5rrrr9)rr5rr�b)rrr5r�c)rrrr5�d)r�choicesrrYr)rXrErArZrCrDrkr
rf)rr��dataZstr_dataZ
range_data�set_datarjr�rrr�test_choices�s�
�
���  ���"�$����"�$��$�zTestBasicOps.test_choicescCs"|jj}|ddgddgdd�dS)Nr5r;g�)rlr�rm)rr�)rr�rrr�test_choices_subnormal4sz#TestBasicOps.test_choices_subnormalcCsB|�t��|j�dddg�Wd�dS1swYdS)N�AB��rCrkrr�rrrr�"test_choices_with_all_zero_weights<s"�z/TestBasicOps.test_choices_with_all_zero_weightscCsB|�t��|j�dgd��Wd�dS1swYdS)N�ABC)r:���r5r�rrrr�test_choices_negative_totalAs"�z(TestBasicOps.test_choices_negative_totalcCsJ|�t��|j�dtd�g�Wd�n1swY|�t��|j�ddtd�g�Wd�n1s:wY|�t��|j�dtd�dg�Wd�n1s[wY|�t��|j�ddtd�g�Wd�n1s{wY|�t��|j�dtd�td�g�Wd�dS1s�wYdS)N�A�infr�r��{�nanz-inf)rCrkrr��floatrrrr�test_choices_infinite_totalEs����"�z(TestBasicOps.test_choices_infinite_totalcCsndD]2}|j�|�|j��}|j�dd�}|j�|�|j��}|j�dd�}|�||�|�||�qdS)N)r5�r�i�i90i@�i�	rr5)rr!r�gaussr))rr!Zx1Zy1Zx2Zy2rrr�
test_gaussQs

�zTestBasicOps.test_gaussc	Cstdd�D]}|�d|j�|�kod|kn�q|�|j�d�d�|jj}dD]-}d|d}d}d}td�D]}||�}||O}|||AO}q=|�||�|�||�q-|�t|jj�|�t|jjdd�|�t|jjd�|�t|jjd�dS)	Nr5r'rr;)r5r;r:r<�� r��4�5�6�w���rir6g333333$@)rrZr�getrandbitsr)rCrDrk)	rrmZgetbits�spanZall_bits�cumZcpl_cumr�vrrr�test_getrandbitsbs$,zTestBasicOps.test_getrandbitscshttjd�D]*}t��j|�}�fdd�td�D�}t�|���fdd�td�D�}��||�qdS)Nr5crrrrrrrr~rz.TestBasicOps.test_pickling.<locals>.<listcomp>rTc�g|]}����qSr�rr)�newgenrrr��)r�pickle�HIGHEST_PROTOCOL�dumpsr�loadsr))r�protor+ZorigseqZrestoredseqr)r�rr�
test_pickling{s
�zTestBasicOps.test_picklingcCs:ddl}ttjd�D]}|��}|�ttj||�qdS)Nrr5)�_randomrr�r��RandomrCrDr�)rr�r��rrrr�test_bug_41052�s
�zTestBasicOps.test_bug_41052cCs<ddl}|��}|�d�|�d�}|�|��|���dS)Nr��_�)r�r�r!r)r)rr��r1�r2rrr�test_bug_42008�s


zTestBasicOps.test_bug_42008c	Cslgd�}|D]-\}}tt�|�d��
}t�|�}Wd�n1s"wY|�t|��d�|�qdS)N))z
randv2_32.pcki)z
randv2_64.pckib)z
randv3.pckiW�rbr')�openr	Zfindfiler��loadr)�intr)r�files�file�value�fr�rrr�test_bug_1727780�s��zTestBasicOps.test_bug_1727780csRd}|jj�t�fdd�t|�D��}|�d||ko dkn||�dS)Ni��c3s �|]}�d�ddkVqdS)l�r:r;Nrr��	randrangerr�	<genexpr>�s�z-TestBasicOps.test_bug_9025.<locals>.<genexpr>�333333�?g�G�z��?)rr�r�rrZ)rrrmrr�r�
test_bug_9025�s,zTestBasicOps.test_bug_9025cCs�tdd�D]}|j�|�}|�t|�t�|�t|�|�q|�|j�d�d�|�t|jj�|�t|jjdd�|�t	|jjd�|�t|jjd�dS)Nr5rTr�r;r6��?)
rr�	randbytesr)rE�bytesrXrCrDrk)rrr�rrr�test_randbytes�szTestBasicOps.test_randbytesN)&r0r1r2rr&r,rGrIr_r`�patchrNr\rarhrortrwrzr�r�r�r�r�r�r�r�r�r�r��testr	Zcpython_onlyr�r�r�r�r�rrrrr
sB

	!	,M

r
FTz!random.SystemRandom not availablec@s�eZdZe��Zdd�Zdd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Zeefdd�ZdS)�SystemRandom_TestBasicOpscCs|j��dSrK�rr!rrrrr&�sz'SystemRandom_TestBasicOps.test_autoseedcCs&|�t|jj�|�t|jjd�dSrK)rCrLrr"r(rrrrr,�sz*SystemRandom_TestBasicOps.test_saverestorecCs|j�d�dS�Nrir�rrrrrG�sz'SystemRandom_TestBasicOps.test_seedargscCs(d|j_|j�d�|�|jjd�dSr�)r�
gauss_nextr!r)rrrrr��rJz$SystemRandom_TestBasicOps.test_gausscCs,ttjd�D]}|�ttj|j|�qdS)Nr5)rr�r�rCrLr�r)rr�rrrr��s�z'SystemRandom_TestBasicOps.test_picklingcC�@d}d}td�D]
}|t|j��|�O}q|�||d�dS�Nlrrir5�rr�rrr)�rr�r�rrrr�test_53_bits_per_float��
z0SystemRandom_TestBasicOps.test_53_bits_per_floatcC�`dd}d}td�D]}|j�|�}|�d|ko|kn�||O}q
|�||d�dS�Nr;r�rrir5�rrr�rZr)�rr�r�rr�rrr�test_bigrand��
z&SystemRandom_TestBasicOps.test_bigrandcC�ddD]-}|j�d|d�}|j�d|�}||krq|�||j�||�ko+|kn�qdS�N)	r|�P�r����iwii&r;�rr�rZ�rr�start�stoprrr�test_bigrand_ranges��*�z-SystemRandom_TestBasicOps.test_bigrand_rangesc�BdD]\����tt����t���fdd�td�D���qdS)N�)���r)l����l����)llc�g|]	}�j�����qSr�rr�r�rrrrrr��z>SystemRandom_TestBasicOps.test_rangelimits.<locals>.<listcomp>ri�r)rYrrrrr�test_rangelimits��
��z*SystemRandom_TestBasicOps.test_rangelimitscCs<|j�ddd�}|�|d�|j�ddd�}|�|d�dS)NrrTr;)rr;r<r�r�)rr�rgr))rZrintrrr�test_randrange_nonunit_step�sz5SystemRandom_TestBasicOps.test_randrange_nonunit_stepc	Csvt|jt|jj�}|dd�|d�|ddd�|�t|d�|�t|jjd�|�t|jjtdd��|�t|d	�|�t|dd
�|�t|jjdd�|�t|jjdtdd��|�t|dd
�|ddd�|�t|ddd�|�t|ddd�|�t|ddd�|�t|jjddd�|�t|jjddtdd��|�t|ddd	�|�t|jjddd�|�t|ddd�dS)Nr:i/���rrii��n��!	@�@r5�3���	�@�@r;�2�*r�r�)rrCrkrr�r?r@r
)rZraisesrrr�test_randrange_errors�s*
z/SystemRandom_TestBasicOps.test_randrange_errorsc	Cs|jj}|�t��|ddd�Wd�n1swY|�t��|ddd�Wd�n1s5wY|�t��|ddd�Wd�n1sPwY|�t��|ddd�Wd�n1skwY|�t��!|�t��|d�Wd�n1s�wYWd�n1s�wY|�t��"|�t��
|dd	�Wd�n1s�wYWd�n1s�wY|�t��,|�t��|ddd
�Wd�n1s�wYWd�dSWd�dS1�swYdS)N�$@rur;rTg4@r�r$g%@g�4@��?)rr�r?r@rCrk�rr�rrr� test_randrange_argument_handlings@����
��������$�z:SystemRandom_TestBasicOps.test_randrange_argument_handlingcCs||jj}|�t��|ddd�Wd�n1swY|�t��|dddd�Wd�dS1s7wYdS)Nr'ri)�step)rr�rCrDr*rrr�test_randrange_step,s�"�z-SystemRandom_TestBasicOps.test_randrange_stepcC�tdd�D]{}d|>}|d}|d||d��}|�||�|�|d|d�||d7}|d||d��}|�|||dg�|�d||koRd|dkn�||d?8}|d||d��}|�||�|�d||ko|d|dkn�qdS�Nr5r'gr�Z|
�?r;r��rr)rgrZ�r�_logr�rrZnumbitsrmrrr�test_randbelow_logic4�*,�z.SystemRandom_TestBasicOps.test_randbelow_logicN)r0r1r2r�SystemRandomrr&r,rGr�r�rrrrrr'r+r-rr�r3rrrrr��s r�cs�eZdZe��Zdd�Zdd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�Z�fdd�Zdd�Zeefdd �Zd!d"�Zd#d$�Zd%d&�Z�fd'd(�Zd)d*�Zd+d,�Z�ZS)-�MersenneTwister_TestBasicOpscsh�jjddd����fdd�td�D�gd���jjdd	d����fd
d�td�D�gd��dS)Ni��4r5��versionc�g|]	}�j�����qSr�rr�hexrrrrrPrzGMersenneTwister_TestBasicOps.test_guaranteed_stable.<locals>.<listcomp>r<)z0x1.ac362300d90d2p-1z0x1.9d16f74365005p-1z0x1.1ebb4352e4c4dp-1z0x1.1a7422abf9c11p-1zthe quick brown foxr;cr9rr:rrrrrTr)z0x1.1239ddfb11b7cp-3z0x1.b3cbb5c51b120p-4z0x1.8c4f55116b60fp-1z0x1.63eb525174a27p-1�rr!r)rrrrr�test_guaranteed_stableMs��z3MersenneTwister_TestBasicOps.test_guaranteed_stablecs��jjddd����fdd�td�D�gd���jjddd����fd	d�td�D�gd
���jjddd����fdd�td�D�gd
��dS)NZnofarr5r7cr9rr:rrrrr\rz?MersenneTwister_TestBasicOps.test_bug_27706.<locals>.<listcomp>r<�z0x1.8645314505ad7p-1z0x1.afb1f82e40a40p-5z0x1.2a59d2285e971p-1z0x1.56977142a7880p-6Zrachelcr9rr:rrrrrar�z0x1.0b294cc856fcdp-1z0x1.2ad22d79e77b8p-3z0x1.3052b9c072678p-2z0x1.578f332106574p-3�cr9rr:rrrrrfr�z0x1.b0580f98a7dbep-1z0x1.84129978f9c1ap-1z0x1.aeaa51052e978p-2z0x1.092178fb945a6p-2r<rrrr�test_bug_27706Xs���z+MersenneTwister_TestBasicOps.test_bug_27706cCs:Gdd�dt�}z
|j�|��WdStyYdSw)Nc@r-)z;MersenneTwister_TestBasicOps.test_bug_31478.<locals>.BadIntcSsdSrKrrrrr�__abs__nr/zCMersenneTwister_TestBasicOps.test_bug_31478.<locals>.BadInt.__abs__N)r0r1r2rCrrrr�BadIntmr4rD)r�rr!rD)rrDrrr�test_bug_31478js�z+MersenneTwister_TestBasicOps.test_bug_31478cs��jjddd����fdd�td�D�gd���jjddd����fd	d�td�D�gd
���jjddd����fdd�td�D�gd
��d}�jj|dd����fdd�td�D�gd��dS)Nsnofarr5r7cr9rr:rrrrr|rz?MersenneTwister_TestBasicOps.test_bug_31482.<locals>.<listcomp>r<r>srachelcr9rr:rrrrr�rr?r�cr9rr:rrrrr�rrAs	 @`�����cr9rr:rrrrr�r)z0x1.52c2fde444d23p-1z0x1.875174f0daea4p-2z0x1.9e9b2c50e5cd2p-1z0x1.fa57768bd321cp-2r<)rr�rrr�test_bug_31482us"����z+MersenneTwister_TestBasicOps.test_bug_31482cCs|�t|jjd�dS)N)r5NN)rCrkrr(rrrr�test_setstate_first_arg�sz4MersenneTwister_TestBasicOps.test_setstate_first_argcCsr|j��}|�t|jjd�|�t|jjd�|�t|jjddddf�|�t|jjdddddf�|�ttf��|j�dddd	df�Wd�n1sTwY|�ttf��|j�dddd
df�Wd�n1sxwY|j�d�}|j�|�|�|j�d�|�|j��d}t	|�}t
d
�|d<dd�|D�}|�t|jjd|df�dS)N)r;NN)r;rUNr;)r9�q)rip)r5)rH)r6rir5r�r6css�|]}t|�VqdSrK)r�)rr�rrrr��s�zHMersenneTwister_TestBasicOps.test_setstate_middle_arg.<locals>.<genexpr>)rr"rCrDr(rk�
OverflowErrorr�r)rAr�)rZstart_stateZbits100Zstate_valuesr+rrr�test_setstate_middle_arg�s&
 ��z5MersenneTwister_TestBasicOps.test_setstate_middle_argcCsNgd�}|j�d�|�d�dd�}t||�D]\}}|j||dd�qdS)N)
g>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)rr!rrW�assertAlmostEqual)rrs�actualr9�errr�test_referenceImplementation�s�z9MersenneTwister_TestBasicOps.test_referenceImplementationcCs`ddlm}gd�}|j�d�|�d�dd�}t||�D]\}}|�t||d��|�qdS)Nr)�ldexp)
l#�1�,ul�w�bl'�l�J�X�l�u�ak~[l@"p1ylsV�%bX$l�E3EJl�V�b�l�a�oekl�4�)[v�rKrLrMr�)�mathrTrr!rrWr)r�)rrTrsrQr9rRrrr�$test_strong_reference_implementation�s
�zAMersenneTwister_TestBasicOps.test_strong_reference_implementationcCsdd>d}|j�|�dS)Nr5i�8r�)rr!rrr�test_long_seed�sz+MersenneTwister_TestBasicOps.test_long_seedcCr�r�r�rrrrr�rz3MersenneTwister_TestBasicOps.test_53_bits_per_floatcCrrrrrrrr�rz)MersenneTwister_TestBasicOps.test_bigrandcCr	r
rrrrrrrz0MersenneTwister_TestBasicOps.test_bigrand_rangescr)Nrcrrrrrrrr
rzAMersenneTwister_TestBasicOps.test_rangelimits.<locals>.<listcomp>rirrrrrr
rz-MersenneTwister_TestBasicOps.test_rangelimitscs.t���|j�d�|�|j�d�d�dS)N��ri�S!m�.vFXO)�superr�rr!r)r�r��	__class__rrr�s

�z-MersenneTwister_TestBasicOps.test_getrandbitscCs(|j�d�|�|j�dd�d�dS)NrXr;�crY)rr!r)r�rrrr�test_randrange_uses_getrandbitss�z<MersenneTwister_TestBasicOps.test_randrange_uses_getrandbitscCr.r/r0r1rrrr3!r4z1MersenneTwister_TestBasicOps.test_randbelow_logiccCs�dtj>}t���t�dt�|jj|d|d�Wd�n1s$wY|jjd|d�|jjd|d�}|�|d�d}d}||||}t	j
j�tj
d��!}||||g|_|jj||d�|�|jd	�Wd�dS1sxwYdS)
Nr5�ignore)�maxsizeirr&�{�G�z�?rr;)r�BPFr�r�r��UserWarningr�_randbelow_without_getrandbitsr)r_r`r�r=r�rMZ
call_count)rr`r�r�epsilon�limit�random_mockrrr�"test_randbelow_without_getrandbits6s$

��"�z?MersenneTwister_TestBasicOps.test_randbelow_without_getrandbitscCsRd}d}d}|j�|||�}|�||ko|kn�|�|||d�dS)NlJ)�r7i8���r)rr�rZr))rrrr,r�rrr�test_randrange_bug_1590891\sz7MersenneTwister_TestBasicOps.test_randrange_bug_1590891c
CsB|jj}d}|j�d�|jjt|�dd�}|j�d�|jjt|�dg|dd�}|�||�|j�d�|jjt|�td|d�dd�}|�||�gd�}gd�}gd	�}d
gddgdd
gd}	|j�d�|jj|	dd�}|j�d�|jj||dd�}|�||�|j�d�|jj||dd�}|�||�dS)Ni�r�rqrr5r�)�Red�Black�Green)�rmr;)rm�$�&rjrmrkrlr;i�߉)rr�r!rr))
rr�rr9r�r�rlr�r�Zexpanded_populationrrr�test_choices_algorithmsds, z4MersenneTwister_TestBasicOps.test_choices_algorithmscs�t���d}d��j�|����j�d����j�|����j�d�d����j�d����j�|���d��fdd�td�D�����j�|��d	dd�}��d��fd
d�td�D��|��j�|�d��fdd�tdt��d�D��}��d��fd
d�td�D��|��j�|�d��fdd�tdt��d�D��}��d��fdd�td�D��|�dS)Nr�s3��f��6���oe��rr�csg|]}�j�d��qS)r<�rr��r�_rrrr�rSz?MersenneTwister_TestBasicOps.test_randbytes.<locals>.<listcomp>r<r:c3��|]	}�j�d�VqdS)r5Nrrrsrrrr����z>MersenneTwister_TestBasicOps.test_randbytes.<locals>.<genexpr>c3�$�|]
}�|d|d�VqdS)r;r<Nrr�rsrrr�����c3ru)r;Nrrrsrrrr��rvc3rw)r5r<Nrrrxrrr��ryc3ru)r:Nrrrsrrrr��rv)	rZr�rr!r)r��joinrrX)rr!Z	expected1Z	expected2Z	expected3r[)rsrrr��s>
������z+MersenneTwister_TestBasicOps.test_randbytescCsZd}t��}|j�|�|�|�td�D]}|�|j�|�|�|d��|d��qdS)Nl�O�S�	r��little)	rr�rr!rr)r�r��to_bytes)rr!Zgen2rrrr�test_randbytes_getrandbits�s
��z7MersenneTwister_TestBasicOps.test_randbytes_getrandbitsc
Cs�|jj}|jj}gd�}gd�}d}|d�||||d�}|d�dd�t||�D�}|�t|�t|��|||d�}|�||�d	}	gd
�}|d�d�||	|dd��}d�d
d�t|	|�D��}|d�d�||dd��}|�||�dS)N)r�r�r�r�r�r�)r�r�rurTrpr5r�r�r�cS�"g|]
\}}t|�D]}|�q
qSrr)rr��countrrrrr��"zOMersenneTwister_TestBasicOps.test_sample_counts_equivalence.<locals>.<listcomp>rZ	abcdefghi)	rTr{r��r�rpr<r:r;r@r~cSrrr)rZletterr�rrrrr�r�)rrjr!rWr)rXr�rz)
rrjr!r�r�rm�s1Zexpanded�s2rrrrr�test_sample_counts_equivalence�s(z;MersenneTwister_TestBasicOps.test_sample_counts_equivalence)r0r1r2rr�rr=rBrErFrGrJrSrVrWrrrrr�r^rr�r3rhrirpr�r~r��
__classcell__rrr[rr6Js0	
&!(
r6r$r]c
Cs�|dkrttt|�td|�S|d}||dt|�|tdd|d|dd|dd	|d
d|dd
|dd|dd|dg	�S)Nr]r�g@g
����?g�
ö)$�@g&Ԏ����g
t�a��@r$g���Q�f�r!g>@~�)@g@gA~������@g�~\���>g@g���i�E�>g@)rr�gammarr)�zZsqrt2pi�azrrrr��s






�r�c@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)
Ncr�rr�r��grrr�r�z5TestDistributions.test_zeroinputs.<locals>.<listcomp>rbr�rpr5rTr�ragi@r!�UUUUUU�?)rr�rrr�uniform�
paretovariate�expovariate�weibullvariate�vonmisesvariate�
normalvariater��lognormvariate�gammavariate�betavariate�
triangular)rr�rr�r�test_zeroinputs�s  "z!TestDistributions.test_zeroinputscs^t��}d��fdd�td��D�}|jdddf|jdd	d
f|jddd	f|jd
ttddf|jdddf|j	dt
d�t
d�t
d�dffD]f\}}}}|dd�j|_g}tt|��D]}z	|�
||��Wq\typYq\wd}	}
|D]}|	|7}	|
||d7}
qwt|��|j|	�|dd|j|fd�|j|
�d|dd|j|fd�qFdS)Nr�csg|]}|t���qSr)r�r�r*rrr�rSz2TestDistributions.test_avg_std.<locals>.<listcomp>r5)r�r(g@g@)r�r�r�g�q�q�?g�<ݚ�?)r)gUUUUUU�?)g�G�z��?rr;r:)r�g�?g�������?)r�r!gUUUUUU�?g�������?rz%s%r)rO�msg)rr�rr�r�r�r�rr�r�r�rrrX�appendrfrPr0)rr�r��variate�args�muZ	sigmasqrd�yrr�r�rRrr�r�test_avg_std�sD���	����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`qWdS)Nri)r(r(r()r(r(r(r�r�r!)r(r�)r�r�r�)r�r()rr�r�r�r�r�r�r�r�r�r�r�rr))rr�r*r�r�rsrrrr�
test_constants&






���zTestDistributions.test_constantc
Cslt��}d}dD]+}dD]&}t|�D]}|�||�}|jd|ko&tjknd�|||�d�qqqdS)Nri)r�r g������@g������@)r��ffffff@g@@rzCvonmisesvariate({}, {}) produced a result {} out of range [0, 2*pi])r�)rr�rr�rZ�TWOPI�format)rr�r*r��kappartrjrrr�test_von_mises_range-s
����z&TestDistributions.test_von_mises_rangecCst�dd�t�dd�dS)Nrg4&�kCg}Ô%�I�T)rr�rrrr�test_von_mises_large_kappa;sz,TestDistributions.test_von_mises_large_kappacCsL|�ttjdd�|�ttjdd�|�ttjdd�|�ttjdd�dS)Nr6r:rr;r5r�)rCrkrr�rrrr�test_gammavariate_errors@rxz*TestDistributions.test_gammavariate_errorszrandom.Random.randomcCs&gd�|_t�dd�}|�|d�dS)N)�:�0�yE>r]r�g�������?r�g=
ףp=@�rMrr�rP�rrg�returned_valuerrr�#test_gammavariate_alpha_greater_oneKs
z5TestDistributions.test_gammavariate_alpha_greater_onecCs$dg|_t�dd�}|�|d�dS)Ng�������?r�r8g�/qr	�?r�r�rrr�!test_gammavariate_alpha_equal_oneVsz3TestDistributions.test_gammavariate_alpha_equal_onecCs8d}ddg|_t�d|�}t�d|�}|�||�dS)Nr8r�r�)rMrr�r�rP)rrg�betaZgammavariate_returned_valueZexpovariate_returned_valuerrr�4test_gammavariate_alpha_equal_one_equals_expovariateas

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�?ragX� �Y�?g=�,6V��?g�.3333�?g�l%�t��?g�K,	�9�?g7SvT�?)r�_e�_expr2rMr�rP)rrgr�r�r2�alphar�r�rer�r�r�rrr�,test_gammavariate_alpha_between_zero_and_onels"#	z>TestDistributions.test_gammavariate_alpha_between_zero_and_onezrandom.Random.gammavariatecCsd|_|�dt�dd��dS)Nr�r#r )r^r)rr�)rZgammavariate_mockrrr�test_betavariate_return_zero�sz.TestDistributions.test_betavariate_return_zeroN)r0r1r2r�r�r�r�r�r�r_r`r�r�r�r�r�r�rrrrr��s" 











Er�c@seZdZdd�Zdd�ZdS)�TestRandomSubclassingcCs Gdd�dtj�}|dd�dS)Nc@seZdZddd�ZdS)zHTestRandomSubclassing.test_random_subclass_with_kwargs.<locals>.SubclassNcSstj�|�dSrK)rr�r�)r�newargrrrr��szQTestRandomSubclassing.test_random_subclass_with_kwargs.<locals>.Subclass.__init__rK)r0r1r2r�rrrr�Subclass�sr�r5)r�)rr�)rr�rrr� 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>.SubClass1c���d�tj�|�S)NzSubClass1.random��addrr�r�Zcalledrrr��
zRTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass1.randomc���d�tj�||�S)N�SubClass1.getrandbits�r�rr�r�rr�rrr���
zWTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass1.getrandbitsN)r0r1r2rr�rr�rr�	SubClass1�sr�r&r�c�eZdZ�fdd�ZdS)zKTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass2cr�)N�SubClass2.randomr�rr�rrr�r�zRTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass2.randomN�r0r1r2rrr�rr�	SubClass2��r�r�cr�)zKTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass3cr�)N�SubClass3.getrandbitsr�rr�rrr��r�zWTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass3.getrandbitsN�r0r1r2r�rr�rr�	SubClass3�r�r�r�cr�)zKTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass4cr�)N�SubClass4.randomr�rr�rrr�r�zRTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass4.randomNr�rr�rr�	SubClass4�r�r�r�cr�)zHTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.Mixin1cr�)N�
Mixin1.randomr�rr�rrr�r�zOTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.Mixin1.randomNr�rr�rr�Mixin1�r�r�cr�)zHTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.Mixin2cr�)N�Mixin2.getrandbitsr�rr�rrr��r�zTTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.Mixin2.getrandbitsNr�rr�rr�Mixin2�r�r�c@�eZdZdS)zKTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass5N�r0r1r2rrrr�	SubClass5��r�r�c@r�)zKTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass6Nr�rrrr�	SubClass6r�r�r�c@r�)zKTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass7Nr�rrrr�	SubClass7
r�r�c@r�)zKTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass8Nr�rrrr�	SubClass8r�r�)rr�rYr�r))rr�r�r�r�r�r�r�r�r�r�rr�r�"test_subclasses_overriding_methods�sDz8TestRandomSubclassing.test_subclasses_overriding_methodsN)r0r1r2r�r�rrrrr��sr�c@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@)rPr�
NV_MAGICCONSTr��LOG4�
SG_MAGICCONSTrrrr�testMagicConstantsszTestModule.testMagicConstantscCs |�ttj�ttt��k�dSrK)rZrYr�__all__�dirrrrr�test__all__s zTestModule.test__all__�forkzfork() requiredc	Cs�t��\}}t��}|dkrFz1t�d�}t|d��}|�t|��Wd�n1s+wYWt�d�dSWt�d�dSt�d�wt�	|�t�d�}t|d��}t
|���}Wd�n1sfwY|�||�t
j|dd�dS)Nrr��wr�)�exitcode)�os�piper�rr�r��writerv�_exit�close�eval�readr%r	Zwait_process)rr�r��pid�valr�Z	child_valrrr�test_after_fork"s$
��

�zTestModule.test_after_forkN)
r0r1r2r�r�r_�
skipUnless�hasattrr�r�rrrrr�s
r��__main__)&r_Z
unittest.mockrr�r#r�r�Ztest.supportr��	functoolsrrUrrrrrrr	Z	fractionsr
�collectionsrrr
r5rLZSystemRandom_availabler�ZTestCaser�r6r�r�r�r�r0�mainrrrr�<module>sL +�
V]#�
© 2025 GrazzMean