Sindbad~EG File Manager
�
'Μg,?����ddlZddlZddlZddlZddlZddlZddlmZddlm Z ddl
mZgd�ZGd�dej�ZGd�d ej�ZGd
�dej�ZGd�d
ej�ZGd�dej�ZGd�dej�ZGd�dej�ZGd�de�Zedk(rej.�yy)�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�6�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z y) �Test_MultibyteCodecc���tD]`}|jdj|�d�|jtd|�d�|jdj |�d��by)N��)�ALL_CJKENCODINGS�assertEqual�decode�str�encode��self�encs �5/usr/local/lib/python3.12/test/test_multibytecodec.py�test_nullcodingz#Test_MultibyteCodec.test_nullcoding#sR��#�C����S�Z�Z��_�b�1����S��c�]�B�/����R�Y�Y�s�^�S�1�$r!c�\�tD]#}|jdj|�d��%y)N�abcd�abcd)r#r$r'r(s r+�test_str_decodez#Test_MultibyteCodec.test_str_decode)s%��#�C����V�]�]�3�/��9�$r!c��tjd�}d�}tjd|�|jt|dd�y)Nzeuc-krc�,�dtjdzfS)Nr"�)�sys�maxsize)�excs r+�<lambda>zBTest_MultibyteCodec.test_errorcallback_longindex.<locals>.<lambda>/s��"�c�k�k�!�m�!4r!ztest.cjktestsapple�ham�spam)�codecs�
getdecoder�register_error�assertRaises�
IndexError)r)�dec� myreplaces r+�test_errorcallback_longindexz0Test_MultibyteCodec.test_errorcallback_longindex-s?������)��4� ����n�i�8����*�c�1�>� Cr!c��d}tjdtj�tD]$}|j |j|d�d��&y)Nu,����������������������������������������������������������������������������������������������������ztest.ignorer!)r8r:�
ignore_errorsr#r$r')r)�datar*s r+� test_errorcallback_custom_ignorez4Test_MultibyteCodec.test_errorcallback_custom_ignore4sB�������m�V�-A�-A�B�#�C����T�[�[��m�<�c�B�$r!c��� tD]}dj|�}t|�� tjt
�y#tjt
�wxYw)Nz
# coding: {}
)r#�format�execr�unlinkr)r)r*�codes r+�test_codingspecz#Test_MultibyteCodec.test_codingspec;sG�� %�'��'�.�.�s�3���T�
�(�
���V�$��I���V�$�s�'A�Ac��|jttjd�|jttjd�y�N)r;�AttributeError�_multibytecodec�MultibyteStreamReader�MultibyteStreamWriter�r)s r+�test_init_segfaultz&Test_MultibyteCodec.test_init_segfaultCs:�����.�)�?�?�� G����.�)�?�?�� Gr!c�n�tD],}|jttj|�d��.y�Nr")r#r;� TypeErrorr8r9r(s r+�test_decode_unicodez'Test_MultibyteCodec.test_decode_unicodeJs)��#�C����i��):�):�3�)?��D�$r!N)
�__name__�
__module__�__qualname__r,r0r?rCrIrQrU�r!r+rr!s)��2�:�C�C�%�G�Er!rc�f�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z
d �Zejd
��Zy)�Test_IncrementalEncoderc��tjd��}|j|jd�d�|j|j �d�|j|jdd�d�|j|j �d�|j|jdd�d�|j|jdd �d�|j|j �d�y)
Nru파이썬 마을s��̽� ����u ☆∼☆Ts�١���r"r!F�r8�getincrementalencoderr$r'�reset�r)�encoders r+�test_statelessz&Test_IncrementalEncoder.test_statelessQs���7�&�.�.�w�7�9��������(I�J�E� G��������$�/�������(<�d�C�4� 6��������$�/��������D�1�3�7��������E�2�C�8��������$�/r!c��tjd��}|j|jd�d�|j|jd�d�|j|jd�d�|j|jdd�d�|j|j �d�|j|jd�d �|j|jd�d�|j|jd
d�d�|j|jd
d�d�y)N�jisx0213�æ̀����ær!�̀T������r"r]r`s r+�
test_statefulz%Test_IncrementalEncoder.test_stateful^s���;�&�.�.�z�:�<���������7��E��������1�3�7��������1�;�?��������$�7��E��������$�/��������1�;�?��������1�3�7��������D�1�;�?��������D�1�3�7r!c��tjd��}|j|jd�d�|j t
|jd�|j|jd�d�|j t
|jd�|j|j
�d�|j|jd�d�|j|jd�d�|j t
|jd�|j|jd d
�d�y)Nrdrgr!uģùærfrhrjr"Tri)r8r^r$r'r;�UnicodeEncodeErrorr_r`s r+�test_stateful_keep_bufferz1Test_IncrementalEncoder.test_stateful_keep_bufferqs���:�&�.�.�z�:�<���������1�3�7����,�g�n�n�h�G��������7��E����,�g�n�n�h�G��������$�/��������1�;�?��������1�3�7����,�g�n�n�h�G��������D�1�;�?r!c��tjd��}|j�}|j|j d�d�|j|�|j|j d�d�|j|j d�d�|j�}|j|j d�d�|j|�|j|j d�d�y)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��E�����'��������7��E��������1�3�7��(�(�*�
��������1�;�?�����'��������1�;�?r!c��tjd��}|j|jd�d�|j �}|j|jd�d�|j �}|j|jd�d�|j|�|j|jd�d�|j|�|j|jd�d�y)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��#�#�%���������1�3J�K��#�#�%���������,�.>�?�����"��������1�;�?�����"��������,�d�3r!c��tjd��}|j|j�d�|j d�|j|j�t
j
dd��|j d�|j|j�d�tjd��}|j|j�t
j
dd��|j d �|j|j�t
j
d
d��y)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�M�����-�6�6�8�!�<��#�#�H�-����-�6�6�8����A�&� '� (� �#�#�H�-����-�6�6�8�!�<�$N�6�#?�#?��#M�#O� ����1�:�:�<����A�%�'� (�
!�'�'��1����1�:�:�<����A�%�'� (r!c��tjd��}tjdd�}|j t
|j|�y)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�sK��8�&�.�.�x�8�:���N�N�
0�
� ��
���,��(8�(8�:K�Lr!c��tjd��}tjdd�}|j t
|j|�y)Nr
s
�r})r8r^r~rr;�UnicodeDecodeErrorrq)r)ra�invalid_utf8s r+�#test_setstate_validates_input_bytesz;Test_IncrementalEncoder.test_setstate_validates_input_bytes�sJ��8�&�.�.�x�8�:���~�~�
0�
� ��
���,�g�.>�.>��Mr!c��tjd�d�}|j|jd�d�|j|jd�d�y)Nz shift-jis�backslashreplace�ÿs\xff�
�
)r8r^r$r'r`s r+�test_issue5640z&Test_IncrementalEncoder.test_issue5640�sL��;�&�.�.�{�;�<N�O���������/��:��������-�u�5r!c��ddl}d}d}tjd�||fz}|j|�}|j |d�y)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�sU�� ���V����� �
��$�� ���(�(��.������a� r!N)rVrWrXrbrkrnrtr{r�r�r�r�r�cpython_onlyr�rYr!r+r[r[OsN��0�8�&
@�
@�4�"(�@M�N�6�
���!��!r!r[c�0�eZdZd�Zd�Zd�Zd�Zd�Zd�Zy)�Test_IncrementalDecoderc��tjd��}|j|jd�d�|j|jd�d�|j|jd�d�y)Nrs��̽u파이s� ����u
썬 마을r!r")r8�getincrementaldecoderr$r%�r)�decoders r+� test_dbcsz!Test_IncrementalDecoder.test_dbcs�sj��7�&�.�.�w�7�9��������(?�@�'� )�������(@�A�.� 0��������,�b�1r!c���tjd��}|j|jd�d�|j t
|jdd�|j|jd�d�|j|jd�d�|j t
|jdd�|j|jd�d�y) 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�9���������8�(�C����,�g�n�n�c�4�H��������0�(�;��������8�(�C����,�g�n�n�%�t� -��������0�(�;r!c�(�tjd��}d}|j|j|dz�d�|j|jdd�d�|j|j|dz�d�|j|jd�d �|j|jd
�d �|j|jdd�d �|j|j �d�|j|jd�d�|j|j|dz�d�|jt|jd
d�|j|jd�d �y)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�R�8��������d�3�R�8��������d�
�3�R�8��������/��:��������/��:��������d�3�X�>��������$�/��������.��5��������d�
�3�R�8����,�g�n�n�c�4�H��������/��:r!c��tD]=}tj|��}|jt|j
d��?yrS)r#r8r�r;rTr%)r)r*r�s r+rUz+Test_IncrementalDecoder.test_decode_unicodes7��#�C�7�f�2�2�3�7�9�G����i�����<�$r!c���tjd��}|j|jd�d�|j �\}}|j|d�|j|jd�d�|j �\}}|j|d�|j|jd�d�|j �\}}|j|d�|j||f�|j|jd�d�|j �\}}|j|d�|jd�|j|j �d�y) 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_methodssJ��8�&�.�.�x�8�:��
�������4�h�?��&�&�(���!�����3�'�
�������0�"�5�"�+�+�-���&�����7�+�
�������0�(�;��&�&�(���!�����3�'� ���(�F�+�,��������0�(�;��&�&�(���!�����3�'� ���,�-�����)�)�+�-@�Ar!c�@�tjd��}|jt|jd�|jt|jd�|jt|jd�|jt
|jd�y)Nr
�{)�invalidr)s1234r�)s 123456789r)r8r�r;rTrqr�r�s r+�test_setstate_validates_inputz5Test_IncrementalDecoder.test_setstate_validates_input-sy��8�&�.�.�x�8�:�����)�W�%5�%5�s�;����)�W�%5�%5�~�F����)�W�%5�%5�7K�L����,��(8�(8�:K�Lr!N) rVrWrXr�r�r�rUr�r�rYr!r+r�r��s"��2� <�
;�=�B�8Mr!r�c��eZdZd�Zy)�Test_StreamReaderc��� ttd�} |jd�|j�t jtd��} |jt|jd�|j� tjt�y#|j�wxYw#|j�wxYw#tjt�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�A�
��!�!�"4�a�f�f�a�@���� ����V�$����� ��
��� �����V�$�s9�C�B�+C�!B1�1C�B.�.C�1C�C�C!N)rVrWrXr�rYr!r+r�r�4s��
%r!r�c��eZdZd�Zd�Zd�Zy)�Test_StreamWriterc��tj�}tjd�|�}|j d�|j|j
�d�|j d�|j|j
�d�|j d�|j|j
�d�y)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� ������������4� 6r!c��tj�}tjd�|�}|j d�|j|j
�d�|j d�|j|j
�d�|j d�|j|j
�d�y)Nzutf-8r�r�r�s123𒍅r�s123𒍅가¬r�r�s r+�
test_utf_8zTest_StreamWriter.test_utf_8Ps���
�:�:�<��%�F���W�%�a�(�� ������������v�.� ������������'=�>� ������������
$� %r!c���tj�}tjd�|�}|j d�|j|j
�d�y)Nrr.r/r�)r)r��wrs r+�test_streamwriter_strwritez,Test_StreamWriter.test_streamwriter_strwrite\sF���J�J�L��
(�V�
�
�i�
(��
+��
������������w�/r!N)rVrWrXr�r�r�rYr!r+r�r�Ds�� 6�
%�0r!r�c�H�eZdZd�Zd�Zejd�d��Zy)�Test_ISO2022c�N�d}d}|j|jd�|�y)Ns(B:hu4:unit.ANi de familleu:hu4:unité de familleziso2022-jp-2)r$r%)r)�
iso2022jp2�unis r+�test_g2zTest_ISO2022.test_g2cs'��>�
�(������*�*�>�:�C�@r!c��|jddjd��dD]4}dj|�}|jtd�|D����6y)N��z
iso-2022-jp-2)ziso-2022-jp-2004z
iso-2022-jp-3u㐆c3�&K�|] }|dkD���y�w)�NrY)�.0�xs r+� <genexpr>z2Test_ISO2022.test_iso2022_jp_g0.<locals>.<genexpr>ls���� 5�1�a��T��1�s�)�assertNotInr'�assertFalse�any)r)r��es r+�test_iso2022_jp_g0zTest_ISO2022.test_iso2022_jp_g0hsO������"3�":�":�?�"K�L�=�H�����)�A����S� 5�1� 5�5�6�>r!�cpuc�\�tdd�D]}t|�jdd��y)Nii�iso_2022_jp�ignore)�range�chrr')r)r�s r+�test_bug1572832zTest_ISO2022.test_bug1572832ns%���w��)�A���F�M�M�-��2�*r!N)rVrWrXr�r�r�requires_resourcer�rYr!r+r�r�bs.��A�
7��W���u�%�3�&�3r!r�c�8�eZdZdZdZdZdZeezZd�Zd�Z d�Z
y) �TestStatefulu世世ziso-2022-jps$B@$@$s(Bc��|j|jj|j�|j�yrK)r$r�r'r��expected_resetrPs r+�test_encodezTestStateful.test_encode{s+��������)�)�$�-�-�8�$�:M�:M�Nr!c�n��tj|j���dj�fd�|jD��}|j||j�|j�jdd��|j�|j�jdd��d�y)Nr!c3�@�K�|]}�j|����y�wrK�r')r��charras �r+r�z7TestStateful.test_incrementalencoder.<locals>.<genexpr>�s"�����#�!��
�N�N�4� �!�s�r"T��final) r8r^r��joinr�r$�expectedr'r_)r)�outputras @r+�test_incrementalencoderz$TestStateful.test_incrementalencoder~s����=�&�.�.�t�}�}�=�?�����#�� � �#�#��
�������/��������$��7����D��������$��7��=r!c�Z���tj|j���t|j�dz
�dj��fd�t
|j�D��}|j||j�|j�jdd��d�y)Nr3r!c3�N�K�|]\}}�j||�k(����y�wrKr�)r��indexr�ra�
last_indexs ��r+r�z=TestStateful.test_incrementalencoder_final.<locals>.<genexpr>�s-�����5�3���t�
�N�N�4��*�!4�5�3�s�"%r"Tr)
r8r^r��lenr�r� enumerater$r�r')r)rrar s @@r+�test_incrementalencoder_finalz*TestStateful.test_incrementalencoder_final�s����=�&�.�.�t�}�}�=�?������^�a�'�
����5�(����3�5�5��
�����!4�!4�5��������$��7��=r!N)rVrWrXr�r�rr_r�r�rrrYr!r+r�r�ts0���D��H��H��E���%�N�O�>�>r!r�c�&�eZdZdZdZdZdZeezZy)�TestHZStatefulu聊聊r s~{ADADs~}N)rVrWrXr�r�rr_r�rYr!r+rr�s ���D��H��H��E���%�Nr!r�__main__)rMr8r�r4r��unittest�testr�test.supportr�test.support.os_helperrr#�TestCaserr[r�r�r�r�r�rrV�mainrYr!r+�<module>rs����
� �
����"�)���",E�(�+�+�,E�\U!�h�/�/�U!�nLM�h�/�/�LM�\%��)�)�%� 0��)�)�0�<3�8�$�$�3�$>�8�$�$�>�8&�\�&��z���H�M�M�O�r!
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists