Your IP : 216.73.216.60


Current Path : /opt/alt/python38/lib64/python3.8/test/__pycache__/
Upload File :
Current File : //opt/alt/python38/lib64/python3.8/test/__pycache__/test_hash.cpython-38.opt-2.pyc

U

i�f�-�@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'd7k�r�e�(�dS)9�N)�assert_python_ok)�Hashable��cCsN|dkrt|�St|�}t|�D]$}d|dd@}|d?d@||<q t|�S)Nri�CiÞ&��r�)�bytes�	bytearray�range)�x�length�out�i�r�3/opt/alt/python38/lib64/python3.8/test/test_hash.py�lcgsrcCsD|dkr|d}n|}||d?Ad@}|dkr8|d}n|}||fS)Nl����l� l��rrr)Zuint64Zint64Zuint32Zint32rrr�	pysiphashs

rcCs&tjjdk}d}|r|St�|�|�S)N>�fnv�	siphash24zRequires SipHash24 or FNV)�sys�	hash_info�	algorithm�unittest�skip)Ztest�ok�msgrrr�skip_unless_internalhash+src@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�HashEqualityTestCasecGs@ttt|��}|dd�D] }||dkr|�d|f�qdS)N�rzhashed values differ: %r)�list�map�hashZfail)�selfZobjlistZhashed�hrrr�	same_hash4szHashEqualityTestCase.same_hashcCs>|�dddd�|�ddd�|�ddd	�|�d
dd�dS)
Nrg�?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]J}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*r0r1r7rrrrr2s
rc@seZdZdS)�DefaultHashN�r8r9r:rrrrr;]sr;�*c@seZdZdd�ZdS)�	FixedHashcCstS�N)�_FIXED_HASH_VALUEr)rrr�__hash__aszFixedHash.__hash__N�r8r9r:rArrrrr>`sr>c@seZdZdd�ZdS)�OnlyEqualitycCs||kSr?r�r#�otherrrr�__eq__eszOnlyEquality.__eq__N)r8r9r:rFrrrrrCdsrCc@seZdZdd�ZdS)�OnlyInequalitycCs||k	Sr?rrDrrr�__ne__iszOnlyInequality.__ne__N)r8r9r:rHrrrrrGhsrGc@seZdZdS)�InheritedHashWithEqualityNr<rrrrrIlsrIc@seZdZdS)�InheritedHashWithInequalityNr<rrrrrJmsrJc@seZdZdZdS)�NoHashNrBrrrrrKosrKc@s`eZdZe�e�e�gZe�e�e	�gZ
e�e�gZ
dd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�HashInheritanceTestCasecCs$|jD]}|�t|�t|��qdSr?)�default_expectedr4r"�
_default_hash�r#�objrrr�test_default_hashs
z)HashInheritanceTestCase.test_default_hashcCs |jD]}|�t|�t�qdSr?)�fixed_expectedr4r"r@rOrrr�test_fixed_hash�s
z'HashInheritanceTestCase.test_fixed_hashcCs|jD]}|�tt|�qdSr?)�error_expectedZassertRaises�	TypeErrorr"rOrrr�test_error_hash�s
z'HashInheritanceTestCase.test_error_hashcCs&|j|j}|D]}|�|t�qdSr?)rMrRZassertIsInstancer)r#ZobjectsrPrrr�
test_hashable�s
�z%HashInheritanceTestCase.test_hashablecCs|jD]}|�|t�qdSr?)rTZassertNotIsInstancerrOrrr�test_not_hashable�s
z)HashInheritanceTestCase.test_not_hashableN)r8r9r:�objectr;rGrMr>rIrJrRrKrCrTrQrSrVrWrXrrrrrLrs ���rLc@s$eZdZed�Zdd�Zdd�ZdS)�DefaultIterSeq�
cCs
t|j�Sr?)�len�seqr)rrr�__len__�szDefaultIterSeq.__len__cCs
|j|Sr?)r])r#�indexrrr�__getitem__�szDefaultIterSeq.__getitem__N)r8r9r:r
r]r^r`rrrrrZ�srZc@s6eZdZeed��ee��edd�d�gZdd�ZdS)�HashBuiltinsTestCaser[cCsdS)Nrrrrrr�<lambda>��zHashBuiltinsTestCase.<lambda>rcCs*tj}|jD]}|�t|�||��qdSr?)rYrA�hashes_to_checkr4r")r#rNrPrrr�test_hashes�s
z HashBuiltinsTestCase.test_hashesN)	r8r9r:�	enumerater
�iterrZrdrerrrrra�s

�rac@s&eZdZdd�Zddd�Zdd�ZdS)	�HashRandomizationTestscCsd|S)Nzprint(hash(eval(%a)))r�r#�repr_rrr�get_hash_command�sz'HashRandomizationTests.get_hash_commandNcCs\tj��}d|d<|dk	r(t|�|d<n|�dd�td|�|�f|�}|d��}t|�S)NTZ
__cleanenvZPYTHONHASHSEEDz-cr)	�os�environ�copy�str�poprrk�stripr-)r#rj�seed�envr
�stdoutrrr�get_hash�s
��zHashRandomizationTests.get_hashcCs0|j|jdd�}|j|jdd�}|�||�dS)NZrandom�rr)rurj�assertNotEqual)r#Zrun1Zrun2rrr�test_randomized_hash�sz+HashRandomizationTests.test_randomized_hash)N)r8r9r:rkrurxrrrrrh�s
rhc
@s�eZdZdZdZddddgddddggddddgd	d
d	d
gddddgd
dddgddddggddddgddddgddddgdd d!d"gd#d$d%d&ggd'�Zd(d)�Zd*d+�Zed,d-��Z	ed.d/��Z
dS)0� StringlikeHashRandomizationTestsNi�\�iL̇�lLL//+�?iTS�l����qU:~�@[i��pGl�n�YD~i�Sl����jxY_oW�si� ��l� �/��li�Jkl�J�:�8`~i��l�����)�wJ�i�Q	�l���� .�G�UJGiO{�l������]�D]i�Г�l�P'ABS!i����l����m]]�R�ii���l�����T�e]i�X0l�����'�W�=>0i�e�l�����;u�i���lg,��gi5$f�l�����`�bTN�Vi� �l�����9�\R>|iQ���l�����kT<�h4)�djba33xrrcCsP|tjjkrd}ntjj}tjdkr2tr,dnd}ntr:dnd}|j|||S)Nrz�littlerr��)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|rv)r�rwrurjr4)r#Zknown_hash_of_objrrr�test_null_hash�sz/StringlikeHashRandomizationTests.test_null_hashcCs(|�dd�}|�|j|jdd�|�dS)Nrr|r=rv)r�r4rurj�r#r$rrrrSsz0StringlikeHashRandomizationTests.test_fixed_hashcCs6|jdkrdS|�dd�}|�|j|jdd�|�dS)Nr}�r=rv)�	repr_longr�r4rur�rrr�test_long_fixed_hashs
z5StringlikeHashRandomizationTests.test_long_fixed_hash)r8r9r:rjr�r�r�r�rrSr�rrrrry�sD

�	




��������'

ryc@s<eZdZed�Zed�Zed�Zedd��Zedd��Z	dS)	�StrHashRandomizationTests�abcZabcdefghijku
äú∑ℇcCs|�td�d�dS)N�r�r4r"r)rrr�test_empty_stringsz+StrHashRandomizationTests.test_empty_stringcCsL|�dd�}|�|j|jdd�|�|�dd�}|�|j|jdd�|�dS)Nr|�rrv�r=)r�r4ru�	repr_ucs2r�rrr�test_ucs2_string sz*StrHashRandomizationTests.test_ucs2_stringN)
r8r9r:�reprrjr�r�rr�r�rrrrr�s
r�c@s(eZdZed�Zed�Zedd��ZdS)�BytesHashRandomizationTestssabcsabcdefghijkcCs|�td�d�dS�Nrcrr�r)rrrr�,sz-BytesHashRandomizationTests.test_empty_stringN)r8r9r:r�rjr�rr�rrrrr�'sr�c@s eZdZdZdZedd��ZdS)� MemoryviewHashRandomizationTestszmemoryview(b'abc')zmemoryview(b'abcdefghijk')cCs|�ttd��d�dSr�)r4r"r3r)rrrr�5sz2MemoryviewHashRandomizationTests.test_empty_stringN)r8r9r:rjr�rr�rrrrr�0sr�c@seZdZdd�ZdS)�
DatetimeTestscCsd|S)Nz import datetime; print(hash(%s))rrirrrrk:szDatetimeTests.get_hash_commandN)r8r9r:rkrrrrr�9sr�c@seZdZee�ddd��ZdS)�DatetimeDateTestsi*r[�N)r8r9r:r��datetime�daterjrrrrr�=sr�c
@s&eZdZee�ddddddd��ZdS)	�DatetimeDatetimeTestsrr}r|r��r��N)r8r9r:r�r�rjrrrrr�@sr�c@seZdZee�d��ZdS)�DatetimeTimeTestsrN)r8r9r:r�r��timerjrrrrr�Csr�c@seZdZdd�ZdS)�HashDistributionTestCasec
Cs�d}tdt|��D]�}|d|�}|j|d��pt�}t�}td�D]0}t|t|��}|�|d@�|�|d@�qD|�t|�d|�|�t|�d|�W5QRXqdS)	NZabcdefghabcdefgr)�prefix��r�r2)r
r\ZsubTest�setr"�chr�addZ
assertGreater)r#�baserr�Zs15Zs255�cr$rrr�test_hash_distributionIsz/HashDistributionTestCase.test_hash_distributionN)r8r9r:r�rrrrr�Gsr��__main__)r))r�rlrrZtest.support.script_helperrZcollections.abcr�maxsizer�rrrZTestCaserrYrArNr;r@r>rCrGrIrJrKrLrZrarhryr�r�r�r�r�r�r�r�r8�mainrrrr�<module>sP


*%Q��	�