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

�Ke?���ddlZddlZddlZddlZddlZddlZddlmZddlm	Z	ddl
mZgd�ZGd�dej
��ZGd�d	ej
��ZGd
�dej
��ZGd�d
ej
��ZGd�dej
��ZGd�dej
��ZGd�dej
��ZGd�de��Zedkrej��dSdS)�N)�support)�	os_helper)�TESTFN)�gb2312�gbk�gb18030�hz�	big5hkscs�cp932�	shift_jis�euc_jp�euc_jisx0213�shift_jisx0213�euc_jis_2004�shift_jis_2004�cp949�euc_kr�johab�big5�cp950�
iso2022_jp�iso2022_jp_1�iso2022_jp_2�iso2022_jp_2004�iso2022_jp_3�iso2022_jp_ext�
iso2022_krc�8�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	dS)	�Test_MultibyteCodecc��tD]x}|�d�|��d��|�td|��d��|�d�|��d���ydS)N��)�ALL_CJKENCODINGS�assertEqual�decode�str�encode��self�encs  �B/usr/local/apps/python3/lib/python3.11/test/test_multibytecodec.py�test_nullcodingz#Test_MultibyteCodec.test_nullcoding#s|��#�	2�	2�C����S�Z�Z��_�_�b�1�1�1����S��c�]�]�B�/�/�/����R�Y�Y�s�^�^�S�1�1�1�1�	2�	2r!c�l�tD]+}|�d�|��d���,dS)N�abcd�abcd)r#r$r'r(s  r+�test_str_decodez#Test_MultibyteCodec.test_str_decode)s@��#�	:�	:�C����V�]�]�3�/�/��9�9�9�9�	:�	:r!c��tjd��}d�}tjd|��|�t|dd��dS)Nzeuc-krc�$�dtjdzfS)Nr"�)�sys�maxsize)�excs r+�<lambda>zBTest_MultibyteCodec.test_errorcallback_longindex.<locals>.<lambda>/s��"�c�k�!�m�!4�r!ztest.cjktestsapple�ham�spam)�codecs�
getdecoder�register_error�assertRaises�
IndexError)r)�dec�	myreplaces   r+�test_errorcallback_longindexz0Test_MultibyteCodec.test_errorcallback_longindex-s]�����)�)��4�4�	���n�i�8�8�8����*�c�1�>�	C�	C�	C�	C�	Cr!c��d}tjdtj��tD],}|�|�|d��d���-dS)Nu,����������������������������������������������������������������������������������������������������ztest.ignorer!)r8r:�
ignore_errorsr#r$r')r)�datar*s   r+� test_errorcallback_custom_ignorez4Test_MultibyteCodec.test_errorcallback_custom_ignore4sa������m�V�-A�B�B�B�#�	C�	C�C����T�[�[��m�<�<�c�B�B�B�B�	C�	Cr!c���	tD]&}d�|��}t|���'	tjt
��dS#tjt
��wxYw)Nz
# coding: {}
)r#�format�execr�unlinkr)r)r*�codes   r+�test_codingspecz#Test_MultibyteCodec.test_codingspec;sk��	%�'�
�
��'�.�.�s�3�3���T�
�
�
�
�
�
��V�$�$�$�$�$��I��V�$�$�$�$���s�.A�A'c��|�ttjd��|�ttjd��dS�N)r;�AttributeError�_multibytecodec�MultibyteStreamReader�MultibyteStreamWriter�r)s r+�test_init_segfaultz&Test_MultibyteCodec.test_init_segfaultCsX�����.�)�?��	G�	G�	G����.�)�?��	G�	G�	G�	G�	Gr!c�v�tD]0}|�ttj|��d���1dS�Nr")r#r;�	TypeErrorr8r9r(s  r+�test_decode_unicodez'Test_MultibyteCodec.test_decode_unicodeJsE��#�	E�	E�C����i��):�3�)?�)?��D�D�D�D�	E�	Er!N)
�__name__�
__module__�__qualname__r,r0r?rCrIrQrU�r!r+rr!s�������2�2�2�:�:�:�C�C�C�C�C�C�%�%�%�G�G�G�E�E�E�E�Er!rc�d�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zej
d
���ZdS)�Test_IncrementalEncoderc�|�tjd����}|�|�d��d��|�|���d��|�|�dd��d��|�|���d��|�|�dd��d��|�|�dd	��d��|�|���d��dS)
Nru파이썬 마을s��̽� ����u	☆∼☆Ts�١���r"r!F�r8�getincrementalencoderr$r'�reset�r)�encoders  r+�test_statelessz&Test_IncrementalEncoder.test_statelessQs��7�&�.�w�7�7�9�9��������(I�J�J�E�	G�	G�	G���������$�/�/�/�������(<�d�C�C�4�	6�	6�	6���������$�/�/�/��������D�1�1�3�7�7�7��������E�2�2�C�8�8�8���������$�/�/�/�/�/r!c�$�tjd����}|�|�d��d��|�|�d��d��|�|�d��d��|�|�dd��d��|�|���d��|�|�d��d	��|�|�d��d��|�|�d
d��d��|�|�d
d��d��dS)N�jisx0213�æ̀���ær!�̀T������r"r]r`s  r+�
test_statefulz%Test_IncrementalEncoder.test_stateful^sV��;�&�.�z�:�:�<�<���������7�7��E�E�E��������1�1�3�7�7�7��������1�1�;�?�?�?��������$�7�7��E�E�E���������$�/�/�/��������1�1�;�?�?�?��������1�1�3�7�7�7��������D�1�1�;�?�?�?��������D�1�1�3�7�7�7�7�7r!c���tjd����}|�|�d��d��|�t
|jd��|�|�d��d��|�t
|jd��|�|���d��|�|�d��d��|�|�d��d��|�t
|jd��|�|�d	d
��d��dS)Nrdrgr!uģùærfrhrjr"Tri)r8r^r$r'r;�UnicodeEncodeErrorr_r`s  r+�test_stateful_keep_bufferz1Test_IncrementalEncoder.test_stateful_keep_bufferqs;��:�&�.�z�:�:�<�<���������1�1�3�7�7�7����,�g�n�h�G�G�G��������7�7��E�E�E����,�g�n�h�G�G�G���������$�/�/�/��������1�1�;�?�?�?��������1�1�3�7�7�7����,�g�n�h�G�G�G��������D�1�1�;�?�?�?�?�?r!c�|�tjd����}|���}|�|�d��d��|�|��|�|�d��d��|�|�d��d��|���}|�|�d��d��|�|��|�|�d��d��dS)Nrrerfrgr!rh)r8r^�getstater$r'�setstate)r)ra�
initial_state�
partial_states    r+�$test_state_methods_with_buffer_statez<Test_IncrementalEncoder.test_state_methods_with_buffer_state}s��>�&�.�~�>�>�@�@���(�(�*�*�
��������7�7��E�E�E�����'�'�'��������7�7��E�E�E��������1�1�3�7�7�7��(�(�*�*�
��������1�1�;�?�?�?�����'�'�'��������1�1�;�?�?�?�?�?r!c�|�tjd����}|�|�d��d��|���}|�|�d��d��|���}|�|�d��d��|�|��|�|�d��d��|�|��|�|�d��d��dS)Nr�z�z�あs$B$"s(Bzs$")r8r^r$r'rprq)r)ra�en_state�jp_states    r+�(test_state_methods_with_non_buffer_statez@Test_IncrementalEncoder.test_state_methods_with_non_buffer_state�s��<�&�.�|�<�<�>�>���������,�,�d�3�3�3��#�#�%�%���������1�1�3J�K�K�K��#�#�%�%���������,�,�.>�?�?�?�����"�"�"��������1�1�;�?�?�?�����"�"�"��������,�,�d�3�3�3�3�3r!c��tjd����}|�|���d��|�d��|�|���t
�dd����|�d��|�|���d��tjd����}|�|���t
�dd����|�d	��|�|���t
�d
d����dS)Nrrrgsæ�littlerhrs	BBrxs	�B)r8r^r$rpr'�int�
from_bytes)r)�buffer_state_encoder�non_buffer_state_encoders   r+�$test_getstate_returns_expected_valuez<Test_IncrementalEncoder.test_getstate_returns_expected_value�s��� L�v�;�N�K�K�M�M�����-�6�6�8�8�!�<�<�<��#�#�H�-�-�-����-�6�6�8�8����A�&�	'�'�	(�	(�	(�	�#�#�H�-�-�-����-�6�6�8�8�!�<�<�<�$N�6�#?��#M�#M�#O�#O� ����1�:�:�<�<����A�%�'�'�	(�	(�	(�
	!�'�'��1�1�1����1�:�:�<�<����A�%�'�'�	(�	(�	(�	(�	(r!c��tjd����}t�dd��}|�t
|j|��dS)Nr
s	r})r8r^r~rr;�UnicodeErrorrq)r)ra�pending_size_nines   r+�"test_setstate_validates_input_sizez:Test_IncrementalEncoder.test_setstate_validates_input_size�s\��8�&�.�x�8�8�:�:���N�N�
0�
�	���
	
���,��(8�:K�L�L�L�L�Lr!c��tjd����}t�dd��}|�t
|j|��dS)Nr
s
�r})r8r^r~rr;�UnicodeDecodeErrorrq)r)ra�invalid_utf8s   r+�#test_setstate_validates_input_bytesz;Test_IncrementalEncoder.test_setstate_validates_input_bytes�s[��8�&�.�x�8�8�:�:���~�~�
0�
�	���
	
���,�g�.>��M�M�M�M�Mr!c���tjd��d��}|�|�d��d��|�|�d��d��dS)Nz	shift-jis�backslashreplace�ÿs\xff�
�
)r8r^r$r'r`s  r+�test_issue5640z&Test_IncrementalEncoder.test_issue5640�sg��;�&�.�{�;�;�<N�O�O���������/�/��:�:�:��������-�-�u�5�5�5�5�5r!c��ddl}d}d}tjd��||fz}|�|��}|�|d��dS)NrruEPython の開発は、1990 年ごろから開始されています。a5
            import codecs
            encoding = %r
            text = %r
            encoder = codecs.getincrementalencoder(encoding)()
            text2 = encoder.encode(text).decode(encoding)
            if text2 != text:
                raise ValueError(f"encoding issue: {text2!a} != {text!a}")
        )�	_testcapi�textwrap�dedent�run_in_subinterpr$)r)r��encoding�textrH�ress      r+�test_subinterpz&Test_IncrementalEncoder.test_subinterp�sp��	������V���� �
�
��$�� ���(�(��.�.������a� � � � � r!N)rVrWrXrbrkrnrtr{r�r�r�r�r�cpython_onlyr�rYr!r+r[r[Os�������0�0�0�8�8�8�&
@�
@�
@�
@�
@�
@�4�4�4�"(�(�(�@M�M�M�N�N�N�6�6�6�

��!�!���!�!�!r!r[c�2�eZdZd�Zd�Zd�Zd�Zd�Zd�ZdS)�Test_IncrementalDecoderc�4�tjd����}|�|�d��d��|�|�d��d��|�|�d��d��dS)Nrs��̽u파이s� ����u
썬 마을r!r")r8�getincrementaldecoderr$r%�r)�decoders  r+�	test_dbcsz!Test_IncrementalDecoder.test_dbcs�s���7�&�.�w�7�7�9�9��������(?�@�@�'�	)�	)�	)�������(@�A�A�.�	0�	0�	0��������,�,�b�1�1�1�1�1r!c��tjd����}|�|�d��d��|�t
|jdd��|�|�d��d��|�|�d��d��|�t
|jdd��|�|�d��d��dS)	Nrs��u파r!T��u이s̽)r8r�r$r%r;r�r�s  r+�test_dbcs_keep_bufferz-Test_IncrementalDecoder.test_dbcs_keep_buffer�s���7�&�.�w�7�7�9�9���������8�8�(�C�C�C����,�g�n�c�4�H�H�H��������0�0�(�;�;�;��������8�8�(�C�C�C����,�g�n�%�t�	-�	-�	-��������0�0�(�;�;�;�;�;r!c���tjd����}d}|�|�|dz��d��|�|�dd��d��|�|�|dz��d��|�|�d��d	��|�|�d
��d	��|�|�dd��d	��|�|���d��|�|�d��d��|�|�|dz��d��|�t|jd
d��|�|�d��d	��dS)Nz
iso2022-jp��(r"�BT�$sB@$u世s@$@s@$z@$r!)r8r�r$r%r_r;r�)r)r��ESCs   r+�test_iso2022z$Test_IncrementalDecoder.test_iso2022�s���<�&�.�|�<�<�>�>�����������d�
�3�3�R�8�8�8��������d�3�3�R�8�8�8��������d�
�3�3�R�8�8�8��������/�/��:�:�:��������/�/��:�:�:��������d�3�3�X�>�>�>���������$�/�/�/��������.�.��5�5�5��������d�
�3�3�R�8�8�8����,�g�n�c�4�H�H�H��������/�/��:�:�:�:�:r!c��tD]?}tj|����}|�t|jd���@dSrS)r#r8r�r;rTr%)r)r*r�s   r+rUz+Test_IncrementalDecoder.test_decode_unicodesP��#�	=�	=�C�7�f�2�3�7�7�9�9�G����i����<�<�<�<�	=�	=r!c��tjd����}|�|�d��d��|���\}}|�|d��|�|�d��d��|���\}}|�|d��|�|�d��d��|���\}}|�|d��|�||f��|�|�d��d��|���\}}|�|d��|�d��|�|���d��dS)	Nr
s��uうr!��r"��)sabci�[)r8r�r$r%rprq)r)r��pending1�_�pending2�flags2�pending3�pending4s        r+�test_state_methodsz*Test_IncrementalDecoder.test_state_methodss���8�&�.�x�8�8�:�:��	
�������4�4�h�?�?�?��&�&�(�(���!�����3�'�'�'�	
�������0�0�"�5�5�5�"�+�+�-�-���&�����7�+�+�+�	
�������0�0�(�;�;�;��&�&�(�(���!�����3�'�'�'�	���(�F�+�,�,�,��������0�0�(�;�;�;��&�&�(�(���!�����3�'�'�'�	���,�-�-�-�����)�)�+�+�-@�A�A�A�A�Ar!c�F�tjd����}|�t|jd��|�t|jd��|�t|jd��|�t
|jd��dS)Nr
�{)�invalidr)s1234r�)s	123456789r)r8r�r;rTrqr�r�s  r+�test_setstate_validates_inputz5Test_IncrementalDecoder.test_setstate_validates_input-s���8�&�.�x�8�8�:�:�����)�W�%5�s�;�;�;����)�W�%5�~�F�F�F����)�W�%5�7K�L�L�L����,��(8�:K�L�L�L�L�Lr!N)	rVrWrXr�r�r�rUr�r�rYr!r+r�r��sv������2�2�2�	<�	<�	<�
;�
;�
;�=�=�=�B�B�B�8M�M�M�M�Mr!r�c��eZdZd�ZdS)�Test_StreamReaderc��	ttd��}	|�d��|���n#|���wxYwt	jtd���}	|�t|jd��|���n#|���wxYw	tj	t��dS#tj	t��wxYw)N�wb��r)r��)
�openr�write�closer8r;r��readrrG)r)�fs  r+�test_bug1728403z!Test_StreamReader.test_bug17284035s���	%��V�T�"�"�A�
����� � � ����	�	�	�	�����	�	�	�	������F�W�5�5�5�A�
��!�!�"4�a�f�a�@�@�@����	�	�	�	�����	�	�	�	����	���V�$�$�$�$�$��I��V�$�$�$�$���s9�C"�A�C"�A�C"�7!B-�C"�-C�C"�"C=N)rVrWrXr�rYr!r+r�r�4s#������
%�
%�
%�
%�
%r!r�c� �eZdZd�Zd�Zd�ZdS)�Test_StreamWriterc���tj��}tjd��|��}|�d��|�|���d��|�d��|�|���d��|�d��|�|���d��dS)Nr�123�123�𒍅s123�7�9�가¬s123�7�9�7�5�0�1��io�BytesIOr8�	getwriterr�r$�getvalue�r)�s�cs   r+�test_gb18030zTest_StreamWriter.test_gb18030Es���
�:�<�<��'�F��Y�'�'��*�*��	���������������v�.�.�.�	���������������'7�8�8�8�	���������������4�	6�	6�	6�	6�	6r!c���tj��}tjd��|��}|�d��|�|���d��|�d��|�|���d��|�d��|�|���d��dS)Nzutf-8r�r�r�s123𒍅r�s123𒍅가¬r�r�s   r+�
test_utf_8zTest_StreamWriter.test_utf_8Ps���
�:�<�<��%�F��W�%�%�a�(�(��	���������������v�.�.�.�	���������������'=�>�>�>�	���������������
$�	%�	%�	%�	%�	%r!c���tj��}tjd��|��}|�d��|�|���d��dS)Nrr.r/r�)r)r��wrs   r+�test_streamwriter_strwritez,Test_StreamWriter.test_streamwriter_strwrite\s]���J�L�L��
(�V�
�i�
(�
(��
+�
+��
���������������w�/�/�/�/�/r!N)rVrWrXr�r�r�rYr!r+r�r�DsA������	6�	6�	6�
%�
%�
%�0�0�0�0�0r!r�c� �eZdZd�Zd�Zd�ZdS)�Test_ISO2022c�`�d}d}|�|�d��|��dS)Ns(B:hu4:unit.ANi de familleu:hu4:unité de familleziso2022-jp-2)r$r%)r)�
iso2022jp2�unis   r+�test_g2zTest_ISO2022.test_g2cs6��>�
�(������*�*�>�:�:�C�@�@�@�@�@r!c���|�dd�d����dD]C}d�|��}|�td�|D�������DdS)N��­z
iso-2022-jp-2)ziso-2022-jp-2004z
iso-2022-jp-3u㐆c3�"K�|]
}|dkV��dS)�NrY)�.0�xs  r+�	<genexpr>z2Test_ISO2022.test_iso2022_jp_g0.<locals>.<genexpr>ls&���� 5� 5�a��T�� 5� 5� 5� 5� 5� 5r!)�assertNotInr'�assertFalse�any)r)r��es   r+�test_iso2022_jp_g0zTest_ISO2022.test_iso2022_jp_g0hs������"3�":�":�?�"K�"K�L�L�L�=�	7�	7�H�����)�)�A����S� 5� 5�1� 5� 5� 5�5�5�6�6�6�6�	7�	7r!c�r�tdd��D]%}t|���dd���&dS)Nii�iso_2022_jp�ignore)�range�chrr')r)r�s  r+�test_bug1572832zTest_ISO2022.test_bug1572832nsB���w��)�)�	3�	3�A���F�F�M�M�-��2�2�2�2�	3�	3r!N)rVrWrXr�r�r�rYr!r+r�r�bsD������A�A�A�
7�7�7�3�3�3�3�3r!r�c�:�eZdZdZdZdZdZeezZd�Zd�Z	d�Z
dS)	�TestStatefulu世世ziso-2022-jps$B@$@$s(Bc�v�|�|j�|j��|j��dSrK)r$r�r'r��expected_resetrPs r+�test_encodezTestStateful.test_encodezs3�������)�)�$�-�8�8�$�:M�N�N�N�N�Nr!c���tj|j�����d��fd�|jD����}|�||j��|���dd���|j��|���dd���d��dS)Nr!c3�B�K�|]}��|��V��dSrK�r')r��charras  �r+r�z7TestStateful.test_incrementalencoder.<locals>.<genexpr>sC�����#�#��
�N�N�4� � �#�#�#�#�#�#r!r"T��final)	r8r^r��joinr�r$�expectedr'r_)r)�outputras  @r+�test_incrementalencoderz$TestStateful.test_incrementalencoder}s����=�&�.�t�}�=�=�?�?�����#�#�#�#��	�#�#�#�#�#��	
������/�/�/��������$��7�7���D�D�D��������$��7�7��=�=�=�=�=r!c�n���tj|j�����t|j��dz
�d���fd�t
|j��D����}|�||j��|���	dd���d��dS)Nr3r!c3�R�K�|]!\}}��||�k��V��"dSrKr�)r��indexr�ra�
last_indexs   ��r+r�z=TestStateful.test_incrementalencoder_final.<locals>.<genexpr>�sN�����5�5���t�
�N�N�4��*�!4�5�5�5�5�5�5�5�5r!r"Tr�)
r8r^r��lenr�r�	enumerater$r�r')r)rrars  @@r+�test_incrementalencoder_finalz*TestStateful.test_incrementalencoder_final�s�����=�&�.�t�}�=�=�?�?�����^�^�a�'�
����5�5�5�5�5�(���3�3�5�5�5�5�5��	
�����!4�5�5�5��������$��7�7��=�=�=�=�=r!N)rVrWrXr�r�rr_r�r�rr
rYr!r+r�r�ssb�������D��H��H��E���%�N�O�O�O�>�>�>�>�>�>�>�>r!r�c�(�eZdZdZdZdZdZeezZdS)�TestHZStatefulu聊聊r	s~{ADADs~}N)rVrWrXr�r�rr_r�rYr!r+rr�s,�������D��H��H��E���%�N�N�Nr!r�__main__)rMr8r�r4r��unittest�testr�test.supportr�test.support.os_helperrr#�TestCaserr[r�r�r�r�r�rrV�mainrYr!r+�<module>rs6������
�
�
�
�	�	�	�	�
�
�
�
���������������"�"�"�"�"�"�)�)�)�)�)�)�����",E�,E�,E�,E�,E�(�+�,E�,E�,E�\U!�U!�U!�U!�U!�h�/�U!�U!�U!�nLM�LM�LM�LM�LM�h�/�LM�LM�LM�\%�%�%�%�%��)�%�%�%� 0�0�0�0�0��)�0�0�0�<3�3�3�3�3�8�$�3�3�3�">�>�>�>�>�8�$�>�>�>�8&�&�&�&�&�\�&�&�&��z����H�M�O�O�O�O�O��r!