python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_hash.cpython-311.opt-1.pyc

et0fddlZddlZddlZddlZddlmZddlmZejdkZ	d5dZ
dZdZGd	d
ej
ZejZGddeZd
ZGddeZGddeZGddeZGddeeZGddeeZGddeZGddej
ZGddeZGddej
ZGd d!ZGd"d#eZGd$d%eej
ZGd&d'eej
Z Gd(d)eej
Z!Gd*d+eZ"Gd,d-e"ej
Z#Gd.d/e"ej
Z$Gd0d1e"ej
Z%Gd2d3ej
Z&e'd4krej(dSdS)6N)assert_python_ok)Hashablec|dkrt|St|}t|D]}d|zdzdz}|dz	dz||<t|S)zLinear congruential generatorriCiÞ&r)bytes	bytearrayrange)xlengthoutis    B/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_hash.pylcgrslAvvV}}
F

C
6]]""
aZ'
!Z/r'T!A::cX|dkr|dz
}n|}||dz	zdz}|dkr|dz
}n|}||fS)z*Convert SipHash24 output to Py_hash_t
    ll lrr)uint64int64uint32int32s    r	pysiphashrsY

'"v|#z
1F

'"%<rcntjjdv}d}|r|ntj||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
0C344-8=--d333rc,eZdZdZdZdZdZdZdS)HashEqualityTestCasecttt|}|ddD]&}||dkr|d|'dS)Nrzhashed values differ: )listmaphashfail)selfobjlisthashedhs    r	same_hashzHashEqualityTestCase.same_hash4sgc$(())	C	CAF1I~~			ABBB	C	Crc|dddd|ddd|ddd	|d
dddS)
Nr,g?y?rygygy)r5r1s rtest_numeric_literalsz*HashEqualityTestCase.test_numeric_literals<sbq!S(+++q#x(((r4+++r4+++++rc
|tdtdtdtdtdtd|tdtd|tdtd|tdtd|tdtd|tdtd|td	td	dS)
Nr,1z1.0iirlllr5intfloatcomplexr:s rtest_coerced_integersz*HashEqualityTestCase.test_coerced_integersBss1vvs1vvuQxx3xxu	/	/	/s6{{E&MM222s7||U7^^444s7||U7^^444s5zz5<<000s6{{E&MM222s5zz5<<00000rc|tdtd|tdtdddS)Ng쏈b=~g?r7r>r:s rtest_coerced_floatsz(HashEqualityTestCase.test_coerced_floatsMsLs8}}eHoo666uSzz73#4#455555rcddz}tdD]k}tdD]Y}||d|z}t||d|z}|t|t|ZldS)Ns#123456789abcdefghijklmnopqrstuvwxyzr)r
memoryviewassertEqualr/)r1brjaligned	unaligneds      rtest_unaligned_buffersz+HashEqualityTestCase.test_unaligned_buffersQs
3S8r	A	AA2YY
A
AAc!eG*&qMM!CE'2	  gY@@@@
A	A	ArN)__name__
__module____qualname__r5r;rBrDrMrrrr*r*2sgCCC,,,	1	1	1666AAAAArr*ceZdZdS)DefaultHashNrNrOrPrrrrRrR]rrR*ceZdZdZdS)	FixedHashctSN)_FIXED_HASH_VALUEr:s r__hash__zFixedHash.__hash__as  rNrNrOrPr[rrrrWrW`#!!!!!rrWceZdZdZdS)OnlyEqualityc
||uSrYrr1others  r__eq__zOnlyEquality.__eq__esu}rN)rNrOrPrcrrrr_r_ds#rr_ceZdZdZdS)OnlyInequalityc
||uSrYrras  r__ne__zOnlyInequality.__ne__is
5  rN)rNrOrPrgrrrrerehr]rreceZdZdS)InheritedHashWithEqualityNrSrrrririlrTrriceZdZdS)InheritedHashWithInequalityNrSrrrrkrkmrTrrkceZdZdZdS)NoHashNr\rrrrmrmosHHHrrmceZdZeeegZeee	gZ
eegZ
dZdZdZdZdZdS)HashInheritanceTestCasecz|jD]2}|t|t|3dSrY)default_expectedrHr/
_default_hashr1objs  rtest_default_hashz)HashInheritanceTestCase.test_default_hashsE(	<	<CT#YY
c(:(:;;;;	<	<rcj|jD]*}|t|t+dSrY)fixed_expectedrHr/rZrss  rtest_fixed_hashz'HashInheritanceTestCase.test_fixed_hashs>&	;	;CT#YY(9::::	;	;rc\|jD]#}|tt|$dSrY)error_expectedassertRaises	TypeErrorr/rss  rtest_error_hashz'HashInheritanceTestCase.test_error_hashs9&	4	4Cis3333	4	4rcd|j|jz}|D]}||tdSrY)rqrwassertIsInstancer)r1objectsrts   r
test_hashablez%HashInheritanceTestCase.test_hashablesG(&'	1	1C!!#x0000	1	1rcP|jD]}||tdSrY)rzassertNotIsInstancerrss  rtest_not_hashablez)HashInheritanceTestCase.test_not_hashables7&	4	4C$$S(3333	4	4rN)rNrOrPobjectrRrerqrWrirkrwrmr_rzrurxr}rrrrrrorors#

&(( ikk//111133Nfhh"lnnN<<<;;;44411144444rroc0eZdZedZdZdZdS)DefaultIterSeq
c*t|jSrY)lenseqr:s r__len__zDefaultIterSeq.__len__s48}}rc|j|SrY)r)r1indexs  r__getitem__zDefaultIterSeq.__getitem__sxrN)rNrOrPrrrrrrrrrs?
%))CrrczeZdZeedeeeddgZdZdS)HashBuiltinsTestCasercdS)Nrrrrr<lambda>zHashBuiltinsTestCase.<lambda>sArrctj}|jD].}|t	|||/dSrY)rr[hashes_to_checkrHr/)r1rrrts   rtest_hashesz HashBuiltinsTestCase.test_hashessN
'	<	<CT#YY

c(:(:;;;;	<	<rN)	rNrOrP	enumerateriterrrrrrrrrse yr++tNN,,--tIIq))O
<<<<<rrc"eZdZdZddZdZdS)HashRandomizationTestscd|zS)Nzprint(hash(eval(%a)))rr1repr_s  rget_hash_commandz'HashRandomizationTests.get_hash_commands
&..rNc2tj}d|d<|t||d<n|ddtd||fi|}|d}t|S)NT
__cleanenvPYTHONHASHSEEDz-cr,)	osenvironcopystrpoprrstripr?)r1rseedenvrstdouts      rget_hashzHashRandomizationTests.get_hashsjoo L$'IIC !!GG$d+++$''..Q6{{rc||jd}||jd}|||dS)Nrandomr)rrassertNotEqual)r1run1run2s   rtest_randomized_hashz+HashRandomizationTests.test_randomized_hashsL}}TZh}77}}TZh}77D$'''''rrY)rNrOrPrrrrrrrrsF
///(((((rrc	eZdZdZdZgdgdggdgdgdgdgdggd	gd
gdgdgd
ggdgdgdgdgdgdZdZdZedZ	edZ
dS) 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}tjdkrt
rdnd}nt
rdnd}|j|||S)Nrlittler,r)r r!cutoffr"	byteorderIS_64BITknown_hashes)r1positionrr"platforms     rget_expected_hashz2StringlikeHashRandomizationTests.get_expected_hashshCM(((!II
/I=H$$$+qq!HH%+qq!H +H5h??rc|dd}|||j||||jd|dS)Nrrr)rrrrrH)r1known_hash_of_objs  rtest_null_hashz/StringlikeHashRandomizationTests.test_null_hash
sp 221a88	
DMM$*557HIII	
tz::<MNNNNNrc|dd}|||jd|dS)Nr,rrUr)rrHrrr1r4s  rrxz0StringlikeHashRandomizationTests.test_fixed_hashsG
""1a((tz;;Q?????rc|jdS|dd}|||jd|dS)NrrUr)	repr_longrrHrrs  rtest_long_fixed_hashz5StringlikeHashRandomizationTests.test_long_fixed_hashsR>!F""1b))t~B??CCCCCr)rNrOrPrrrrrr(rxrrrrrrscEI
:99NNN	
MLLNNNNNNQQQPPP
 
ONNNNNPPPOOORRR

"
"
"
#
#
#
#
#
#
"
"
"
#
#
#
C22Lh
@
@
@OOO@@@DDDDDrrc|eZdZedZedZedZedZedZ	dS)StrHashRandomizationTestsabcabcdefghijku
äú∑ℇcL|tdddS)NrrHr/r:s rtest_empty_stringz+StrHashRandomizationTests.test_empty_string)s$b1%%%%%rc|dd}|||jd||dd}|||jd|dS)NrrrrU)rrHr	repr_ucs2rs  rtest_ucs2_stringz*StrHashRandomizationTests.test_ucs2_string-s""1a((t~A>>BBB""1a((t~B??CCCCCrN)
rNrOrPreprrrrr(rrrrrrr#szDKKE]##I\""I&&&DDDDDrrcPeZdZedZedZedZdS)BytesHashRandomizationTestssabcsabcdefghijkcL|tdddSNrrrr:s rrz-BytesHashRandomizationTests.test_empty_string9s$cA&&&&&rN)rNrOrPrrrr(rrrrrr4sJDLLE^$$I'''''rrc,eZdZdZdZedZdS) MemoryviewHashRandomizationTestszmemoryview(b'abc')zmemoryview(b'abcdefghijk')cf|ttdddSr)rHr/rGr:s rrz2MemoryviewHashRandomizationTests.test_empty_stringBs,joo..22222rN)rNrOrPrrr(rrrrrr=s8 E,I33333rrceZdZdZdS)
DatetimeTestscd|zS)Nz import datetime; print(hash(%s))rrs  rrzDatetimeTests.get_hash_commandGs
1E99rN)rNrOrPrrrrrrFs#:::::rrcDeZdZeejdddZdS)DatetimeDateTestsi*rN)rNrOrPrdatetimedaterrrrrrJs-DtR,,--EEErrcLeZdZeejdddddddZdS)	DatetimeDatetimeTestsr,rrrrN)rNrOrPrrrrrrrrMs7D""1aAq!Q7788EEErrc@eZdZeejdZdS)DatetimeTimeTestsrN)rNrOrPrrtimerrrrrrPs)Dq!!""EEErrceZdZdZdS)HashDistributionTestCasec	Hd}tdt|D]}|d|}||5t}t}tdD]Q}t	|t|z}||dz||dzR|t|d||t|d|dddn#1swxYwYdS)	Nabcdefghabcdefgr,)prefixr	rF)rrsubTestsetr/chradd
assertGreater)r1baserrs15s255cr4s        rtest_hash_distributionz/HashDistributionTestCase.test_hash_distributionVsP q#d))$$	;	;A"1"XFV,,	
;	
;eeuus''AVc!ff_--AGGAG$$$HHQX&&&&""3s88Q777""3t99c6:::	
;	
;	
;	
;	
;	
;	
;	
;	
;	
;	
;	
;	
;	
;	
;	;	;sCDD	D	N)rNrOrPrrrrrrTs#;;;;;rr__main__)r))rrr r#test.support.script_helperrcollections.abcrmaxsizerrrr(TestCaser*rr[rrrRrZrWr_rerirkrmrorrrrrrrrrrrrrNmainrrr<module>rs]				



777777$$$$$$;$444'A'A'A'A'A8,'A'A'AT
&!!!!!!!!6!!!!!V!!!?>>>>	<>>>BBBBB)^BBBV!4!4!4!4!4h/!4!4!4JV	<	<	<	<	<8,	<	<	<((((((((8[D[D[D[D[D'=[D[D[D|DDDDD @ ( 1DDD"'''''"B"*"3'''33333'G'/'8333:::::*:::.....
x'8...99999M8+<999#####
x'8###;;;;;x0;;;$zHMOOOOOr