zmc
2023-08-08 e792e9a60d958b93aef96050644f369feb25d61b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
U
P±d Bã@sÄddlZddlmZddlZddlZddlmZmZm    Z    m
Z
ddl Z ddl m Z mZmZmZmZmZmZmZmZddlmZzddlZdZWnek
r¤dZYnXzddlZdZWnek
rÎdZYnXejjdkràdZej  ej !e"¡¡Z#d    d
„Z$d d „Z%d d„Z&dd„Z'dd„Z(dd„Z)dd„Z*dd„Z+dd„Z,dd„Z-dd„Z.dd „Z/Gd!d"„d"ƒZ0Gd#d$„d$e0ƒZ1Gd%d&„d&e0ƒZ2Gd'd(„d(e0ƒZ3Gd)d*„d*e0ƒZ4Gd+d,„d,e0ƒZ5Gd-d.„d.ƒZ6dS)/é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ƒr*t||||ƒqt||tjƒrNt||||ƒq||||kst‚qdS©N)Ú
isinstanceÚdictÚassert_state_equalÚnpZndarrayrÚAssertionError)ÚactualÚtargetÚkey©rúUd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\numpy/random/tests/test_direct.pyr's rcCs|t d¡?d tj¡S)Négp>)rÚuint32ZastypeÚfloat32)ÚurrrÚuint32_to_float321sr!cCs\t |¡}tj|t d¡?tjd}t d¡}tj||@tjd}t ||g¡ ¡}t|ƒS)Né ©Údtypeìÿÿ)rÚuint64ÚarrayrZ column_stackZravelr!)ÚxÚupperÚlowerZjoinedrrrÚuniform32_from_uint645s 
 
r+cCs0t |¡t d¡?}t |t d¡@¡}t|ƒS)Nér%)rr&rr!©r(rrrÚuniform32_from_uint53>sr.cCst|ƒSr)r!r-rrrÚuniform32_from_uint32Dsr/cCs8|dkrt|ƒS|dkr t|ƒS|dkr0t|ƒSt‚dS)Né@é5r")r+r.r/ÚNotImplementedError©r(ÚbitsrrrÚuniform32_from_uintHsr5cCs$|dkrt|ƒS|dkr t|ƒSdS)N)r0é?r1r")Úuniform_from_uint64Úuniform_from_uint32r3rrrÚuniform_from_uintSsr9cCs|t d¡?dS)Né g <)rr&r-rrrr7Zsr7cCs`t t|ƒd¡}tdt|ƒdƒD]8}||d?}||dd?}|d|d||d<q"|S)NérérégAg@C)rÚemptyÚlenÚrange)r(ÚoutÚiÚaÚbrrrr8^s  r8cCs| tj¡dS)Nçð?)ÚviewrÚdoubler-rrrÚuniform_from_dsfmtgsrHc
CsÜ|dkrt|ƒ}n|dkr$t|ƒ}nt|ƒ}g}d}d}}t|ƒ|krÐd}|dks\|dkršd||d}d||dd}||||}|d7}qLt d    t |¡|¡}    | |    |¡| |    |¡q<|d|…S)
N)r0r6r"rçr;rEg@rgÀ)r7r8rHr?rÚsqrtÚlogÚappend)
r(Únr4ZdoublesÚgaussÚlocÚx1Zx2Zr2ÚfrrrÚgauss_from_uintks&
 
 
rRcCsšddlm}m}m}ttdƒddd}| d¡tf|jŽ}t|j|jƒt|j    |j    ƒt
t |ƒt
t |ƒ|ƒ}t
t |j dƒt| d¡ƒdks–t‚dS)Nr)Ú ISeedSequenceÚISpawnableSeedSequenceÚSeedlessSeedSequenceé
)rr;r=)Z    spawn_keyZ    pool_size)Znumpy.random.bit_generatorrSrTrUr r@ÚspawnÚstaterZn_children_spawnedrÚ    TypeErrorr2Zgenerate_stater?r)rSrTrUÚs1Ús2ÚdummyrrrÚtest_seedsequence„s
 
 
r]c@sÒeZdZejZiZZedd„ƒZ    edd„ƒZ
dd„Z dd„Z d    d
„Z d d „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)Nr0)
r    Ú bit_generatorr4rr&r$rYÚseed_error_typeÚinvalid_init_typesÚinvalid_init_values©ÚclsrrrÚ setup_class›s zBase.setup_classc
CsŠt|ƒx}| ¡}| d¡}dd„|dd…Dƒ}g}|D]"}| t| d¡d ¡dƒ¡q:|tj||jddœW5QR£SQRXdS)    Nú,cSsg|]}t| ¡dƒ‘qS)r)ÚintÚstrip)Ú.0ÚsrrrÚ
<listcomp>©sz"Base._read_csv.<locals>.<listcomp>réÿÿÿÿrr#)ÚseedÚdata)    ÚopenÚreadlineÚsplitrLrgrhrr'r$)rdÚfilenameÚcsvrmrnÚlinerrrÚ    _read_csv¤s
 
 zBase._read_csvcCs„|j|jdŽ}| d¡}t||jdƒ|j|jdŽ}| ¡}t||jddƒ|j|jdŽ}| d¡}t||jdƒdS)Nrméèrnr)r_Údata1Ú
random_rawrÚdata2©Úselfr_ZuintsrrrÚtest_raw¯s
 
z Base.test_rawcCsF|j|jdŽ}|jdd}|dks(t‚|jddd}|dksBt‚dS)NrmF)Úoutputrv)r_rwrxrrzrrrÚ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érmrn)r r_rwÚstandard_normalrrRr4ry)r{rMÚrsrNrrrÚ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)Nrmrn) rr_rwr9r4Úrandomr?rrr$rÚfloat64ry©r{rÚvalsZuniformsrrrÚtest_uniform_doubleÏs
 
zBase.test_uniform_doublecCs¨t|j|jdŽƒ}t|jd|jƒ}|jt|ƒtjd}t    ||ƒt
|j tjƒt|j|j dŽƒ}t|j d|jƒ}|jt|ƒtjd}t    ||ƒt
|j tjƒdS)Nrmrnr#) rr_rwr5r4rƒr?rrrrr$ryr…rrrÚtest_uniform_floatÜs
 
zBase.test_uniform_floatcCsLt|j|jdŽƒ}dt|ƒks$t‚t|ƒd› ¡ dd¡t|ƒksHt‚dS©Nrmrz#xÚXr()rr_rwÚreprrÚidr)Úreplace©r{rrrrÚ    test_représzBase.test_reprcCsdt|j|jdŽƒ}dt|ƒks$t‚t|jjƒt|ƒks<t‚t|ƒd› ¡ dd¡t|ƒks`t‚dSr‰)    rr_rwÚstrrÚ__name__rŒr)rrŽrrrÚtest_strîsz Base.test_strc    Cs–ddl}|j|jdŽ}|j}| |¡}| |¡}|j}tt|ƒ d¡t|ƒ d¡ƒ||k    sbt    ‚t
||ƒt dƒ}| | |¡¡}t |j|jƒdS)Nrrmrvéd) Úpickler_rwrXÚdumpsÚloadsrrr€rrr r)    r{r”r_rXZ
bitgen_pklZreloadedZreloaded_stateÚssZaarrrÚ test_pickleôs
 
 ÿ 
zBase.test_picklec    Cs2|j|jdŽ}t t¡dh|_W5QRXdS)NrmÚ1)r_rwÚpytestÚraisesrYrX©r{r_rrrÚtest_invalid_state_types zBase.test_invalid_state_typec    Cs>|j|jdŽ}|j}d|d<t t¡ ||_W5QRXdS)NrmZotherBitGeneratorr_)r_rwrXršr›Ú
ValueError)r{r_rXrrrÚtest_invalid_state_value
s
 zBase.test_invalid_state_valuec
Cs4|j}|jD]"}t t¡||ŽW5QRXq dSr)r_raršr›rY©r{r_ÚstrrrÚtest_invalid_init_types
 zBase.test_invalid_init_typec
Cs8|j}|jD]&}t ttf¡||ŽW5QRXq dSr)r_rbršr›ržÚ OverflowErrorr rrrÚtest_invalid_init_valuess
zBase.test_invalid_init_valuesc    CsL|j|jdŽ}| d¡| dd¡t t¡| dd¡W5QRXdS)NrmrrGÚint32)r_rwZ
_benchmarkršr›ržrœrrrÚtest_benchmarks
 
  zBase.test_benchmarkzcffi not available)ÚreasoncCs:|j|jdŽ}|j}t|tƒs$t‚|j}||ks6t‚dS©Nrm)r_rwÚcffirrr)r{r_Zcffi_interfaceZother_cffi_interfacerrrÚ    test_cffi$s
zBase.test_cffizctypes not availablecCs:|j|jdŽ}|j}t|tƒs$t‚|j}||ks6t‚dSr¨)r_rwÚctypesrrr)r{r_Zctypes_interfaceZother_ctypes_interfacerrrÚ test_ctypes,s
zBase.test_ctypescCs,|j|jdŽ}|j}| ¡}t||ƒdSr¨)r_rwrXÚ __getstate__r)r{r_rXZ    alt_staterrrÚ test_getstate4szBase.test_getstateN) r‘Ú
__module__Ú __qualname__rr&r$ryrwÚ classmethodrerur|r~r‚r‡rˆrr’r˜rrŸr¢r¤r¦ršÚmarkZskipifÚ MISSING_CFFIrªÚMISSING_CTYPESr¬r®rrrrr^—s0
 
 
 
 
r^c@s eZdZedd„ƒZdd„ZdS)Ú
TestPhiloxcCsbt|_d|_tj|_| ttdƒ¡|_    | ttdƒ¡|_
t |_ g|_ dddddddfg|_dS)    Nr0z./data/philox-testset-1.csvz./data/philox-testset-2.csv)rNr©rlr;ir)r r_r4rr&r$rurÚpwdrwryrYr`rarbrcrrrre<sÿÿzTestPhilox.setup_classcCsF|j|jdŽ}|j}|j|dd|ddd}t|j|jƒdS)NrmrXÚcounterr)r¸r)r_rwrXr)r{r_rXZkeyedrrrÚ test_set_keyIs 
ÿzTestPhilox.test_set_keyN)r‘r¯r°r±rer¹rrrrrµ;s
rµc@s(eZdZedd„ƒZdd„Zdd„ZdS)Ú    TestPCG64cCs^t|_d|_tj|_| ttdƒ¡|_    | ttdƒ¡|_
t t f|_ ddgfdg|_dg|_dS)Nr0z./data/pcg64-testset-1.csvz./data/pcg64-testset-2.csv©gš™™™™™    @©rNr¶)r    r_r4rr&r$rurr·rwryržrYr`rarbrcrrrreRs
zTestPCG64.setup_classcCs¢t|j|jdŽƒ}|jj}d}|j |¡| d¡}||j_|j dd|¡| d¡}||j_|j ddd|¡| d¡}||ks’t‚||ksžt‚dS©Nrml÷ÿÿÿPAOi_n¼žrVr;逩rr_rwrXÚadvanceÚintegersr©r{rrXÚstepZval_negZval_posZval_bigrrrÚtest_advance_symmetry]s 
 
 
 zTestPCG64.test_advance_symmetrycCslt| d¡ƒ}|j}|jd}d}|d|ks2t‚| tdd„dDƒƒ¡|jd}d}|d|ksht‚dS)Nìï%”@
rXì    Ír%4= KÆv±uÅ1¹/Øcss|]}d|VqdS©r;Nr©rirBrrrÚ    <genexpr>rsz/TestPCG64.test_advange_large.<locals>.<genexpr>©é`r0r"r,rér;rl    ÿ@H}.|z³KLfbe©rr_rXrrÀÚsum©r{rZpcgrXZ initial_stateZadvanced_staterrrÚtest_advange_largels
 
zTestPCG64.test_advange_largeN©r‘r¯r°r±rerÄrÐrrrrrºQs
 
rºc@s(eZdZedd„ƒZdd„Zdd„ZdS)Ú TestPCG64DXSMcCs^t|_d|_tj|_| ttdƒ¡|_    | ttdƒ¡|_
t t f|_ ddgfdg|_dg|_dS)Nr0z./data/pcg64dxsm-testset-1.csvz./data/pcg64dxsm-testset-2.csvr»r¼r¶)r
r_r4rr&r$rurr·rwryržrYr`rarbrcrrrreys
zTestPCG64DXSM.setup_classcCs¢t|j|jdŽƒ}|jj}d}|j |¡| d¡}||j_|j dd|¡| d¡}||j_|j ddd|¡| d¡}||ks’t‚||ksžt‚dSr½r¿rÂrrrrĄs 
 
 
 z#TestPCG64DXSM.test_advance_symmetrycCslt| d¡ƒ}|j}|j}d}|dd|ks2t‚| tdd„dDƒƒ¡|jd}d}|d|ksht‚dS)NrÅrÆrXcss|]}d|VqdSrÇrrÈrrrrəsz3TestPCG64DXSM.test_advange_large.<locals>.<genexpr>rÊl    oF‚    œ[UmO1X·9}ÐrÍrÏrrrrГs
z TestPCG64DXSM.test_advange_largeNrÑrrrrrÒxs
 
rÒc@s(eZdZedd„ƒZdd„Zdd„ZdS)Ú TestMT19937cCsPt|_d|_tj|_| ttdƒ¡|_    | ttdƒ¡|_
t |_ g|_ dg|_dS)Nr"z./data/mt19937-testset-1.csvz./data/mt19937-testset-2.csvr¶)rr_r4rrr$rurr·rwryržr`rarbrcrrrre szTestMT19937.setup_classcCs”tt|jt tjg¡ƒtt|jt tj g¡ƒtt|jt tjtj g¡ƒtt|jt dtjg¡ƒtt|jtjgƒtt|jdtjgƒdS)Nr)rrYr_rr'Ú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)Nrmir_rXrÚpos)rrI)rr_rwrXrÁr)r{rr_rXZdesiredÚtuprrrrÚtest_state_tuple³s
 
ÿ
 
 
zTestMT19937.test_state_tupleN)r‘r¯r°r±rerÕrØrrrrrӟs
 
rÓc@seZdZedd„ƒZdS)Ú    TestSFC64cCs^t|_d|_tj|_| ttdƒ¡|_    | ttdƒ¡|_
t t f|_ ddgfdg|_dg|_dS)Nr0z./data/sfc64-testset-1.csvz./data/sfc64-testset-2.csvr»r¼r¶)rr_r4rr&r$rurr·rwryržrYr`rarbrcrrrreÄsÿÿ
zTestSFC64.setup_classN)r‘r¯r°r±rerrrrrÙÃsrÙc@seZdZdd„Zdd„ZdS)ÚTestDefaultRNGcCs4dddddgffD]}t|Ž}t|jtƒst‚qdS)Nrr)éÒrÛi.)rrr_r    r)r{ÚargsÚrgrrrÚ    test_seedÓszTestDefaultRNG.test_seedcCsBtƒ}t|ƒ}|j|kst‚t|ƒ}||ks0t‚|j|ks>t‚dSr)r rr_r)r{ÚbgrÝZrg2rrrÚtest_passthroughØs  zTestDefaultRNG.test_passthroughN)r‘r¯r°rÞràrrrrrÚÒsrÚ)7ÚosÚos.pathrÚsysÚnumpyrZ numpy.testingrrrrršZ numpy.randomrrr    r
r r r rrZnumpy.random._commonrr©r³Ú ImportErrorr«r´ÚflagsÚoptimizeÚpathÚdirnameÚabspathÚ__file__r·rr!r+r.r/r5r9r7r8rHrRr]r^rµrºrÒrÓrÙrÚrrrrÚ<module>sP , 
 
 
         %''$