python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
test_hash.cpython-312.opt-1.pyc

Αet0\ddlZddlZddlZddlZddlmZddlmZejdkDZ	d4dZ
dZdZGdd	ejZej ZGd
deZdZGd
deZGddeZGddeZGddeeZGddeeZGddeZGddejZGddeZGddejZGdd ZGd!d"eZGd#d$eejZGd%d&eejZ Gd'd(eejZ!Gd)d*eZ"Gd+d,e"ejZ#Gd-d.e"ejZ$Gd/d0e"ejZ%Gd1d2ejZ&e'd3k(rejPyy)5N)assert_python_ok)Hashablec|dk(rt|St|}t|D]}d|zdzdz}|dz	dz||<t|S)zLinear congruential generatorriCiÞ&)bytes	bytearrayrange)xlengthoutis    B/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/test_hash.pylcgrsaAvV}
F
C
6]"
aZ'
!Z/r'T!A":cZ|dkDr|dz
}n|}||dz	zdz}|dkDr	|dz
}||fS|}||fS)z*Convert SipHash24 output to Py_hash_t
    ll lrr)uint64int64uint32int32s    r	pysiphashrs]

'"v|#z
1F

'"%<%<rc|tjjdv}d}|r|Stj||S)z8Skip decorator for tests that depend on SipHash24 or FNV>fnv	siphash13	siphash24z$Requires SipHash13, SipHash24 or FNV)sys	hash_info	algorithmunittestskip)testokmsgs   rskip_unless_internalhashr(+s:		 	 $E	EB
0C43-8==-d33rc*eZdZdZdZdZdZdZy)HashEqualityTestCasecttt|}|ddD]}||dk7s|jd|!y)Nrzhashed values differ: )listmaphashfail)selfobjlisthashedhs    r	same_hashzHashEqualityTestCase.same_hash4sFc$()	CAF1I~		AB	Crc|jdddd|jddd|jddd	|jd
ddy)
Nr,g?y?rygygy)r5r1s rtest_numeric_literalsz*HashEqualityTestCase.test_numeric_literals<sDq!S(+q#x(r4+r4+rc
L|jtdtdtdtdtdtd|jtdtd|jtdtd|jtdtd|jtdtd|jtdtd|jtd	td	y)
Nr,1z1.0iirlllr5intfloatcomplexr:s rtest_coerced_integersz*HashEqualityTestCase.test_coerced_integersBss1vs1vuQx3xu	/s6{E&M2s7|U7^4s7|U7^4s5z5<0s6{E&M2s5z5<0rc|jtdtd|jtdtddy)Ng쏈b=~g?r7r>r:s rtest_coerced_floatsz(HashEqualityTestCase.test_coerced_floatsMs1s8}eHo6uSz73#45rcddz}tdD]O}tdD]?}||d|z}t||d|z}|jt|t|AQy)Ns#123456789abcdefghijklmnopqrstuvwxyzr)r
memoryviewassertEqualr/)r1brjaligned	unaligneds      rtest_unaligned_buffersz+HashEqualityTestCase.test_unaligned_buffersQss
3S8r	AA2Y
AAc!e*&qM!CE2	  gY@
A	ArN)__name__
__module____qualname__r5r;rBrDrMrrrr*r*2sC,	16Arr*ceZdZy)DefaultHashNrNrOrPrrrrRrR]rrR*ceZdZdZy)	FixedHashctSN)_FIXED_HASH_VALUEr:s r__hash__zFixedHash.__hash__as  rNrNrOrPr[rrrrWrW`!rrWceZdZdZy)OnlyEqualityc
||uSrYrr1others  r__eq__zOnlyEquality.__eq__esu}rN)rNrOrPrcrrrr_r_dsrr_ceZdZdZy)OnlyInequalityc
||uSrYrras  r__ne__zOnlyInequality.__ne__is
5  rN)rNrOrPrgrrrrerehr]rreceZdZy)InheritedHashWithEqualityNrSrrrririlrTrriceZdZy)InheritedHashWithInequalityNrSrrrrkrkmrTrrkceZdZdZy)NoHashNr\rrrrmrmosHrrmceZdZeeegZeee	gZ
eegZ
dZdZdZdZdZy)HashInheritanceTestCasecn|jD]&}|jt|t|(yrY)default_expectedrHr/
_default_hashr1objs  rtest_default_hashz)HashInheritanceTestCase.test_default_hashs0((	<CT#Y
c(:;	<rcd|jD]!}|jt|t#yrY)fixed_expectedrHr/rZrss  rtest_fixed_hashz'HashInheritanceTestCase.test_fixed_hashs,&&	;CT#Y(9:	;rc\|jD]}|jtt|yrY)error_expectedassertRaises	TypeErrorr/rss  rtest_error_hashz'HashInheritanceTestCase.test_error_hashs)&&	4Cis3	4rcp|j|jz}|D]}|j|tyrY)rqrwassertIsInstancer)r1objectsrts   r
test_hashablez%HashInheritanceTestCase.test_hashables:((&&'	1C!!#x0	1rcR|jD]}|j|tyrY)rzassertNotIsInstancerrss  rtest_not_hashablez)HashInheritanceTestCase.test_not_hashables'&&	4C$$S(3	4rN)rNrOrPobjectrRrerqrWrirkrwrmr_rzrurxr}rrrrrrorors`#
&( k/113Nh"nN<;414rroc(eZdZedZdZdZy)DefaultIterSeq
c,t|jSrY)lenseqr:s r__len__zDefaultIterSeq.__len__s488}rc |j|SrY)r)r1indexs  r__getitem__zDefaultIterSeq.__getitem__sxxrN)rNrOrPrrrrrrrrrs
)CrrcZeZdZeedeeeddgZdZy)HashBuiltinsTestCasercy)Nrrrrr<lambda>zHashBuiltinsTestCase.<lambda>srrctj}|jD]#}|jt	|||%yrY)rr[hashes_to_checkrHr/)r1rrrts   rtest_hashesz HashBuiltinsTestCase.test_hashess9
''	<CT#Y
c(:;	<rN)	rNrOrP	enumerateriterrrrrrrrrs/ r+N,-Iq)O
<rrc eZdZdZddZdZy)HashRandomizationTestscd|zS)Nzprint(hash(eval(%a)))rr1repr_s  rget_hash_commandz'HashRandomizationTests.get_hash_commands
&..rNctjj}d|d<|t||d<n|j	ddtd|j
|fi|}|dj}t|S)NT
__cleanenvPYTHONHASHSEEDz-cr,)	osenvironcopystrpoprrstripr?)r1rseedenvrstdouts      rget_hashzHashRandomizationTests.get_hashs}jjoo L$'IC !GG$d+$''.Q6{rc|j|jd}|j|jd}|j||y)Nrandomr)rrassertNotEqual)r1run1run2s   rtest_randomized_hashz+HashRandomizationTests.test_randomized_hashs>}}TZZh}7}}TZZh}7D$'rrY)rNrOrPrrrrrrrrs
/(rrc	eZdZdZdZgdgdggdgdgdgdgdggd	gd
gdgdgd
ggdgdgdgdgdgdZdZdZedZ	edZ
y) StringlikeHashRandomizationTestsN)\rrr)iL̇lLL//+?iTSlqU:~@[)0&Owq!~rr)uuC-rr)|#||#8
^rr)i=վlBT='8i\el\e+=")i[l$E,;iwmHloa_gv)pGnYD~rr)SjxY_oWsrr)  /lrr)iJklJ:8`~il)wJ)iQ	l .GUJGiO{l]D])ГP'ABS!rr)ilm]]RiilTe])iX0l'W=>0iel;u)ilg,gi5$fl`bTNV)i l9\R>|iQlkT<h4)djba33xrrrc|tjjkrd}ntjj}tjdk(rt
rdnd}n
t
rdnd}|j|||S)Nrlittler,r)r r!cutoffr"	byteorderIS_64BITknown_hashes)r1positionrr"platforms     rget_expected_hashz2StringlikeHashRandomizationTests.get_expected_hashscCMM(((!I

//I==H$$q!H%q!H  +H5h??rc|jdd}|j|j|j||j	|j|jd|y)Nrrr)rrrrrH)r1known_hash_of_objs  rtest_null_hashz/StringlikeHashRandomizationTests.test_null_hash
sY 221a8	
DMM$**57HI	
tzz:<MNrc|jdd}|j|j|jd|y)Nr,rrUr)rrHrrr1r4s  rrxz0StringlikeHashRandomizationTests.test_fixed_hashs7
""1a(tzz;Q?rc|jy|jdd}|j|j|jd|y)NrrUr)	repr_longrrHrrs  rtest_long_fixed_hashz5StringlikeHashRandomizationTests.test_long_fixed_hashsB>>!""1b)t~~B?Cr)rNrOrPrrrrrr(rxrrrrrrsEI
:N	
MNNQP
 
ONPOR

"
#
#
"
#
C2Lh
@O@@DDrrc\eZdZedZedZedZedZedZ	y)StrHashRandomizationTestsabcabcdefghijku
äú∑ℇc:|jtddy)NrrHr/r:s rtest_empty_stringz+StrHashRandomizationTests.test_empty_string)sb1%rc|jdd}|j|j|jd||jdd}|j|j|jd|y)NrrrrU)rrHr	repr_ucs2rs  rtest_ucs2_stringz*StrHashRandomizationTests.test_ucs2_string-sh""1a(t~~A>B""1a(t~~B?CrN)
rNrOrPreprrrrr(rrrrrrr#sGKE]#I\"I&&DDrrc<eZdZedZedZedZy)BytesHashRandomizationTestssabcsabcdefghijkc:|jtddyNrrrr:s rrz-BytesHashRandomizationTests.test_empty_string9scA&rN)rNrOrPrrrr(rrrrrr4s'LE^$I''rrc$eZdZdZdZedZy) MemoryviewHashRandomizationTestszmemoryview(b'abc')zmemoryview(b'abcdefghijk')cL|jttddyr)rHr/rGr:s rrz2MemoryviewHashRandomizationTests.test_empty_stringBsjo.2rN)rNrOrPrrr(rrrrrr=s E,I33rrceZdZdZy)
DatetimeTestscd|zS)Nz import datetime; print(hash(%s))rrs  rrzDatetimeTests.get_hash_commandGs
1E99rN)rNrOrPrrrrrrFs:rrc@eZdZeej
dddZy)DatetimeDateTestsi*rN)rNrOrPrdatetimedaterrrrrrJstR,-ErrcHeZdZeejdddddddZy)	DatetimeDatetimeTestsr,rrrrN)rNrOrPrrrrrrrrMs&"""1aAq!Q78Errc<eZdZeej
dZy)DatetimeTimeTestsrN)rNrOrPrrtimerrrrrrPsq!"ErrceZdZdZy)HashDistributionTestCasec	d}tdt|D]}|d|}|j|5t}t}tdD]A}t	|t|z}|j
|dz|j
|dzC|jt|d||jt|d|dddy#1swYxYw)	Nabcdefghabcdefgr,)prefixr	rF)rrsubTestsetr/chradd
assertGreater)r1baserrs15s255cr4s        rtest_hash_distributionz/HashDistributionTestCase.test_hash_distributionVs q#d)$	;A"1XFV,	
;eus'AVc!f_-AGGAG$HHQX&'
""3s8Q7""3t9c6:	
;	
;	;	
;	
;sBCC"	N)rNrOrPrrrrrrTs;rr__main__)r))rrr r#test.support.script_helperrcollections.abcrmaxsizerrrr(TestCaser*rr[rrrRrZrWr_rerirkrmrorrrrrrrrrrrrrNmainrrr<module>rs	
7$;;$4'A8,,'AT
&!!6!V!?	<>B)^BV!4h//!4JV	<8,,	<((8[D'=[D|D @ ( 1 1D"'"B"*"3"3'3'G'/'8'83:*:.
x'8'8.9M8+<+<9#
x'8'8#;x00;$zHMMOr