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

�Ke�}���dZddlZddlmZddlZddlZddlZddlZGd�d��Z	Gd�d��Z
Gd�d	��ZGd
�dee
ej��Z
Gd�d
��ZGd�dee
eej��ZGd�deej��ZGd�de
��ZGd�de��ZGd�de��Zedkrej��dSdS)zdUnit tests for memory-based file-like objects.
StringIO -- for unicode strings
BytesIO -- for bytes
�N)�supportc��eZdZd�Zd�ZeZdS)�IntLikec��||_dS�N��_num)�self�nums  �</usr/local/apps/python3/lib/python3.11/test/test_memoryio.py�__init__zIntLike.__init__s
����	�	�	�c��|jSrr�r
s r�	__index__zIntLike.__index__s
���y�rN)�__name__�
__module__�__qualname__r
r�__int__�rrrrs1�������������G�G�Grrc�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�MemorySeekTestMixinc�Z�|�d��}|�|��}dS�N�
1234567890)�buftype�ioclass�r
�buf�bytesIos   r�testInitzMemorySeekTestMixin.testInits(���l�l�<�(�(���,�,�s�#�#���rc���|�d��}|�|��}|�|dd�|�d����|�|dd�|�d����|�|dd�|�d����|�|j|�����dS)Nr�����rr�assertEqual�read�EOFrs   r�testReadzMemorySeekTestMixin.testReads����l�l�<�(�(���,�,�s�#�#������R�a�R��'�,�,�q�/�/�2�2�2�����Q�q�S��7�<�<��?�?�3�3�3�����Q�R�R��'�,�,�s�"3�"3�4�4�4������7�<�<�>�>�2�2�2�2�2rc��|�d��}|�|��}|�||�����|�|j|�����dSrr'rs   r�testReadNoArgsz"MemorySeekTestMixin.testReadNoArgs$sh���l�l�<�(�(���,�,�s�#�#������g�l�l�n�n�-�-�-������7�<�<�>�>�2�2�2�2�2rc���|�d��}|�|��}|�d��|�d��|�||�����|�d��|�|dd�|�����|�t|jd��dS)Nrr$r��)rrr)�seekr(�assertRaises�	TypeErrorrs   r�testSeekzMemorySeekTestMixin.testSeek+s����l�l�<�(�(���,�,�s�#�#�����Q�������Q��������g�l�l�n�n�-�-�-����Q��������Q�R�R��'�,�,�.�.�1�1�1����)�W�\�3�7�7�7�7�7rc��|�d��}|�|��}|�d|�����|�d��|�d|�����|�d��|�d|�����dS�Nrrr$i')rrr(�tellr1rs   r�testTellzMemorySeekTestMixin.testTell7s����l�l�<�(�(���,�,�s�#�#������G�L�L�N�N�+�+�+����Q��������G�L�L�N�N�+�+�+����U�������������/�/�/�/�/rN)rrrr!r+r-r4r8rrrrrs_������$�$�$�3�3�3�3�3�3�
8�
8�
8�0�0�0�0�0rrc��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)�MemoryTestMixinc�n�|���}|�|j|j��dSr)rr2�UnsupportedOperation�detach�r
rs  r�test_detachzMemoryTestMixin.test_detachDs0���l�l�n�n�����$�3�S�Z�@�@�@�@�@rc���|�|�|d����d��|�|�d��d��|�|�|d����d��|�|���d��|�|�d��d��|�|���d��|�|�|d����d��|�|�d��d��|�|�|d����d	��|�|�d
��d
��|�|���d	��dS)Nzblah.r$rzHello.�z	 world


�	�hr#�)r(�writer1r7�truncate)r
�f�ts   r�	write_opszMemoryTestMixin.write_opsHs�����������7���,�,�a�0�0�0����������A�&�&�&���������8���-�-�q�1�1�1���������1�%�%�%����������A�&�&�&���������1�%�%�%���������>�!2�!2�3�3�Q�7�7�7����������A�&�&�&���������3�����!�,�,�,�������B����,�,�,���������1�%�%�%�%�%rc�`�|�d��}|�|��}|�||j��|�|���|��|���}|�||j��|�|���|��|�t|jd��|���|�t|j|�d����dS)Nzhello world
�)
rrrIr(�getvaluer2r3rE�close�
ValueError�r
r�memios   r�
test_writezMemoryTestMixin.test_writeUs����l�l�?�+�+�����S�!�!�����u�d�l�+�+�+�������)�)�3�/�/�/����������u�d�l�+�+�+�������)�)�3�/�/�/����)�U�[�$�7�7�7�
���
�
�
����*�e�k�4�<�<��3C�3C�D�D�D�D�Drc��|�d��}|���}|�|�|gdz��d��|�|���|dz��|�g��|�|���|dz��|���}|�t|j|gdgz��|�|���|��|�t|jd��|���|�t|jg��dS)Nr�dr#)	rrr(�
writelinesrLr2r3rMrNrOs   r�test_writelineszMemoryTestMixin.test_writelinesbs?���l�l�<�(�(������������)�)�3�%�#�+�6�6��=�=�=�������)�)�3��9�5�5�5�
�������������)�)�3��9�5�5�5����������)�U�%5��u��s�{�C�C�C�������)�)�3�/�/�/����)�U�%5�t�<�<�<�
���
�
�
����*�e�&6��;�;�;�;�;rc�������}�fd�}��t|j|����dS)Nc3�D�K���d��V�t�)N�spam)r�KeyboardInterruptrs�r�	error_genz8MemoryTestMixin.test_writelines_error.<locals>.error_genss%������,�,�v�&�&�&�&�&�#�#r)rr2rYrT)r
rPrZs`  r�test_writelines_errorz%MemoryTestMixin.test_writelines_errorqsS���������	$�	$�	$�	$�	$�	
���+�U�-=�y�y�{�{�K�K�K�K�Krc�.�|�d��}|�|��}|�t|jd��|�t|jtd����|�d��|�|�td����d��|�|���|dd���|�|���d��|�|���|dd���|�|�d��d��|�|���|dd���|�|�	��d��|�dd��|�
|��|�|���|dd�|z��|�	��}|�|�d��|��|�|�	��|��|�t|jd��|���|�t|jd��|�t|jtd����dS)	Nr���rA�r%r��0)
rrr2rNrFrr1r(rLr7rEr3rM)r
rrP�poss    r�
test_truncatezMemoryTestMixin.test_truncateyss���l�l�<�(�(�����S�!�!�����*�e�n�b�9�9�9����*�e�n�g�b�k�k�B�B�B�
�
�
�1�
�
�
���������
�
�3�3�Q�7�7�7�������)�)�3�r��r�7�3�3�3�������)�)�1�-�-�-�������)�)�3�r��r�7�3�3�3��������*�*�A�.�.�.�������)�)�3�r��r�7�3�3�3���������q�)�)�)�
�
�
�1�a����
���C����������)�)�3�r��r�7�S�=�9�9�9��j�j�l�l���������-�-�s�3�3�3���������s�+�+�+����)�U�^�S�9�9�9�
���
�
�
����*�e�n�a�8�8�8����*�e�n�g�a�j�j�A�A�A�A�Arc�p�|�d��}|�|��}|�|���|��|�d��}|�|���|j��|�|dz��|�|���|dz��|�|��|�|���|��|�t|jg��dS)Nrr_)rrr(rLr*r
r2r3rOs   r�	test_initzMemoryTestMixin.test_init�s���l�l�<�(�(�����S�!�!��������)�)�3�/�/�/����T�"�"��������)�)�4�8�4�4�4�
���s�Q�w����������)�)�3��7�3�3�3�
���s����������)�)�3�/�/�/����)�U�^�R�8�8�8�8�8rc��|�d��}|�|��}|�|�d��|j��|�|�d��|dd���|�|�d��|dd���|�|�d��|dd���|�|���|j��|�d��|�|�t
d����|j��|�|�t
d����|dd���|�|�t
d����|dd���|�|�t
d����|dd���|�d��|�|���|��|�|���|j��|�|���d��|�d��|�|�d��|��|�d��|�|�t
d����|��|�d��|�t|�����t|����|�d	��|�t|�����t|����|�d��|�|�d��|��|�	t|jd
��|�t|��dz��|�|�d��|j��|�t|��dz��|�|�t
d����|j��|�t|��dz��|�|���|j��|���|�	t|j��dS)Nrrr#r%r$r&�
r]rSrK)rrr(r)r*r1rr7�typer2r3�lenrMrNrOs   r�	test_readzMemoryTestMixin.test_read�s$���l�l�<�(�(�����S�!�!��������A�����1�1�1�������A����B�Q�B��0�0�0�������A����A�a�C��1�1�1�������C���#�a�b�b�'�2�2�2���������t�x�0�0�0�
�
�
�1�
�
�
�������G�A�J�J�/�/���:�:�:�������G�A�J�J�/�/��R�a�R��9�9�9�������G�A�J�J�/�/��Q�q�S��:�:�:�������G�C�L�L�1�1�3�q�r�r�7�;�;�;�
�
�
�1�
�
�
���������s�+�+�+���������t�x�0�0�0���������r�*�*�*�
�
�
�1�
�
�
�������B����-�-�-�
�
�
�1�
�
�
�������G�B�K�K�0�0�#�6�6�6�
�
�
�1�
�
�
�����e�j�j�l�l�+�+�T�#�Y�Y�7�7�7�
�
�
�3��������e�j�j�l�l�+�+�T�#�Y�Y�7�7�7�
�
�
�1�
�
�
�������D�)�)�3�/�/�/����)�U�Z��4�4�4�
�
�
�3�s�8�8�a�<� � � �������A�����1�1�1�
�
�
�3�s�8�8�a�<� � � �������G�A�J�J�/�/���:�:�:�
�
�
�3�s�8�8�a�<� � � ���������t�x�0�0�0�
���
�
�
����*�e�j�1�1�1�1�1rc�>�|�d��}|�|dz��}|�|�d��|j��|�|�td����|j��|�|���|��|�|���|��|�|���|j��|�d��|�|�d��|dd���|�|�d��|dd���|�|�d��|dd���|�d��|�|�td����|dd���|�|�td����|dd���|�|�td����|dd���|�d��|�|�d��|��|�d��|�|�td����|��|�d��|�|�d��|j��|�|�td����|j��|�t|��dzdz��|�|���|j��|�d��}|�|d	zdd���}|�|���|��|�|���|��|�|���|dd���|�|���|j��|�d��|�t|�����t|����|�|���|��|�	t|jd
��|���|�	t|j��dS)N�1234567890
r_rr$rf�r]r#r/rK)
rrr(�readliner*rr1rhrgr2r3rMrNrOs   r�
test_readlinezMemoryTestMixin.test_readline�sf���l�l�>�*�*�����S�1�W�%�%���������*�*�D�H�5�5�5���������
�
�3�3�T�X�>�>�>�������)�)�3�/�/�/�������)�)�3�/�/�/�������)�)�4�8�4�4�4�
�
�
�1�
�
�
��������*�*�C����G�4�4�4��������*�*�C��"��I�6�6�6��������*�*�C��2��J�7�7�7�
�
�
�1�
�
�
���������
�
�3�3�S��!��W�=�=�=���������
�
�3�3�S��2��Y�?�?�?���������
�
�3�3�S��B��Z�@�@�@�
�
�
�1�
�
�
��������+�+�S�1�1�1�
�
�
�1�
�
�
�����������4�4�c�:�:�:�
�
�
�1�
�
�
��������*�*�D�H�5�5�5���������
�
�3�3�T�X�>�>�>�
�
�
�3�s�8�8�a�<�!�#�$�$�$�������)�)�4�8�4�4�4��l�l�>�*�*�����c�A�g�s��s�^�,�,��������)�)�3�/�/�/�������)�)�3�/�/�/�������)�)�3�s��s�8�4�4�4�������)�)�4�8�4�4�4�
�
�
�1�
�
�
�����e�n�n�.�.�/�/��c���;�;�;�������)�)�3�/�/�/����)�U�^�R�8�8�8�
���
�
�
����*�u�~�6�6�6�6�6rc�f�|�d��}|�|dz��}|�|���|gdz��|�d��|�|���|dd�g|gdzz��|�d��|�|�d��|gdz��|�d��|�|�d��|gdz��|�d��|�|�d��|gdz��|�d��|�t|���d��t|����|�d��|�|�d��|gdz��|�t|jd	��|�t|��dzd
z��|�|���g��|�	��|�t|j��dS)Nrkrfr$rBrrlr_r]rKr#)rrr(�	readlinesr1rgr2r3rhrMrNrOs   r�test_readlineszMemoryTestMixin.test_readlines�s6���l�l�>�*�*�����S�2�X�&�&��������*�*�S�E�B�J�7�7�7�
�
�
�1�
�
�
�������*�*�S����W�I����	�,A�B�B�B�
�
�
�1�
�
�
��������,�,�s�e�a�i�8�8�8�
�
�
�1�
�
�
��������,�,�s�e�b�j�9�9�9�
�
�
�1�
�
�
��������+�+�c�U�R�Z�8�8�8�
�
�
�1�
�
�
�����e�o�o�/�/��2�3�3�T�#�Y�Y�?�?�?�
�
�
�1�
�
�
��������.�.����
�;�;�;����)�U�_�b�9�9�9�
�
�
�3�s�8�8�b�=�1�$�%�%�%�������*�*�B�/�/�/�
���
�
�
����*�e�o�6�6�6�6�6rc�j�|�d��}|�|dz��}|�t|��|��|�t|d����|�t|d����d}|D]}|�||��|dz
}�|�|d��|�d��d}|D]}|�||��|dz
}�|�|d��|�t|��dzdz��|�t|��g��|�|dz��}|�	��|�
t|j��dS)Nrkrf�__iter__�__next__rr#r_)
rrr(�iter�
assertTrue�hasattrr1rh�listrMr2rNrt)r
rrP�i�lines     r�
test_iteratorzMemoryTestMixin.test_iterators����l�l�>�*�*�����S�2�X�&�&������e���e�,�,�,������z�2�2�3�3�3������z�2�2�3�3�3�
���	�	�D����T�3�'�'�'�
��F�A�A�����B����
�
�
�1�
�
�
�
���	�	�D����T�3�'�'�'�
��F�A�A�����B����
�
�
�3�s�8�8�b�=�1�$�%�%�%�����e���b�)�)�)����S�1�W�%�%��
���
�
�
����*�e�n�5�5�5�5�5rc���|�d��}|�|��}|�|���|��|���|�|���|��|�t|�����t|����|�|dz��}|�|���dd�|�d����|�|��}|���|�t|j��dS)Nr������890)	rrr(rLr)rgrMr2rNrOs   r�
test_getvaluezMemoryTestMixin.test_getvalues%���l�l�<�(�(�����S�!�!��������)�)�3�/�/�/�
�
�
����������)�)�3�/�/�/�����e�n�n�.�.�/�/��c���;�;�;����S�4�Z�(�(��������)�)�"�#�#�.����U�0C�0C�D�D�D����S�!�!��
���
�
�
����*�e�n�5�5�5�5�5rc��|�d��}|�|��}|�d��|�t|jd��|�t|jdd��|�t|jdd��|�|�d��d��|�|�dd��d��|�|���|��|�|�d��d��|�|�dd��d��|�|���|dd���|�|�t|����t|����|�|���|j��|�t|��dz��|�|���|j��|�|�dd��t|����|�|���|j��|�	��|�t|jd��dS)Nrr$r]r#r/rr_)
rrr)r2rNr1r(rhr*rMrOs   r�	test_seekzMemoryTestMixin.test_seek,sR���l�l�<�(�(�����S�!�!��
�
�
�1�
�
�
����*�e�j�"�5�5�5����*�e�j�!�R�8�8�8����*�e�j�!�Q�7�7�7�������A����*�*�*�������A�q�)�)�1�-�-�-���������s�+�+�+�������A����*�*�*�������A�q�)�)�1�-�-�-���������s�1�2�2�w�/�/�/�������C��H�H�-�-�s�3�x�x�8�8�8���������t�x�0�0�0�
�
�
�3�s�8�8�a�<� � � ���������t�x�0�0�0�������A�q�)�)�3�s�8�8�4�4�4���������t�x�0�0�0�
���
�
�
����*�e�j�!�4�4�4�4�4rc��|�d��}|�|��}|�|�t	|��dz��d��|�|���|j��|�|���d��|�|���|��|�	|j��|�|���|��|�	|��|�|���||�d��z|z��dS)Nrr#��)
rrr(r1rhr)r*r7rLrErOs   r�
test_overseekzMemoryTestMixin.test_overseekCs0���l�l�<�(�(�����S�!�!��������C��H�H�q�L�1�1�2�6�6�6���������t�x�0�0�0���������r�*�*�*�������)�)�3�/�/�/�
���D�H����������)�)�3�/�/�/�
���C����������)�)�3����d�1C�1C�+C�c�+I�J�J�J�J�Jrc��|�d��}|�|��}|�|���d��|�d��|�|���d��|�d��|�|���d��|���|�t|j��dSr6)rrr(r7r1rMr2rNrOs   r�	test_tellzMemoryTestMixin.test_tellPs����l�l�<�(�(�����S�!�!����������q�)�)�)�
�
�
�1�
�
�
���������q�)�)�)�
�
�
�5������������u�-�-�-�
���
�
�
����*�e�j�1�1�1�1�1rc��|�d��}|�|��}|�|���d��dSr)rrr(�flushrOs   r�
test_flushzMemoryTestMixin.test_flush\sH���l�l�<�(�(�����S�!�!�����������-�-�-�-�-rc��|���}|�|���d��|�|���d��|�|���d��|�|���d��|�|jd��|���|�t|j��|�t|j��|�t|j��|�t|j��|�|jd��dS)NTF)
rr(�writable�readable�seekable�isatty�closedrMr2rN�r
rPs  r�
test_flagszMemoryTestMixin.test_flagsbs0��������������)�)�4�0�0�0�������)�)�4�0�0�0�������)�)�4�0�0�0����������/�/�/������u�-�-�-�
���
�
�
����*�e�n�5�5�5����*�e�n�5�5�5����*�e�n�5�5�5����*�e�l�3�3�3������t�,�,�,�,�,rc�������d�����fd�}��fd�}��|�������|�����dS)Nrc�h��Gd�d�j��}|���}|���S)Nc��eZdZdS)�>MemoryTestMixin.test_subclassing.<locals>.test1.<locals>.MemION)rrrrrr�MemIOr�ts�������rr��rrL�r��mrr
s  ��r�test1z/MemoryTestMixin.test_subclassing.<locals>.test1ssJ���
�
�
�
�
���
�
�
���c�
�
�A��:�:�<�<�rc�n��G�fd�d�j��}|�d��}|���S)Nc���eZdZ�fd�ZdS)�>MemoryTestMixin.test_subclassing.<locals>.test2.<locals>.MemIOc�>���j�||��dSr)rr
)�me�a�br
s   �rr
zGMemoryTestMixin.test_subclassing.<locals>.test2.<locals>.MemIO.__init__zs!����L�)�)�"�a�0�0�0�0�0rN�rrrr
rs�rr�r�ys.�������1�1�1�1�1�1�1rr�r�r�s  ��r�test2z/MemoryTestMixin.test_subclassing.<locals>.test2xsZ���
1�
1�
1�
1�
1�
1�
1���
1�
1�
1���c�4� � �A��:�:�<�<�r)rr()r
r�r�rs`  @r�test_subclassingz MemoryTestMixin.test_subclassingqs������l�l�<�(�(��	 �	 �	 �	 �	 �	 �
	 �	 �	 �	 �	 �	 �	
�������#�&�&�&��������#�&�&�&�&�&rc�`�td��D]}|���}d|_�dS)NrSr#)�ranger�foo)r
�_rPs   r�test_instance_dict_leakz'MemoryTestMixin.test_instance_dict_leak�s9���s���	�	�A��L�L�N�N�E��E�I�I�	�	rc������d��}��|��}d|_|�d��G�fd�d�j��}ddl}d|_|j|_||_||d��}|�d��tdtjd	z��D�]#}||fD�]}tjtj
||�
����}��|���|�������|j|j����|j|j����|���|�����|�����t(tj
||������%|`dS)Nr�*r_c���eZdZ�fd�ZdS)�6MemoryTestMixin.test_pickling.<locals>.PickleTestMemIOc�L���j�||��||_dSr)rr
r�)r��	initvaluer�r
s   �rr
z?MemoryTestMixin.test_pickling.<locals>.PickleTestMemIO.__init__�s&�����%�%�b�)�4�4�4�����rNr�rs�r�PickleTestMemIOr��s.�������
�
�
�
�
�
�
rr�r�__main__�Pr#)�protocol)rrr�r1r�rrrr�r��pickle�HIGHEST_PROTOCOL�loads�dumpsr(rL�	__class__r7rMr2rN)	r
rrPr�r��submemio�proto�obj�obj2s	`        r�
test_picklingzMemoryTestMixin.test_pickling�s�����l�l�<�(�(�����S�!�!����	�
�
�
�1�
�
�
�	�	�	�	�	�	�	�d�l�	�	�	�	����%/��"�'6�'?��$�#2�� �"�?�3��+�+���
�
�a�����1�f�5��9�:�:�	I�	I�E��x�(�
I�
I���|�F�L��u�$E�$E�$E�F�F��� � �����������A�A�A�� � �����?�?�?�� � ���$�(�3�3�3�� � ������T�Y�Y�[�[�9�9�9��
�
�����!�!�*�f�l�D�%�H�H�H�H�
I�
�$�$�$rN)rrrr?rIrQrUr[rbrdrirnrqr{r�r�r�r�r�r�r�r�r�rrrr:r:BsQ������A�A�A�&�&�&�E�E�E�
<�
<�
<�L�L�L�B�B�B�2
9�
9�
9�$2�$2�$2�L'7�'7�'7�R7�7�7�06�6�6�26�6�6�5�5�5�.K�K�K�
2�
2�
2�.�.�.�
-�
-�
-�'�'�'� ���#%�#%�#%�#%�#%rr:c�n�eZdZejZed���ZejZdZ	d�Z
d�Zd�Zd�Z
d�Zd�Zd	�Zd
S)�
PyBytesIOTestc�,�|�d��S)N�ascii)�encode)�ss rrzPyBytesIOTest.buftype�s���x�x�� � � rrc��|�d��}|���}|�t|��d��|�d��|���}|�t|��d��|�t|jd��|�t|j��|�t|j	��|�
|j��d|dd�<|�t|��d��|�|���d��~tj��|���|�	��|�t|j��dS)N�
1234567890r$sdxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxsabcr/rAs
123abc7890)r�	getbufferr(�bytesr1r2�BufferErrorrErFrM�assertFalser�rLr�
gc_collectrN)r
rPrs   r�test_getbufferzPyBytesIOTest.test_getbuffer�sr�����]�+�+���o�o��������s���]�3�3�3�
�
�
�1�
�
�
��o�o��������s���]�3�3�3�	
���+�u�{�J�?�?�?����+�u�~�6�6�6����+�u�{�3�3�3������&�&�&���A�a�C������s���]�3�3�3�������)�)�=�9�9�9�
������
������
���
�
�
����*�e�o�6�6�6�6�6rc��|�d��}|�|�|�����|��|�|�|���d��|��dS)Nrr])rr(r�read1r>s  r�
test_read1zPyBytesIOTest.test_read1�sw���l�l�<�(�(��������c�*�*�0�0�2�2�C�8�8�8�������c�*�*�0�0��4�4�c�:�:�:�:�:rc���|�d��}|�|��}td��}|�|�|��d��|�|d��|�|�|��d��|�|d��|�|�|��d��|�|d��td��}|�d��|�|�|��d��|�|d	��td
��}|�d��|�|�|��d��|�|d
��|�t|jd��ddl}|�dd��}|�|��}|�|��|�|�	��d	��|�
��|�t|j|��|�d
��}t��}|�d��|�|��|�|d
��dS)Nrshellor$s12345s67890rshello worldrfs1234567890drrKr�s123r�)rr�	bytearrayr(�readintor1r2r3�array�tobytesrMrN)r
rrPr�r�r�s      r�
test_readintozPyBytesIOTest.test_readinto�st���l�l�<�(�(�����S�!�!���h�����������*�*�A�.�.�.�����H�%�%�%��������*�*�A�.�.�.�����H�%�%�%��������*�*�A�.�.�.�����H�%�%�%��n�%�%��
�
�
�1�
�
�
��������*�*�B�/�/�/�����N�+�+�+��c�N�N��
�
�
�1�
�
�
��������*�*�A�.�.�.�����C� � � ����)�U�^�R�8�8�8������K�K��^�,�,�����S�!�!��
���q������������n�5�5�5�
���
�
�
����*�e�n�a�8�8�8����V�$�$���K�K��
�
�
�2����
���q��������C� � � � � rc��|�d��}|�|��}|�|�dd��d��|�|�dd��d��|�|�dd��d��|�|�dd��d��|�|�dd��d	��|�|�dd��d
��|�dd��|�|���|dd���|�d��|�dd��|�|���|dd���dS)Nrr]r#rr/���r_rBrfr�r~)rrr(r1r)rOs   r�test_relative_seekz PyBytesIOTest.test_relative_seek�s����l�l�<�(�(�����S�!�!��������B��*�*�A�.�.�.�������A�q�)�)�1�-�-�-�������B��*�*�A�.�.�.�������B��*�*�A�.�.�.�������A�q�)�)�2�.�.�.�������A�q�)�)�2�.�.�.�
�
�
�2�q������������s�2�3�3�x�0�0�0�
�
�
�1�
�
�
�
�
�
�1�a������������s�1�2�2�w�/�/�/�/�/rc��|���}|�t|jd��|�t|jd��|�t|jdg��dSr)rr2r3rErTr�s  r�test_unicodezPyBytesIOTest.test_unicodesf�����������)�T�\�<�@�@�@����)�U�[�,�?�?�?����)�U�%5��~�F�F�F�F�Frc�t�d}ddl}|�dt|����}|�|��}|�|���|��|�|�|��d��|�|���|��dS)Nr�rr�rf)r�rxrr(rLrE)r
rr�r�rPs     r�test_bytes_arrayzPyBytesIOTest.test_bytes_arrays����������K�K��T�#�Y�Y�'�'�����Q����������)�)�3�/�/�/�������Q����,�,�,�������)�)�3�/�/�/�/�/rc��|�d��}|�|���|�t|j|d���dS)Nr)�
initial_bytes)r�)rrr2r3r>s  r�test_issue5449zPyBytesIOTest.test_issue5449sL���l�l�<�(�(�����3��'�'�'����)�T�\�3�D��A�A�A�A�ArN)rrr�pyior<�staticmethodr�BytesIOrr*r�r�r�r�r�r�r�rrrr�r��s������� �4���!�!��\�!��l�G�

�C�7�7�7�2;�;�;�
!�!�!�B0�0�0� G�G�G�0�0�0�B�B�B�B�Brr�c�P�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
dS)
�TextIOTestMixinc����|�d�����fd�}|��jd����d��|��|��jd����d��|��|��jd����d��|��|��jd��dS)	N��newlinec�Z����d������dS)Nr)r1r)�rPs�r�force_decodez<TextIOTestMixin.test_newlines_property.<locals>.force_decode%s#����J�J�q�M�M�M��J�J�L�L�L�L�Lr�a
�
�b
)r��
�c
d)�
r�r�)rr(�newlinesrE)r
r�rPs  @r�test_newlines_propertyz&TextIOTestMixin.test_newlines_property s�������T��*�*��	�	�	�	�	�	
������.�.�.�
���E���������������.�.�.�
���G���������������8�8�8�
���F��������������)=�>�>�>�>�>rc���|���}|�t|jdd��|�t|jdd��|�t|jdd��|�t|jdd��|�t|jdd��|�t|jdd��dS)Nr]r#r/r~r_)rr2�OSErrorr1r�s  rr�z"TextIOTestMixin.test_relative_seek3s������������'�5�:�r�1�5�5�5����'�5�:�q�!�4�4�4����'�5�:�r�1�5�5�5����'�5�:�r�1�5�5�5����'�5�:�q�!�4�4�4����'�5�:�q�!�4�4�4�4�4rc���|���}|�|j��|�|j��|�|j��dSr)r�assertIsNone�encoding�errorsr��line_bufferingr�s  r�test_textio_propertiesz&TextIOTestMixin.test_textio_properties=sZ��������	
���%�.�)�)�)����%�,�'�'�'�����-�.�.�.�.�.rc��|�d��}|�t|��gd���|�|���d��|���}|�|�d��d��|�d��|�t|��gd���|�|���d��dS)N�a
b
c
d�r�r�r�r^r�rr(rxrLrEr1r�s  r�test_newline_defaultz$TextIOTestMixin.test_newline_defaultFs������^�,�,������e���&>�&>�&>�?�?�?�������)�)�>�:�:�:�������������^�4�4�a�8�8�8�
�
�
�1�
�
�
�����e���&>�&>�&>�?�?�?�������)�)�>�:�:�:�:�:rc��|�dd���}|�t|��gd���|�d��|�|�d��d��|�|�d��d��|�|�d��d	��|�|�d��d
��|�|���d��|�d���}|�d|�d����|�d
|�d����|�d
|�d����|�d��|�|���d��|�|���d��|�dd���}|�|�d
��d��dS)Nr�r�)r�zb
zc
�drr#r�r_z
b�
cr�za
b
c
dr�r/r�r�za
bza
b�rr(rxr1r)rLrEr�s  r�test_newline_nonez!TextIOTestMixin.test_newline_noneQs������^�T��:�:������e���&@�&@�&@�A�A�A�
�
�
�1�
�
�
�������A����,�,�,�������A����.�.�.�������A����.�.�.�������A����-�-�-�������)�)�<�8�8�8����T��*�*������E�K�K��.�.�/�/�/�����E�K�K��0�0�1�1�1�����E�K�K��/�/�0�0�0�
�
�
�1�
�
�
���������|�4�4�4�������)�)�<�8�8�8����X�t��4�4��������A����/�/�/�/�/rc�&�|�dd���}|�t|��gd���|�d��|�|�d��d��|�|�d��d	��|�|�d
��d��|�|���d��|�d���}|�d|�d����|�d|�d
����|�d|�d	����|�d|�d����|�d��|�t|��gd���|�|���d��dS)Nr�rKr�)r�r��c
rrr%za
b
r_rr#r�r��b
z
drr�s  r�test_newline_emptyz"TextIOTestMixin.test_newline_emptygs������^�R��8�8������e���&B�&B�&B�C�C�C�
�
�
�1�
�
�
�������A����1�1�1�������A����.�.�.�������A����-�-�-�������)�)�>�:�:�:����R��(�(������E�K�K��.�.�/�/�/�����E�K�K��.�.�/�/�/�����E�K�K��.�.�/�/�/�����E�K�K��.�.�/�/�/�
�
�
�1�
�
�
�����e���&B�&B�&B�C�C�C�������)�)�>�:�:�:�:�:rc��|�dd���}|�t|��gd���|�|���d��|�d���}|�|�d��d��|�d��|�t|��gd���|�|���d��dS)Nr�r�r�r�r^rr�r�s  r�test_newline_lfzTextIOTestMixin.test_newline_lfzs������^�T��:�:������e���&>�&>�&>�?�?�?�������)�)�>�:�:�:����T��*�*��������^�4�4�a�8�8�8�
�
�
�1�
�
�
�����e���&>�&>�&>�?�?�?�������)�)�>�:�:�:�:�:rc��|�dd���}|�|���d��|�d��|�t	|��gd���|�|���d��|�d���}|�|�d��d��|�d��|�t	|��gd���|�d��|�|���gd���|�|���d��dS)Nr�r�r�za
b

c
dr)za
rr�rrr^)rr(r)r1rxrLrErpr�s  r�test_newline_crzTextIOTestMixin.test_newline_cr�sJ�����^�T��:�:����������~�6�6�6�
�
�
�1�
�
�
�����e���&F�&F�&F�G�G�G�������)�)�>�:�:�:����T��*�*��������^�4�4�a�8�8�8�
�
�
�1�
�
�
�����e���&F�&F�&F�G�G�G�
�
�
�1�
�
�
�������*�*�,L�,L�,L�M�M�M�������)�)�>�:�:�:�:�:rc��|�dd���}|�|���d��|�d��|�t	|��gd���|�d��|�|���gd���|�|���d��|�d���}|�|�d��d��|�d��|�t	|��gd���|�|���d��dS)Nr�r�r�z
a
b

c
dr)za
zb

r�r^)rr(r)r1rxrprLrEr�s  r�test_newline_crlfz!TextIOTestMixin.test_newline_crlf�sM�����^�V��<�<����������'9�:�:�:�
�
�
�1�
�
�
�����e���&B�&B�&B�C�C�C�
�
�
�1�
�
�
�������*�*�,H�,H�,H�I�I�I�������)�)�+=�>�>�>����V��,�,��������^�4�4�a�8�8�8�
�
�
�1�
�
�
�����e���&B�&B�&B�C�C�C�������)�)�+=�>�>�>�>�>rc���|�dd���}|�|�d��d��|�|���d��dS)Nza
b
r�r$za
b
)rr(r)rLr�s  r�test_issue5265zTextIOTestMixin.test_issue5265�s]�����\�4��8�8��������A����1�1�1�������)�)�8�4�4�4�4�4rc���|�t|jd���|�t|jd���dD]}|�|����dS)N�
r��error)NrKr�r�r�)r2r3rrN)r
r�s  r�test_newline_argumentz%TextIOTestMixin.test_newline_argument�sl�����)�T�\�5��A�A�A����*�d�l�G��D�D�D�5�	*�	*�G��L�L��L�)�)�)�)�	*�	*rN)rrrr�r�r�rrr	rr
rrrrrrr�r�s�������?�?�?�&5�5�5�/�/�/�	;�	;�	;�0�0�0�,;�;�;�&
;�
;�
;�;�;�;� ?�?�?� 5�5�5�*�*�*�*�*rr�c�8�eZdZeZejZejZdZ	d�Z
dS)�PyStringIOTestrKc�"�|�d��}|�|���d��|���}|�d��|�|���d��dS)Nu�)rr(r)rErLr�s  r�test_lone_surrogatesz#PyStringIOTest.test_lone_surrogates�sv�����X�&�&����������x�0�0�0�������
���H����������)�)�8�4�4�4�4�4rN)rrr�strrr��StringIOrr<r*rrrrrr�s=�������G��m�G��4��
�C�5�5�5�5�5rrc�N�eZdZdZeZejZdZGd�dej	��Z
dS)�PyStringIOPickleTestzETest if pickle restores properly the internal state of StringIO.
    rKc��eZdZd�Zd�ZdS)�PyStringIOPickleTest.ioclassc	�l�tjtjtj|i|������Sr)r�r�r�r�r��cls�args�kwargss   r�__new__z$PyStringIOPickleTest.ioclass.__new__�s+���<���T�]�D�-K�F�-K�-K� L� L�M�M�Mrc��dSrr�r
r#r$s   rr
z%PyStringIOPickleTest.ioclass.__init__�����DrN�rrrr%r
rrrrr�s5������	N�	N�	N�	�	�	�	�	rrN)rrr�__doc__rrr�r<r*rrrrrrr�s]���������G��4��
�C������$�-�����rrc���eZdZejZejZd�Zd�Ze	j
Z
e	jd���Zd�Z
e	jd���Ze	jd���Ze	jd���Ze	jd���Zd	S)
�CBytesIOTestc���|���}|���}|�t|��d��t	|d��|�|dt��|d�!|�|dt��|���|�	t|j��dS)Nr/rr#r_)r�__getstate__r(rhr��assertIsInstance�int�dictrMr2rN�r
rP�states   r�
test_getstatezCBytesIOTest.test_getstate�s����������"�"�$�$������U���Q�'�'�'��%��(�������e�A�h��,�,�,���8���!�!�%��(�D�1�1�1�
���
�
�
����*�e�&8�9�9�9�9�9rc��|���}|�d��|�td��ddf��|�ddddif��|�t|jd��|�t
|jd��|�t
|jd��|�t
|jd	��|�t
|jd
��|�t
|j��|�t
|jd��|���|�t|jd��dS)N)�no errorrNr6rrXr/)rr]N)�unicoderN)rr0N)rrr)slen-testr)sclosedrN)r�__setstate__r�r2rNr3rMr�s  r�
test_setstatezCBytesIOTest.test_setstate�sS��������
���1�2�2�2�
���I�k�2�2�A�t�<�=�=�=�
���K��V�Q�K�8�9�9�9����*�e�&8�/�J�J�J����)�U�%7�9M�N�N�N����)�U�%7�9I�J�J�J����)�U�%7��E�E�E����)�U�%7�9I�J�J�J����)�U�%7�8�8�8����)�U�%7��;�;�;�
���
�
�
����*�e�&8�:N�O�O�O�O�Orc�j�tjd��}|j}|�t�t
j����|��|t
j��|��d}|t
jd|z��|tj	d|z��z��dS)N�P2n2Pnr}�a)
r�calcobjsize�check_sizeofr(�object�
__sizeof__�ior��sys�	getsizeof)r
�basesize�check�ns    r�test_sizeofzCBytesIOTest.test_sizeof�s����&�x�0�0���!������*�*�2�:�<�<�8�8�(�C�C�C�
��b�j�l�l�H�&�&�&���
��b�j����"�"�H�s�}�T�A�X�/F�/F�$F�G�G�G�G�Grc��d}tj|��}|�|��}|�tj|��|dz��||��|�tj|��|��dS)Ns                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                r#)rB�getrefcountrr()r
�mutation�imm�old_rcrPs     r�_test_cow_mutationzCBytesIOTest._test_cow_mutation�s~�������%�%�����S�!�!��������-�-�v��z�:�:�:�������������-�-�v�6�6�6�6�6rc�6�d�}|�|��dS)Nc�0�|�d��dS)Nr#)rFr�s rrJz0CBytesIOTest.test_cow_truncate.<locals>.mutations���N�N�1�����r�rM�r
rJs  r�test_cow_truncatezCBytesIOTest.test_cow_truncates+��	�	�	�����)�)�)�)�)rc�6�d�}|�|��dS)Nc�Z�|�d��|�d��dS)Nrsfoo)r1rEr�s rrJz-CBytesIOTest.test_cow_write.<locals>.mutations)���J�J�q�M�M�M��K�K������rrPrQs  r�test_cow_writezCBytesIOTest.test_cow_writes-��	 �	 �	 �	
����)�)�)�)�)rc���|�d��}|�����fd�}|�|��dS)Nsfooooooc�2��|����dSr)r8)rPr3s �rrJz0CBytesIOTest.test_cow_setstate.<locals>.mutations������u�%�%�%�%�%r)rr.rM)r
rPrJr3s   @r�test_cow_setstatezCBytesIOTest.test_cow_setstatesZ������Z�(�(���"�"�$�$��	&�	&�	&�	&�	&�����)�)�)�)�)rc���td��}tj|��}|�|��}|�tj|��|��dS)Ni)r�rBrIrr()r
�barLrPs    r�test_cow_mutablezCBytesIOTest.test_cow_mutable sU��
�t�_�_�����$�$�����R� � ��������,�,�f�5�5�5�5�5rN)rrrrAr�rr<r4r9rr>�cpython_onlyrGrMrRrUrXr[rrrr,r,�s��������j�G��2��	:�	:�	:�P�P�P� �'�L���H�H���H�7�7�7�
��*�*���*�
��*�*���*�
��*�*���*�
��6�6���6�6�6rr,c�<�eZdZejZejZd�Zd�Zd�Z	dS)�
CStringIOTestc��|�d��}|�|��}|�|���|��|�|�|��t|����|�|���t|����|�|���|��|�|�|��t|����|�|���t|��dz��|�|���||z��dS)Nu𠌊𠍇r_)rrr(rLrErhr7rOs   r�
test_widecharzCStringIOTest.test_widechar0s+���l�l�1�2�2�����S�!�!��������)�)�3�/�/�/�������S�)�)�3�s�8�8�4�4�4���������s�3�x�x�0�0�0�������)�)�3�/�/�/�������S�)�)�3�s�8�8�4�4�4���������s�3�x�x�!�|�4�4�4�������)�)�3��9�5�5�5�5�5rc��|���}|���}|�t|��d��|�|dt
��|�|dt
��|�|dt��|d�!|�|dt��|���|�	t|j��dS)Nr%rr#r_r/)rr.r(rhr/rr0r1rMr2rNr2s   rr4zCStringIOTest.test_getstate<s����������"�"�$�$������U���Q�'�'�'����e�A�h��,�,�,����e�A�h��,�,�,����e�A�h��,�,�,���8���!�!�%��(�D�1�1�1�
���
�
�
����*�e�&8�9�9�9�9�9rc�H�|���}|�d��|�dddddif��|�t|jd��|�t|jd��|�t|jd	��|�t|jd
��|�t|jd��|�t|jd��|�t|jd
��|�t|j��|�t|jd��|���|�t|jd��dS)N)�no errorr�rNrcrKrrXr/)rKrGrN)rKrKr]N)rrKrN)rKrrN)rKrKr0N)rKrKrr)zlen-testr)r�rKrN)rr8r2rNr3rMr�s  rr9zCStringIOTest.test_setstateHsj��������
���6�7�7�7�
���J��A���{�;�<�<�<����*�e�&8�:L�M�M�M����*�e�&8�:L�M�M�M����)�U�%7�9K�L�L�L����)�U�%7�9K�L�L�L����)�U�%7�9L�M�M�M����)�U�%7��H�H�H����)�U�%7��I�I�I����)�U�%7�8�8�8����)�U�%7��;�;�;�
���
�
�
����*�e�&8�:Q�R�R�R�R�RrN)
rrrrArrr<r`r4r9rrrr^r^*sV�������k�G��2��
6�
6�
6�
:�
:�
:�S�S�S�S�Srr^c�B�eZdZejZGd�dej��ZdS)�CStringIOPickleTestc��eZdZd�Zd�ZdS)�CStringIOPickleTest.ioclassc	�l�tjtjtj|i|������Sr)r�r�r�rArr!s   rr%z#CStringIOPickleTest.ioclass.__new__^s+���<���R�[�$�-I�&�-I�-I� J� J�K�K�Krc��dSrrr's   rr
z$CStringIOPickleTest.ioclass.__init__`r(rNr)rrrrrg]s5������	L�	L�	L�	�	�	�	�	rrN)rrrrAr<rrrrrrereZsI�������2�������"�+�����rrer�)r*�unittest�testrrA�_pyior�r�rBrrr:�TestCaser�r�rrr,r^rer�mainrrr�<module>rosd����
����������	�	�	�	�����
�
�
�
�
�
�
�
���������*0�*0�*0�*0�*0�*0�*0�*0�Zi%�i%�i%�i%�i%�i%�i%�i%�XmB�mB�mB�mB�mB�O�%8�(�:K�mB�mB�mB�`S*�S*�S*�S*�S*�S*�S*�S*�l5�5�5�5�5�_�&9�$�h�&7�5�5�5�"�����?�H�,=����U6�U6�U6�U6�U6�=�U6�U6�U6�n-S�-S�-S�-S�-S�N�-S�-S�-S�`�����.�����z����H�M�O�O�O�O�O��r