
    9bh                        d dl Z d dlZd dlmZ d dlmZ 	 d dlZd dlmZmZ dZ
 G d de      Z G d de j                        Zed	k(  r e j                           yy# e	$ r dZY Cw xY w)
    N)support)import_helper)PY_SSIZE_T_MINPY_SSIZE_T_MAXc                       e Zd Zy)StrN)__name__
__module____qualname__     E/opt/python-3.12.12/usr/lib/python3.12/test/test_capi/test_unicode.pyr   r      s    r   r   c                   *   e Zd Zej                   ej                  edu d      d               Zej                   ej                  edu d      d               Z	ej                   ej                  edu d      d               Z
ej                   ej                  edu d      d               Zej                   ej                  edu d      d               Zej                   ej                  edu d      d               Zej                   ej                  edu d      d	               Zej                   ej                  edu d      d
               Zej                   ej                  edu d      d               Zej                   ej                  edu d      d               Zej                   ej                  edu d      d               Zej                   ej                  edu d      d               Zej                   ej                  edu d      d               Zd Zej                   ej                  edu d      d               Zej                   ej                  edu d      d               Zej                   ej                  edu d      d               Zej                   ej                  edu d      d               Zej                   ej                  edu d      d               Zej                   ej                  edu d      d               Zej                   ej                  edu d      d               Zej                   ej                  edu d      d               Zej                   ej                  edu d      d               Zej                   ej                  edu d      d               Zej                   ej                  edu d      d               Z ej                   ej                  edu d      d               Z!ej                   ej                  edu d      d               Z"ej                   ej                  edu d      d               Z#ej                   ej                  edu d      d               Z$ej                   ej                  edu d      d                Z%ej                   ej                  edu d      d!               Z&ej                   ej                  edu d      d"               Z'ej                   ej                  edu d      d#               Z(ej                   ej                  edu d      d$               Z)ej                   ej                  edu d      d%               Z*ej                   ej                  edu d      d&               Z+ej                   ej                  edu d      d'               Z,ej                   ej                  edu d      d(               Z-ej                   ej                  edu d      d)               Z.ej                   ej                  edu d      d*               Z/ej                   ej                  edu d      d+               Z0ej                   ej                  edu d      d,               Z1ej                   ej                  edu d      d-               Z2ej                   ej                  edu d      d.               Z3ej                   ej                  edu d      d/               Z4ej                   ej                  edu d      d0               Z5ej                   ej                  edu d      d1               Z6y)2CAPITestNzneed _testcapi modulec                 $   	 ddl m} dD ]\  }| j                   |d|      d       | j                   |d|      t        |      dz         | j	                  t
        |t        |       ^ | j                   |dd      d       | j	                  t
        |t        dz  d       | j	                  t
        |t        dz  d	z   d       | j	                  t
        |t        dz  d
       | j	                  t
        |t        dz  d	z   d
       | j	                  t
        |t        dz  d
       | j	                  t
        |t        dz  d	z   d
       | j	                  t        |dd       | j	                  t        |dd       | j	                  t        |t        d       y )Nr   )unicode_new)r   a      `O               r      r      )		_testcapir   assertEqualchrassertRaisesMemoryErrorr   SystemErrorr   )selfnewmaxchars      r   test_newzCAPITest.test_new   sW    	#0?GSG_b1SG_c'l1n=k3H @ 	Q)2.+sNA,=vF+sNA,=a,?H+sNA,=wG+sNA,=a,?I+sNA,=wG+sNA,=a,?I+sAx8+sB2+sNA>r   c                    	 ddl m} g d}g d}t        |      D ]  \  }}|d | D ]  }| j                  t        ||dd|        ||d  D ]  }g t        d      t        D ]  }g t        dd|z
        t        t        D ]c  }t        t        |d|z
        d      }	|	dk(  r	|||   k7  r*|d | t        |      |	z  z   |||	z   d  z   }
| j                   |||||      |
|	f       e    |d   }| j                  t        ||ddd       | j                  t        ||t        dd       | j                  t        ||ddd	       | j                  t        |d
ddd       | j                  t        |g ddd       y )Nr   )unicode_fillabcdeu
   ¡¢£¤¥u   你好世界！u   😀😁😂😃😄)x         8    r   r   r-   r      abc)r   r*   	enumerater"   
ValueErrorranger   r   maxminr!   r    
IndexErrorr$   )r%   fillstringscharsidx	fill_chartostartlengthfilledexpectedss               r   	test_fillzCAPITest.test_fill*   s    	$2
 .'.NCdsm!!*dB1iH $cdm8uQx88E"YE"a%i$8"Y."Y."Y!$SU%;Q!?!Q;2+= %#%fu:I0G#G"UU[^_J]#]((b%)K)16(:< #Z 9 $	 /  AJ*dAr1d;*dA~q$G*dAq!X>+tVQ4@+tRAt<r   c           	      J   	 ddl m} g d}g d}t        |      D ]h  \  }}t        |      D ]U  \  }}||k  r2| j                   ||d|      |d d t	        |      z   |dd  z   df       =| j                  t        ||d|       W j | j                  t        |ddd	       | j                  t        |dd
d	       | j                  t        |dt        d	       | j                  t        |dt        d	       | j                  t        |ddd	       | j                  t        |g dd	       y )Nr   )unicode_writecharabcu   ¡¢£u	   你好世u   😀😁😂)r-   r.   r/   r0   r   r   r   rH      r-   r   r2   )r   rF   r3   r    r!   r"   r4   r8   r   r   	TypeError)r%   	writecharr:   r;   irC   jcs           r   test_writecharzCAPITest.test_writecharR   s    	)<
 8g&DAq!%(16$$Yq!Q%7&'ec!fnqu&<a%@B %%j)Q1E ) ' 	*i4@*iDA*iM*iM)Y4@)YAt<r   c                 |   	 ddl m} g d}|D ]  }| j                   ||d      |df       | j                   ||d      |d d df       | j                   ||d      |dz   df       | j                   ||d      |d	z   df       | j                   ||d      d
       | j                  t        ||t
               | j                  t        ||d       | j                  t        ||t                | j                  t        |dd       | j                  t        |g d       | j                  t        |t        d       y )Nr   )unicode_resizerG   rI   r   r    
   z       )r   r   r   r2   )	r   rQ   r    r"   r#   r   r$   r   NULL)r%   resizer:   rC   s       r   test_resizezCAPITest.test_resizeq   s#    	&6

 AVAq\Aq62VAq\AbqE1:6VAq\AHa=9VAr]QZO<VAq\73k61nEk61b9k61nE  	+vvq9+vr15+vtQ7r   c                    	 ddl m} g d}|D ]/  }|d d d   }|D ]   }||z   }| j                   |||      |       " 1 | j                  t        |dd       | j                  t        |dd       | j                  t        |dd       | j                  t        |dg        | j                  t        |g d       | j                  t        |g g        | j                  t        |t
        d       | j                  t        |dt
               y )Nr   )unicode_appendrG   r   rH   r2   )r   rX   r    r"   r$   rT   )r%   appendr:   leftrightrB   s         r   test_appendzCAPITest.test_append   s     	&6
 D":D %<  e!4h? !  	+vuf=+vvu=+vvv>+vub9+vr59+vr26+vtU;+vud;r   c                    	 ddl m} g d}|D ]-  }|d d d   }|D ]  }| j                   |||      ||z            / | j                  t        |dd       | j                  t        |dd       | j                  t        |dd       | j                  t        |dg        | j                  t        |g d       | j                  t        |g g        | j                  t        |t
        d       | j                  t        |dt
               y )Nr   )unicode_appendanddelrG   r   rH   r2   )r   r^   r    r"   r$   rT   )r%   appendanddelr:   rZ   r[   s        r   test_appendanddelzCAPITest.test_appendanddel   s     	,B
 D":D   dE!:D5LI ! 
 	+|UFC+|VUC+|VVD+|UB?+|R?+|R<+|T5A+|UDAr   c                    	 ddl m} | j                   |d      d       | j                   |dd      d       | j                   |d      d       | j                   |d	      d
       | j                   |d      d       | j                   |d      d       | j                  t        |dd       | j                  t        |dd       | j                   |dd      d       | j                   |t
        d      d       | j                  t        |dt               | j                  t        |dd       | j                  t        |dt               | j                  t        |t
        d       | j                  t        |t
        t               | j                  t        |t
        d       | j                  t        |t
        t               y )Nr   )unicode_fromstringandsizer2   rH   r   ab   abc defabc def   ¡¢   ¡¢   你   你   😀   😀s   ¡r      r   r   r   rI   )
r   rb   r    r"   UnicodeDecodeErrorrT   r#   r   r$   r   )r%   fromstringandsizes     r   test_fromstringandsizezCAPITest.test_fromstringandsize   s    	1L*62E:*615t<*;7D*+>?L*?;XF*+>?N,.?aP,.?!L*32B7*43R8+'8&.Q+'8&"E+'8&.Q+'8$C+'8$O+'8$B+'8$Or   c                 ^   	 ddl m} | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d	      d
       | j                  t        |d       | j                  t        |d       | j                   |d      d       y )Nr   )unicode_fromstringr2   rH   rf   rg   rh   ri   rj   rk      rl   r   r   )r   rq   r    r"   rm   )r%   
fromstrings     r   test_fromstringzCAPITest.test_fromstring   s     	*>F+U3$78*EO4h?$78,G,j'B,j'BC"-r   c           	         	 ddl m} g d}d}|d d D ]*  }| j                   |d|j                  |            |       , t        j
                  dk(  rdnd	}|d d
 D ]*  }| j                   |d|j                  |            |       , t        j
                  dk(  rdnd}|D ]*  }| j                   |d|j                  |            |       , | j                   |ddj                  |            d       dD ]U  }| j                   ||d      d       | j                   ||d|z        d       | j                   ||t        d      d       W dD ]  }| j                  t        ||d        | j                  t        |ddd       | j                  t        |ddt               | j                  t        |dt        d       | j                  t        |dt        t               y )Nr   )unicode_fromkindanddatar+   latin1r   r   littleutf-16leutf-16berI   utf-32leutf-32ber   rk   u   )r   r   r   r   r       rR   )r   r   rI   r      r2   r   )r   rv   r    encodesys	byteorderrT   r"   r$   r4   r   )r%   fromkindanddatar:   enc1rC   enc2enc4kinds           r   test_fromkindanddatazCAPITest.test_fromkindanddata   s    	/H

 !A_Q?C  ]]h6zJ!A_Q?C  ]]h6zJA_Q?C L,?,?,EF'	)D_T37<_T5:>E_T4;R@ 
 #Dk?D#F #*oq&"E*oq&.Q*oq$C*oq$Or   c           
         	 ddl m} g d}|D ]v  }g t        dt        |      dz         t        D ]Q  }g t        t        |dz
  d      t        |      dz         t        D ]  }| j                   ||||      |||        ! S x | j                  t        |ddd       | j                  t        |dt        d       | j                  t        |ddd       | j                  t        |ddt               y )Nr   )unicode_substring)rc   u   ab¡¢u   ab¡¢你好u   ab¡¢你好😀😁r   r   rH   r   )
r   r   r5   lenr   r6   r    r"   r8   r   )r%   	substringr:   rC   r?   ends         r   test_substringzCAPITest.test_substring  s     	)<

 A@5CFQJ/@@PU3uQw?CFQJ?PPC$$Yq%%=qs|L Q A 
 	*iA>*iJ*i2>*i>Jr   c                     	 ddl m} dD ]#  }| j                   ||      t        |             % | j	                  t
        |d       | j	                  t
        |g        y )Nr   )unicode_getlengthrH   rg   u   你好   a😀u	   abcu   r2   )r   r   r    r   r"   rJ   )r%   	getlengthrC   s      r   test_getlengthzCAPITest.test_getlength'  sT     	)<5AYq\3q625 	)Y7)Y3r   c           	         	 ddl m} dD ]  }t        |      D ]'  \  }}| j                   |||      t	        |             ) | j                  t        ||t        |             | j                  t        ||t               | j                  t        ||d       | j                  t        ||t                | j                  t        |dd       | j                  t        |g d       y )Nr   )unicode_readcharr   r   r2   )r   r   r3   r    ordr"   r8   r   r   r   rJ   )r%   readcharrC   rL   rN   s        r   test_readcharzCAPITest.test_readchar5  s     	(:5A!!1  !QQ8 %j(As1v>j(A~Fj(Ar:j(A~F5 	)Xvq9)Xr15r   c                 X   	 ddl m} dD ]p  }| j                   ||      |       t        |      } ||      }| j                  ||       | j	                  t        |      t               | j                  ||       r | j                  t        |d       | j                  t        |g        y )Nr   )unicode_fromobjectr   r2   )
r   r   r    r   assertIstypestrassertIsNotr"   rJ   )r%   
fromobjectrC   os2s        r   test_fromobjectzCAPITest.test_fromobjectH  s     	*>5AZ]A.AAABR#MM$r(C(R#5 	)Z8)Z4r   c           
          ! 	 t        j                  d       ddlm}m}m!m}m}m}m	}m
}m}m}	m}
m}m}m}m}m} d}t%        ||       |f _        ! _         !fd fd} |ddd	        j+                  t,        d
dd        |dd |d              |dd |d              j/                  t0              5   d |d             d d d         |dd |d       |d              |dd        |dd        |dd        |ddd        |d d!d"        |d#d$d%j3                  d&              |d'd(d)        |d*d+d,        |d-d.d)        |d/d0d,        |d1d2d,        |d1d3d,        |d1d4d,d         |d#d5d d%j3                  d&              |d6d7d         |d8d9d         |d:d;d         |d<d=d         |d>d?d         |d@dAd         |d<dBd         |d>dCd         |d@dDd         |d6dEd        |d8dFd        |d:dGd        |d6dHd         |d8dId         |d:dJd         |d6dKd dL        |d8dMd dL        |d:dNd dL        |dOdKd dL        |dPdMd dL        |dQdNd dL        |dRdS |dT              |dUdV |dT             dWD ]d  \  }}}}dX|r|n|fdY|r|n|	fdZ|r|n|
fd[|r|n|ffD ]<  \  }} j5                  d\|z   |z   ]      5   ||d\|z   |z    ||             d d d        > f d^d_ ||      z  d`z
  z   }| d`z
  } |t7        |      da ||              |t7        |      da ||             d^d_ ||
      z  z  d`z
  } |t7        |      db |
|              dc |dd              |dedf |dg              |dhdi |dg              |djdk |dg              |dldm |dg              |dldn |dg              |dedo |dg              |dpdq |dg              |dhdr |dg              |dsdt |dg              |djdu |dg              |dvdw |dg              |dvdx |dg              |dydf |dz              |d{di |dz              |d|dk |dz              |d}dm |dz              |d}dn |dz              |dydo |dz              |d~dq |dz              |d{dr |dz              |ddt |dz              |d|du |dz              |ddw |dz              |ddx |dz              |ded |dg              |dhd |dg              |djd |dg              |dld |dg              |dld |dg              |ded |dg              |dpd |dg              |dhd |dg              |dsd |dg              |djd |dg              |dvd |dg              |dvd |dg              |ded |d              |dhd |d              |djd |d              |dld |d              |dld |d              |ded |d              |dpd |d              |dhd |d              |dsd |d              |djd |d              |dvd |d              |dvd |d              |d d |d              |dd |d              |dd |d              |dd |d              |dd |d              |d d |d              |dd |d              |dd |d              |dd |d              |dd |d              |dd |d              |dd |d              |dd |d              |dd |d              |dd |d              |dd |d              |dd |d              |dd |d              |dd |d              |dd |d              |dd |d              |dd |d              |dd |d              |dd |d              |ddd«        |d dd dī        |ddd dī        |d d |d               |dd |dǫ              |dd |dȫ              |dd |d               |dd |dǫ              |dd |dȫ              |dd |dǫ              | ||      d^kD  rdndd |dȫ              | ||      d^kD  rdndd |dȫ              |d dd  |dū              |ddd  |dū              |ddd  |dǫ              |ddd  |dȫ              |ddd  |d               |ddd  |dǫ              |ddd  |dȫ              |ddd  |dǫ              | ||      d^kD  rdnddd  |dȫ              | ||      d^kD  rdnddd  |dȫ              |dd |d۫      d        |dd |d^      d        |dd |d۫       |d^      d        |dd |d۫      d         |dd |d^      d         |dd |d۫       |d^      d         |dd |d۫       |d^      d d        |dd |d۫       |d^      d  |d               |dd |d_       |dg              |dd |d۫       |dg              |dd |d_       |d۫       |dg             d} dcd       } j9                  |t6                j;                  ||        dddī      } j9                  |t6                j;                  |d        dcdd dī      } j9                  |t6                j;                  ||        |ddd d        |ddd d        |ddX        |dddX       dD ]6  } j5                  |      5   j+                  t<        d|d       d d d        8  j+                  t<        dd |dT             y # 1 sw Y   
xY w# 1 sw Y   xY w# 1 sw Y   |xY w)Nctypesr   )c_char_p	pythonapi	py_objectsizeofc_intc_long
c_longlong	c_ssize_tc_uintc_ulongc_ulonglongc_size_tc_void_pr   c_wchar	c_wchar_pPyUnicode_FromFormatc                 >    t        fd|D              } | g| S )Nc              3   R   K   | ]  }t        |t              r |      n|   y wN)
isinstancer   ).0argr   s     r   	<genexpr>zJCAPITest.test_from_format.<locals>.PyUnicode_FromFormat.<locals>.<genexpr>n  s+      !C #-S#"6	#C?s   $')tuple)formatargscargs_PyUnicode_FromFormatr   s      r   r   z7CAPITest.test_from_format.<locals>.PyUnicode_FromFormatm  s,     !! !E )8%88r   c                 <     |g| }j                  | |       y r   )r    )rB   r   r   textr   r%   s       r   check_formatz/CAPITest.test_from_format.<locals>.check_formats  s"    '66DXt,r   u   ascii=unicodeés	   ascii=%Uu	   unicodeéz^^PyUnicode_FromFormatV\(\) expects an ASCII-encoded format string, got a non-ASCII byte: 0xe9$s   unicode=%sasciiu   ꯍs   %ciͫ  u   􏿿r   r   u   𐀀􀀀s   %c%ci   i   %s   %%z%ss   %%sz[%]s   [%%]z%abcs   %%%sr2   rH   s   %.3ss   abcdefu   abc[�s   %.5su   abc[€]utf8z'\u20acABC's   %Au   €ABCz'\u20s   %.5Au	   €ABCDEFu   '€ABC's   %Ru   '€As   %.3Ru   €ABs   %.3Ss   %.3Us   %.3Vs   %.5Vz
repr=  abcs   repr=%5Szrepr=abs	   repr=%.2Sz
repr=   abs
   repr=%5.2Szrepr=   'abc's   repr=%8Rzrepr='abs	   repr=%.3Rz
repr=  'abs
   repr=%5.3Rs   repr=%8As	   repr=%.3As
   repr=%5.3As   repr=%5ss	   repr=%.2ss
   repr=%5.2ss   repr=%5Us	   repr=%.2Us
   repr=%5.2Us   repr=%5V   123s	   repr=%.2Vs
   repr=%5.2Vz
repr=  123zrepr=12z
repr=   12010s   %03irS   0010s   %0.4i))   iT-123)   dTr   r   )   uF{   123)   oFS   r   )   xF
  rH   )   XFr   ABCr      ls   ll   z   %)r   r   r~   r   s   %llds   %llus   %pr   r   s   %2ir   z
       123s   %10i
0000000123s   %010iz
123       s   %-10is   %-010is   %.2i0000123s   %.7is   %10.2iz
   0000123s   %10.7is   %010.7iz
0000123   s   %-10.7is   %-010.7ir   r   z
      -123z
-000000123z
-123      z-0000123z
  -0000123z
-0000123  s   %2us   %10us   %010us   %-10us   %-010us   %.2us   %.7us   %10.2us   %10.7us   %010.7us   %-10.7us   %-010.7us   %2or   s   %10os   %010os   %-10os   %-010os   %.2os   %.7os   %10.2os   %10.7os   %010.7os   %-10.7os   %-010.7os   %2xr   z
       abcs   %10x
0000000abcs   %010xz
abc       s   %-10xs   %-010xs   %.2x0000abcs   %.7xs   %10.2xz
   0000abcs   %10.7xs   %010.7xz
0000abc   s   %-10.7xs   %-010.7xr   s   %2Xz
       ABCs   %10X
0000000ABCs   %010Xz
ABC       s   %-10Xs   %-010Xs   %.2X0000ABCs   %.7Xs   %10.2Xz
   0000ABCs   %10.7Xs   %010.7Xz
0000ABC   s   %-10.7Xs   %-010.7Xz%A:'abc\xe9\uabcd\U0010ffff's   %%A:%Au   abcéꯍ􏿿s   %Vs   xyzxyzs   %lsu   人民u	   💻+🐍z   abs   %5.2lsu	      人民s   %5lsu     💻+🐍u   人s   %.1lsu   💻   u   💻+s   %.2lss   %lVs   %5.2lVs   %5lVs   %.1lVs   %.2lVz  abcs   %*sr   rc   s   %.*ss   %*.*ss   %*Us   %.*Us   %*.*Us   %*.*Vs   %*.*lVz     123s   %*i00123s   %.*iz   00123s   %*.*iz^0x[a-zA-Z0-9]{3,}$s   %p %p123456z#0x[a-zA-Z0-9]{3,} 0x[a-zA-Z0-9]{3,}u   repr=人民s   repr=%Vs   人民u   repr=abc�s   abcr   s   %s)r   s   %0s   %01s   %.s   %.1s   %0%ss   %1%ss   %.%ss   %.1%ss   %1abcs   %ls   %lls   %zs   %llss   %zs)fmtzinvalid format strings   %+i)r   import_moduler   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   getattrargtypesrestypeassertRaisesRegexr4   r"   OverflowErrorr   subTestr   assertIsInstanceassertRegexr$   )"r%   r   r   r   r   r   r   r   r   r   r   r   r   r   r   namer   convsignedvaluerB   modctypemin_longlongmax_longlongmax_ulonglongp_format_regex	p_format1	p_format2	p_format3r   r   r   r   s"   `                              @@@r   test_from_formatzCAPITest.test_from_format[  sp   )
 	##H-	( 	( 	( 	( 	( & '	4 8*2&(1%	9	-
 	,$m	5
 	z2 "3W	> 	XE&M	+\E(O	-}- h8 . 	+eGneHo	? 	S	T	U	Vf	& 	Ui	)\m226:	<^K	)Xn	.]K	)Zn	.Zn	.Zn	.Znd	4\dM$8$8$@	B
 	\ %	)Y!5	*\"E	+ 	_ %	)Z!5	*\"E	+ 	_ %	)Z!5	*\"E	+ 	\ &	*Y!6	+\"F	, 	\ %	)Y!5	*\"E	+ 	\ %	1Y!5&	2\"E6	3\ $	0Y!4	1\"D&	2 	UeBi	)VuRy	*.
)D&% ve62vW5f
+>Fy9	
U \\d):\; !%d!2E%LB <;.
& q6*#559:;$}q(S&j6	8S&j6	8a&"556:S'k-8	:UHRL1 	U65:6\7E#J7\8U3Z8\8U3Z8\9eCj9U7E#J7Y7E#J7\9eCj9\9eCj9\:uSz:\:uSz:\;c
;V65;7\7E$K8\8U4[9\8U4[9\9eDk:V7E$K8Z7E$K8\9eDk:\9eDk:\:uT{;\:uT{;\;d<U66#;7\7F3K8\8VC[9\8VC[9\9fSk:U7F3K8Y7F3K8\9fSk:\9fSk:\:vc{;\:vc{;\;s<U66%=9\7F5M:\8VE];\8VE];\9fUm<U7F5M:Y7F5M:\9fUm<\9fUm<\:ve}=\:ve}=\;u>U66%=9\7F5M:\8VE];\8VE];\9fUm<U7F5M:Y7F5M:\9fUm<\9fUm<\:ve}=\:ve}=\;u>U66%=9\7F5M:\8VE];\8VE];\9fUm<U7F5M:Y7F5M:\9fUm<\9fUm<\:ve}=\:ve}=\;u> 	4 9	; 	UE6	+UD&	* 	UFIe$45^VY~-FG,Y'>?	AWi5)9:&>1JK.i(?@	BXx>)BCVG_q%8\hy)@A	CfWo&9]|y)@A	C 	UUIe$4	6UT9U#3	5^T9^#<	>,T9-D#E	GWi&6	8&dIn$=	?.dI.E$F	HXtY~%>	@VG_q%8\htY/F%G	IfWo&9]|tY/F%G	I 	WfeAh7T7E!Hf5Wha%(FCWfeAh6T7E!He4Wha%(EBWha%(D&IWiq589U+	-Zq5:>WguQxs<Z58U1XuSzJ 0(6	i-N3(8VD	i-?	A )$G	i-N3
 	('B	D 	%z	3 	R	RC	!
;C #&&&{4K(#v7 '&; 	{,C &%)	5o	 .-` <;H '&s$    nn+n8n(+n58o	c                 f    	 ddl m} dj                         } ||      }| j                  |d       y )Nr   )unicode_interninplacer2   rH   )r   r   decoder    )r%   interninplacerC   rs       r   test_interninplacezCAPITest.test_interninplace  s/     	-DMMO!E"r   c                     	 ddl m} | j                   |d      d       | j                   |d      d       | j                  t        |d       | j                  t        |d       | j                   |d	      d
       y )Nr   )unicode_internfromstringr2   rH   rj   rk   rr   rl   r   r   )r   r  r    r"   rm   )r%   internfromstrings     r   test_internfromstringzCAPITest.test_internfromstring  su     	0J)&159)*=>M,.>H,.>H)#.3r   c                    	 ddl m} ddl m} |dk(  rt        j                  dk(  rdnd}n|dk(  rt        j                  dk(  rd	nd
}dD ]J  }|j                        }| j                   ||      |       | j                   ||d|z  z   d      |       L dD ]K  }|j                  d      }| j                   ||      |       | j                   ||d|z  z   d      |       M | j                   |dj                        d      d       |dk(  r(| j                   |dj                  |      d      d       | j                  t        |dt               | j                  t        |d|z  d       | j                  t        |d|z  t               | j                   |t        d      d       | j                  t        |t        d       | j                  t        |t        t               | j                  t        |t        d       | j                  t        |t        d       | j                  t        |t        t               y )Nr   )unicode_fromwidecharSIZEOF_WCHAR_Tr   rx   ry   rz   r   r{   r|   )r   rH   rg   ri   rk   r}   r   )r   u   surrogatepassrH   rc   r   u   ar   r   r   )r   r  r	  r   r   r   r    r"   r#   r   r$   r   rT   )r%   fromwidecharr	  encodingrC   bs         r   test_fromwidecharzCAPITest.test_fromwidechar  s    	,B,Q%(]]h%>zJHq %(]]h%>zJH>A"A\!_a0\!eN.B*BBGK ? $A?3A\!_a0\!eN.B*BBGK $
 	ell8&<a@$GQ\-*>*>x*H!LiX+|S.I+|U>5I2N+|U>5I>ZdA.3+|T1=+|T>J+|T2>+|T2>+|T>Jr   c                    	 ddl m} ddl m} ddl m}  |dd      \  }}| j	                  |d       | j	                  |d        |dd	      \  }}| j	                  |d	       | j	                  |d       | j	                   |dd
      d       | j	                   |dd      d        |dd      \  }}| j	                  |d	       | j	                  |d        |dd
      \  }}| j	                  |d	       | j	                  |d        |dd      \  }}| j	                  |d       | j	                  |d       | j	                   |dd      d       t        d      }|dk(  rd}nd} ||d
      \  }}| j	                  ||       | j	                  ||dz          | j	                   ||d
      |dz          | j                  t        |dd
       | j                  t        |g d
       | j                  t        |t        d
       | j                  t        |dd
       | j                  t        |g d
       | j                  t        |t        d
       y )Nr   )unicode_aswidechar)unicode_aswidechar_nullr  abcdefr   rc   rH   rI   rS   r   abc re      r1   abc def r~   r   r   rR   r2   )
r   r  r  r	  r    r!   r"   rJ   r$   rT   )r%   r  r  r	  wcharsizenonbmpnchars           r   test_aswidecharzCAPITest.test_aswidechar  s1    	*05,(15tq!%(2tq!&0;Q?0:A>(2tq!((3tq!((R8tq!-0R@!DXQEE(4tu%.0<eaiH)%7D)%7R@+'94D)%<fbI)%<b"E+'>bIr   c                 &   	 ddl m} ddl m} ddl m}  |d      \  }}| j	                  |d       | j	                  |d       | j	                   |d      d        |d      \  }}| j	                  |d	       | j	                  |d
       | j                  t        |d       t        d      }|dk(  rd}nd} ||      \  }}| j	                  ||       | j	                  ||dz          | j	                   ||      |       | j                  t        |d       | j                  t        |g        | j                  t        |t               | j                  t        |d       | j                  t        |g        | j                  t        |t               y )Nr   )unicode_aswidecharstring)unicode_aswidecharstring_nullr  rH   rI   r  re   r1   r  r   r   r   rR   r2   )r   r  r  r	  r    r"   r4   r!   rJ   r$   rT   )r%   r  r  r	  r  r  r  r  s           r   test_aswidecharstringzCAPITest.test_aswidecharstring/  sj    	06;,.u5tq!(6u=uE.z:tq!-*&CZPXQEE.v6tu%.6v>G)%=vF)%=rB+'?F)%BFK)%BBG+'DdKr   c           	      \   	 ddl m} dD ]  }t        |      }| j                   |||d      |dz          | j                   |||d      |dz          | j                   |||dz   d      |dz          | j                   |||dz   d      |dz          | j	                  t
        |||dz
  d       | j	                  t
        |||dz
  d       dj                  ||g      }| j                   ||t        |      d      |dz          | j                   ||t        |      d      |dz          " y )	Nr   )unicode_asucs4r   r   rR   u   ￿u    ￿r   )r   r!  r   r    r"   r$   join)r%   r!  rC   ls       r   test_asucs4zCAPITest.test_asucs4R  s#    	&,5AAA^Aq!4af=^Aq!4ajA^AqsA6*E^AqsA6*Ek>1ac1Ek>1ac1E		1a&!A^As1vq91T6B^As1vq91X:F5r   c                     	 ddl m} dD ]K  }| j                   ||      |dz          dj                  ||g      }| j                   ||      |dz          M y )Nr   )unicode_asucs4copyr   rR   )r   r&  r    r"  )r%   
asucs4copyrC   s      r   test_asucs4copyzCAPITest.test_asucs4copyk  sX     	*>5AZ]AdF3		1a&!AZ]AdF3	5r   c                     	 ddl m} | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                  t        |d	       | j                  t        |d
       y )Nr   )unicode_fromordinalr   ar/      €r   rk   r   r   )r   r*  r    r"   r4   )r%   fromordinals     r   test_fromordinalzCAPITest.test_fromordinal{  sm     	+@T*C0V,h7W-|<*k8<*k26r   c                 j   	 ddl m} | j                   |dd      d       | j                   |dd      d       | j                   |d	d
      d       | j                   |dd      d       | j                  t        |dd       | j                  t
        |dd       | j                  t
        |g d       y )Nr   )unicode_asutf8rH   r      abc    абвr1      абв rk   r      😀 re   r~      abc def    r2   )r   r0  r    r"   UnicodeEncodeErrorrJ   )r%   r0  s     r   test_asutf8zCAPITest.test_asutf8  s     	&,q18<!46STa8:OP
A6F,nhJ)^VQ?)^R;r   c                 j   	 ddl m} ddl m} | 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       | j	                  t        |dd       | j	                  t        |g d       | j	                  t
        |dd       | j	                  t        |dd       | j	                  t        |g d       y )Nr   )unicode_asutf8andsize)unicode_asutf8andsize_nullrH   r   )r1  rI   r2  r1   )r3     rk   r   )r4  r   re   r~   )r5  r1   r1  r5  r6  r2   )r   r:  r;  r    r"   r7  rJ   )r%   r:  r;  s      r   test_asutf8andsizezCAPITest.test_asutf8andsize  s!    	-38.ua8-H.x;=_`.|Q?A[\.z1=?QR3E1=xH3JBMR,.CXqQ)%:FAF)%:BB,.H(TUV)%?K)%?QGr   c                 @    	 ddl m} | j                   |       d       y )Nr   )unicode_getdefaultencodings   utf-8)r   r?  r    )r%   getdefaultencodings     r   test_getdefaultencodingz CAPITest.test_getdefaultencoding  s     	2N+-x8r   c                 ^   	 ddl m} | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d      d	       | j                   |d
      d
       | j                  t        |d       | j                  t        |g        y )Nr   )'unicode_transformdecimalandspacetoasciir   u   ٣.١٤z3.14u
    3.14 z 3.14 u   12€3z12?r   r   )r   rC  r    r"   r$   )r%   transform_decimals     r    test_transform_decimal_and_spacez)CAPITest.test_transform_decimal_and_space  s     	@Z*51	 *+@A	!*+IJ!	#*;7	 *2.3+'8&A+'8"=r   c                 ,   	 ddl m} | j                   |dd      d       | j                   |dd      d       | j                   |dd      d	       | j                   |dd      d
       | j                   |dd      d       | j                  t        |dd       | j                  t        |dd       | j                  t        |dd       | j                  t        |g d       | j                  t        |dg        | j                  t        |g g        y )Nr   )unicode_concatrH   defr  u   гдеu	   abcгдеr2  u	   абвdefu   абвгдеza bzc dza bc dr2      def)r   rG  r    r"   rJ   )r%   concats     r   test_concatzCAPITest.test_concat  s     	&6u-x8x0+>%0+>(3^D/<)VVU;)VUF;)VVV<)VR7)VUB7)VR4r   c                 ,   	 ddl m} | j                   |dd      g d       | j                   |ddd      g d       | j                   |ddt              g d       | j                   |ddd      g d       | j                   |ddt              g d       | j                   |dd	      dg       | j                   |d
d      g d       | j                   |dd      g d       | j                   |dd      g d       | j                   |dt
              g d       | j                   |dt
              g d       | j                  t        |dd       | j                  t        |dt        d             | j                  t        |g d       y )Nr   )unicode_splita|b|c|d|r+  r  rN   dr   )r+  r  zc|dr   r,  	a||b|c||d||r+  b|crQ     а|б|в|г   а   б   в   г   абабагаламагаrX  r   rY  rY  r[  u   лu   мr[  r    a	b
cder+  r  rN   rQ  e   ab c d er   )
r   rM  r    r   r   rT   r"   r4   rJ   r   )r%   splits     r   
test_splitzCAPITest.test_split  sk    	%4y#.0DEy#q13DEy#~>-	/y#r24HIy#~>-	/y(3i[A{D13DE}c24LM;TBE	G1482	4:DA2	4 	*eY;)UIs3x@)UB4r   c                 b   	 ddl m} | j                   |dd      g d       | j                   |ddd      g d       | j                   |ddt              g d       | j                   |ddd      g d       | j                   |ddt              g d       | j                   |dd	      dg       | j                   |d
d      g d       | j                   |dd      g d       | j                   |dd      g d       | j                   |dd      g d       | j                   |dt
              g d       | j                   |dt
              g d       | j                  t        |dd       | j                  t        |dt        d             | j                  t        |g d       y )Nr   )unicode_rsplitrN  rO  rP  r   )a|brN   rQ  r   r,  rR  rS  rT  rV  rW  r\  rX  r]  u
   aжbжcжd   жr^  r_  ra  r   )
r   re  r    r   r   rT   r"   r4   rJ   r   )r%   rsplits     r   test_rsplitzCAPITest.test_rsplit  s    	&6	3/1EF	324EF	3?-	/	335IJ	3?-	/	84ykBT24EFs35MN <dCE	Gd35IJ 2D92	4 ;TB2	4 	*fi<)VYCA)VR5r   c                    	 ddl m} | j                   |dd      d       | j                   |dd      d       | j                   |d	d      d
       | j                   |dd      d       | j                   |dd      d       | j                  t        |dd       | j                  t
        |dd       | j                  t
        |dd       | j                  t
        |dt        d             | j                  t
        |g d       y )Nr   )unicode_partitiona|b|crO  )r+  rO  rU  a||b||crS  )r+  rS  zb||c   а|б|в)rX  rO  u   б|в
   кабанrX  )u   кrX  u   бан   aжbжcrg  )r+  rg  u   bжcr      a|b|c   |)r   rk  r    r"   r4   rJ   r   )r%   	partitions     r   test_partitionzCAPITest.test_partition  s     	)<7C02CD9d35HI:s35IJ<68NO9d35HI*i"=)Y#>)Y>)YSB)YC8r   c                    	 ddl m} | j                   |dd      d       | j                   |dd      d       | j                   |d	d      d
       | j                   |dd      d       | j                   |dd      d       | j                  t        |dd       | j                  t
        |dd       | j                  t
        |dd       | j                  t
        |dt        d             | j                  t
        |g d       y )Nr   )unicode_rpartitionrl  rO  )rf  rO  rN   rm  rS  )za||brS  rN   rn  )u   а|бrO  rZ  ro  rX  )u   кабrX  u   нrp  rg  )u   aжbrg  rN   r   rq  rr  )r   rv  r    r"   r4   rJ   r   )r%   
rpartitions     r   test_rpartitionzCAPITest.test_rpartition-  s     	*>GS13DEIt46IJJ46JKL$79OPIt46IJ*j'2>)Z3?)Z$?)Z#c(C)ZS9r   c                 H   	 ddl m} | j                   |d      g d       | j                   |dd      g d       | j                   |d      g d       | j                   |dd      g d       | j                   |d	      g d
       | j                  t        |d       y )Nr   )unicode_splitlinesza
bc
drP  T)za
zbzc
rQ  u   ab c d)u   au   b u   c rQ  u   а
бв
гrW  s   a
bc
d)r   rz  r    r"   rJ   )r%   
splitliness     r   test_splitlineszCAPITest.test_splitlinesA  s     	*>N35IJND95	7$:;-	/$:DA=	?$679QR)ZAr   c                    	 ddl m} | j                   |dt        d      dt        d      t        d      t        d      d	i      d
       | j                   |dt        d      dt        d      t        d      t        d      d	i      d       | j                   |di       d       | j                   |dg       d       | j	                  t
        |dt        d      d i       | j	                  t
        |dt        d      d id       | j	                  t        |dt        d      d id       | j                   |dt        d      d id      d       | j                   |dt        d      d id      d       | j                   |dt        d      d id      d       | j	                  t        |dg        | j	                  t        |dg        | j	                  t        |dt        d      di       | j	                  t        |dd       | j	                  t        |dt               | j	                  t        |dt        d      d id       y )Nr   )unicode_translateabcdr+  Ar  BrN   <>zAB<>du   абвгrX  u   АrY  u   БrZ  u   АБ<>гrH   strictfooignoreacreplaceu   a�cbackslashreplaceza\x62cr2   r      A)	r   r~  r    r   r"   UnicodeTranslateErrorLookupErrorrJ   rT   )r%   	translates     r   test_translatezCAPITest.test_translateS  s    	)<6CHc3s8SXsSVxY]+^_ahi:D	4TCPTIWZ[_W`bf/ghjtu5"-u55"-u5/ECHdCST/ECHdCSU]^+y%#c(D9I5Q53s8T*:HEtL53s8T*:IF
S53s8T*:<NOQZ[)Y;)YR8)YC$7GH)Ys;)Yt<+y%#c(D9I5Qr   c                    	 ddl m} | j                   |dg d      d       | j                   |dg d      d       | j                   |dg d      d	       | j                   |t        g d      d
       | j                   |dg d      d       | j                   |dg d      d       | j	                  t
        |dg d       | j	                  t
        |dg d       | j	                  t
        |t        g d       | j	                  t
        |dd       | j	                  t
        |dd       | j	                  t        |dt               y )Nr   )unicode_joinrO  )r+  r  rN   rl  )r+  r   rN   za||cr   rH   za b c)rX  rY  rZ  rn  rg  u
   ажбжвrr  )   a   b   cr   r   )r   r  r    rT   r"   rJ   r$   )r%   r"  s     r   	test_joinzCAPITest.test_joinl  s    	$2c?3W=c>2F;b/2E:dO4g>c#56
Cd$67F)T4A)T30BC)T41CD)T37)T34+tS$7r   c                 H   	 ddl m} dD ]9  }t        |      D ])  \  }}| j                   |||dt	        |            d       + ; d}| j                   ||ddt	        |            d       | j                   ||ddt	        |            t	        |      dz          | j                   ||ddt	        |      dz         d       | j                   ||ddt
              d       | j                   ||ddd      d       | j                   ||dt	        |      d      d       | j                   ||dt	        |       d	      d       | j                   ||dt	        |       dz
  d	      d       | j                   ||dt        d	      d       | j                  t        ||d
dt	        |             | j                  t        |dddt	        |             | j                  t        ||t        d      dt	        |             | j                  t        |g ddt	        |      d       y )Nr   )unicode_count   ¡u   耀肀u   u   🄀🇱r   !>_<!zr   !r      !   !>_<!)
r   r  r3   r    r   r   r   r"   rJ   r   )r%   r  r   rL   chs        r   
test_countzCAPITest.test_count~  s    	%+QC"32  sB3s8!DaH ( R sCCH=qAsB3s8<c#hqjIsCCHQJ?CsCNCQGsCA6:sCS1=qAsC#c(B?CsC#c(1bA1EsCDaH)]Cq#c(K)]Hc1c#hO)]CS1c#hO)]BQC!Lr   c           
         	 ddl m} d}| j                   ||ddt        |      d      d       | j                   ||ddt        |      d      d       | j                   ||ddt        d      d       | j                   ||dt        |       t        d      d       | j                   ||dt
        t        |      d      d       | j                   ||ddt        d      d       | j                   ||dt
        t        |      d      d       | j                   ||ddt        |      d      d       | j                   ||ddt        |      d      d       | j                   ||d	dt        |      d      d       | j                   ||d	dt        |      d      d       | j                   ||d
dt        |      dz
  d      d       | j                   ||d
dt        |      dz
  d      d       | j                   ||ddt        |      dz
  d      d       | j                   ||d
t        |       dz   dd      d       | j                   ||ddt        |      d      d       | j                   ||ddt        |      dz
  d      d       | j                   ||dt        |       dd      d       | j                  t        ||ddt        |      d       | j                  t        ||ddt        |      d       y )Nr   )unicode_tailmatchababahalamahaabar   r   ahar  r   baah)r  r  )r   r  r    r   r   r   r"   rJ   )r%   	tailmatchr   s      r   test_tailmatchzCAPITest.test_tailmatch  s    	)<3q#c(B?C3q#c(A>B3q."EqI3Cy."MqQ3~s3xLaP3q.!DaH3~s3xKQO3QC!<a@3QC"=qA3As3x;Q?3As3x<a@3aS!R@!D3aS!R@!D3q#c(1*bA1E3s3xik2rBAF3aS1=qA3aS!Q?C3s3xiQ?C 	)Y^QCRTU)Y^QCRSTr   c                    	 ddl m} dD ]_  }t        |      D ]O  \  }}| j                   |||dt	        |      d      |       | j                   |||dt	        |      d      |       Q a d}| j                   ||ddt	        |      d      d       | j                   ||ddt	        |      d      d       | j                   ||ddt	        |      d      d       | j                   ||ddt	        |      d      t	        |             | j                   ||d	dt	        |      dz   d      d
       | j                   ||d	dt
        d      d
       | j                   ||d	dt	        |      dz   d      d
       | j                   ||d	dt
        d      d
       | j                   ||d	ddd      d       | j                   ||d	ddd      d       | j                   ||d	t	        |      dd      d       | j                   ||d	t	        |      dd      d       | j                   ||d	t	        |       dd      d       | j                   ||d	t	        |       dd      d       | j                   ||d	t        dd      d       | j                   ||d	t        dd      d       | j                   ||d	t        t
        d      d       | j                   ||d	t        t
        d      d
       | j                  t        ||ddt	        |      d       | j                  t        |dd	dt	        |      d       | j                  t        ||t        d	      dt	        |      d       | j                  t        |g d	dt	        |      d       y )Nr   )unicode_findr  r   r   r  r  r   r  r   r  r  )
r   r  r3   r    r   r   r   r"   rJ   r   )r%   findr   rL   r  s        r   	test_findzCAPITest.test_find  s.    	$2QC"32  c2q#c(A!>B  c2q#c(B!?C ( R
 c33s8Q7<c33s8R8"=c2q#c(A6:c2q#c(B7SBc33s8A:q91=c3>1=qAc33s8A:r:A>c3>2>Bc31a0"5c31b126c3C!Q7<c3C!R8"=c3S	2q91=c3S	2r:A>c3A>Bc3B?Cc3JANc3KQO)T3aS1E)T8S!SXqI)T3C!SXqI)T2sAs3xCr   c                 ^   	 ddl m} dD ]q  }t        |      D ]a  \  }}| j                   ||t	        |      dt        |      d      |       | j                   ||t	        |      dt        |      d      |       c s d}| j                   ||ddt        |      d      d       | j                   ||ddt        |      d      d       | j                   ||t	        d      dt        |      dz   d      d	       | j                   ||t	        d      dt        d      d	       | j                   ||t	        d      dt        |      dz   d      d	       | j                   ||t	        d      dt        d      d	       | j                   ||t	        d      ddd      d       | j                   ||t	        d      ddd      d       | j                   ||t	        d      t        |      dd      d       | j                   ||t	        d      t        |      dd      d       | j                   ||t	        d      t        |       dd      d       | j                   ||t	        d      t        |       dd      d       | j                   ||t	        d      t        dd      d       | j                   ||t	        d      t        dd      d       | j                   ||t	        d      t        t        d      d       | j                   ||t	        d      t        t        d      d	       y )
Nr   )unicode_findcharr  r   r   r  r   r  r   )r   r  r3   r    r   r   r   r   )r%   r  r   rL   r  s        r   test_findcharzCAPITest.test_findchar  s    	(.QC"32  !1#s2w3s8Q!OQRS  !1#s2w3s8R!PRST ( R
 )#xCHaH"M)#xCHbI2N)#s3xCHQJJAN)#s3xNANPQR)#s3xCHQJKQO)#s3xNBOQRS)#s3xAqA2F)#s3xArBBG)#s3xS1aH"M)#s3xS1bI2N)#s3x#c(BJAN)#s3x#c(BKQO)#s3xQOQRS)#s3xRPRST)#s3xYZ[]^_)#s3xY[\^_`r   c           	      $   	 ddl m} d}| j                   ||dd      d       | j                   ||dd      d       | j                   ||d	d      d
       | j                   ||ddd      d       | j                   ||ddd      |       | j                   ||ddt              d       | j                   ||ddd      d       | j                   ||ddt              d       | j                   ||dd      |       | j                   ||dd      d       | j                   ||dd      d       | j                   |ddd      d       | j                   |ddd      d       | j                  t        |ddd       | j                  t        |ddd       | j                  t        |ddd       | j                  t        |ddt        d             | j                  t        |dt        d      d       | j                  t        |g dd       y )Nr   )unicode_replaceabracadabrar+  =z=br=c=d=br=r  z<>br<>c<>d<>br<>abraz=cad=r   z=br=cadabrar   r  r   z=a=b=r=a=c=a=d=a=b=r=a=rg  u   жbrжcжdжbrжr\  rX  u   =б=б=г=л=м=г=u   Баден-Баденu
   БаденBadenzBaden-Baden   =r  )r   r  r    r   r   r"   rJ   r   )r%   r  r   s      r   test_replacezCAPITest.test_replace  s    	'8c3/?c402DEfc2G<c32MBc32C8c3?Oc33]Cc3?Oc3/5b#.0IJc402DE!=tSIK`a!8,PR_`)Wc3=)Wc4=)WdC=)Wc3CA)Wc3s8SA)Wb#s;r   c                 ^   	 ddl m} | 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       | j                  t        |dd	       | j                  t        |d	d	       | j                  t        |g d       | j                  t        |dg        | j                  t        |g g        y )
Nr   )unicode_comparerH   rH  r   r   re   r2  r2   )r   r  r    r"   rJ   )r%   compares     r   test_comparezCAPITest.test_compare,  s    	'8.2.3.2
3R8Z8!<5115)Wfe<)WeV<)Wff=)Wb%8)WeR8)Wb"5r   c                 >   	 ddl m} | j                   |dd      d       | j                   |dd      d       | j                   |dd      d       | j                   |dd	      d       | j                   |d
d	      d       | j                   |dd      d       y )Nr   )unicode_comparewithasciistringrH   r2   rI  r   rH  r   rd   re   r2  )r   r  r    )r%   comparewithasciistrings     r   test_comparewithasciistringz$CAPITest.test_comparewithasciistringB  s     	6V/v>B/v>C/v>B/{CQG/
KH!L/&A1Er   c           	      4   	 ddl m} t        d      \  }}}}}}d}|D ]  }	|D ]  }
| j                   ||	|
|      |	|
k         | j                   ||	|
|      |	|
k         | j                   ||	|
|      |	|
k(         | j                   ||	|
|      |	|
k7         | j                   ||	|
|      |	|
kD         | j                   ||	|
|      |	|
k\           ||||||fD ]  }| j                   |dd|      t               | j                   |dd|      t               | j                   |dd|      t               | j                   |g d|      t               | j                   |dg |      t               | j                   |g g |      t                y )Nr   )unicode_richcomparer<  )rH   r2  rk   r  r2   rH   )r   r  r5   r   NotImplemented)r%   richcompareLTLEEQNEGTGEr:   s1r   ops               r   test_richcomparezCAPITest.test_richcompareS  s~    	+@!&qBBB:Bk"b"5rBw?k"b"5rRx@k"b"5rRx@k"b"5rRx@k"b"5rBw?k"b"5rRx@   b"b"b(BMM+feR8.IMM+eVR8.IMM+ffb9>JMM+b%4nEMM+eR4nEMM+b"b1>B )r   c                    	 ddl m} | j                   |dd      d       | j                   |dd      d       | j                   |ddg f      d       | j                  t        |dt
               | j                  t        |t
        d       y )	Nr   )unicode_formatzx=%d!*   zx=42!)r  z
x=%d y=%s!z
x=42 y=[]!)r   r  r    r"   r$   rT   )r%   r   s     r   test_formatzCAPITest.test_formato  s{     	&6,g6/9r2h7F+vw=+vtR8r   c                 r   	 ddl m} | 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       | j                  t        |dd       | j                  t        |dd       | j                  t        |g d       | j                  t        |dt        d             y )Nr   )unicode_containsr  r   r   r  xrg  rR   re   bcs   abcdr  )r   r  r    r"   rJ   r   )r%   containss     r   test_containszCAPITest.test_contains|  s    	(:&"-q1&#.2&#.2&$/3&$/3*d3Q7&$/3)Xw<)Xvt<)Xw=)Xr37)Xvs3x@r   c                    	 ddl m} | 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       y )Nr   )unicode_isidentifierr+  r   b0   µu   𝔘𝔫𝔦𝔠𝔬𝔡𝔢r    [   ©032M)r   r  r    )r%   isidentifiers     r   test_isidentifierzCAPITest.test_isidentifier  s     	,Bc*A.d+Q/d+Q/&DEqIb)1-c*A.c*A.d+Q/c*A.e,a0r   c                    	 ddl m} g d}t        |      D ]  \  }}|d | D ]  }| j                  t        ||d|dd        t        d      D ]9  }| j                   ||d||d      |||dz    j                  dd      d|z
  f       ; t        d      D ]9  }| j                   |||||d      |||dz    j                  dd      d|z
  f       ;  |d   }| j                  t        ||d|dd       | j                  t        ||t        |dd       | j                  t        ||d|dd       | j                  t        ||t        |dd       | j                  t        ||d|dd       | j                  t        ||d|t        d       | j                  t        ||d|dd       | j                  t        ||d|t        d       | j                  t        ||d|dd       | j                  t        ||d|dt               | j                  t        ||d|dd       | j                  t        ||d|dt               | j                  t        ||dd	dd       | j                  t        ||dg dd       y )
Nr   )unicode_copycharactersr+   r   rR   r<  r   r   r   )r   r  r3   r"   r$   r5   r    ljustrjustr8   r   r   )	r%   r  r:   r<   from_r>   
from_startto_startrC   s	            r   test_copycharacterszCAPITest.test_copycharacters  s    	.4
 $G,JCdsm!!*B5!Q $ $Ah
  *5!UJJ:jl399!TBz\# ' "!H  *5(E8QO8HQJ/55a>xZ! % -. AJ*&<aAq!L*&<aQRTUWXY*&<aQ1M*&<aQRTUWXY*&<aAq!L*&<aA~WXY*&<aAr1M*&<aA~WXY+'=q!Q1M+'=q!Q>Z+'=q!Q2N+'=q!Q>Z+'=q!S!QO+'=q!RANr   c                 2   ddl m} dD ]  }d}t        d      D ]z  }|t        |      z  }| j	                   ||      t        |      j                         |dz   z         | j	                   ||      t        |      j                         |dz   z         |  y )Nr   )getargs_s_hash)$      r/   i r   r   r   )r   r  r5   r!   r    r   )r%   r  krC   rL   s        r   test_pep393_utf8_caching_bugz%CAPITest.test_pep393_utf8_caching_bug  s     	-,AA1X SV   !2CFMMOq1u4MN  !2CFMMOq1u4MN  -r   )7r	   r
   r   r   cpython_onlyunittestskipIfr   r(   rD   rO   rV   r\   r`   ro   rt   r   r   r   r   r   r   r  r  r  r  r  r$  r(  r.  r8  r=  rA  rE  rK  rc  ri  rt  rx  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r   r      s	   X__Y$&(?@? A ?& X__Y$&(?@!= A !=L X__Y$&(?@= A =: X__Y$&(?@8 A 80 X__Y$&(?@< A <4 X__Y$&(?@B A B2 X__Y$&(?@P A P. X__Y$&(?@
. A 
. X__Y$&(?@P A PD X__Y$&(?@K A K, X__Y$&(?@	4 A 	4 X__Y$&(?@6 A 6" X__Y$&(?@5 A 5"d5L X__Y$&(?@# A # X__Y$&(?@4 A 4 X__Y$&(?@K A KB X__Y$&(?@,J A ,J\ X__Y$&(?@L A LB X__Y$&(?@G A G. X__Y$&(?@4 A 4 X__Y$&(?@	7 A 	7 X__Y$&(?@< A < X__Y$&(?@H A H* X__Y$&(?@9 A 9 X__Y$&(?@> A >$ X__Y$&(?@5 A 5& X__Y$&(?@5 A 54 X__Y$&(?@6 A 66 X__Y$&(?@9 A 9$ X__Y$&(?@: A :$ X__Y$&(?@B A B  X__Y$&(?@R A R. X__Y$&(?@8 A 8  X__Y$&(?@M A M: X__Y$&(?@U A UB X__Y$&(?@#D A #DN X__Y$&(?@a A aD X__Y$&(?@< A <: X__Y$&(?@6 A 6( X__Y$&(?@	F A 	F X__Y$&(?@C A C4 X__Y$&(?@	9 A 	9 X__Y$&(?@A A A( X__Y$&(?@1 A 1( X__Y$&(?@0O A 0Oj X__Y$&(?@O A Or   r   __main__)r  r   testr   test.supportr   r   r   r   ImportErrorrT   r   r   TestCaser   r	   mainr   r   r   <module>r     sw     
  &8
 	# 	\Ox   \O~. zHMMO S/  Is   A A&%A&