
    z%i                       	 d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	Z	d dl
Z
d dlmZ d dlmZmZ d dlmZ 	 d dlZd Zd Z G d de      Z G d	 d
ej0                  ej2                  ej4                  e	j6                        Z G d de	j6                        Zedk(  r e	j>                          yy# e$ r dZY }w xY w)    N)warnings_helper)supportstring_tests)assert_python_failurec                 P    dd}dd}dd}dd}| dk(  r||d d fS | dk(  r||d d fS y )Nc                      yN*    inputerrorss     E/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/test/test_unicode.pydecode1z search_function.<locals>.decode1           c                      yr	   r   r   s     r   encode1z search_function.<locals>.encode1    r   r   c                      yN)r
   r
   r   r   s     r   encode2z search_function.<locals>.encode2"       r   c                      yr   r   r   s     r   decode2z search_function.<locals>.decode2$   r   r   test.unicode1test.unicode2)strictr   )encodingr   r   r   r   s        r   search_functionr      sG     $--	?	"$--r   c                 @    	 | j                         j                         S N)encodedecode)texts    r   duplicate_stringr%   -   s     ;;=!!r   c                       e Zd Zy)StrSubclassN__name__
__module____qualname__r   r   r   r'   r'   7   s    r   r'   c                   z    e Zd ZeZd Zd Zd Zd Zd Z	d Z
d Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z ej6                  ej:                  dkD  d      d        Zd Ze jB                  d        Z"d Z#d Z$d Z% fdZ& fdZ' fd Z( fd!Z) e jT                  d"      d#        Z+ fd$Z, fd%Z- fd&Z.d' Z/ fd(Z0d) Z1d* Z2e jB                   e jf                          ej6                  e4d+u d,      d-                      Z5d. Z6d/ Z7d0 Z8d1 Z9d2 Z:d3 Z; fd4Z<d5 Z=d6 Z> ej~                  ej:                  d7k(  d8      e jB                  d9               Z@d: ZAd; ZBd< ZCd= ZDd> ZEd? ZFd@ ZGdA ZHdB ZIdC ZJdD ZKdE ZLe jB                   ej6                  e4d+u d,      dF               ZMdG ZNdH ZO e j                  dIdJdK      dL        ZQdM ZRdN ZSdO ZTdP ZUdQ ZVdR ZWdS ZXdT ZYdU ZZdV Z[dW Z\dX Z]dY Z^dZ Z_d[ Z`d\ Zad] Zbd^ Zcd_ Zdd` Zeda Zfdb Zgdc Zh ej6                  ej:                  dkD  xs  eij                  dd      dek7  df      dg        Zke jB                  dh        Zldi Zmdj Zndk Zodl Zpe jB                   e jf                          ej6                  e4d+u d,      dm                      Zqdn Zrdo Zsdp Zt xZuS )qUnicodeTestc                 ~    t        j                  t               | j                  t         j                  t               y r!   )codecsregisterr   
addCleanup
unregisterselfs    r   setUpzUnicodeTest.setUpA   s"    ())?;r   c                 8   t        ||      } || }| j                  ||       | j                  t        |      t        |      u        ||u rN G d dt              } ||      }t        ||      } || }| j                  ||       | j                  ||u       y y )Nc                       e Zd Zd Zy))UnicodeTest.checkequalnofix.<locals>.usubc                 2    dt         j                  |       z  S )Nzusub(%r))str__repr__r3   s    r   r;   z2UnicodeTest.checkequalnofix.<locals>.usub.__repr__O   s    %T(:::r   Nr)   r*   r+   r;   r   r   r   usubr8   N   s    ;r   r=   )getattrassertEqual
assertTruetyper:   )r4   resultobject
methodnameargsmethod
realresultr=   s           r   checkequalnofixzUnicodeTest.checkequalnofixE   s    ,T]
V,Z(DL89 ;s ; &\FVZ0FJZ0OOF*45  r   c                    | j                  dd       | j                  dd       | j                  t        t        d       | j                  t        t        d       | j                  t        t        ddz         | j	                  dd       y )	N   ÿ   ￿z'\Ufffffffe'z'\Uffffffff'z'\U%08x'   z\u0020 )r?   assertRaisesSyntaxErrorevalassertNotEqualr3   s    r   test_literalszUnicodeTest.test_literalsW   so    *<0+t->?+t->?+t]X-EFIs+r   c           
         | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d	      d
       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       d}t        dj                  t        t        t        d                        }| j                  ||       | j                  t        d      t        d              G d d      }| j                  t        t         |              y )Nabc'abc'ab\c'ab\\c'ab\'ab\\'\c'\\c'\'\\'
'\n''\r'	'\t''\x08''"'\'"''"'""'"'a  '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff'    0  𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀𐀀￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿￿c                       e Zd Zd Zy))UnicodeTest.test_ascii.<locals>.WrongReprc                      yNs	   byte-reprr   r3   s    r   r;   z2UnicodeTest.test_ascii.<locals>.WrongRepr.__repr__       #r   Nr<   r   r   r   	WrongReprrp          $r   rt   )r?   asciijoinmapchrrangerN   	TypeErrorr4   
latin1reprtestreprrt   s       r   
test_asciizUnicodeTest.test_ascii`   s   uw/w5v
3uy1th/tg.tg.tg.ti0u|4u|4sY/sY/ 	 S%*!567:.BC!"EF	H	$ 	$ 	)UIK8r   c           
         | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d	      d
       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       d}t        dj                  t        t        t        d                        }| j                  ||       | j                  t        d      t        d              G d d      }| j                  t        t         |              y )NrT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   u%  '\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0¡¢£¤¥¦§¨©ª«¬\xad®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ'rl   rm   rn   c                       e Zd Zd Zy)(UnicodeTest.test_repr.<locals>.WrongReprc                      yrr   r   r3   s    r   r;   z1UnicodeTest.test_repr.<locals>.WrongRepr.__repr__   rs   r   Nr<   r   r   r   rt   r      ru   r   rt   )r?   reprrw   rx   ry   rz   rN   r{   r|   s       r   	test_reprzUnicodeTest.test_repr   s   eg.g4fz2ei0dX.dW-dW-dW-dY/el3el3cI.cI. 	 Cs 456:.AB !DE	G	$ 	$ 	)T9;7r   c                     dj                         }| j                  t        |      d       | j                  t        |      d       | j                  t        |      d       | j                  t        t        |       y )N	   ᄑ∢㌳u   ᄑu   ∢u   ㌳)__iter__r?   nextrN   StopIteration)r4   its     r   test_iteratorszUnicodeTest.test_iterators   s^    !**,b8,b8,b8,-r2r   c                     t        t        d            t        t        d            g}|D ]3  }| j                  |      5  | j                  t        |       d d d        5 y # 1 sw Y   @xY w)NrT   u   🚀)cls)rA   itersubTestrN   r{   )r4   casesr   s      r   test_iterators_invocationz%UnicodeTest.test_iterators_invocation   se    d5k"Df$67 	2C#& 2!!)S12 2	22 2s    A""A+	c           
          g d}|D ]G  }| j                  |      5  | j                  |dj                  t        |                   d d d        I y # 1 sw Y   TxY w)NrT   u   🚀🚀🚀r   )stringrl   )r   r?   rw   r   )r4   r   cases      r   test_iterationzUnicodeTest.test_iteration   s[    = 	<DT* <  rwwtDz':;< <	<< <s   +AA	c                     g d}|D ]N  }| j                  |      5  t        |      }t        |       | j                  t        t
        |       d d d        P y # 1 sw Y   [xY w)Nr   r   )r   r   tuplerN   r   r   )r4   r   r   iterators       r   test_exhausted_iteratorz#UnicodeTest.test_exhausted_iterator   sg    = 	AD4( A:h!!-x@A A	AA As   2AA"	c                    g d}|D ]  }| j                  |      5  t        t        j                  dz         D ]r  }t	        |      }| j                  |      5  dj                  t        j                  t        j                  ||                  }| j                  ||       d d d        t 	 d d d         y # 1 sw Y   xY w# 1 sw Y   xY w)Nr   r      )protorl   )	r   rz   pickleHIGHEST_PROTOCOLr   rw   loadsdumpsr?   )r4   r   r   r   r   pickleds         r   test_pickle_iteratorz UnicodeTest.test_pickle_iterator   s    = 	8D4( 8"6#:#:Q#>? 8EdBE2 8"$''&,,v||B7N*O"P((w78 888 8	88 88 8s$   =CAB:	$
C:C?CC	c                    t         j                  j                  |        | j                  dddd       | j                  dddd       | j                  dddd       | j                  dddd       | j                  dddd       | j                  ddddd       | j                  ddddd	       | j                  d
ddddd       | j                  dddddd	       | j	                  dddd       | j	                  dddd       | j	                  dddd       | j	                  dddd       | j	                  dddd       | j	                  dddd       | j	                  dddd       | j	                  dddd       | j	                  dddd       | j	                  dddd       | j	                  dddd       | j	                  dddd        G d dt
              }| j	                  d |d      dd       y )N   aaacountar   br   i   
   u   Ăaaaaaaaaaau   􀌄aaaaaaaaaau   􀌄ĂĂĂĂĂĂĂĂĂĂ   Ă
aaaaaaaaaa   􀌄u   ĂĂĂĂĂĂĂĂĂĂu   Ăa_a_a_a_a_a_a_a_a_a_a_u   􀌄a_a_a_a_a_a_a_a_a_a_u"   􀌄Ă_Ă_Ă_Ă_Ă_Ă_Ă_Ă_Ă_Ă_   Ă_   aĂ   a􀌄   Ă􀌄c                       e Zd Zy)%UnicodeTest.test_count.<locals>.MyStrNr(   r   r   r   MyStrr          r   r   )r   
CommonTest
test_countrH   
checkequalr:   )r4   r   s     r   r   zUnicodeTest.test_count   s   **40Q5Q5Qw5Qw5Qw5Qwb9Qwc:Qwa<Qwa=/#>3WcB8'8L8Wh78Wl;='<@0'4@4gtD97IN8Wi88Wm<='3EF	C 	5<#6r   c                    t         j                  j                  |        | j                  dddd       | j                  dddd       | j                  dddd       | j                  dddd       | j                  dd	dd
       | j                  dd	dd       | j                  dd	dd       | j	                  dddd       | j	                  ddddd       | j	                  ddddd       | j                  dddd       | j                  ddddd       | j                  dddddd       | j                  dddd       | j                  dddd       | j                  ddddd       | j                  dddddd       | j                  ddddd       | j                  dddddd       | j                  ddddd       | j                  dddd       | j                  t        dj                         | j                  t        dj                  d       | j                  dd dd!       | j                  dd"dd!       | j                  dd#dd       | j                  dd$dd       | j                  dd$dd
       | j                  dd%dd
       | j                  dd&dd'       | j                  dd(dd'       | j                  dd)dd*       | j                  dd$dd+       | j                  dd$dd,       | j                  dd%dd-       y ).Nd   uf   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaĂfindr   r      ȁ   Ġ   Ƞuh   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa􀌄r      􀈄   􂀄r   abcdefghiabcrT   	   r   def      тестu   тr   e   тест тест   ес   r      echellor
      ĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂar     􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄a  􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄Ădaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   ĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂ   ĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂa_r     􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄a_  􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄Ă_r   r   r   r   )r   r   	test_findr   rH   rN   r{   r   r3   s    r   r   zUnicodeTest.test_find   s   ))$/168D0&(C0&(C0&(C5v|L4flK4flKQ?QBRB 	:vt4:vtQ7Ja;J4.?.B.1E.B/AF/C/>)W\\2)W\\26163?5vsC:FHMIvx8Iv|<NFLA2FDA6E;VYOIvy9Iv}=NF4FGr   c                 |   t         j                  j                  |        | j                  dddd       | j                  dddd       | j                  dddd       | j                  dddd       | j                  dd	dd
       | j                  dd	dd       | j                  dd	dd       | j	                  dddd       | j	                  dddd       | j	                  dddd       | j                  dddd       | j                  ddddd       | j                  ddddd       | j                  dddd       | j                  dddd       | j                  ddddd       | j                  dddddd       | j                  ddddd       | j                  dddddd       | j                  ddddd       | j                  dddd       | j                  dddd       | j                  dddd       | j                  dd dd       | j                  dd!dd       | j                  dd!dd
       | j                  dd"dd
       | j                  dd#dd$       | j                  dd%dd$       | j                  dd&dd'       | j                  dd!dd(       | j                  dd!dd)       | j                  dd"dd*       y )+Nr   uf   Ăaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarfindr   r   r   r   r   uh   􀌄aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar   r   r   r   r   rT      rl   r   r   u   еr   r   r   r   r   r   r   r      aĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂr     a􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄  Ă􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄r   r      _aĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂĂ_a  _a􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄  _Ă􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄􀌄   _Ă   Ăa   􀌄a   􀌄Ă)r   r   
test_rfindr   rH   r3   s    r   r   zUnicodeTest.test_rfind"  s   **40/'8D07HE07HE07HE3WlK4g|L4g|LQ.'5AR.'2>R2>:w5:wa8Jq9J5.@.C.AF.C/&!QG/&!D/$?/#>3WcB8'8LIw9Iw=NG\B0'4@4gtD97INIw	:Iw>NG5GHr   c                 n   t         j                  j                  |        | j                  dddd       | j                  dddd       | j                  dddd       | j                  ddddd	       | j	                  t
        dj                  d
       | j	                  t
        dj                  dd	       | j	                  t
        dj                  dd       | j	                  t
        dj                  dd       | j                  dddd       | j                  dddd       | j                  dddd       | j	                  t
        dj                  d       | j	                  t
        dj                  d       | j	                  t
        dj                  d       | j                  dddd       | j                  dddd       | j                  dddd       | j	                  t
        dj                  d       | j	                  t
        dj                  d       | j	                  t
        dj                  d        y )!Nr   r   indexrl   r   r   rT   r   r   hibabcdefghiab	abcdefghighi   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   
test_indexrH   rN   
ValueErrorr   r   r3   s    r   r   zUnicodeTest.test_indexK  s   **40Q"=Q%@Q%@Q%C*n&:&:EB*m&9&9E1E*k&7&7%C*k&7&7%D17C@5wD:GXN*y&7&7B*y&7&7F*~&<&<lK2GTB6F;WiP*y&7&7C*y&7&7G*~&<&<>PQr   c                    t         j                  j                  |        | j                  dddd       | j                  dddd       | j                  dddd       | j                  d	dddd	d
       | j	                  t
        dj                  d       | j	                  t
        dj                  dd       | j	                  t
        dj                  dd	d
       | j	                  t
        dj                  dd	d       | j	                  t
        dj                  dd	d
       | j                  d	ddd       | j                  d	ddd       | j                  d	ddd       | j	                  t
        dj                  d       | j	                  t
        dj                  d       | j	                  t
        dj                  d       | j                  d	ddd       | j                  d	ddd       | j                  d	ddd       | j	                  t
        dj                  d       | j	                  t
        dj                  d       | j	                  t
        dj                  d        y )!Nr   r   rindexrl   r   r   r   rT   r   r   r   	defghiabcr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   test_rindexrH   rN   r   r   r   r3   s    r   r   zUnicodeTest.test_rindexc  s   ++D1RB?QEBQEBQE1bI*n&;&;eD*k&8&85!D*k&8&85!RH*k&8&85!QG*k&8&85!RH/3?3XsC8(HM*y&8&8(C*y&8&8,G*~&=&=|L0(DA4hE98YO*y&8&8)D*y&8&8-H*~&=&=?QRr   c                 4   | j                  dddt        d      d i       | j                  dddt        d      d t        d      t        d      i       | j                  dddt        d      d t        d      t        d      t        d	      d
i       | j                  d	ddt        d      d t        d      di       | j                  dddt        d      di       | j                  dddddi       | j                  j                  d dd      }| j                  ddd|       | j                  j                  ddd      }| j                  ddd|       | j	                  dj                  t        j                  dd            d       | j	                  dj                  t        j                  ddi            d       | j	                  dj                  t        j                  dd i            d       | j	                  dj                  t        j                  ddi            d       | j	                  dj                  t        j                  ddi            d       | j	                  d j                  t        j                  d d!d            d"       | j	                  d j                  t        j                  d dd            d#       | j	                  dj                  t        j                  dd$i            d%       | j	                  dj                  t        j                  ddi            d       | j	                  dj                  t        j                  dd i            d       | j	                  dj                  t        j                  dd!i            d&       | j	                  d'j                  t        j                  dd(i            d)       d*}d+D ]?  }t        j                  ||i      }d,|z  }| j                  t        |j
                  |       A | j                  t        | j                  j                         | j                  t        | j                  j                  dd-       | j                  t        | j                  j                  d.d/       | j                  t        | j                  j                  dd.       | j                  t        | j                  j                  dd/d.       | j                  t        | j                  j                  d0d.i       | j                  t        | j                  j                  d1d.i       | j                  t        d2j
                         | j                  t        dj
                  dd       y )3Nbbbcabababc	translater   iiicr   iiiixcxrl   xyyxxzxzyyz<i>r   r   z
<i><i><i>crT   xyzdxyzzyabdcdcbddddz[a]Xz[X][]XXXz[XXX]   éu   [é]axb123x123u   xéu   <é>u   [<é>]z[123]u   [aé]u   <€>u	   [<€>é]rL   u
   aé€􏿿z[%s]defgr   r   xy)r   r   )
rH   ord	type2test	maketransr?   r   r:   rN   r   r{   )r4   tblinvalid_charbeforemappingr$   s         r   test_maketrans_translatez$UnicodeTest.test_maketrans_translate}  s   VY!#h-	/VY!#hc#hCA	CVY!#hc#hC#c(CP	RS)[!#hc#h;	=VUK!#h-	/ 	Y	;!5\	+nn&&T'>?\9k3Gnn&&ueS9Wm[#F 	sC)@A	 Sz)BC	 T{)CD	U|)DE 	"V})EF!	#T7N)OP	!T7O)PQ 	" 	X)GH#	%++CMM63-,HI	 ++CMM64.,IJ	++CMM65/,JK 	",,S]]C;L-MN)	+ "- 	CFmmV\$:;GF?Dj$..'B	C 	)T^^%=%=>*dnn&>&>vN)T^^%=%=q%H)T^^%=%=uaH)T^^%=%=ueQO*dnn&>&>q	J)T^^%=%=ayI)W%6%67)Y%8%8%Gr   c           	      f   t         j                  j                  |        dD ]  \  }}|dz  }|dz  }dD ]y  }| j                  ||z   g||z   d|       | j                  ||g||z   |z   d|       | j                  ||z   g||z   d|dz         | j                  ||g||dz  z   |z   d|dz         {  y )Nba   āĀ   𐌁𐌀r   r   r      𐌂splitr   )r   r   
test_splitr   r4   leftrightdelims       r   r"  zUnicodeTest.test_split  s    **40 J 	MKD%AIDQJE6 M $ugu>u $uu 4guF $uguqyBu $uqy 05 8'5!8MM	Mr   c           	         t         j                  j                  |        dD ]  \  }}|dz  }|dz  }dD ]y  }| j                  ||z   g||z   d|       | j                  ||g||z   |z   d|       | j                  ||z   g||z   d|dz         | j                  ||g||dz  z   |z   d|dz         { | j                  ||z   g||z   dd         y )N)r  u   юёr  r  r   )r   u   ыr   r   rsplitr   )r   r   test_rsplitr   r#  s       r   r)  zUnicodeTest.test_rsplit  s    ++D1Q 	;KD%AIDQJE< N $uh?u $uu 4hG $uh	Cu $uqy 05 8(E1HNN OOTE\N!E\8T;	;r   c           	         t         j                  j                  |        | j                  dddd       dD ]  \  }}|dz  }|dz  }dD ]  }| j                  ||z   ddf||z   d|       | j                  |||f||z   |z   d|       | j                  ||z   ddf||z   d|d	z         | j                  ||d	z  |f||d	z  z   |z   d|d	z           y )
N)ABCDEFGHrl   rl   r+  	partition   䈀r  r   r  rl   r   )r   MixinStrUnicodeUserStringTesttest_partitionr   r#  s       r   r/  zUnicodeTest.test_partition  s   22AA$G,j+xPI 	RKD%AIDQJE6 Rr2 6 $uk5Bue 4 $uu 4k5Jr2 6 $uk519Fuqy% 8 $uqy 05 8+uqyRR	Rr   c           	         t         j                  j                  |        | j                  dddd       dD ]  \  }}|dz  }|dz  }dD ]  }| j                  dd||z   f||z   d|       | j                  |||f||z   |z   d|       | j                  dd||z   f||z   d|d	z         | j                  ||d	z  |f||d	z  z   |z   d|d	z           y )
N)rl   rl   r+  r+  
rpartitionr-  r  r   r  rl   r   )r   r.  test_rpartitionr   r#  s       r   r2  zUnicodeTest.test_rpartition  s	   22BB4H,j,QI 	SKD%AIDQJE6 SR 6 $ulECue 4 $uu 4lEKR 6 $ulEAIGuqy% 8 $uqy 05 8,PQ	SS	Sr   c           
         t         j                  j                  |         G d d      }| j                  dddg d       | j                  dddd       | j                  d	ddt        j                  d
             | j                  dddg d       | j                  dddg d       | j                  dddd       | j                  d	ddt        j                  d
             | j                  t        dddd |d      g       | j                  t        dddddt               g       | j                  t        ddg d       | j                  t        ddg d       y )Nc                       e Zd Zd Zd Zy)(UnicodeTest.test_join.<locals>.MyWrapperc                     || _         y r!   sval)r4   r8  s     r   __init__z1UnicodeTest.test_join.<locals>.MyWrapper.__init__  s    $dir   c                     | j                   S r!   r7  r3   s    r   __str__z0UnicodeTest.test_join.<locals>.MyWrapper.__str__  s    dii/r   Nr)   r*   r+   r9  r;  r   r   r   	MyWrapperr5    s    6/r   r=  za b c drM   rw   )r   r   r   r  abcdrl   zw x y zwxyz12foo3)r   r   r   )r@  rA  r   )r   r.  	test_joinrH   Sequencecheckraisesr{   bytes)r4   r=  s     r   rD  zUnicodeTest.test_join
  s0   22<<TB	0 	0
 	YV5IJVR1EFYV\5J5J65RSYV5IJYV5IJVR1EFYV\5J5J65RSC#sIe<L1MNC#sC1IJC;C?r   l        z*needs too much memory on a 64-bit platformc                     t        t        j                  dz        dz   }d|z  f|z  }| j                  t        dj
                  |       y )Ng      ?r   Arl   )intsysmaxsizerN   OverflowErrorrw   )r4   sizeseqs      r   test_join_overflowzUnicodeTest.test_join_overflow  sB     3;;#$q(Tzmd"-#6r   c           
         t         j                  j                  |        | j                  dddddd       | j	                  t
        dj                  dd       d	D ]  \  }}|d
z  }|d
z  }dD ]  }dD ]  }| j                  ||z   ||z   d||       | j                  ||z   |z   ||z   |z   d||       | j                  ||z   ||z   d|dz  |       | j                  ||z   |z   ||dz  z   |z   d|dz  |          y )Nzone@two!three!zone!two!three!replace!@r   rr
   r  r   r  )r  u   ău   𐌃r   )r   r   test_replacerH   rN   r{   rR  r   )r4   r$  r%  r&  repls        r   rV  zUnicodeTest.test_replace%  s;   ,,T2 	-/?CQTVWX)Y%6%6R@I 	@KD%AIDQJE6 @9 
@DOOD5L$(5L)UDJOOD4K%$7$(5L5$8$-ud< OOD5L$(5L)UQYNOOD4K%$7$(519$4u$<$-uqy$@
@@	@r   c                 P    d}d}| j                  |j                  ||      |       y )NrT   zabc def)assertIsrR  )r4   patternr$   s      r   test_replace_idzUnicodeTest.test_replace_id<  s%    dll7G4d;r   c                    d}d}| j                  t        |      t        |             | j                  t        |      t        |             | j                  t        |      t        |dz               | j                  t        |      t        |dz               | j                  t        |      t        |dz               | j                  t        |      t        d|z               | j                  t        |      t        |dz                G d dt              } |d	      }| j                  t        |      t        |             | j                  t        |      t        |dz               | j                  t        |      t        |dz               | j                  t        |      t        |dz               | j                  t        |      t        d|z               | j                  t        |      t        |dz               y )
Nz123abc1@z456zyx-+r   r   r   c                       e Zd Zy)5UnicodeTest.test_repeat_id_preserving.<locals>.SubStrNr(   r   r   r   SubStrr_  M  r   r   r`  zqwerty())r?   idrQ   r:   )r4   r   r   r`  ss        r   test_repeat_id_preservingz%UnicodeTest.test_repeat_id_preservingB  s   A1&BqE2a5)BqE2a"f:.BqE2a!e9-A1q5	*A1q5	*BqE2a!e9-	S 	 :A1&BqE2a"f:.BqE2a!e9-BqE2a!e9-BqE2a!e9-BqE2a!e9-r   c                 V   t        j                         5  t        j                  dt               | j                  ddk(  d       | j                  ddk7  d       | j                  dt        d      k(  d       | j                  dt        d      k7  d       d d d        y # 1 sw Y   y xY w)NignorerT      abcFT)r   check_warningswarningssimplefilterBytesWarningr?   	bytearrayr3   s    r   test_bytes_comparisonz!UnicodeTest.test_bytes_comparisonX  s    ++- 	?!!(L9Uf_e4Uf_d3Ui&77?Ui&77>	? 	? 	?s   BBB(c                       j                  dd        j                  ddkD          j                  ddk         	  j                  ddk         y )NrT   r>  u   u   )r?   r@   )r4   
test_fixup
test_lecmps   `@@r   test_comparisonzUnicodeTest.test_comparison`  sJ    &''f 	78r   c                 8   t         |           | j                  ddd       | j                  dj	                                | j                  dj	                                | j                  dj	                                | j                  dj	                                | j                  dj	                                | j                  d	j	                                | j                  d
j	                                | j                  dj	                                y )NF   ῼislower   Ⅷ   ⅷ   𐐁   𐐧   𐐩   𐑎   🐍   👯)supertest_islowerrH   assertFalsers  r@   r4   	__class__s    r   r}  zUnicodeTest.test_islower  s    UHi8))+,((*+--/0--/0,,./,,./--/0--/0r   c                 8   t         |           | j                  ddd       | j                  dj	                                | j                  dj	                                | j                  dj	                                | j                  dj	                                | j                  dj	                                | j                  d	j	                                | j                  d
j	                                | j                  dj	                                y )NFrr  isupperrt  ru  rv  rw  rx  ry  rz  r{  )r|  test_isupperrH   r@   r  r~  r  s    r   r  zUnicodeTest.test_isupper  s    UHi8((*+))+,,,./,,./--/0--/0--/0--/0r   c                 V   t         |           | j                  ddd       | j                  ddd       | j                  dj	                                | j                  dj	                                dD ]1  }| j                  |j	                         dj                  |             3 y )	NTrr  istitleu   Greek ῼitlecases ...u   𐐁𐐩u   𐐧𐑎)rx  ry  rz  r{  z{!a} is not title)r|  test_istitlerH   r@   r  r~  formatr4   chr  s     r   r  zUnicodeTest.test_istitle  s    T8Y7T#>	J 	.6689.6689J 	KBRZZ\+>+E+Eb+IJ	Kr   c                     t         |           | j                  ddd       | j                  ddd       | j                  ddd       dD ]1  }| j                  |j	                         dj                  |             3 y )	NTu    isspaceu    Fu   —rv  rw  rx  ry  rz  r{  z{!a} is not space.)r|  test_isspacerH   r~  r  r  r  s     r   r  zUnicodeTest.test_isspace  sy    T8Y7T8Y7UHi8/ 	LBRZZ\+?+F+Fr+JK	Lr   cpuc                    t        t        j                  dz         D ]`  }t        |      }t	        j
                  |      }t	        j                  |      }| j                  |j                         |dv xs |dk(         b y )Nr   )WSBSZs)	rz   rK  
maxunicodery   unicodedatabidirectionalcategoryr?   r  )r4   	codepointcharr  r  s        r   test_isspace_invariantz"UnicodeTest.test_isspace_invariant  st    s~~12 	4Iy>D'55d;M"++D1HT\\^+/?? 2!)T!14		4r   c                     t         |           dD ]1  }| j                  |j                         dj	                  |             3 y )N)rv  rw  rx  ry     𝟶   𑁦   𐒠   🄇z{!a} is alnum.)r|  test_isalnumr@   isalnumr  r  s     r   r  zUnicodeTest.test_isalnum  sB    K 	GBOOBJJL*:*A*A"*EF	Gr   c                    t         |           | j                  ddd       | j                  dj	                                | j                  dj	                                | j                  dj	                                | j                  dj	                                | j                  dj	                                | j                  d	j	                                y )
NTrr  isalpharv  rw  rx  ry  rz  r{  )r|  test_isalpharH   r@   r  r~  r  s    r   r  zUnicodeTest.test_isalpha  s    T8Y7,,./,,./,,./,,./--/0--/0r   c                     t         |           | j                  dj                                | j                  dj                                y )N   €   􏿿)r|  test_isasciir~  isasciir  s    r   r  zUnicodeTest.test_isascii  s<    ))+,--/0r   c                 <   | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       | j                  dd	d       | j                  dd
d       | j                  ddd       | j                  t        ddd       dD ]1  }| j                  |j	                         dj                  |             3 dD ]1  }| j                  |j	                         dj                  |             3 y )NFrl   	isdecimalr   T0   ①   ¼   ٠
01234567890123456789arT   r
   )rv  rw  rx  ry  rz  r{     𑁥r  z{!a} is not decimal.)r  r  r  z{!a} is decimal.)rH   rF  r{   r~  r  r  r@   r4   r  s     r   test_isdecimalzUnicodeTest.test_isdecimal  s   UB4UC5T34UHk:UFK8T8[9T<=UM;?E;;K 	PBR\\^-C-J-J2-NO	P = 	KBOOBLLN,>,E,Eb,IJ	Kr   c                 l   t         |           | j                  ddd       | j                  ddd       | j                  ddd       dD ]1  }| j                  |j	                         dj                  |             3 d	D ]1  }| j                  |j	                         d
j                  |             3 y )NTr  isdigitFr  r  )rv  rw  rx  ry  rz  r{  r  z{!a} is not a digit.)r  r  r  r  z{!a} is a digit.)r|  test_isdigitrH   r~  r  r  r@   r  s     r   r  zUnicodeTest.test_isdigit  s    T8Y7UFI6T8Y7= 	NBRZZ\+A+H+H+LM	N K 	IBOOBJJL*<*C*CB*GH	Ir   c                 N   | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       | j                  dd	d       | j                  dd
d       | j                  ddd       | j                  t        dj                  d       dD ]1  }| j	                  |j                         dj                  |             3 dD ]1  }| j                  |j                         dj                  |             3 y )NFrl   	isnumericr   Tr  r  r  r  r  r  rT   r
   r  z{!a} is not numeric.)r  r  r  r  r  z{!a} is numeric.)rH   rN   r{   r  r~  r  r@   r  s     r   test_isnumericzUnicodeTest.test_isnumeric  s   UB4UC5T34T8[9T6;7T8[9T<=UM;?)U__b9/ 	PBR\\^-C-J-J2-NO	P/ 	KBOOBLLN,>,E,Eb,IJ	Kr   c                    | j                  dj                                | j                  dj                                | j                  dj                                | j                  dj                                | j                  dj                                | j                  dj                                | j                  dj                                | j                  dj                                | j                  d	j                                | j                  d
j                                | j                  dj                                | j                  dj                                y )Nr   Z_b0bcb_   µu   𝔘𝔫𝔦𝔠𝔬𝔡𝔢rM   [   ©r  )r@   isidentifierr~  r3   s    r   test_isidentifierzUnicodeTest.test_isidentifier!  s   ((*+((*+((*+))+,))+,))+,))+,6CCEF))+,))+,**,-))+,r   Nzneed _testcapi modulec                 0   d}| j                  |j                                t        j                         5  t	        j
                  dt               | j                  t        j                  |      j                                d d d        y # 1 sw Y   y xY w)Nu   𝖀𝖓𝖎𝖈𝖔𝖉𝖊re  )	r@   r  r   rg  rh  ri  DeprecationWarning	_testcapiunicode_legacy_string)r4   us     r   test_isidentifier_legacyz$UnicodeTest.test_isidentifier_legacy0  sr     +()++- 	O!!(,>?OOI;;A>KKMN	O 	O 	Os   ABBc                 2   | j                  dj                                | j                  dj                                | j                  dj                                | j                  dj                                | j                  dj                                | j                  dj                                | j                  dj                                | j                  dj                                | j                  d	j                                y )
Nrl   rM   abcdefgzabcdefg
   ʹ   ͸   r{  u   󠀠)r@   isprintabler~  r3   s    r   test_isprintablezUnicodeTest.test_isprintable:  s    ())*	--/00023,,./--/0--/000231134r   c           	         dD ]_  }| j                  |j                                | j                  |j                                | j                  |j	                                a dD ]_  }| j                  |j                                | j                  |j                                | j                  |j	                                a dD ]7  }t        t        |      }dD ]   }| j                   ||      |d|d       " 9 dD ]7  }t        t        |      }dD ]   }| j                   ||      |d|d       " 9 y )	N)   ab   ab	   aba	   aba)u   ABu   ABu	   ABAu	   ABA)rs  r  r  )r           .z() is False)r  r  r  r  r  r  r  r  )r  r  r  r  r  r  r  r  )r@   rs  r~  r  r  r>   r:   )r4   rb  	meth_namemeths       r   test_surrogateszUnicodeTest.test_surrogatesI  s.   8 	*AOOAIIK(QYY[)QYY[)		*
8 	)AQYY[)OOAIIK(OOAIIK(		) ; 	OI3	*DI O  a9*MNO	O
9 	OI 3	*D< O   a9*MNO		Or   c                    t         j                  j                  |        | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d       | j                  d	j	                         d
       | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d       y )Nrw     𐑏   𐐧𐐧   𐑏𐑏   𐐧𐑏
   X𐐧x𐑏u
   x𐑏x𐑏   ﬁ   İ   i̇   Σ   σ   ͅΣu   ͅσ   AͅΣu   aͅς   AͅΣau   aͅσa   AΣͅu   aςͅ   Σͅ u   σͅ    򏿾ru  )r   r   
test_lowerr?   lowerr3   s    r   r  zUnicodeTest.test_lowerd  s   **40++-|</557/	1/557/	117791	3.)>:)84--/@..0/B)//13CD..0/B..0/B..0/B++-|<)84r   c                    | j                  dj                         d       | j                  dj                         d       | j                  dj                         d       | j                  dj                         d       | j                  dj                         d       | j                  d	j                         d
       | j                  dj                         d       y )Nr   hELlo   ßssr  fir  r  r  u   aισr  u   μ)r?   casefoldr3   s    r   test_casefoldzUnicodeTest.test_casefoldz  s    ))+W5))+W5$/)40**,h7113_E**,h7r   c                    t         j                  j                  |        | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d	       | j                  d
j	                         d
       | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d       y )Nr  rw  r  r  r  r  u
   X𐐧X𐐧r  FIr  r  r  SS   ῒ   Ϊ̀r  ru  rt  )r   r   
test_upperr?   upperr3   s    r   r  zUnicodeTest.test_upper  s(   **40++-|</557/	1/557/	117791	3-)84)84t,)+?@++-|<)84r   c                    t         j                  j                  |        | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d	       d
}| j                  dj	                         |       | j                  dj	                         d       | j                  dj	                         d       y )Nr  rw  r  r     𐑏𐐧r  u
   X𐑏x𐑏u   hİu   Hi̇u	   Ϊ̀i̇u   ῒİu   ﬁnnishFinnishr  u   Aͅς)r   r   test_capitalizer?   
capitalize)r4   exps     r   r  zUnicodeTest.test_capitalize  s   //5002LA/::</	1/::</	1/::</	11<<>1	3--/A.224c:..0)<335Gr   c                 b   t         |           | j                  dj                         d       | j                  dj                         d       | j                  dj                         d       | j                  dj                         d       | j                  dj                         d       | j                  dj                         d	       | j                  d
j                         d       | j                  dj                         d       | j                  dj                         d       y )Nr  rw  r  r  u   𐑏𐑏 𐑏𐑏u   𐐧𐑏 𐐧𐑏u   𐑏𐐧 𐑏𐐧u   X𐐧x𐑏 X𐐧x𐑏u   X𐑏x𐑏 X𐑏x𐑏u   ﬁNNISHr  u	   AΣ ᾡxyu	   Aς ᾩxyu   AΣAu   Aσa)r|  
test_titler?   titler  s    r   r  zUnicodeTest.test_title  s	   ++-|</557/	1DJJLD	FDJJLD	FDJJLD	FHNNPH	J))+Y7+1135GH))+Z8r   c                    t         j                  j                  |        | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d       | j                  d	j	                         d
       | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d       | j                  dj	                         d       y )Nr  rw  r  r  r  r  r  u
   x𐑏X𐐧r  r  r  r  r  r  r  u   Ισr  u   aΙςr  u   aΙσAr  u   aςΙr  u   σΙ r  r  r  r  )r   r   test_swapcaser?   swapcaser3   s    r   r
  zUnicodeTest.test_swapcase  s   --d3..0,?..0,?/88:/	1/88:/	1/88:/	11::<1	3)40**,n=**,h7002NC113_E)2246FG113_E113_E113_E**,h7$/**,.BCr   c                    t         j                  j                  |        | j                  dj	                  dd      d       | j                  dj	                  dd      d       | j                  dj	                  dd      d       y )	Nr   r   r  u   x􏿿r   u	   􏿿x􏿿r   u   􏿿x􏿿􏿿)r   r   test_centerr?   centerr3   s    r   r  zUnicodeTest.test_center  sp    ++D1A|4&	(A|40	2A|4:	<r   izrequires 32-bit systemc                     d}	 d|z  }	 | j                  t        j                         ~y # t         $ r | j                  d|dz  z         Y Ew xY w# ~w xY w)NiVUU   üz$no enough memory (%.0f MiB required)i   )MemoryErrorskipTestrN   rM  r  )r4   rN  rb  s      r   test_case_operation_overflowz(UnicodeTest.test_case_operation_overflow  sc     	StA	mQWW5  	SMM@D5LQR	S
 s   ,  A  AAAc                    | 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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d       | j                  dd       | j                  dd       | j                  dd       | j                  dd       | j                  dd       | j                  dd       | j                  t        dj                         dD ]e  }|dz  }dD ]Y  }| j                  ||       | j                  |||z          | j                  |dz  |       | j                  |dz  ||dz  z          [ g y )Nr   abdbbdabbdababdbabdb)r   r   N)r   Nr   )r   r   y)r   r   Nr>  abcxxxxabrT   )r   Nr  rl    z abczabc asdfasd)r      Āu   𐌀r   r  r   )assertInassertNotInrN   r{   __contains__)r4   fillr&  s      r   test_containszUnicodeTest.test_contains  s
   c6"c6"c7#c6"e$c6"c<(c<(c<(c<(k*l++dF#dE"dM*b% b"b% u%dG$dG$c7#ff%'$)U%7%781 	;DAID6 ;  -eTE\2  D1eai	)9:	;	;r   c                 0   dj                          dj                          dj                          dj                          dj	                          dj                          dj                  dd       dj                  dd       dj                  dd       y )Nu   𐀀􀀀   􀀀r      𐀀)	r  r  r  r  r  r  r  ljustrjustr3   s    r   test_issue18183zUnicodeTest.test_issue18183  sz    $$&'')$$&))+$$&'')A|,1l+1l+r   c                 5   | j                  dj                         d       | j                  dj                         d       | j                  dj                         d       | j                  dj                         d       | j                  dj                         d       | j                  dj                         d	       | j                  d
j                         d       | j                  dj                         d       dd l}| j                  dj                  d      d       | j                  dj                  t        d            d       | j                  dj                  d      d       |j	                  ddd      }| j                  dj                  |      d        G d d      } G d d      } G d d       } G d! d"      } G d# d$      } G d% d&|j                        } G d' d(t
              }	 G d) d*      }
 G d+ d,      }| j                  dj                         d       | j                  d-j                         d-       | j                  d.j                  d-      d-       | j                  d/j                  d-      d-       | j                  d0j                  d-      d1       | j                  d2j                  d-      d3       | j                  d4j                  d-      d5       | j                  d6j                  d7d-      d-       | j                  d8j                  d7d-      d1       | j                  d9j                  d7d-      d3       | j                  d:j                  d7d-      d5       | j                  d.j                  d;      d<       | j                  d=j                  d;d-      d>       | j                  d?j                  d;d-      d@       | j                  dAj                         dB       | j                  dCj                         dD       | j                  dEj                         dF       | j                  dGj                         dH       | j                  dIj                  dJ      dK       | j                  dLj                         dM       | j                  dNj                         dO       | j                  dPj                         dQ       | j                  dRj                  dSdTi      dT       | j                  dUj                  dVdTi      dT       | j                  dWj                  dXdYi      dZ       | j                  d[j                   |d\      ]      d^       | j                  d_j                   |d`       |d\            da       | j                  dbj                   | |d-                  d-       | j                  dcj                  d-ddg      d-       | j                  dej                  d-ddg      dd       | j                  dfj                  d-ddgg      dd       | j                  dgj                  d- |dd      gg      dd       | j                  dhj                  d-      d-       | j                  dhj                  d      d       | j                  dhj                  di      d-       | j                  djj                  di      d       | j                  dkj                  d-      d-       | j                  dlj                  d-      d-       | j                  dmj                  d-      d       | j                  dnj                  d-      do       | j                  dpj                  dq      dq       | j                  drj                  dq      dq       | j                  dsj                  dq      dq       | j                  dtj                  dq      du       | j                  dvj                  dq      dw       | j                  dxj                  dq      dy       | j                  dzj                  dq      dy       | j                  d{j                  dq      d|       | j                  d}j                  dq      d~       | j                  dj                  dq      d       | j                  dj                  dq      d       | j                  dj                  dq      d       | j                  dj                  dq      d       | j                  dj                  dq      dq       | j                  dj                  dq      d       | j                  dj                  dq      d       | j                  dj                  dq      d       | j                  dj                  dq      d       | j                  dj                  d      ddXdz  z          | j                  dj                  d      dXdz         | j                  dj                  d      dXdz         | j                  dj                  d      d       | j                  dj                  d      d       | j                  dj                  d      d       | j                  dj                  d      d       | j                  dj                  dY      d       | j                  dj                  dY      d       | j                  dj                  dY      d       | j                  dj                  dY      d       | j                  dj                  d      d       | j                  dj                  d      d       | j                  dj                  d      d       | j                  dj                  d      d       | j                  dj                  d      d       | j                  dj                  d      d       | j                  dj                  d      d       | j                  dj                  d      d       | j                  dj                   |             d-       | j                  dj                  d      d       | j                  dj                  d      d       | j                  dj                  d      d       | j                  dj                  d      d       | j                  dj                  d      d       | j                  dj                  d      d       | j                  dj                   |d            d       | j                  dj                  d      d       | j                  dj                  d      d«       | j                  dj                   |d            dë       | j                  dj                  d      d       | j                  dj                  d      d       | j                  dj                  d      dū       | j                  dj                  d      d       | j                  dj                   |d            d       | j                  dj                   |d            dǫ       | j                  d.j                  i       dF       | j                  d.j                  g       dȫ       | j                  d.j                  d7g      dɫ       | j                  dj                   |d˫            d̫       | j                  dj                   |d˫            dͫ       | j                  t        dj                   |d˫             | j                  t        dj                   |d˫             | j                  t        dj                   |d˫             | j                  dj                   |dddѬҫ            dӫ       | j                  d.j                   |	d`            d^       | j                  d/j                  d      d       | j                  dj                  dd֫      d׫       | j                  dj                  dd֫      d׫       | j                  dj                  dd֬ګ      d׫       | j                  dj                  dd`d֬ܫ      dݫ       | j                  dj                  ddd߬ܫ      dݫ       | j                  t        dBj                         | j                  t        dDj                         | j                  t        dj                         | j                  t        dj                         | j                  t        dj                         | j                  t        dj                         | j                  t        d.j                         | j                  t        d6j                  d-       | j                  t        dHj                         | j                  t        dOj                         | j                  t        dj                         | j                  t        dj                         | j                  t        dj                         | j                  t        dj                  d       | j                  t        dj                         | j                  t        dj                  g        | j                  t        dj                         | j                  t        dj                  d       | j                  t        dj                  d       | j                  t        dj                  d       | j                  t        dj                  d       | j                  t        dj                         | j                  t        dj                  d       | j                  t        dj                  d       | j                  t        dj                  dY       | j                  t        dj                  dY       | j                  t        dj                  d       | j                  t        dj                  d       | j                  t        dj                         | j                  t        dj                         | j                  t        dj                         | j                  t        dFj                         d}| j                  t        dB|z   dDz   j                         | j                  t        d|z   dz   j                  dg       | j                  t        dj                  d       | j                  t        dj                  d       | j                  t        dj                  d       | j                  t        dj                  d       | j                  t        dj                  d       | j                  t        dj                  d       | j                  t        dj                  d       | j                  t        dj                  d       | j                  t        dj                  d       | j                  t        dj                  d       | j                  t        dj                  d       | j                  t        dj                  d       | j                  t        d j                  d g       | j                  t        dj                  d g       | j                  t        dj                  dd       | j                  t        dj                  d-dd       | j                  t        dj                  dd7ddYdd֐d	d

       d}| j                  t        |dj                  d       | j                  t        |t        dd       d}| j                  t        |dj                  d       | j                  t        dj                  d       | j                  t        t        dd       | j                  t        t        dd       | j                  dj                  dd      d       | j                  dhj                  d      d       | j                  djj                  d      d       | j                  dj                  dFdi      d߫       | j                  dj                  dFdi      d       | j                  dj                  dBdi      d       | j                  dj                  dDdi      d       | j                  dj                  ddi      d       | j                  dj                  ddi      d       | j                  t        dj                  d       | j                  t        d j                  d       | j                  t        d!j                  d       | j                  d"j                  dd#      d$        |
d˫      }| j                  d%j                  |      d&       | j                  t        d'j                  |       | j                  t        dFj                  |        |d˫      }| j                  d%j                  |      d(       | j                  d'j                  |      d(       | j                  t        dFj                  |       y ()  Nrl   r   r  a{{a{a}}a}{{b{b}}b}ba{{ba{br   zMy name is {0}FredzMy name is FredzMy name is {0[name]})namezMy name is {0} :-{{}}zMy name is Fred :-{}i  r      zThe year is {0.year}zThe year is 2007c                       e Zd ZddZd Zy)"UnicodeTest.test_format.<locals>.Cc                     || _         y r!   _xr4   r   s     r   r9  z+UnicodeTest.test_format.<locals>.C.__init__1  	    r   c                     |S r!   r   r4   specs     r   
__format__z-UnicodeTest.test_format.<locals>.C.__format__3      r   Nr   r)   r*   r+   r9  rD  r   r   r   Cr;  0      r   rH  c                       e Zd Zd Zd Zy)"UnicodeTest.test_format.<locals>.Dc                     || _         y r!   r   r?  s     r   r9  z+UnicodeTest.test_format.<locals>.D.__init__7  	    r   c                 ,    t        | j                        S r!   )r:   r   rB  s     r   rD  z-UnicodeTest.test_format.<locals>.D.__format__9  s    466{"r   NrG  r   r   r   DrK  6  s    #r   rP  c                       e Zd Zd Zd Zy)"UnicodeTest.test_format.<locals>.Ec                     || _         y r!   rM  r?  s     r   r9  z+UnicodeTest.test_format.<locals>.E.__init__>  rN  r   c                 &    d| j                   z   dz   S )NzE()rM  r3   s    r   r;  z*UnicodeTest.test_format.<locals>.E.__str__@      dff}s**r   Nr<  r   r   r   ErR  =      +r   rW  c                       e Zd Zd Zd Zy)"UnicodeTest.test_format.<locals>.Fc                     || _         y r!   rM  r?  s     r   r9  z+UnicodeTest.test_format.<locals>.F.__init__E  rN  r   c                 &    d| j                   z   dz   S )NzF(rU  rM  r3   s    r   r;   z+UnicodeTest.test_format.<locals>.F.__repr__G  rV  r   N)r)   r*   r+   r9  r;   r   r   r   FrZ  D  rX  r   r]  c                       e Zd Zd Zd Zd Zy)"UnicodeTest.test_format.<locals>.Gc                     || _         y r!   rM  r?  s     r   r9  z+UnicodeTest.test_format.<locals>.G.__init__L  rN  r   c                      d| j                   z   S )Nz
string is rM  r3   s    r   r;  z*UnicodeTest.test_format.<locals>.G.__str__N  s    #dff,,r   c                 \    |dk(  rd| j                   z   dz   S t        j                  | |      S )Nr  zG(rU  )r   rC   rD  r4   format_specs     r   rD  z-UnicodeTest.test_format.<locals>.G.__format__P  s0    #%$&&=3..(({;;r   N)r)   r*   r+   r9  r;  rD  r   r   r   Gr_  K  s    -<r   re  c                       e Zd Zd Zy)"UnicodeTest.test_format.<locals>.Ic                 $    | j                  |      S r!   )strftimerc  s     r   rD  z-UnicodeTest.test_format.<locals>.I.__format__V  s    }}[11r   Nr)   r*   r+   rD  r   r   r   Irg  U  s    2r   rk  c                       e Zd Zd Zy)"UnicodeTest.test_format.<locals>.Jc                 4    t         j                  | dz  |      S Nr   )rJ  rD  rc  s     r   rD  z-UnicodeTest.test_format.<locals>.J.__format__Z  s    ~~dQh<<r   Nrj  r   r   r   Jrm  Y  s    =r   rp  c                       e Zd Zd Zd ZdZy)"UnicodeTest.test_format.<locals>.Mc                     || _         y r!   rM  r?  s     r   r9  z+UnicodeTest.test_format.<locals>.M.__init__^  rN  r   c                 &    d| j                   z   dz   S )NzM(rU  rM  r3   s    r   r;   z+UnicodeTest.test_format.<locals>.M.__repr__`  rV  r   N)r)   r*   r+   r9  r;   r;  r   r   r   Mrr  ]  s    +Gr   ru  c                       e Zd Zd Zd ZdZy)"UnicodeTest.test_format.<locals>.Nc                     || _         y r!   rM  r?  s     r   r9  z+UnicodeTest.test_format.<locals>.N.__init__e  rN  r   c                 &    d| j                   z   dz   S )NzN(rU  rM  r3   s    r   r;   z+UnicodeTest.test_format.<locals>.N.__repr__g  rV  r   N)r)   r*   r+   r9  r;   rD  r   r   r   Nrw  d  s    +Jr   rz  rT   {0}z{0:}zX{0}Xabcz{0}XabcXzX{0}YXabcYz{1}r   zX{1}z{1}XzX{1}Yiz-15z{0}{1}z-15abcz{0}X{1}z-15Xabcz{{{z}}}z{{}}{}z{{x}}z{x}z{{{0}}}{   z{123}z	{{{{0}}}}z{{0}}z}}{{z}{z}}x{{z}x{z{0[foo-bar]}zfoo-barbazz{0[foo bar]}zfoo barz{0[ ]}rM   r   rC  {foo._x}   )rB  20z{1}{0}r   2010z{0._x.x}z{0[0]}r   z{0[1]}z	{0[1][0]}z{0[1][0].x}z{0:.3s}abcdefz{0:.0s}z{0:3.3s}z{0:2.3s}z{0:2.2s}z{0:3.2s}zab z{0:x<0s}rB   z{0:x<5s}z{0:x<6s}z{0:x<7s}resultxz{0:x<8s}resultxxz{0: <7s}zresult z{0:<7s}z{0:>7s}z resultz{0:>8s}z  resultz{0:^8s}z result z{0:^9s}z	 result  z{0:^10s}z
  result  z{0:8s}zresult  z{0:0s}z{0:08s}result00z{0:<08s}z{0:>08s}00resultz{0:^08s}0result0z	{0:10000}i'  i'  z{0:10000000}i z{0: <6s}rB  zfoo   z{0:<6s}zfooz{0: ^6s}z foo  z{0:^6s}z foo  z{0: <6}z3     z{0:<6}z3z{0: ^6}z  3   z{0:<6}z3     Q	@z3.14  z3.14z 3.14 z{0:^6}z 3.14 z{0: <12}y      @       @z(3+2j)      z{0:<12}z(3+2j)z{0: ^12}z   (3+2j)   z{0:^12}z   (3+2j)   z{0:abc}z{0!s}Helloz{0!s:}z{0!s:15}zHello          z	{0!s:15s}z{0!r}z'Hello'z{0!r:}zF(Hello)r  z'\u0378'r  u   'ʹ'u   F(ʹ)z{0!a}z'\u0374'z{0!a:}z	F(\u0374)r
  z[1]z{0:d}datazG(data)zstring is dataz{0:^10}z{0:>15s}z{0:date: %Y-%m-%d}   )yearmonthdayzdate: 2007-08-27z{0:.{1}}hello world   r   z	{0:.{1}s}z{0:.{precision}s})	precisionz{0:{width}.{precision}s})widthr  z
hello     105{a}azabc{0:{}z{0z{0.}z{0[}z{0]}z{0.[]}z{0..foo}z{0[0}z	{0[0:foo}z{c]}z	{{ {{{0}}z{0}}z{foo})barz{0!x}z{0!}z{0!rs}z{!}z{:}z{:s},23098475029384702983476098230754973209482573z{[z]}z{0:x}              ?      ?z{0:X}z{0:o}z{0:u}z{0:i}z{0[0]x}z
{0[0](10)}z{0[{1}]}r  r   z{0:{1:{2}}}rb  z{0:{1:{2:{3:{4:{5:{6}}}}}}}r   r   r   z+Sign not allowed in string format specifierz{0:-s}-z,Space not allowed in string format specifierz{: }z{0:=s}#z#20z
{0:s}{1:s}ABCu   АБВu	   ABCАБВz{[{}]}z{[{]}z{[}]}z{[[]}r  z{[!]}rS  z{a{}b}r
   z{a{b}z{[}z0x{:0{:d}X}   0x0000000000000000{!r}zM(data)z{!s}zN(data))r?   r  datetimedictdaterJ  rN   r{   r   
IndexErrorKeyErrorassertRaisesRegex)r4   r  r  rH  rP  rW  r]  re  rk  rp  ru  rz  bigsign_msg	space_msgmns                    r   test_formatzUnicodeTest.test_format  s   b)s+-....%0 	)008:KL/66t7HI*	,077?/	1 MM$2&/66q9+	-	 		# 	#	+ 	+	+ 	+	< 	<	2 	2	= 	=	 		 	 	b)/e,e4u-u5u-v6u-v6.8a/7q%0&9q%0&9517;c*E2e4h?))#u5yA,,$/)51))#.8++-w7$/)51 	..	%/@A5I..	%/@A5I#a137**qu*5t<2"6?**1QuX;7?%8%@%8%@++UUG,<=uE--uqxj.ABEJ 	))%0%8))$/6))(3U;))(3R8**5159**5159**5148**5159**84h?**84h?**84h?**84i@**84jA**84i@))(3Y?))(3Y?))(3Z@))(3Z@))(3[A**84lC2J?2H=))(3Z@**84jA**84jA**84jA++C0#d
2BC++B/u=..r2C(NC 	--e46GH--e46GH--e46GH))%0(;,,Q/1HI,,Q/1HI,,Q/1HI+X6,,T2NC,,T2NC,,T2NC.9--f57WX--f57WX--f57WX))&1>B 	))!#.6 	0':17;**735FG++G46GH0)<19='
3Z@1;?1:>(4kB0)<1;?1;?19='
3Z@(4lC 	b)40b)40qc*E2&	2I>&	24DE)Y%5%5qyA)Z%6%6&	B)Z%6%6&	B-44QD=>;=6? @ ,	- 	ae,d3 	s+S1 	**=!<gF++M1=wG,33MQ3OQXY3::=PR^_:`bno3::=PT`c:dfrs 	*cjj1*cjj1*dkk2*dkk2*dkk2*dkk2*ell3*ellE:(ell3*dkk2*j&7&78*dkk2*fmm4*fmmQ7*fmm4*fmmR8(fmm4*hooq9*j&7&7;*gnna8*k&8&8!<(fmm4*k&8&8!<*fmmQ7(gnn!<*gnna8*fmmQ7*hooq9*ell3*ell3*fmm4*dkk2<*sSy3&>&>?*tczD'8&@&@1#F 	*gnnb9*gnnc:*gnnb9*gnnc:*gnnb9*gnnc:*gnnb9*gnnc:*gnnb9*gnnc:*gnnb9*gnnc: 	*i&6&6?*l&9&9D6B 	)Z%6%6	1E 	*m&:&:E3K*&C&J&JQ1aAq	2 Az8X__bIz8VREB	z9fmmRH*hoor: 	*fb#6*fb%8 	,,U4HI0	2))*AB	 ))*AB	 	$3S9$6<s4c:s4c:s4c:s4c:*hoor:*gnnb9*ellB7--c"57KL fIq)95)V]]A6)T[[!4fIq)95q)95)T[[!4r   c                 T   | j                  dj                  i       d       | j                  dj                  i       d       | j                  dj                  i       d       | j                  dj                  i       d       | j                  dj                  i       d       | j                  dj                  i       d	       | j                  d
j                  i       d       | j                  dj                  i       d        G d dt              }| j                  dj                   |             d       | j                  dj                   |d            d        G d d      }| j                  dj                   |             d        G d d      }| j                  dj                  d |d      i      d       | j                  t        dj                         | j                  t        dj                         | j                  t
        dj                  i        | j                  t
        dj                  i        | j                  t
        dj                  i        | j                  t
        dj                  i        | j                  t
        d j                  i        | j                  t
        d!j                  i        | j                  t
        d"j                  dd#i       | j                  t
        d"j                  d       | j                  t
        d$j                  d#d%d&        G d' d(      }| j                  t        dj                  i        | j                  t        dj                  g        | j                  t        dj                   |              y ))Nrl   r   r  r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  c                       e Zd Zd Zy),UnicodeTest.test_format_map.<locals>.Mappingc                     |S r!   r   r4   keys     r   __missing__z8UnicodeTest.test_format_map.<locals>.Mapping.__missing__m  s    
r   N)r)   r*   r+   r  r   r   r   Mappingr  l      r   r  z{hello}r   z{a} {world})r   r  c                       e Zd Zd Zd Zy)4UnicodeTest.test_format_map.<locals>.InternalMappingc                     ddi| _         y )Nr   r   r  r3   s    r   r9  z=UnicodeTest.test_format_map.<locals>.InternalMapping.__init__s  s     #W~r   c                      | j                   |   S r!   r  r  s     r   __getitem__z@UnicodeTest.test_format_map.<locals>.InternalMapping.__getitem__u  s    ||C((r   N)r)   r*   r+   r9  r  r   r   r   InternalMappingr  r  s    .)r   r  z{a}c                       e Zd ZddZd Zy)&UnicodeTest.test_format_map.<locals>.Cc                     || _         y r!   r=  r?  s     r   r9  z/UnicodeTest.test_format_map.<locals>.C.__init__{  r@  r   c                     |S r!   r   rB  s     r   rD  z1UnicodeTest.test_format_map.<locals>.C.__format__}  rE  r   NrF  rG  r   r   r   rH  r  z  rI  r   rH  r  rB  r  r  r  r  r  r  r  r   z{a} {}r   r  c                       e Zd Zd Zy)/UnicodeTest.test_format_map.<locals>.BadMappingc                     ddz  S )Nr   r   r   r  s     r   r  z;UnicodeTest.test_format_map.<locals>.BadMapping.__getitem__  s    s
r   N)r)   r*   r+   r  r   r   r   
BadMappingr    r  r   r  )r?   
format_mapr  rN   r{   r   r  ZeroDivisionError)r4   r  r  rH  r  s        r   test_format_mapzUnicodeTest.test_format_mapa  s   r*B/+S1,d3))"-t4))"-t4))"-t4))"-t4**2.6	d 	 	--gi8'B11'G2DE}U	) 	)
 	))/*;<gF	 	
 	..qu~>E 	)R]]3)S^^4*cnnb9*cnnb9*door:*door:*door:*door: 	*dooayA*doos;*h&9&9!1;MN	 	 	(E$4$4b9)U%5%5r:+U-=-=z|Lr   c                     dj                  t        j                  dz         }| j                  t              5  t        d|      }d d d        y # 1 sw Y   y xY w)Nz.{}fr   Q@r  rK  rL  rN   r   r4   format_stringrB   s      r   test_format_huge_precisionz&UnicodeTest.test_format_huge_precision  sG    ckkAo6z* 	1D-0F	1 	1 	1   AAc                     dj                  t        j                  dz         }| j                  t              5  t        d|      }d d d        y # 1 sw Y   y xY w)Nz{}fr   r  r  r  s      r   test_format_huge_widthz"UnicodeTest.test_format_huge_width  sG    S[[1_5z* 	1D-0F	1 	1 	1r  c                     dj                  t        j                  dz         }| j                  t              5  |j                  d      }d d d        y # 1 sw Y   y xY w)Nz
{{{}:.6f}}r   r  r  r  s      r   test_format_huge_item_numberz(UnicodeTest.test_format_huge_item_number  sM    $++CKK!O<z* 	0"))$/F	0 	0 	0s   AAc                     G d d      }| j                  dj                  d      d       | j                  dj                  d      d       | j                  d	j                  d      d
       | j                  dj                   |d            d       | j                  dj                  ddg      d       | j                  dj                  ddd      d       | j                  dj                  dd      d       | j                  dj                  dd      d       | j                  dj                  dd      d       | j                  t        dj                  dd       | j                  t        d j                  dd       | j                  t        d!j                  dd       | j                  t        d"j                  dd       | j                  d#j                  dd$%      d&       | j                  d'j                  dd$%      d(       | j                  d)j                  dd*d+d,      d-       | j                  d.j                  dddd+/      d0       y )1Nc                       e Zd ZddZd Zy)1UnicodeTest.test_format_auto_numbering.<locals>.Cc                     || _         y r!   r=  r?  s     r   r9  z:UnicodeTest.test_format_auto_numbering.<locals>.C.__init__  r@  r   c                     |S r!   r   rB  s     r   rD  z<UnicodeTest.test_format_auto_numbering.<locals>.C.__format__  rE  r   NrF  rG  r   r   r   rH  r    rI  r   rH  r  r   r  z{:5}rb  zs    r  z's'z{._x}z{[1]}r   r   rA  z{[a]}r   r  4za{}b{}cr   a0b1cza{:{}}br   z^10za    x     bza{:{}x}br  r  a0x14bz{}{1}z{1}{}z{:{1}}z{0:{}}z{f}{}test)ftest4z{}{f}4testz{:{f}}{g}{}r   g)r  r  z 1g3z{f:{}}{}{g})r  r  z 14g)r?   r  rN   r   )r4   rH  s     r   test_format_auto_numberingz&UnicodeTest.test_format_auto_numbering  s   	 	 	R$/s+W5s+U3".5A/5QA7=))!Q/9))#u5~F**2s3X> 	*gnna;*gnna;*hooq!<*hooq!< 	V4g>V4g>--acQ-?H--aa3-?Hr   c                    t         j                  j                  |        | j                  ddz  d       | j                  ddz  d       | j                  ddz  d       | j                  dd	z  d
       | j                  ddz  d       | j                  ddz  d       | j                  ddz  d       | j                  ddz  d       | j                  ddz  d       | j                  ddddz  d       | j                  ddddz  d       | j                  ddz  d        | j                  dd!z  d"       | j	                  t
        dj                  d#       | j                  dd"z  d"       | j	                  t        dj                  d$       | j	                  t        d%j                  d&       | j	                  t        d'j                  d$       | j                  d(d)diz  d*       | j                  d(d)diz  d*       | j                  d(d)diz  d*       | j                  d(d)diz  d*       | j                  d(dd+d,z  d*       | j                  d(dd+d,z  d*       | j                  d-d.z  d/       | j                  d0d.z  d1       | j                  d2dz  d*       | j                  d3d4z  d5       | j                  d3d6z  d7       | j                  d8d9z  d:       | j                  d8d;z  d5       | j                  d<d=z  d>       | j                  d?d@z  dA       | j                  ddBz  dB        G dC dD      }| j                  dE |       z  d        t        dF      }t        dG      }| j                  dH|z  dF       | j                  dI|z  dJ       | j                  dH|z  dG       | j                  dI|z  dK       | j                  dLdMz  dB       | j                  dNdMz  dO        G dP dQ      } G dR dS      } |dT      } |dU      }| j                  dVdWz  dX       | j                  dYdZz  d[       | j                  d\d]z  d^       | j                  ddUz  d_       | j                  dV|z  d`       | j                  dY|z  da       | j                  d\|z  db       | j                  d|z  d_       | j                  t        dct        j                  dVdd       | j                  t        det        j                  dYdf       | j                  t        dgt        j                  d\dh       | j                  t        dit        j                  dV|       | j                  t        djt        j                  dVdk       | j                  t        dlt        j                  dYdm       | j                  t        dnt        j                  d\do       | j                  t        dpt        j                  dqdk       | j                  t        drt        j                  d'dm       | j                  t        dst        j                  dtdo       | j                  t        dut        j                  d|        G dv dw      } |       }	| j                  t        dxt        j                  dt|	       | j                  t        dxt        j                  d'|	       | j                  t        dxt        j                  dq|	       | j                  t        dyt        j                  dV|	       | j                  t        dyt        j                  dY|	       | j                  t        dyt        j                  d\|	       y )zNz%s, %s)rT   rT   abc, abcz%s, %s, %i, %f, %5.2f)rT   rT   r   r   r   zabc, abc, 1, 2.000000,  3.00)rT   rT   r   r   zabc, abc, 1, -2.000000,  3.00)rT   rT   r   r  g      @zabc, abc, -1, -2.000000,  3.50)rT   rT   r   r  g(\@zabc, abc, -1, -2.000000,  3.57)rT   rT   r   r  g(\\@z abc, abc, -1, -2.000000, 1003.57z%r, %r)rf  rT   zb'abc', 'abc'z%r)   ሴu   'ሴ'z%az'\u1234'z%(x)s, %(y)srT   r   )r   r  zabc, defu   %(x)s, %(ü)s)r   r  z%ci4  r  i u   𡒃)rL   aau   %.1ဲfgUUUUUU?z%i...%(foo)s...rB  	...abc...r  rB  r   z...%s...%s...%s...%s...)r   r   r   rT   z...1...2...3...abc...z"...%%...%%s...%s...%s...%s...%s...z...%...%s...1...2...3...abc...z...%s...z%*s)r  rT   z  abc)rT   zabc  z%*.*s)r  r   rT   z   ab)r  r   rT   z%i %*.*s)r   r  r   rT   z10   abcz
%i%s %*.*s)r   r   r  r   rT   z	103   abcr   c                       e Zd Zd Zy),UnicodeTest.test_formatting.<locals>.Wrapperc                      y)Nr  r   r3   s    r   r;  z4UnicodeTest.test_formatting.<locals>.Wrapper.__str__  s    r   Nr)   r*   r+   r;  r   r   r   Wrapperr    s     r   r  %snaninfz%fz%FNANINFz%.1su   aé€z%.2su   aéc                       e Zd Zd Zd Zd Zy).UnicodeTest.test_formatting.<locals>.PseudoIntc                 $    t        |      | _        y r!   rJ  valuer4   r  s     r   r9  z7UnicodeTest.test_formatting.<locals>.PseudoInt.__init__   s     Z
r   c                     | j                   S r!   r  r3   s    r   __int__z6UnicodeTest.test_formatting.<locals>.PseudoInt.__int__      zz!r   c                     | j                   S r!   r  r3   s    r   	__index__z8UnicodeTest.test_formatting.<locals>.PseudoInt.__index__  r  r   N)r)   r*   r+   r9  r  r  r   r   r   	PseudoIntr    s    (""r   r  c                       e Zd Zd Zd Zy)0UnicodeTest.test_formatting.<locals>.PseudoFloatc                 $    t        |      | _        y r!   )floatr  r  s     r   r9  z9UnicodeTest.test_formatting.<locals>.PseudoFloat.__init__  s    "5\
r   c                 ,    t        | j                        S r!   r  r3   s    r   r  z8UnicodeTest.test_formatting.<locals>.PseudoFloat.__int__	  s    4::&r   N)r)   r*   r+   r9  r  r   r   r   PseudoFloatr    s    *'r   r  go!	@m   z%xr
   2az%X   r]  z%or   11r  6d6D155z,%x format: an integer is required, not floatr  z,%X format: an integer is required, not floatgzG @z,%o format: an integer is required, not floatgp=
ף?z2%x format: an integer is required, not PseudoFloatz.%x format: an integer is required, not complexy              @z.%X format: an integer is required, not complexy               @z.%o format: an integer is required, not complexr  z1%u format: a real number is required, not complexz%uz1%i format: a real number is required, not complexz1%d format: a real number is required, not complexz%dz%c requires int or charc                       e Zd Zd Zd Zy)2UnicodeTest.test_formatting.<locals>.RaisingNumberc                     t        d      )NrJ  RuntimeErrorr3   s    r   r  z:UnicodeTest.test_formatting.<locals>.RaisingNumber.__int__"  s    "5))r   c                     t        d      )Nr   r  r3   s    r   r  z<UnicodeTest.test_formatting.<locals>.RaisingNumber.__index__$  s    "7++r   N)r)   r*   r+   r  r  r   r   r   RaisingNumberr  !  s    *,r   r  rJ  r   )r   r.  test_formattingr?   rN   rM  __mod__r{   r   r
  r  operatormodr  )
r4   r  r  r  r  r  piletter_mr  rns
             r   r  zUnicodeTest.test_formatting  s   22BB4HN2J?03JJLjk03KKMlm03NNPpq03OOQqr03RRTvwO3_E+Z8+[9u%*@@*M*%-FF
S16-{C,l;)T\\48*l&:&:UD)T\\48 	E%=8+FE%=8+FE%=8+FE%=8+F%c+BB[Q%c+BBKP2]BD[\=MOope+[9+W5,g6</9</9&66
C(=={KS)	  	  		)84 ElElU+U+U+U+ 	-/5-/9	" 	"	' 	'
  S>D)C(4(S)$/$/%0#.y*XZbZfZfhlnrsy*XZbZfZfhlnrsy*XZbZfZfhlnrsy*^`h`l`lnrtvwy*Z\d\h\hjnprsy*Z\d\h\hjnprsy*Z\d\h\hjnprsy*]_g_k_kmqsuvy*]_g_k_kmqsuvy*]_g_k_kmqsuvy*CX\\SWY[\	, 	, _|UHLL$K|UHLL$K|UHLL$K|WhllD"M|WhllD"M|WhllD"Mr   c           
         dd l } G d dt        |j                        } G d d|j                        } G d d|j                        }| j                  |j                  d|j                  d	       | j                  d
|j                  |j                  |j                  |j                  |j                  |j                  |j                  fz  d       | j                  dd|j                  iz  d       | j                  dd|j                  iz  d       | j                  dd|j                  iz  d       | j                  dd|j                  iz  d       | j                  dd|j                  iz  d       | j                  d|j                  |j                  dz  d       | j                  d|j                  ddz  d       y )Nr   c                       e Zd ZdZy)4UnicodeTest.test_formatting_with_enum.<locals>.FloatgJM!	@N)r)   r*   r+   PIr   r   r   Floatr$  2  s    Br   r&  c                       e Zd ZdZy)2UnicodeTest.test_formatting_with_enum.<locals>.Intr  N)r)   r*   r+   IDESr   r   r   Intr(  5  s    Dr   r*  c                       e Zd ZdZy)2UnicodeTest.test_formatting_with_enum.<locals>.StrrT   N)r)   r*   r+   r  r   r   r   Strr,  8  s    Cr   r-  z, r  z%s, %s, %d, %i, %u, %f, %5.2fz%abc, abc, 15, 15, 15, 3.141593,  3.14r  rB  r  z...%(foo)r...z...<Int.IDES: 15>...z...15...z...%(foo)i...z...%(foo)d...z...%(foo)u...r  z...%(foo)f...r  z...3.141593...)	enumr
  EnumIntEnumStrEnumr?   r  r)  r%  )r4   r.  r&  r*  r-  s        r   test_formatting_with_enumz%UnicodeTest.test_formatting_with_enum/  s   	E499 		$,, 		$,, 	 	SWWcgg6#	%8#''388SXX588-- A		B 	E#''?:$	&E#((+;;/	1E#((+;;#	%E#((+;;#	%E#((+;;#	%#((%((+KK#	%%((+EE)	+r   c                     dj                  t        j                  dz         }| j                  t              5  |dz  }d d d        y # 1 sw Y   y xY wNz%.{}fr   r  r  r  s      r   test_formatting_huge_precisionz*UnicodeTest.test_formatting_huge_precisionT  sE    s{{Q7z* 	*"T)F	* 	* 	*   AAc                 X     G d dt               }| j                  d |d      z  d       y )Nc                       e Zd Zd Zy)BUnicodeTest.test_issue28598_strsubclass_rhs.<locals>.SubclassedStrc                 $    dj                  |      S )Nz'Success, self.__rmod__({!r}) was calledr  )r4   others     r   __rmod__zKUnicodeTest.test_issue28598_strsubclass_rhs.<locals>.SubclassedStr.__rmod__]  s    @GGNNr   N)r)   r*   r+   r=  r   r   r   SubclassedStrr9  \  s    Or   r>  z	lhs %% %rrhsz.Success, self.__rmod__('lhs %% %r') was calledr:   r?   )r4   r>  s     r   test_issue28598_strsubclass_rhsz+UnicodeTest.test_issue28598_strsubclass_rhsY  s0    	OC 	O 	}U';;I	Kr   c                     dj                  t        j                  dz         }| j                  t              5  |dz  }d d d        y # 1 sw Y   y xY wr4  )r  r  INT_MAXrN   r   r  s      r   'test_formatting_huge_precision_c_limitsz3UnicodeTest.test_formatting_huge_precision_c_limitsb  sJ      y'8'81'<=z* 	*"T)F	* 	* 	*r6  c                     dj                  t        j                  dz         }| j                  t              5  |dz  }d d d        y # 1 sw Y   y xY w)Nz%{}fr   r  r  r  s      r   test_formatting_huge_widthz&UnicodeTest.test_formatting_huge_widthi  sE    ckkAo6z* 	*"T)F	* 	* 	*r6  c                    dj                   dj                  fD ]b  }| j                  t              5 } |dg       d d d        t	        j
                        }| j                  d|       | j                  d|       d y # 1 sw Y   ExY w)NrB  r  r:   r   )
startswithendswithrN   r{   r:   	exceptionr!  )r4   r  cmexcs       r   test_startswith_endswith_errorsz+UnicodeTest.test_startswith_endswith_errorsn  sx    %%u~~6 	(D""9- cUbll#CMM%%MM'3'	( s   
A??B	LC_ALLde_DEfr_FRc                 .    | j                  dddz         y )Nz1.0z%.1fr  r?   r3   s    r   test_format_floatzUnicodeTest.test_format_floatv  s     	-r   c           	         | j                  t        d      d       dD ]  }t        |      }| j                  t        |      |       | j                  t        |      t        |             |dk(  sS| j                  |j	                  d      d       | j                  |j	                  d      d        | j                  t        d      d        G d d      }| j                  t         |d	            d	        |d
      }| j                  t        |      d
       | j                  t        |      d
       dD ]/  }| j                  t        |      t        t        |                   1 | j                  t        t        ddd       | j                  t        ddd      d       | j                  t        t        d      dd      d       | j                  t        t        ddd       y )Nzunicode remains unicode)rv   r  r  r  rv   s   asciiutf-8z strings are converted to unicodec                       e Zd Zd Zd Zy)2UnicodeTest.test_constructor.<locals>.StringCompatc                     || _         y r!   rM  r?  s     r   r9  z;UnicodeTest.test_constructor.<locals>.StringCompat.__init__  rN  r   c                     | j                   S r!   rM  r3   s    r   r;  z:UnicodeTest.test_constructor.<locals>.StringCompat.__str__  s    vvr   Nr<  r   r   r   StringCompatrW    s    r   rZ  z)__str__ compatible objects are recognizedz#unicode(obj) is compatible to str())r  g^@r  z!decoding unicode is not supportedr   s   strings are decoded to unicodezstrings are decoded to unicodes(   character buffers are decoded to unicodez(character buffers are decoded to unicoder
   )r?   r:   r'   lenr"   rN   r{   
memoryview)r4   r$   subclassrZ  oobjs         r   test_constructorzUnicodeTest.test_constructor{  s    	)*%	

 > 	ED"4(HS]D1S]CI6w  !98D  !98D	E 	23.	

	 	 	HIJ7	
 >?Q!FGQ!FG% 	6CSXs3s8}5	6 	/	
 	17HE,	

 	FG
 7	
 	)S"b"5r   c                     	 | j                  t        d      d       | j                  t        dd      d       | j                  t        dd      d       | j                  t        dd      d       y )	NrB  )rC   s   foorU  )rC   r   r   r   )rC   r   )r?   r:   r3   s    r   test_constructor_keyword_argsz)UnicodeTest.test_constructor_keyword_args  s_    LE*E2FW=uEVH5u=F8<eDr   c                    	 | j                  t               d       | j                  t        d      d       dj                  d      }| j                  t        |d      d       | j                  t        t        |d       y )Nrl   r   rb     ¢rU  rv   )r   )r?   r:   r"   rN   UnicodeDecodeError)r4   	utf8_cents     r   test_constructor_defaultsz%UnicodeTest.test_constructor_defaults  si    6#H-r2KK(	Yx8$?,c9wOr   c                    g d}|D ]&  \  }}| j                  |j                  d      |       ( | j                  dj                  d      d       | j                  dj                  d      d       | j                  dj                  d      d       | j                  d	j                  d      d
       | j                  dj                  d      d       | j                  dj                  d      d       | j                  dj                  d      d       | j                  d
j                  d      d	       | j                  dj                  d      d       | j                  dj                  d      d       | j                  dj                  dd      d       d}d}|D ]b  }| j                  |j                  d      |j                  d             | j                  |j                  d      j                  d      |       d |D ]2  }| j                  |j                  d      j                  d      |       4 | j                  t        d      5  dj                  d       d d d        y # 1 sw Y   y xY w)N))u   A≢Α.s	   A+ImIDkQ.)u   Hi Mom -☺-!s   Hi Mom -+Jjo--!)u	   日本語s
   +ZeVnLIqe-)u   Item 3 is £1.s   Item 3 is +AKM-1.)+s   +-)z+-s   +--z+?s   +-?)z\?s   +AFw?rk  )z\\?s   +AFwAXA?)z\\\?s
   +AFwAXABc?)z++--s   +-+---)u   򫳞s   +2m/c3g-)/   /utf-7u   s   +2AE-u   xs   +2AE-xu   s   +3AE-u   xs   +3AE-xu   򫳞s
   +2AHab9ze-s   +re  rl   zGABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'(),-./:?z!"#$%&*;<=>@[]^_`{|}utf7rv   zill-formed sequences   +@)r?   r"   r#   r  rf  )r4   utfTestsr   r  set_dset_or   s          r   test_codecs_utf7zUnicodeTest.test_codecs_utf7  s0   
"  	3FQQXXg.2	3 	18<))'2I>18<))'2I>18<))'2I>18<))'2I>+227;]K--g68JK 	(;R@ Z& 	BAQXXf-qxx/@AQXXg.55f=qA	B  	BAQXXg.55f=qA	B ##$6$9; 	"LL!	" 	" 	"s   I//I8c                    | j                  dj                  d      d       | j                  dj                  d      d       | j                  dj                  d      d       | j                  dj                  d      d	       | j                  d
j                  dd      d       | j                  dj                  dd      d       | j                  dj                  d      d       | j                  dj                  d      d       | j                  t        d	d      d       | j                  t        dd      d       | j                  t        dd      d       y )Nrl   rU  r   r  s   €u   𐀂s   𐀂u   𣑖s   𣑖r  surrogatepasss   u   s   u(   𐀂𐀂𐀂𐀂𐀂𐀂𐀂𐀂𐀂𐀂s(   𐀂𐀂𐀂𐀂𐀂𐀂𐀂𐀂𐀂𐀂u   正確に言うと翻訳はされていません。一部はドイツ語ですが、あとはでたらめです。実際には「Wenn ist das Nunstuck git unds   正確に言うと翻訳はされていません。一部はドイツ語ですが、あとはでたらめです。実際には「Wenn ist das Nunstuck git und)r?   r"   r:   r3   s    r   test_codecs_utf8zUnicodeTest.test_codecs_utf8  s,   7+S11?C,,W57JK,,W57JK/BOT/BOT/11':/	1 
 !'w	9	
( 	0':LJ0':LJ_g6Br   c                 b    g d}|D ]&  \  }}| j                  |j                  d      |       ( y )N))    r  )   ar   )   )s      )s   ߿u   ߿)s   ࠀu   ࠀ)s   ퟿u   ퟿)s   u   )s   ￿rK   )s   𐀀r(  )s   􏿿r  rU  )r?   r#   )r4   	sequencesrO  ress       r    test_utf8_decode_valid_sequencesz,UnicodeTest.test_utf8_decode_valid_sequences+  s7    
	 " 	7HCSZZ0#6	7r   c                 v   t        dd      D cg c]  }t        |g       }}t        dd      D cg c]  }t        |g       }}t        dd      D cg c]  }t        |g       }}||z   |z   t        dd      D cg c]  }t        |g       c}z   }|D ]#  }| j                  t        |j                  d       % |D ]-  }|D ]&  }| j                  t        ||z   j                  d       ( / |D ]@  }|d d	 D ]6  }	|d d	 D ],  }
| j                  t        ||	z   d
z   |
z   j                  d       . 8 B t        dd      D cg c]  }t        |g       c}D ]P  }| j                  t        d|z   d
z   j                  d       | j                  t        d|z   dz   j                  d       R t        dd      D cg c]  }t        |g       c}D ]P  }| j                  t        d|z   d
z   j                  d       | j                  t        d|z   dz   j                  d       R t        dd      D cg c]  }t        |g       c}D ]P  }| j                  t        d|z   dz   j                  d       | j                  t        d|z   dz   j                  d       R t        dd      D cg c]  }t        |g       c}D ]P  }| j                  t        d|z   dz   j                  d       | j                  t        d|z   dz   j                  d       R y c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w )N                  rm   rU  r                           s      )rz   rG  rN   rf  r#   )r4   r   continuation_bytesinvalid_2B_seq_start_bytesinvalid_4B_seq_start_bytesinvalid_start_bytesbytesbcbcb1cb3s              r   "test_utf8_decode_invalid_sequencesz.UnicodeTest.test_utf8_decode_invalid_sequences<  su   27d2CDQeQCjDD:?d:K%LQeQCj%L"%L:?d:K%LQeQCj%L"%L!;;&'>CD%>P)Q%*)QR 	
 ( 	HD0$++wG	H - 	OB( O!!"4r"unngNO	O - 	LB)"1- L-bq1 LC%%&8')#vg~c'9&A&A7LLL	L (-T4'89!5!:9 	DB0&rz'1997D0&rz'1997D	D (-T4'89!5!:9 	DB0&rz'1997D0&rz'1997D	D
 (-T4'89!5!:9 	HB0&rz+5==wH0&rz+5==wH	H
 (-T4'89!5!:9 	HB0&rz+5==wH0&rz+5==wH	HO E%L%L *R  : :
 :
 :s.   LLL?L"L';L,2L1)L6c                    d}g d|fd|dz  fd|fd|dz  fd|fd|dz  fd	|dz  fd
|fd|dz  fd|dz  fd|dz   fd|fd|dz  fd|dz  fd|dz  fd|fd|dz   fd|dz   |z   fd|dz   fd|dz   fd|dz  dz   fd|dz   |z   fd|fd|dz  fd|dz  fd |dz  fd!|d"z  fd#|fd$|fd%|dz   fd&|dz   fd'|dz   fd(|dz   |z   fd)|dz   |dz  z   fd*|dz   |z   dz   fd+|dz   |z   fd,|dz   |z   fd-|dz   |dz  z   fd.|dz  dz   fd/|dz   |dz  z   fd0|fd1|dz  fd2|dz  fd3|dz  fd4|dz  fd5|dz  dz   fd6|dz  dz   |z   fd7|dz   |dz  z   dz   fd8|fd9|dz  fd:|dz  fd;|dz  dz   fd<|d"z  fd=|fd>|dz  fd?|dz  fd@|dAz  fdB|fdC|dz  fdDdEdFdG}t        |      D ]  \  }\  }}| j                  t        |j                  dHdI       | j	                  |j                  dHdJ      |       | j	                  |dKz   j                  dHdJ      |dLz          | j	                  |j                  dHdM      |j                  ddN              y )ON   �r  r  r      s      s   s      s   s   r   s   ArI     s   s   s   r   s   s   As   As   AAAAs   As   As   A   s   s   s   s   r  s   s   s   As   AAs   As   As   As   AAs   AAs   As   As   As   A   s   s   s   s   s   As   As   AA   s   s   s   As      s   s   s   r      s   )s   ABCu   �ABC)s   BCu   ��BC)s   Cu   �C)s   abcdu   a���b�c��drU  r   rR     br   re  rl   )	enumeraterN   rf  r#   r?   rR  )r4   FFFDr}  r  rO  r~  s         r   test_issue8271zUnicodeTest.test_issue8271k  s    J
dOJ
 $q&!J
 dO	J

 $q&!J
 dOJ
 $q&!J
 $q&!J
 dOJ
 $q&!J
 d1f%J
 $s(#J
 dOJ
  $q&!!J
" d1f%#J
$ !$q&)%J
& $'J
( $s(#)J
* d3htm,+J
, d4i(-J
. d3h'/J
0 !$q&*-1J
2 !$s(4-03J
6 dO7J
8 $q&!9J
: d1f%;J
< !$q&)=J
> %d1f-?J
@ $AJ
B d#CJ
D d3h'EJ
F !$t),GJ
H !$s(+IJ
J d3htm,KJ
L !$s(46/2MJ
N !$s(4-"34OJ
P !$t)D.1QJ
R !$s(4-0SJ
T !$s(46/2UJ
V !$q&*-WJ
X !$s(46/2YJ
\ dO]J
^ $q&!_J
` $q&!aJ
b d1f%cJ
d !$q&)eJ
f d1fSj)gJ
h !$q&*T/2iJ
j %d3htAvoc&9:kJ
n dOoJ
p $q&!qJ
r $q&!sJ
t d1fsl+uJ
v %d1f-wJ
z dO{J
| $q&!}J
~ d1f%J
@ )$q&1AJ
D dOEJ
F d1f%GJ
J <KJ
L >MJ
N 8OJ
PEQJ
	V 'y1 	8MAzS0#**gxPSZZ;SAc$h..w	BCGLSZZ: [[268		8r   c                 .   	 | j                  t              5 }|j                  d       d d d        j                  }| j	                  |t        |             | j                  |j                  dd      |       | j                  d|z   dz   j                  dd      d|z   dz          |j                  dd      }| j                  |j                  dd	      |       | j                  d|z   dz   j                  dd	      d|z   dz          y # 1 sw Y   xY w)
NrU  rR  s   aaaas   bbbbaaaabbbbr  rl   re  )rN   rf  r#   rJ  r!  r:   r?   rR  )r4   rO  r~  errrK  rL  s         r   assertCorrectUTF8Decodingz%UnicodeTest.assertCorrectUTF8Decoding  s    	
 12 	 bJJw	 llc3s8$GY7='C-'199'9M#.	0kk(B'GX6<'C-'199'8L 3,/	1	  	 s   DDc                 R    	 d}dD ]  }| j                  t        |g      dd       ! y )Nr  s   zinvalid start byte)r  rG  )r4   r  r  s      r   test_invalid_start_bytez#UnicodeTest.test_invalid_start_byte  s;    	 7 	AD**5$=(+?A	Ar   c                 l    	 g d}d}|D ](  }| j                  t        j                  |      dd       * y )N)&C2DFzE0 A0zE0 BFzE1 80zE1 BFzEC 80zEC BFzED 80zED 9FzEE 80zEE BFzEF 80zEF BFzF0 90zF0 BFzF0 90 80zF0 90 BFzF0 BF 80zF0 BF BFzF1 80zF1 BFzF1 80 80zF1 80 BFzF1 BF 80zF1 BF BFzF3 80zF3 BFzF3 80 80zF3 80 BFzF3 BF 80zF3 BF BFzF4 80zF4 8FzF4 80 80zF4 80 BFzF4 8F 80zF4 8F BFr  zunexpected end of datar  rG  fromhex)r4   r}  r  rO  s       r   test_unexpected_end_of_dataz'UnicodeTest.test_unexpected_end_of_data  sE    
	
	  	EC**5==+=x+CE	Er   c           	          	 d}|dz  }d|dz   fd|dz   fd|fd|fd	|dz   fd
|dz   fd|fd|fg}|D ]+  \  }}| j                  t        j                  |      |d       - y )Nr  r   zC2 00r  zC2 7Fr{  zC2 C0zC2 FFzDF 00zDF 7FzDF C0zDF FFinvalid continuation byter  r4   r  FFFDx2r}  rO  r~  s         r   test_invalid_cb_for_2bytes_seqz*UnicodeTest.test_invalid_cb_for_2bytes_seq  s    	 d6k"Wd6k$:f0d6k"Wd6k$:f0	
	 " 	HHC**5==+=s+FH	Hr   c                    	 d}|dz  }g d|dz   fd|dz   fd|fd|fd	|fd
|fd|dz   fd|dz   fd|fd|fd|dz   fd|dz   fd|fd|fd|dz   fd|dz   fd|fd|fd|dz   fd|dz   fd|fd|fd|dz   fd|dz   fd|fd|fd|dz   fd |dz   fd!|fd"|fd#|dz   fd$|dz   fd%|fd&|fd'|dz   fd(|dz   fd)|fd*|fd+|dz   fd,|dz   fd-|fd.|fd/|fd0|fd1|dz   fd2|dz   fd3|fd4|fd5|dz   fd6|dz   fd7|fd8|fd9|dz   fd:|dz   fd;|fd<|fd=|dz   fd>|dz   fd?|fd@|fdA|dz   fdB|dz   fdC|fdD|fdE|dz   fdF|dz   fdG|fdH|fdI|dz   fdJ|dz   fdK|fdL|fdM|dz   fdN|dz   fdO|fdP|f}|D ]+  \  }}| j                  t        j                  |      |dQ       - y )RNr  r   zE0 00r  zE0 7Fr{  zE0 80zE0 9FzE0 C0zE0 FFzE0 A0 00zE0 A0 7FzE0 A0 C0zE0 A0 FFzE0 BF 00zE0 BF 7FzE0 BF C0zE0 BF FFzE1 00zE1 7FzE1 C0zE1 FFzE1 80 00zE1 80 7FzE1 80 C0zE1 80 FFzE1 BF 00zE1 BF 7FzE1 BF C0zE1 BF FFzEC 00zEC 7FzEC C0zEC FFzEC 80 00zEC 80 7FzEC 80 C0zEC 80 FFzEC BF 00zEC BF 7FzEC BF C0zEC BF FFzED 00zED 7FzED A0zED BFzED C0zED FFzED 80 00zED 80 7FzED 80 C0zED 80 FFzED 9F 00zED 9F 7FzED 9F C0zED 9F FFzEE 00zEE 7FzEE C0zEE FFzEE 80 00zEE 80 7FzEE 80 C0zEE 80 FFzEE BF 00zEE BF 7FzEE BF C0zEE BF FFzEF 00zEF 7FzEF C0zEF FFzEF 80 00zEF 80 7FzEF 80 C0zEF 80 FFzEF BF 00zEF BF 7FzEF BF C0zEF BF FFr  r  r  s         r   test_invalid_cb_for_3bytes_seqz*UnicodeTest.test_invalid_cb_for_3bytes_seq  s]   	  "
d6k""
%,d6k$:"
=Df<M"
f"
 '0"
3:F2C"
 f%"
 )3DK'@"
  	"
 $.v"6	"

 f%"

 )3DK'@"
  "
 $.v"6"
 :A$v+8N"
 d6k""
 &-f$5"
 9@7H"
 f%"
 )3DK'@"
  "
 $.v"6"
 f%"
 )3DK'@"
  "
 $.v"6"
 :A$v+8N"
 d6k""
 &-f$5"
 9@7H"
 f%"
 )3DK'@"
  "
 $.v"6"
 f%"
 )3DK'@"
   !"
  $.v"6!"
  :A$v+8N!"
" d6k"#"
$ f%"
$ !(0%"
& f'"
& !(0'"
& 4>tF{2K'"
( f%)"
( )3F';)"
*  +"
* $.tF{";+"
, f%-"
, )3F';-"
.  /"
. $+DK"8/"
0 d6k"1"
0 &-f$51"
0 9@7H1"
2 f%3"
2 )3DK'@3"
4  5"
4 $.v"65"
6 f%7"
6 )3DK'@7"
8  9"
8 $.v"69"
8 :A$v+8N9"
: d6k";"
: &-f$5;"
: 9@7H;"
< f%="
< )3DK'@="
>  ?"
> $.v"6?"
@ f%A"
@ )3DK'@A"
B  C"
B $.v"6C"
	F " 	HHC**5==+=s+FH	Hr   c                 h   	 d}|dz  }g d|dz   fd|dz   fd|fd|fd	|fd
|fd|dz   fd|dz   fd|fd|fd|dz   fd|dz   fd|fd|fd|dz   fd|dz   fd|fd|fd|dz   fd|dz   fd|fd|fd|dz   fd|dz   fd|fd|fd|dz   fd |dz   fd!|fd"|fd#|dz   fd$|dz   fd%|fd&|fd'|dz   fd(|dz   fd)|fd*|fd+|dz   fd,|dz   fd-|fd.|fd/|dz   fd0|dz   fd1|fd2|fd3|dz   fd4|dz   fd5|fd6|fd7|dz   fd8|dz   fd9|fd:|fd;|dz   fd<|dz   fd=|fd>|fd?|dz   fd@|dz   fdA|fdB|fdC|dz   fdD|dz   fdE|fdF|fdG|dz   fdH|dz   fdI|fdJ|fdK|dz   fdL|dz   fdM|fdN|fdO|dz   fdP|dz   fdQ|fdR|fdS|dz   fdT|dz   fdU|fdV|fdW|dz   fdX|dz   fdY|fdZ|fd[|dz   fd\|dz   fd]|fd^|fd_|fd`|fda|dz   fdb|dz   fdc|fdd|fde|dz   fdf|dz   fdg|fdh|fdi|dz   fdj|dz   fdk|fdl|fdm|dz   fdn|dz   fdo|fdp|fdq|dz   fdr|dz   fds|fdt|fdu|dz   fdv|dz   fdw|fdx|f}|D ]+  \  }}| j                  t        j                  |      |dy       - y )zNr  r   zF0 00r  zF0 7Fr{  zF0 80zF0 8FzF0 C0zF0 FFzF0 90 00zF0 90 7FzF0 90 C0zF0 90 FFzF0 BF 00zF0 BF 7FzF0 BF C0zF0 BF FFzF0 90 80 00zF0 90 80 7FzF0 90 80 C0zF0 90 80 FFzF0 90 BF 00zF0 90 BF 7FzF0 90 BF C0zF0 90 BF FFzF0 BF 80 00zF0 BF 80 7FzF0 BF 80 C0zF0 BF 80 FFzF0 BF BF 00zF0 BF BF 7FzF0 BF BF C0zF0 BF BF FFzF1 00zF1 7FzF1 C0zF1 FFzF1 80 00zF1 80 7FzF1 80 C0zF1 80 FFzF1 BF 00zF1 BF 7FzF1 BF C0zF1 BF FFzF1 80 80 00zF1 80 80 7FzF1 80 80 C0zF1 80 80 FFzF1 80 BF 00zF1 80 BF 7FzF1 80 BF C0zF1 80 BF FFzF1 BF 80 00zF1 BF 80 7FzF1 BF 80 C0zF1 BF 80 FFzF1 BF BF 00zF1 BF BF 7FzF1 BF BF C0zF1 BF BF FFzF3 00zF3 7FzF3 C0zF3 FFzF3 80 00zF3 80 7FzF3 80 C0zF3 80 FFzF3 BF 00zF3 BF 7FzF3 BF C0zF3 BF FFzF3 80 80 00zF3 80 80 7FzF3 80 80 C0zF3 80 80 FFzF3 80 BF 00zF3 80 BF 7FzF3 80 BF C0zF3 80 BF FFzF3 BF 80 00zF3 BF 80 7FzF3 BF 80 C0zF3 BF 80 FFzF3 BF BF 00zF3 BF BF 7FzF3 BF BF C0zF3 BF BF FFzF4 00zF4 7FzF4 90zF4 BFzF4 C0zF4 FFzF4 80 00zF4 80 7FzF4 80 C0zF4 80 FFzF4 8F 00zF4 8F 7FzF4 8F C0zF4 8F FFzF4 80 80 00zF4 80 80 7FzF4 80 80 C0zF4 80 80 FFzF4 80 BF 00zF4 80 BF 7FzF4 80 BF C0zF4 80 BF FFzF4 8F 80 00zF4 8F 80 7FzF4 8F 80 C0zF4 8F 80 FFzF4 8F BF 00zF4 8F BF 7FzF4 8F BF C0zF4 8F BF FFr  r  r  s         r   test_invalid_cb_for_4bytes_seqz*UnicodeTest.test_invalid_cb_for_4bytes_seqN  s\   	 8
d6k"8
%,d6k$:8
=Df<M8
f8
 '08
3:F2C8
 f%8
 )3DK'@8
  	8
 $.v"6	8

 f%8

 )3DK'@8
  8
 $.v"68
 DK(8
 ,9$v+*F8
 F#8
 '4V%<8
 DK(8
 ,9$v+*F8
 F#8
 '4V%<8
 DK(8
 ,9$v+*F8
 F#8
 '4V%<8
 DK(8
 ,9$v+*F8
 F#8
 '4V%<8
 d6k"8
 &-d6k$:8
 >Ef<M8
  f!8
  !+DK8!8
" f%#8
" )3F';#8
$  %8
$ $.tF{";%8
& f%'8
& )3F';'8
(  )8
( $1$v+">)8
* DK(+8
* ,9&*A+8
, F#-8
, '4T&[%A-8
. DK(/8
. ,9&*A/8
0 F#18
0 '4T&[%A18
2 DK(38
2 ,9&*A38
4 F#58
4 '4T&[%A58
6 DK(78
6 ,9&*A78
8 F#98
8 '.tF{%;98
: d6k";8
: &-f$5;8
: 9@7H;8
< f%=8
< )3DK'@=8
>  ?8
> $.v"6?8
@ f%A8
@ )3DK'@A8
B  C8
B $.v"6C8
D DK(E8
D ,9$v+*FE8
F F#G8
F '4V%<G8
H DK(I8
H ,9$v+*FI8
J F#K8
J '4V%<K8
L DK(M8
L ,9$v+*FM8
N F#O8
N '4V%<O8
P DK(Q8
P ,9$v+*FQ8
R F#S8
R '4V%<S8
T d6k"U8
T &-d6k$:U8
T >Ef<MU8
V fW8
V !(0W8
V 4;F2CW8
X f%Y8
X )3DK'@Y8
Z  [8
Z $.v"6[8
\ f%]8
\ )3DK'@]8
^  _8
^ $.v"6_8
` DK(a8
` ,9$v+*Fa8
b F#c8
b '4V%<c8
d DK(e8
d ,9$v+*Fe8
f F#g8
f '4V%<g8
h DK(i8
h ,9$v+*Fi8
j F#k8
j '4V%<k8
l DK(m8
l ,9$v+*Fm8
n F#o8
n '4V%<o8
	r " 	HHC**5==+=s+FH	Hr   c                 F    | j                  dj                  d      d       y )Nzwww.python.org.idnas   www.python.org.)r?   r"   r3   s    r   test_codecs_idnazUnicodeTest.test_codecs_idna  s    *11&9;MNr   c                    | j                  t        dj                  d       | j                  t        dj                  dd       | j                  dj                  dd      d       | j                  dj                  dd      d       | j                  dj                  dd      dj                  dd             | j                  dj                  dd      dj                  dd	             | j                  t        t        d
d       | j                  t        t        d
dd       | j                  t	        d
dd      d       | j                  t	        d
dd      d       | j                  t	        ddd      d       | j                  dj                  dd      d       | j                  t        dj
                  d       | j                  t        dj
                  d       | j                  t        t        dd       | j                  t        dj                  d       | j                  t        dj                  d       | j                  t        dj                  ddd       | j                  t        t        d       | j                  t        t        d       | j                  t        t        d       | j                  t        t        d       | j                  t        t        d       | j                  t        t        d       y )Nu   Andr xrv   r   re  s   Andr xrR  s   Andr? xrb  )r   r   s   Andr xzAndr xu	   Andr� xs    xu   � xs	   \N{foo}xxzunicode-escapexx   \   hellor   r   r   r
   r  u   )rN   UnicodeErrorr"   r?   r:   r#   r{   r   rJ  r
  complexr3   s    r   test_codecs_errorszUnicodeTest.test_codecs_errors  s`   ,(;(;WE,(;(;WXN,,WX>	J,,WY?L,,Wi@%,,WY,G	I,,Wh?%,,gh,O	Q 	,]GD,]GXN]GX>I]GY?PY;ZH 	--.>I4P 	,6FG)X__oF)S(OD)W^^_E)W^^_E 	)W^^RR@ 	*c84*c84*eX6*eX6*gx8*gx8r   c                    | j                  dj                  d      d       | j                  dj                  d      d       | j                  dj                  d      d       | j                  dj                  d      d       | j                  dj                  d      d       | j                  dj                  d      d	       | j                  dj                  d
      d       | j                  dj                         d       t        d      D ]?  }t        |      }dD ]-  }| j                  t	        |j                  |      |      |       / A t        d      D ]?  }t        |      }dD ]-  }| j                  t	        |j                  |      |      |       / A t        d      D ]?  }t        |      }dD ]-  }| j                  t	        |j                  |      |      |       / A t        j                         5  d}dD ]-  }| j                  t	        |j                  |      |      |       / 	 d d d        dj                  t        t        t        t        dd            t        t        dd            z               }dD ]-  }| j                  t	        |j                  |      |      |       / y # 1 sw Y   xY w)Nr   rv   r  rn  rU  	utf-16-les
   h e l l o 	utf-16-bes
    h e l l olatin-1u   ☃s   ☃i   )rn  rU  utf-16r  r  raw_unicode_escapeunicode_escaperm   )r  r  )rv   u   𐀁𠀂𰀃񀀄񐀅)rU  r  r  r  r  r  rl   r   i   i   rL   )rU  )
r?   r"   rz   ry   r:   rh  catch_warningsrw   rx   list)r4   r   r  r   s       r   test_codecszUnicodeTest.test_codecs  s   0(;0(;0(;0(;46RS46RS	2H= 	*O< t 	FAAA/ F   QXXh%7!A1EF	F s 	FAAA( F  QXXh%7!A1EF	F s 	FAAA& F  QXXh%7!A1EF	F $$& 	FDAE F  QXXh%7!A1EF	F GGCT%6"23!%"9:; < =" 	BHS(!3H=qA	B	F 	Fs   5J<<Kc                    t        t        d            }dD ]-  }| j                  t        ||      j	                  |      |       / t        t        dd            }dD ]-  }| j                  t        ||      j	                  |      |       / y )Nr  )9cp037cp1026cp273cp437cp500cp720cp737cp775cp850cp852cp855cp858cp860cp861cp862cp863cp865cp866cp1125
iso8859_10
iso8859_13
iso8859_14
iso8859_15	iso8859_2	iso8859_3	iso8859_4	iso8859_5	iso8859_6	iso8859_7	iso8859_9koi8_rkoi8_tkoi8_ukz1048latin_1mac_cyrillic
mac_latin2cp1250cp1251cp1252cp1253cp1254cp1255cp1256cp1257cp1258cp856cp857cp864cp869cp874	mac_greekmac_iceland	mac_romanmac_turkishcp1006	iso8859_8rm   ) r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  )rG  rz   r?   r:   r"   )r4   rb  r   s      r   test_codecs_charmapzUnicodeTest.test_codecs_charmap  s    %* 	CH2 SH-44X>B3	C8 %S/" 	CH* SH-44X>B+	Cr   c                     | j                  dd       | j                  dd       | j                  dd       | j                  dd       | j                  dd       y )Nr  r   rR  r3   s    r   test_concatenationzUnicodeTest.test_concatenation0	  sT    +1+1+1+k:+k:r   c                    d}|j                  d      j                  d      }| j                  ||       d}|j                  d      j                  d      }| j                  ||       d}|j                  d      j                  d      }| j                  ||       	 dj                  d       | j                  d       y # t        $ rB}| j                  |j
                  d       | j                  |j                  d       Y d }~y d }~ww xY w)	Nr'  zraw-unicode-escapes
   \U00100000s
   \U00010000s
   \U11111111z%Should have raised UnicodeDecodeErrorr   r   )r"   r#   r?   failrf  startend)r4   r   r  r   s       r   	test_ucs4zUnicodeTest.test_ucs47	  s    HH)*112FGAHH)*112FGAHH)*112FGA	?!!"67
 II=>	 " 	(QWWa(QUUB''	(s   C 	D
8DDc                     G d d      } G d dt               } G d dt               }| j                  t         |             d       | j                  t         |d            d       t         |d            }| j                  |d	       | j                  t        |      |       t	         |d            }| j                  |d	       | j                  t        |      t               y )
Nc                       e Zd Zd Zy)0UnicodeTest.test_conversion.<locals>.ObjectToStrc                      yNrB  r   r3   s    r   r;  z8UnicodeTest.test_conversion.<locals>.ObjectToStr.__str__N	      r   Nr  r   r   r   ObjectToStrr  M	      r   r  c                       e Zd Zd Zy)5UnicodeTest.test_conversion.<locals>.StrSubclassToStrc                      yr  r   r3   s    r   r;  z=UnicodeTest.test_conversion.<locals>.StrSubclassToStr.__str__R	  r  r   Nr  r   r   r   StrSubclassToStrr  Q	  r  r   r!  c                       e Zd ZddZd Zy)=UnicodeTest.test_conversion.<locals>.StrSubclassToStrSubclassc                 4    t         j                  | d|z        S ro  )r:   __new__)r   contents     r   r%  zEUnicodeTest.test_conversion.<locals>.StrSubclassToStrSubclass.__new__V	  s    {{3'	22r   c                     | S r!   r   r3   s    r   r;  zEUnicodeTest.test_conversion.<locals>.StrSubclassToStrSubclass.__str__X	  rE  r   N)rl   )r)   r*   r+   r%  r;  r   r   r   StrSubclassToStrSubclassr#  U	  s    3r   r(  rB  r  foofoo)r:   r?   rY  rA   r'   )r4   r  r!  r(  rb  s        r   test_conversionzUnicodeTest.test_conversionK	  s    	 		s 		s 	 	[]+U3-e45u=(/0H%d1g78078H%d1g{+r   c                 X     G d d      }| j                  t         |             d       y )Nc                       e Zd Zd Zy))UnicodeTest.test_unicode_repr.<locals>.s1c                      y)N\nr   r3   s    r   r;   z2UnicodeTest.test_unicode_repr.<locals>.s1.__repr__f	  r  r   Nr<   r   r   r   s1r-  e	  r  r   r0  r/  r?   r   )r4   r0  s     r   test_unicode_reprzUnicodeTest.test_unicode_reprd	  s$    	 	 	bdU+r   c                 v    | j                  t        d      ddz         | j                  t        d      d       y )Nr(  z'%c')   u   𔀀z'\U00014000'r1  r3   s    r   test_printable_reprzUnicodeTest.test_printable_reprk	  s1    l+Vj-@Al+_=r   Pr   z only applies to 32-bit platformsc                 b    | j                  t        dj                  t        j                         y )Nzt	t	)rN   rM  
expandtabsrK  rL  r3   s    r   $test_expandtabs_overflows_gracefullyz0UnicodeTest.test_expandtabs_overflows_gracefullyr	  s      	-)<)<ckkJr   c                 H    d}| j                  |j                         |       y )NrT   )rY  r8  )r4   rb  s     r   test_expandtabs_optimizationz(UnicodeTest.test_expandtabs_optimizationw	  s    allna(r   c                   	
 d}|dz   }t        j                  |      }t        j                  |      }dD ]  	t        	      }|dk  rd}|}n|dk  rd}|}n|dk  rd}|}nd	}|}t        j                  |z
  |z  
	
fd
}| j                  	||      5  | j                  t        j                  	dz        ||dz  z          | j                  t        |       | j                  t        |       d d d         y # 1 sw Y   xY w)NnnbnP)r   r  r  r  r  r   rm   r4  r   r   c                       z  S r!   r   )r  maxlens   r   <lambda>z0UnicodeTest.test_raiseMemError.<locals>.<lambda>	  s    D6M r   )r  struct_size	char_sizer
   +   )
r   calcobjsizer  rK  rL  r   r?   	getsizeofrN   r  )r4   asciifieldscompactfieldsascii_struct_sizecompact_struct_sizecoderC  rB  allocr  r@  s            @@r   test_raiseMemErrorzUnicodeTest.test_raiseMemError|	  s&   #d*#//<%11-@9 	6Dt9Dd{	/	1	1	1 {{[0Y>F)E'#   6   MM$),9#78 !!+u5!!+u56 6'	6&6 6s   AC<<D	c                      G d dt               } |d      }| j                  d|z  d       | j                  dj                  |      d       y )Nc                       e Zd Zd Zy)+UnicodeTest.test_format_subclass.<locals>.Sc                      y)N__str__ overriddenr   r3   s    r   r;  z3UnicodeTest.test_format_subclass.<locals>.S.__str__	  s    +r   Nr  r   r   r   r  rP  	  s    ,r   r  xxxr  rR  r  )r:   r?   r  r4   r  rb  s      r   test_format_subclassz UnicodeTest.test_format_subclass	  sG    	, 	, eH#78Q)=>r   c                      G d dt               }| j                   |d       |d      z   d        G d dt               } |d      }|dz  }| j                  |d       y )Nc                       e Zd Zd Zy)(UnicodeTest.test_subclass_add.<locals>.Sc                      yNrC  r   r4   r^  s     r   __add__z0UnicodeTest.test_subclass_add.<locals>.S.__add__	      r   N)r)   r*   r+   r\  r   r   r   r  rX  	  r  r   r  r  r  rC  c                       e Zd Zd Zy)rX  c                      yrZ  r   r[  s     r   __iadd__z1UnicodeTest.test_subclass_add.<locals>.S.__iadd__	  r]  r   N)r)   r*   r+   r`  r   r   r   r  z(UnicodeTest.test_subclass_add.<locals>.S	  r  r   r@  r@  rT  s      r   test_subclass_addzUnicodeTest.test_subclass_add	  s\    	 	 	3!C&#.	 	 cF	SC r   c                     d}|j                         }| j                  |d   |       | j                  |d   |       | j                  t        |      d       y )NrT   r   r   )__getnewargs__assertIsNotr?   r[  )r4   r$   rE   s      r   test_getnewargszUnicodeTest.test_getnewargs	  sQ    ""$a$'a$'TA&r   c                    t        ddd      D ]  }d|z  dz   }| j                  t              5  t        j                  |      }d d d        | j                  |       |dz  }| j                  t              5  t        j                  |      }d d d        | j                  |       | j                  ||        y # 1 sw Y   zxY w# 1 sw Y   <xY w)Nr   r   r   r   r   r   )rz   assertWarnsr  r  	getargs_ur?   rQ   )r4   lengthr$   rT   r  s        r   test_resizezUnicodeTest.test_resize	  s     AsA& 	+F<#%D !!"45 0))$/0S$' CKD!!"45 3",,T23V,VT*	+
0 03 3s   B=8C	=C		C	c                 L   d}d|z  }d|z  }d|z  }d|z  }d|z  }d|z  }d|z  }d	|z  }	||||||||	f}
t        j                  |
d
      D ]  \  }}||u }| j                  ||k(  |       | j                  ||k7  |        |s8| j                  ||k         | j                  ||k\         t	        |      }t	        |      }| j                  ||       | j                  ||k(         | j                  ||k7         | j                  ||k         | j                  ||k\          | j                  ||k         | j                  ||k         | j                  ||k         | j                  ||k         | j                  ||k\         | j                  ||k\         | j                  ||k\         | j                  ||k\         | j                  ||k         | j                  ||k         | j                  ||k         | j                  ||k         | j                  ||k\         | j                  ||k\         | j                  ||k\         | j                  ||k\         | j                  ||k         | j                  ||k         | j                  ||k         | j                  ||k         | j                  ||k\         | j                  ||k\         | j                  ||k\         | j                  ||k\         | j                  ||k         | j                  ||k         | j                  ||k         | j                  ||	k         | j                  ||k\         | j                  ||k\         | j                  ||k\         | j                  ||	k\         y )Nr   r   r  r|  rJ   r   rK   r'  r  r   )	itertoolscombinationsr?   r@   r%   rd  r~  )r4   rz  rv   ascii2latinlatin2bmpbmp2astralastral2stringstext1text2equalcopy1copy2s                   r   test_comparezUnicodeTest.test_compare	  sp   aq
!l!|!"66G	
 &227A> 	0LE5e^EUe^U3Ue^Y7//
 )/(/  ./  %0//)	0, 	'&$'&)%(#&&)''$''&)#&&)u%u%d
#f%u%u%%'%(%($'()%(%($'7*+r   c                     t        j                  | t        t               t        j                  | t        t               y r!   )r   check_free_after_iteratingr   r:   reversedr3   s    r   test_free_after_iteratingz%UnicodeTest.test_free_after_iterating
  s&    **4s;**43?r   c                     d}d}t        j                  d|d|d|d|d|d|d	|d
      }t        ddd|      }| j                  |j                  d|       y )N)rv   utf8latin1zBoom, Shaka Laka, Boom!z0
            import sys
            encodings = zn

            for data in (b'', b'short string'):
                try:
                    str(data, encoding=z)
                except LookupError:
                    pass
                else:
                    sys.exit(21)

                try:
                    str(data, errors=z)
                except LookupError:
                    pass
                else:
                    sys.exit(22)

                for encoding in encodings:
                    try:
                        str(data, encoding, errors=z)
                    except LookupError:
                        pass
                    else:
                        sys.exit(22)

            for data in ('', 'short string'):
                try:
                    data.encode(encoding=z)
                except LookupError:
                    pass
                else:
                    sys.exit(23)

                try:
                    data.encode(errors=z)
                except LookupError:
                    pass
                else:
                    sys.exit(24)

                for encoding in encodings:
                    try:
                        data.encode(encoding, errors=z)
                    except LookupError:
                        pass
                    else:
                        sys.exit(24)

            sys.exit(10)
        z-Xdevz-cr   )textwrapdedentr   r?   rc)r4   	encodingsinvalidrK  procs        r   test_check_encoding_errorsz&UnicodeTest.test_check_encoding_errors
  s     0	+ $" &( )0{ 3& '.[ 14 5<; ?* +2 5( )0{ 36 7>[ A	Y3  3h %T5$="d+r   )vr)   r*   r+   r:   r  r5   rH   rR   r   r   r   r   r   r   r   r   r   r   r   r   r  r"  r)  r/  r2  rD  unittestskipIfrK  rL  rP  rV  r   cpython_onlyr[  rc  rl  rp  r}  r  r  r  requires_resourcer  r  r  r  r  r  r  r  requires_legacy_unicode_capir  r  r  r  r  r  r  r  r  r
  r  
skipUnlessr  r%  r+  r  r  r  r  r  r  r  r2  r5  rA  rD  rF  rM  run_with_localerS  r`  rc  rh  rs  rv  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r*  r2  r5  structcalcsizer9  r;  rM  rU  ra  re  rj  r{  r  r  __classcell__)r  s   @r   r-   r-   :   s   
 I<6$,&9P'8R32<A87<+HZ'IRR0S4DHLM";(R"S"@( X__S[[5(46767
@. < <
.,?99v11
KL Wu%4 &4G
11
K$
IK&- )W))+X__Y$&(?@O A , O5O65,85"H"9"D4< X	13KL
  M
%;N	,F5P
5Mn1
1
0
I<hNT#+J*
K X__Y$&(?@* A *
*
( WXw8. 9.B6HE	P1"fCJ7"-H^W8r1&AE4H,8HtMH^O'9R-B^5Cn;?(,2,> X__S[[G,I0D0I79K9K ) )$6L?
!' )W))+X__Y$&(?@+ A , +"H,T@:,r   r-   c                       e Zd Zd Zd Zd Zy)StringModuleTestc                 d   d } |d      }| j                  |g d        |d      }| j                  |ddg        |d      }| j                  |dg        |d	      }| j                  |g         |d
      }| j                  |dg       | j                  t        t        j                  d       y )Nc                 >    t        t        j                  |             S r!   )r  _stringformatter_parserr;  s    r   parsez5StringModuleTest.test_formatter_parser.<locals>.parse^
  s    00899r   z2prefix {2!s}xxx{0:^+10.3f}{obj.attr!s} {z[0]!s:10}))prefix rA  rl   rb  )rS  r  z^+10.3fN)rl   zobj.attrrl   rb  )rM   zz[0]r  rb  zprefix {} suffix)r  rl   rl   N)z suffixNNNr:   )r:   NNNrl   r{  )rl   r  rl   Nr   )r?   rN   r{   r  r  )r4   r  	formatters      r   test_formatter_parserz&StringModuleTest.test_formatter_parser]
  s    	: NO	 %
 	 ,-	%)%
 	
 %L	%%
 	 "I	B'%L	%
 	 	)W%=%=qAr   c                 ,   d }| j                   |d      dg g       | j                   |d      ddgg       | j                   |d      ddgg       | j                   |d      dg dg       | j                  t        t        j                  d	       y )
Nc                 d    t        t        j                  |             }t        |d         |d<   |S )Nr   )r  r  formatter_field_name_split)r8  itemss     r   r!  z?StringModuleTest.test_formatter_field_name_split.<locals>.split
  s-    ;;DABEE!H~E!HLr   r_  zobj.argTargzobj[key])Fr  zobj.arg[key1][key2])r  )Fkey1)Fkey2r   )r?   rN   r{   r  r  )r4   r!  s     r   test_formatter_field_name_splitz0StringModuleTest.test_formatter_field_name_split~
  s    	 	ur{3y)EM?+CDz*U^4D,EF458 	 	)W%G%GKr   c                    t        d      }t        d      } G d d      } |       }| j                  t              5  t        ||       d d d        t	        ||d       | j                  |j                  d       d|_        | j                  t        |j                        |g       | j                  t              5  t        ||       d d d        | j                  t              5  |`	d d d        t	        ||d       | j                  |j                  d       d|_	        | j                  t        |j                        ||g       y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   zxY w)	Nr8  name2c                       e Zd Zy)4StringModuleTest.test_str_subclass_attr.<locals>.BagNr(   r   r   r   Bagr  
  r   r   r  r   r   r   r   )
r'   rN   AttributeErrordelattrsetattrr?   r8  r  __dict__r  )r4   r8  r  r  r^  s        r   test_str_subclass_attrz'StringModuleTest.test_str_subclass_attr
  s1   6"G$	 	 E~. 	At	4#ajj)D62~. 	Au	~. 		5!!$ajj)D%=9	 		 		 	s#   E
=E'E#
EE #E,N)r)   r*   r+   r  r  r  r   r   r   r  r  \
  s    BBL :r   r  __main__) r  r/   rl  r  r   r  rK  r  r  r  rh  test.supportr   r  r   r   test.support.script_helperr   r  ImportErrorr   r%   r:   r'   r   r.  MixinStrUnicodeTestTestCaser-   r  r)   mainr   r   r   <module>r     s          
     ( & <
 "	# 	_(,,))22((_(,DQH:x(( H:V zHMMO ]T  Is   B; ;CC