Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.11/test/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.11/test/__pycache__/test_codecs.cpython-311.opt-1.pyc

�

SԚg�%���	�ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZddlm
Z
ddlmZ	ddlZn
#e$rdZYnwxYw	ddlZn
#e$rdZYnwxYw	ddlZejej��Zn#e$rdZdZYnwxYwd�Zd�ZGd	�d
e��ZGd�d��ZGd
�de��ZGd�deej��ZGd�deej��ZGd�deej��ZGd�deej��Z Gd�deej��Z!Gd�deej��Z"Gd�deej��Z#Gd�deej��Z$Gd�d ej��Z%Gd!�d"ej��Z&Gd#�d$e#ej��Z'Gd%�d&ej��Z(gd'�Z)e)D]%Z*e+e*��d(kre,e-e*�����&Gd)�d*ej��Z.gd+�Z/Gd,�d-ej��Z0Gd.�d/ej��Z1Gd0�d1ej��Z2Gd2�d3ej��Z3Gd4�d5ej��Z4Gd6�d7ej��Z5Gd8�d9ej��Z6gd:�Z7e8ed;��re7�9d<��e8ed=��re7�9d>��d?gZ:Gd@�dAeje��Z;GdB�dCej��Z<GdD�dEej��Z=GdF�dGej��Z>GdH�dIeej��Z?GdJ�dKeej��Z@GdL�dMej��ZAGdN�dOej��ZBGdP�dQej��ZCgdR�ZDdSdTgdUggdV�dWgdXgdY�ZE	ddlFZFeD�9dZ��d[d\geEdZ<n
#e$rdZFYnwxYw	ddlGZGeD�9d]��d^geEd]<n#e$rYnwxYwGd_�d`ej��ZHiZIda�ZJGdb�dcej��ZKejLejMddkde��Gdf�dgej����ZNGdh�diej��ZOGdj�dkej��ZPGdl�dmej��ZQejRedudn��Gdo�dpej����ZSGdq�drej��ZTGds�dtej��ZUGdu�dvej��ZVeWdwkrejX��dSdS)x�N)�mock)�support)�	os_helper)�warnings_helper���c������fd�}|S)Nc�d�����|��|t|��f��dS�N)�assertEqual�len)�input�expect�coder�selfs  ���-/usr/local/lib/python3.11/test/test_codecs.py�checkzcoding_checker.<locals>.check"s2��������u�����E�
�
�';�<�<�<�<�<��)rrrs`` r�coding_checkerr!s'����=�=�=�=�=�=��Lrc��
���
���ddlm}m}m}ddlm}m�
m�m�m	}d�d�d�
G�
���
��fd�dtj
��}||�|||����}|d	|d
��f��}|��}	||d|	��S)Nr)�POINTER�WINFUNCTYPE�WinDLL)�BOOL�BYTE�WCHAR�UINT�DWORD��ic�J��eZdZd�fd��zfd��zfd�fd�fd��zfgZdS)�'is_code_page_present.<locals>.CPINFOEXW�MaxCharSize�DefaultChar�LeadByte�UnicodeDefaultChar�CodePage�CodePageNameN)�__name__�
__module__�__qualname__�_fields_)r�MAX_DEFAULTCHAR�
MAX_LEADBYTES�MAX_PATHrrs������r�	CPINFOEXWr".sT�������"�D�)�"�D��$8�9���m�!3�4�)�5�1���&�#�U�8�^�4�6���rr0�GetCPInfoExW�kernel32)�ctypesrrr�ctypes.wintypesrrrrr�	Structure)�cprrrrrr0�	prototype�GetCPInfoEx�inforr-r.r/rrs          @@@@@@r�is_code_page_presentr:'s
��������3�3�3�3�3�3�3�3�3�3�>�>�>�>�>�>�>�>�>�>�>�>�>�>��M��O��H�6�6�6�6�6�6�6�6�6�6�6�6�F�$�6�6�6���D�$��w�w�y�/A�/A�B�B�I��)�^�V�V�J�-?�-?�@�A�A�K��9�;�;�D��;�r�1�d�#�#�#rc�&�eZdZdZd�Zd�Zdd�ZdS)�QueuezF
    queue: write bytes at one end, read bytes from the other end
    c��||_dSr
��_buffer)r�buffers  r�__init__zQueue.__init__?s
������rc�&�|xj|z
c_dSr
r>)r�charss  r�writezQueue.writeBs����������rrc��|dkr|j}|jdd�|_|S|jd|�}|j|d�|_|S�Nrr>)r�size�ss   r�readz
Queue.readEsP����6�6���A��<����+�D�L��H���U�d�U�#�A��<����.�D�L��HrN)r)r)r*r+�__doc__rArDrIrrrr<r<;sP�������������������rr<c��eZdZd�Zd�ZdS)�MixInCheckStateHandlingc��tt|��dz��D�]]}tj|����}|�|d|���}|���}|�|dt��|ds||�|ddd�df��|�	|�|d����|�
||�����tj|����}|�|��|�||d�d��}|�
|||z����_dS)N�rT)�ranger�codecs�getincrementaldecoder�decode�getstate�assertIsInstance�int�setstate�
assertTruer�	r�encoding�urH�i�d�part1�state�part2s	         r�check_state_handling_decodez3MixInCheckStateHandling.check_state_handling_decodeQsY���s�1�v�v�a�x���	-�	-�A�6��,�X�6�6�8�8�A��H�H�Q�r��r�U�O�O�E��J�J�L�L�E��!�!�%��(�C�0�0�0���8�
6��
�
�E�!�H�R�a�R�L�!�,�-�-�-����A�H�H�U�1�X�$6�$6� 6�7�7�7�� � ���
�
���5�5�5�7��,�X�6�6�8�8�A�
�J�J�u�����H�H�Q�q�r�r�U�D�)�)�E����Q��e��,�,�,�,�'	-�	-rc��tt|��dz��D]�}tj|����}|�|d|���}|���}tj|����}|�|��|�||d�d��}|�|||z����dS)NrNT)rOrrP�getincrementalencoder�encoderSrVrrXs	         r�check_state_handling_encodez3MixInCheckStateHandling.check_state_handling_encodegs����s�1�v�v�a�x���	-�	-�A�6��,�X�6�6�8�8�A��H�H�Q�r��r�U�O�O�E��J�J�L�L�E�6��,�X�6�6�8�8�A�
�J�J�u�����H�H�Q�q�r�r�U�D�)�)�E����Q��e��,�,�,�,�	-�	-rN)r)r*r+r`rdrrrrLrLPs2������-�-�-�,-�-�-�-�-rrLc�H�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	dZ
d	�Zd
�ZdS)�ReadTestc	���td��}tj|j��|��}d}t	|�|j��|d���D]U\}}|�t|g����||���z
}|�	||���V|�	|���d��|�	|j
d��tj|j����}d}t	|�|j��|d���D]A\}}||�t|g����z
}|�	||���B|�	|�dd��d��|�	|j
d��|���d}t	|�|j��|d���D]A\}}||�t|g����z
}|�	||���B|�	|�dd��d��|�	|j
d��|�|j��}	|�	|d�tjd�|	D��|j������dS)Nr�T��strictc�.�g|]}t|g����Sr��bytes��.0�cs  r�
<listcomp>z*ReadTest.check_partial.<locals>.<listcomp>�s ��&C�&C�&C�a�u�a�S�z�z�&C�&C�&Cr)r<rP�	getreaderrY�ziprcrDrmrIr�
bytebufferrQrRr@�reset�join�
iterdecode)
rr
�partialresults�q�r�resultrp�
partialresultr\�encodeds
          r�
check_partialzReadTest.check_partialss���

�#�J�J��+�F��T�]�+�+�A�.�.����"%�e�l�l�4�=�&A�&A�>�Z^�"_�"_�"_�	4�	4��Q�
�
�G�G�E�1�#�J�J�����a�f�f�h�h��F����V�]�3�3�3�3���������2�&�&�&������s�+�+�+�
8�F�(���7�7�9�9����"%�e�l�l�4�=�&A�&A�>�Z^�"_�"_�"_�	4�	4��Q�
��a�h�h�u�a�S�z�z�*�*�*�F����V�]�3�3�3�3�������#�t�,�,�b�1�1�1������3�'�'�'�	
���	�	�	���"%�e�l�l�4�=�&A�&A�>�Z^�"_�"_�"_�	4�	4��Q�
��a�h�h�u�a�S�z�z�*�*�*�F����V�]�3�3�3�3�������#�t�,�,�b�1�1�1������3�'�'�'��,�,�t�}�-�-�������G�G�F�%�&C�&C�7�&C�&C�&C�T�]�S�S�T�T�	
�	
�	
�	
�	
rc� ����fd��d�fd�	}d}d}d}��||d��|����||d��|����||dd��|����||dd��|��d	}g}g}t|��D]D\}}	|�|d
zd
zdz|	z��|�|d
zd
zdz���E��|d�|��d��d
�|������|d�|��d��d
�|����t	d��D�]}
|D]�}	d|
dz|	zdzz}�|��}t	d��D]\}��|�d���|
dz|	z����|�d���d���]�|��}t	d��D]Y}��|�d���|
dz����|�d���d���Z����dS)Nc���tj|��j����}t	j�j��|��Sr
��io�BytesIOrcrYrPrr)r
�streamrs  �rrrz)ReadTest.test_readline.<locals>.getreader�s=����Z����T�]� ;� ;�<�<�F�2�6�#�D�M�2�2�6�:�:�:rTc����|��}g}	|�||���}|sn|�|���0d�|��S)NT)rG�keepends�|)�readline�appendrv)r
r�rG�reader�lines�linerrs      �r�readalllinesz,ReadTest.test_readline.<locals>.readalllines�se����Y�u�%�%�F��E�
#����D�8��D�D��������T�"�"�"�	
#�
�8�8�E�?�?�"rufoo
bar
baz
spam
eggsufoo
|bar
|baz
|spam
|eggszfoo|bar|baz|spam|eggsF�
)�
�
�
u
��uあrhr��P�azxxx
�r��xxx)TN)r�	enumerater�rvrOr�)
rr�rH�	sexpected�sexpectednoends�lineends�vw�vwor[�lineendrGr�rrs
`           @r�
test_readlinezReadTest.test_readline�s����	;�	;�	;�	;�	;�	#�	#�	#�	#�	#�	#�
.��9�	�1�������a��.�.�	�:�:�:������a��/�/��A�A�A������a��r�2�2�I�>�>�>������a���3�3�_�E�E�E�1��
����%�h�/�/�	-�	-�L�Q���I�I�q��u�S�y�(�*�W�4�5�5�5��J�J��#��c�	�8�+�,�,�,�,������b�g�g�b�k�k�4�8�8�#�(�(�2�,�,�G�G�G������b�g�g�b�k�k�5�9�9�3�8�8�C�=�=�I�I�I��"�I�I�	�	�D�#�
�
����S��7�*�W�4�5��"��1�����r�����A��$�$������6�6��S��7�*�����$�$������6�6������#��1�����r�����A��$�$������7�7��S������$�$������7�7�������
�	�	rc�|���gd�}d�|�����fd�}|��}��|���|d����|���d�|dd�������|���d��|��}��|���|d����|�d��|dd����|�d��d����|�d���t	|d��dzd�dd���|��}��|���|d����|���|dd�����|���d��|��}��|�dd�	���dd�����|����dd�����|���d��|��}��|�dd�	���dd�����|�d���d����|�d��d����|�d���d
d���|��}��|�dd�	���dd�����|���|ddd�g|dd�z����|���d��dS)N)zHumpty Dumpty sat on a wall,
z!Humpty Dumpty had a great fall.
z-All the king's horses and all the king's men
z#Couldn't put Humpty together again.rhc���tj���j����}t	j�j��|��Sr
r�)r��datars ��rrrz8ReadTest.test_mixed_readline_and_read.<locals>.getreader�s=����Z����D�M� :� :�;�;�F�2�6�#�D�M�2�2�6�:�:�:rrrN�d�(�)rGrC��j)rvrr�rIr�	readlines)rr�rr�fr�s`   @r�test_mixed_readline_and_readz%ReadTest.test_mixed_readline_and_read�s�����8�8�8���w�w�u�~�~��	;�	;�	;�	;�	;�	;�

�I�K�K����������u�Q�x�0�0�0���������2�7�7�5����9�#5�#5�6�6�6���������2�&�&�&�
�I�K�K����������u�Q�x�0�0�0����������E�!�H�Q�K�0�0�0����������B�'�'�'����������d�3�u�Q�x�=�=�1�+<�+=�+=�&>�t��t�&D�E�E�E�
�I�K�K����������u�Q�x�0�0�0����������a�b�b�	�2�2�2���������2�&�&�&�
�I�K�K��������R�q��1�1�4����8�<�<�<���������4����8�,�,�,���������2�&�&�&�
�I�K�K��������R�q��1�1�4����8�<�<�<����������D��G�,�,�,����������B�'�'�'����������d�1�S�5�k�2�2�2�
�I�K�K��������R�q��1�1�4����8�<�<�<����������q��!�"�"����q�r�r��(B�C�C�C���������2�&�&�&�&�&rc�2�gd�}tjd�|���|j����}tj|j��|��}t|��D]!\}}|�|||���"dS)N)=z:<%!--===================================================
z,    BLOG index page: show recent articles,
z7    today's articles, or articles of a specific date.
z>========================================================--%>
z!<%@inputencoding="ISO-8859-1"%>
z<%@pagetemplate=TEMPLATE.y%>
z$<%@import=import frog.util, frog%>
z!<%@import=import frog.objects%>
z9<%@import=from frog.storageerrors import StorageError%>
z<%
r�zimport logging
z+log=logging.getLogger("Snakelets.logger")
r�r�zuser=self.SessionCtx.user
z-storageEngine=self.SessionCtx.storageEngine
r�r�z-def readArticlesFromDate(date, count=None):
z2    entryids=storageEngine.listBlogEntries(date)
z%    entryids.reverse() # descending
z    if count:
z#        entryids=entryids[:count]
z
    try:
z\        return [ frog.objects.BlogEntry.load(storageEngine, date, Id) for Id in entryids ]
z    except StorageError,x:
z6        log.error("Error loading articles: "+str(x))
z,        self.abort("cannot load articles")
r�zshowdate=None
r�zarg=self.Request.getArg()
zif arg=="today":
z,    #-------------------- TODAY'S ARTICLES
z-    self.write("<h2>Today's articles</h2>")
z(    showdate = frog.util.isodatestr() 
�.    entries = readArticlesFromDate(showdate)
zelif arg=="active":
z4    #-------------------- ACTIVE ARTICLES redirect
z     self.Yredirect("active.y")
zelif arg=="login":
z/    #-------------------- LOGIN PAGE redirect
z    self.Yredirect("login.y")
zelif arg=="date":
z7    #-------------------- ARTICLES OF A SPECIFIC DATE
z2    showdate = self.Request.getParameter("date")
zV    self.write("<h2>Articles written on %s</h2>"% frog.util.mediumdatestr(showdate))
r�zelse:
z+    #-------------------- RECENT ARTICLES
z,    self.write("<h2>Recent articles</h2>")
z.    dates=storageEngine.listBlogEntryDates()
z    if dates:
z        entries=[]
z        SHOWAMOUNT=10
z         for showdate in dates:
zW            entries.extend( readArticlesFromDate(showdate, SHOWAMOUNT-len(entries)) )
z*            if len(entries)>=SHOWAMOUNT:
z                break
z                
rh)	r�r�rvrcrYrPrrr�r)rrHr�r�r[r�s      r�test_bug1175396zReadTest.test_bug1175396	s���>
�>
�>
��~��B�G�G�A�J�J�-�-�d�m�<�<�=�=��0��!�$�-�0�0��8�8��"�6�*�*�	)�	)�I�Q�����T�1�Q�4�(�(�(�(�	)�	)rc�n�td��}tj|j��|��}tj|j��|��}|�d��|�|�d���d��|�d��|�|�d���d��|�|�d���d��|�d	��|�|�d���d	��|�|�d���d��|�d��|�|�d
���d��|�d��|�|�d
���d��|�|�d
���d��|�d	��|�|�d
���d	��|�|�d
���d��|�d
��|�|�d
���d
��dS)Nrzfoo
Fr��fooz
bar
rh�bar�bazTr�zbar
zfoo
)r<rP�	getwriterrYrrrDrr�)rry�writerr�s    r�test_readlinequeuezReadTest.test_readlinequeueNsY���#�J�J��0��!�$�-�0�0��3�3��0��!�$�-�0�0��3�3��	���W����������%��8�8�%�@�@�@����Y����������%��8�8�"�=�=�=�������%��8�8�%�@�@�@����U����������%��8�8�%�@�@�@�������%��8�8�"�=�=�=�	���W����������$��7�7��A�A�A����Y����������$��7�7��>�>�>�������$��7�7��A�A�A����U����������$��7�7��?�?�?�������$��7�7��<�<�<����Y����������$��7�7��C�C�C�C�Crc��d}d}d}||z|z�|j��}tj|��}t	j|j��|��}|�|���|��|�|���|��|�|���|��|�|���d��dS)NzAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
z`offending line: ladfj askldfj klasdj fskla dfzaskdj fasklfj laskd fjasklfzzzzaa%whereisthis!!!
znext line.
rh�rcrYr�r�rPrrrr�)r�s1�s2�s3rHr�r�s       r�test_bug1098990_azReadTest.test_bug1098990_ais���
R��
q��
��
��U�2�X���d�m�,�,����A����0��!�$�-�0�0��8�8��������*�*�B�/�/�/�������*�*�B�/�/�/�������*�*�B�/�/�/�������*�*�B�/�/�/�/�/rc��d}d}d}d}d}||z|z|z|z�|j��}tj|��}t	j|j��|��}|�|���|��|�|���|��|�|���|��|�|���|��|�|���|��|�|���d��dS)Nzaaaaaaaaaaaaaaaaaaaaaaaa
zbbbbbbbbbbbbbbbbbbbbbbbb
zstillokay:bbbbxx
zbroken!!!!badbad
zagainokay.
rhr�)	rr�r�r��s4�s5rHr�r�s	         r�test_bug1098990_bzReadTest.test_bug1098990_bvs/��
+��
+��
#��
#��
��
��U�2�X�b�[��^�#�#�D�M�2�2����A����0��!�$�-�0�0��8�8��������*�*�B�/�/�/�������*�*�B�/�/�/�������*�*�B�/�/�/�������*�*�B�/�/�/�������*�*�B�/�/�/�������*�*�B�/�/�/�/�/r��c��|�tdj|j��|�d�|jd��d�|j����|�d�|jd��d�|j����|�d�|jd��d�|j����|�d�|jd��d	�|j����|�d�|jd
��d�|j����|�d�|jd��d	�|j����|�d�|jd
��d
�|j����d�|j��}dD�]�\}}|�|j��t|��d�}|�|j��t|��d�}|dz|z}||z|jz|z}|�t|j|j��|�|�|jd��|��|�|�|jd��|��|�|�|jd��||z��|�|�|jd
��||j	z|z��d�
d�|jD����}|�|�|jd��||z|z�����dS)Nu��[�]�backslashreplacez[\udc80]�namereplace�xmlcharrefreplacez
[&#56448;]�ignore�[]�replacez[?]�[��]z[??]rh))�𐿿�A)�[�])r�r����
surrogatepassc3� K�|]	}d|zV��
dS)�\x%02xNr)ro�bs  r�	<genexpr>z0ReadTest.test_lone_surrogates.<locals>.<genexpr>�sB����'J�'J�+,�(1�1�}�'J�'J�'J�'J�'J�'Jr)�assertRaises�UnicodeEncodeErrorrcrYrr�ill_formed_sequence�UnicodeDecodeErrorrR�ill_formed_sequence_replacerv)	r�bom�before�after�before_sequence�after_sequence�test_string�
test_sequencer�s	         r�test_lone_surrogateszReadTest.test_lone_surrogates�s�����,�h�o�t�}�M�M�M�����*�*�4�=�:L�M�M�$�+�+�D�M�:�:�	<�	<�	<�����*�*�4�=�-�H�H�$�+�+�D�M�:�:�	<�	<�	<�����*�*�4�=�:M�N�N�%�,�,�T�]�;�;�	=�	=�	=�����*�*�4�=�(�C�C����T�]�3�3�	5�	5�	5�����*�*�4�=�)�D�D����d�m�4�4�	6�	6�	6�	
���)�0�0����I�I����T�]�3�3�	5�	5�	5����)�0�0���	�J�J����t�}�5�5�	7�	7�	7��i�i��
�&�&��3�	@�	@�M�F�E�$�m�m�D�M�:�:�3�s�8�8�9�9�E�O�"�\�\�$�-�8�8��S�����C�N� �8�+�e�3�K� �?�2�!�5�6�8F�G�M����0�-�2F�"�m�
-�
-�
-����[�/�/��
�0?�A�A�*�
,�
,�
,�
���]�1�1�$�-�2A�C�C�(�
*�
*�
*�
���]�1�1�$�-��J�J�#�e�^�
-�
-�
-����]�1�1�$�-��K�K�#�d�&F�F��N�
P�
P�
P�!�w�w�'J�'J�04�0H�'J�'J�'J� J� J�����]�1�1�$�-�AS�T�T�#�&6�6��>�
@�
@�
@�
@�+	@�	@rc��d�|jd��}tdt|����D]�}t	j|j��d��}|�|�|d|���d��|�|�||d�d��d����d�|jd��}tdt|����D]�}t	j|j��d��}|�|�|d|���d��|�|�||d���d����dS)Nu�r�rNrhTu�)rcrYrOrrPrQrrR)rr�r[�decs    r�test_incremental_surrogatepassz'ReadTest.test_incremental_surrogatepass�s`�����t�}�o�>�>���q�#�d�)�)�$�$�	C�	C�A�=�&�.�t�}�=�=�o�N�N�C����S�Z�Z��R�a�R��1�1�2�6�6�6����S�Z�Z��Q�R�R��$�7�7��B�B�B�B����t�}�o�>�>���q�#�d�)�)�$�$�	=�	=�A�=�&�.�t�}�=�=�o�N�N�C����S�Z�Z��R�a�R��1�1�2�6�6�6����S�Z�Z��Q�R�R��1�1�8�<�<�<�<�	=�	=rN)
r)r*r+r~r�r�r�r�r�r�r�r�r�rrrrfrfrs�������)
�)
�)
�V9�9�9�v.'�.'�.'�`C)�C)�C)�JD�D�D�60�0�0�0�0�0�"#+��*@�*@�*@�X=�=�=�=�=rrfc�d�eZdZdZejdkrdZndZdZdZd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�ZdS)�	UTF32Test�utf-32�little����܀s$��spamspams$��spamspamc���tj|j��\}}}}tj��}||��}|�d��|�d��|���}|�||jkp
||j	k��tj|��}||��}|�
|���d��dS�N�spam�spamspam�rP�lookuprYr�r�rD�getvaluerW�spamle�spamberrI�r�_r�r�rHr�r\s       r�test_only_one_bomzUTF32Test.test_only_one_bom�����"�M�$�-�8�8���!�F�6��J�L�L���F�1�I�I��	�������	�������
�J�J�L�L������T�[�(�<�A���,<�=�=�=��J�q�M�M���F�1�I�I����������:�.�.�.�.�.rc�^�tjd��}tj|j��|��}|�t|j��tjd��}tj|j��|��}|�t|j��dS)N�����s���������r�r�rPrrrYr��UnicodeErrorrI�rrHr�s   r�test_badbomzUTF32Test.test_badbom�s����J�y�!�!��+�F��T�]�+�+�A�.�.�����,���/�/�/��J�y�!�!��+�F��T�]�+�+�A�.�.�����,���/�/�/�/�/rc�6�|�dgd���dS)N�ÿĀ￿𐀀)rhrhrhrhrhrhrh�r�r�r��ÿr�r�r��ÿĀr�r�r��ÿĀ￿rrrr��r~�rs r�test_partialzUTF32Test.test_partial�s6�����,�
�
�
�	
�	
�	
�	
�	
rc��|�dtjddd����|�dtjddd����dS�N)r�rN�r�T)rhrNr��rrP�
utf_32_decoders r�
test_handlerszUTF32Test.test_handlers�l�������-�g�y�$�G�G�	I�	I�	I������-�g�x��F�F�	H�	H�	H�	H�	Hrc�V�|�ttjddd��dS�N��rjT)r�r�rPrrs r�test_errorszUTF32Test.test_errors�3�����,�f�.B�!�8�T�	3�	3�	3�	3�	3rc��|�|jd|j��|�|jd|j��dS�Nr��r`rYr�r�rs r�test_decoder_statezUTF32Test.test_decoder_state�Z���(�(���)3�T�[�	B�	B�	B��(�(���)3�T�[�	B�	B�	B�	B�	Brc���d}|�dtj|��d��d}|�dtj|��d��dS)Ns���𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀rs��r)r�
encoded_le�
encoded_bes   r�test_issue8941zUTF32Test.test_issue8941su��F�
����,��-�j�9�9�!�<�	>�	>�	>�E�
����,��-�j�9�9�!�<�	>�	>�	>�	>�	>rN)r)r*r+rY�sys�	byteorderr�r�r�r�r�rr	rrrrrrr�r��s��������H�
�}�� � �1���1��F�F�F�F�
/�
/�
/�0�0�0�
�
�
�>H�H�H�3�3�3�B�B�B�>�>�>�>�>rr�c�.�eZdZdZdZd�Zd�Zd�Zd�ZdS)�UTF32LETest�	utf-32-ler�c�6�|�dgd���dS�Nr�)rhrhrhr�r�r�r�r�r�r�r�r�r�r�r�rrrrr�rrs rrzUTF32LETest.test_partial*�6�����,�
�
�
�	
�	
�	
�	
�	
rc�b�|�d�|j��d��dS)N�𐈃s�rrcrYrs r�test_simplezUTF32LETest.test_simpleE�/������,�,�T�]�;�;�=P�Q�Q�Q�Q�Qrc�V�|�ttjddd��dSr)r�r�rP�utf_32_le_decoders rrzUTF32LETest.test_errorsH�3�����,�f�.E�!�8�T�	3�	3�	3�	3�	3rc�f�d}|�dtj|��d��dS)Nsrr)rrPr(�rr}s  rrzUTF32LETest.test_issue8941L�A��-�����,��0��9�9�!�<�	>�	>�	>�	>�	>rN�	r)r*r+rYr�rr%rrrrrrr&�^�������H�-��
�
�
�6R�R�R�3�3�3�>�>�>�>�>rrc�.�eZdZdZdZd�Zd�Zd�Zd�ZdS)�UTF32BETest�	utf-32-ber�c�6�|�dgd���dSr rrs rrzUTF32BETest.test_partialXr!rc�b�|�d�|j��d��dS)Nr#sr$rs rr%zUTF32BETest.test_simplesr&rc�V�|�ttjddd��dSr)r�r�rP�utf_32_be_decoders rrzUTF32BETest.test_errorsvr)rc�f�d}|�dtj|��d��dS)Nsrr)rrPr5r+s  rrzUTF32BETest.test_issue8941zr,rNr-rrrr0r0Tr.rr0c�j�eZdZdZejdkrdZndZdZdZd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�ZdS)�	UTF16Test�utf-16r�����܀s��spamspams��spamspamc���tj|j��\}}}}tj��}||��}|�d��|�d��|���}|�||jkp
||j	k��tj|��}||��}|�
|���d��dSr�r�r�s       rr�zUTF16Test.test_only_one_bom�r�rc�^�tjd��}tj|j��|��}|�t|j��tjd��}tj|j��|��}|�t|j��dS)Ns��r�r�r�s   rr�zUTF16Test.test_badbom�s����J�{�#�#��+�F��T�]�+�+�A�.�.�����,���/�/�/��J�*�+�+��+�F��T�]�+�+�A�.�.�����,���/�/�/�/�/rc�6�|�dgd���dS)Nr�)rhrhrhr�r�r�r�r�r�rrrrr�rrs rrzUTF16Test.test_partial�s6�����,�
�
�
�	
�	
�	
�	
�	
rc��|�dtjddd����|�dtjddd����dSr)rrP�
utf_16_decoders rr	zUTF16Test.test_handlers�r
rc�V�|�ttjddd��dSr)r�r�rPr@rs rrzUTF16Test.test_errors�rrc��|�|jd|j��|�|jd|j��dSrrrs rrzUTF16Test.test_decoder_state�rrc���d}|�|j��}|�tjtj��t
tjd��5}|�|��ddd��n#1swxYwYtjtjd|j���5}|�	|�
��|��ddd��dS#1swxYwYdS)NzHello
world
�wbrz�rY)rcrY�
addCleanupr�unlink�TESTFN�openrDrPrrI)rr�rH�fpr�s     r�test_bug691291zUTF16Test.test_bug691291�sM��
"���I�I�d�m�$�$�����	�(�)�*:�;�;�;�
�)�"�D�
)�
)�	�R��H�H�Q�K�K�K�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�[��)�3�"&�-�1�1�1�	0�4:����V�[�[�]�]�B�/�/�/�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0����	0�	0�	0�	0�	0�	0s$�!B�B�
B�4)C*�*C.�1C.c��dD]�}|�t��5}tjtj||j���ddd��n#1swxYwY|�dt|j	������dD]�}|�t��5}tjtj||j���ddd��n#1swxYwY|�dt|j	������dS)N)�U�rUzr+UrEzinvalid mode)�rt�wt�atzr+tz'can't have text and binary mode at once)
r��
ValueErrorrPrIrrHrY�assertIn�str�	exception)r�mode�cms   r�test_invalid_modeszUTF16Test.test_invalid_modes�s���&�	=�	=�D��"�"�:�.�.�
L�"���I�,�d�T�]�K�K�K�K�
L�
L�
L�
L�
L�
L�
L�
L�
L�
L�
L����
L�
L�
L�
L��M�M�.�#�b�l�*;�*;�<�<�<�<�-�	-�	-�D��"�"�:�.�.�
L�"���I�,�d�T�]�K�K�K�K�
L�
L�
L�
L�
L�
L�
L�
L�
L�
L�
L����
L�
L�
L�
L��M�M�C��b�l�+�+�
-�
-�
-�
-�	-�	-s#�'A�A	�A	�$'C�C	�C	N)r)r*r+rYrrr�r�r�r�r�rr	rrrKrXrrrr8r8�s��������H�
�}�� � �)���)��
@�F�
@�F�
/�
/�
/�0�0�0�
�
�
�*H�H�H�3�3�3�B�B�B�
0�
0�
0�
-�
-�
-�
-�
-rr8c�(�eZdZdZdZd�Zd�Zd�ZdS)�UTF16LETest�	utf-16-ler:c�6�|�dgd���dS�Nr�)rhr�r�r�r�r�r�rrrrr�rrs rrzUTF16LETest.test_partial��6�����,�

�

�

�	
�	
�	
�	
�	
rc���gd�}|D]W\}}|�ttj|dd��|�|�dd��|���XdS)N)�r
r�)sAZ�A�)s	ABCDZ�ABCD�)s�r�)s�Ar�)s�A��A)s�ArcrjTzutf-16ler�)r�r�rP�utf_16_le_decoderrR�r�tests�raw�expecteds    rrzUTF16LETest.test_errors����
�
�
��#�	J�	J�M�C�����0�&�2I�!�8�T�
3�
3�
3����S�Z�Z�
�I�>�>��I�I�I�I�	J�	Jrc��|�d�|j��d��|�d�|j��d��dS)Nr#s�ީrrcrYrRrs r�test_nonbmpzUTF16LETest.test_nonbmp�g������,�,�T�]�;�;�,�	.�	.�	.����,�3�3�D�M�B�B�%�	'�	'�	'�	'�	'rN�r)r*r+rYr�rrrlrrrrZrZ��O�������H�%��
�
�
�&
J�
J�
J�'�'�'�'�'rrZc�(�eZdZdZdZd�Zd�Zd�ZdS)�UTF16BETest�	utf-16-ber;c�6�|�dgd���dSr]rrs rrzUTF16BETest.test_partialr^rc���gd�}|D]W\}}|�ttj|dd��|�|�dd��|���XdS)N)r`)sA�ra)s	ABCDZrb)s�r�)s��r�)s�Arc)s�ArcrjTzutf-16ber�)r�r�rP�utf_16_be_decoderrRres    rrzUTF16BETest.test_errors(rirc��|�d�|j��d��|�d�|j��d��dS)Nr#s��rkrs rrlzUTF16BETest.test_nonbmp7rmrNrnrrrrqrqrorrqc�L��eZdZdZdZdZdZd�Zd�Zd�Z	�fd�Z
d	�Zd
�Z�xZ
S)�UTF8Test�utf-8s�u	���rc�6�|�dgd���dS)N�ÿ߿ࠀ￿𐀀)r�r�r�r��ÿ߿r|r|�ÿ߿ࠀr}r}�ÿ߿ࠀ￿r~r~r~r{rrs rrzUTF8Test.test_partialCs6�����2�
�
�
�	
�	
�	
�	
�	
rc�r�d}|�|j||�|j����dS)Nu€ÿĀ߿ࠀ￿􏿿)r`rYrc)rrZs  rrzUTF8Test.test_decoder_stateYsE��@���(�(���)*�A�H�H�T�]�,C�,C�	E�	E�	E�	E�	Erc���dD]e\}}}|�|||���5|�|�|j|��|��ddd��n#1swxYwY�fdS)N�)�[��]r�r�)r�r�u[��])r��surrogateescape�[��])r�r�z
[\x80\xff]�r��
error_handlerrh)�subTestrrRrY�rr�r�rhs    r�test_decode_errorzUTF8Test.test_decode_error^s���.
�		+�		+�)�D�-�����4�}�'/��1�1�
+�
+�� � ����T�]�M�!J�!J�!)�+�+�+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+����
+�
+�
+�
+��
		+�		+s�0A�A!	�$A!	c���t�����|�d�|jd��|jdz��|�t��5}d�|jd��ddd��n#1swxYwY|j}|�|j	|j
|j�d��dS)Nr�r�s[�]u[���]u��)�superr�rrcrY�BOMr�r�rU�object�start�end)rrW�exc�	__class__s   �rr�zUTF8Test.test_lone_surrogatesjs���
���$�$�&�&�&�	
����*�*�4�=�:K�L�L���I�-�	/�	/�	/��
�
�1�
2�
2�	L�b�"�)�)�$�-�9J�K�K�K�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L�	L����	L�	L�	L�	L��l�������C�I�c�g�$5�6��G�G�G�G�Gs�3B�B�"Bc��|�d�|jd��|jdz��|�d�|jd��|jdz��|�d�|jd��|jdz��|�d�|jd��d��|�d�|jd��d��|�t
jd����|�t��5d�|jd��ddd��n#1swxYwY|�t��5d	�|jd��ddd��dS#1swxYwYdS)
Nu	abc�defr�s	abc�defu𐿿�s𐿿�r�s[��]sabc�sabc�z)
rrcrYr�rRrWrP�lookup_errorr�r�rs r�test_surrogatepass_handlerz#UTF8Test.test_surrogatepass_handlervsh������.�.�t�}�o�N�N���$9�9�	;�	;�	;����+�2�2�4�=�/�R�R���$C�C�	E�	E�	E����)�0�0����P�P���$A�A�	C�	C�	C�	
���.�5�5�d�m�_�U�U�'�	)�	)�	)����8�?�?��
��_�_�+�	-�	-�	-�	
����+�O�<�<�=�=�=�
�
�
�1�
2�
2�	B�	B��!�!�$�-��A�A�A�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B����	B�	B�	B�	B�
�
�
�1�
2�
2�	C�	C��"�"�4�=�/�B�B�B�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C����	C�	C�	C�	C�	C�	Cs$�E-�-E1�4E1�F;�;F?�F?c�f�gd�}dD]}dD]}|�||z���� |�d��|D]r}|�|���5tj|j����}|�t|j|��ddd��n#1swxYwY�sdS)N)������������r
)������s���s���s�s���s�s�)�r�)s�s�s�s�s�s�s�r�)	r��extendr�rPrQrYr�r�rR)r�cases�prefix�suffixr�r�s      r�test_incremental_errorsz UTF8Test.test_incremental_errors�s>��P�O�O��>�	.�	.�F�+�
.�
.�����V�f�_�-�-�-�-�
.�
���N�	O�	O�	O��	H�	H�D����4��(�(�
H�
H�A�f�2�4�=�A�A�C�C���!�!�"4�c�j�$�G�G�G�
H�
H�
H�
H�
H�
H�
H�
H�
H�
H�
H����
H�
H�
H�
H��	H�	Hs�AB%�%B)	�,B)	)r)r*r+rYr�r�r�rrr�r�r�r��
__classcell__�r�s@rrxrx=s���������H�)��".��

�C�
�
�
�,E�E�E�

+�
+�
+�
H�
H�
H�
H�
H�C�C�C�&H�H�H�H�H�H�Hrrxc�0�eZdZdZd�Zd�Zd�Zd�Zd�ZdS)�UTF7Test�utf-7c��d}|�|�|j��|�d����|�|�d���|j��|��d}|�|�|j��|�d����|�|�d���|j��|��|�d�|j��d��|�d�|j��d��d}|�|�|j��|�d����|�|�d���|j��|��d�tt
ttd���������t
||zd	z|z��z
����}|�|�|j��d
��dS)NzGABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'(),-./:?�asciiz !"#$%&*;<=>@[]^_`{|}za+bsa+-bz 	

rh��+sX+AAAAAQACAAMABAAFAAYABwAIAAsADAAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsAHAAdAB4AHwBcAH4Afw-)	rrcrYrRrv�sorted�setrmrO)r�set_d�set_o�ws�other_asciis     r�
test_asciizUTF7Test.test_ascii�s(����	
������d�m�4�4�e�l�l�7�6K�6K�L�L�L�������g�.�.�5�5�d�m�D�D�e�L�L�L�'��������d�m�4�4�e�l�l�7�6K�6K�L�L�L�������g�.�.�5�5�d�m�D�D�e�L�L�L�������d�m�4�4�g�>�>�>��������
�6�6��>�>�>�
��������4�=�1�1�2�9�9�W�3E�3E�F�F�F�������7�+�+�2�2�4�=�A�A�2�F�F�F��g�g�f�S��u�T�{�{�);�);�)B�)B�)D�)D�%E�%E�%(�����)<�r�)A�%B�%B�&C�D�D�E�E������+�+�D�M�:�:�D�	E�	E�	E�	E�	Erc�6�|�dgd���dS)N�a+-bc€dĀe𐀀f) r�r��a+za+-�a+-br�r�r�r�za+-b�a+-bcr�r�r�r�ua+-bc€�	a+-bc€dr�r�r�r�ua+-bc€dĀ�a+-bc€dĀer�r�r�r�r�r�r�ua+-bc€dĀe𐀀r�rrs rrzUTF7Test.test_partial��6�����.�!
�!
�!
�$	
�$	
�$	
�$	
�$	
rc	��gd�}|D]�\}}|�|���5|�ttj|dd��|�|�dd��|��ddd��n#1swxYwY��dS)N))s�bu�b)sa�b�a�b)sa��bua��b)sa+IK�a�)sa+IK-br�)sa+IK,br�)sa+IKx�a€�)sa+IKx-b�a€�b)sa+IKwgrr�)s	a+IKwgr-br�)sa+IKwgr,r�)s
a+IKwgr,-bu	a€�-b)sa+IKwgrB�
a€€�)s
a+IKwgrB-b�a€€�b)s
a+/,+IKw-b�a�€b)sa+//,+IKw-br�)sa+///,+IKw-b�a￿�€b)s
a+////,+IKw-br�)sa+IKw-b�ua€b�)sa+IKw�br�)sa+@br��rgrjTr�r�)r�r�r�rP�utf_7_decoderrRres    rrzUTF7Test.test_errors�s���
�
�
��.#�	K�	K�M�C�����#��&�&�
K�
K��!�!�"4�f�6I� #�X�t�5�5�5�� � ����G�Y�!?�!?��J�J�J�
K�
K�
K�
K�
K�
K�
K�
K�
K�
K�
K����
K�
K�
K�
K��	K�	Ks�AB�B	�B	c��|�d�|j��d��|�d�|j��d��|�d�|j��d��|�d�|j��d��|�d�|j��d��|�d�|j��d��|�d�|j��d��|�d�|j��d	��|�d	�|j��d��|�d
�|j��d��dS)Nu𐒠s+2AHcoA-u��s+2AHcoAu€𐒠s
+IKzYAdyg-s	+IKzYAdygu
€€𐒠s
+IKwgrNgB3KA-s+IKwgrNgB3KArkrs rrlzUTF7Test.test_nonbmp�s�������,�,�T�]�;�;�[�I�I�I�����.�.�t�}�=�=�{�K�K�K�����+�+�D�M�:�:�L�I�I�I�����*�*�4�=�9�9�<�H�H�H����+�2�2�4�=�A�A�=�Q�Q�Q�����-�-�d�m�<�<�>P�Q�Q�Q�����,�,�T�]�;�;�=O�P�P�P����1�8�8���G�G�)�	+�	+�	+����)�0�0���?�?�1�	3�	3�	3�����/�/��
�>�>�1�	3�	3�	3�	3�	3rc���gd�}|D]]\}}|�|���5|�|�dd��|��ddd��n#1swxYwY�^dS)N)
)sa+2AE-bua�b)sa+2AE�br�)sa+2AEr�)sa+2AEA-br�)sa+2AH-br�)s
a+IKzYAQ-bua€�b)s
a+IKzYAQ�br�)sa+IKzYAQA-br�)s
a+IKzYAd-br�)sa+IKwgrNgB-bua€€�b)sa+IKwgrNgB�br�)s
a+IKwgrNgBr�)s
a+IKwgrNgBA-br�r�r�r��r�rrRres    rr�zUTF7Test.test_lone_surrogatess���
�
�
��#�	K�	K�M�C�����#��&�&�
K�
K�� � ����G�Y�!?�!?��J�J�J�
K�
K�
K�
K�
K�
K�
K�
K�
K�
K�
K����
K�
K�
K�
K��	K�	Ks�+A�A	� A	N)	r)r*r+rYr�rrrlr�rrrr�r��sp�������H�E�E�E�4%
�%
�%
�NK�K�K�<
3�
3�
3�K�K�K�K�Krr�c��eZdZd�Zd�ZdS)�UTF16ExTestc�X�|�ttjdddd��dS)Nr
rjrT)r�r�rP�utf_16_ex_decoders rrzUTF16ExTest.test_errors#s-�����,�f�.E�w�PX�Z[�]a�b�b�b�b�brc�P�|�ttj��dSr
)r��	TypeErrorrPr�rs r�
test_bad_argszUTF16ExTest.test_bad_args&s!�����)�V�%<�=�=�=�=�=rN)r)r*r+rr�rrrr�r�!s5������c�c�c�>�>�>�>�>rr�c� �eZdZd�Zd�Zd�ZdS)�ReadBufferTestc��ddl}|�tj|�dd����d��dS)Nrr��spam)r��)�arrayrrP�readbuffer_encode)rr�s  r�
test_arrayzReadBufferTest.test_array+sL����������$�U�[�[��g�%>�%>�?�?��	
�	
�	
�	
�	
rc�V�|�tjd��d��dS)Nrh�rr)rrPr�rs r�
test_emptyzReadBufferTest.test_empty2s)������1�"�5�5�x�@�@�@�@�@rc��|�ttj��|�ttjd��dS�N�*)r�r�rPr�rs rr�zReadBufferTest.test_bad_args5s<�����)�V�%=�>�>�>����)�V�%=�r�B�B�B�B�BrN)r)r*r+r�r�r�rrrr�r�)sI������
�
�
�A�A�A�C�C�C�C�Crr�c�>�eZdZdZejZd�Zd�Zd�Z	d�Z
d�ZdS)�UTF8SigTest�	utf-8-sigc�6�|�dgd���dS)N�ÿ߿ࠀ￿𐀀)rhrhrhrhrhu�r��ÿr��ÿ߿r�r��ÿ߿ࠀr�r��ÿ߿ࠀ￿r�r�r�r�rrs rrzUTF8SigTest.test_partial=s6�����8�
�
�
�	
�	
�	
�	
�	
rc�N�|�tdd��d��dS)N�r�rh�rrTrs r�test_bug1601501zUTF8SigTest.test_bug1601501Ys(������_�k�:�:�B�?�?�?�?�?rc��tjd����}d}|�|�|�d����|��dS)Nr�r�)rPrQrrRrc)rr\rHs   r�test_bomzUTF8SigTest.test_bom]sS��5�F�(��5�5�7�7����������!�(�(�;�"7�"7�8�8�!�<�<�<�<�<rc���d}tjdz}tjd��}dgtt	dd����zgd�zD]�}|tj|����}tj��}	|�|�|��}n|���}|sn|�	|���E|�
��}|�||����dS�NuABC¡∀XYZsABC¡∀XYZr�rN�)�@r���i)rP�BOM_UTF8rr�listrOr�r��StringIOrIrDr�r�	r�	unistring�
bytestringr��sizehint�istream�ostreamr��gots	         r�test_stream_bomzUTF8SigTest.test_stream_bombs���(�	��_�'D�D�
��!�+�.�.�����e�A�r�l�l�!3�!3�3�1�1�1�2�	-�	-�H��f�R�Z�
�3�3�4�4�G��k�m�m�G�
$��'�"�<�<��1�1�D�D�"�<�<�>�>�D�����
�
�d�#�#�#�
$��"�"�$�$�C����S�)�,�,�,�,�	-�	-rc���d}d}tjd��}dgttdd����zgd�zD]�}|t	j|����}t	j��}	|�|�|��}n|���}|sn|�|���E|�	��}|�
||����dSr�)rPrrr�rOr�r�r�rIrDr�rr�s	         r�test_stream_barezUTF8SigTest.test_stream_barexs���(�	�2�
��!�+�.�.�����e�A�r�l�l�!3�!3�3�1�1�1�2�	-�	-�H��f�R�Z�
�3�3�4�4�G��k�m�m�G�
$��'�"�<�<��1�1�D�D�"�<�<�>�>�D�����
�
�d�#�#�#�
$��"�"�$�$�C����S�)�,�,�,�,�	-�	-rN)r)r*r+rYrPr�r�rr�r�rrrrrr�r�9sn�������H�
�/�C�
�
�
�8@�@�@�=�=�=�
-�-�-�,-�-�-�-�-rr�c�&�eZdZd�Zd�Zd�Zd�ZdS)�EscapeDecodeTestc��|�tjd��d��|�tjt����d��dS)Nrr�)rrP�
escape_decode�	bytearrayrs rr�zEscapeDecodeTest.test_empty�sN������-�c�2�2�H�=�=�=�����-�i�k�k�:�:�H�E�E�E�E�Erc��tj}td��D]?}t|g��}|dkr'|�||dz��|dzdf���@dS)Nr��\�0r )rPr
rOrmr�rrRr�s   r�test_rawzEscapeDecodeTest.test_raw�sp���%���s���	B�	B�A��q�c�
�
�A��E�z�z�� � ����D��!1�!1�A��H�a�=�A�A�A��	B�	Brc	���tj}t||��}|dd��|dd��|dd��|dd��|d	d
��|dd��|d
d��|dd��|dd��|dd��|dd��|dd
��|dd��|dd��|dd��|dd��|d d!��|d"d��|d#d!��td$d%��D]�}t	|g��}|d&vrD|�t��5|d'|zd'|z��ddd��n#1swxYwY|�t��5|d'|���zd'|���z��ddd��n#1swxYwY��|�t��5|d(d(��ddd��n#1swxYwY|�t��5|d)d)��ddd��n#1swxYwY|�t��5|d*d*��ddd��n#1swxYwYtd+d,��D]T}|�t��5|d-|zt	|d.zg����ddd��n#1swxYwY�UdS)/N�[\
]�[]�[\"]s["]�[\']s[']�[\\]s[\]�[\a]s[]�[\b]s[]�[\t]s[	]�[\n]s[
]�[\v]s[]�[\f]s[]�[\r]s[
]�[\7]�[\78]s[8]�[\41]s[!]�[\418]s[!8]�[\101]s[A]�[\1010]s[A0]�[\x41]�[\x410]�a�{sabfnrtvxr
�\8�\9�\�r�r��\%o�)rPr
rrOrm�assertWarns�DeprecationWarning�upper�rrRrr[r�s     r�test_escapezEscapeDecodeTest.test_escape�s����%���t�V�,�,��
��i�����
��h�����
��h�����
��h�� � � �
��h�	�"�"�"�
��h�	�"�"�"�
��h�	�"�"�"�
��h�	�"�"�"�
��h�	�"�"�"�
��h�	�"�"�"�
��h�	�"�"�"�
��h�	�"�"�"�
��i��$�$�$�
��i�� � � �
��j�'�"�"�"�
��j�&�!�!�!�
��k�7�#�#�#�
��j�&�!�!�!�
��k�7�#�#�#��r�3���	<�	<�A��q�c�
�
�A���#�#��%�%�&8�9�9�0�0��E�%�!�)�U�Q�Y�/�/�/�0�0�0�0�0�0�0�0�0�0�0����0�0�0�0��!�!�"4�5�5�
<�
<���e�a�g�g�i�i�'�������):�;�;�;�
<�
<�
<�
<�
<�
<�
<�
<�
<�
<�
<����
<�
<�
<�
<��
�
�
�0�
1�
1�	"�	"��E�&�&�!�!�!�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"�
�
�
�0�
1�
1�	"�	"��E�&�&�!�!�!�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"�
�
�
�0�
1�
1�	(�	(��E�)�Y�'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(��u�f�%�%�	7�	7�A��!�!�"4�5�5�
7�
7���g��k�5�!�e�)��#5�#5�6�6�6�
7�
7�
7�
7�
7�
7�
7�
7�
7�
7�
7����
7�
7�
7�
7��	7�	7sl�E � E$	�'E$	�7G�G	�G	�.
H�H�H�,
I�I	�I	�*
J�J�
J�:!K'�'K+	�.K+	c��tj}|�t|d��|�t|d��|�|dd��d��|�|dd��d��|�t|d��|�t|d	��|�|d
d��d��|�|d
d��d��dS)
Ns\xs[\x]s[\x]\xr�)rr�r�)�[?]?r�s\x0s[\x0]s[\x0]\x0)r�)r3r4)rPr
r�rRr)rrRs  rrzEscapeDecodeTest.test_errors�s����%�����*�f�f�5�5�5����*�f�h�7�7�7������
�H�5�5�z�B�B�B������
�I�6�6��E�E�E����*�f�g�6�6�6����*�f�i�8�8�8�������h�7�7��D�D�D�������i�8�8�,�G�G�G�G�GrN)r)r*r+r�rr1rrrrrr�s\������F�F�F�B�B�B�%7�%7�%7�N	H�	H�	H�	H�	Hrr))u"ليهمابتكلموشعربي؟segbpdaj6bu4bxfgehfvwxn)u他们为什么不说中文sihqwcrb4cv8a8dqg056pqjye)u他們爲什麽不說中文sihqwctvzc91f659drss3x8bo0yb)uPročprostěnemluvíčeskysProprostnemluvesky-uyb24dma41a)u,למההםפשוטלאמדבריםעבריתs4dbcagdahymbxekheh6e0a7fei0b)uZयहलोगहिन्दीक्योंनहींबोलसकतेहैंs,i1baa7eci9glrd9b2ae1bj0hfcgg6iyaf8o0a1dig0cd)u6なぜみんな日本語を話してくれないのかs&n8jok5ay5dzabd5bym9f0cm5685rrjetr6pdxa)uH세계의모든사람들이한국어를이해한다면얼마나좋을까sE989aomsvi5e83db1d2a355cv1e0vak1dwrv93d5xbh15a0dt30a5jpsd879ccm6fea98c)u8почемужеонинеговорятпорусскиs b1abfaaepdrnnbgefbaDotcwatmq2g4l)u*PorquénopuedensimplementehablarenEspañols-PorqunopuedensimplementehablarenEspaol-fmd56a)u-TạisaohọkhôngthểchỉnóitiếngViệts,TisaohkhngthchnitingVit-kjcr8268qyxafd2f1b9g)u3年B組金八先生s3B-ww4c5e180e575a65lsy2b)u"安室奈美恵-with-SUPER-MONKEYSs(-with-SUPER-MONKEYS-pc58ag80a8qai00g7n9n)u'Hello-Another-Way-それぞれの場所s(Hello-Another-Way--fc4qua05auwb3674vfr0b)uひとつ屋根の下2s2-u9tlzr9756bt3uc0v)uMajiでKoiする5秒前sMajiKoi5-783gue6qz075azm5e)uパフィーdeルンバsde-jg4avhby1noc0d)uそのスピードでsd9juau41awczczp)z-> $1.00 <-s-> $1.00 <--r c� �eZdZd�Zd�Zd�ZdS)�PunycodeTestc���tD]n\}}|�t|�d��d�����t|d��������odS�N�punycoder�)�punycode_testcasesrrTrc�lower�r�uni�punys   r�test_encodezPunycodeTest.test_encode<s|��+�		�		�I�C��
����C�J�J�z�*�*�G�4�4�:�:�<�<��D�'�"�"�(�(�*�*�
�
�
�
�
		�		rc��tD]\}}|�||�d����|�d���d��}|�||�d������dSr8)r:rrRrcr<s   r�test_decodezPunycodeTest.test_decodeHs���+�	;�	;�I�C�����S�$�+�+�j�"9�"9�:�:�:��;�;�w�'�'�.�.�w�7�7�D����S�$�+�+�j�"9�"9�:�:�:�:�	;�	;rc�`�ddt��fdg}|D]�\}}}|�||���5t|t��r#|�t|jd|��n*|�|�d|��|��ddd��n#1swxYwY��dS)N�xn--w&rj)rCr�zxn-)r>�errorsr9)r�r��
isinstance�	Exceptionr�rRr)r�	testcasesr>rDrhs     r�test_decode_invalidz PunycodeTest.test_decode_invalidNs��
��,�.�.�1�(�
�	�'0�	P�	P�"�D�&�(����4���7�7�
P�
P��h�	�2�2�P��%�%�l�D�K��V�T�T�T�T��$�$�T�[�[��V�%D�%D�h�O�O�O�	
P�
P�
P�
P�
P�
P�
P�
P�
P�
P�
P����
P�
P�
P�
P��	P�	Ps�A#B"�"B&	�)B&	N)r)r*r+r?rArHrrrr6r6;sF������
�
�
�;�;�;�
P�
P�
P�
P�
Prr6)-)s%foo­͏᠆᠋bar​⁠baz︀︈️s	foobarbaz)sCAFEscafe)sßsss)sİsi̇)sŃͺsń ι�NN)sǰ ªsǰ a)sᾷsᾶι)�ǰrJ)�ΐrK)�ΰrL)�ẖrM)�ὖrN)� rO)s rO)s N)s rO)s​r)s rO)�rP)s…N)s᠎N)r�r)s𝅵N)sN)s󱈴N)s􏈴N)s򏿾N)s􏿿N)s�N)s�N)s⿵N)śś)s‎N)s‪N)s󠀁N)s󠁂N)sfoo־barN)s	fooﵐbarN)s	fooﹶbars	foo َbar)sا1N)�ا1بrQrI)sX­ßİ℡ǰ ªΰ sxssi̇telǰ aΰ )sXß㌖İ℡⒟㌀s*xssキロメートルi̇tel(d)アパートc��eZdZd�ZdS)�NameprepTestc	��ddlm}tt��D]�\}\}}|��t	|dd��}|�|�t||���;t	|dd��}	|�||��|���m#t$r.}tj
d|dzt	|��fz���d}~wwxYwdS)Nr)�nameprepryr�z
Test 3.%d: %srN)�encodings.idnarUr��nameprep_testsrTr�r�rrFr�
TestFailed)rrU�pos�orig�prepped�es      r�
test_nameprepzNameprepTest.test_nameprep�s���+�+�+�+�+�+�$-�n�$=�$=�	P�	P� �C��$���|���t�W�o�6�6�D����!�!�,��$�?�?�?�?��g�w��@�@��P��$�$�X�X�d�^�^�W�=�=�=�=�� �P�P�P�!�,�_��A��s�1�v�v��-N�O�O�O�����P����	P�	Ps�(B�
C�)B;�;CN)r)r*r+r]rrrrSrS�s(������P�P�P�P�PrrSc�8�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	dS)	�
IDNACodecTestc�&�|�tdd��d��|�tdd��d��|�tdd��d��|�tdd��d	��dS)
N�
python.org�idna�
python.org�python.org.�python.org.�xn--pythn-mua.org�pythön.org�xn--pythn-mua.org.�pythön.org.r�rs r�test_builtin_decodez!IDNACodecTest.test_builtin_decode
s�������]�F�3�3�\�B�B�B�����^�V�4�4�m�D�D�D�����1�6�:�:�O�L�L�L�����2�F�;�;�=M�N�N�N�N�Nrc�N�|�d�d��d��|�d�d��d��|�d�d��d��|�d�d��d	��dS)
Nrcrbrarerdrgrfrirh�rrcrs r�test_builtin_encodez!IDNACodecTest.test_builtin_encodes�������,�,�V�4�4�m�D�D�D�����-�-�f�5�5�~�F�F�F�����/�/��7�7�9M�N�N�N����)�0�0��8�8�:O�P�P�P�P�Prc�(�|�td��5d�d��ddd��n#1swxYwY|�td��5d�d��ddd��dS#1swxYwYdS)Nztoo longsTxn--016caaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarbsNxn--016caaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)�assertRaisesRegexr�rRrs r� test_builtin_decode_length_limitz.IDNACodecTest.test_builtin_decode_length_limits��
�
#�
#�L�*�
=�
=�	3�	3�
"�*�*�6�2�2�2�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3�
�
#�
#�L�*�
=�
=�	1�	1�
 �(�(��0�0�0�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1�	1�	1s!�>�A�A�$B�B�Bc���tjd��tjd����}|�d��|�|���d��dS)Nrb�abc�rh)rPrrr�r�rIr)rrzs  r�test_streamzIDNACodecTest.test_streamsY��$�F��V�$�$�R�Z��%7�%7�8�8��	���q�	�	�	���������2�&�&�&�&�&rc�*�|�d�tjd�dD��d����d��|�d�tjd�dD��d����d��|�d�tjd	�d
D��d����d��|�d�tjd�d
D��d����d��tjd����}|�|�d
��d��|�|�d��d��|�|�d��d��|�|�dd��d��|���|�|�d
��d��|�|�d��d��|�|�d��d��|�|�dd��d��dS)Nrhc3�6K�|]}t|g��V��dSr
rlrns  rr�z8IDNACodecTest.test_incremental_decode.<locals>.<genexpr>#s*����&I�&I�a�u�a�S�z�z�&I�&I�&I�&I�&I�&Irrarbrcc3�6K�|]}t|g��V��dSr
rlrns  rr�z8IDNACodecTest.test_incremental_decode.<locals>.<genexpr>'s*����&J�&J�a�u�a�S�z�z�&J�&J�&J�&J�&J�&Jrrdrec3�6K�|]}t|g��V��dSr
rlrns  rr�z8IDNACodecTest.test_incremental_decode.<locals>.<genexpr>+�*����&Q�&Q�a�u�a�S�z�z�&Q�&Q�&Q�&Q�&Q�&Qrrhric3�6K�|]}t|g��V��dSr
rlrns  rr�z8IDNACodecTest.test_incremental_decode.<locals>.<genexpr>/ryrsxn--xams	ple-9ta.ou	äxample.srgrT�orgsrg.zorg.)rrvrPrwrQrRru)r�decoders  r�test_incremental_decodez%IDNACodecTest.test_incremental_decode!se������G�G�F�%�&I�&I�=�&I�&I�&I�6�R�R�S�S��	
�	
�	
�	
����G�G�F�%�&J�&J�>�&J�&J�&J�F�S�S�T�T��	
�	
�	
�	
����G�G�F�%�&Q�&Q�;P�&Q�&Q�&Q�SY�Z�Z�[�[��	
�	
�	
�	
����G�G�F�%�&Q�&Q�;P�&Q�&Q�&Q�SY�Z�Z�[�[��	
�	
�	
�
7�&�.�v�6�6�8�8��������
�5�5�r�:�:�:��������7�7��G�G�G��������.�.��3�3�3��������T�2�2�E�:�:�:��
�
����������
�5�5�r�:�:�:��������7�7��G�G�G��������/�/��8�8�8��������T�2�2�B�7�7�7�7�7rc�6�|�d�tjdd����d��|�d�tjdd����d��|�d�tjdd����d��|�d�tjdd����d��tjd����}|�|�d	��d��|�|�d
��d��|�|�dd
��d��|���|�|�d	��d��|�|�d��d��|�|�dd
��d��dS)Nrrcrbrarerdrirhuäxz	ample.orgsxn--xample-9ta.rhTsorgz
ample.org.sxn--xample-9ta.org.)rrvrP�
iterencoderbrcru)r�encoders  r�test_incremental_encodez%IDNACodecTest.test_incremental_encode?s�������H�H�V�&�|�V�<�<�=�=��	
�	
�	
�	
����H�H�V�&�}�f�=�=�>�>��	
�	
�	
�	
����H�H�V�&�'7��@�@�A�A�!�	
�	
�	
�	
����H�H�V�&�'7��@�@�A�A�!�	
�	
�	
�
7�&�.�v�6�6�8�8���������0�0�#�6�6�6��������4�4�6H�I�I�I��������D�1�1�6�:�:�:��
�
�����������0�0�#�6�6�6��������5�5�7M�N�N�N��������D�1�1�3�7�7�7�7�7rc���d�dd��d�dd��dD]F}|�tdjd|��|�tdjd|���GdS)z$Only supports "strict" error handlerrcrbrjra)r�r�r�r�N)rcrRr�rF�rrDs  rrzIDNACodecTest.test_errors[s������F�H�-�-�-����V�X�.�.�.�#�	6�	6�F����i��)<�f�f�M�M�M����i��$�f�f�
6�
6�
6�
6�	6�	6rN)
r)r*r+rjrmrprtr}r�rrrrr_r_	s�������O�O�O�Q�Q�Q�1�1�1�'�'�'�
8�8�8�<8�8�8�86�6�6�6�6rr_c�b�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�ZdS)�CodecsModuleTestc���|�tjdd��d��|�ttj��|�tjd��d��|�t
tjdd��|�tjdd���d��|�tjd	dd
���d��dS)
N���latin-1�äöürr�abcr
r���objrY�[�]r��rDr�)rrPrRr�r�r�rs rrAzCodecsModuleTest.test_decodehs���������	�B�B�'�	)�	)�	)����)�V�]�3�3�3������v�.�.��6�6�6����,�f�m�W�g�N�N�N�	
�����?�Y�O�O�O�'�	)�	)�	)������y�'�(�K�K�K��	�	�	�	�	rc�8�|�tjdd��d��|�ttj��|�t
tjdd��|�tjd��d��|�ttjdd	��|�tjdd�
��d��|�tjdd	d�
��d��dS)Nr�r�r�r��__spam__r�rruÿffr�r��[ÿ]r�r�r)rrPrcr�r��LookupErrorr�rs rr?zCodecsModuleTest.test_encodeus�������~�y�A�A�(�	*�	*�	*����)�V�]�3�3�3����+�v�}�e�Z�H�H�H������u�-�-�v�6�6�6����,�f�m�X�w�O�O�O�	
�����>�I�N�N�N�(�	*�	*�	*������x���J�J�J��	 �	 �	 �	 �	 rc��|�ttj��|�ttjd��dSr�)r�r�rP�registerrs r�
test_registerzCodecsModuleTest.test_register�s:�����)�V�_�5�5�5����)�V�_�b�9�9�9�9�9rc��d}tj��}tj|��|�t
tj|��|�|��|���tj	|��|�ttj|��|���dS)N�nonexistent_codec_name)r�MockrPr�r�r�r��assert_called_with�
reset_mock�
unregisterr��assert_not_called)r�name�search_functions   r�test_unregisterz CodecsModuleTest.test_unregister�s���'���)�+�+�����(�(�(����)�V�]�D�9�9�9��*�*�4�0�0�0��"�"�$�$�$���/�*�*�*����+�v�}�d�;�;�;��)�)�+�+�+�+�+rc���|�ttj��|�ttjd��|�ttjd��dS)Nr�� )r�r�rPr�r�rs r�test_lookupzCodecsModuleTest.test_lookup�sT�����)�V�]�3�3�3����+�v�}�j�A�A�A����+�v�}�c�:�:�:�:�:rc��|�ttj��|�ttjd��dS�Nr�)r�r�rP�
getencoderr�rs r�test_getencoderz CodecsModuleTest.test_getencoder��<�����)�V�%6�7�7�7����+�v�'8�*�E�E�E�E�Erc��|�ttj��|�ttjd��dSr�)r�r�rP�
getdecoderr�rs r�test_getdecoderz CodecsModuleTest.test_getdecoder�r�rc��|�ttj��|�ttjd��dSr�)r�r�rPrrr�rs r�test_getreaderzCodecsModuleTest.test_getreader��<�����)�V�%5�6�6�6����+�v�'7��D�D�D�D�Drc��|�ttj��|�ttjd��dSr�)r�r�rPr�r�rs r�test_getwriterzCodecsModuleTest.test_getwriter�r�rc��tjtj��}|�tjtj|��	tjtjd��n*#tj$r|�d��YnwxYwt
jd��}|�|j	d��dS)N�tr_TRztest needs Turkish locale�ASCIIr�)
�locale�	setlocale�LC_CTYPErF�Error�skipTestrPr�rr�)r�	oldlocalerps   r�test_lookup_issue1813z&CodecsModuleTest.test_lookup_issue1813�s����$�V�_�5�5�	�����(�&�/�9�E�E�E�	7���V�_�g�6�6�6�6���|�	7�	7�	7��M�M�5�6�6�6�6�6�	7����
�M�'�"�"��������)�)�)�)�)s�A+�+$B�Bc��d}|�|tj��tjD]}tt|���dS)N),rcrRr��	CodecInfo�Codec�IncrementalEncoder�IncrementalDecoder�StreamReader�StreamWriterr�r�r�rbrQrrr��register_errorr��
strict_errors�replace_errors�
ignore_errors�xmlcharrefreplace_errors�backslashreplace_errors�namereplace_errorsrI�EncodedFilerrwr��BOM_BE�BOM_LEr��	BOM_UTF16�BOM_UTF16_BE�BOM_UTF16_LE�	BOM_UTF32�BOM_UTF32_BE�BOM_UTF32_LE�BOM32_BE�BOM32_LE�BOM64_BE�BOM64_LE�StreamReaderWriter�
StreamRecoder)�assertCountEqualrP�__all__�getattr)r�apis  r�test_allzCodecsModuleTest.test_all�sQ��
��$	
���c�6�>�2�2�2��>�	!�	!�C��F�C� � � � �	!�	!rc�n�|�tjtj��dD]�}|�|��5tjtj|d��5}|�|t
j��ddd��n#1swxYwYddd��n#1swxYwY��dS)N)�wrzzr+�w+r�r�r�)	rFrrGrHr�rPrIrTr�)rrV�files   r�	test_openzCodecsModuleTest.test_open�sE�����	�(�)�*:�;�;�;�5�	G�	G�D����d�#�#�
G�
G��K�	� 0�$��@�@�
G�DH��%�%�d�F�,E�F�F�F�
G�
G�
G�
G�
G�
G�
G�
G�
G�
G�
G����
G�
G�
G�
G�
G�
G�
G�
G�
G�
G�
G�
G�
G�
G�
G����
G�
G�
G�
G��	G�	Gs6�!B)�%!B�B)�B�B)�B�B)�)B-	�0B-	c���|�ttjdd��|�ttjdd��|�ttjdd��|�ttjdd��dD]R}|�ttjdd|��|�ttjdd|���SdS)Nr��	undefinedrrrhr)rjr�r�r�)r�r�rPrcrRr�s  r�test_undefinedzCodecsModuleTest.test_undefined�s������,��
�u�k�J�J�J����,��
�v�{�K�K�K����,��
�r�;�G�G�G����,��
�s�K�H�H�H�I�	<�	<�F����l��
�u�k�6�
;�
;�
;����l��
�v�{�F�
<�
<�
<�
<�	<�	<rc�n�tj��}tjd|��5}|�t��5tjtjdd��ddd��n#1swxYwY|��j	�
��ddd��dS#1swxYwYdS)Nz
builtins.openrPzinvalid-encoding)r�	mock_open�patchr�r�rPrIrrH�close�
assert_called)rr�r�s   r�'test_file_closes_if_lookup_error_raisedz8CodecsModuleTest.test_file_closes_if_lookup_error_raised�s0���N�$�$�	�
�Z���
3�
3�	)�t��"�"�;�/�/�
H�
H���I�,�d�4F�G�G�G�
H�
H�
H�
H�
H�
H�
H�
H�
H�
H�
H����
H�
H�
H�
H�
�D�F�F�L�&�&�(�(�(�		)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�	)�	)s5�B*�!A1�%B*�1A5	�5B*�8A5	�9$B*�*B.�1B.N)r)r*r+rAr?r�r�r�r�r�r�r�r�r�r�r�r�rrrr�r�fs���������� � � �:�:�:�
,�
,�
,�;�;�;�
F�F�F�F�F�F�E�E�E�E�E�E�*�*�*�!�!�!�.G�G�G�	<�	<�	<�)�)�)�)�)rr�c�&�eZdZd�Zd�Zd�Zd�ZdS)�StreamReaderTestc�j�tjd��|_tjd��|_dS)Nry�한
글)rPrrr�r�r�r�rs r�setUpzStreamReaderTest.setUp�s*���&�w�/�/����j�!>�?�?����rc��|�|j��}|�|���ddg��dS)Nu한
u글)r�r�rr��rr�s  r�test_readlineszStreamReaderTest.test_readlines�s>���K�K���$�$�����������X�(>�?�?�?�?�?rc�h�|�td����}|�td��5t	j|��ddd��n#1swxYwY|�td��5t	j|��ddd��dS#1swxYwYdS)Nr�r�)r�r<ror��copy�deepcopyr�s  r�	test_copyzStreamReaderTest.test_copy�s���K�K��;�<�<�=�=��
�
#�
#�I�~�
>�
>�	�	��I�a�L�L�L�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
#�
#�I�~�
>�
>�	�	��M�!����	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	�#�A�A#�&A#�B'�'B+�.B+c�t�ttjdz��D]�}|�|���5|�td����}|�td��5tj||��ddd��n#1swxYwYddd��n#1swxYwY��dS)NrN��protocolr�r�)	rO�pickle�HIGHEST_PROTOCOLr�r�r<ror��dumps�r�protor�s   r�test_picklezStreamReaderTest.test_pickle�s,���6�2�Q�6�7�7�	+�	+�E����u��-�-�
+�
+��K�K��&C� D� D�E�E���+�+�I�~�F�F�+�+��L��E�*�*�*�+�+�+�+�+�+�+�+�+�+�+����+�+�+�+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+����
+�
+�
+�
+��	+�	+�5�>B,�3B�	B,�B�B,�B�B,�,B0	�3B0	N)r)r*r+r�r�r�r�rrrr�r��sV������@�@�@�@�@�@����+�+�+�+�+rr�c� �eZdZd�Zd�Zd�ZdS)�StreamWriterTestc�8�tjd��|_dS)Nry)rPr�r�rs rr�zStreamWriterTest.setUps���&�w�/�/����rc�h�|�td����}|�td��5t	j|��ddd��n#1swxYwY|�td��5t	j|��ddd��dS#1swxYwYdS)Nrr�)r�r<ror�r�r�r�s  rr�zStreamWriterTest.test_copys���K�K��c�
�
�#�#��
�
#�
#�I�~�
>�
>�	�	��I�a�L�L�L�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
#�
#�I�~�
>�
>�	�	��M�!����	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	r�c�t�ttjdz��D]�}|�|���5|�td����}|�td��5tj||��ddd��n#1swxYwYddd��n#1swxYwY��dS)NrNr�rr�)	rOr�r�r�r�r<ror�r�r�s   rr�zStreamWriterTest.test_pickles)���6�2�Q�6�7�7�	+�	+�E����u��-�-�
+�
+��K�K��c�
�
�+�+���+�+�I�~�F�F�+�+��L��E�*�*�*�+�+�+�+�+�+�+�+�+�+�+����+�+�+�+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+����
+�
+�
+�
+��	+�	+rN�r)r*r+r�r�r�rrrrrsA������0�0�0����+�+�+�+�+rrc� �eZdZd�Zd�Zd�ZdS)�StreamReaderWriterTestc�j�tjd��|_tjd��|_dS)N�latin1ry)rPrrr�r�r�rs rr�zStreamReaderWriterTest.setUps*���&�x�0�0����&�w�/�/����rc�~�tjtd��|j|j��}|�td��5tj|��ddd��n#1swxYwY|�td��5tj|��ddd��dS#1swxYwYdS)Nrr�)	rPr�r<r�r�ror�r�r�r�s  rr�z StreamReaderWriterTest.test_copys$���%�e�C�j�j�$�+�t�{�K�K��
�
#�
#�I�/C�
D�
D�	�	��I�a�L�L�L�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
#�
#�I�/C�
D�
D�	�	��M�!����	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s$�	A*�*A.�1A.�B2�2B6�9B6c��ttjdz��D]�}|�|���5t	jt
d��|j|j��}|�	td��5tj||��ddd��n#1swxYwYddd��n#1swxYwY��dS)NrNr�rr�)rOr�r�r�rPr�r<r�r�ror�r�r�s   rr�z"StreamReaderWriterTest.test_pickle!s1���6�2�Q�6�7�7�	+�	+�E����u��-�-�
+�
+��-�e�C�j�j�$�+�t�{�S�S���+�+�I�7K�L�L�+�+��L��E�*�*�*�+�+�+�+�+�+�+�+�+�+�+����+�+�+�+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+����
+�
+�
+�
+��	+�	+s6�A	B7�>B �B7� B$�$B7�'B$�(B7�7B;	�>B;	NrrrrrrsA������0�0�0����+�+�+�+�+rrc��eZdZd�ZdS)�EncodedFileTestc�v�tjd��}tj|dd��}|�|���d��tj��}tj|dd��}|�d��|�|���d��dS)Nr�r[rys\�
�r��ü��)r�r�rPr�rrIrDr��rr��efs   r�
test_basiczEncodedFileTest.test_basic+s����J�4�5�5��
�
��;��
8�
8����������$;�<�<�<��J�L�L��
�
��7�I�
6�
6��
���������������w�/�/�/�/�/rN)r)r*r+rrrrrr)s#������0�0�0�0�0rr)er��big5�	big5hkscs�charmap�cp037�cp1006�cp1026�cp1125�cp1140�cp1250�cp1251�cp1252�cp1253�cp1254�cp1255�cp1256�cp1257�cp1258�cp424�cp437�cp500�cp720�cp737�cp775�cp850�cp852�cp855�cp856�cp857�cp858�cp860�cp861�cp862�cp863�cp864�cp865�cp866�cp869�cp874�cp875�cp932�cp949�cp950�euc_jis_2004�euc_jisx0213�euc_jp�euc_kr�gb18030�gb2312�gbk�	hp_roman8�hzrb�
iso2022_jp�iso2022_jp_1�iso2022_jp_2�iso2022_jp_2004�iso2022_jp_3�iso2022_jp_ext�
iso2022_kr�	iso8859_1�
iso8859_10�
iso8859_11�
iso8859_13�
iso8859_14�
iso8859_15�
iso8859_16�	iso8859_2�	iso8859_3�	iso8859_4�	iso8859_5�	iso8859_6�	iso8859_7�	iso8859_8�	iso8859_9�johab�koi8_r�koi8_t�koi8_u�kz1048�latin_1�mac_cyrillic�	mac_greek�mac_iceland�
mac_latin2�	mac_roman�mac_turkish�palmos�ptcp154r9�raw_unicode_escape�	shift_jis�shift_jis_2004�shift_jisx0213�tis_620�unicode_escape�utf_16�	utf_16_be�	utf_16_le�utf_7�utf_8�mbcs_encode�mbcs�
oem_encode�oemr9c��eZdZd�Zejejedud��d�����Z	d�Z
d�Zd�Zd�Z
d	�ZdS)
�BasicUnicodeTestc	����d}tD�]m}tj|��j}|�d��r|dz
}n|dkrd}|dkr>|�|�dd��|�dd����tj|��|��\}}|�|t|��d|z��tj	|��|��\}}|�||d|z��|tv�rtd��}tj|��|��}d}	|D]g}
|�
|
��|���}|�t!|��t"ut!|����|	|z
}	�htd��}tj|��|��}d	}
|	D]<}
|�
t#|
g����|
|���z
}
�=|�|
|d|z��|tv�r6	tj|�����d}	|D]}
|	��|
��z
}	�|	��d	d
��z
}	tj|�����d	}
|	D](}
|
��t#|
g����z
}
�)|
��dd
��z
}
|�|
|d|z��d	�tjtj||��|����}|�||d|z��d	�tjtjd	|��|����}|�|d	��n#t4$rYnwxYw|dvr�	tj|��d���d��fd
�|D����}	tj|��d���d	��fd�|	D����}
|�|
|d|z����\#t4$rY��iwxYw��odS)N�abc123�_codecrcrxr��-�encoding=%rrrhT�rbrxr�c3�B�K�|]}��|��V��dSr
�rc)rorpr�s  �rr�z/BasicUnicodeTest.test_basics.<locals>.<genexpr>�s/�����0N�0N�q�����1B�1B�0N�0N�0N�0N�0N�0Nrc3�^�K�|]'}��t|g����V��(dSr
�rRrm)rorpr|s  �rr�z/BasicUnicodeTest.test_basics.<locals>.<genexpr>�sS�����0H�0H�45�18���u�a�S�z�z�0J�0J�0H�0H�0H�0H�0H�0Hr)�all_unicode_encodingsrPr�r��endswithrr�r�rr��broken_unicode_with_statefulr<r�rDrIrW�typermrrrbrcrQrRrvrwrr�)rrHrYr�r�rGrCryr��
encodedresultrp�chunkr��
decodedresultr{r|r�s               @@r�test_basicszBasicUnicodeTest.test_basics�s������-�L	C�L	C�H��=��*�*�/�D�� � ��*�*�
!��� ����Y�&�&� ���v�~�~�� � ��!1�!1�#�s�!;�!;�!%���c�3�!7�!7�9�9�9�4��)�(�3�3�A�6�6�I�Q�����T�3�q�6�6�=�8�+C�D�D�D�7�F�-�h�7�7��:�:�M�U�D����U�A�}�x�'?�@�@�@��;�;�;��#�J�J��3��)�(�3�3�A�6�6�� #�
��+�+�A��L�L��O�O�O��F�F�H�H�E��O�O�D��K�K�5�$8�$�u�+�+�F�F�F�!�U�*�M�M��#�J�J��3��)�(�3�3�A�6�6�� "�
�&�3�3�A��G�G�E�1�#�J�J�'�'�'�!�V�[�[�]�]�2�M�M�� � ���=�8�3K�L�L�L��;�;�;�1�D�f�:�8�D�D�F�F�G�
%(�M��;�;��%�����):�):�:�
�
�!�W�^�^�B��%=�%=�=�M�D�f�:�8�D�D�F�F�G�$&�M�*�D�D��%�����q�c�
�
�)C�)C�C�
�
�!�W�^�^�C��%>�%>�>�M��$�$�]�A�%2�X�%=�?�?�?� �W�W�V�%6�"�-�a��:�:�H�&F�&F�G�G�F��$�$�V�Q�
��0H�I�I�I� �W�W�V�%6�"�-�b�(�;�;�X�&G�&G�H�H�F��$�$�V�R�0�0�0�0��1#�����D�����4�#3�3�3�
C�"H�&�">�x�"H�"H��"R�"R��),���0N�0N�0N�0N�A�0N�0N�0N�(N�(N�
�"H�&�">�x�"H�"H��"R�"R��(*���0H�0H�0H�0H�9F�0H�0H�0H�)H�)H�
��(�(���)6��)A�C�C�C�C��'�����������IL	C�L	Cs$�N;�;
O�O�Q(�(
Q6�5Q6Nzneed _testcapi modulec����d}tD�]}}|tv�rp	tj|���d}|D]}|��|��z
}�|��dd��z
}tj|���d}|D](}|��t|g����z
}�)|��dd��z
}|�||d|z��n#t$rYnwxYw|dvr�	tj|d���d�
�fd�|D����}tj|d���d�
�fd	�|D����}|�||d|z����l#t$rY��ywxYw��dS)
Nr~rrhTr�r�r�c3�B�K�|]}��|��V��dSr
r�)rorp�cencoders  �rr�z4BasicUnicodeTest.test_basics_capi.<locals>.<genexpr>s/�����0O�0O������1C�1C�0O�0O�0O�0O�0O�0Orc3�^�K�|]'}��t|g����V��(dSr
r�)rorp�cdecoders  �rr�z4BasicUnicodeTest.test_basics_capi.<locals>.<genexpr>sS�����0H�0H�45�19����q�c�
�
�0K�0K�0H�0H�0H�0H�0H�0Hr)r�r��	_testcapi�codec_incrementalencoderrc�codec_incrementaldecoderrRrmrr�rv)rrHrYr�rpr�r�r�s      @@r�test_basics_capiz!BasicUnicodeTest.test_basics_capi�s,����
��-�!	C�!	C�H��;�;�;�?�(�A�(�K�K�H�
%(�M��<�<��%�����);�);�;�
�
�!�X�_�_�R��%>�%>�>�M�(�A�(�K�K�H�$&�M�*�E�E��%������s���)D�)D�D�
�
�!�X�_�_�S�$�%?�%?�?�M��$�$�]�A�%2�X�%=�?�?�?�?��#�����D����� �#3�3�3�
C�#,�#E�h�PX�#Y�#Y��),���0O�0O�0O�0O�Q�0O�0O�0O�(O�(O�
�#,�#E�h�PX�#Y�#Y��(*���0H�0H�0H�0H�9F�0H�0H�0H�)H�)H�
��(�(���)6��)A�C�C�C�C��'�����������3!	C�!	Cs#�C�
C(�'C(�0E8�8
F�Fc�n�ddz}tD]�}|dkr�	|tvr�tj|��t	j|�|������}td��D]B}|�dd��|�	��}|�
||���C��dS)Nz%s
%s
)�Xabc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123abc123�Xdef456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456def456rbr�r)r�r�rPrrr�r�rcrO�seekrIr)rrHrYr��tr�s      r�	test_seekzBasicUnicodeTest.test_seek$s����5�5��-�
	*�
	*�H��6�!�!���7�7�7��/�V�%�h�/�/��
�1�8�8�H�;M�;M�0N�0N�O�O�F��1�X�X�
*�
*�����A�q�!�!�!��{�{�}�}��� � ��D�)�)�)�)�	
*�
	*�
	*rc��tD]Q}tj|��}|�t|��|dvr|�t|d���RdS)N)rbr9r�)r�rPr�r�r�)rrYr|s   r�test_bad_decode_argsz%BasicUnicodeTest.test_bad_decode_args3sf��-�	:�	:�H��'��1�1�G����i��1�1�1��3�3�3��!�!�)�W�b�9�9�9��		:�	:rc�x�tD]1}tj|��}|�t|���2dSr
)r�rPr�r�r�)rrYr�s   r�test_bad_encode_argsz%BasicUnicodeTest.test_bad_encode_args:sD��-�	2�	2�H��'��1�1�G����i��1�1�1�1�	2�	2rc�f�ddlm}t|j��}|�||��dS)Nr)r)�	encodingsrr��encoding_tabler)rr�
table_types   r�"test_encoding_map_type_initializedz3BasicUnicodeTest.test_encoding_map_type_initialized?s@��$�$�$�$�$�$��&�/�0�0�
�����Z�0�0�0�0�0rc���d}tD]_}|tvrT|�|||�|����|�|||�|�����`dS)Nr~)r�r�r`rcrd)rrZrYs   rrz#BasicUnicodeTest.test_decoder_stateEsy����-�	R�	R�H��;�;�;��0�0��1�a�h�h�x�>P�>P�Q�Q�Q��0�0��1�a�h�h�x�>P�>P�Q�Q�Q��	R�	Rr)r)r*r+r�r�cpython_only�unittest�skipIfr�r�r�r�r�r�rrrrr|r|�s�������NC�NC�NC�`
���X�_�Y�$�&�(?�@�@�#C�#C�A�@���#C�J
*�
*�
*�:�:�:�2�2�2�
1�1�1�R�R�R�R�Rrr|c� �eZdZd�Zd�Zd�ZdS)�CharmapTestc���|�tjddd��d��|�tjddd��d��|�ttjddd��|�ttjddd��|�tjdd	d��d
��|�tjdd	d��d
��|�tjddd��d��|�tjddd��d��|�tjdd
d��d��|�tjdd
d��d��tt
d����}|�tj|d
d��dt|��f��dS)N�rjr��r�rs�􏿿bc�r�rs�abuab￾r��uab�rsr��zab\x02rsr��r�rsr�rh)rrP�charmap_decoder�r�rmrOr�r�allbytess  r�test_decode_with_string_mapz'CharmapTest.test_decode_with_string_mapOs#������!�/�8�U�C�C��	
�	
�	
�
	
����!�/�8�^�L�L��	
�	
�	
�
	
���,��!�?�H�d�	
�	
�	
�	
���,��!�?�H�j�	
�	
�	
�	
����!�/�9�d�C�C��	
�	
�	
�
	
����!�/�9�j�I�I��	
�	
�	
�
	
����!�/�3E�t�L�L��	
�	
�	
�
	
����!�/�3E�z�R�R��	
�	
�	
�
	
����!�/�8�T�B�B��	
�	
�	
�
	
����!�/�8�Z�H�H��	
�	
�	
�
��s���$�$������!�(�H�b�9�9�
��X����	
�	
�	
�	
�	
rc��|�tjdddddd���d��|�tjdddd	d
d���d��|�tjdddddd���d
��|�tjdddddd���d��|�ttjddddd���|�ttjdddddd���|�ttjdddddd���|�tjddddd���d��|�tjdddddd���d��|�tjdddddd���d��|�tjddddd���d��|�tjdddddd���d��|�tjdddddd���d��|�tjddddd���d��|�tjdddddd���d��|�tjdddddd���d��tt
d����}|�tj|di��dt|��f��|�tdtjdddd	dd���|�tdtjdddd	dd���dS)Nr�rjr�r�rp�rrNr r��Aa�Bb�Cc)�AaBbCcrs�􏿿r�rhr��rrNu￾r�r�r�r�r�r�z.character mapping must be in range\(0x110000\)r����i�ɚ;)
rrPr�r�r�rmrOrror�r�s  r�test_decode_with_int2str_mapz(CharmapTest.test_decode_with_int2str_map�s�������!�/�8�&)�c�c�":�":�
<�
<��	
�	
�	
�	
����!�/�8�&*�t��"=�"=�
?�
?��	
�	
�	
�	
����!�/�8�&2�s�s�"C�"C�
E�
E��	
�	
�	
�	
����!�/�8�&)�c�b�"9�"9�
;�
;��	
�	
�	
�	
���,��!�?�H�'*�s�#3�#3�	
�	
�	
�
	
���,��!�?�H�'*�s�t�#<�#<�	
�	
�	
�	
���,��!�?�H�'*�s�x�#@�#@�	
�	
�	
�
	
����!�/�9�&)�c�"2�"2�
4�
4��	
�	
�	
�	
����!�/�9�&)�c�d�";�";�
=�
=��	
�	
�	
�	
����!�/�9�&)�c�h�"?�"?�
A�
A��	
�	
�	
�	
����!�/�3E�&)�c�"2�"2�
4�
4��	
�	
�	
�	
����!�/�3E�&)�c�d�";�";�
=�
=��	
�	
�	
�	
����!�/�3E�&)�c�h�"?�"?�
A�
A��	
�	
�	
�	
����!�/�8�&)�c�"2�"2�
4�
4��	
�	
�	
�	
����!�/�8�&)�c�d�";�";�
=�
=��	
�	
�	
�	
����!�/�8�&)�c�h�"?�"?�
A�
A��	
�	
�	
���s���$�$������!�(�H�b�9�9�
��X����	
�	
�	
�
	
���y�>��!��X�3�4�B�'?�'?�	
�	
�	
�	
���y�>��!��X�3�4�I�'F�'F�	
�	
�	
�	
�	
rc
��td��}td��}td��}|�tjdd|||d���d��|�tjddd||d���d	��|�tjddtj||d���t
tj��d
zdf��|�ttjddtjdz||d���|�ttjdd||d
���|�ttjdd||dd���|�tjdd||d
���d��|�tjdd||dd���d��|�tjdd||d
���d��|�tjdd||dd���d��|�tjdd||d
���d��|�tjdd||dd���d��dS)Nr�r�rpr�rjr�r�i��r��bcrsrNr�i��r�r�r�r�r�r�)
�ordrrPr�r�
maxunicode�chrr�r�r�)rr�r�rps    r�test_decode_with_int2int_mapz(CharmapTest.test_decode_with_int2int_map�s����H�H����H�H����H�H������!�/�8�&'�A�!�"4�"4�
6�
6��	
�	
�	
�	
����!�/�8�&.�1��";�";�
=�
=��	
�	
�	
�	
����!�/�8�&)�n��q�"A�"A�
C�
C�
���
 �
 �4�
'��+�	
�	
�	
�	
���)��!�?�H�'*�~��'9�a�A�#F�#F�	
�	
�	
�
	
���,��!�?�H�'(�Q�<�<�	
�	
�	
�
	
���,��!�?�H�'(�Q�6�#:�#:�	
�	
�	
�
	
����!�/�9�&'�A�,�,�
0�
0��	
�	
�	
�	
����!�/�9�&'�A�&�"9�"9�
;�
;��	
�	
�	
�	
����!�/�3E�&'�A�,�,�
0�
0��	
�	
�	
�	
����!�/�3E�&'�A�&�"9�"9�
;�
;��	
�	
�	
�	
����!�/�8�&'�A�,�,�
0�
0��	
�	
�	
�	
����!�/�8�&'�A�&�"9�"9�
;�
;��	
�	
�	
�	
�	
rN)r)r*r+r�r�r�rrrr�r�NsK������5
�5
�5
�nr
�r
�r
�hI
�I
�I
�I
�I
rr�c��eZdZd�Zd�ZdS)�WithStmtTestc��tjd��}tj|dd��5}|�|���d��ddd��n#1swxYwY|�|j��dS)Nrr�ryr)r�r�rPr�rrIrW�closedrs   r�test_encodedfilezWithStmtTest.test_encodedfileG	s����J�{�#�#��
�
��9�g�
6�
6�	1�"����R�W�W�Y�Y��0�0�0�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1������!�!�!�!�!s�)A � A$�'A$c��tjd��}tjd��}tj||j|jd��5}|�|���d��ddd��dS#1swxYwYdS)Nrryrj�ü)	r�r�rPr�r��streamreader�streamwriterrrI)rr�r9�srws    r�test_streamreaderwriterz$WithStmtTest.test_streamreaderwriterM	s����J�{�#�#���}�W�%�%��
�
&�q�$�*;�'+�'8�(�D�D�	1�GJ����S�X�X�Z�Z��0�0�0�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1�	1�	1s�
)B�B�BN)r)r*r+r�r�rrrr�r�F	s2������"�"�"�1�1�1�1�1rr�c��eZdZd�Zd�ZdS)�	TypesTestc��tjtjtjtjtjtjtjtjtj	tj
tjtjg}ttd��r|�tj��|D]}|�t"|d���dS)N�mbcs_decoder�)rPr��utf_8_decoderdrur�rr(r5�utf_32_ex_decode�latin_1_decode�ascii_decoder��hasattrr�r�r�r�)r�decodersr|s   r�test_decode_unicodezTypesTest.test_decode_unicodeV	s���
�����#��#��#�� ��#��#��#��!����!�

���6�=�)�)�	0��O�O�F�.�/�/�/��	9�	9�G����i��%�8�8�8�8�	9�	9rc�&�|�tjd��d��|�tjd��d��|�tjd��d��|�tjd��d��|�t
tjd��|�tjdd��d��|�tjdd��d	��|�t
tjd��|�tjdd��d��|�tjdd��d	��dS)
Nz\u1234)uሴr�s\u1234�
\U00110000z
\U00110000r��r�r�r�)z(\x5c\x55\x30\x30\x31\x31\x30\x30\x30\x30r�)rrP�unicode_escape_decode�raw_unicode_escape_decoder�r�rs r�test_unicode_escapezTypesTest.test_unicode_escapek	ss��	
����5�i�@�@�-�P�P�P�����5�j�A�A�=�Q�Q�Q�����9�)�D�D�m�T�T�T�����9�*�E�E�}�U�U�U����,�f�.J�N�[�[�[�����5�m�Y�O�O�Q_�`�`�`�����5�m�EW�X�X�J�	L�	L�	L�	
���,�f�.N�P^�_�_�_�����9�-��S�S�Uc�d�d�d�����9�-�I[�\�\�J�	L�	L�	L�	L�	LrN)r)r*r+r�r�rrrr�r�U	s7������9�9�9�*L�L�L�L�Lrr�c�@�eZdZdZdZd�Zd�Zd�Zd�Zd�Z	d�Z
d	�ZdS)
�UnicodeEscapeTestzunicode-escapeNc��|�tjd��d��|�tjd��d��dS�Nrhr�r�rhr)rrP�unicode_escape_encoder�rs rr�zUnicodeEscapeTest.test_empty�	sJ������5�b�9�9�8�D�D�D�����5�c�:�:�G�D�D�D�D�Drc���tj}tdd��D]D}|dkr<|�|t	|����t|g��df���EdS)N� ��\rN)rPr�rOrr�rm�rrcr�s   r�test_raw_encodez!UnicodeEscapeTest.test_raw_encode�	si���-���r�3���	B�	B�A��H�}�}�� � ����A�����%���*�*�a��A�A�A��	B�	Brc���tj}td��D]J}|dkrB|�|t	|g��dz��t|��dzdf���KdS)Nr�r�r�0r )rPr�rOrrmr�rs   r�test_raw_decodez!UnicodeEscapeTest.test_raw_decode�	ss���-���s���	O�	O�A��H�}�}�� � ����q�c�
�
�T�(9�!:�!:�S��V�V�c�\�1�<M�N�N�N��	O�	Orc���tj}t||��}|dd��|dd��|dd��|dd��td	��D]A}t	|��d
vr.|t	|��d|z������Btdd
��D]0}|t	|��d|z������1|dd��|dd��dS)N�	s\tr�s\nr�s\r�\s\\r�z	

r�r�r��€�\u20ac�𝄠�
\U0001d120)rPr�rrOr�rc�rrcrr�s    r�test_escape_encodez$UnicodeEscapeTest.test_escape_encode�	s���-���t�V�,�,��
��d�F����
��d�F����
��d�F����
��d�F�����r���	8�	8�A��1�v�v�X�%�%���c�!�f�f�y�1�}�4�4�6�6�7�7�7���s�C���	4�	4�A��E�#�a�&�&�9�q�=�0�0�2�2�3�3�3�3�
��h�
�#�#�#�
��l�N�+�+�+�+�+rc
�T�tj}t||��}|dd��|dd��|dd��|dd��|d	d
��|dd��|d
d��|dd��|dd��|dd��|dd��|dd
��|dd��|dd��|dd��|dd��|d d!��|d"d��|d#d!��|d$d%��|d&d'��td(d)��D]�}t	|g��}|d*vrQ|�t��5|d+|zd,t|��z��ddd��n#1swxYwY|���d-vrf|�t��5|d+|���zd,t|d.z
��z��ddd��n#1swxYwY��|�t��5|d/d0��ddd��n#1swxYwY|�t��5|d1d2��ddd��n#1swxYwY|�t��5|d3d4��ddd��n#1swxYwYtd5d6��D]P}|�t��5|d7|zt|����ddd��n#1swxYwY�QdS)8Nrr�rz["]rz[']rz[\]rz[]rz[]rz[	]rz[
]rz[]rz[]rz[
]rrz[8]r z[!]r!z[!8]r"z[A]r#z[A0]r$r%r�r�r�r�r&r's	abfnrtuvxr
r�sUNr�r(z\8r)z\9r*u\úr�r�r+)	rPr�rrOrmr-r.r�r/r0s     r�test_escape_decodez$UnicodeEscapeTest.test_escape_decode�	s���-���t�V�,�,��
��i�����
��h�����
��h�����
��h�����
��h��!�!�!�
��h��!�!�!�
��h��!�!�!�
��h��!�!�!�
��h��!�!�!�
��h��!�!�!�
��h��!�!�!�
��h��!�!�!�
��i��#�#�#�
��i�����
��j�&�!�!�!�
��j�%� � � �
��k�6�"�"�"�
��j�%� � � �
��k�6�"�"�"�
��j�(�#�#�#�
��n�l�+�+�+��r�3���	?�	?�A��q�c�
�
�A���$�$��%�%�&8�9�9�4�4��E�%�!�)�T�C��F�F�]�3�3�3�4�4�4�4�4�4�4�4�4�4�4����4�4�4�4��w�w�y�y��%�%��%�%�&8�9�9�?�?��E�%�!�'�'�)�)�+�T�C��"��I�I�-=�>�>�>�?�?�?�?�?�?�?�?�?�?�?����?�?�?�?��
�
�
�0�
1�
1�	!�	!��E�&�%� � � �	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!�
�
�
�0�
1�
1�	!�	!��E�&�%� � � �	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!�
�
�
�0�
1�
1�	'�	'��E�)�X�&�&�&�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'��u�f�%�%�	+�	+�A��!�!�"4�5�5�
+�
+���g��k�3�q�6�6�*�*�*�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+����
+�
+�
+�
+��	+�	+sl� F�F		�F		�5H�H	�H	�'
I�I�I�%
I>�>J�J�#
J<�<K�K�3L�L 	�#L 	c	��tj}dD]�\}}t|��D]�}|�t|d|zd|zz��|�t|d|zd|zzdz��d|zd|zzdz|zd|zz}|�||d��dt
|��f��|�||d	��d
t
|��f����|�t|d��|�|dd��d��|�|dd	��d
��dS)N))�xr ��ur���Ur�r
r�[\�]�]\r�r�r��[�]�r��rhr�r�)rPr�rOr�r�rr�rrRrpr\r[r�s      r�test_decode_errorsz$UnicodeEscapeTest.test_decode_errors�	s����-��3�		@�		@�D�A�q��1�X�X�
@�
@���!�!�"4�f�"'�!�)�d�1�f�"4�6�6�6��!�!�"4�f�"(�1�*�t�A�v�"5��"<�>�>�>���z�D��F�*�V�3�a�7�$�q�&�@��� � ����h�!7�!7�$��D�	�	�9J�K�K�K�� � ����i�!8�!8�"2�C��I�I�!>�@�@�@�@�
@�	
���,�f�n�E�E�E��������9�9�8�D�D�D�������	�:�:�N�K�K�K�K�Krc�6�|�dgd���dS)N�	

\ÿ￿𐀀) rhrhrhr�r��	r�	
r�	

r�	

\rrr�	

\ÿrrrrr�
	

\ÿ￿rrrrrrrrrrrrs rrzUnicodeEscapeTest.test_partial�	r�r�r)r*r+rYr�r�r�r�r�r�rrrrrr�r�~	s��������H���E�E�E�B�B�B�O�O�O�
,�
,�
,�(+�(+�(+�TL�L�L� %
�%
�%
�%
�%
rr�c�@�eZdZdZdZd�Zd�Zd�Zd�Zd�Z	d�Z
d	�ZdS)
�RawUnicodeEscapeTestzraw-unicode-escapeNc��|�tjd��d��|�tjd��d��dSr�)rrP�raw_unicode_escape_encoder�rs rr�zRawUnicodeEscapeTest.test_empty
sJ������9�"�=�=�x�H�H�H�����9�#�>�>��H�H�H�H�Hrc��tj}td��D]>}|�|t	|����t|g��df���?dS)Nr�rN)rPrrOrr�rmr�s   rr�z$RawUnicodeEscapeTest.test_raw_encode
s\���1���s���	>�	>�A����V�V�C��F�F�^�^�e�Q�C�j�j�!�_�=�=�=�=�	>�	>rc���tj}td��D]D}|�|t	|g��dz��t|��dzdf���EdS)Nr�rr�r )rPr�rOrrmr�rs   rr�z$RawUnicodeEscapeTest.test_raw_decode
sl���1���s���	K�	K�A����V�V�E�1�#�J�J��$5�6�6��Q���#��q�8I�J�J�J�J�	K�	Krc���tj}t||��}td��D]3}|dvr-|dt	|��zdt|g��z���4|dd��|dd��dS)	Nr��uUr�r
r�r�r�r�)rPrrrOr�rmr�s    rr�z'RawUnicodeEscapeTest.test_escape_encode
s����1���t�V�,�,���s���	9�	9�A���~�~���d�S��V�V�m�U�U�A�3�Z�Z�%7�8�8�8��
��h�
�#�#�#�
��l�N�+�+�+�+�+rc���tj}t||��}td��D]3}|dvr-|dt	|g��zdt|��z���4|dd��|dd��dS)	Nr�rr
r�r�r�r�r�)rPr�rrOrmr�)rrRrr�s    rr�z'RawUnicodeEscapeTest.test_escape_decode
s����1���t�V�,�,���s���	9�	9�A���~�~���e�e�Q�C�j�j�(�$��Q���-�8�8�8��
��j�(�#�#�#�
��n�l�+�+�+�+�+rc	��tj}dD]�\}}t|��D]�}|�t|d|zd|zz��|�t|d|zd|zzdz��d|zd|zzdz|zd|zz}|�||d��dt
|��f��|�||d	��d
t
|��f����|�t|d��|�|dd��d��|�|dd	��d
��dS)N)rrr
rrrrr�r�r�r	r�r
r�)rPr�rOr�r�rrrs      rrz'RawUnicodeEscapeTest.test_decode_errors(
s����1��(�		@�		@�D�A�q��1�X�X�
@�
@���!�!�"4�f�"'�!�)�d�1�f�"4�6�6�6��!�!�"4�f�"(�1�*�t�A�v�"5��"<�>�>�>���z�D��F�*�V�3�a�7�$�q�&�@��� � ����h�!7�!7�$��D�	�	�9J�K�K�K�� � ����i�!8�!8�"2�C��I�I�!>�@�@�@�@�
@�	
���,�f�n�E�E�E��������9�9�8�D�D�D�������	�:�:�N�K�K�K�K�Krc�6�|�dgd���dS)Nr)r�rrrrrrrrrrrrrrrrrrrrrrrs rrz!RawUnicodeEscapeTest.test_partial8
s6�����.�
�
�
�	
�	
�	
�	
�	
rrrrrrr
s�������#�H���I�I�I�>�>�>�
K�K�K�
,�,�,�,�,�,�L�L�L� 
�
�
�
�
rrc��eZdZd�ZdS)�EscapeEncodeTestc�|�gd�}|D][\}}|�|���5|�tj|��|��ddd��n#1swxYwY�\|�t
tjd��|�t
tjt
d����dS)N))rr�)�foobar)r$r�)s	spameggs)sspam\x00eggs�	)sa'b)sa\'brs)sb\c)sb\\crs)sc
d)sc\ndrs)sd
e)sd\rers)sfg)sf\x7fgrsr�r�r�)r�rrP�
escape_encoder�r�r)rrfr��outputs    rr�z#EscapeEncodeTest.test_escape_encodeX
s
��	
�	
�	
��"�	E�	E�L�D�&����4��(�(�
E�
E�� � ��!5�d�!;�!;�V�D�D�D�
E�
E�
E�
E�
E�
E�
E�
E�
E�
E�
E����
E�
E�
E�
E�����)�V�%9�6�B�B�B����)�V�%9�9�W�;M�;M�N�N�N�N�Ns�)A�A	�A	N)r)r*r+r�rrrr"r"V
s(������O�O�O�O�Orr"c�&�eZdZd�Zd�Zd�Zd�ZdS)�SurrogateEscapeTestc�V�|�d�dd��d��|�d�dd��d��|�d�dd��d��|�d�dd��d��dS)N�foo�barryr��	foo�bars�u	����rrRrcrs r�	test_utf8zSurrogateEscapeTest.test_utf8l
s�������-�-�g�7H�I�I�'�	)�	)�	)�����.�.�w�8I�J�J�&�	(�	(�	(�	
����/�/��9J�K�K�-�	/�	/�	/����-�4�4�W�>O�P�P�(�	*�	*�	*�	*�	*rc��|�d�dd��d��|�d�dd��d��dS)Nr+r�r�r,r-rs rr�zSurrogateEscapeTest.test_asciix
sh������-�-�g�7H�I�I�'�	)�	)�	)�����.�.�w�8I�J�J�&�	(�	(�	(�	(�	(rc��|�d�dd��d��|�d�dd��d��dS)Nsfoo�barz
iso-8859-3r�u	foo�barr-rs r�test_charmapz SurrogateEscapeTest.test_charmap
sh������-�-�l�<M�N�N�'�	)�	)�	)�����.�.�|�=N�O�O�&�	(�	(�	(�	(�	(rc�Z�|�d�dd��d��dS)Nu�����r�r�s���rlrs r�test_latin1zSurrogateEscapeTest.test_latin1�
s;�����9�@�@��L]�^�^�0�	2�	2�	2�	2�	2rN)r)r*r+r.r�r1r3rrrr)r)j
sP������
*�
*�
*�(�(�(�(�(�(�2�2�2�2�2rr)c��eZdZd�ZdS)�BomTestc�:	�d}d}|�tjtj��|D�]h}t	jtjd|���5}|�|��|�|��|�d��|�|�	��|dz��|�d��|�|�	��|dz��ddd��n#1swxYwYt	jtjd|���5}|�|d��|�
|���d��|�d��|�|��|�d��|�|�	��|��ddd��n#1swxYwYt	jtjd|���5}|j�|d��|�
|j���d��|j�d��|j�|��|�d��|�|�	��|��ddd��n#1swxYwYt	jtjd|���5}|�|��|�|�����|�|��|�d��|�|�	��|dz��ddd��n#1swxYwYt	jtjd|���5}|j�|��|j�|j�����|j�|��|�d��|�|�	��|dz��ddd��n#1swxYwY��jdS)N�
1234567890)r9r[rrr�rr1r�rErr )
rFrrGrHrPrIrDr�rrI�assertNotEqual�tellr�)rr�rfrYr�s     r�
test_seek0zBomTest.test_seek0�
s�������	
���	�(�)�*:�;�;�;��,	5�,	5�H���Y�-�t�h�G�G�G�
5�1�����
�
�
�����
�
�
����q�	�	�	�� � ������4�!�8�4�4�4����q�	�	�	�� � ������4�!�8�4�4�4�

5�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5����
5�
5�
5�
5���Y�-�t�h�G�G�G�
1�1�����Q�� � � ��#�#�A�F�F�H�H�a�0�0�0����q�	�	�	�����
�
�
����q�	�	�	�� � ������4�0�0�0�

1�
1�
1�
1�
1�
1�
1�
1�
1�
1�
1����
1�
1�
1�
1���Y�-�t�h�G�G�G�
1�1�����t�A�w�'�'�'��#�#�A�H�M�M�O�O�Q�7�7�7���
�
�a� � � �����t�$�$�$����q�	�	�	�� � ������4�0�0�0�

1�
1�
1�
1�
1�
1�
1�
1�
1�
1�
1����
1�
1�
1�
1���Y�-�t�h�G�G�G�
5�1�����
�
�
����q�v�v�x�x� � � �����
�
�
����q�	�	�	�� � ������4�!�8�4�4�4�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5����
5�
5�
5�
5���Y�-�t�h�G�G�G�
5�1�����t�$�$�$���
�
�a�h�m�m�o�o�.�.�.�����t�$�$�$����q�	�	�	�� � ������4�!�8�4�4�4�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5�
5����
5�
5�
5�
5��O,	5�,	5s_�B+D�D	�D	�8B+G/�/G3	�6G3	�B?K&�&K*	�-K*	�BN0�0N4	�7N4	�B&R�R	�R	N)r)r*r+r:rrrr5r5�
s#������55�55�55�55�55rr5)�base64_codec�uu_codec�quopri_codec�	hex_codec�base64�base_64�uu)�quopri�quoted_printable�quotedprintable�hex�rot13)r;r<r=r>�rot_13�
zlib_codecrs�zlib�	bz2_codec�bz2c��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
eje
d	��d
���Zd�Zd�Zd
�Zd�ZdS)�TransformCodecTestc���ttd����}tD]�}|�|���5t	j|��|��\}}|�|t|����t	j|��|��\}}|�|t|����|�||��ddd��n#1swxYwY��dS)Nr�rE)	rmrO�bytes_transform_encodingsr�rPr�rrr�)r�binputrY�orGr[s      rr�zTransformCodecTest.test_basics�
s"���u�S�z�z�"�"��1�	,�	,�H����x��0�0�
,�
,�7�F�-�h�7�7��?�?�	��D�� � ��s�6�{�{�3�3�3�7�F�-�h�7�7��:�:�	��D�� � ��s�1�v�v�.�.�.�� � ��F�+�+�+�

,�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,����
,�
,�
,�
,��	,�	,s�BC%�%C)	�,C)	c�R�tD]�}|�|���5tjd|��}tj|��tj|����}|���}|�|d��ddd��n#1swxYwY��dS�NrEr�)	rOr�rPrcrrr�r�rIr�rrY�sinr��souts     r�	test_readzTransformCodecTest.test_read�
s���1�	0�	0�H����x��0�0�
0�
0��m�G�X�6�6��3��)�(�3�3�B�J�s�O�O�D�D���{�{�}�}��� � ��w�/�/�/�	
0�
0�
0�
0�
0�
0�
0�
0�
0�
0�
0����
0�
0�
0�
0��	0�	0��A/B�B	�"B	c�R�tD]�}|�|���5tjd|��}tj|��tj|����}|���}|�|d��ddd��n#1swxYwY��dSrS)	rOr�rPrcrrr�r�r�rrTs     rr�z TransformCodecTest.test_readline�
s���1�	0�	0�H����x��0�0�
0�
0��m�G�X�6�6��3��)�(�3�3�B�J�s�O�O�D�D�����(�(��� � ��w�/�/�/�	
0�
0�
0�
0�
0�
0�
0�
0�
0�
0�
0����
0�
0�
0�
0��	0�	0rXc���d}tD]�}|�|���5|}t|��}tj||��}tj||��}|�||��t|��}tj||��}|�||��tj||��}|�||��ddd��n#1swxYwY��dS)Ns12345�rE)rOr��
memoryviewrPrcrrR)r�originalrYr��view�view_encoded�view_decodeds       r�test_buffer_api_usagez(TransformCodecTest.test_buffer_api_usages1�� ��1�	5�	5�H����x��0�0�

5�

5���!�$�'�'���}�T�8�4�4��%�}�T�8�<�<��� � ��t�4�4�4�!�$�'�'���}�T�8�4�4��� � ��x�0�0�0�%�}�T�8�<�<��� � ��t�4�4�4�

5�

5�

5�

5�

5�

5�

5�

5�

5�

5�

5����

5�

5�

5�

5��	5�	5s�B7C%�%C)	�,C)	c�v�d}tD]�}|�|���5d}|�|��}|�t|��5}|�|��ddd��n#1swxYwY|�|jj��ddd��n#1swxYwY��dS)Nzbad input typerEzM{!r} is not a text encoding; use codecs.encode\(\) to handle arbitrary codecs)	rOr��formatror�rc�assertIsNonerU�	__cause__)r�	bad_inputrY�fmt�msg�failures      r�/test_text_to_binary_denylists_binary_transformszBTransformCodecTest.test_text_to_binary_denylists_binary_transformss9��$�	�1�	?�	?�H����x��0�0�
?�
?�K���j�j��*�*���+�+�K��=�=�/���$�$�X�.�.�.�/�/�/�/�/�/�/�/�/�/�/����/�/�/�/��!�!�'�"3�"=�>�>�>�

?�
?�
?�
?�
?�
?�
?�
?�
?�
?�
?����
?�
?�
?�
?��	?�	?s5�3B-�A7�+B-�7A;�;B-�>A;�?"B-�-B1	�4B1	c��d}|�t|��5d�d��ddd��dS#1swxYwYdS)NzR^'rot_13' is not a text encoding; use codecs.encode\(\) to handle arbitrary codecszjust an example messagerG)ror�rc�rrgs  r�-test_text_to_binary_denylists_text_transformsz@TransformCodecTest.test_text_to_binary_denylists_text_transformss���C��
�
#�
#�K��
5�
5�	7�	7�%�,�,�X�6�6�6�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7�	7����	7�	7�	7�	7�	7�	7s�A�A�Ac��d}tD]�}|�|���5tj||��}d}|�|��}|�t|��5|�|��ddd��n#1swxYwY|�t|��5t|���|��ddd��n#1swxYwYddd��n#1swxYwY��dS)Ns6encode first to ensure we meet any format restrictionsrEzM{!r} is not a text encoding; use codecs.decode\(\) to handle arbitrary codecs)	rOr�rPrcrbror�rRr)rr�rY�encoded_datarfrgs      r�/test_binary_to_text_denylists_binary_transformszBTransformCodecTest.test_binary_to_text_denylists_binary_transforms&s���I��1�		=�		=�H����x��0�0�
=�
=�%�}�T�8�<�<��K���j�j��*�*���+�+�K��=�=�2�2� �'�'��1�1�1�2�2�2�2�2�2�2�2�2�2�2����2�2�2�2��+�+�K��=�=�=�=��l�+�+�2�2�8�<�<�<�=�=�=�=�=�=�=�=�=�=�=����=�=�=�=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=�
=����
=�
=�
=�
=��		=�		=sZ�AC8�*B�C8�B�C8�B�C8�2#C!�C8�!C%�%C8�(C%�)C8�8C<	�?C<	c�\�dtd��fD]�}|�|���5d}|�t|��5}|�d��ddd��n#1swxYwY|�|jj��ddd��n#1swxYwY��dS)Ns	immutablesmutable)rezR^'rot_13' is not a text encoding; use codecs.decode\(\) to handle arbitrary codecsrG)rr�ror�rRrcrUrd)rrergrhs    r�-test_binary_to_text_denylists_text_transformsz@TransformCodecTest.test_binary_to_text_denylists_text_transforms5s0��&�	�*�(=�(=�>�	?�	?�I����	��2�2�
?�
?�K���+�+�K��=�=�/���$�$�X�.�.�.�/�/�/�/�/�/�/�/�/�/�/����/�/�/�/��!�!�'�"3�"=�>�>�>�
?�
?�
?�
?�
?�
?�
?�
?�
?�
?�
?����
?�
?�
?�
?��	?�	?s5�B �A*�B �*A.�.B �1A.�2"B � B$	�'B$	zRequires zlib supportc��d}|�tj��5}tjdd��ddd��n#1swxYwY|�|jjt|j����dS)Nz(^decoding with 'zlib_codec' codec failed�hellorH)	r�rI�errorrPrRrTrUrdr�)rrgrhs   r�!test_custom_zlib_error_is_wrappedz4TransformCodecTest.test_custom_zlib_error_is_wrapped?s���9��
�
�
�t�z�
*�
*�	2�g��M�(�L�1�1�1�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2����	2�	2�	2�	2����g�/�9�04�W�5F�0G�0G�	I�	I�	I�	I�	Is�A�A�Ac��ddl}d}|�|j��5}tjdd��ddd��n#1swxYwY|�|jjt|j����dS)Nrz'^decoding with 'hex_codec' codec failedrsr>)	�binasciir�r�rPrRrTrUrdr�)rrwrgrhs    r� test_custom_hex_error_is_wrappedz3TransformCodecTest.test_custom_hex_error_is_wrappedHs�������7��
�
�
�x�~�
.�
.�	1�'��M�(�K�0�0�0�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1����g�/�9�04�W�5F�0G�0G�	I�	I�	I�	I�	Is�A�A�
Ac�:�t���D]�\}}tj|��j}|D]_}|�|���5tj|��}|�|j|��ddd��n#1swxYwY�`��dS)N)�alias)�transform_aliases�itemsrPr�r�r�r)r�
codec_name�aliases�
expected_namerzr9s      r�test_aliaseszTransformCodecTest.test_aliasesUs���#4�#:�#:�#<�#<�	?�	?��J��"�M�*�5�5�:�M� �
?�
?���\�\��\�.�.�?�?�!�=��/�/�D��$�$�T�Y�
�>�>�>�?�?�?�?�?�?�?�?�?�?�?����?�?�?�?��
?�	?�	?s�0B�B�Bc��tjdd��}|�|d��d}|�tj|d��|��dS)Nsspace tab	eol 
zquopri-codecsspace=20tab=09eol=20
sspace tab eol
)rPrcrrR)rr}�	unescapeds   r�test_quopri_statelessz(TransformCodecTest.test_quopri_stateless]sX���-� 4�n�E�E������";�<�<�<�&�	������y�.�A�A�9�M�M�M�M�Mrc�T�|�ttjdd��dS)Nrzuu-codec)r�rRrPrRrs r�test_uu_invalidz"TransformCodecTest.test_uu_invalides$�����*�f�m�S�*�E�E�E�E�ErN)r)r*r+r�rWr�r`rirlrorqr��
skipUnlessrIrurxr�r�r�rrrrMrM�
s������	,�	,�	,�0�0�0�0�0�0�5�5�5�$
?�
?�
?�7�7�7�
=�
=�
=�?�?�?��X���6�7�7�I�I�8�7�I�I�I�I�?�?�?�N�N�N�F�F�F�F�FrrMc�6�t�|��Sr
)�_TEST_CODECS�get)r}s r�_get_test_codecr�ts�����J�'�'�'rc��eZdZd�Zd�Zd�Zejd���Zd�Z	e
fd�Zd�Zd�Z
d	�Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�ZdS)�ExceptionChainingTestc��d|_tjt��|�tjt��t|_dS)N�exception_chaining_test)r}rPr�r�rFr��RuntimeError�obj_to_raisers rr�zExceptionChainingTest.setUpzs@��3������(�(�(�����)�?�;�;�;�)����rc��t�|jd��tj�|jd��dSr
)r��popr}r��_cachers r�tearDownzExceptionChainingTest.tearDown�s;�������$�/�/�/�����T�_�d�3�3�3�3�3rc�\�tj|||j���}|t|j<dS)N)r�)rPr�r}r�)rrcrR�
codec_infos    r�	set_codeczExceptionChainingTest.set_codec�s4���%�f�f�+/�?�<�<�<�
�(2��T�_�%�%�%rc#�:K�d�||j|j|��}|�||��5}|V�ddd��n#1swxYwY|�|jj|��|�|jjj��dS)Nz${} with {!r} codec failed \({}: {}\))	rbr}r)rorTrUrd�assertIsNotNone�
__traceback__)r�	operation�exc_typerg�full_msg�caughts      r�
assertWrappedz#ExceptionChainingTest.assertWrapped�s�����:�A�A��T�_�h�.?��F�F��
�
#�
#�H�h�
7�
7�	�6��L�L�L�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	����f�.�8�(�C�C�C����V�-�7�E�F�F�F�F�Fs�A�A�Ac��|j�r
)r�)r�args�kwdss   r�	raise_objzExceptionChainingTest.raise_obj�s����rc��||_|�|j|j��|�d||��5d�|j��ddd��n#1swxYwY|�d||��5t
jd|j��ddd��n#1swxYwY|�d||��5d�|j��ddd��n#1swxYwY|�d||��5t
jd|j��ddd��dS#1swxYwYdS)NrY�	str_input�decoding�bytes input)r�r�r�r�rcr}rPrR)rr�rgr�s    r�
check_wrappedz#ExceptionChainingTest.check_wrapped�s9��(������t�~�t�~�6�6�6�
�
�
�
�H�c�
:�
:�	0�	0����t��/�/�/�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0����	0�	0�	0�	0�
�
�
�
�H�c�
:�
:�	8�	8��M�+�t��7�7�7�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8�
�
�
�
�H�c�
:�
:�	3�	3��!�!�$�/�2�2�2�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3�
�
�
�
�H�c�
:�
:�	;�	;��M�.�$�/�:�:�:�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;����	;�	;�	;�	;�	;�	;sG�A&�&A*�-A*�B/�/B3�6B3�C8�8C<�?C<�E�E�	Ec�<�|�td��dS)Nrh�r�r�rs r�test_raise_by_typez(ExceptionChainingTest.test_raise_by_type�s�����<��,�,�,�,�,rc�P�d}|�t|��|��dS)N�This should be wrappedr�rks  r�test_raise_by_valuez)ExceptionChainingTest.test_raise_by_value�s+��&�����<��,�,�c�2�2�2�2�2rc�p�d}Gd�dt��}|�||��||��dS)Nr�c��eZdZdZdS)�WExceptionChainingTest.test_raise_grandchild_subclass_exact_size.<locals>.MyRuntimeErrorrN)r)r*r+�	__slots__rrr�MyRuntimeErrorr��s�������I�I�Irr��r�r��rrgr�s   r�)test_raise_grandchild_subclass_exact_sizez?ExceptionChainingTest.test_raise_grandchild_subclass_exact_size�sY��&��	�	�	�	�	�\�	�	�	����>�>�#�.�.��^�D�D�D�D�Drc�p�d}Gd�dt��}|�||��||��dS)Nr�c��eZdZdS)�VExceptionChainingTest.test_raise_subclass_with_weakref_support.<locals>.MyRuntimeErrorN)r)r*r+rrrr�r��s�������Drr�r�r�s   r�(test_raise_subclass_with_weakref_supportz>ExceptionChainingTest.test_raise_subclass_with_weakref_support�sY��&��	�	�	�	�	�\�	�	�	����>�>�#�.�.��^�D�D�D�D�Drc����fd�}|�||��|�t|��5d�|j��ddd��n#1swxYwY|�t|��5tjd|j��ddd��n#1swxYwY|�t|��5d�|j��ddd��n#1swxYwY|�t|��5tjd|j��ddd��dS#1swxYwYdS)Nc�����r
r)r�r�r�s  �rr�z:ExceptionChainingTest.check_not_wrapped.<locals>.raise_obj�s	����r�	str inputr�)r�ror�rcr}rPrR)rr�rgr�s `  r�check_not_wrappedz'ExceptionChainingTest.check_not_wrapped�s?���	�	�	�	�	����y�)�,�,�,�
�
#�
#�L�#�
6�
6�	0�	0����t��/�/�/�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0����	0�	0�	0�	0�
�
#�
#�L�#�
6�
6�	8�	8��M�+�t��7�7�7�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8�
�
#�
#�L�#�
6�
6�	3�	3��!�!�$�/�2�2�2�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3�
�
#�
#�L�#�
6�
6�	;�	;��M�.�$�/�:�:�:�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;����	;�	;�	;�	;�	;�	;sG�A�A#�&A#�B,�,B0�3B0�C9�9C=�C=�E�E�Ec�X�Gd�dt��}|�|d��dS)Nc��eZdZd�ZdS)�KExceptionChainingTest.test_init_override_is_not_wrapped.<locals>.CustomInitc��dSr
rrs rrAzTExceptionChainingTest.test_init_override_is_not_wrapped.<locals>.CustomInit.__init__�s���rN)r)r*r+rArrr�
CustomInitr��s#������
�
�
�
�
rr�rh�r�r�)rr�s  r�!test_init_override_is_not_wrappedz7ExceptionChainingTest.test_init_override_is_not_wrapped�sJ��	�	�	�	�	��	�	�	�	
���z�2�.�.�.�.�.rc�X�Gd�dt��}|�|d��dS)Nc���eZdZ�fd�Z�xZS)�IExceptionChainingTest.test_new_override_is_not_wrapped.<locals>.CustomNewc�F��t���|��Sr
)r��__new__)�clsr�s �rr�zQExceptionChainingTest.test_new_override_is_not_wrapped.<locals>.CustomNew.__new__�s����w�w���s�+�+�+r)r)r*r+r�r�r�s@r�	CustomNewr��s8�������
,�
,�
,�
,�
,�
,�
,�
,�
,rr�rhr�)rr�s  r� test_new_override_is_not_wrappedz6ExceptionChainingTest.test_new_override_is_not_wrapped�sJ��	,�	,�	,�	,�	,��	,�	,�	,�	
���y�"�-�-�-�-�-rc��d}t|��}d|_|�|d�|����dS)NzThis should NOT be wrappedrNz^{}$)r��attrr�rb)rrgr�s   r�&test_instance_attribute_is_not_wrappedz<ExceptionChainingTest.test_instance_attribute_is_not_wrapped�sC��*���3����������s�F�M�M�#�$6�$6�7�7�7�7�7rc�L�|�td��d��dS)NrN�1�r�r�rs r�test_non_str_arg_is_not_wrappedz5ExceptionChainingTest.test_non_str_arg_is_not_wrapped�s$�����|�A����4�4�4�4�4rc�T�d}|�tddd��|��dS)Nz^\('a', 'b', 'c'\)$r�r�rpr�)r�msg_res  r�!test_multiple_args_is_not_wrappedz7ExceptionChainingTest.test_multiple_args_is_not_wrapped�s/��'�����|�C��c�:�:�F�C�C�C�C�Crc��d�|j��}|�t|��5d�|j��ddd��n#1swxYwY|�t|��5tjd|j��ddd��n#1swxYwY|�t|��5d�|j��ddd��n#1swxYwY|�t|��5tjd|j��ddd��dS#1swxYwYdS)Nz^unknown encoding: {}$r�r�)rbr}ror�rcrPrRrks  r�%test_codec_lookup_failure_not_wrappedz;ExceptionChainingTest.test_codec_lookup_failure_not_wrapped�s&��&�-�-�d�o�>�>��
�
#�
#�K��
5�
5�	0�	0����t��/�/�/�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0����	0�	0�	0�	0�
�
#�
#�K��
5�
5�	8�	8��M�+�t��7�7�7�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8�	8����	8�	8�	8�	8�
�
#�
#�K��
5�
5�	3�	3��!�!�$�/�2�2�2�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3�
�
#�
#�K��
5�
5�	;�	;��M�.�$�/�:�:�:�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;�	;����	;�	;�	;�	;�	;�	;sG�A�A!�$A!�B*�*B.�1B.�C7�7C;�>C;�E�E	�E	c��d�}d�}|�||��tjd|j��}|�|d��tjd|j��}|�|d��d}|�|j��}|�t|��5d�|j��ddd��n#1swxYwYd}|�|j��}|�t|��5d�|j��ddd��dS#1swxYwYdS)	Nc��dS)N)�
not bytes!rr�r�r�s  r�
encode_to_strzSExceptionChainingTest.test_unflagged_non_text_codec_handling.<locals>.encode_to_str�s��"�?rc��dS)N)�not str!rrr�s  r�decode_to_byteszUExceptionChainingTest.test_unflagged_non_text_codec_handling.<locals>.decode_to_bytes�s��!�>rr�r�zd^{!r} encoder returned 'str' instead of 'bytes'; use codecs.encode\(\) to encode to arbitrary types$r�zd^{!r} decoder returned 'bytes' instead of 'str'; use codecs.decode\(\) to decode to arbitrary types$r�)	r�rPrcr}rrRrbror�)rr�r�r}�decodedrfrgs       r�&test_unflagged_non_text_codec_handlingz<ExceptionChainingTest.test_unflagged_non_text_codec_handling�s���	#�	#�	#�	"�	"�	"����}�o�6�6�6��-��d�o�6�6������,�/�/�/��-��d�o�6�6������+�.�.�.�F���j�j���)�)��
�
#�
#�I�s�
3�
3�	0�	0����t��/�/�/�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0����	0�	0�	0�	0�F���j�j���)�)��
�
#�
#�I�s�
3�
3�	3�	3��!�!�$�/�2�2�2�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3�	3�	3s$�4C�C�"C�E�E	�E	N)r)r*r+r�r�r��
contextlib�contextmanagerr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrr�r�xsI������)�)�)�4�4�4�
3�3�3�
��G�G���G� � � �9E�
;�
;�
;�
;�-�-�-�3�3�3�E�E�E�E�E�E�;�;�;�/�/�/�.�.�.�8�8�8�5�5�5�D�D�D�

;�
;�
;�3�3�3�3�3rr��win32z"code pages are specific to Windowsc���eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zejd
dd���d���Zejd
dd���d���ZdS)�CodePageTest��c�>�|�ttjdd��|�ttjdd��|�t
tjdd��|�t
tjdd��dS)Nrr��ar')r�rRrP�code_page_encode�code_page_decode�OSErrorrs r�test_invalid_code_pagez#CodePageTest.test_invalid_code_pages|�����*�f�&=�r�3�G�G�G����*�f�&=�r�4�H�H�H����'�6�#:�C��E�E�E����'�6�#:�C��F�F�F�F�Frc	��|�tdtjdd��|�tdtjdddd��|�tdtj|jddd��dS)	Nr<��ÿs�rjT�CP_UTF8r
)ror�rPr�r�r�r�rs r�test_code_page_namez CodePageTest.test_code_page_names������1�7��#�S�&�	2�	2�	2����1�7��#�S�+�x��	G�	G�	G����1�9��#�T�\�7�H�d�	L�	L�	L�	L�	Lrc��|D]�\}}}|��	tj|||d��}n8#t$r+}|�d|�d|�d|�d|����Yd}~nd}~wwxYw|�|d||�d|�d|�d	|d�d
|��	��|�|dd��|�|dt|������|�ttj|||d����dS)NTzUnable to decode z	 from "cp�" with errors=�: rz.decode("cp�", �)=� != rN)	rPr�r��failr�assertGreaterEqual�assertLessEqualrr�)rr6rfrgrDrhr��errs        r�check_decodezCodePageTest.check_decode"s|��%*�	D�	D�!�C����#�H�$�5�b�#�v�t�L�L�G�G��)�H�H�H��I�I�I�14���b�b�b�&�&�&�#�#�G�H�H�H�H�H�H�H�H�����H����� � ����X��s�s�B�B�B������
�
�
�H�H�>�?�?�?��'�'���
�A�6�6�6��$�$�W�Q�Z��S���:�:�:�:��!�!�"4��+�R��f�d�D�D�D�D�	D�	Ds�$�
A�!A�Ac���|D]�\}}}|��	tj|||��}n8#t$r+}|�d|�d|�d|�d|����Yd}~nd}~wwxYw|�|d||�d|�d|�d|d�d	|��	��|�|d
t|������|�ttj|||����dS)NzUnable to encode z to "cpr�r�rz.encode("cpr�r�r�rN)rPr�r�r�rrr�)rr6rf�textrDrhr}r�s        r�check_encodezCodePageTest.check_encode4sY��&+�
	?�
	?�"�D�&�(��#�I�$�5�b�$��G�G�G�G��)�I�I�I��I�I�I�15���r�r�r�6�6�6�3�3�H�I�I�I�I�I�I�I�I�����I����� � ����X��t�t�R�R�R���������X�X�?�@�@�@�� � ����S��Y�Y�7�7�7�7��!�!�"4��+�R��v�?�?�?�?�
	?�
	?s�#�
A�!A�Ac�^�|�dd��|�dd��dS)Nr�)�r�rjrr)�d騾rj����)r�rjN)r�r�r)r�r�s[y])u[€]r�s[?])r�r�s[\xff])r�r�s)[\N{LATIN SMALL LETTER Y WITH DIAERESIS}])r�r�s[&#255;])u�rjN)�[�]r�r�)rr�N)�rrrjr�)rrjr)r�rjN)r�r�r�)r�r�u[�])r�r�z[\xff])r�r�r)r�r�N)��abcrjN)r	r�zabc)r	r�u�abc)r	r�z\x81abc�rr�rs r�
test_cp932zCodePageTest.test_cp932DsL�����#� 
�	�	�	� 	
���#� 
�	�	�	�	�	rc�^�|�dd��|�dd��dS)Ni�)r)�é€rj��)r�rjr
)�ŁrjN)rr�r)rr��L)��r���)rr�N)r)rrjr
)r
rjr�r
rs r�test_cp1252zCodePageTest.test_cp1252esL�����$�
!
�
	�
	�
	�	
���$�!
�	�	�	�	�	rc�b�d}|�|d��|�|d��dS)N��)r)r
rj�+AOkgrA-)r�rj�+2//f/w-)r�rj�+3IA-)r�rj�+//0-)r)rrjr
)rrjr�)rrjr�)rrjr�)s[+/]rjr�)r�rjr�r
�rr6s  r�test_cp_utf7zCodePageTest.test_cp_utf7wsQ��
�����"�
�	�	�	�	
���"�	
�		�		�		�		�		rc��|�dd��|�|jd��|�|jd��dS)Nr�))���r��騾)rr�u�騾))��􏿿r�r�)rr�u�􏿿))�	[􏿿�]r�s[􏿿])r r�s[􏿿?])r�r�rrs r�test_multibyte_encodingz$CodePageTest.test_multibyte_encoding�sq�����#� 
�	�	�	�	
���$�,�)
�	�	�	�	
���$�,�)
�	�	�	�	�	rc��tjrtj�d��ddddddgtdd	���d
�RD]]}t
|��r.|�tj	|d��dd
|�����?tjrtd|�����^|�tj	dd��d��dS)Nr�i,�i-�i.�i1�i3�i5�i��i��rrrr�r6z  skipping cp=r�)u	rs)r�verboser�stdoutrDrOr:rrPr��printrs  r�test_code_page_decode_flagsz(CodePageTest.test_code_page_decode_flags�s����?�	#��J���T�"�"�"��%���u�e�2��%��)�)�2�+0�2�2�
	1�
	1�B�$�B�'�'�
1�� � ��!8��V�!D�!D�j�R[�WY�R[�R[�\�\�\�\��?�1��/�2�/�/�0�0�0������0��V�<�<�2�	4�	4�	4�	4�	4rc�n�tjdddd��}|�|d��tjdddd��}|�|d��tjdddd��}|�|d	��tjdd
dd��}|�|d��dS)Nr���rjFr�s��)rr s��)u騾騾r�rrr�)rPr�r)rr�s  r�test_incrementalzCodePageTest.test_incremental�s����)�#�w��%�H�H������'�*�*�*��)�#�*9�8�*/�1�1��	
����-�0�0�0��)�#�*=�x�*/�1�1��	
����"5�6�6�6��)�#�*0�(�*/�1�1��	
����*�-�-�-�-�-rc�0�d}d|��}tjd|���5	tj|��}|�|jd��tj|��n#tj|��wxYw	ddd��dS#1swxYwYdS)Ni��r6z_winapi.GetACP)�return_valuerx)rr�rPr�rr�r�)r�	code_pager��codecs    r�test_mbcs_aliaszCodePageTest.test_mbcs_alias�s����	��I����
�Z�(�y�
A�
A�
A�	(�	(�
(��
�d�+�+��� � ���V�4�4�4��!�$�'�'�'�'���!�$�'�'�'�'����'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�	(�	(s(�B�/A$�B�$A:�:B�B�Bl�F)rG�memuse�dry_runc���d|dzdz
zdz}|�t|��|dz��tjd|dd��}|�|dt|����~|�t|d	��|d��|�|d	dd
�d��|�|d	dd�d
��dS)Ns01234567r4rNs
��������r r�r�Trr��
0123456701i��u(6701234567�����������rrrPr��rrGr}r�s    r�test_large_inputzCodePageTest.test_large_input�s���
�4��7�A�+�.�>�?������W���t�A�v�.�.�.��)�#�w�8I�4�P�P��������S��\�\�2�2�2������W�Q�Z���'�!�*�5�5�5�������C�R�C��,�7�7�7�������C�D�D�)�:�	;�	;�	;�	;�	;rr�c���d|dzz}|�t|��|dzdz��tjd|dd��}|�|dt|����~|�t|d��|��|�|ddd�d	��|�|dd
d�d��dS)Ns
0123456턀r4r�r�r�TrNru0123456턀01i����u56턀0123456턀r4r5s    r�test_large_utf8_inputz"CodePageTest.test_large_utf8_input�s���
*�T�1�W�5������W���t�q�y�2�~�6�6�6��)�%��(�D�I�I��������S��\�\�2�2�2������W�Q�Z���$�/�/�/�������C�R�C��*;�<�<�<�������C�D�D�)�+B�C�C�C�C�CrN)r)r*r+r�r�r�r�rrrrr!r&r)r.r�
bigmemtestr6r8rrrr�r�s/�������G�G�G�G�L�L�L�D�D�D�$?�?�?� ���B���$���(���4�4�4�&.�.�.�&
(�
(�
(��W��U�1�e�<�<�<�;�;�=�<�;�"�W��U�1�e�<�<�<�D�D�=�<�D�D�Drr�c�,�eZdZd�Zd�Zd�Zd�Zd�ZdS)�	ASCIITestc�X�|�d�d��d��dS)Nr~r�sabc123rlrs rr?zASCIITest.test_encode�s*���������1�1�9�=�=�=�=�=rc���dD]`\}}}|�|||���5|�|�d|��|��ddd��n#1swxYwY�adS)N))�	[€ÿ€]r�r)r>r�s[???])r>r�s[&#128;&#255;&#8364;])u
[€ÿ€򫳞]r�s[\x80\xff\u20ac\U000abcde]�r�r�r�r�r��r�rrcr�s    r�test_encode_errorzASCIITest.test_encode_error�s���.
�	+�	+�)�D�-�����4�}�'/��1�1�
+�
+�� � ����W�m�!D�!D�!)�+�+�+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+����
+�
+�
+�
+��	+�	+��+A�A	�A	c��|�t��5d�dd��ddd��dS#1swxYwYdS)Nu�ÿr�r��r�r�rcrs r�!test_encode_surrogateescape_errorz+ASCIITest.test_encode_surrogateescape_error�s���
�
�
�1�
2�
2�	<�	<�����):�;�;�;�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<�	<����	<�	<�	<�	<�	<�	<��?�A�Ac�X�|�d�d��d��dS)Nrrr�r�)rrRrs rrAzASCIITest.test_decode
s*��������w�/�/��7�7�7�7�7rc���dD]`\}}}|�|||���5|�|�d|��|��ddd��n#1swxYwY�adS)Nr�r�r�r�r�s    rr�zASCIITest.test_decode_error
s���.
�		+�		+�)�D�-�����4�}�'/��1�1�
+�
+�� � ����W�m�!D�!D�!)�+�+�+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+����
+�
+�
+�
+��
		+�		+rBN)r)r*r+r?rArErAr�rrrr;r;�s_������>�>�>�+�+�+�<�<�<�
8�8�8�
+�
+�
+�
+�
+rr;c�&�eZdZd�Zd�Zd�Zd�ZdS)�
Latin1Testc���dD]]\}}|�||���5|�|�d��|��ddd��n#1swxYwY�^dS)N))r�rr)u€éÿs��r�rhr
r@�rr�rhs   rr?zLatin1Test.test_encode
����
�	B�	B�N�D�(����4�(��;�;�
B�
B�� � ����X�!6�!6��A�A�A�
B�
B�
B�
B�
B�
B�
B�
B�
B�
B�
B����
B�
B�
B�
B��		B�	B��*A�A	�A	c���dD]`\}}}|�|||���5|�|�d|��|��ddd��n#1swxYwY�adS)N))�[€�]r�r)rQr�s[??])u	[€򫳞]r�s[\u20ac\U000abcde])rQr�s[&#8364;&#56448;]r?r�r
r@r�s    r�test_encode_errorszLatin1Test.test_encode_errors
s���.
�	+�	+�)�D�-�����4�}�'/��1�1�
+�
+�� � ����X�}�!E�!E�!)�+�+�+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+�
+����
+�
+�
+�
+��	+�	+rBc��|�t��5d�dd��ddd��dS#1swxYwYdS)Nu�€r
r�rDrs rrEz,Latin1Test.test_encode_surrogateescape_error*
s���
�
�
�1�
2�
2�	?�	?��!�!�(�,=�>�>�>�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?�	?����	?�	?�	?�	?�	?�	?rFc���dD]]\}}|�||���5|�|�d��|��ddd��n#1swxYwY�^dS)N))rrr�)r�u[€ÿ]rLr
r�rMs   rrAzLatin1Test.test_decode/
rNrON)r)r*r+r?rRrErArrrrJrJ
sX������B�B�B�+�+�+�?�?�?�
B�B�B�B�BrrJc�2�eZdZd�Zd�Zd�Zd�Zd�Zd�ZdS)�StreamRecoderTestc�R�tj��}tjd��}tj||j|jtjj	tjj
��}|�ddg��|�|�
��d��dS)Nr�r��bsab)r�r�rPr�r�rcrRr�r�r�r��
writelinesrr��r�bior-�srs    r�test_writelinesz!StreamRecoderTest.test_writelines9
s����j�l�l���
�g�&�&��
�
!�#�u�|�U�\�"+�/�">�	��@\�^�^��
�
�
�t�T�l�#�#�#����������/�/�/�/�/rc��tj��}tjd��}tj||j|jtjj	tjj
��}d}|�|�d����|�|�
��|�d����dS)Nr
uàñéry)r�r�rPr�r�rcrRr�rvr�r�rDrr�)rr[r-r\rs     r�
test_writezStreamRecoderTest.test_writeA
s����j�l�l���
�h�'�'��
�
!�#�u�|�U�\�"+�/�">�	��@\�^�^����
������X�&�&�'�'�'������������W�)=�)=�>�>�>�>�>rc�:�tjd�d����}tj|dd��}|�|���d��|�d��|�|���d��|�|���d��|�|���d��|�|���d��dS)	Nzline1
line2
line3
r[rysline1
rsline2
sline3
r)r�r�rcrPr�rr�r��rr[r\s   r�test_seeking_readz#StreamRecoderTest.test_seeking_readL
s����j�0�7�7��D�D�E�E��
�
��W�k�
:�
:����������
�3�3�3�
����
�
�
���������
�3�3�3���������
�3�3�3���������
�3�3�3����������,�,�,�,�,rc�>�tjd�d����}tj|dd��}|�d��|�d��|�|���d��|�d��|�|���d��|�|���d	��|�|���d��dS)
Nz
123456789
r[ryr s
abc
s789
rs1
sabc
)	r�r�rcrPr�r�rDrr�ras   r�test_seeking_writez$StreamRecoderTest.test_seeking_writeW
s����j��-�-�k�:�:�;�;��
�
��W�k�
:�
:��	����
�
�
�
����������������1�1�1�
����
�
�
����������/�/�/����������1�1�1����������1�1�1�1�1rc���tj��}tjd��}tj||j|jtjj	tjj
��}|�td��5tj
|��ddd��n#1swxYwY|�td��5tj|��ddd��dS#1swxYwYdS)Nr�r�)r�r�rPr�r�rcrRr�r�r�r�ror�r�r�rZs    rr�zStreamRecoderTest.test_copye
sM���j�l�l���
�g�&�&��
�
!�#�u�|�U�\�"+�/�">�	��@\�^�^���
#�
#�I��
?�
?�	�	��I�b�M�M�M�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�
�
#�
#�I��
?�
?�	�	��M�"����	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s$�B$�$B(�+B(�
C,�,C0�3C0c��td��}tjd��}tj||j|jtjjtjj	��}ttjdz��D]x}|�
|���5|�td��5tj||��ddd��n#1swxYwYddd��n#1swxYwY�ydS)Nrr�rNr�r�)r<rPr�r�rcrRr�r�r�r�rOr�r�r�ror�r�)rryr-r\r�s     rr�zStreamRecoderTest.test_picklep
s[���#�J�J���
�g�&�&��
�
!�!�U�\�5�<�"+�/�">�	��@\�^�^���6�2�Q�6�7�7�	,�	,�E����u��-�-�
,�
,��+�+�I��G�G�,�,��L��U�+�+�+�,�,�,�,�,�,�,�,�,�,�,����,�,�,�,�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,�
,����
,�
,�
,�
,��	,�	,s6�C-�4C�
C-�C�C-�C�C-�-C1	�4C1	N)	r)r*r+r]r_rbrdr�r�rrrrVrV8
sn������0�0�0�	?�	?�	?�	-�	-�	-�2�2�2�	�	�	�	,�	,�	,�	,�	,rrVzneed _testinternalcapi modulec��eZdZdZej��ZdZdZdZ	dd�Z
d�Zd�Zd	�Z
d
�Zd�Zdd�Zd
�Zd�Zd�Zd�Zd�ZdS)�LocaleCodecTestzD
    Test indirectly _Py_DecodeUTF8Ex() and _Py_EncodeUTF8Ex().
    )r�uulatin1:§éuu255:ÿu
UCS:é€􏿿usurrogates:��)s
blatin1:��sb255:�u��rjc�.�tj|d|��SrF)�_testinternalcapi�EncodeLocaleEx)rrrDs   rrczLocaleCodecTest.encode�
s�� �/��a��@�@�@rc	��|jD]�}|�|���5	|�|j|��}|�||��}|�||��n�#t
$ru|�t��5}|�||��ddd��n#1swxYwYt|j	��}|�
|d��YnwxYwddd��n#1swxYwY��dS)N)rz!encode error: pos=[0-9]+, reason=)�STRINGSr�rc�ENCODINGrr�r�r�rTrU�assertRegex)rrDrrhr}rW�errmsgs       r�check_encode_stringsz$LocaleCodecTest.check_encode_strings�
s����L�	8�	8�D����4��(�(�

8�

8�	8�#�{�{�4�=�&�A�A�H�#�k�k�$��7�7�G��$�$�W�h�7�7�7�7��*�S�S�S��*�*�<�8�8�2�B����D�&�1�1�1�2�2�2�2�2�2�2�2�2�2�2����2�2�2�2� ���.�.�F��$�$�V�-Q�R�R�R�R�R�	S����

8�

8�

8�

8�

8�

8�

8�

8�

8�

8�

8����

8�

8�

8�

8��	8�	8sW�C8�A*�-C8�*$C)�B1	�%C)�1B5
�5C)�8B5
�9-C)�&C8�(C)�)C8�8C<	�?C<	c�0�|�d��dS�Nrj�rqrs r�test_encode_strictz"LocaleCodecTest.test_encode_strict�
����!�!�(�+�+�+�+�+rc�0�|�d��dS�Nr�rtrs r�test_encode_surrogateescapez+LocaleCodecTest.test_encode_surrogateescape�
����!�!�"3�4�4�4�4�4rc���	|�dd��nI#t$r<}t|��dkr|�|j�d���n�Yd}~nd}~wwxYw|�d��dS)Nrhr��unsupported error handlerz4 encoder doesn't support surrogatepass error handler)rcrRrTr�rnrq�rr�s  r�test_encode_surrogatepassz)LocaleCodecTest.test_encode_surrogatepass�
s���	��K�K��O�,�,�,�,���	�	�	��3�x�x�6�6�6��
�
���=�=�=�>�>�>�>��>�>�>�>�>�����	����	
�!�!�/�2�2�2�2�2���
A�2A�Ac���|�t��5}|�dd��ddd��n#1swxYwY|�t	|j��d��dS)Nrhr�r|)r�rRrcrrTrU�rrWs  r�%test_encode_unsupported_error_handlerz5LocaleCodecTest.test_encode_unsupported_error_handler�
s���
�
�
�z�
*�
*�	0�b��K�K��.�/�/�/�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0�	0����	0�	0�	0�	0�����R�\�*�*�,G�H�H�H�H�H��>�A�Ac�.�tj|d|��SrF)rj�DecodeLocaleEx)rr}rDs   rrRzLocaleCodecTest.decode�
s�� �/���F�C�C�Crc	��|jdk}|rd}nd}t|j��}|jD]�}	|�|j|��}||vr|�|��n#t$rd}YnwxYw|r6|�|jd��}||kr|�|����|D�]}|�|���5	|�|j|��}|�||��}	|�	|	|��n�#t$r�|�t��5}
|�||��ddd��n#1swxYwYt|
j��}|�|�d��|��YnwxYwddd��n#1swxYwY��dS)Nryr�rjr�)r}zdecode error: )rnr��
BYTES_STRINGSrmrcr�r�r�rRrr�r�r�rTrUrW�
startswith)rrD�is_utf8�
encode_errors�stringsrr}�encoded2rhr�rWrps            r�check_decode_stringsz$LocaleCodecTest.check_decode_strings�
sz���=�G�+���	%�-�M�M�$�M��t�)�*�*���L�	-�	-�D�
��+�+�d�m�]�C�C���'�)�)��N�N�7�+�+�+���%�
�
�
�����
�����
-��;�;�t�}�o�F�F���w�&�&��N�N�8�,�,�,���	8�	8�G����g��.�.�

8�

8�	8�&�~�~�d�m�V�D�D�H�#�k�k�'�6�:�:�G��$�$�W�h�7�7�7�7��*�Q�Q�Q��*�*�<�8�8�5�B����G�V�4�4�4�5�5�5�5�5�5�5�5�5�5�5����5�5�5�5� ���.�.�F��O�O�F�$5�$5�6F�$G�$G��P�P�P�P�P�	Q����

8�

8�

8�

8�

8�

8�

8�

8�

8�

8�

8����

8�

8�

8�

8��	8�	8sl�4A&�&A5�4A5�F7�D�)-F7�$F(�:E	�F(�E!
�!F(�$E!
�%AF(�%F7�'F(�(F7�7F;	�>F;	c�0�|�d��dSrs�r�rs r�test_decode_strictz"LocaleCodecTest.test_decode_strict�
rvrc�0�|�d��dSrxr�rs r�test_decode_surrogateescapez+LocaleCodecTest.test_decode_surrogateescape�
rzrc���	|�dd��nI#t$r<}t|��dkr|�|j�d���n�Yd}~nd}~wwxYw|�d��dS)Nrr�r|z4 decoder doesn't support surrogatepass error handler)rRrRrTr�rnr�r}s  r�test_decode_surrogatepassz)LocaleCodecTest.test_decode_surrogatepass�
s���	��K�K��_�-�-�-�-���	�	�	��3�x�x�6�6�6��
�
���=�=�=�>�>�>�>��>�>�>�>�>�����	����	
�!�!�/�2�2�2�2�2rc���|�t��5}|�dd��ddd��n#1swxYwY|�t	|j��d��dS)Nrr�r|)r�rRrRrrTrUr�s  r�%test_decode_unsupported_error_handlerz5LocaleCodecTest.test_decode_unsupported_error_handler�
s���
�
�
�z�
*�
*�	1�b��K�K��/�0�0�0�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1�����R�\�*�*�,G�H�H�H�H�Hr�Nri)r)r*r+rJr�getfilesystemencodingrnrmr��
SURROGATESrcrqruryr~r�rRr�r�r�r�r�rrrrhrh|
s��������)�s�(�*�*�H�*�G�8�M��J�A�A�A�A�8�8�8�,�,�,�5�5�5�
3�
3�
3�I�I�I�
D�D�D�D� 8� 8� 8�D,�,�,�5�5�5�
3�
3�
3�I�I�I�I�Irrhc�*�eZdZdZd�Zd�Zd�Zd�ZdS)�	Rot13Testz"Test the educational ROT-13 codec.c�\�tjdd��}|�|d��dS)NzCaesar liked ciphers�rot-13zPnrfne yvxrq pvcuref)rPrcr)r�
ciphertexts  rr?zRot13Test.test_encode�
s1���]�#9�8�D�D�
�����%;�<�<�<�<�<rc�\�tjdd��}|�|d��dS)Nz
Rg gh, Oehgr?r�z
Et tu, Brute?)rPrRr)r�	plaintexts  rrAzRot13Test.test_decode�
s/���M�/�8�<�<�	�����O�4�4�4�4�4rc��tjd����}|�d��}|�|d��dS)Nr�zABBA nag Cheryl BakerzNOON ant Purely Onxre)rPrbrcr)rr�r�s   rr�z!Rot13Test.test_incremental_encode�
sI��8�&�.�x�8�8�:�:���^�^�$;�<�<�
�����%<�=�=�=�=�=rc��tjd����}|�d��}|�|d��dS)Nr�zterra Ares envy thazgreen Nerf rail gun)rPrQrRr)rr|r�s   rr}z!Rot13Test.test_incremental_decode�
sI��8�&�.�x�8�8�:�:���N�N�#8�9�9�	�����$9�:�:�:�:�:rN)r)r*r+rJr?rAr�r}rrrr�r��
sV������,�,�=�=�=�5�5�5�>�>�>�
;�;�;�;�;rr�c��eZdZdZd�ZdS)�
Rot13UtilTestz�Test the ROT-13 codec via rot13 function,
    i.e. the user has done something like:
    $ echo "Hello World" | python -m encodings.rot_13
    c��ddlm}tjd��}tj��}|||��|�d��|���}|�|d��dS)Nr)rFz)Gb or, be abg gb or, gung vf gur dhrfgvbaz)To be, or not to be, that is the question)�encodings.rot_13rFr�r�r�rIr)rrF�infile�outfile�
plain_texts     r�test_rot13_funczRot13UtilTest.test_rot13_funcs���*�*�*�*�*�*���H�I�I���+�-�-��
��f�g�������Q�����\�\�^�^�
�����7�	9�	9�	9�	9�	9rN)r)r*r+rJr�rrrr�r�s-��������	9�	9�	9�	9�	9rr�c��eZdZdZd�Zd�ZdS)�CodecNameNormalizationTestzTest codec name normalizationc����d�d���fd�}tj|��|�tj|��|��tjd����|��tjd����|��tjd����|��tjd����|��tjd����|��tjd	����|��tjd
����|��tjd����|��tjd����|��tjd
����dS)N)rNr rsr�)NNNNc���|dkr�S�S)N�aaa_8r)rY�FOUND�	NOT_FOUNDs ��rr�zFCodecNameNormalizationTest.test_codecs_lookup.<locals>.search_functions����7�"�"��� � rr�zAAA-8zAAA---8zAAA   8u
aaaé€-8zAAA.8zAAA...8zBBB-8zBBB.8uaé€-8)rPr�rFr�rr�)rr�r�r�s  @@r�test_codecs_lookupz-CodecNameNormalizationTest.test_codecs_lookups�������,�	�	!�	!�	!�	!�	!�	!�	���(�(�(�����)�?�;�;�;������
�g� 6� 6�7�7�7������
�g� 6� 6�7�7�7������
�i� 8� 8�9�9�9������
�i� 8� 8�9�9�9������
�.?� @� @�A�A�A�����F�M�'�$:�$:�;�;�;�����F�M�)�$<�$<�=�=�=�����F�M�'�$:�$:�;�;�;�����F�M�'�$:�$:�;�;�;�����F�M�/�$B�$B�C�C�C�C�Crc��tj}|�|d��d��|�|d��d��|�|d��d��|�|d��d��|�|d��d��|�|d��d��dS)Nrvuutfé€􏿿-8zutf   8zUTF 8�UTF_8zutf.8zutf...8)r��normalize_encodingr)r�	normalizes  r�!test_encodings_normalize_encodingz<CodecNameNormalizationTest.test_encodings_normalize_encoding,s����0�	������7�+�+�W�5�5�5������#>�?�?��I�I�I������9�-�-�w�7�7�7�	
�����7�+�+�W�5�5�5������7�+�+�W�5�5�5������9�-�-�y�9�9�9�9�9rN)r)r*r+rJr�r�rrrr�r�s;������'�'�D�D�D�,
:�
:�
:�
:�
:rr��__main__)YrPr�r�r�r�r�rr�r�r�testr�test.supportrrr��ImportErrorrjr3�sizeof�c_wchar�SIZEOF_WCHAR_Trr:r�r<rLrf�TestCaser�rr0r8rZrqrxr�r�r�r�rr:r[rr%�reprr6rWrSr_r�r�rrrr�r�r�r�r|r�r�r�r�rr"r)r5rOr{rIrKrMr�r�r�r��platformr�r;rJrVr�rhr�r�r�r)�mainrrr�<module>r�sX��
�
�
�
���������	�	�	�	�
�
�
�
�
�
�
�
�
�
�
�
���������������������"�"�"�"�"�"�(�(�(�(�(�(�������������I�I�I������������������������3��M�M�M�
#�V�]�6�>�2�2�N�N��	����
�F��N�N�N��������$�$�$�(�����F����*-�-�-�-�-�-�-�-�DQ=�Q=�Q=�Q=�Q=�&�Q=�Q=�Q=�h
]>�]>�]>�]>�]>��(�+�]>�]>�]>�@+>�+>�+>�+>�+>�(�H�-�+>�+>�+>�\+>�+>�+>�+>�+>�(�H�-�+>�+>�+>�\`-�`-�`-�`-�`-��(�+�`-�`-�`-�F*'�*'�*'�*'�*'�(�H�-�*'�*'�*'�X*'�*'�*'�*'�*'�(�H�-�*'�*'�*'�X[H�[H�[H�[H�[H�x��*�[H�[H�[H�|CK�CK�CK�CK�CK�x��*�CK�CK�CK�L>�>�>�>�>�(�#�>�>�>�C�C�C�C�C�X�&�C�C�C� S-�S-�S-�S-�S-�(�H�-�S-�S-�S-�l<H�<H�<H�<H�<H�x�(�<H�<H�<H�@e�e�e��N
���A�
�s�1�v�v�q�y�y�
��d�d�1�g�g�����P�P�P�P�P�8�$�P�P�P�BV�V�V��rP�P�P�P�P�8�$�P�P�P�(Z6�Z6�Z6�Z6�Z6�H�%�Z6�Z6�Z6�z~)�~)�~)�~)�~)�x�(�~)�~)�~)�B+�+�+�+�+�x�(�+�+�+�2+�+�+�+�+�x�(�+�+�+�(+�+�+�+�+�X�.�+�+�+�*
0�
0�
0�
0�
0�h�'�
0�
0�
0�f�f�f��P�7�6�=�!�!�)�� � ��(�(�(�
�7�6�<� � �(�� � ��'�'�'�� ��
_R�_R�_R�_R�_R�x�(�*A�_R�_R�_R�Du
�u
�u
�u
�u
�(�#�u
�u
�u
�p1�1�1�1�1�8�$�1�1�1�&L�&L�&L�&L�&L��!�&L�&L�&L�RC
�C
�C
�C
�C
��(�"3�C
�C
�C
�JP
�P
�P
�P
�P
�8�X�%6�P
�P
�P
�fO�O�O�O�O�x�(�O�O�O�(2�2�2�2�2�(�+�2�2�2�D65�65�65�65�65�h��65�65�65�r�����y�)���E�E�E����i����6��K�K�K��$�$�\�2�2�2�',�f�o��l�#�#��	�����D�D�D�����
-��J�J�J��$�$�[�1�1�1�&+�W��k�"�"��	�	�	�	��D�	����CF�CF�CF�CF�CF��*�CF�CF�CF�\��(�(�(�S3�S3�S3�S3�S3�H�-�S3�S3�S3�n���S�\�W�,�9�;�;�XD�XD�XD�XD�XD�8�$�XD�XD�;�;�XD�v$+�$+�$+�$+�$+��!�$+�$+�$+�N"B�"B�"B�"B�"B��"�"B�"B�"B�JA,�A,�A,�A,�A,��)�A,�A,�A,�H���"�d�*�,K�L�L�nI�nI�nI�nI�nI�h�'�nI�nI�M�L�nI�b;�;�;�;�;��!�;�;�;�*9�9�9�9�9�H�%�9�9�9�"":�":�":�":�":��!2�":�":�":�J�z����H�M�O�O�O�O�O��sY�A�A
�A
�A�A �A �$A>�>	B
�	B
�<N�N'�&N'�+O�O�O

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists