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

�Ke�\���ddlmZddlmZmZddlmZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZ	ddlZn
#e$rdZYnwxYwGd�d��ZGd�deje��ZGd	�d
eje��ZGd�deje��ZGd
�dej��ZGd�dej��ZGd�deje��ZGd�deje��ZGd�dej��ZdZe
jdkrdndZGd�d��Zejee
jkd��Gd�dej����Z d �Z!Gd!�d"eje��Z"Gd#�d$ej��Z#Gd%�d&eje��Z$ej%ej&ed'��Gd(�d)eje������Z'e(d*krej)��dSdS)+�)�support)�	os_helper�requires_debug_ranges)�assert_python_okNc��eZdZd�ZdS)�HelperMixinc�@�tjtj|g|�R���}|�||��	t	t
jd��5}tj||g|�R�ddd��n#1swxYwYt	t
jd��5}tj|��}ddd��n#1swxYwY|�||��tj	t
j��dS#tj	t
j��wxYw)N�wb�rb)
�marshal�loads�dumps�assertEqual�openr�TESTFN�dump�load�unlink)�self�sample�extra�new�fs     �;/usr/local/apps/python3/lib/python3.11/test/test_marshal.py�helperzHelperMixin.helpersy���m�G�M�&�9�5�9�9�9�:�:�������%�%�%�	/��i�&��-�-�
0����V�Q�/��/�/�/�/�
0�
0�
0�
0�
0�
0�
0�
0�
0�
0�
0����
0�
0�
0�
0��i�&��-�-�
&���l�1�o�o��
&�
&�
&�
&�
&�
&�
&�
&�
&�
&�
&����
&�
&�
&�
&����V�S�)�)�)���Y�-�.�.�.�.�.��I��Y�-�.�.�.�.���sS�C=�A6�*C=�6A:�:C=�=A:�>C=�B<�0C=�<C�C=�C�C=�= DN)�__name__�
__module__�__qualname__r��rrrs#������
/�
/�
/�
/�
/r rc� �eZdZd�Zd�Zd�ZdS)�IntTestCasec�t�tjdz}|r&||fD]}|�|���|dz	}|�$dSdS)N��)�sys�maxsizer)r�n�expecteds   r�	test_intszIntTestCase.test_ints sg���K�1����	��R��G�
&�
&�����H�%�%�%�%��Q��A��	�	�	�	�	r c�<�d}|dz
}||||dz	fD]_}|r[dt�|ddd���z}tj|��}|�||��|dkrd	}n|dz}|�[�`tjd
��}|�|d��tjd��}|�|d
��tjd��}|�|d��tjd��}|�|d��dS)Nl����r%�I��littleT)�signed���rs	I�ܺ�vT2l�\u1�Q�s	I#Eg����l�����\u1�Q�s	I*;L]nlTv0ur{s	I���ij���l����	Tv0ur{)�int�to_bytesrr
r)r�maxint64�minint64�base�s�gots      r�
test_int64zIntTestCase.test_int64(sF�� ���9�Q�;���h��	�X��]�3C�C�	�	�D��
��3�<�<��a��$�<�G�G�G���m�A�&�&��� � ��s�+�+�+��2�:�:��D�D��Q�J�D��
���m�@�A�A������0�1�1�1��m�@�A�A������1�2�2�2��m�@�A�A������0�1�1�1��m�@�A�A������1�2�2�2�2�2r c�:�dD]}|�|���dS)N)TF�r)r�bs  r�	test_boolzIntTestCase.test_bool?s,���	�	�A��K�K��N�N�N�N�	�	r N)rrrr*r8r<rr rr"r"sA���������3�3�3�.����r r"c��eZdZd�ZdS)�
FloatTestCasec�f�d}tjdz}||kr5||fD]$}|�t|�����%|dz}||k�5d}t	j|d��}t	j|��}|�||��t	j|d��}t	j|��}|�||��tjdz}||krO||fD]<}t|��}|�|��|�|d���=|dz}||k�MdSdS)Ng�}���:g�6�ҫ�sgS��:�^@gr$r%g��Z1%)r&r'r�floatrrr
r)r�smallr(r)rr6r7s       r�test_floatszFloatTestCase.test_floatsDsJ�����K�'�!���%�i�i��R��G�
-�
-�����E�(�O�O�,�,�,�,�
��M�A��%�i�i�

���M�!�Q�����m�A��������C� � � ��M�!�Q�����m�A��������C� � � ��K�(�"���%�i�i��R��G�
"�
"���(�O�O�����A�������A�q�!�!�!�!�
��M�A��%�i�i�i�i�i�ir N)rrrrBrr rr>r>Cs#����������r r>c� �eZdZd�Zd�Zd�ZdS)�StringTestCasec��dddddzfD];}|�tjtj|�������<dS�N��
Andrè Previn�abc� �')rrr
r�rr6s  r�test_unicodezStringTestCase.test_unicode_sR���'���E�	�:�	9�	9�A��K�K��
�g�m�A�&6�&6�7�7�8�8�8�8�	9�	9r c�H�dddddzfD]}|�|���dSrFr:rLs  r�test_stringzStringTestCase.test_stringcs:���'���E�	�:�	�	�A��K�K��N�N�N�N�	�	r c�H�dddddzfD]}|�|���dS)Nr sAndr� Previn�abc� rKr:rLs  r�
test_byteszStringTestCase.test_bytesgs:���)�6�4��:�>�	�	�A��K�K��N�N�N�N�	�	r N)rrrrMrOrSrr rrDrD^sA������9�9�9��������r rDc��eZdZd�ZdS)�ExceptionTestCasec��tjtjt����}|�t|��dS�N)rr
r�
StopIterationr)rrs  r�test_exceptionsz!ExceptionTestCase.test_exceptionsls7���m�G�M�-�8�8�9�9�������,�,�,�,�,r N)rrrrYrr rrUrUks#������-�-�-�-�-r rUc�f�eZdZd�Zd�Zd�Ze��d���Zej	d���Z
dS)�CodeTestCasec��tjj}tjtj|����}|�||��dSrW)rUrY�__code__rr
rr)r�cors   r�	test_codezCodeTestCase.test_codeqsB��
�
.�
7���m�G�M�"�-�-�.�.������S�!�!�!�!�!r c��d}tjjf|z}tjtj|����dS)Ni�)rUrYr]rr
r)r�count�codess   r�test_many_codeobjectsz"CodeTestCase.test_many_codeobjectsvs:����"�2�;�=��E���
�g�m�E�*�*�+�+�+�+�+r c��tddd��}tddd��}tjtj||f����\}}|�|jd��|�|jd��dS)N�x�f1�exec�y�f2)�compilerr
rr�co_filename)r�co1�co2s   r�test_different_filenamesz%CodeTestCase.test_different_filenames|s{���c�4��(�(���c�4��(�(���=����S�z�!:�!:�;�;���S������$�/�/�/������$�/�/�/�/�/r c��tjj}tjd��}	ttjd��5}tj	||��ddd��n#1swxYwYtddd|tj��t
jtj��dS#t
jtj��wxYw)Na
        import sys
        import marshal
        with open(sys.argv[1], 'rb') as f:
            co = marshal.load(f)
            positions = list(co.co_positions())
            assert positions[0][2] is None
            assert positions[0][3] is None
        r
z-X�no_debug_ranges�-c)rUrYr]�textwrap�dedentrrrrrrr)rr^�coders    r�+test_minimal_linetable_with_no_debug_rangesz8CodeTestCase.test_minimal_linetable_with_no_debug_ranges�s����
.�
7���� �
�
��	/��i�&��-�-�
$����R��#�#�#�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$�
$����
$�
$�
$�
$�
�T�#4�!�4��)9�
;�
;�
;�
��Y�-�.�.�.�.�.��I��Y�-�.�.�.�.���s/�B+�A#�B+�#A'�'B+�*A'�+ B+�+ Cc��d}t|dd��}tjtj|����}|jD]<}t|tj��r |�|j	|j	���=dS)Nzdef f(): pass
def g(): pass�myfilerg)
rjrr
r�	co_consts�
isinstance�types�CodeType�assertIsrk)rr6r^�objs    r�test_same_filename_usedz$CodeTestCase.test_same_filename_used�sy��.��
�Q��&�
)�
)��
�]�7�=��,�,�
-�
-���<�	?�	?�C��#�u�~�.�.�
?��
�
�b�n�c�o�>�>�>��	?�	?r N)rrrr_rcrnrrur�cpython_onlyr~rr rr[r[ps�������"�"�"�
,�,�,�0�0�0�����/�/���/�.
��?�?���?�?�?r r[c	�>�eZdZdddddgdddd	�Zd
�Zd�Zd�Zd
�ZdS)�ContainerTestCasezfoo@bar.baz.spamgH�zns�@�r$�.zyx.41)
r�r�r�r�r�r�r�r�r�r�FrH)�astring�afloat�anint�
ashortlong�alist�atuple�aboolean�aunicodec�:�|�|j��dSrW)r�d�rs r�	test_dictzContainerTestCase.test_dict�s�����D�F�����r c�x�|�t|j�������dSrW)r�listr��itemsr�s r�	test_listzContainerTestCase.test_list�s,�����D�������(�(�)�)�)�)�)r c�x�|�t|j�������dSrW)r�tupler��keysr�s r�
test_tuplezContainerTestCase.test_tuple�s,�����E�$�&�+�+�-�-�(�(�)�)�)�)�)r c��ttfD]7}|�||j��������8dSrW)�set�	frozensetrr�r�)r�constructors  r�	test_setszContainerTestCase.test_sets�sI����+�	4�	4�K��K�K���D�F�K�K�M�M�2�2�3�3�3�3�	4�	4r N)rrrr�r�r�r�r�rr rr�r��sv������&�����+�"��&�	�	�A����*�*�*�*�*�*�4�4�4�4�4r r�c� �eZdZd�Zd�Zd�ZdS)�BufferTestCasec���td��}|�|��tjtj|����}|�t
|��t��dS�NrQ)�	bytearrayrrr
rr�type�bytes�rr;rs   r�test_bytearrayzBufferTestCase.test_bytearray�sY���f�������A�����m�G�M�!�,�,�-�-������c���E�*�*�*�*�*r c���td��}|�|��tjtj|����}|�t
|��t��dSr�)�
memoryviewrrr
rrr�r�r�s   r�test_memoryviewzBufferTestCase.test_memoryview�sY���v�������A�����m�G�M�!�,�,�-�-������c���E�*�*�*�*�*r c��tjdd��}tjtj|����}|�|d��dS)N�BrQ)�arrayrr
rr)r�ars   r�
test_arrayzBufferTestCase.test_array�sH���K��V�$�$���m�G�M�!�,�,�-�-������f�%�%�%�%�%r N)rrrr�r�r�rr rr�r��sA������+�+�+�+�+�+�&�&�&�&�&r r�c�b�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�ZdS)�BugsTestCasec�6�tjdgdz��dS)N���)rrr�s r�test_bug_5888452zBugsTestCase.test_bug_5888452�s���
�s�e�d�l�#�#�#�#�#r c�$�|�ttjd��|�ttjd��|�ttjtjddz��dd���dS)N�0�fr$�Ar0)�assertRaises�	Exceptionrr
rr�s r�test_patch_873224zBugsTestCase.test_patch_873224�sm�����)�W�]�D�9�9�9����)�W�]�D�9�9�9����)�W�]�G�M�!�R�%�4H�4H��"��4M�N�N�N�N�Nr c���|�tjtjdd����d��|�tjtjdd����d��dS)N�rr%)rrr
rr�s r�test_version_argumentz"BugsTestCase.test_version_argument�s`�������w�}�Q��':�':�;�;�Q�?�?�?������w�}�Q��':�':�;�;�Q�?�?�?�?�?r c��td��D]7}t|g��}	tj|���(#t$rY�4wxYwdS)N�)�ranger�rr
r�)r�i�cs   r�	test_fuzzzBugsTestCase.test_fuzz�sh���s���	�	�A��q�c�
�
�A�
��
�a� � � � ���
�
�
���
����		�	s�8�
A�Ac�\��d�}|dtj���fd�}|d|��dS)Nc��|d|zdz��|d|zdz��|d|zdz��|d|zdzd|zz��|d|zdz��dS)Ns)�Ns(s[s{Nr�s>r)�N�checks  r�	run_testsz4BugsTestCase.test_loads_recursion.<locals>.run_tests�s����E�(�Q�,��%�&�&�&��E�&��*�T�1�2�2�2��E�&��*�T�1�2�2�2��E�%�!�)�d�"�T�A�X�-�.�.�.��E�&��*�T�1�2�2�2�2�2r �dc�T����ttj|��dSrW�r��
ValueErrorrr
)r6rs �rr�z0BugsTestCase.test_loads_recursion.<locals>.check�s#������j�'�-��;�;�;�;�;r r�)rr
)rr�r�s`  r�test_loads_recursionz!BugsTestCase.test_loads_recursion�sY���		3�		3�		3�	�	�#�w�}�%�%�%�	<�	<�	<�	<�	<��	�%������r c���gx}}tjdkrd}ntjdkrd}nd}t	|dz
��D] }|�dg��|d}�!t
j|��}t
j|��}|�	t|��t|����|�	t|d��t|d����|�	t|d��t|d����|�dg��|�ttj|��dS)	N�ntr��wasii�i�r$rr0)
�os�namer&�platformr��appendrrr
r�lenr�r�)r�head�last�MAX_MARSHAL_STACK_DEPTHr��data�new_heads       r�test_recursion_limitz!BugsTestCase.test_recursion_limit�sH�����t�
�7�d�?�?�&*�#�#�
�\�V�
#�
#�&*�#�#�&*�#��.��2�3�3�	�	�A��K�K��������8�D�D��}�T�"�"���=��&�&������X����D�	�	�2�2�2�����X�a�[�)�)�3�t�A�w�<�<�8�8�8�����X�b�\�*�*�C��R��M�M�:�:�:����Q�C�������*�g�m�T�:�:�:�:�:r c���tttttt
ttfD]B}td|fi��}|�	ttj|�����CdS)N�subtyp)
r1r@�complexr�r��dictr�r�r�r�r�rr)r�typr�s   r�test_exact_type_matchz"BugsTestCase.test_exact_type_matchsj��
�����d�C��K�	C�	C�C��(�S�F�B�/�/�F����j�'�-�����B�B�B�B�		C�	Cr c�V�td��}d|z}tj|��dS)Ng��.ArI)r1rr)r�size�
testStrings   r�test_large_marshalzBugsTestCase.test_large_marshal&s,���3�x�x���T�\�
��
�j�!�!�!�!�!r c�V�d}|�ttj|��dS)Ns	lr�)r�invalid_strings  r�test_invalid_longszBugsTestCase.test_invalid_longs+s'��=�����*�g�m�^�D�D�D�D�Dr c	�R�ddddddddgff}d	D�]�}t|��}g}	ttjd
��5}|D]U}t	j||��|r|�|��|�|������V	ddd��n#1swxYwYttjd��5}t|��D]r\}}|�
|t	j|����|r|�|��|�
|||������s	ddd��n#1swxYwYtj
tj����u#tj
tj��wxYwdS)Nr%rIsdef��?r$r�r;�c)r s0123r
r)r�rrrrr�writer��tell�	enumeraterr�readr)rr��interleaved�ilen�	positionsrr�r�s        r�test_multiple_dumps_and_loadsz*BugsTestCase.test_multiple_dumps_and_loads0s8���5�&�#��3��d��'<�=��)�	3�	3�K��{�#�#�D��I�
3��)�*�D�1�1�3�Q�!�3�3����Q��*�*�*��1��G�G�K�0�0�0�!�(�(������2�2�2�2�	3�3�3�3�3�3�3�3�3�3�3�3����3�3�3�3��)�*�D�1�1�A�Q� )�$���A�A���1��(�(��G�L��O�O�<�<�<��)��F�F�4�L�L�L��(�(��1��q�v�v�x�x�@�@�@�@�	A�A�A�A�A�A�A�A�A�A�A�A����A�A�A�A�� ��!1�2�2�2�2��	� ��!1�2�2�2�2����#	3�	3sT�F�AB$�F�$B(	�(F�+B(	�,F�	BE�
F�E	�F� E	�!F� F$c�V�d}|�ttj|��dS)N�T)r��	TypeErrorrr
)r�unicode_strings  r�!test_loads_reject_unicode_stringsz.BugsTestCase.test_loads_reject_unicode_stringsHs'�������)�W�]�N�C�C�C�C�Cr c
���Gd�dtj��}dD]C}|�ttj|t	j|�������DdS)Nc���eZdZ�fd�Z�xZS)�/BugsTestCase.test_bad_reader.<locals>.BadReaderc�d��t���|��}|�|dkr|dz
}|S)N�i@B)�super�readinto)r�bufr(�	__class__s   �rrz8BugsTestCase.test_bad_reader.<locals>.BadReader.readintoOs5����G�G�$�$�S�)�)���=�Q��U�U���J�A��r )rrrr�
__classcell__)rs@r�	BadReaderr�Ns8�������
�
�
�
�
�
�
�
�
r r)r�y�?s
0123456789�
0123456789)�io�BytesIOr�r�rrr)rr�values   r�test_bad_readerzBugsTestCase.test_bad_readerMs���	�	�	�	�	��
�	�	�	�<�	?�	?�E����j�'�,�'�i��
�e�(<�(<�=�=�
?�
?�
?�
?�	?�	?r c���tjd��}tt|����D]0}|�t
tj|d|����1dS)N)�hello�dollyNr)rrr�r�r��EOFErrorr
)rr�r�s   r�test_eofzBugsTestCase.test_eofXsb���}�5�6�6���s�4�y�y�!�!�	C�	C�A����h��
�t�A�q�D�z�B�B�B�B�	C�	Cr c��dD]�}dD]�}|�d|�d�}|�|��5tjjdvr>dd|�d�g}t	|d	d
i�\}}}t	|d	di�\}}}|�||��dd|�d
�g}t	|d	d
i�\}}}t	|d	di�\}}	}|�||	��ddd��n#1swxYwY�nj�dS)N)r�r�)z-float('nan'), b'a', b'b', b'c', 'x', 'y', 'z'zL('Spam', 0), ('Spam', 1), ('Spam', 2), ('Spam', 3), ('Spam', 4), ('Spam', 5)z([z])>�fnv�	siphash24rqzprint(�)�PYTHONHASHSEED�0�1z$import marshal; print(marshal.dumps(z)))�subTestr&�	hash_info�	algorithmr�assertNotEqualr)
r�kind�elementsr6�args�_�repr_0�repr_1�dump_0�dump_1s
          r�test_deterministic_setsz$BugsTestCase.test_deterministic_sets]sx��)�	5�	5�D��
5�
5��
�+�+�x�+�+�+���\�\�!�_�_�5�5��}�.�2F�F�F� $�m�q�m�m�m�4��'7��'R�c�'R�'R���6�1�'7��'R�c�'R�'R���6�1��+�+�F�F�;�;�;� �"N��"N�"N�"N�O�D�#3�T�#N�#�#N�#N�L�A�v�q�#3�T�#N�#�#N�#N�L�A�v�q��$�$�V�V�4�4�4�5�5�5�5�5�5�5�5�5�5�5����5�5�5�5��

5�	5�	5s�BC�C�	CN)rrrr�r�r�r�r�r�r�r�r�r�r�r	rr"rr rr�r��s�������$�$�$�O�O�O�
@�@�@�
��� � � �&;�;�;�8	C�	C�	C�"�"�"�
E�E�E�
3�3�3�0D�D�D�
	?�	?�	?�C�C�C�
5�5�5�5�5r r�ll��r-r�c��eZdZd�ZdS)�
NullWriterc��dSrWrrLs  rr�zNullWriter.write}s���r N)rrrr�rr rr$r$|s#������
�
�
�
�
r r$z!test cannot run on 32-bit systemsc��eZdZd�Zejedd���d���Zejedd���d���Zejee	dzd���d���Z
ejee	dzd���d	���Zejee	d
zej
edz
��zd���d���Zejee	d
zej
edz
��zd���d���Zejedd���d
���ZdS)�LargeValuesTestCasec�l�|�ttj|t	����dSrW)r�r�rrr$)rr�s  r�check_unmarshallablez(LargeValuesTestCase.check_unmarshallable�s(�����*�g�l�D�*�,�,�G�G�G�G�Gr r$F)r��memuse�dry_runc�6�|�d|z��dS)N�x�r)�rr�s  rrSzLargeValuesTestCase.test_bytes�s ���!�!�$��+�.�.�.�.�.r c�6�|�d|z��dS)Nrer.r/s  r�test_strzLargeValuesTestCase.test_str�s ���!�!�#��*�-�-�-�-�-r r%c�6�|�d|z��dS)NrWr.r/s  rr�zLargeValuesTestCase.test_tuple�s ���!�!�'�D�.�1�1�1�1�1r c�8�|�dg|z��dSrWr.r/s  rr�zLargeValuesTestCase.test_list�s"���!�!�4�&�4�-�0�0�0�0�0r �c�d�|�tt|������dSrW)r)r�r�r/s  r�test_setzLargeValuesTestCase.test_set�s,��	
�!�!�#�e�D�k�k�"2�"2�3�3�3�3�3r c�d�|�tt|������dSrW)r)r�r�r/s  r�test_frozensetz"LargeValuesTestCase.test_frozenset�s,��	
�!�!�)�E�$�K�K�"8�"8�9�9�9�9�9r c�J�|�t|����dSrW)r)r�r/s  rr�z"LargeValuesTestCase.test_bytearray�s"���!�!�)�D�/�/�2�2�2�2�2r N)rrrr)r�
bigmemtest�
LARGE_SIZErSr1�pointer_sizer�r�r&�	getsizeofr6r8r�rr rr'r'�s�������H�H�H��W��Z��5�A�A�A�/�/�B�A�/��W��Z��5�A�A�A�.�.�B�A�.��W��Z��q�0@�%�P�P�P�2�2�Q�P�2��W��Z��q�0@�%�P�P�P�1�1�Q�P�1��W��Z���?�]�S�]�:�a�<�%@�%@�@�����4�4���4��W��Z���?�]�S�]�:�a�<�%@�%@�@�����:�:���:��W��Z��5�A�A�A�3�3�B�A�3�3�3r r'c��t|��|vrdS|�t|����t|ttt
tf��r|D]}t||���nOt|t��r:|�	��D]%\}}t||��t||���&t|��S)z&Collect object ids seen in a structureN)�id�addryr�r�r�r��CollectObjectIDsr�r�r�)�idsr}�e�k�vs     rrArA�s���	�#�w�w�#�~�~����G�G�B�s�G�G�����#��e�S�)�4�5�5�%��	%�	%�A��S�!�$�$�$�$�	%�	�C��	�	�%��I�I�K�K�	%�	%�D�A�q��S�!�$�$�$��S�!�$�$�$�$��s�8�8�Or c�|�eZdZddddeddh��fZdd�Zd�Zd�Zd	�Zd
�Z	d�Z
d�Zd
�Zd�Z
d�Zd�Zd�ZdS)�InstancingTestCase�{獗n���?rI)rHrIFc��||f}tt��|��}tdtjdz��D][}tj||��}tt��tj|����}|�||���\|s�tj|d��}	tt��tj|	����}
|�|
|��|s2|�t|	��t|����dS|�
t|	��t|����dSdS)N�r%r$)rAr�r�r�versionrr
r�
assertGreaterr��assertGreaterEqual)r�rsample�	recursive�simpler�n0rE�s3�n3�s2�n2s           r�helper3zInstancingTestCase.helper3�s8���7�#��
�c�e�e�V�
,�
,���q�'�/�A�-�.�.�	%�	%�A���v�q�)�)�B�!�#�%�%���r�):�):�;�;�B�
���R��$�$�$�$��	:���v�q�)�)�B�!�#�%�%���r�):�):�;�;�B����r�2�&�&�&��
:��"�"�3�r�7�7�C��G�G�4�4�4�4�4��'�'��B����R���9�9�9�9�9�	:�	:r c�b�d}|�|��|�|d���dS)Ni��T)rQ�rrW)r�intobjs  r�testIntzInstancingTestCase.testInt�s5�������F�������V�D��)�)�)�)�)r c�^�d}|�|��|�|��dS)NrIrY)r�floatobjs  r�	testFloatzInstancingTestCase.testFloat�s1�������H�������X�����r c�^�d}|�|��|�|��dS)N�abcdeabcdeabcderY)r�strobjs  r�testStrzInstancingTestCase.testStr�s1�������F�������V�����r c�^�d}|�|��|�|��dS)NsabcdeabcdeabcderY)r�bytesobjs  r�	testByteszInstancingTestCase.testBytes�s1�������H�������X�����r c�v�|jD]0}||g}|�|��|�|���1dSrW�r�rrW)rr}�listobjs   r�testListzInstancingTestCase.testList�sM���9�	"�	"�C��C�j�G��K�K�� � � ��L�L��!�!�!�!�	"�	"r c�v�|jD]0}||f}|�|��|�|���1dSrWrg)rr}�tupleobjs   r�	testTuplezInstancingTestCase.testTuple�sM���9�	#�	#�C��S�z�H��K�K��!�!�!��L�L��"�"�"�"�	#�	#r c�~�|jD]4}|df|dfh}|�|��|�|���5dS�Nr%r$rg)rr}�setobjs   r�testSetzInstancingTestCase.testSet�sV���9�	!�	!�C��A�h��a��)�F��K�K������L�L�� � � � �	!�	!r c��|jD]A}t|df|dfh��}|�|��|�|���BdSrn)r�r�rrW)rr}�frozensetobjs   r�
testFrozenSetz InstancingTestCase.testFrozenSet�s^���9�	'�	'�C�$�s�A�h��a��%9�:�:�L��K�K��%�%�%��L�L��&�&�&�&�	'�	'r c�~�|jD]4}d|d||di}|�|��|�|���5dS)Nr�goodbyerg)rr}�dictobjs   r�testDictzInstancingTestCase.testDict�sV���9�	"�	"�C���Y��S�'�B�G��K�K�� � � ��L�L��!�!�!�!�	"�	"r c�<�ttd��5}|���}ddd��n#1swxYwYt�d��rt	|td��}|�|��|�|��dS�Nrz.pyrg)r�__file__r��endswithrjrrW)rrrts   r�
testModulezInstancingTestCase.testModules���
�(�D�
!�
!�	�Q��6�6�8�8�D�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	����U�#�#�	3��4��6�2�2�D����D�������T�������7�;�;c��d}d|d||di}||d<|�|d���||g}|�|��|�|d���dS)NrIrrurT)rP)rWr�)rr}r��ls    r�
testRecursionz InstancingTestCase.testRecursion
sl����
�c�9�c�3��8����&�	����Q�$��'�'�'�
�#�J��	����������Q�$��'�'�'�'�'r N)FF)rrrr�r�rWr[r^rbrerirlrprsrwr|r�rr rrGrG�s�����������i�i��e��.E�.E�F�D�:�:�:�:�4*�*�*�
���
���
���
"�"�"�#�#�#�!�!�!�'�'�'�"�"�"����(�(�(�(�(r rGc�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�CompatibilityTestCasec�:�ttd��5}|���}ddd��n#1swxYwYt�d��rt	|td��}tj||��}tj|��dSry)rrzr�r{rjrrr
)rrLrrtr�s     r�_testzCompatibilityTestCase._tests���
�(�D�
!�
!�	�Q��6�6�8�8�D�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	����U�#�#�	3��4��6�2�2�D��}�T�7�+�+���
�d�����r}c�0�|�d��dS)Nr�r�r�s r�test0To3zCompatibilityTestCase.test0To3����
�
�1�
�
�
�
�
r c�0�|�d��dS)Nr%r�r�s r�test1To3zCompatibilityTestCase.test1To3r�r c�0�|�d��dS�Nr$r�r�s r�test2To3zCompatibilityTestCase.test2To3"r�r c�0�|�d��dS)NrKr�r�s r�test3To3zCompatibilityTestCase.test3To3%r�r N)rrrr�r�r�r�r�rr rr�r�s_����������������������r r�c�>�eZdZdZeje��Zd�Zd�ZdS)�InterningTestCasezthis is an interned stringc��tjtj|j����}|�||j��|�t|��t|j����t
j|��}|�t|��t|����dSrW)rr
rrarr?r&�intern�rr6rUs   r�
testInternzInterningTestCase.testIntern,s����M�'�-���4�4�5�5������D�K�(�(�(�����A����4�;���0�0�0�
�Z��]�]������B����A���'�'�'�'�'r c��tjtj|jd����}|�||j��|�t
|��t
|j����tj|��}|�t
|��t
|����dSr�)	rr
rrarrr?r&r�r�s   r�testNoInternzInterningTestCase.testNoIntern3s����M�'�-���Q�7�7�8�8������D�K�(�(�(����B�q�E�E�2�d�k�?�?�3�3�3�
�Z��]�]�����B�r�F�F�B�q�E�E�*�*�*�*�*r N)rrrrar&r�r�r�rr rr�r�(sH������
)�F�
�S�Z��
�
�F�(�(�(�+�+�+�+�+r r�zrequires _testcapic�2�eZdZd�Zd�Zd�Zd�Zd�Zd�ZdS)�
CAPI_TestCasec�x�ttjdz��D]�}tjdt
j|��tt
jd��5}|���}ddd��n#1swxYwYtj	t
j��|�
|d����dS)Nr%�xV4rsxV4)r�rrL�	_testcapi�pymarshal_write_long_to_filerrrr�rr)rrErr�s    r�test_write_long_to_filez%CAPI_TestCase.test_write_long_to_file>s����w���*�+�+�	8�	8�A��2�:�y�?O�QR�S�S�S��i�&��-�-�
 ���v�v�x�x��
 �
 �
 �
 �
 �
 �
 �
 �
 �
 �
 ����
 �
 �
 �
 ���Y�-�.�.�.����T�#6�7�7�7�7�	8�	8s�A:�:A>	�A>	c��dddddddzf}ttjdz��D]�}tj|t
j|��tt
jd	��5}|���}ddd��n#1swxYwYtj	t
j��|�
tj|��|����dS)
N�€rQrH�������F@�@ @z
long line r�r%r)r�rrLr��pymarshal_write_object_to_filerrrr�rrr
)rr}rErr�s     r�test_write_object_to_filez'CAPI_TestCase.test_write_object_to_fileFs�����d�D�,�t�2C�D���w���*�+�+�	7�	7�A��4�S�)�:J�A�N�N�N��i�&��-�-�
 ���v�v�x�x��
 �
 �
 �
 �
 �
 �
 �
 �
 �
 �
 ����
 �
 �
 �
 ���Y�-�.�.�.����W�]�4�0�0�#�6�6�6�6�	7�	7s�$B�B		�B		c���ttjd��5}|�d��ddd��n#1swxYwYt	jtj��\}}tjtj��|�|d��|�|d��ttjd��5}|�d��ddd��n#1swxYwY|�t��5t	jtj��ddd��n#1swxYwYtjtj��dS)Nr
s4xxxxi4r$�)
rrrr�r��pymarshal_read_short_from_filerrr�r
�rr�r�ps    r�test_read_short_from_filez'CAPI_TestCase.test_read_short_from_fileOs���
�)�"�D�
)�
)�	%�Q�
�G�G�O�$�$�$�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%��7�	�8H�I�I���1����)�*�*�*�����F�#�#�#�����A����
�)�"�D�
)�
)�	�Q�
�G�G�G����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
�
�x�
(�
(�	G�	G��4�Y�5E�F�F�F�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G����	G�	G�	G�	G����)�*�*�*�*�*�3�=�A�A�
C/�/C3�6C3�D?�?E�Ec���ttjd��5}|�d��ddd��n#1swxYwYt	jtj��\}}tjtj��|�|d��|�|d��ttjd��5}|�d��ddd��n#1swxYwY|�t��5t	jtj��ddd��n#1swxYwYtjtj��dS)Nr
sxV4xxxxr�r�sV4)
rrrr�r��pymarshal_read_long_from_filerrr�r
r�s    r�test_read_long_from_filez&CAPI_TestCase.test_read_long_from_file]s���
�)�"�D�
)�
)�	-�Q�
�G�G�+�,�,�,�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-��6�y�7G�H�H���1����)�*�*�*�����J�'�'�'�����A����
�)�"�D�
)�
)�	%�Q�
�G�G�O�$�$�$�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%�	%����	%�	%�	%�	%�
�
�
�x�
(�
(�	F�	F��3�I�4D�E�E�E�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F�	F����	F�	F�	F�	F����)�*�*�*�*�*r�c�.�d}ttjdz��D�]t}tj||��}t	t
jd��5}|�|dz��ddd��n#1swxYwYtj	t
j��\}}tj
t
j��|�||��t	t
jd��5}|�|dd���ddd��n#1swxYwY|�t��5tj	t
j��ddd��n#1swxYwYtj
t
j����vdS�N)r�rQrHr�r�r%r
sxxxx)r�rrLrrrrr�r��$pymarshal_read_last_object_from_filerrr�r
�rr}rEr�rr�r�s       r�test_read_last_object_from_filez-CAPI_TestCase.test_read_last_object_from_fileks ��1���w���*�+�+�	/�	/�A��=��a�(�(�D��i�&��-�-�
(������w��'�'�'�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(����
(�
(�
(�
(��A�)�BR�S�S�D�A�q���Y�-�.�.�.����Q��$�$�$��i�&��-�-�
"������R�a�R��!�!�!�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"����
"�
"�
"�
"��"�"�8�,�,�
Q�
Q��>�y�?O�P�P�P�
Q�
Q�
Q�
Q�
Q�
Q�
Q�
Q�
Q�
Q�
Q����
Q�
Q�
Q�
Q���Y�-�.�.�.�.�	/�	/s6�A6�6A:	�=A:	�0D�D	�!D	�?E*�*E.	�1E.	c�t�d}ttjdz��D�]�}tj||��}t	t
jd��5}|�|dz��ddd��n#1swxYwYtj	t
j��\}}tj
t
j��|�||��|�|t|����t	t
jd��5}|�|dd���ddd��n#1swxYwY|�
t��5tj	t
j��ddd��n#1swxYwYtj
t
j�����dSr�)r�rrLrrrrr�r��pymarshal_read_object_from_filerrr�r�r
r�s       r�test_read_object_from_filez(CAPI_TestCase.test_read_object_from_file{s<��1���w���*�+�+�
	/�
	/�A��=��a�(�(�D��i�&��-�-�
(������w��'�'�'�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(�
(����
(�
(�
(�
(��<�Y�=M�N�N�D�A�q���Y�-�.�.�.����Q��$�$�$����Q��D�	�	�*�*�*��i�&��-�-�
"������R�a�R��!�!�!�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"����
"�
"�
"�
"��"�"�8�,�,�
L�
L��9�)�:J�K�K�K�
L�
L�
L�
L�
L�
L�
L�
L�
L�
L�
L����
L�
L�
L�
L���Y�-�.�.�.�.�
	/�
	/s6�A6�6A:	�=A:	�D=�=E	�E	�"F
�
F	�F	N)	rrrr�r�r�r�r�r�rr rr�r�:sn������8�8�8�7�7�7�+�+�+�+�+�+�/�/�/� /�/�/�/�/r r��__main__)*�testr�test.supportrr�test.support.script_helperrr�rrr&�unittestr�rzrrr��ImportErrorr�TestCaser"r>rDrUr[r�r�r�r;r'r<r$�skipIfr'rArGr�r�r�
skipUnlessr�r�mainrr r�<module>r�s(��������9�9�9�9�9�9�9�9�7�7�7�7�7�7�����	�	�	�	�����
�
�
�
�����	�	�	�	���������������������I�I�I�����/�/�/�/�/�/�/�/�"�"�"�"�"�(�#�[�"�"�"�H�����H�%�{����6�����X�&�����-�-�-�-�-��)�-�-�-�
2?�2?�2?�2?�2?�8�$�2?�2?�2?�h4�4�4�4�4��)�;�4�4�4�2&�&�&�&�&�X�&��&�&�&�(f5�f5�f5�f5�f5�8�$�f5�f5�f5�P�
��K�*�,�,�q�q�!��
�
�
�
�
�
�
�
�����c�k�)�+N�O�O�"3�"3�"3�"3�"3�(�+�"3�"3�P�O�"3�H���^(�^(�^(�^(�^(��*�K�^(�^(�^(�@�����H�-����*+�+�+�+�+��)�;�+�+�+�$	�����Y� 4�5�5�N/�N/�N/�N/�N/�H�%�{�N/�N/�6�5���N/�b�z����H�M�O�O�O�O�O��s�;�A�A