Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_zlib.cpython-311.opt-1.pyc
�

�Ke����ddlZddlmZddlmZddlZddlZddlZddlZddl	Z	ddl
Z
ddlmZmZm
Z
ejd��Zejee���d��d��Zejee���d��d��Zejeed	��oej��jd
kd��ZGd�d
ej��ZGd�dej��ZGd�dej��ZGd�dej��ZGd�de��Z Gd�de ej��Z!Gd�de ej��Z"de	fd�Z#dZ$Gd�d��Z%e&dkrej'��dSdS)�N)�support)�
import_helper)�
bigmemtest�_1G�_4G�zlib�copyzrequires Compress.copy()zrequires Decompress.copy()�uname�s390xzskipped on s390xc��eZdZd�ZdS)�VersionTestCasec�r�|�tjdtjd��dS)Nr)�assertEqualr�ZLIB_RUNTIME_VERSION�ZLIB_VERSION��selfs �8/usr/local/apps/python3/lib/python3.11/test/test_zlib.py�test_library_versionz$VersionTestCase.test_library_version6s0��	
����2�1�5�t�7H��7K�L�L�L�L�L�N)�__name__�
__module__�__qualname__r�rrr
r
4s(������M�M�M�M�Mrr
c�8�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	dS)	�ChecksumTestCasec���|�t�d��t�dd����|�t�dd����dS)Nrr�abc���)rr�crc32�
assertTruers r�test_crc32startz ChecksumTestCase.test_crc32startAsV��������C���$�*�*�S�!�*<�*<�=�=�=�����
�
�6�:�6�6�7�7�7�7�7rc� �|�t�dd��d��|�t�dd��d��|�t�dd��d��dS�Nrr�i�)rrr rs r�test_crc32emptyz ChecksumTestCase.test_crc32emptyEst��������C��+�+�Q�/�/�/�������C��+�+�Q�/�/�/�������C��-�-�s�3�3�3�3�3rc���|�t�d��t�dd����|�t�dd����dS)Nrr%rr)rr�adler32r!rs r�test_adler32startz"ChecksumTestCase.test_adler32startJsX��������c�*�*�D�L�L��a�,@�,@�A�A�A�������V�Z�8�8�9�9�9�9�9rc� �|�t�dd��d��|�t�dd��d��|�t�dd��d��dSr$)rrr(rs r�test_adler32emptyz"ChecksumTestCase.test_adler32emptyNst��������c�1�-�-�q�1�1�1�������c�1�-�-�q�1�1�1�������c�3�/�/��5�5�5�5�5rc��|�t�dd��d��|�t�dd��d��|�t�dd��d��|�t�dd��d��|�t�d��t�dd����|�t�d��t�dd����dS)Nspenguinrl !�Kr%i���Ci��i���rrr r(rs r�
test_penguinszChecksumTestCase.test_penguinsSs���������J��2�2�K�@�@�@�������J��2�2�J�?�?�?�������j�!�4�4�j�A�A�A�������j�!�4�4�j�A�A�A�������J�/�/����J��1J�1J�K�K�K�������j�1�1�$�,�,�z�!�2L�2L�M�M�M�M�Mrc��d}|�t�|��d��|�t�d��d��|�t�||z��d��|�t�d��d��dS)N�abcdefghijklmnop��@u(�spami=��Cl
*i�Or-)r�foos  r�test_crc32_adler32_unsignedz,ChecksumTestCase.test_crc32_adler32_unsigned\s���!��������C���*�5�5�5�������G�,�,�j�9�9�9�������c�#�g�.�.�
�;�;�;�������g�.�.��9�9�9�9�9rc�:�d}d}|�tj|��|��|�t�|��|��|�tjd��t�d����dS)Nr0r1r2)r�binasciir r)rr3�crcs   r�test_same_as_binascii_crc32z,ChecksumTestCase.test_same_as_binascii_crc32ds~��!����������,�,�c�2�2�2�������C���#�.�.�.�������0�0�$�*�*�W�2E�2E�F�F�F�F�FrN)
rrrr"r&r)r+r.r4r8rrrrr?s�������8�8�8�4�4�4�
:�:�:�6�6�6�
N�N�N�:�:�:�G�G�G�G�Grrc�B�eZdZeedzdd���d���ZdS)�ChecksumBigBufferTestCase�r%F)�size�memuse�dry_runc���dtdzz}|�t�|��d��|�t�|��d��dS)Nsnyanr%iM"B>l�a
)rrrr r()rr<�datas   r�test_big_bufferz)ChecksumBigBufferTestCase.test_big_bufferosZ���#��'�"��������D�)�)�:�6�6�6�������d�+�+�Z�8�8�8�8�8rN)rrrrrrArrrr:r:msC�������Z�S�1�W�Q��6�6�6�9�9�7�6�9�9�9rr:c�l�eZdZd�Zd�Zd�Zd�Zd�Zej	d���Z
ej	d���ZdS)	�ExceptionTestCasec�^�|�tjtjdd��dS)NsERROR�
)�assertRaisesr�error�compressrs r�
test_badlevelzExceptionTestCase.test_badlevelxs(��	
���$�*�d�m�X�r�B�B�B�B�Brc�t�|�ttj��|�ttj��|�ttj��|�ttj��dddddgfD]�}|�ttj|��|�ttj|��|�ttj|��|�ttj|����dS)N�*��abcr)rF�	TypeErrorrr(r rH�
decompress)r�args  r�test_badargszExceptionTestCase.test_badargs~s������)�T�\�2�2�2����)�T�Z�0�0�0����)�T�]�3�3�3����)�T�_�5�5�5���b�%��R�0�	?�	?�C����i���s�;�;�;����i���S�9�9�9����i����<�<�<����i���#�>�>�>�>�		?�	?rc���|�ttjdtjd��|�ttjdtjtjdz��dS)Nr%r)rF�
ValueErrorr�compressobj�DEFLATED�	MAX_WBITSrs r�test_badcompressobjz%ExceptionTestCase.test_badcompressobj�sa�����*�d�&6��4�=�!�L�L�L����*�� �!�T�]�D�N�Q�4F�	H�	H�	H�	H�	Hrc�R�|�ttjd��dS)N���)rFrSr�
decompressobjrs r�test_baddecompressobjz'ExceptionTestCase.test_baddecompressobj�s#�����*�d�&8�"�=�=�=�=�=rc���|�tt���jd��|�tt���jd��dS)NrrY)rFrSrrZ�flushrs r�test_decompressobj_badflushz-ExceptionTestCase.test_decompressobj_badflush�sV�����*�d�&8�&8�&:�&:�&@�!�D�D�D����*�d�&8�&8�&:�&:�&@�"�E�E�E�E�Erc�r�|�td��5t�ddtjdz��ddd��n#1swxYwY|�td��5t����dtjdz��ddd��n#1swxYwY|�td��5t����tjdz��ddd��dS#1swxYwYdS)Nz
int too larger�r%)�assertRaisesRegex�
OverflowErrorrrO�sys�maxsizerZr]rs r�
test_overflowzExceptionTestCase.test_overflow�s���
�
#�
#�M�?�
C�
C�	6�	6��O�O�C��S�[�1�_�5�5�5�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6����	6�	6�	6�	6�
�
#�
#�M�?�
C�
C�	B�	B���� � �+�+�C���q��A�A�A�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B����	B�	B�	B�	B�
�
#�
#�M�?�
C�
C�	8�	8���� � �&�&�s�{�Q��7�7�7�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8�	8�	8s5�*A�A�A�8;B?�?C�C�%:D,�,D0�3D0c���tj|tt�������tj|tt�������dS�N)r�check_disallow_instantiation�typerrTrZrs r�test_disallow_instantiationz-ExceptionTestCase.test_disallow_instantiation�sX��	�,�T�4��8H�8H�8J�8J�3K�3K�L�L�L��,�T�4��8J�8J�8L�8L�3M�3M�N�N�N�N�NrN)rrrrIrQrWr[r^r�cpython_onlyrerjrrrrCrCvs�������C�C�C�	?�	?�	?�H�H�H�>�>�>�F�F�F�

��8�8���8�
��O�O���O�O�OrrCc��eZdZd�Zd�ZdS)�BaseCompressTestCasec��d}tj|dz��}||t|��zdzz}	||��d}dS#d}wxYw)N�rEr%)�random�	randbytes�len)rr<�
compress_func�_1Mr@s     r�check_big_compress_bufferz.BaseCompressTestCase.check_big_compress_buffer�sd�������b��)�)���t�s�4�y�y�(�1�,�-��	��M�$�����D�D�D��4�D�K�K�K�Ks�A�Ac�8�d|z}	t�|d��}d}n#d}wxYw||��}	|�t|��|��|�t|�d����d��d}dS#d}wxYw)N�xr%r)rrHrrr�strip)rr<�decompress_funcr@�
compresseds     r�check_big_decompress_bufferz0BaseCompressTestCase.check_big_decompress_buffer�s����d�{��	����t�Q�/�/�J��D�D��4�D�K�K�K�K���z�*�*��	����S��Y�Y��-�-�-����S����D�!1�!1�2�2�A�6�6�6��D�D�D��4�D�K�K�K�Ks�%�)�AB�BN)rrrrur{rrrrmrm�s2���������
�
�
�
�
rrmc�>�eZdZd�Zd�Zed���Zd�Zee	dzd���d���Z
ee	dzd	���d
���Zeed���d���Z
d
�Zejejdkd��eedzd���d�����ZdS)�CompressTestCasec��t�t��}|�t�|��t��dSrg)rrH�HAMLET_SCENErrO�r�xs  r�test_speechzCompressTestCase.test_speech�s;���M�M�,�'�'���������+�+�\�:�:�:�:�:rc���t�td���}|�t�|��t��|�t��5t�td���ddd��n#1swxYwY|�t�|tjtj���t��dS)N�)�level)r@r�)�wbits�bufsize)	rrHrrrOrFrNrV�DEF_BUF_SIZEr�s  r�
test_keywordszCompressTestCase.test_keywords�s���M�M�,�a�M�0�0���������+�+�\�:�:�:�
�
�
�y�
)�
)�	6�	6��M�M�|�1�M�5�5�5�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6�	6����	6�	6�	6�	6��������/3�~�15�1B�)�D�D�&�	'�	'�	'�	'�	's�/"B�B!�$B!c�H�tdz}t�|��}|�t�t	|����|��|t	|��fD]0}|�t�|��|���1dS�N�)rrrHr�	bytearrayrO)rr@r��obs    r�test_speech128zCompressTestCase.test_speech128�s����c�!���M�M�$����������y����7�7��;�;�;��Y�q�\�\�/�	8�	8�B����T�_�_�R�0�0�$�7�7�7�7�	8�	8rc��t�t��}|�tjdtj|dd���dS)NzAError -5 while decompressing data: incomplete or truncated streamrY)rrHrrarGrOr�s  r�test_incomplete_streamz'CompressTestCase.test_incomplete_stream�sK���M�M�,�'�'�����t�z�O��O�Q�s��s�V�	%�	%�	%�	%�	%rror��r<r=c�8�d�}|�||��dS)Nc�8�t�|d��S�Nr%)rrH)�ss r�<lambda>z;CompressTestCase.test_big_compress_buffer.<locals>.<lambda>�s��T�]�]�1�a�0�0�r)ru)rr<rHs   r�test_big_compress_bufferz)CompressTestCase.test_big_compress_buffer�s&��0�0���&�&�t�X�6�6�6�6�6r�c�F�|�|tj��dSrg)r{rrO)rr<s  r�test_big_decompress_bufferz+CompressTestCase.test_big_decompress_buffer�s ���(�(��t��?�?�?�?�?rr%c��tdz}t�|d��}|�t�|d|��|��dS�NrEr%r`)rrrHrrO)rr<r@rzs    r�test_large_bufsizez#CompressTestCase.test_large_bufsize�sM���b� ���]�]�4��+�+�
��������R��>�>��E�E�E�E�Erc���tdz}t�|d��}|�t�|dt����|��dSr�)rrrHrrO�	CustomInt)rr@rzs   r�test_custom_bufsizez$CompressTestCase.test_custom_bufsize�sO���b� ���]�]�4��+�+�
��������R����E�E�t�L�L�L�L�Lr��requires 64bit platform�dr;c��d|z}	t�|d��}|�t�|��|��dx}}dS#dx}}wxYw�Nrwr)rrHrrO)rr<r@�comps    r�test_64bit_compressz$CompressTestCase.test_64bit_compress�sk���d�{��	��=�=��q�)�)�D����T�_�_�T�2�2�D�9�9�9���D�4�4�4��$��D�4����s�A	A�AN)rrrr�r��
skip_on_s390xr�r�rrr�r�rr�r��unittest�
skipUnlessrcrdr�rrrr}r}�sQ������;�;�;�'�'�'��8�8��]�8�%�%�%��Z�S�;�&�q�1�1�1�7�7�2�1�7��Z�S�;�&�q�1�1�1�@�@�2�1�@��Z�S��#�#�#�F�F�$�#�F�M�M�M�
�X����u�,�.G�H�H��Z�S�3�Y�q�)�)�)���*�)�I�H���rr}c�L�eZdZed���Zd�Zd�Zd�Zd7d	�Zd
�Z	d8d�Z
d9d�Zd
�Zd�Z
d�Zd�Zd�Zd�Zejeed��d��d���Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Ze e!d� ��d!���Z"d"�Z#e$d#���Z%e$d$���Z&e'd%���Z(e'd&���Z)d'�Z*d(�Z+e e,d)zd*� ��d+���Z-e e,d)zd,� ��d-���Z.eje/j0d.kd/��e e!d0zd1� ��d2�����Z1eje/j0d.kd/��e e!d0zd*� ��d3�����Z2eje/j0d.kd/��e e!d0zd4� ��d5�����Z3d6�Z4dS):�CompressObjectTestCasec��tdz}t�|��}|t|��fD]�}t���}|�|��}|���}|�tj|j��|�||z|����||ft|��t|��ffD]�\}}t�	��}	|	�
||z��}
|	���}|�||
|z��|�|	jt��|�|	jt����dSr�)rrrHr�rTr]rFrGrrZrO�assertIsInstance�unconsumed_tail�bytes�unused_data)r�datasrc�datazipr@�co�x1�x2�v1�v2�dco�y1�y2s            r�	test_pairz CompressObjectTestCase.test_pairsY����$���-�-��(�(���i��0�0�1�	/�	/�D��!�!�#�#�B����T�"�"�B������B����d�j�"�(�3�3�3����R�"�W�g�.�.�.�.��B�x�)�B�-�-��2���!?�@�	:�	:�F�B���$�$�&�&�C�����R��(�(�B������B����T�2��7�+�+�+��!�!�#�"5�u�=�=�=��!�!�#�/�5�9�9�9�9�
	:�	:rc�.�d}tj}d}d}tj}t�|||||d���}t�|d���}|�t��5|�t���ddd��n#1swxYwY|�t��5|�	t�t�����ddd��n#1swxYwY|�t��|�
��z}|�	|tt�����|�
��z}	|�t|	��dS)	Nr����	r)r��methodr��memLevel�strategy�zdict�r�r�)r@)�
max_length)
rrU�
Z_FILTEREDrTrZrFrNrHrrOr]rrr)
rr�r�r�r�r�r��dor��ys
          rr�z$CompressObjectTestCase.test_keywordss�������������?��
�
�
�E�%+�$)�'/�'/�$'��)�)���
�
�e�3�
�
7�
7��
�
�
�y�
)�
)�	+�	+��K�K�\�K�*�*�*�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+�	+����	+�	+�	+�	+�
�
�
�y�
)�
)�	<�	<��M�M�t�}�}�\�:�:�M�;�;�;�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<����	<�	<�	<�	<��K�K��%�%����
�
�2���M�M�!��L�(9�(9�M�:�:�R�X�X�Z�Z�G������q�)�)�)�)�)s$�5B�B!�$B!�4D�D�	Dc��d}tj}d}d}tj}t�|||||��}|�t
��}|���}t�|��}	|	�||z��}
|	���}|�	t
|
|z��dS)Nr�r�r�)
rrUr�rTrHrr]rZrOr)rr�r�r�r�r�r�r�r�r�r�r�s            r�test_compressoptionsz+CompressObjectTestCase.test_compressoptions4s�������������?��
�
�
�e�V�U�H�h�
G�
G��
�[�[��
&�
&��
�X�X�Z�Z��� � ��'�'��
�^�^�B��G�
$�
$��
�Y�Y�[�[������r�B�w�/�/�/�/�/rc	�L�tdz}t���}g}tdt	|��d��D]5}|�|�|||dz������6|�|�����d�|��}t�	��}|�
d�|����}|���}|�|||z��dS)Nr�r�r)rrrT�rangerr�appendrHr]�joinrZrOr)	rr@r��bufs�i�combufr�r�r�s	         r�test_compressincrementalz/CompressObjectTestCase.test_compressincrementalCs����c�!��
�
�
�
�
�����q�#�d�)�)�S�)�)�	4�	4�A��K�K����D��1�S�5��M�2�2�3�3�3�3����B�H�H�J�J�������$����� � �"�"��
�^�^�C�H�H�T�N�N�
+�
+��
�Y�Y�[�[������r�B�w�'�'�'�'�'rFNr��@c	�"�|pt}|dz}t���}g}tdt	|��|��D]5}|�|�||||z������6|�|�����d�|��}	t�	|	��}
|�
|
t��|�||
��t�
��}g}tdt	|	��|��D]�}|�|�	|	|||z�����|�d|jdt	|j��z��|�d|j����|r(|�|�����n0	|�	d��}|r|�|��nn�/|�d|jdt	|j��z��|�d|j��|�|d�|����dS)Nr�rrz"(A) uct should be b'': not %d longTz"(B) uct should be b'': not %d long)rrrTr�rrr�rHr]r�rOr�r�rrZr�r�)
rr]�source�cx�dcxr@r�r�r�r��decombufr��chunks
             r�test_decompincz%CompressObjectTestCase.test_decompincRsq���'�<����|��
�
�
�
�
�����q�#�d�)�)�R�(�(�	3�	3�A��K�K����D��1�R�4��L�1�1�2�2�2�2����B�H�H�J�J�������$�����?�?�6�*�*�����h��.�.�.�����x�(�(�(�� � �"�"�����q�#�f�+�+�s�+�+�	3�	3�A��K�K����v�a��#��g��7�7�8�8�8����S�#�"5�A�'*�3�+>�'?�'?�@�
A�
A�
A�
���S�#�/�2�2�2�2��	��K�K��	�	���$�$�$�$�
����s�+�+�����K�K��&�&�&�&��
�	
����c�1�=�'*�3�+>�'?�'?�@�	A�	A�	A�	
����c�o�.�.�.�����s�x�x��~�~�.�.�.�.�.rc�2�|�d���dS�NT)r])r�rs r�test_decompincflushz*CompressObjectTestCase.test_decompincflush{s�����$��'�'�'�'�'rc	��|pt}|dz}t���}g}tdt	|��|��D]5}|�|�||||z������6|�|�����d�|��}|�	|t�
|��d��t���}	g}|}
|
rm|	�
|
|��}|�t	|��|kdt	|��|fz��|�|��|	j
}
|
�m|�|	�����|�	|d�|��d��dS)Nr�rr�compressed data failure�chunk too big (%d>%d)�Wrong data retrieved�rrrTr�rrr�rHr]r�rrOrZ�assertFalser�)rr�r�r�r@r�r�r�r�r��cbr�s            r�test_decompimaxz&CompressObjectTestCase.test_decompimax~s����'�<����|��
�
�
�
�
�����q�#�d�)�)�R�(�(�	3�	3�A��K�K����D��1�R�4��L�1�1�2�2�2�2����B�H�H�J�J�������$��������t���v�6�6�2�	4�	4�	4�� � �"�"����
���	%��N�N�2�s�+�+�E����S��Z�Z�#�-�+�s�5�z�z�3�.?�?�
A�
A�
A��K�K������$�B�
�	%�	
���C�I�I�K�K� � � �����s�x�x��~�~�/E�F�F�F�F�Frc	��tdz}t���}g}tdt	|��d��D]5}|�|�|||dz������6|�|�����d�|��}|�	|t�
|��d��t���}g}|}|r�dt	|��dzz}	|�
||	��}
|�t	|
��|	kdt	|
��|	fz��|�|
��|j
}|��|r(|�|�����nh|
rf|�
d|	��}
|�t	|
��|	kdt	|
��|	fz��|�|
��|
�f|�	|d�|��d	��dS)
Nr�rr�rr�r%rEr�r�r�)rr]r@r�r�r�r�r�r�r�r�s           r�test_decompressmaxlenz,CompressObjectTestCase.test_decompressmaxlen�s2���c�!��
�
�
�
�
�����q�#�d�)�)�S�)�)�	4�	4�A��K�K����D��1�S�5��M�2�2�3�3�3�3����B�H�H�J�J�������$��������t���v�6�6�2�	4�	4�	4�� � �"�"����
���	%��S��W�W�b�[��J��N�N�2�z�2�2�E����S��Z�Z�*�4�/�3�u�:�:�j�2I�I�
K�
K�
K��K�K������$�B�
�	%��	#��K�K��	�	���$�$�$�$��
#����s�J�7�7��� � ��U���j�!8�3�s�5�z�z�*�6M�M�O�O�O����E�"�"�"�	�
#�
	
����s�x�x��~�~�/E�F�F�F�F�Frc�2�|�d���dSr�)r�rs r�test_decompressmaxlenflushz1CompressObjectTestCase.test_decompressmaxlenflush�s���"�"��"�.�.�.�.�.rc��t���}|�t|jdd��|�d|j��dS)NrrY)rrZrFrSrOrr�)rr�s  r�test_maxlenmiscz&CompressObjectTestCase.test_maxlenmisc�sN��� � �"�"�����*�c�n�c�2�>�>�>�����c�1�2�2�2�2�2rc�D�tdz}|�t|��tj��t�|d��}t���}|�|�|tj
��|��dS�NrEr%)r�
assertGreaterrrrr�rHrZrrOrcrd�rr@rzr�s    r�test_maxlen_largez(CompressObjectTestCase.test_maxlen_large�s}���b� �����3�t�9�9�d�&7�8�8�8��]�]�4��+�+�
�� � �"�"��������
�C�K�@�@�$�G�G�G�G�Grc��tdz}t�|d��}t���}|�|�|t
����|dd���dS)NrEr%r�)rrrHrZrrOr�r�s    r�test_maxlen_customz)CompressObjectTestCase.test_maxlen_custom�sf���b� ���]�]�4��+�+�
�� � �"�"��������
�I�K�K�@�@�$�t��t�*�M�M�M�M�Mrc���d}t���}|�|d��}||�|j��z
}|�|jd��dS)Ns
x�KLJMr%r)rrZrOr�r)r�cdatar��ddatas    r�test_clear_unconsumed_tailz1CompressObjectTestCase.test_clear_unconsumed_tail�se��-��� � �"�"�����u�a�(�(��
����� 3�4�4�4������,�c�2�2�2�2�2rc��gd�}td�tj�d��D����}|dkr|�d��d�|D��}t
dz}|D�]	}t
d��D]�}	t�|��}|�|dd	���}|�	|��}|�|d	d���}	|�	��}
n)#td
�||�����xYw|�t�
d�|||	|
g����|d||fz��~����dS)
N)�
Z_NO_FLUSH�Z_SYNC_FLUSH�Z_FULL_FLUSH�Z_PARTIAL_FLUSHc3�4K�|]}t|��V��dSrg)�int)�.0�vs  r�	<genexpr>z6CompressObjectTestCase.test_flushes.<locals>.<genexpr>�s(����I�I�q�C��F�F�I�I�I�I�I�Ir�.)r%r��r��Z_BLOCKc�b�g|],}tt|���tt|����-Sr)�hasattrr�getattr)r�opts  r�
<listcomp>z7CompressObjectTestCase.test_flushes.<locals>.<listcomp>�s@��+�+�+�3��t�S�)�)�+�G�D�#�&�&�+�+�+r�rEi�z!Error for flush mode={}, level={}rz*Decompress failed: flush mode=%i, level=%i)�tuplerr�splitr�rr�rTrHr]�print�formatrrOr�)r�sync_opt�verr@�syncr��obj�a�b�c�ds           r�test_flushesz#CompressObjectTestCase.test_flushes�s���'�'�'���I�I�D�$=�$C�$C�C�$H�$H�I�I�I�I�I���,����O�O�I�&�&�&�+�+�(�+�+�+���a����	�	�D��r���
�
��	��*�*�E�3�3�C����d�5�D�5�k�3�3�A��	�	�4�)�)�A����d�4�5�5�k�3�3�A��	�	���A�A����=�!�6�$��.�.�0�0�0������ � �������1�Q�q��)�1D�1D�!E�!E�!%�)<�@D�e�}�(M�N�N�N��C�
�	�	s
�A=D�&D'r�zrequires zlib.Z_SYNC_FLUSHc�*�ddl}t�tj��}t���}	|j��}n3#t$r&	|j��}n#t$r|}YnwxYwYnwxYw|�d��|�	d��}|�
|��}|�tj��}|�
||z��}|�||d��dS)Nrr%iDz17K random source doesn't match)rprrT�Z_BEST_COMPRESSIONrZ�WichmannHill�AttributeError�Random�seedrqrHr]r�rOr)	rrpr�r��genr@�first�second�expandeds	         r�test_odd_flushz%CompressObjectTestCase.test_odd_flush�s!��	�
�
�
��
�
�d�5�
6�
6��� � �"�"��		�%�&�%�'�'�C�C���	�	�	�
�#�f�m�o�o����!�
�
�
�����
������		����	��������}�}�Y�'�'�����D�!�!�����$�+�,�,���>�>�%�&�.�1�1��	
����4�)J�K�K�K�K�Ks6�A�
B�A.�-B�.A=�:B�<A=�=B�Bc��t�tj��}|�|�����t���}|�|���d��dS)Nr)rrTrr!r]rZr)rr�r�s   r�test_empty_flushz'CompressObjectTestCase.test_empty_flushsi��
�
�
�d�5�
6�
6��������
�
�#�#�#�� � �"�"����������c�*�*�*�*�*rc�H�t}|���}tj|��d�|��}t
�|���}|�|��|���z}t
�	|���}|�
|�|��|���z|��t
�	��}|�t
j
|j|��dS)Nr�r�)rr
rp�shuffler�rrTrHr]rZrrOrFrG)r�h�wordsr�r��cdr�s       r�test_dictionaryz&CompressObjectTestCase.test_dictionary&s��������	�	����u�����������
�
�
�E�
�
*�
*��
�[�[��^�^�b�h�h�j�j�
(��� � �u� �-�-���������+�+�c�i�i�k�k�9�1�=�=�=�� � �"�"�����$�*�c�n�b�9�9�9�9�9rc��t�t���}t�t���}tdd�}|�|��|�tj��z}|�|dd���|�tj��z}|�|dd���|�tj��z}|�|�|��|��|�|�|��|dd���|�|�|��|dd���dS)Nr'��i�r�i����)	rrTrrZrHr]r�rrO)rr�r��piece�d0�d1�d2s       r�test_dictionary_streamingz0CompressObjectTestCase.test_dictionary_streaming6s9���
�
�L�
�
1�
1��
�
�
�l�
�
3�
3���T�$�Y�'��
�[�[��
�
�"�(�(�4�+<�"=�"=�
=��
�[�[��s�t�t��
%�
%�����1B�(C�(C�
C��
�[�[��u��u��
&�
&����$�2C�)D�)D�
D��������r�*�*�E�2�2�2�������r�*�*�E�#�$�$�K�8�8�8�������r�*�*�E�%�4�%�L�9�9�9�9�9rc��d}|�t�|��d��|�tjtj|dd���t���}|�|dd���}||���z
}|�|d��dS)N�x�K���Esfoo���)rrrOrFrGrZr])rr�r�r�s    r�!test_decompress_incomplete_streamz8CompressObjectTestCase.test_decompress_incomplete_streamCs���2���������+�+�V�4�4�4����$�*�d�o�q��"��v�>�>�>�� � �"�"���N�N�1�S�b�S�6�"�"��	�S�Y�Y�[�[�������F�#�#�#�#�#rc��d}t���}|�|j��|�|dd���|�|j��|�|dd���|�|j��|���|�|j��dS�Nr5r6)rrZr��eofrOr!r]�rr�r�s   r�test_decompress_eofz*CompressObjectTestCase.test_decompress_eofPs���2��� � �"�"�������!�!�!����q��"��v���������!�!�!����q����v��������� � � ��	�	��������� � � � � rc�:�d}t���}|�|j��|�|dd���|�|j��|���|�|j��dSr9)rrZr�r:rOr]r;s   r�%test_decompress_eof_incomplete_streamz<CompressObjectTestCase.test_decompress_eof_incomplete_stream[s���2��� � �"�"�������!�!�!����q��"��v���������!�!�!��	�	���������!�!�!�!�!rc�T�d}d}t�|��}||z}dD�]�}ddt|��t|��fD�][}t���}d}t	dt|��|��D]�}	|	t|��kr|�|jd��|dkr?||�||	|	|z���z
}|�|jd���u||�|j||	|	|z�z|��z
}��||�	��z
}|�
|j��|�||��|�|jd��|�|j|����]���dS)N�abcdefghijklmnopqrstuvwxyzs
0123456789)rr.r%r�rr)rrHrrrZr�rr�rOr�r]r!r:)
rr��	remainderr�r��maxlen�stepr�r@r�s
          r�test_decompress_unused_dataz2CompressObjectTestCase.test_decompress_unused_datads���/��!�	��M�M�&�!�!��
�	�M���	=�	=�F��1�c�!�f�f�c�!�f�f�,�
=�
=���(�(�*�*�����q�#�a�&�&�$�/�/�O�O�A��3�q�6�6�z�z��(�(���#�>�>�>���{�{�����q��Q��X��� ?� ?�?���(�(��)<�c�B�B�B�B����� #� 3�a��A��H��o� E�v�!O�!O�O�����	�	���#�������(�(�(�� � ��v�.�.�.�� � ��!4�c�:�:�:�� � ���)�<�<�<�<�!
=�	=�	=rc�z�d}t�tj|���}|�|��|���z}t�tj|���}|�|��|���z}|�||��dS)Nr@r�)rrTrVrHr]rZrOr)rr�r�r�r��uncomps      r�#test_decompress_raw_with_dictionaryz:CompressObjectTestCase.test_decompress_raw_with_dictionarys���-��
�
�
�T�^�O�5�
�
A�
A���{�{�5�!�!�B�H�H�J�J�.��� � ����e� �D�D������%�%��	�	���3�������'�'�'�'�'rc�6�d}d}t�|��}t���}|�|d��~t�|��}|�|���|dd���dS)Nr@sQWERTYUIOPASDFGHJKLZXCVBNMr%)rrHrZrOrr])r�input1�input2r@r�s     r�test_flush_with_freed_inputz2CompressObjectTestCase.test_flush_with_freed_input�s���/��.���}�}�V�$�$��� � �"�"�����t�Q������}�}�V�$�$����������f�Q�R�R�j�1�1�1�1�1rr%r�c��tdz}t�|d��}t���}|�|d��|�|�|��|dd���dSr�)rrrHrZrOrr])rr<�inputr@r�s     r�test_flush_large_lengthz.CompressObjectTestCase.test_flush_large_length�st���r�!���}�}�U�A�&�&��� � �"�"�����t�Q����������4���%����)�4�4�4�4�4rc�(�tdz}t�|d��}t���}|�|d��|�|�t����|dd���dSr�)rrrHrZrOrr]r�)rrMr@r�s    r�test_flush_custom_lengthz/CompressObjectTestCase.test_flush_custom_length�sx���r�!���}�}�U�A�&�&��� � �"�"�����t�Q����������9�;�;�/�/��q�r�r��;�;�;�;�;rc���t}tttd�����d��}d�tjtjfD�]�}t�tj��}g}|�	|�
|����||��}|dd�}|�	|�
|����|�	|�����d�|��}|�	|�
|����|�	|�����d�|��}	|�
t�|��||z��|�
t�|	��||z�����dS)N�asciic�*�|���Srg�r	�rs rr�z:CompressObjectTestCase.test_compresscopy.<locals>.<lambda>����a�f�f�h�h�rr)rr��str�swapcaser	�deepcopyrrTrr�rHr]r�rrO)
r�data0�data1�func�c0�bufs0�c1�bufs1�s0�s1s
          r�test_compresscopyz(CompressObjectTestCase.test_compresscopy�s������c�,��0�0�9�9�;�;�W�E�E��&�&��	�4�=�@�	>�	>�D��!�!�$�"9�:�:�B��E��L�L����U�+�+�,�,�,���b���B��!�!�!�H�E��L�L����U�+�+�,�,�,��L�L������$�$�$����%���B��L�L����U�+�+�,�,�,��L�L������$�$�$����%���B����T�_�_�R�0�0��u��=�=�=����T�_�_�R�0�0��u��=�=�=�=�#	>�	>rc�l�t���}|�t��|���|�t|j��|�ttj|��|�ttj|��dSrg)	rrTrHrr]rFrSr	rY)rrs  r�test_badcompresscopyz+CompressObjectTestCase.test_badcompresscopy�s���
������	�
�
�<� � � �	���	�	�	����*�a�f�-�-�-����*�d�i��3�3�3����*�d�m�Q�7�7�7�7�7rc���t}t�|��}|�|t��d�t
jt
jfD�]}t���}g}|�|�	|dd�����||��}|dd�}|�|�	|dd�����d�
|��}|�|�	|dd�����d�
|��}	|�||	��|�||����dS)Nc�*�|���SrgrTrUs rr�z<CompressObjectTestCase.test_decompresscopy.<locals>.<lambda>�rVr� r)rrrHr�r�r	rYrZr�rOr�r)
rr@r�r\r0r^r1r`rarbs
          r�test_decompresscopyz*CompressObjectTestCase.test_decompresscopy�sF�����}�}�T�"�"�����d�E�*�*�*�&�&��	�4�=�@�	&�	&�D��#�#�%�%�B��E��L�L����t�C�R�C�y�1�1�2�2�2���b���B��!�!�!�H�E��L�L����t�B�C�C�y�1�1�2�2�2����%���B��L�L����t�B�C�C�y�1�1�2�2�2����%���B����R��#�#�#����R��%�%�%�%�	&�	&rc��t�t��}t���}|�|��|���|�t|j��|�ttj|��|�ttj	|��dSrg)
rrHrrZrOr]rFrSr	rY)rr@rs   r�test_baddecompresscopyz-CompressObjectTestCase.test_baddecompresscopy�s����}�}�\�*�*����� � ��	���T����	���	�	�	����*�a�f�-�-�-����*�d�i��3�3�3����*�d�m�Q�7�7�7�7�7rc�.�ttjdz��D]w}|�ttjf��5tjt�tj	��|��ddd��n#1swxYwY�xdSr�)
r��pickle�HIGHEST_PROTOCOLrFrN�
PicklingError�dumpsrrTr�r�protos  r�test_compresspicklez*CompressObjectTestCase.test_compresspickle�s����6�2�Q�6�7�7�	O�	O�E��"�"�I�v�/C�#D�E�E�
O�
O���T�-�-�d�.E�F�F��N�N�N�
O�
O�
O�
O�
O�
O�
O�
O�
O�
O�
O����
O�
O�
O�
O��	O�	Os�8B	�	B
	�B
	c��ttjdz��D]l}|�ttjf��5tjt���|��ddd��n#1swxYwY�mdSr�)	r�rmrnrFrNrorprrZrqs  r�test_decompresspicklez,CompressObjectTestCase.test_decompresspickle�s����6�2�Q�6�7�7�	:�	:�E��"�"�I�v�/C�#D�E�E�
:�
:���T�/�/�1�1�5�9�9�9�
:�
:�
:�
:�
:�
:�
:�
:�
:�
:�
:����
:�
:�
:�
:��	:�	:s�-A>�>B	�B	ror�c�r��t�d����fd�}|�||��dS)Nr%c�X����|������zSrg)rHr])r�rs �rr�zACompressObjectTestCase.test_big_compress_buffer.<locals>.<lambda>�s���Q�Z�Z��]�]�Q�W�W�Y�Y�6�r)rrTru)rr<rHrs   @rr�z/CompressObjectTestCase.test_big_compress_buffer�s@������Q����6�6�6�6���&�&�t�X�6�6�6�6�6rr�c�p��t�����fd�}|�||��dS)Nc�X����|������zSrg)rOr])r�rs �rr�zCCompressObjectTestCase.test_big_decompress_buffer.<locals>.<lambda>�s���q�|�|�A��������:�r)rrZr{)rr<rOrs   @rr�z1CompressObjectTestCase.test_big_decompress_buffer�s>������ � ��:�:�:�:�
��(�(��z�:�:�:�:�:rr�r�r�r;c�n�d|z}t�d��}t���}	|�|��|���z}|�|��|���z}|�||��dx}x}}dS#dx}x}}wxYwr�)rrTrZrHr]rOr)rr<r@r�r�r�rFs       rr�z*CompressObjectTestCase.test_64bit_compresss����d�{��
�
�
�a�
 �
 ��
�
�
�
!�
!��	(��;�;�t�$�$�r�x�x�z�z�1�D��]�]�4�(�(�2�8�8�:�:�5�F����V�T�*�*�*�#'�'�D�'�6�D�D�D��4�'�D�'�6�D�'�'�'�'s�A*B,�,B4c�Z�d}d|z}t�|��|z}t���}	|�|��|���z}|�||j��|�||��dx}x}}dS#dx}x}}wxYw)Nr0rw)rrHrZrOr]rr�)rr<r@�unusedr�r�rFs       r�test_large_unused_dataz-CompressObjectTestCase.test_large_unused_datas���#�������}�}�T�"�"�V�+��
�
�
�
!�
!��	&��]�]�4�(�(�2�8�8�:�:�5�F����V�R�^�4�4�4����V�T�*�*�*�!%�%�F�%�T�B�B�B���%�F�%�T�B�%�%�%�%s�AB"�"B*rc�T�d|z}t���}	t�|d��}|�|d��|���z}|�||��|�|jd��dx}x}}dS#dx}x}}wxYw)Nrwrr%r)rrZrHrOr]rr�)rr<r@r�r�rFs      r�test_large_unconsumed_tailz1CompressObjectTestCase.test_large_unconsumed_tails����d�{��
�
�
�
!�
!��	(��=�=��q�)�)�D��]�]�4��+�+�b�h�h�j�j�8�F����V�T�*�*�*����R�/��5�5�5�#'�'�D�'�6�D�D�D��4�'�D�'�6�D�'�'�'�'s�A7B�B'c��tj�dd��d�d��}t|��dkr|�d��n|d���sd|d<t
tt|����}|dk}t�	dd	�
��}|�
t��|���z}|�
t�|d	��t��|r4|�
t�|d��t��|�
t�|d��t��|�tjd��5t�|d
��ddd��n#1swxYwYt�d���}|�
|�|��t��t�d
���}|�tjd��5|�|��ddd��n#1swxYwYt�	dd�
��}|�
t��|���z}|�
t�|d��t��|�
t�|d	��t��|r4|�
t�|d��t��|�
t�|d��t��t�d���}|�
|�|��t��t�	dd�
��}|�
t��|���z}|�
t�|d��t��t�d���}|�
|�|��t��t�	dd�
��}|�
t��|���z}|�
t�|d��t��|�
t�|d��t��t�d���}|�
|�|��t��t�	dd�
��}|�
t��|���z}	|�
t�|	d��t��|�
t�|	d��t��t�d��}|�
|�|	��t��dD]�}
|�|
���5t}t�t�
t|
���|
���}|�
||��ddd��n#1swxYwY��dS)N�-r%rrr;�0rY)r%r�r�rr`)r�r��/zinvalid window size�)r�r��)��i�����)r�r`r�)rrr
rrr��	isnumericr�mapr�rTrHrr]rrOrarGrZ�subTest)
rr�supports_wbits_0r��zlib15r��zlib9�	deflate15�deflate9�gzipr��expected�actuals
             r�
test_wbitsz!CompressObjectTestCase.test_wbits)sZ��
�%�+�+�C��3�3�A�6�<�<�S�A�A���q�6�6�A�:�:�
�H�H�S�M�M�M�M��2����"�"�	��A�b�E��#�c�1�+�+������,��
�
�
�A�R�
�
0�
0�����\�*�*�R�X�X�Z�Z�7����������4�4�l�C�C�C��	G����T�_�_�V�Q�7�7��F�F�F���������9�9�<�H�H�H�
�
#�
#�D�J�0E�
F�
F�	(�	(��O�O�F�B�'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�� � �w� �/�/���������/�/��>�>�>�� � �r� �*�*��
�
#�
#�D�J�0E�
F�
F�	#�	#��N�N�6�"�"�"�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#��
�
�A�Q�
�
/�
/�����L�)�)�B�H�H�J�J�6����������2�2�L�A�A�A���������3�3�\�B�B�B��	F����T�_�_�U�A�6�6��E�E�E���������7�7��F�F�F�� � �v� �.�.���������.�.��=�=�=�
�
�
�A�S�
�
1�
1���K�K��-�-����
�
�:�	��������C�8�8�,�G�G�G�� � �s� �+�+��������	�2�2�L�A�A�A�
�
�
�A�R�
�
0�
0���;�;�|�,�,�r�x�x�z�z�9���������2�6�6��E�E�E��������3�7�7��F�F�F�� � �r� �*�*���������1�1�<�@�@�@�
�
�
�A�W�
�
5�
5���{�{�<�(�(�2�8�8�:�:�5���������w�7�7��F�F�F��������w�7�7��F�F�F�� � ��)�)���������-�-�|�<�<�<�"�	3�	3�E����E��*�*�
3�
3�'������M�M�,�e�M�<�<�E�)����� � ��6�2�2�2�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3�
3����
3�
3�
3�
3��	3�	3s7�3G�G�"G�*J�J�J�A\;�;\?	�\?	)FNr�r�)Nr�r�)F)5rrrr�r�r�r�r�r�r�r�r�r�r�r�r�r�rr�r�rrr#r%r,r3r7r<r>rDrGrKrrrNrP�requires_Compress_copyrcre�requires_Decompress_copyrirkrsrurr�r�rcrdr�r}rr�rrrr�r�	s	�������:�:��]�:�&*�*�*�*
0�
0�
0�
(�
(�
(�&/�&/�&/�&/�R(�(�(�G�G�G�G�6G�G�G�G�@/�/�/�3�3�3�H�H�H�N�N�N�3�3�3����@�X�����~�6�6�5�7�7�L�L�7�7�L�@+�+�+�:�:�:� :�:�:�$�$�$�	!�	!�	!�"�"�"�=�=�=�6(�(�(�
2�
2�
2��Z�S��#�#�#�5�5�$�#�5�<�<�<��>�>���>�.�8�8���8��&�&���&�0�8�8���8�O�O�O�
:�:�:��Z�S�;�&�q�1�1�1�7�7�2�1�7�
�Z�S�;�&�q�1�1�1�;�;�2�1�;�
�X����u�,�.G�H�H��Z�S�3�Y�q�)�)�)�	(�	(�*�)�I�H�	(��X����u�,�.G�H�H��Z�S�3�Y�q�)�)�)�
&�
&�*�)�I�H�
&��X����u�,�.G�H�H��Z�S�3�Y�q�)�)�)�	(�	(�*�)�I�H�	(�?3�?3�?3�?3�?3rr�c����|���|��|�d�����fd�t|��D��S)z=Return a list of number lines randomly chosen from the sourceN�
c�:��g|]}�������Sr)�choice)r�n�	generator�sourcess  ��rr
z choose_lines.<locals>.<listcomp>os'���=�=�=�!�I���W�%�%�=�=�=r)rr
r�)r��numberrr�r�s   `@r�choose_linesr�jsP���������t�����l�l�4� � �G�=�=�=�=�=�u�V�}�}�=�=�=�=rs�
LAERTES

       O, fear me not.
       I stay too long: but here my father comes.

       Enter POLONIUS

       A double blessing is a double grace,
       Occasion smiles upon a second leave.

LORD POLONIUS

       Yet here, Laertes! aboard, aboard, for shame!
       The wind sits in the shoulder of your sail,
       And you are stay'd for. There; my blessing with thee!
       And these few precepts in thy memory
       See thou character. Give thy thoughts no tongue,
       Nor any unproportioned thought his act.
       Be thou familiar, but by no means vulgar.
       Those friends thou hast, and their adoption tried,
       Grapple them to thy soul with hoops of steel;
       But do not dull thy palm with entertainment
       Of each new-hatch'd, unfledged comrade. Beware
       Of entrance to a quarrel, but being in,
       Bear't that the opposed may beware of thee.
       Give every man thy ear, but few thy voice;
       Take each man's censure, but reserve thy judgment.
       Costly thy habit as thy purse can buy,
       But not express'd in fancy; rich, not gaudy;
       For the apparel oft proclaims the man,
       And they in France of the best rank and station
       Are of a most select and generous chief in that.
       Neither a borrower nor a lender be;
       For loan oft loses both itself and friend,
       And borrowing dulls the edge of husbandry.
       This above all: to thine ownself be true,
       And it must follow, as the night the day,
       Thou canst not then be false to any man.
       Farewell: my blessing season this in thee!

LAERTES

       Most humbly do I take my leave, my lord.

LORD POLONIUS

       The time invites you; go; your servants tend.

LAERTES

       Farewell, Ophelia; and remember well
       What I have said to you.

OPHELIA

       'Tis in my memory lock'd,
       And you yourself shall keep the key of it.

LAERTES

       Farewell.
c��eZdZd�ZdS)r�c��dS)Nr�rrs r�	__index__zCustomInt.__index__�s���srN)rrrr�rrrr�r��s#����������rr��__main__)(r��testr�test.supportrr6r	�osrmrprcrrr�
import_modulerr�rrTr�rZr��skipIfr
�machiner��TestCaser
rr:rC�objectrmr}r�r�rr�r�mainrrr�<module>r�s������������&�&�&�&�&�&���������	�	�	�	�
�
�
�
�
�
�
�
�
�
�
�
�-�-�-�-�-�-�-�-�-�-�#�}�"�6�*�*��,��,���� � �"�"�F�+�+�"�$�$��/�8�.����"�"�$�$�f�-�-�$�&�&��< ������G� 4� 4� V������9K�w�9V� 2�4�4�
�M�M�M�M�M�h�'�M�M�M�*G�*G�*G�*G�*G�x�(�*G�*G�*G�\9�9�9�9�9�� 1�9�9�9�0O�0O�0O�0O�0O��)�0O�0O�0O�f�����6����<?�?�?�?�?�+�X�->�?�?�?�D_	3�_	3�_	3�_	3�_	3�1�8�3D�_	3�_	3�_	3�B'+�f�>�>�>�>�>��B��������
�z����H�M�O�O�O�O�O��r