Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_random.cpython-311.opt-1.pyc
�

�Ke����r�ddlZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
ddlmZm
Z
mZmZmZmZddlmZddlmZddlmZmZGd�d��Z	ej�����d	Zn
#e$rd
ZYnwxYwejed��Gd�d
eej����ZGd�dej��ZGd�deej��Z dezdzfd�Z!Gd�dej��Z"Gd�dej��Z#Gd�dej��Z$e%dkrej&��dSdS)�N)�partial)�log�exp�pi�fsum�sin�	factorial)�support)�Fraction)�abc�Counterc��eZdZd�Zd�Zd�Zd�Zd�Zej	�
d��d���Zd�Zd	�Z
d
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!dS)�TestBasicOpsc�:���fd�t|��D��S)z0Helper function to make a list of random numbersc�B��g|]}�j�����S���gen�random��.0�i�selfs  ��:/usr/local/apps/python3/lib/python3.11/test/test_random.py�
<listcomp>z+TestBasicOps.randomlist.<locals>.<listcomp>s%���4�4�4�a�����!�!�4�4�4���range)r�ns` r�
randomlistzTestBasicOps.randomlists#���4�4�4�4�5��8�8�4�4�4�4rc�"�|j���|j���}tjd��|j���|j���}|�||��dS)N皙�����?)r�seed�getstate�time�sleep�assertNotEqual)r�state1�state2s   r�
test_autoseedzTestBasicOps.test_autoseedso����
�
������"�"�$�$���
�3������
�
������"�"�$�$�����F�F�+�+�+�+�+rc��d}|j���|j���}|�|��}|j�|��|�||�|����dS)N��)rr#r$r �setstate�assertEqual)r�N�state�randseqs    r�test_saverestorezTestBasicOps.test_saverestore!sx������
�
������!�!�#�#���/�/�!�$�$������%� � � �����$�/�/�!�"4�"4�5�5�5�5�5rc��Gd�dt��}dD]}|j�|���dtd��|��fD]N}|�t
��5|j�|��ddd��n#1swxYwY�Ot
td����td���fD](}|�t
|jj|���)|�t
|jjdd	dd
��|�t
t|j��g��dS)Nc��eZdZd�ZdS)�*TestBasicOps.test_seedargs.<locals>.MySeedc��dS)Ni?���r�rs r�__hash__z3TestBasicOps.test_seedargs.<locals>.MySeed.__hash__,s���urN)�__name__�
__module__�__qualname__r8rrr�MySeedr5+s#������
�
�
�
�
rr<)
Nr����l F�x:^V��� F�x:^VFT���Q�	@�ay�?@r�r=)�one��)
�objectrr#�tuple�assertRaises�	TypeError�listr�dict�type)rr<�args   r�
test_seedargszTestBasicOps.test_seedargs)s���	�	�	�	�	�V�	�	�	�,�	�	�C��H�M�M�#������%��,�,�����1�	#�	#�C��"�"�9�-�-�
#�
#���
�
�c�"�"�"�
#�
#�
#�
#�
#�
#�
#�
#�
#�
#�
#����
#�
#�
#�
#����q���N�N�D�Q�K�K�K�0�	=�	=�C����i�����<�<�<�<����)�T�X�]�A�q�!�Q�?�?�?����)�T�$�(�^�^�R�8�8�8�8�8s�)B�B	�B	c��td��}|j�|��|�|td����dS)Ns1234)�	bytearrayrr#r.)rrAs  r�test_seed_no_mutate_bug_44018z*TestBasicOps.test_seed_no_mutate_bug_44018;sG���g������
�
�a��������I�g�.�.�/�/�/�/�/rzrandom._urandomc�F�t|_|���dS�N)�NotImplementedError�side_effectrN)r�urandom_mocks  r�*test_seed_when_randomness_source_not_foundz7TestBasicOps.test_seed_when_randomness_source_not_found@s$��$7�� ��������rc�V�|jj}g}||��|�|g��dg}||��|�|dg��d�td��D��}d�td��D��}|D]
}||���t	||��D]e\}}|�t|��t|����|�t
|��t
|�����fttd����}ttd����}||��|�||k��||��|�||k��|�	t|d��dS)N�%c�F�g|]}tt|������Sr�rJr�rrs  rrz-TestBasicOps.test_shuffle.<locals>.<listcomp>Rs$��2�2�2�1��U�1�X�X���2�2�2r�
c�F�g|]}tt|������Srr[r\s  rrz-TestBasicOps.test_shuffle.<locals>.<listcomp>Ss$��;�;�;�A��e�A�h�h���;�;�;rr,�r=rDrB)r�shuffler.r�zip�len�setrJ�
assertTruerHrI)rr`�lst�seqs�
shuffled_seqs�shuffled_seq�seq�shuffled_lsts        r�test_shufflezTestBasicOps.test_shuffleJs����(�"��������������b�!�!�!��d������������r�d�#�#�#�2�2��b�	�	�2�2�2��;�;��r���;�;�;�
�)�	"�	"�L��G�L�!�!�!�!�#&�t�]�#;�#;�	:�	:��S�,����S��X�X�s�<�'8�'8�9�9�9����S��X�X�s�<�'8�'8�9�9�9�9��5��;�;�����E�$�K�K�(�(������������|�+�,�,�,�����������|�+�,�,�,����)�W�i�8�8�8�8�8rc��|jj}|�t��5|g��ddd��n#1swxYwY|�|dg��d��|�|ddg��ddg��dS)N�2��K)r�choicerH�
IndexErrorr.�assertIn)rrps  r�test_choicezTestBasicOps.test_choiceks�������
�
�
�z�
*�
*�	�	��F�2�J�J�J�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	����������r�*�*�*��
�
�f�f�b�"�X�&�&��R��1�1�1�1�1s�?�A�Ac�z�|jj}Gd�dt��}|�t��5||g����ddd��n#1swxYwY|�||dg����d��|�||ddg����ddg��dS)Nc��eZdZdZd�ZdS)�/TestBasicOps.test_choice_with_numpy.<locals>.NAzSimulate numpy.array() behaviorc��t�rS)�RuntimeErrorr7s r�__bool__z8TestBasicOps.test_choice_with_numpy.<locals>.NA.__bool__ys��"�"rN)r9r:r;�__doc__ryrrr�NArvws)������-�-�
#�
#�
#�
#�
#rr{rmrnro)rrprJrHrqr.rr)rrpr{s   r�test_choice_with_numpyz#TestBasicOps.test_choice_with_numpyrs������	#�	#�	#�	#�	#��	#�	#�	#�
�
�
�z�
*�
*�	�	��F�2�2�b�6�6�N�N�N�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��������B�4���)�)�2�.�.�.��
�
�f�f�R�R��R��\�\�*�*�R��H�5�5�5�5�5s�A�A�"Ac�~�d}t|��}t|dz��D]�}|j�||��}|�t	|��|��t|��}|�t	|��|��|�|t|��k����|�|j�gd��g��|�t|jj||dz��|�t|jjgd��dS)N�dr=rr>)	rr�sampler.rbrcrdrH�
ValueError)rr/�
population�k�s�uniqs      r�test_samplezTestBasicOps.test_sample�s��
���1�X�X�
��q��s���	5�	5�A�����
�A�.�.�A����S��V�V�Q�'�'�'��q�6�6�D����S��Y�Y��*�*�*��O�O�D�C�
�O�O�3�4�4�4�4���������Q�/�/��4�4�4����*�d�h�o�z�1�Q�3�G�G�G����*�d�h�o�r�2�>�>�>�>�>rc
�d�d}t|��}d}t|��D]�}t|��t||z
��z}i}t|��D]B}d|t|j�||����<t|��|krn�C|�����dS)N��')rr	rGrrrb�fail)rr�pop�trialsr��expected�permsrs        r�test_sample_distributionz%TestBasicOps.test_sample_distribution�s���
���A�h�h�����q���	�	�A� ��|�|�y��1��~�~�5�H��E��6�]�]�
�
��8<��e�D�H�O�O�C��3�3�4�4�5��u�:�:��)�)��E�*��	�	�����	�	rc�F�|j�td��d��|j�td��d��|j�td��d��|j�t	d��d��dS)N�rD�abcdefghijklmnopqrst)rrr�strrGr7s r�test_sample_inputszTestBasicOps.test_sample_inputs�s~�������b�	�	�1�%�%�%������b�	�	�1�%�%�%������2�3�3�Q�7�7�7������4�5�5�q�9�9�9�9�9rc��|�t|jjt�d��d��dS)N�abcdefrD)rHrIrrrK�fromkeysr7s r�test_sample_on_dictsz!TestBasicOps.test_sample_on_dicts�s2�����)�T�X�_�d�m�m�H�6M�6M�q�Q�Q�Q�Q�Qrc��|�t��5hd�}|j�|d���ddd��dS#1swxYwYdS)N>r]r���(rm�<�Fr��r�)rHrIrr)rr�s  r�test_sample_on_setsz TestBasicOps.test_sample_on_sets�s���
�
�
�y�
)�
)�	-�	-�5�5�5�J��H�O�O�J�!�O�,�,�,�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	-�	-s�!A	�	A
�A
c�*�Gd�dtjtj��}|gd���}tj��5tjdt��|j�|d���ddd��dS#1swxYwYdS)Nc� �eZdZd�Zd�Zd�ZdS)�3TestBasicOps.test_sample_on_seqsets.<locals>.SeqSetc��||_dSrS��_items)r�itemss  r�__init__z<TestBasicOps.test_sample_on_seqsets.<locals>.SeqSet.__init__�s
��#����rc�*�t|j��SrS)rbr�r7s r�__len__z;TestBasicOps.test_sample_on_seqsets.<locals>.SeqSet.__len__�s���4�;�'�'�'rc��|j|SrSr�)r�indexs  r�__getitem__z?TestBasicOps.test_sample_on_seqsets.<locals>.SeqSet.__getitem__�s���{�5�)�)rN)r9r:r;r�r�r�rrr�SeqSetr��sA������
$�
$�
$�
(�
(�
(�
*�
*�
*�
*�
*rr�)rDrEr=rB�errorrDr�)	r�Sequence�Set�warnings�catch_warnings�simplefilter�DeprecationWarningrr)rr�r�s   r�test_sample_on_seqsetsz#TestBasicOps.test_sample_on_seqsets�s���	*�	*�	*�	*�	*�S�\�3�7�	*�	*�	*��V�L�L�L�)�)�
�
�
$�
&�
&�	-�	-��!�'�+=�>�>�>��H�O�O�J�!�O�,�,�,�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	-�	-s�7B�B�Bc��|jj}gd�}gd�}d}t||||�����}|�t	|�����|��t
||��D]!\}}|�|||���"|�d|��t	|��}t||||�����}|�t	|�����|��t
||��D]!\}}|�|||���"|�d|��t|dgdgd�����}|�|td�	����t|��}t||dg|zd|z�����}|�|td|z����|�
t��5|gd
�dd���ddd��n#1swxYwY|�
t��5|gd
�gd�d���ddd��n#1swxYwY|�
t��5|gd
�gd
�d���ddd��n#1swxYwY|�
t��5|ddgddgd���ddd��n#1swxYwY|�
t��5|gd
�ddgd���ddd��n#1swxYwY|�
t��5|gd
�gd�d���ddd��dS#1swxYwYdS)N)�red�green�blue�orange�black�brown�amber)����r�r]r�rr=���countsr�r��xr]�)r�)r�r�r�)���i����i����rD)rrrr�r��r=)r=rDrBrE)
rrr
r.�sum�valuesra�assertLessEqual�assertNotInrbrHrIr�)	rr�colorsr�r��summary�color�weight�ncs	         r�test_sample_with_countsz$TestBasicOps.test_sample_with_counts�s�������O�N�N��N�N�N�����&�&���!�<�<�<�=�=������W�^�^�-�-�.�.��2�2�2� ���0�0�	9�	9�M�E�6�� � �����8�8�8�8�����'�*�*�*�
��K�K���&�&���!�<�<�<�=�=������W�^�^�-�-�.�.��2�2�2� ���0�0�	9�	9�M�E�6�� � �����8�8�8�8�����'�*�*�*��&�&�#���t�q�9�9�9�:�:������'�A�,�,�,�/�/�/���[�[���&�&����R��2�b�5�A�A�A�B�B������'�"�V�)�"4�"4�5�5�5��
�
�y�
)�
)�	>�	>��F�+�+�+�B�"�=�=�=�=�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>�	>����	>�	>�	>�	>�
�
�
�z�
*�
*�	G�	G��F�+�+�+�L�L�L�A�F�F�F�F�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G����	G�	G�	G�	G�
�
�
�z�
*�
*�	D�	D��F�+�+�+�I�I�I��C�C�C�C�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D�	D����	D�	D�	D�	D�
�
�
�z�
*�
*�	<�	<��F�E�7�#�R��H��;�;�;�;�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<����	<�	<�	<�	<�
�
�
�z�
*�
*�	A�	A��F�+�+�+�Q��F�a�@�@�@�@�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A�	A����	A�	A�	A�	A�
�
�
�z�
*�
*�	G�	G��F�+�+�+�L�L�L�A�F�F�F�F�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G����	G�	G�	G�	G�	G�	Gsl�H%�%H)�,H)�
I)�)I-�0I-�J-�-J1�4J1�K1�1K5�8K5�L5�5L9�<L9�M:�:M>�M>c
��|jj}gd�}d}td��}ttd����}||d���||td��d���|d|td�����|d|td�����fD]�}|�t|��d��|�t
|��t��|�t|��t|��k����|�	t��5|d��ddd��n#1swxYwY|�||d	���g��|�||d
���g��|�	t��5||d���ddd��n#1swxYwY|�t||d�����t|��k��|�t||d�����t|��k��|�	t��5||d���ddd��n#1swxYwY|�t||dd�����t|��k��|�t||dd�����t|��k��|�	t��5||d
dgd���ddd��n#1swxYwY|�	t��5||dd���ddd��n#1swxYwY|�	t��5||dgdzd���ddd��n#1swxYwYgd�gd�td
d��tdd��tdd��tdd��ggd�fD]A}|�t|||d�����t|��k���B|�	t��5||d
dgd���ddd��n#1swxYwY|�	t��5||dd���ddd��n#1swxYwY|�	t��5||dgdzd���ddd��n#1swxYwY|�	t��5||td��td��d���ddd��n#1swxYwYgd�gd�td
d��tdd��tdd��tdd��gfD]A}|�t|||d�����t|��k���B|�|dgd���dg��|�|dgd���dg��|�|dgd���dg��|�|dgd���dg��|�	t��5|gd
���ddd��n#1swxYwY|�	t��5|ggd
���ddd��n#1swxYwY|�	t��5|ggd���ddd��dS#1swxYwYdS)N)r�r�r��yellow�abcdrEr�r�)r�r��weights)r�r��cum_weightsrDrr>g@)r�r�r=r])�r]rnr�)g333333.@gffffff$@g3333339@g�����L>@rB�)TFTF�r�r�)r=rrrrA)rr=rr�b)rrr=r�c)rrrr=�d)r�choicesrrcr.rbrLrJrdrHrIr�rrq)rr��data�str_data�
range_data�set_datarr�s        r�test_choiceszTestBasicOps.test_choices�s�
���(�"��1�1�1�����1�X�X�
��u�Q�x�x�=�=��
�G�D�A�����G�D�%��(�(�a�(�(�(��G�a�D�%��(�(�;�;�;��G�a�D�e�A�h�h�?�?�?�	
�	6�	6�F�
���S��[�[�!�,�,�,����T�&�\�\�4�0�0�0��O�O�C��K�K�3�t�9�9�4�5�5�5�5��
�
�y�
)�
)�	�	��G�A�J�J�J�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
�������+�+�+�R�0�0�0��������,�,�,�b�1�1�1�
�
�
�y�
)�
)�	!�	!��G�D�C� � � � �	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!�	
����G�G�H��2�2�2�3�3�s�8�}�}�D�E�E�E�����G�G�J�!�4�4�4�5�5��Z���H�I�I�I�
�
�
�y�
)�
)�	#�	#��G�H��"�"�"�"�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�	
����G�G�D�$�!�4�4�4�5�5��T���B�C�C�C�����G�G�D�$�!�<�<�<�=�=��T���J�K�K�K�
�
�
�z�
*�
*�	&�	&��G�D�1�Q�%�1�%�%�%�%�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&����	&�	&�	&�	&�
�
�
�y�
)�
)�	#�	#��G�D�"��"�"�"�"�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�
�
�
�y�
)�
)�	)�	)��G�D�4�&��(�a�(�(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�!� � �(�(�(��!�Q����!�Q����!�Q����!�Q���P�*�*�*�	
�	K�	K�G�
�O�O�C����g�� ;� ;� ;�<�<��D�	�	�I�J�J�J�J�
�
�
�z�
*�
*�	2�	2��G�D�q��e�q�1�1�1�1�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2����	2�	2�	2�	2�
�
�
�y�
)�
)�	/�	/��G�D�b�A�.�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�
�
�
�y�
)�
)�	5�	5��G�D�t�f�Q�h�!�4�4�4�4�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5����	5�	5�	5�	5�
�
�
�y�
)�
)�	?�	?��G�D�%��(�(��a���A�>�>�>�>�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?����	?�	?�	?�	?�!� � �(�(�(��!�Q����!�Q����!�Q����!�Q���P�
�	W�	W�G�

�O�O�C����'�Q� G� G� G�H�H�C�PT�I�I�U�V�V�V�V�	
���������6�6���>�>�>����������6�6���>�>�>����������6�6���>�>�>����������6�6���>�>�>��
�
�z�
*�
*�	�	��G�B�!�����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
�z�
*�
*�	)�	)��G�B��a�(�(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�
�
�
�z�
*�
*�	-�	-��G�B�B�!�,�,�,�,�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	-�	-s��5E
�
E�E�4G�G�G�/J	�	J
�J
�,M	�	M
�M
�.N	�	N
�N
�.O
�
O�O�<R�R� R�>S�S� S�>T�T!�$T!�*U8�8U<�?U<�0[
�
[�[�/\
�
\�\�/]�]�]c�B�|jj}|ddgddgd���dS)Nr=rDg�)r�r�r�)rr�)rr�s  r�test_choices_subnormalz#TestBasicOps.test_choices_subnormal9s4��
�(�"����A�q�6�F�F�+;�t�D�D�D�D�D�Drc��|�t��5|j�dddg��ddd��dS#1swxYwYdS)N�AB��rHr�rr�r7s r�"test_choices_with_all_zero_weightsz/TestBasicOps.test_choices_with_all_zero_weightsAs���
�
�
�z�
*�
*�	/�	/��H���T�C��:�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	/�	/��A�A
�
A
c��|�t��5|j�dgd���ddd��dS#1swxYwYdS)N�ABC)rB���r=r�r7s r�test_choices_negative_totalz(TestBasicOps.test_choices_negative_totalFs���
�
�
�z�
*�
*�	0�	0��H���U�J�J�J�/�/�/�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0����	0�	0�	0�	0�	0�	0r�c��|�t��5|j�dt	d��g��ddd��n#1swxYwY|�t��5|j�ddt	d��g��ddd��n#1swxYwY|�t��5|j�dt	d��dg��ddd��n#1swxYwY|�t��5|j�ddt	d��g��ddd��n#1swxYwY|�t��5|j�dt	d��t	d��g��ddd��dS#1swxYwYdS)N�A�infr�r��{�nanz-inf)rHr�rr��floatr7s r�test_choices_infinite_totalz(TestBasicOps.test_choices_infinite_totalJs���
�
�
�z�
*�
*�	2�	2��H���S�5��<�<�.�1�1�1�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2����	2�	2�	2�	2�
�
�
�z�
*�
*�	8�	8��H���T�C��u���#6�7�7�7�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8�
�
�
�z�
*�
*�	9�	9��H���T�U�5�\�\�M�3�#7�8�8�8�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9�
�
�
�z�
*�
*�	8�	8��H���T�C��u���#6�7�7�7�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8�
�
�
�z�
*�
*�	B�	B��H���T�E�&�M�M�5��<�<�#@�A�A�A�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B����	B�	B�	B�	B�	B�	BsY�*A�A�A�6+B-�-B1�4B1�,D
�
D�D�/+E&�&E*�-E*�8G�G�Gc��dD]�}|j�|��|j���}|j�dd��}|j�|��|j���}|j�dd��}|�||��|�||����dS)N)r=�r�i�i90i@�i�	rr=)rr#r�gaussr.)rr#�x1�y1�x2�y2s      r�
test_gausszTestBasicOps.test_gaussVs���
<�
	%�
	%�D��H�M�M�$��������"�"�B������1�%�%�B��H�M�M�$��������"�"�B������1�%�%�B����R��$�$�$����R��$�$�$�$�
	%�
	%rc��tdd��D]@}|�d|j�|��cxkod|zknc���A|�|j�d��d��|jj}dD]d}d|zdz
}d}d}td��D]}||��}||z}|||zz}�|�||��|�||���e|�t|jj��|�t|jjdd��|�t|jjd��|�t|jjd��dS)	Nr=r,rrD)r=rDrBrE�� r��4�5�6�w���r~r>g333333$@)rrdr�getrandbitsr.rHrIr�)	rr��getbits�span�all_bits�cum�cpl_cumr�vs	         r�test_getrandbitszTestBasicOps.test_getrandbitsgs����q�$���	A�	A�A��O�O�A���!5�!5�a�!8�!8�?�?�?�?�1�a�4�?�?�?�?�@�@�@�@������-�-�a�0�0�!�4�4�4��(�&��L�		0�		0�D��$�w�q�y�H��C��G��3�Z�Z�
(�
(���G�D�M�M���q����8�a�<�'������S�(�+�+�+����W�h�/�/�/�/�	
���)�T�X�%9�:�:�:����)�T�X�%9�1�a�@�@�@����*�d�h�&:�B�?�?�?����)�T�X�%9�4�@�@�@�@�@rc�<���ttjdz��D]|}tj�j|��}�fd�td��D��}tj|����fd�td��D��}��||���}dS)Nr=c�B��g|]}�j�����Srrrs  �rrz.TestBasicOps.test_pickling.<locals>.<listcomp>�s%���<�<�<�Q�t�x���(�(�<�<�<rr]c�8��g|]}������Sr�r)rr�newgens  �rrz.TestBasicOps.test_pickling.<locals>.<listcomp>�s!���>�>�>�q�6�=�=�?�?�>�>�>r)r�pickle�HIGHEST_PROTOCOL�dumpsr�loadsr.)r�protor0�origseq�restoredseqrs`    @r�
test_picklingzTestBasicOps.test_pickling�s������6�2�Q�6�7�7�	3�	3�E��L���5�1�1�E�<�<�<�<�%��)�)�<�<�<�G��\�%�(�(�F�>�>�>�>�E�"�I�I�>�>�>�K����W�k�2�2�2�2�	3�	3rc�*�gd�}|D]�\}}ttj|��d��5}tj|��}ddd��n#1swxYwY|�t
|���dz��|����dS)N))z
randv2_32.pcki)z
randv2_64.pckib)z
randv3.pckiW�rbr,)�openr
�findfiler�loadr.�intr)r�files�file�value�f�rs      r�test_bug_1727780zTestBasicOps.test_bug_1727780�s���&�&�&��!�	:�	:�K�D�%��g�&�t�,�,�T�2�2�
#�a��K��N�N��
#�
#�
#�
#�
#�
#�
#�
#�
#�
#�
#����
#�
#�
#�
#����S������D��1�1�5�9�9�9�9�	:�	:s�A�A	�A	c����d}|jj�t�fd�t|��D����}|�d||zcxkodknc||z��dS)Ni��c3�<�K�|]}�d��dzdkV��dS)l�rBrDNr)rr�	randranges  �r�	<genexpr>z-TestBasicOps.test_bug_9025.<locals>.<genexpr>�s8�����G�G��	�	�*�+�+�a�/�1�4�G�G�G�G�G�Gr�333333�?g�G�z��?)rr*r�rrd)rrr�r*s   @r�
test_bug_9025zTestBasicOps.test_bug_9025�sz���
���H�&�	��G�G�G�G�e�A�h�h�G�G�G�G�G������q��s�(�(�(�(�S�(�(�(�(�1�Q�3�0�0�0�0�0rc��tdd��D]g}|j�|��}|�t	|��t
��|�t
|��|���h|�|j�d��d��|�t|jj��|�t|jjdd��|�t|jjd��|�t|jjd��dS)Nr=r]rrrDr>��?)
rr�	randbytesr.rL�bytesrbrHrIr�)rrr�s   r�test_randbyteszTestBasicOps.test_randbytes�s���q�"���	+�	+�A��8�%�%�a�(�(�D����T�$�Z�Z��/�/�/����S��Y�Y��*�*�*�*������+�+�A�.�.��4�4�4�	
���)�T�X�%7�8�8�8����)�T�X�%7��A�>�>�>����*�d�h�&8�"�=�=�=����)�T�X�%7��=�=�=�=�=rc���|�|j���t��|�|j���t��dSrS)�assertIsInstancer�
normalvariater�r�r7s r�test_mu_sigma_default_argsz'TestBasicOps.test_mu_sigma_default_args�sN�����d�h�4�4�6�6��>�>�>����d�h�n�n�.�.��6�6�6�6�6rN)"r9r:r;r r*r2rNrQ�unittest�mock�patchrWrkrsr|r�r�r�r�r�r�r�r�r�r�r�r�r�rrr'r-r2r6rrrrrs�������
5�5�5�,�,�,�6�6�6�9�9�9�$0�0�0�
�]���*�+�+���,�+��9�9�9�B2�2�2�
6�
6�
6�?�?�?� ��� :�:�:�R�R�R�-�-�-�
-�-�-� *G�*G�*G�XK-�K-�K-�ZE�E�E�/�/�/�
0�0�0�
B�
B�
B�%�%�%�"A�A�A�23�3�3�
:�
:�
:�1�1�1�
>�
>�
>�7�7�7�7�7rrTFz!random.SystemRandom not availablec��eZdZej��Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd�Z
d	�Zd
�Zd�Zd�Zd
�Zeefd�ZdS)�SystemRandom_TestBasicOpsc�8�|j���dSrS�rr#r7s rr*z'SystemRandom_TestBasicOps.test_autoseed�s����
�
�����rc��|�t|jj��|�t|jjd��dSrS)rHrTrr$r-r7s rr2z*SystemRandom_TestBasicOps.test_saverestore�sB�����-�t�x�/@�A�A�A����-�t�x�/@�$�G�G�G�G�Grc�:�|j�d��dS�Nr~r=r7s rrNz'SystemRandom_TestBasicOps.test_seedargs�s����
�
�c�����rc��d|j_|j�d��|�|jjd��dSr@)r�
gauss_nextr#r.r7s rr�z$SystemRandom_TestBasicOps.test_gauss�sA��"������
�
�c���������,�d�3�3�3�3�3rc��ttjdz��D].}|�ttj|j|���/dS)Nr=)rrrrHrTrr)rrs  rrz'SystemRandom_TestBasicOps.test_pickling�sQ���6�2�Q�6�7�7�	R�	R�E����1�6�<���5�Q�Q�Q�Q�	R�	Rrc��d}d}td��D].}|t|j���|z��z}�/|�||dz
��dS�Nlrr~r=�rr!rrr.�rr	rrs    r�test_53_bits_per_floatz0SystemRandom_TestBasicOps.test_53_bits_per_float��f�������s���	1�	1�A��3�t�x���(�(�4�/�0�0�0�C�C�����d�1�f�%�%�%�%�%rc���ddz}d}td��D]D}|j�|��}|�d|cxko|knc��||z}�E|�||dz
��dS�NrDr�rr~r=�rrr*rdr.�rr	rrr&s     r�test_bigrandz&SystemRandom_TestBasicOps.test_bigrand�����C�x�����s���	�	�A���"�"�4�(�(�A��O�O�A��M�M�M�M�T�M�M�M�M�*�*�*��1�H�C�C�����d�1�f�%�%�%�%�%rc��dD]�}|j�d|dz
z��}|j�d|z��}||kr�F|�||j�||��cxko|knc����dS�N)	r��P�r����iwii&rD�rr*rd�rr�start�stops    r�test_bigrand_rangesz-SystemRandom_TestBasicOps.test_bigrand_ranges����;�	M�	M�A��H�&�&�q�Q�q�S�z�2�2�E��8�%�%�a�1�f�-�-�D��u�}�}���O�O�E�T�X�%7�%7��t�%D�%D�K�K�K�K�t�K�K�K�K�L�L�L�L�	M�	Mrc
������dD]^\����tt������t���fd�td��D�������_dS)N�)���r)l����l����)llc�F��g|]}�j�������Sr�rr*�rrrrXrYs  ���rrz>SystemRandom_TestBasicOps.test_rangelimits.<locals>.<listcomp>��+���H�H�H��T�X�'�'��d�3�3�H�H�Hrr~�r.rcr�rrXrYs`@@r�test_rangelimitsz*SystemRandom_TestBasicOps.test_rangelimits�������K�	K�	K�K�E�4����S��u�T�!2�!2�3�3��H�H�H�H�H�H�U�3�Z�Z�H�H�H�I�I�
K�
K�
K�
K�	K�	Krc���|j�ddd��}|�|d��|j�ddd��}|�|d��dS)Nrr]rD)rrDrEr�r�)rr*rrr.)r�rints  r�test_randrange_nonunit_stepz5SystemRandom_TestBasicOps.test_randrange_nonunit_step�sd���x�!�!�!�R��+�+���
�
�d�O�,�,�,��x�!�!�!�Q��*�*������q�!�!�!�!�!rc
�:�t|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)NrBi/���rr~i��n��!	@�@r=�3���	�@�@rD�2�*r�r/)rrHr�rr*�assertWarnsr�r)r�raisess  r�test_randrange_errorsz/SystemRandom_TestBasicOps.test_randrange_errors�s[����*�J���8J�K�K����q�!������t������q�#�s�������+�V�W�=�=�=����+�T�X�-?��E�E�E����+�T�X�-?��!�Q���P�P�P����+�V�S�9�9�9����+�V�Q��@�@�@����+�T�X�-?��C�H�H�H����+�T�X�-?��H�Q�PQ�N�N�S�S�S����+�V�Q��<�<�<���q�"�a�������+�V�Q��C�@�@�@����+�V�Q��3�?�?�?����+�V�Q��G�D�D�D����+�T�X�-?��B��L�L�L����+�T�X�-?��B��QR�TU���W�W�W����+�V�Q��C�@�@�@����+�T�X�-?��B��L�L�L����+�V�Q��3�?�?�?�?�?rc��|jj}|�t��5|ddd��ddd��n#1swxYwY|�t��5|ddd��ddd��n#1swxYwY|�t��5|ddd��ddd��n#1swxYwY|�t��5|ddd��ddd��n#1swxYwY|�t��5|�t
��5|d��ddd��n#1swxYwYddd��n#1swxYwY|�t��5|�t
��5|dd	��ddd��n#1swxYwYddd��n#1swxYwY|�t��5|�t
��5|ddd
��ddd��n#1swxYwYddd��dS#1swxYwYdS)N�$@r�rDr]g4@r/rog%@g�4@��?)rr*rrr�rHr��rr*s  r� test_randrange_argument_handlingz:SystemRandom_TestBasicOps.test_randrange_argument_handlings����H�&�	�
�
�
�0�
1�
1�	#�	#��I�d�B��"�"�"�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�
�
�
�0�
1�
1�	#�	#��I�b�$��"�"�"�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�
�
�
�0�
1�
1�	#�	#��I�b�"�c�"�"�"�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�
�
�
�0�
1�
1�	#�	#��I�b�"�c�"�"�"�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�
�
�
�0�
1�
1�	 �	 ��"�"�:�.�.�
 �
 ��	�$����
 �
 �
 �
 �
 �
 �
 �
 �
 �
 �
 ����
 �
 �
 �
 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 ����	 �	 �	 �	 ��
�
�0�
1�
1�	$�	$��"�"�:�.�.�
$�
$��	�"�d�#�#�#�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$����
$�
$�
$�
$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$��
�
�0�
1�
1�	'�	'��"�"�:�.�.�
'�
'��	�"�b�#�&�&�&�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'�
'����
'�
'�
'�
'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'�	'�	's��A�A�A�&B�B�B�%B?�?C�C�$C>�>D�D�#E-�>E�
E-�E	�E-�E	�E-�-E1�4E1�G�-
G�:G�G
	�
G�
G
	�G�G!�$G!�I�H7�+I�7H;	�;I�>H;	�?I�I�Ic��|jj}|�t��5|dd���ddd��n#1swxYwY|�t��5|ddd���ddd��dS#1swxYwYdS)Nr,r~)�step)rr*rHrIrxs  r�test_randrange_stepz-SystemRandom_TestBasicOps.test_randrange_step$s���H�&�	�
�
�
�y�
)�
)�	&�	&��I�d��%�%�%�%�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&�	&����	&�	&�	&�	&�
�
�
�y�
)�
)�	,�	,��I�d�D�s�+�+�+�+�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,�	,�	,s#�A�A�A�&B�B�	Bc�j�tdd��D�] }d|z}|dz}|d||d��z��}|�||��|�|d|dz
z��||dz
z
}|d||d��z��}|�|||dzg��|�d|z|cxkod|dz
zknc��||dz	z}|d||d��z��}|�||��|�d|z|cxkod|dz
zknc����"dS�Nr=r,gr�Z|
�?rDr��rr.rrrd�r�_logr!rr�numbitsr�s       r�test_randbelow_logicz.SystemRandom_TestBasicOps.test_randbelow_logic,����q�$���	1�	1�A��Q��A���c�G���G�d�d�1�a�j�j�(�)�)�A����Q��(�(�(����Q��A�a�C��)�)�)�
��Q��J�A���G�d�d�1�a�j�j�(�)�)�A��M�M�!�g�w�q�y�1�2�2�2��O�O�A�q�D�1�/�/�/�/�q�1�Q�3�x�/�/�/�/�0�0�0�
��b��L�A���G�d�d�1�a�j�j�(�)�)�A����Q��(�(�(��O�O�A�q�D�1�/�/�/�/�q�1�Q�3�x�/�/�/�/�0�0�0�0�	1�	1rN)r9r:r;r�SystemRandomrr*r2rNr�rrHrNrZrerirtryr|rr!r�rrrr;r;�s������
�&�
�
�
�C����H�H�H����4�4�4�
R�R�R�&�&�&�	&�	&�	&�M�M�M�K�K�K�
"�"�"�@�@�@�4'�'�'�(,�,�,�),��1�1�1�1�1�1rr;c�b�eZdZejjd���Zejjd���ZdS)�TestRawMersenneTwisterc���ddl}ttjdz��D]=}|���}|�ttj||���>dS)Nrr=)�_randomrrr�RandomrHrIr)rr�rr&s    r�test_bug_41052z%TestRawMersenneTwister.test_bug_41052Csh��	�����6�2�Q�6�7�7�	A�	A�E���� � �A����i���q�%�@�@�@�@�	A�	Arc��ddl}|���}|�d��|�d��}|�|���|�����dS)Nr��_�)r�r�r#r.r)rr��r1�r2s    r�test_bug_42008z%TestRawMersenneTwister.test_bug_42008Ksk��	����
�^�^�
�
��
�������
�^�^�G�
$�
$����������b�i�i�k�k�2�2�2�2�2rN)r9r:r;�testr
�cpython_onlyr�r�rrrr�r�BsW������	�\��A�A���A�
�\��3�3���3�3�3rr�c����eZdZej��Zd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd�Z
d	�Zd
�Zd�Zd�Zd
�Z�fd�Zd�Zeefd�Zd�Zd�Zd�Z�fd�Zd�Zd�Z�xZS)�MersenneTwister_TestBasicOpsc�<���j�dd������fd�td��D��gd����j�dd������fd	�td��D��gd
���dS)Ni��4r=��versionc�f��g|]-}�j��������.Sr�rr�hexrs  �rrzGMersenneTwister_TestBasicOps.test_guaranteed_stable.<locals>.<listcomp>[�1���D�D�D�a�$�(�/�/�+�+�/�/�1�1�D�D�DrrE)z0x1.ac362300d90d2p-1z0x1.9d16f74365005p-1z0x1.1ebb4352e4c4dp-1z0x1.1a7422abf9c11p-1zthe quick brown foxrDc�f��g|]-}�j��������.Srr�rs  �rrzGMersenneTwister_TestBasicOps.test_guaranteed_stable.<locals>.<listcomp>_r�r)z0x1.1239ddfb11b7cp-3z0x1.b3cbb5c51b120p-4z0x1.8c4f55116b60fp-1z0x1.63eb525174a27p-1�rr#r.rr7s`r�test_guaranteed_stablez3MersenneTwister_TestBasicOps.test_guaranteed_stableXs������
�
�g�q�
�)�)�)����D�D�D�D�5��8�8�D�D�D�
=�
=�
=�	>�	>�	>�	
��
�
�+�Q�
�7�7�7����D�D�D�D�5��8�8�D�D�D�
=�
=�
=�	>�	>�	>�	>�	>rc�����j�dd������fd�td��D��gd����j�dd������fd�td��D��gd	����j�d
d������fd�td��D��gd���dS)
N�nofarr=r�c�f��g|]-}�j��������.Srr�rs  �rrz?MersenneTwister_TestBasicOps.test_bug_27706.<locals>.<listcomp>gr�rrE�z0x1.8645314505ad7p-1z0x1.afb1f82e40a40p-5z0x1.2a59d2285e971p-1z0x1.56977142a7880p-6�rachelc�f��g|]-}�j��������.Srr�rs  �rrz?MersenneTwister_TestBasicOps.test_bug_27706.<locals>.<listcomp>lr�r�z0x1.0b294cc856fcdp-1z0x1.2ad22d79e77b8p-3z0x1.3052b9c072678p-2z0x1.578f332106574p-3�c�f��g|]-}�j��������.Srr�rs  �rrz?MersenneTwister_TestBasicOps.test_bug_27706.<locals>.<listcomp>qr�r�z0x1.b0580f98a7dbep-1z0x1.84129978f9c1ap-1z0x1.aeaa51052e978p-2z0x1.092178fb945a6p-2r�r7s`r�test_bug_27706z+MersenneTwister_TestBasicOps.test_bug_27706cs'���	
��
�
�g�q�
�)�)�)����D�D�D�D�5��8�8�D�D�D�
=�
=�
=�	>�	>�	>�	
��
�
�h��
�*�*�*����D�D�D�D�5��8�8�D�D�D�
=�
=�
=�	>�	>�	>�	
��
�
�b�!�
�$�$�$����D�D�D�D�5��8�8�D�D�D�
=�
=�
=�	>�	>�	>�	>�	>rc��Gd�dt��}	|j�|����dS#t$rYdSwxYw)Nc��eZdZd�ZdS)�;MersenneTwister_TestBasicOps.test_bug_31478.<locals>.BadIntc��dSrSrr7s r�__abs__zCMersenneTwister_TestBasicOps.test_bug_31478.<locals>.BadInt.__abs__ys���trN)r9r:r;r�rrr�BadIntr�xs#������
�
�
�
�
rr�)r!rr#rI)rr�s  r�test_bug_31478z+MersenneTwister_TestBasicOps.test_bug_31478uss��	�	�	�	�	�S�	�	�	�	��H�M�M�&�&�(�(�#�#�#�#�#���	�	�	��D�D�	���s�"9�
A�Ac�t���j�dd������fd�td��D��gd����j�dd������fd�td��D��gd	����j�d
d������fd�td��D��gd���d
}�j�|d������fd�td��D��gd���dS)Nsnofarr=r�c�f��g|]-}�j��������.Srr�rs  �rrz?MersenneTwister_TestBasicOps.test_bug_31482.<locals>.<listcomp>�r�rrEr�srachelc�f��g|]-}�j��������.Srr�rs  �rrz?MersenneTwister_TestBasicOps.test_bug_31482.<locals>.<listcomp>�r�rr�rc�f��g|]-}�j��������.Srr�rs  �rrz?MersenneTwister_TestBasicOps.test_bug_31482.<locals>.<listcomp>�r�rr�s	 @`�����c�f��g|]-}�j��������.Srr�rs  �rrz?MersenneTwister_TestBasicOps.test_bug_31482.<locals>.<listcomp>�r�r)z0x1.52c2fde444d23p-1z0x1.875174f0daea4p-2z0x1.9e9b2c50e5cd2p-1z0x1.fa57768bd321cp-2r�)rr�s` r�test_bug_31482z+MersenneTwister_TestBasicOps.test_bug_31482�s����	
��
�
�h��
�*�*�*����D�D�D�D�5��8�8�D�D�D�
=�
=�
=�	>�	>�	>�	
��
�
�i��
�+�+�+����D�D�D�D�5��8�8�D�D�D�
=�
=�
=�	>�	>�	>�	
��
�
�c�1�
�%�%�%����D�D�D�D�5��8�8�D�D�D�
=�
=�
=�	>�	>�	>�
4����
�
�a��
�#�#�#����D�D�D�D�5��8�8�D�D�D�
=�
=�
=�	>�	>�	>�	>�	>rc�R�|�t|jjd��dS)N)r=NN)rHr�rr-r7s r�test_setstate_first_argz4MersenneTwister_TestBasicOps.test_setstate_first_arg�s%�����*�d�h�&7��I�I�I�I�Irc��|j���}|�t|jjd��|�t
|jjd��|�t|jjdddzdf��|�t|jjdddzdzdf��|�t
tf��5|j�dddzd	zdf��ddd��n#1swxYwY|�t
tf��5|j�dddzd
zdf��ddd��n#1swxYwY|j�d��}|j�|��|�|j�d��|��|j���d}t|��}td
��|d<d�|D��}|�t|jjd|df��dS)N)rDNN)rDr_NrD)rA�q)rip)r=)r�)r>r~r=r�r>c3�4K�|]}t|��V��dSrS)r!)rr�s  rr+zHMersenneTwister_TestBasicOps.test_setstate_middle_arg.<locals>.<genexpr>�s(����.�.�A��Q���.�.�.�.�.�.r)rr$rHrIr-r��
OverflowErrorrr.rJr�)r�start_state�bits100�state_valuesr0s     r�test_setstate_middle_argz5MersenneTwister_TestBasicOps.test_setstate_middle_arg�s����h�'�'�)�)�����)�T�X�%6��H�H�H����*�d�h�&7�9K�L�L�L����)�T�X�%6��F�3�J��8M�N�N�N����)�T�X�%6��D��H�V�O�T�8R�S�S�S�
�
�
�
�M�:�
;�
;�	:�	:��H���q�$�s�(�6�/�4�8�9�9�9�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:����	:�	:�	:�	:�
�
�
�
�M�:�
;�
;�	9�	9��H���q�$�s�(�5�.�$�7�8�8�8�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9��(�&�&�s�+�+������+�&�&�&������-�-�c�2�2�G�<�<�<��x�(�(�*�*�1�-���L�)�)�� ��<�<��R��.�.��.�.�.�����)�T�X�%6��E�4�8H�I�I�I�I�Is$�"$D�D�D�>$E.�.E2�5E2c���gd�}|j�d��|�d��dd�}t||��D]\}}|�||d����dS)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#r ra�assertAlmostEqual)rr��actualrA�es     r�test_referenceImplementationz9MersenneTwister_TestBasicOps.test_referenceImplementation�s���	)�	)�	)��	
��
�
�C�D�D�D�����&�&�s�t�t�,�����)�)�	2�	2�D�A�q��"�"�1�Q�b�"�1�1�1�1�	2�	2rc	��ddlm}gd�}|j�d��|�d��dd�}t||��D]2\}}|�t||d����|���3dS)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�r�r�r�r)�mathr�rr#r rar.r!)rr�r�r�rAr�s      r�$test_strong_reference_implementationzAMersenneTwister_TestBasicOps.test_strong_reference_implementation�s���
	������	&�	&�	&��	
��
�
�C�D�D�D�����&�&�s�t�t�,�����)�)�	3�	3�D�A�q����S���q�"���.�.��2�2�2�2�	3�	3rc�J�ddzdz
}|j�|��dS)Nr=i�8r=)rr#s  r�test_long_seedz+MersenneTwister_TestBasicOps.test_long_seed�s-���i� �A�%����
�
�d�����rc��d}d}td��D].}|t|j���|z��z}�/|�||dz
��dSrErFrGs    rrHz3MersenneTwister_TestBasicOps.test_53_bits_per_float�rIrc���ddz}d}td��D]D}|j�|��}|�d|cxko|knc��||z}�E|�||dz
��dSrKrLrMs     rrNz)MersenneTwister_TestBasicOps.test_bigrandrOrc��dD]�}|j�d|dz
z��}|j�d|z��}||kr�F|�||j�||��cxko|knc����dSrQrVrWs    rrZz0MersenneTwister_TestBasicOps.test_bigrand_ranges
r[rc
������dD]^\����tt������t���fd�td��D�������_dS)Nr]c�F��g|]}�j�������Srr`ras  ���rrzAMersenneTwister_TestBasicOps.test_rangelimits.<locals>.<listcomp>rbrr~rcrds`@@rrez-MersenneTwister_TestBasicOps.test_rangelimitsrfrc����t�����|j�d��|�|j�d��d��dS)N��r~�S!m�.vFXO)�superrrr#r.r)r�	__class__s �rrz-MersenneTwister_TestBasicOps.test_getrandbitssf���
��� � �"�"�"�	
��
�
�g���������-�-�c�2�2�6�	8�	8�	8�	8�	8rc��|j�d��|�|j�ddz��d��dS)Nr�rD�cr�)rr#r.r*r7s r�test_randrange_uses_getrandbitsz<MersenneTwister_TestBasicOps.test_randrange_uses_getrandbits"sU��	
��
�
�g����	
�����+�+�A�r�E�2�2�6�	8�	8�	8�	8�	8rc�j�tdd��D�] }d|z}|dz}|d||d��z��}|�||��|�|d|dz
z��||dz
z
}|d||d��z��}|�|||dzg��|�d|z|cxkod|dz
zknc��||dz	z}|d||d��z��}|�||��|�d|z|cxkod|dz
zknc����"dSr~rr�s       rr�z1MersenneTwister_TestBasicOps.test_randbelow_logic,r�rc�^�dtjz}tj��5tjdt
��|j�|dz|���ddd��n#1swxYwY|j�d|���d}d}|||zz
|z}tj	j
�tjd��5}||z||z
g|_
|j�||���|�|jd��ddd��dS#1swxYwYdS)	Nr=�ignore)�maxsizeirq�{�G�z�?rrD)r�BPFr�r�r��UserWarningr�_randbelow_without_getrandbitsr7r8r9rFr�rUr.�
call_count)rr�r�epsilon�limit�random_mocks      r�"test_randbelow_without_getrandbitsz?MersenneTwister_TestBasicOps.test_randbelow_without_getrandbitsAs����V�Z�-��
�
$�
&�
&�	�	��!�(�K�8�8�8��H�3�3���	�7�
4�
�
�
�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	
��/�/��g�/�F�F�F� 
�����G�a�K�(�G�3��
�]�
 �
'�
'��
�x�
@�
@�	8�K�',�w�����&H�K�#��H�3�3�A�w�3�G�G�G����[�3�Q�7�7�7�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8�	8�	8s$�:A)�)A-�0A-�AD"�"D&�)D&c���d}d}d}|j�|||��}|�||cxko|knc��|�||z|zd��dS)NlJ)�r?i8���r)rr*rdr.)rrXrYr{r�s     r�test_randrange_bug_1590891z7MersenneTwister_TestBasicOps.test_randrange_bug_1590891cs|����%�����H���u�d�D�1�1������q�)�)�)�)�E�)�)�)�)�*�*�*����!�D�&�$���*�*�*�*�*rc��|jj}d}|j�d��|j�t|��d���}|j�d��|j�t|��dg|zd���}|�||��|j�d��|j�t|��td|dz��d���}|�||��gd�}gd�}gd	�}d
gdzdgdzzd
gdzz}	|j�d��|j�|	d���}|j�d��|j�||d���}|�||��|j�d��|j�||d���}|�||��dS)Ni�r�r�r�r=r�)�Red�Black�Green)�r�rD)r��$�&r�r�r�r�rDi�߉)rr�r#rr.)
rr�rrAr�r�r�r�r��expanded_populations
          r�test_choices_algorithmsz4MersenneTwister_TestBasicOps.test_choices_algorithmsks����(�"������
�
�g�����H���U�1�X�X���/�/����
�
�g�����H���U�1�X�X��s�1�u���6�6������A������
�
�g�����H���U�1�X�X�5��A�a�C�=�=�E��J�J������A����/�.�.�
��+�+��"�l�l��$�g��l�g�Y��^�;�w�i�!�m�K����
�
�g�����H���0�E��:�:����
�
�g�����H���Z��E��:�:������A������
�
�g�����H���Z�[�E��J�J������A�����rc	�����t�����d}d��j�|�����j�d������j�|�����j�d��d�����j�d������j�|����d��fd�td��D��������j�|���ddd�}��d��fd	�td��D����|���j�|��d��fd
�tdt���d��D����}��d��fd�td��D����|���j�|��d��fd�tdt���d��D����}��d��fd
�td��D����|��dS)Nr�s3��f��6���oe��rrc�D��g|]}�j�d����S)rE�rr0�r�_rs  �rrz?MersenneTwister_TestBasicOps.test_randbytes.<locals>.<listcomp>�s)���"K�"K�"K�Q�4�8�#5�#5�a�#8�#8�"K�"K�"KrrErBc3�L�K�|]}�j�d��V��dS)r=Nr�r�s  �rr+z>MersenneTwister_TestBasicOps.test_randbytes.<locals>.<genexpr>��3�����!J�!J�A�$�(�"4�"4�Q�"7�"7�!J�!J�!J�!J�!J�!Jrc3�8�K�|]}�|dz|dz�V��dS)rDrENr�rrr�s  �rr+z>MersenneTwister_TestBasicOps.test_randbytes.<locals>.<genexpr>��P�����B�B�!"�&�a�!�e�Q��U�l�3�B�B�B�B�B�Brc3�L�K�|]}�j�d��V��dS)rDNr�r�s  �rr+z>MersenneTwister_TestBasicOps.test_randbytes.<locals>.<genexpr>�r�rc3�8�K�|]}�|dz|dz�V��dS)r=rENrr�s  �rr+z>MersenneTwister_TestBasicOps.test_randbytes.<locals>.<genexpr>�rrc3�L�K�|]}�j�d��V��dS)rBNr�r�s  �rr+z>MersenneTwister_TestBasicOps.test_randbytes.<locals>.<genexpr>�r�r)	r�r2rr#r.r0�joinrrb)rr#�	expected1�	expected2�	expected3r�r�s`    @�rr2z+MersenneTwister_TestBasicOps.test_randbytes�s������
����� � � ���G����
�
�d���������+�+�B�/�/��:�:�:�	
��
�
�d���������+�+�A�.�.��4�4�4������+�+�B�/�/��:�:�:�	
��
�
�d����������"K�"K�"K�"K�%��(�(�"K�"K�"K�L�L�!�	#�	#�	#�
	
��
�
�d�����Q�T��T�N�	�������!J�!J�!J�!J��q���!J�!J�!J�J�J�"�	$�	$�	$�	
��
�
�d�����H�H�B�B�B�B�&+�A�s�8�}�}�a�&@�&@�B�B�B�B�B�	�������!J�!J�!J�!J��q���!J�!J�!J�J�J�"�	$�	$�	$�	
��
�
�d�����H�H�B�B�B�B�&+�A�s�8�}�}�a�&@�&@�B�B�B�B�B�	�������!J�!J�!J�!J��q���!J�!J�!J�J�J�"�	$�	$�	$�	$�	$rc�b�d}tj��}|j�|��|�|��t	d��D]Z}|�|j�|��|�|dz���|d�����[dS)Nl�O�S�	r��little)	rr�rr#rr.r0r�to_bytes)rr#�gen2rs    r�test_randbytes_getrandbitsz7MersenneTwister_TestBasicOps.test_randbytes_getrandbits�s������}������
�
�d�����	�	�$�����q���	L�	L�A����T�X�/�/��2�2�!�-�-�a�!�e�4�4�=�=�a��J�J�
L�
L�
L�
L�	L�	Lrc��|jj}|jj}gd�}gd�}d}|d��||||���}|d��d�t||��D��}|�t|��t
|����|||���}|�||��d}	gd	�}|d��d
�||	|d�����}d
�d�t|	|��D����}|d��d
�||d�����}|�||��dS)
N)r�r�r�r�r�r�)r�r�r�r]r�r=r�r�r�c�<�g|]\}}t|��D]}|���Srr)rr��countrs    rrzOMersenneTwister_TestBasicOps.test_sample_counts_equivalence.<locals>.<listcomp>�s0��Z�Z�Z�n�u�e�U�SX�\�\�Z�Z��E�Z�Z�Z�Zrr��	abcdefghi)	r]r	r��r�r�rErBrDr�r�c�<�g|]\}}t|��D]}|���Srr)r�letterrrs    rrzOMersenneTwister_TestBasicOps.test_sample_counts_equivalence.<locals>.<listcomp>�s3��a�a�a����TY�Z_�T`�T`�a�a�q�F�a�a�a�ar)rrr#rar.rbr�r)
rrr#r�r�r��s1�expanded�s2r�s
          r�test_sample_counts_equivalencez;MersenneTwister_TestBasicOps.test_sample_counts_equivalence�s|�������x�}��F�F�F��E�E�E������W�
�
�
�
�V�F�6�Q�
/�
/�
/����W�
�
�
�Z�Z��F�F�0C�0C�Z�Z�Z������X����F���4�4�4�
�V�H��
"�
"�
"������R� � � ���-�-�-����W�
�
�
�
�W�W�V�V�C��"�5�5�5�
6�
6���7�7�a�a�#�c�6�:J�:J�a�a�a�b�b����W�
�
�
�
�W�W�V�V�H��+�+�+�
,�
,������R� � � � � r)r9r:r;rr�rr�r�r�r�r�r�r�r�r�rHrNrZrerr�rr!r�r�r�r�r2r
r�
__classcell__)r�s@rr�r�Us��������
�&�-�/�/�C�	>�	>�	>�>�>�>�$	�	�	�>�>�>�6J�J�J�J�J�J�<2�2�2�>3�3�3�,���&�&�&�	&�	&�	&�M�M�M�K�K�K�
8�8�8�8�8�8�8�8�),��1�1�1�1�* 8� 8� 8�D+�+�+����B&$�&$�&$�&$�&$�PL�L�L�!�!�!�!�!�!�!rr�ro��?c�>�|dkr2ttt|z��ztd|z
��zS|dz}||dz
zt|��z|zt	dd|zd|dzzd|dzzd	|d
zzd|dzzd
|dzzd|dzzd|dzzg	��zS)Nrr/g@g
����?g�
ö)$�@g&Ԏ����g
t�a��@rog���Q�f�rlg>@~�)@g@gA~������@g�~\���>g@g���i�E�>g@)rr�gammarr)�z�sqrt2pi�azs   rrr�s����3�w�w��C��1��I�I�~��c�!�e���,�,�	
�i��B�
�!�C�%�=�3�r�7�7�"�W�,�t���A���a��e�$��Q�s�U�#��a��e�$��Q�s�U�#��q��u�%��!�C�%�(��!�C�%�(�
5�
0�
0�
�
rc��eZdZd�Zd�Zd�Zd�Zd�Zd�Ze	j
�d��d���Ze	j
�d��d	���Z
e	j
�d��d
���Ze	j
�d��d���Ze	j
�d��d
���ZdS)�TestDistributionsc���tj����fd�td��D��dgdzz}|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�_��dd��|dd�j�_��dd��|dd�j�_��d	d��|dd�j�_��
d
d
��|dd�j�_��ddd��dS)Nc�8��g|]}������Srr)rr�gs  �rrz5TestDistributions.test_zeroinputs.<locals>.<listcomp>�s!���+�+�+�A�Q�X�X�Z�Z�+�+�+rrmr�r�r=r]r/r�gi@rl�UUUUUU�?)rr�rr��uniform�
paretovariate�expovariate�weibullvariate�vonmisesvariater5r��lognormvariate�gammavariate�betavariate�
triangular)rr�r%s  @r�test_zeroinputsz!TestDistributions.test_zeroinputs�s9����M�O�O��+�+�+�+��r���+�+�+�s�e�A�g�5���Q�Q�Q�4�8���Q�Y�Y�q��_�_�_��Q�Q�Q�4�8���Q�_�_�S�1�1�1��Q�Q�Q�4�8���Q�]�]�3�/�/�/��Q�Q�Q�4�8���Q�-�-�c�3�7�7�7��Q�Q�Q�4�8���Q�.�.�s�C�8�8�8��Q�Q�Q�4�8���Q�_�_�S�#�6�6�6��Q�Q�Q�4�8���Q�W�W�S�#�.�.�.��Q�Q�Q�4�8���Q�-�-�c�3�7�7�7��Q�Q�Q�4�8���Q�.�.�s�C�8�8�8��Q�Q�Q�4�8���Q�^�^�D�#�6�6�6��Q�Q�Q�4�8���Q�^�^�C��5�5�5��Q�Q�Q�4�8���Q�^�^�E�3�7�7�7��Q�Q�Q�4�8���Q�]�]�3��4�4�4��Q�Q�Q�4�8���Q�\�\�#�s�G�<�<�<�<�<rc���tj��}d��fd�td���D��}|jdddf|jddd	f|jd
ddf|jdttd
zdzf|jdddf|j	dtd��td��td��d
zz
ffD]�\}}}}|dd�j|_g}tt|����D]+}	|�
||����#t$rY�(wxYwdx}	}
|D]}|	|z
}	|
||z
d
zz
}
�t|���|�|	�z|d
|j�|�����|�|
�dz
z|d
|j�|�������dS)Nr�c�4��g|]}|t���z��Sr)r�)rrr/s  �rrz2TestDistributions.test_avg_std.<locals>.<listcomp>s#���,�,�,�A�Q�u�Q�x�x�Z�,�,�,rr=)r/rvg@g@)r�r/r&g�q�q�?g�<ݚ�?)rwgUUUUUU�?)g�G�z��?rrDrB)rg�?g�������?)r/rlgUUUUUU�?g�������?r)r��msg)rr�rr'r/r)r+rr(r*rr�rb�appendrqr�r9)
rr%r��variate�args�mu�	sigmasqrd�yrrrr�r/s
            @r�test_avg_stdzTestDistributions.test_avg_stds���
�M�O�O����,�,�,�,��q����,�,�,����J��6F�G���2�G�\�J�����x�8��"�I�r�2�q�5��7�;���&�+�":�<��!�:�u�W�~�~�"'��.�.��w����1B�"B�D�-F�	J�	J�(�G�T�2�y�����t�x�A�H��A��3�q�6�6�]�]�
�
����H�H�W�W�d�^�,�,�,�,��!�����D������K�B���
$�
$���a����q�2�v�!�m�#����A���A��"�"�2�a�4��A�18�1A�1A�4�4�'H�
#�
J�
J�
J��"�"�2�q��s�8�Y�q�18�1A�1A�4�4�'H�
#�
J�
J�
J�
J�/	J�	Js�*D�
D�Dc��tj��}d}|jddf|jddf|jddf|jtd��fdf|jdtd��fdf|jddf|jd	d
f|jtd��dfdf|j	ddf|j
td��fd
f|jdtd��fdf|jddffD]1\}}}t|��D]}|�
||�|����2dS)Nr~)rvrvrv)rvrvrvr�r�rl)rvr�)r�r�r/)r�rv)rr�r'r/r)r�r+r�r,r5r(r*rr.)rr%r/r5r6r�rs       r�
test_constantzTestDistributions.test_constant s8���M�O�O������L�$�/���|�T�2���1�4�8����u�����5��"�S�%��,�,�$7��=���+�t�,��!�:�s�3��!�U�5�\�\�M�3�#7��=���+�t�4���5��<�<�/�3�7��!�D�%��,�,�#7��>��!�;��4�
(�	;�	;�#�G�T�8��1�X�X�
;�
;��� � ���$���:�:�:�:�
;�	;�	;rc��tj��}d}dD]s}dD]n}t|��D]\}|�||��}|�d|cxkotjkncd�|||������]�o�tdS)Nr~)r�r"g������@g������@)r��ffffff@g@@rzCvonmisesvariate({}, {}) produced a result {} out of range [0, 2*pi])r3)rr�rr+rd�TWOPI�format)rr%r/r7�kappar�rs       r�test_von_mises_rangez&TestDistributions.test_von_mises_range4s���
�M�O�O����$�	O�	O�B�(�
O�
O���q���O�O�A��.�.�r�5�9�9�F��O�O��V�3�3�3�3�v�|�3�3�3�3�3�4:�F�2�u�f�4M�4M�$�O�O�O�O�O�
O�	O�	Orc�Z�tjdd��tjdd��dS)Nrg4&�kCg}Ô%�I�T)rr+r7s r�test_von_mises_large_kappaz,TestDistributions.test_von_mises_large_kappaBs.����q�$�'�'�'���q�%�(�(�(�(�(rc�>�|�ttjdd��|�ttjdd��|�ttjdd��|�ttjdd��dS)Nr>rBrrDr=r�)rHr�rr-r7s r�test_gammavariate_errorsz*TestDistributions.test_gammavariate_errorsGs|�����*�f�&9�2�q�A�A�A����*�f�&9�1�a�@�@�@����*�f�&9�1�a�@�@�@����*�f�&9�1�b�A�A�A�A�Arzrandom.Random.randomc�n�gd�|_tjdd��}|�|d��dS)N)�:�0�yE>rr,g�������?r>g=
ףp=@�rUrr-r��rr��returned_values   r�#test_gammavariate_alpha_greater_onez5TestDistributions.test_gammavariate_alpha_greater_oneRs@��#3�"2�"2����,�S�#�6�6�����~�t�4�4�4�4�4rc�l�dg|_tjdd��}|�|d��dS)Ng�������?r/r@g�/qr	�?rIrJs   r�!test_gammavariate_alpha_equal_onez3TestDistributions.test_gammavariate_alpha_equal_one]s=��$(�&����,�S�$�7�7�����~�/@�A�A�A�A�Arc��d}ddg|_tjd|��}tjd|z��}|�||��dS)Nr@rHr/)rUrr-r)r�)rr��beta�gammavariate_returned_value�expovariate_returned_values     r�4test_gammavariate_alpha_equal_one_equals_expovariatezFTestDistributions.test_gammavariate_alpha_equal_one_equals_expovariatehs[��
��#'��,���&,�&9�#�t�&D�&D�#�%+�%7��d�
�%C�%C�"����:�<V�W�W�W�W�Wrc�^�tj}tj}tj}d}d}||z|z}d}d}	d}
|	|
|z|	|
g|_tj||��}|�|d��d}	d}
|	|
|z|	|
g|_tj||��}|�|d	��dS)
Ngffffff�?g333333�?r�gX� �Y�?g=�,6V��?g�.3333�?g�l%�t��?g�K,	�9�?g7SvT�?)r�_e�_expr�rUr-r�)rr�rUrVr��alpharPr�r�r�r�rKs            r�,test_gammavariate_alpha_between_zero_and_onez>TestDistributions.test_gammavariate_alpha_between_zero_and_oness���F�Y���{���{������
�%�Z��O����
��
��
$&�r�G�|�R��"<����,�U�D�9�9�����~�/A�B�B�B���
��
$&�r�G�|�R��"<����,�U�D�9�9�����~�/A�B�B�B�B�Brzrandom.Random.gammavariatec�f�d|_|�dtjdd����dS)Nr�rnrk)�return_valuer.rr.)r�gammavariate_mocks  r�test_betavariate_return_zeroz.TestDistributions.test_betavariate_return_zero�s6��*-��&�����f�0��'�B�B�C�C�C�C�CrN)r9r:r;r0r:r<rBrDrFr7r8r9rLrNrSrXr\rrrr"r"�sk������=�=�=�&J�J�J�@;�;�;�(O�O�O�)�)�)�
B�B�B��]���/�0�0�5�5�1�0�5��]���/�0�0�B�B�1�0�B��]���/�0�0�X�X�1�0�X��]���/�0�0�CC�CC�1�0�CC�J�]���5�6�6�D�D�7�6�D�D�Drr"c��eZdZd�Zd�ZdS)�TestRandomSubclassingc�N�Gd�dtj��}|d���dS)Nc��eZdZdd�ZdS)�HTestRandomSubclassing.test_random_subclass_with_kwargs.<locals>.SubclassNc�D�tj�|��dSrS)rr�r�)r�newargs  rr�zQTestRandomSubclassing.test_random_subclass_with_kwargs.<locals>.Subclass.__init__�s���
�&�&�t�,�,�,�,�,rrS)r9r:r;r�rrr�Subclassra�s(������
-�
-�
-�
-�
-�
-rrdr=)rc)rr�)rrds  r� test_random_subclass_with_kwargsz6TestRandomSubclassing.test_random_subclass_with_kwargs�sI��	-�	-�	-�	-�	-�v�}�	-�	-�	-�	��������rc����G�fd�dtj��}t���|���d��|��dh��G�fd�dtj��}t���|���d��|��dh��G�fd�d	|��}t���|���d��|��d
h��G�fd�d|��}t���|���d��|��d
h��G�fd�d��}G�fd�d��}Gd�d|tj��}t���|���d��|��dh��Gd�d|tj��}t���|���d��|��dh��Gd�d||tj��}	t���|	���d��|��dh��Gd�d||tj��}
t���|
���d��|��dh��dS)Nc�$��eZdZ�fd�Z�fd�ZdS)�KTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass1c�l����d��tj�|��S)NzSubClass1.random��addrr��r�calleds �rrzRTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass1.random��,����
�
�-�.�.�.��}�+�+�D�1�1�1rc�n����d��tj�||��S)N�SubClass1.getrandbits�rkrr�r�rrrms  �rrzWTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass1.getrandbits��.����
�
�2�3�3�3��}�0�0��q�9�9�9rN)r9r:r;rr�rms�r�	SubClass1rh�sG�������
2�
2�
2�
2�
2�
:�
:�
:�
:�
:�
:�
:rrurqrpc���eZdZ�fd�ZdS)�KTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass2c�l����d��tj�|��S)N�SubClass2.randomrjrls �rrzRTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass2.random�rnrN�r9r:r;rrts�r�	SubClass2rw��.�������
2�
2�
2�
2�
2�
2�
2rr{ryc���eZdZ�fd�ZdS)�KTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass3c�n����d��tj�||��S)N�SubClass3.getrandbitsrqrrs  �rrzWTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass3.getrandbits�rsrN�r9r:r;rrts�r�	SubClass3r~��.�������
:�
:�
:�
:�
:�
:�
:rr�r�c���eZdZ�fd�ZdS)�KTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass4c�l����d��tj�|��S)N�SubClass4.randomrjrls �rrzRTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass4.random�rnrNrzrts�r�	SubClass4r��r|rr�r�c���eZdZ�fd�ZdS)�HTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.Mixin1c�l����d��tj�|��S)N�
Mixin1.randomrjrls �rrzOTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.Mixin1.random�s+����
�
�?�+�+�+��}�+�+�D�1�1�1rNrzrts�r�Mixin1r��r|rr�c���eZdZ�fd�ZdS)�HTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.Mixin2c�n����d��tj�||��S)N�Mixin2.getrandbitsrqrrs  �rrzTTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.Mixin2.getrandbitss.����
�
�/�0�0�0��}�0�0��q�9�9�9rNr�rts�r�Mixin2r�r�rr�c��eZdZdS)�KTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass5N�r9r:r;rrr�	SubClass5r���������Drr�r�c��eZdZdS)�KTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass6Nr�rrr�	SubClass6r�r�rr�r�c��eZdZdS)�KTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass7Nr�rrr�	SubClass7r�r�rr�c��eZdZdS)�KTestRandomSubclassing.test_subclasses_overriding_methods.<locals>.SubClass8Nr�rrr�	SubClass8r�r�rr�)rr�rcr*r.)rrur{r�r�r�r�r�r�r�r�rms           @r�"test_subclasses_overriding_methodsz8TestRandomSubclassing.test_subclasses_overriding_methods�s����	:�	:�	:�	:�	:�	:�	:��
�	:�	:�	:������	�����b�!�!�!�����"9�!:�;�;�;�	2�	2�	2�	2�	2�	2�	2��
�	2�	2�	2������	�����b�!�!�!�����"4�!5�6�6�6�	:�	:�	:�	:�	:�	:�	:�	�	:�	:�	:������	�����b�!�!�!�����"9�!:�;�;�;�	2�	2�	2�	2�	2�	2�	2�	�	2�	2�	2������	�����b�!�!�!�����"4�!5�6�6�6�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:�
	�	�	�	�	���
�	�	�	������	�����b�!�!�!�����/�!2�3�3�3�	�	�	�	�	���
�	�	�	������	�����b�!�!�!�����"6�!7�8�8�8�	�	�	�	�	����
�	�	�	������	�����b�!�!�!�����/�!2�3�3�3�	�	�	�	�	����
�	�	�	������	�����b�!�!�!�����"6�!7�8�8�8�8�8rN)r9r:r;rer�rrrr^r^�s7���������R9�R9�R9�R9�R9rr^c�^�eZdZd�Zd�Zej���d���ZdS)�
TestModulec��|�tjd��|�tjd��|�tjd��|�tjd��dS)Ng�3?�r�?g�.DT�!@g�9��B.�?g�t�Y@)r�r�
NV_MAGICCONSTr?�LOG4�
SG_MAGICCONSTr7s r�testMagicConstantszTestModule.testMagicConstantssm�����v�3�5E�F�F�F����v�|�]�;�;�;����v�{�,<�=�=�=����v�3�5E�F�F�F�F�Frc��|�ttj��tt	t����k��dSrS)rdrcr�__all__�dirr7s r�test__all__zTestModule.test__all__%s7������F�N�+�+�s�3�v�;�;�/?�/?�?�@�@�@�@�@rc��tj��\}}tj��}|dkr�	tjd��}t|d��5}|�t|����ddd��n#1swxYwYtjd��dS#tjd��wxYwtj	|��tjd��}t|d��5}t|�����}ddd��n#1swxYwY|�||��tj|d���dS)Nrr�wr&)�exitcode)�os�pipe�forkrrr�writer��_exit�close�eval�readr'r
�wait_process)rr&r��pid�valr%�	child_vals       r�test_after_forkzTestModule.test_after_fork)s����w�y�y���1��g�i�i���!�8�8�
��(��-�-���!�S�\�\�&�Q��G�G�C��H�H�%�%�%�&�&�&�&�&�&�&�&�&�&�&����&�&�&�&��������������������
�H�Q�K�K�K��$�S�)�)�C��a����
+�� ������N�N�	�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+����
+�
+�
+�
+�����Y�/�/�/�� ��q�1�1�1�1�1�1sA�$B%�#B�8B%�B�B%�B�B%�%B;�6"D$�$D(�+D(N)	r9r:r;r�r�r�r
�
requires_forkr�rrrr�r�sb������G�G�G�A�A�A�
�\���!�!�2�2�"�!�2�2�2rr��__main__)'r7�
unittest.mockrr�r%rr��test.supportr��	functoolsrr�rrrrrr	r
�	fractionsr�collectionsrr
rr��SystemRandom_availablerT�
skipUnless�TestCaser;r�r�rr"r^r�r9�mainrrr�<module>r�s�����������
�
�
�
�	�	�	�	�����
�
�
�
���������������3�3�3�3�3�3�3�3�3�3�3�3�3�3�3�3�������������$�$�$�$�$�$�$�$�]7�]7�]7�]7�]7�]7�]7�]7�@
"��F���� � �"�"�"�"�����#�#�#�"����#����
���+�-P�Q�Q�G1�G1�G1�G1�G1��h�.?�G1�G1�R�Q�G1�T3�3�3�3�3�X�.�3�3�3�&B!�B!�B!�B!�B!�<��1B�B!�B!�B!�J�"�f�s�]�����$RD�RD�RD�RD�RD��)�RD�RD�RD�jZ9�Z9�Z9�Z9�Z9�H�-�Z9�Z9�Z9�z 2� 2� 2� 2� 2��"� 2� 2� 2�F�z����H�M�O�O�O�O�O��s�!A=�=B�B