HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux spn-python 5.15.0-89-generic #99-Ubuntu SMP Mon Oct 30 20:42:41 UTC 2023 x86_64
User: arjun (1000)
PHP: 8.1.2-1ubuntu2.20
Disabled: NONE
Upload Files
File: //usr/local/lib/python3.10/dist-packages/numpy/random/tests/__pycache__/test_direct.cpython-310.pyc
o

���gsE�@s�ddlZddlmZddlZddlZddlmZmZm	Z	m
Z
ddlZddlm
Z
mZmZmZmZmZmZmZmZddlmZzddlZdZWneyQdZYnwzddlZdZWneyedZYnwejjdkrndZej� ej�!e"��Z#d	d
�Z$dd�Z%d
d�Z&dd�Z'dd�Z(dd�Z)dd�Z*dd�Z+dd�Z,dd�Z-dd�Z.dd �Z/d!d"�Z0d#d$�Z1Gd%d&�d&�Z2Gd'd(�d(e2�Z3Gd)d*�d*e2�Z4Gd+d,�d,e2�Z5Gd-d.�d.e2�Z6Gd/d0�d0e2�Z7Gd1d2�d2�Z8dS)3�N)�join)�assert_equal�assert_allclose�assert_array_equal�
assert_raises)	�	Generator�MT19937�PCG64�	PCG64DXSM�Philox�RandomState�SeedSequence�SFC64�default_rng)�	interfaceFT�cCsh|D]/}t||t�rt||||�qt||tj�r't||||�q||||ks1J�qdS�N)�
isinstance�dict�assert_state_equal�np�ndarrayr)�actual�target�key�r�I/usr/local/lib/python3.10/dist-packages/numpy/random/tests/test_direct.pyr's�rcCs|t�d�?d�tj�S)N�gp>)r�uint32�astype�float32)�urrr�uint32_to_float321sr"cCs\t�|�}tj|t�d�?tjd�}t�d�}tj||@tjd�}t�||g���}t|�S)N� ��dtype���)r�uint64�arrayr�column_stack�ravelr")�x�upper�lower�joinedrrr�uniform32_from_uint645s

r/cCs0t�|�t�d�?}t�|t�d�@�}t|�S)N�r&)rr'rr"�r+rrr�uniform32_from_uint53>sr2cCst|�Sr)r"r1rrr�uniform32_from_uint32Dsr3cCs4|dkrt|�S|dkrt|�S|dkrt|�St�)N�@�5r#)r/r2r3�NotImplementedError�r+�bitsrrr�uniform32_from_uintHsr9cCs$|dvrt|�S|dkrt|�SdS)N)r4�?r5r#)�uniform_from_uint64�uniform_from_uint32r7rrr�uniform_from_uintSs
�r=cCs|t�d�?dS)N�g�<)rr'r1rrrr;Zsr;cCs`t�t|�d�}tdt|�d�D]}||d?}||dd?}|d|d||d<q|S)N�r�r�g�Ag@C)r�empty�len�range)r+�out�i�a�brrrr<^sr<cCs|�tj�dS)N��?)�viewr�doubler1rrr�uniform_from_dsfmtgsrLc
Cs�|dvr	t|�}n
|dkrt|�}nt|�}g}d}d}}t|�|krtd}|dks.|dkrTd||d}d||dd}||||}|d7}|dks.|dks.t�d	t�|�|�}	|�|	|�|�|	|�t|�|ks$|d|�S)
N)r4r:r#r�r?rIg@rg�)r;r<rLrCr�sqrt�log�append)
r+�nr8�doubles�gauss�loc�x1�x2�r2�frrr�gauss_from_uintks*

��rYcCs�ddlm}m}m}ttd�ddd�}|�d�tdi|j��}t|j|j�t|j	|j	�t
t|�t
t|�|�}t
t|j
d�t|�d��dksMJ�dS)Nr)�
ISeedSequence�ISpawnableSeedSequence�SeedlessSeedSequence�
)rr?rA)�	spawn_key�	pool_sizer)�numpy.random.bit_generatorrZr[r\r
rD�spawn�stater�n_children_spawnedr�	TypeErrorr6�generate_staterC)rZr[r\�s1�s2�dummyrrr�test_seedsequence�s


rics�tj��}|jj���d�}�fdd�td�D�}dd�|D�|ks$J�|j�d�}�fdd�tdd�D�}dd�|D�|ksAJ�|�d�}�fdd�tdd	�D�}d
d�|D�}||ks_J�|d��|d��ksmJ�d
S)z? Test spawning new generators and bit_generators directly.
    r@c�g|]}�j|f�qSr�r^��.0rF��seqrr�
<listcomp>��z+test_generator_spawning.<locals>.<listcomp>cSsg|]}|j�qSrrk)rm�crrrrp�scrjrrkrlrnrrrp�rqr]cSsg|]}|jj�qSr)�seed_seqr^)rm�bgrrrrp�scrjrrkrlrnrrrp�rq�cSsg|]}|jjj�qSr)�
bit_generatorrsr^)rm�rngrrrrp�srrN)r�randomrrvrsrarD�uniform)rw�new_ss�
expected_keys�new_bgs�new_rngs�
found_keysrrnr�test_generator_spawning�s


 rcCs�ddlm}Gdd�d�}|�|�tj�|��}tjtdd��
|�	d�Wd�n1s0wYtjtdd��|j
�	d�Wd�dS1sNwYdS)Nr)rZc@seZdZejfdd�ZdS)z,test_non_spawnable.<locals>.FakeSeedSequencecSstj||d�S)Nr$)r�zeros)�self�n_wordsr%rrrre�sz;test_non_spawnable.<locals>.FakeSeedSequence.generate_stateN)�__name__�
__module__�__qualname__rrrerrrr�FakeSeedSequence�sr�zThe underlying SeedSequence)�matchr@)r`rZ�registerrrxr�pytest�raisesrdrarv)rZr�rwrrr�test_non_spawnable�s
�"�r�c@s�eZdZejZiZZedd��Z	edd��Z
dd�Zdd�Zd	d
�Z
dd�Zd
d�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zejjedd �d!d"��Zejjed#d �d$d%��Zd&d'�Zd(S))�BasecCs*t|_d|_tj|_t|_g|_g|_	dS)Nr4)
r	rvr8rr'r%rd�seed_error_type�invalid_init_types�invalid_init_values��clsrrr�setup_class�s
zBase.setup_classcCs�t|��=}|��}|�d�}dd�|dd�D�}g}|D]}|�t|�d�d��d��q|tj||jd�d�Wd�S1sDwYdS)	N�,cSsg|]	}t|��d��qS)r)�int�strip)rm�srrrrp�sz"Base._read_csv.<locals>.<listcomp>r���rr$)�seed�data)	�open�readline�splitrPr�r�rr(r%)r��filename�csvr�r��linerrr�	_read_csv�s

 $�zBase._read_csvcCs�|j|jd�}|�d�}t||jd�|j|jd�}|��}t||jdd�|j|jd�}|�d�}t||jd�dS)Nr���r�r)rv�data1�
random_rawr�data2�r�rv�uintsrrr�test_raw�s

z
Base.test_rawcCsF|j|jd�}|jdd�}|dusJ�|jddd�}|dus!J�dS)Nr�F)�outputr�)rvr�r�r�rrr�test_random_raw�s
zBase.test_random_rawcCsxd}t|j|jd��}|�|�}t|t|jd||j��t|j|jd��}|�d�}t|t|jd||j��dS)N�r�r�)rrvr��standard_normalrrYr8r�)r�rQ�rsrSrrr�test_gauss_inv�s
�
�zBase.test_gauss_invcCs�t|j|jd��}t|jd|j�}|�t|��}t||�t|j	t
j�t|j|jd��}t|jd|j�}|�t|��}t||�t|j	t
j�dS)Nr�r�)
rrvr�r=r8rxrCrrr%r�float64r��r�r��vals�uniformsrrr�test_uniform_double�s

zBase.test_uniform_doublecCs�t|j|jd��}t|jd|j�}|jt|�tjd�}t	||�t
|jtj�t|j|jd��}t|jd|j�}|jt|�tjd�}t	||�t
|jtj�dS)Nr�r�r$)
rrvr�r9r8rxrCrr rrr%r�r�rrr�test_uniform_floats

zBase.test_uniform_floatcCsLt|j|jd��}dt|�vsJ�t|�d����dd�t|�vs$J�dS�Nr�rz#x�Xr+)rrvr��repr�idr,�replace�r�r�rrr�	test_reprs(zBase.test_reprcCsdt|j|jd��}dt|�vsJ�t|jj�t|�vsJ�t|�d����dd�t|�vs0J�dSr�)rrvr��strr�r�r,r�r�rrr�test_strs(z
Base.test_strc	Cs�ddl}|j|jd�}|j}|�|�}|�|�}|j}tt|��d�t|��d��||us1J�t	||�t
d�}|�|�|��}t|j|j�dS)Nrr�r��d)�picklervr�rb�dumps�loadsrrr�rr
r)	r�r�rvrb�
bitgen_pkl�reloaded�reloaded_state�ss�aarrr�test_pickles

�
zBase.test_picklecCsH|j|jd�}t�t��
dh|_Wd�dS1swYdS)Nr��1)rvr�r�r�rdrb�r�rvrrr�test_invalid_state_type-s
"�zBase.test_invalid_state_typecCsT|j|jd�}|j}d|d<t�t��||_Wd�dS1s#wYdS)Nr��otherBitGeneratorrv)rvr�rbr�r��
ValueError)r�rvrbrrr�test_invalid_state_value2s"�zBase.test_invalid_state_valuec	CsH|j}|jD]}t�t��||�Wd�n1swYqdSr)rvr�r�r�rd�r�rv�strrr�test_invalid_init_type9s

���zBase.test_invalid_init_typec	CsL|j}|jD]}t�ttf��||�Wd�n1swYqdSr)rvr�r�r�r��
OverflowErrorr�rrr�test_invalid_init_values?s

���zBase.test_invalid_init_valuescCsb|j|jd�}|�d�|�dd�t�t��|�dd�Wd�dS1s*wYdS)Nr�rrK�int32)rvr��
_benchmarkr�r�r�r�rrr�test_benchmarkEs
"�zBase.test_benchmarkzcffi not available)�reasoncC�:|j|jd�}|j}t|t�sJ�|j}||usJ�dS�Nr�)rvr��cffirr)r�rv�cffi_interface�other_cffi_interfacerrr�	test_cffiL�
zBase.test_cffizctypes not availablecCr�r�)rvr��ctypesrr)r�rv�ctypes_interface�other_ctypes_interfacerrr�test_ctypesTr�zBase.test_ctypescCs,|j|jd�}|j}|��}t||�dSr�)rvr�rb�__getstate__r)r�rvrb�	alt_staterrr�
test_getstate\szBase.test_getstateN) r�r�r�rr'r%r�r��classmethodr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��mark�skipif�MISSING_CFFIr��MISSING_CTYPESr�r�rrrrr��s2







r�c@s eZdZedd��Zdd�ZdS)�
TestPhiloxcCsbt|_d|_tj|_|�ttd��|_	|�ttd��|_
t|_g|_
dddddddfg|_dS)	Nr4z./data/philox-testset-1.csvz./data/philox-testset-2.csv)rNr�r�r?ir)rrvr8rr'r%r�r�pwdr�r�rdr�r�r�r�rrrr�ds��zTestPhilox.setup_classcCsF|j|jd�}|j}|j|dd|ddd�}t|j|j�dS)Nr�rb�counterr)r�r)rvr�rbr)r�rvrb�keyedrrr�test_set_keyqs
�zTestPhilox.test_set_keyN)r�r�r�r�r�r�rrrrr�cs
r�c@�(eZdZedd��Zdd�Zdd�ZdS)�	TestPCG64cC�^t|_d|_tj|_|�ttd��|_	|�ttd��|_
ttf|_
ddgfdg|_dg|_dS)Nr4z./data/pcg64-testset-1.csvz./data/pcg64-testset-2.csv�g������	@�rNr�)r	rvr8rr'r%r�rr�r�r�r�rdr�r�r�r�rrrr�z�
zTestPCG64.setup_classcC�t|j|jd��}|jj}d}|j�|�|�d�}||j_|j�dd|�|�d�}||j_|j�ddd|�|�d�}||ksIJ�||ksOJ�dS�Nr�l����PAOi_n��r]r?��rrvr�rb�advance�integers�r�r�rb�step�val_neg�val_pos�val_bigrrr�test_advance_symmetry��


zTestPCG64.test_advance_symmetrycCslt|�d��}|j}|jd}d}|d|ksJ�|�tdd�dD���|jd}d}|d|ks4J�dS)N��%�@
rb�	�r%4=
K�v�u�1�/�cs��|]}d|VqdS�r?Nrrlrrr�	<genexpr>���z/TestPCG64.test_advange_large.<locals>.<genexpr>��`r4r#r0r�r?rl	�@H}.|z�KLf�be�rrvrbr��sum�r�r��pcgrb�
initial_state�advanced_staterrr�test_advange_large�s

zTestPCG64.test_advange_largeN�r�r�r�r�r�rrrrrrr�y�


r�c@r�)�
TestPCG64DXSMcCr�)Nr4z./data/pcg64dxsm-testset-1.csvz./data/pcg64dxsm-testset-2.csvr�r�r�)r
rvr8rr'r%r�rr�r�r�r�rdr�r�r�r�rrrr��r�zTestPCG64DXSM.setup_classcCr�r�r�r�rrrr�rz#TestPCG64DXSM.test_advance_symmetrycCslt|�d��}|j}|j}d}|dd|ksJ�|�tdd�dD���|jd}d}|d|ks4J�dS)Nrrrbcsrrrrlrrrr�rz3TestPCG64DXSM.test_advange_large.<locals>.<genexpr>rl	oF�	�[UmO1X�9}�rr
rrrr�s
z TestPCG64DXSM.test_advange_largeNrrrrrr�rrc@r�)�TestMT19937cCsPt|_d|_tj|_|�ttd��|_	|�ttd��|_
t|_g|_
dg|_dS)Nr#z./data/mt19937-testset-1.csvz./data/mt19937-testset-2.csvr�)rrvr8rrr%r�rr�r�r�r�r�r�r�r�rrrr��szTestMT19937.setup_classcCs�tt|jt�tjg��tt|jt�tjg��tt|jt�tjtjg��tt|jt�dtjg��tt|jtjg�tt|jdtjg�dS)Nr)rrdrvrr(�pi)r�rrr�test_seed_float_array�sz!TestMT19937.test_seed_float_arraycCs�t|j|jd��}|j}|j}|�d�}|d|dd|ddf}||_|�d�}t||�|d}||_|�d�}t||�dS)Nr�irvrbr�pos)rrM)rrvr�rbr�r)r�r�rvrb�desired�tuprrrr�test_state_tuple�s

�


zTestMT19937.test_state_tupleN)r�r�r�r�r�rrrrrrr�s


rc@seZdZedd��ZdS)�	TestSFC64cCr�)Nr4z./data/sfc64-testset-1.csvz./data/sfc64-testset-2.csvr�r�r�)rrvr8rr'r%r�rr�r�r�r�rdr�r�r�r�rrrr��s��
zTestSFC64.setup_classN)r�r�r�r�r�rrrrr�src@seZdZdd�Zdd�ZdS)�TestDefaultRNGcCs4dddddgffD]}t|�}t|jt�sJ�q	dS)Nrr)��ri.)rrrvr	)r��args�rgrrr�	test_seed�s�zTestDefaultRNG.test_seedcCsBt�}t|�}|j|usJ�t|�}||usJ�|j|usJ�dSr)rrrv)r�rtr �rg2rrr�test_passthroughszTestDefaultRNG.test_passthroughN)r�r�r�r!r#rrrrr�sr)9�os�os.pathr�sys�numpyr�
numpy.testingrrrrr��numpy.randomrrr	r
rrr
rr�numpy.random._commonrr�r��ImportErrorr�r��flags�optimize�path�dirname�abspath�__file__r�rr"r/r2r3r9r=r;r<rLrYrirr�r�r�r�rrrrrrrr�<module>sZ,��
		%''$