Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /opt/cppython/lib/python3.8/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : //opt/cppython/lib/python3.8/test/__pycache__/test_hash.cpython-38.opt-1.pyc
U

>��g�-�@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)zLinear congruential generatorri�CiÞ&��r�)�bytes�	bytearray�range)�x�length�out�i�r�-/opt/cppython/lib/python3.8/test/test_hash.py�lcgsrcCsD|dkr|d}n|}||d?Ad@}|dkr8|d}n|}||fS)z*Convert SipHash24 output to Py_hash_t
    l����l� l��rrr)Zuint64Zint64Zuint32Zint32rrr�	pysiphashs

rcCs&tjjdk}d}|r|St�|�|�S)z8Skip decorator for tests that depend on SipHash24 or FNV>�fnv�	siphash24zRequires 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�qdS)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]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+r1r2r8rrrrr2s
rc@seZdZdS)�DefaultHashN�r9r:r;rrrrr<]sr<�*c@seZdZdd�ZdS)�	FixedHashcCstS�N)�_FIXED_HASH_VALUEr*rrr�__hash__aszFixedHash.__hash__N�r9r:r;rBrrrrr?`sr?c@seZdZdd�ZdS)�OnlyEqualitycCs||kSr@r�r$�otherrrr�__eq__eszOnlyEquality.__eq__N)r9r:r;rGrrrrrDdsrDc@seZdZdd�ZdS)�OnlyInequalitycCs||k	Sr@rrErrr�__ne__iszOnlyInequality.__ne__N)r9r:r;rIrrrrrHhsrHc@seZdZdS)�InheritedHashWithEqualityNr=rrrrrJlsrJc@seZdZdS)�InheritedHashWithInequalityNr=rrrrrKmsrKc@seZdZdZdS)�NoHashNrCrrrrrLosrLc@s`eZdZe�e�e�gZe�e�e	�gZ
e�e�gZ
dd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�HashInheritanceTestCasecCs$|jD]}|�t|�t|��qdSr@)�default_expectedr5r#�
_default_hash�r$�objrrr�test_default_hashs
z)HashInheritanceTestCase.test_default_hashcCs |jD]}|�t|�t�qdSr@)�fixed_expectedr5r#rArPrrr�test_fixed_hash�s
z'HashInheritanceTestCase.test_fixed_hashcCs|jD]}|�tt|�qdSr@)�error_expectedZassertRaises�	TypeErrorr#rPrrr�test_error_hash�s
z'HashInheritanceTestCase.test_error_hashcCs&|j|j}|D]}|�|t�qdSr@)rNrSZassertIsInstancer)r$ZobjectsrQrrr�
test_hashable�s
�z%HashInheritanceTestCase.test_hashablecCs|jD]}|�|t�qdSr@)rUZassertNotIsInstancerrPrrr�test_not_hashable�s
z)HashInheritanceTestCase.test_not_hashableN)r9r:r;�objectr<rHrNr?rJrKrSrLrDrUrRrTrWrXrYrrrrrMrs ���rMc@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)r9r:r;r
r^r_rarrrrr[�sr[c@s6eZdZeed��ee��edd�d�gZdd�ZdS)�HashBuiltinsTestCaser\cCsdS)Nrrrrrr�<lambda>��zHashBuiltinsTestCase.<lambda>rcCs*tj}|jD]}|�t|�||��qdSr@)rZrB�hashes_to_checkr5r#)r$rOrQrrr�test_hashes�s
z HashBuiltinsTestCase.test_hashesN)	r9r:r;�	enumerater
�iterr[rerfrrrrrb�s

�rbc@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�poprrl�stripr.)r$rk�seed�envr
�stdoutrrr�get_hash�s
��zHashRandomizationTests.get_hashcCs0|j|jdd�}|j|jdd�}|�||�dS)N�random�rs)rvrk�assertNotEqual)r$Zrun1Zrun2rrr�test_randomized_hash�sz+HashRandomizationTests.test_randomized_hash)N)r9r:r;rlrvrzrrrrri�s
ric
@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)Nr|�littler r��)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~rx)r�ryrvrkr5)r$Zknown_hash_of_objrrr�test_null_hash�sz/StringlikeHashRandomizationTests.test_null_hashcCs(|�dd�}|�|j|jdd�|�dS)Nr r~r>rx)r�r5rvrk�r$r%rrrrTsz0StringlikeHashRandomizationTests.test_fixed_hashcCs6|jdkrdS|�dd�}|�|j|jdd�|�dS)Nr�r>rx)�	repr_longr�r5rvr�rrr�test_long_fixed_hashs
z5StringlikeHashRandomizationTests.test_long_fixed_hash)r9r:r;rkr�r�r�r�rrTr�rrrrr{�sD

�	




��������'

r{c@s<eZdZed�Zed�Zed�Zedd��Zedd��Z	dS)	�StrHashRandomizationTests�abcZabcdefghijku
äú∑ℇcCs|�td�d�dS)N�r�r5r#r*rrr�test_empty_stringsz+StrHashRandomizationTests.test_empty_stringcCsL|�dd�}|�|j|jdd�|�|�dd�}|�|j|jdd�|�dS)Nr~�rrx�r>)r�r5rv�	repr_ucs2r�rrr�test_ucs2_string sz*StrHashRandomizationTests.test_ucs2_stringN)
r9r:r;�reprrkr�r�rr�r�rrrrr�s
r�c@s(eZdZed�Zed�Zedd��ZdS)�BytesHashRandomizationTestssabcsabcdefghijkcCs|�td�d�dS�Nrdrr�r*rrrr�,sz-BytesHashRandomizationTests.test_empty_stringN)r9r:r;r�rkr�rr�rrrrr�'sr�c@s eZdZdZdZedd��ZdS)� MemoryviewHashRandomizationTestszmemoryview(b'abc')zmemoryview(b'abcdefghijk')cCs|�ttd��d�dSr�)r5r#r4r*rrrr�5sz2MemoryviewHashRandomizationTests.test_empty_stringN)r9r:r;rkr�rr�rrrrr�0sr�c@seZdZdd�ZdS)�
DatetimeTestscCsd|S)Nz import datetime; print(hash(%s))rrjrrrrl:szDatetimeTests.get_hash_commandN)r9r:r;rlrrrrr�9sr�c@seZdZee�ddd��ZdS)�DatetimeDateTestsi*r\�N)r9r:r;r��datetime�daterkrrrrr�=sr�c
@s&eZdZee�ddddddd��ZdS)	�DatetimeDatetimeTestsr rr~r��r��N)r9r:r;r�r�rkrrrrr�@sr�c@seZdZee�d��ZdS)�DatetimeTimeTestsrN)r9r:r;r�r��timerkrrrrr�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�r3)r
r]ZsubTest�setr#�chr�addZ
assertGreater)r$�baserr�Zs15Zs255�cr%rrr�test_hash_distributionIsz/HashDistributionTestCase.test_hash_distributionN)r9r:r;r�rrrrr�Gsr��__main__)r))r�rmrrZtest.support.script_helperr�collections.abcr�maxsizer�rrrZTestCaserrZrBrOr<rAr?rDrHrJrKrLrMr[rbrir{r�r�r�r�r�r�r�r�r9�mainrrrr�<module>sP


*%Q��	�	


F1le Man4ger