Uname: Linux web3.us.cloudlogin.co 5.10.226-xeon-hst #2 SMP Fri Sep 13 12:28:44 UTC 2024 x86_64
Software: Apache
PHP version: 8.1.31 [ PHP INFO ] PHP os: Linux
Server Ip: 162.210.96.117
Your Ip: 18.188.221.45
User: edustar (269686) | Group: tty (888)
Safe Mode: OFF
Disable Function:
NONE

name : test_hash.cpython-310.pyc
o

`b�-�@s�ddlZddlZddlZddlZddlmZddlmZejdkZ	d8dd�Z
dd	�Zd
d�ZGdd
�d
ej
�ZejZGdd�de�ZdZGdd�de�ZGdd�de�ZGdd�de�ZGdd�dee�ZGdd�dee�ZGdd�de�ZGdd�dej
�ZGdd �d e�ZGd!d"�d"ej
�ZGd#d$�d$�ZGd%d&�d&e�ZGd'd(�d(eej
�ZGd)d*�d*eej
�Z Gd+d,�d,eej
�Z!Gd-d.�d.e�Z"Gd/d0�d0e"ej
�Z#Gd1d2�d2e"ej
�Z$Gd3d4�d4e"ej
�Z%Gd5d6�d6ej
�Z&e'd7kr�e�(�dSdS)9�N)�assert_python_ok)�Hashable��cCsN|dkrt|�St|�}t|�D]}d|dd@}|d?d@||<qt|�S)zLinear congruential generatorri�CiÞ&��r�)�bytes�	bytearray�range)�x�length�out�i�r�7/usr/local/python-3.10/lib/python3.10/test/test_hash.py�lcgsrcCsfd|krdksJ�J�|dkr|d}n|}||d?Ad@}|dkr-|d}||fS|}||fS)z*Convert SipHash24 output to Py_hash_t
    rll����� l��rrr)Zuint64Zint64Zuint32Zint32rrr�	pysiphashs
�rcCs&tjjdv}d}|r|St�|�|�S)z8Skip decorator for tests that depend on SipHash24 or FNV>�	siphash24�fnvzRequires SipHash24 or FNV)�sys�	hash_info�	algorithm�unittest�skip)�test�ok�msgrrr�skip_unless_internalhash+src@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�HashEqualityTestCasecGs@ttt|��}|dd�D]}||dkr|�d|f�q
dS)N�rzhashed values differ: %r)�list�map�hashZfail)�selfZobjlistZhashed�hrrr�	same_hash4s��zHashEqualityTestCase.same_hashcCs>|�dddd�|�ddd�|�ddd	�|�d
dd�dS)
Nr g�?y�?r�y���g�y����g�y�)r&�r$rrr�test_numeric_literals<sz*HashEqualityTestCase.test_numeric_literalsc	Cs�|�td�td�td�td�td�td��|�td�td��|�td�td��|�td�td��|�td�td��|�td�td��|�td	�td	��dS)
Nr �1z1.0i�i�rll����l�r&�int�float�complexr*rrr�test_coerced_integersBs�z*HashEqualityTestCase.test_coerced_integerscCs.|�td�td��|�td�tdd��dS)Ng�쏈�b=~g�?r'r-r*rrr�test_coerced_floatsMsz(HashEqualityTestCase.test_coerced_floatscCs`dd}td�D]%}td�D]}||d|�}t|�|d|�}|�t|�t|��qqdS)Ns#123456789abcdefghijklmnopqrstuvwxyz�r)r
�
memoryview�assertEqualr#)r$�br�jZalignedZ	unalignedrrr�test_unaligned_buffersQs��z+HashEqualityTestCase.test_unaligned_buffersN)�__name__�
__module__�__qualname__r&r+r1r2r8rrrrr2src@�eZdZdS)�DefaultHashN�r9r:r;rrrrr=]�r=�*c@�eZdZdd�ZdS)�	FixedHashcCstS�N)�_FIXED_HASH_VALUEr*rrr�__hash__aszFixedHash.__hash__N�r9r:r;rErrrrrB`�rBc@rA)�OnlyEqualitycCs||uSrCr�r$�otherrrr�__eq__e�zOnlyEquality.__eq__N)r9r:r;rKrrrrrHdrGrHc@rA)�OnlyInequalitycCs||uSrCrrIrrr�__ne__irLzOnlyInequality.__ne__N)r9r:r;rNrrrrrMhrGrMc@r<)�InheritedHashWithEqualityNr>rrrrrOlr?rOc@r<)�InheritedHashWithInequalityNr>rrrrrPmr?rPc@seZdZdZdS)�NoHashNrFrrrrrQosrQc@s`eZdZe�e�e�gZe�e�e	�gZ
e�e�gZ
dd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�HashInheritanceTestCasecCs$|jD]}|�t|�t|��qdSrC)�default_expectedr5r#�
_default_hash�r$�objrrr�test_default_hashs
�z)HashInheritanceTestCase.test_default_hashcCs |jD]
}|�t|�t�qdSrC)�fixed_expectedr5r#rDrUrrr�test_fixed_hash�s
�z'HashInheritanceTestCase.test_fixed_hashcCs|jD]	}|�tt|�qdSrC)�error_expectedZassertRaises�	TypeErrorr#rUrrr�test_error_hash�s
�z'HashInheritanceTestCase.test_error_hashcCs&|j|j}|D]}|�|t�qdSrC)rSrXZassertIsInstancer)r$ZobjectsrVrrr�
test_hashable�s��z%HashInheritanceTestCase.test_hashablecCs|jD]}|�|t�qdSrC)rZZassertNotIsInstancerrUrrr�test_not_hashable�s
�z)HashInheritanceTestCase.test_not_hashableN)r9r:r;�objectr=rMrSrBrOrPrXrQrHrZrWrYr\r]r^rrrrrRrs"���rRc@s$eZdZed�Zdd�Zdd�ZdS)�DefaultIterSeq�
cCs
t|j�SrC)�len�seqr*rrr�__len__��
zDefaultIterSeq.__len__cCs
|j|SrC)rc)r$�indexrrr�__getitem__�rezDefaultIterSeq.__getitem__N)r9r:r;r
rcrdrgrrrrr`�sr`c@s6eZdZeed��ee��edd�d�gZdd�ZdS)�HashBuiltinsTestCaseracCsdS)Nrrrrrr�<lambda>�szHashBuiltinsTestCase.<lambda>rcCs*tj}|jD]}|�t|�||��qdSrC)r_rE�hashes_to_checkr5r#)r$rTrVrrr�test_hashes�s
�z HashBuiltinsTestCase.test_hashesN)	r9r:r;�	enumerater
�iterr`rjrkrrrrrh�s
�rhc@s&eZdZdd�Zddd�Zdd�ZdS)	�HashRandomizationTestscC�d|S)Nzprint(hash(eval(%a)))r�r$�repr_rrr�get_hash_command�rLz'HashRandomizationTests.get_hash_commandNcCs`tj��}d|d<|durt|�|d<n|�dd�td|�|�fi|��}|d��}t|�S)NTZ
__cleanenvZPYTHONHASHSEEDz-cr )	�os�environ�copy�str�poprrr�stripr.)r$rq�seed�envr
�stdoutrrr�get_hash�s

��zHashRandomizationTests.get_hashcCs0|j|jdd�}|j|jdd�}|�||�dS)N�random�ry)r|rq�assertNotEqual)r$Zrun1Zrun2rrr�test_randomized_hash�sz+HashRandomizationTests.test_randomized_hashrC)r9r:r;rrr|r�rrrrrn�s
rnc@s�eZdZdZdZgd�gd�ggd�gd�gd�gd�gd�ggd	�gd
�gd�gd�gd
�gd�Zdd�Zdd�Zedd��Z	edd��Z
dS)� StringlikeHashRandomizationTestsN)�\�r�r�r�)iL̇�lLL//+�?iTS�l����qU:~�@[)���pG��n�YD~r�r�)�S���jxY_oW�sr�r�)� ���� �/��lr�r�)i�Jkl�J�:�8`~i��l�����)�wJ�)i�Q	�l���� .�G�UJGiO{�l������]�D])�Г���P'ABS!r�r�)i����l����m]]�R�ii���l�����T�e])i�X0l�����'�W�=>0i�e�l�����;u�)i���lg,��gi5$f�l�����`�bTN�V)i� �l�����9�\R>|iQ���l�����kT<�h4)�djba33xrrcCs^|tjjkr	d}ntjj}tjdkrtrdnd}n
tjdks J�tr$dnd}|j|||S)Nr��littler r�big��)rr�cutoffr�	byteorder�IS_64BIT�known_hashes)r$Zpositionrr�platformrrr�get_expected_hash�s
z2StringlikeHashRandomizationTests.get_expected_hashcCs<|�dd�}|�|�|j�|�|�|j|jdd�|�dS)Nrr�r~)r�rr|rqr5)r$Zknown_hash_of_objrrr�test_null_hash�sz/StringlikeHashRandomizationTests.test_null_hashcCs(|�dd�}|�|j|jdd�|�dS)Nr r�r@r~)r�r5r|rq�r$r%rrrrYsz0StringlikeHashRandomizationTests.test_fixed_hashcCs6|jdurdS|�dd�}|�|j|jdd�|�dS)Nr��r@r~)�	repr_longr�r5r|r�rrr�test_long_fixed_hashs
z5StringlikeHashRandomizationTests.test_long_fixed_hash)r9r:r;rqr�r�r�r�rrYr�rrrrr��s2�	���'

r�c@s<eZdZed�Zed�Zed�Zedd��Zedd��Z	dS)	�StrHashRandomizationTests�abcZabcdefghijku
äú∑ℇcC�|�td�d�dS)N�r�r5r#r*rrr�test_empty_string�z+StrHashRandomizationTests.test_empty_stringcCsL|�dd�}|�|j|jdd�|�|�dd�}|�|j|jdd�|�dS)Nr��rr~�r@)r�r5r|�	repr_ucs2r�rrr�test_ucs2_string sz*StrHashRandomizationTests.test_ucs2_stringN)
r9r:r;�reprrqr�r�rr�r�rrrrr�s
r�c@s(eZdZed�Zed�Zedd��ZdS)�BytesHashRandomizationTestssabcsabcdefghijkcCr��N�rr�r*rrrr�,r�z-BytesHashRandomizationTests.test_empty_stringN)r9r:r;r�rqr�rr�rrrrr�'s
r�c@s eZdZdZdZedd��ZdS)� MemoryviewHashRandomizationTestszmemoryview(b'abc')zmemoryview(b'abcdefghijk')cCs|�ttd��d�dSr�)r5r#r4r*rrrr�5sz2MemoryviewHashRandomizationTests.test_empty_stringN)r9r:r;rqr�rr�rrrrr�0s
r�c@rA)�
DatetimeTestscCro)Nz import datetime; print(hash(%s))rrprrrrr:rLzDatetimeTests.get_hash_commandN)r9r:r;rrrrrrr�9rGr�c@seZdZee�ddd��ZdS)�DatetimeDateTestsi*ra�N)r9r:r;r��datetime�daterqrrrrr�=sr�c
@s&eZdZee�ddddddd��ZdS)	�DatetimeDatetimeTestsr r�r�r��r��N)r9r:r;r�r�rqrrrrr�@sr�c@seZdZee�d��ZdS)�DatetimeTimeTestsrN)r9r:r;r�r��timerqrrrrr�Csr�c@rA)�HashDistributionTestCasec	Cs�d}tdt|��D]S}|d|�}|j|d��=t�}t�}td�D]}t|t|��}|�|d@�|�|d@�q"|�t|�d|�|�t|�d|�Wd�n1sWwYq	dS)	NZabcdefghabcdefgr )�prefix��r�r3)r
rbZsubTest�setr#�chr�addZ
assertGreater)r$�baserr�Zs15Zs255�cr%rrr�test_hash_distributionIs���z/HashDistributionTestCase.test_hash_distributionN)r9r:r;r�rrrrr�Gsr��__main__)r))r�rsrrZtest.support.script_helperr�collections.abcr�maxsizer�rrrZTestCaserr_rErTr=rDrBrHrMrOrPrQrRr`rhrnr�r�r�r�r�r�r�r�r�r9�mainrrrr�<module>sT


*%Q��	�	�
© 2025 GrazzMean