+
    Bi_                       ^ RI t ^ RIt^ RIHt ^ RIHt  ^ RIt^ RIHtHt  ^ RI
t
 ^ RIt ^ RItRt ! R R]4      t ! R R] P                   4      t ! R	 R
] P                   4      t] P&                  ! ]RJ R4       ! R R] P                   4      4       t]R8X  d   ] P,                  ! 4        R# R#   ]	 d    Rt Li ; i  ]	 d    Rt
 Li ; i  ]	 d    Rt Li ; i  ]	 d    Rt Li ; i)    N)support)threading_helper)PY_SSIZE_T_MINPY_SSIZE_T_MAXc                       ] tR t^tRtR# )Str N__name__
__module____qualname____firstlineno____static_attributes__r	       2/usr/lib/python3.14/test/test_capi/test_unicode.pyr   r      s    r   r   c                   t  a  ] tR t^t o ]P
                  ]P                  ! ]RJ R4      R 4       4       t	]P
                  ]P                  ! ]RJ R4      R 4       4       t
]P
                  ]P                  ! ]RJ R4      R 4       4       t]P
                  ]P                  ! ]RJ R4      R 4       4       t]P
                  ]P                  ! ]RJ R4      R 4       4       t]P
                  ]P                  ! ]RJ R4      R	 4       4       t]P
                  ]P                  ! ]RJ R4      R
 4       4       t]P
                  ]P                  ! ]RJ R4      R 4       4       t]P
                  ]P                  ! ]RJ R4      R 4       4       t]P
                  ]P                  ! ]RJ R4      R 4       4       t]P
                  ]P                  ! ]RJ R4      R 4       4       t]P
                  ]P                  ! ]RJ R4      R 4       4       t]P
                  ]P                  ! ]RJ R4      R 4       4       t]P                  ! ]RJ R4      R 4       t]P
                  ]P                  ! ]RJ R4      R 4       4       t]P
                  ]P                  ! ]RJ R4      R 4       4       t]P
                  ]P                  ! ]RJ R4      R 4       4       t]P
                  ]P                  ! ]RJ R4      R 4       4       t]P
                  ]P                  ! ]RJ R4      R 4       4       t]P
                  ]P                  ! ]RJ R4      R 4       4       t]P
                  ]P                  ! ]RJ R4      R 4       4       t]P
                  ]P                  ! ]RJ R4      R 4       4       t ]P
                  ]P                  ! ]RJ R4      R 4       4       t!]P                  ! ]RJ R4      ]"PF                  ! 4       R 4       4       t$]P
                  ]P                  ! ]RJ R4      R 4       4       t%]P
                  ]P                  ! ]RJ R4      R 4       4       t&]P
                  ]P                  ! ]'RJ R4      R  4       4       t(]P
                  ]P                  ! ]RJ R4      R! 4       4       t)]P
                  ]P                  ! ]RJ R4      R" 4       4       t*]P
                  ]P                  ! ]RJ R4      R# 4       4       t+]P
                  ]P                  ! ]RJ R4      R$ 4       4       t,]P
                  ]P                  ! ]RJ R4      R% 4       4       t-]P
                  ]P                  ! ]RJ R4      R& 4       4       t.]P
                  ]P                  ! ]RJ R4      R' 4       4       t/]P
                  ]P                  ! ]RJ R4      R( 4       4       t0]P
                  ]P                  ! ]RJ R4      R) 4       4       t1]P
                  ]P                  ! ]RJ R4      R* 4       4       t2]P
                  ]P                  ! ]RJ R4      R+ 4       4       t3]P
                  ]P                  ! ]RJ R4      R, 4       4       t4]P
                  ]P                  ! ]RJ R4      R- 4       4       t5]P
                  ]P                  ! ]RJ R4      R. 4       4       t6]P
                  ]P                  ! ]RJ R4      R/ 4       4       t7]P
                  ]P                  ! ]RJ R4      R0 4       4       t8]P
                  ]P                  ! ]RJ R4      R1 4       4       t9]P
                  ]P                  ! ]RJ R4      R2 4       4       t:]P
                  ]P                  ! ]RJ R4      R3 4       4       t;]P
                  ]P                  ! ]RJ R4      R4 4       4       t<]P
                  ]P                  ! ]RJ R4      R5 4       4       t=]P
                  ]P                  ! ]RJ R4      R6 4       4       t>]P
                  ]P                  ! ]RJ R4      R7 4       4       t?R8t@V tAR# )9CAPITestNzneed _testcapi modulec                x   ^ RI Hp R Fa  pV P                  V! ^ V4      R4       V P                  V! ^V4      \        V4      ^,          4       V P	                  \
        V\        V4       Kc  	  V P                  V! ^ R4      R4       V P	                  \
        V\        ^,          R4       V P	                  \
        V\        ^,          ^,           R4       V P	                  \
        V\        ^,          R4       V P	                  \
        V\        ^,          ^,           R4       V P	                  \
        V\        ^,          R4       V P	                  \
        V\        ^,          ^,           R4       V P	                  \        V^R4       V P	                  \        VR^ 4       V P	                  \        V\        ^ 4       R# )	zTest PyUnicode_New())unicode_new`O        N)r   a      r   r    )		_testcapir   assertEqualchrassertRaisesMemoryErrorr   SystemErrorr   )selfnewmaxchars   &  r   test_newCAPITest.test_new!   sT    	1?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                8   ^ RI Hp . ROp. ROp\        V4       F  w  rEVRV  F  pV P                  \        W^ ^ V4       K  	  W$R  F  p. \        ^4      O\        N F  p. \        R^V,
          4      O\        N\        N F|  p\        \        V^V,
          4      ^ 4      p	V	^8X  d   WbV,          8w  d   K6  VRV \        V4      V	,          ,           WgV	,           R ,           p
V P                  V! WgW4      W34       K~  	  K  	  K  	  K  	  V^ ,          pV P                  \        WR^ ^x4       V P                  \        W\        ^ ^x4       V P                  \        W^ ^ R4       V P                  \        VR^ ^ ^x4       V P                  \        V. ^ ^ ^x4       R# )zTest PyUnicode_Fill())unicode_fillNr      abcabcdeu
   ¡¢£¤¥u   你好世界！u   😀😁😂😃😄)x         8 r   )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_fillCAPITest.test_fill6   s    	3
 .'.NCdsm!!*d1iH $dm8uQx88E"YE"a%i$8"Y."Y."Y!$SU%;Q!?!Q;2+= %#%fu:I0G#G"U[^_J]#]((b)K)1(:< #Z 9 $	 /  AJ*dr1d;*d~q$G*dq!X>+tVQ4@+tRAt<r   zneed _testlimitedcapi modulec           	     p   ^ RI Hp . ROp. ROp\        V4       Fz  w  rE\        V4       Ff  w  rgWd8:  dD   V P                  V! V^V4      VR,          \	        V4      ,           VR,          ,           ^ 34       KN  V P                  \        W^V4       Kh  	  K|  	  V P                  \        VR^^x4       V P                  \        VRR	^x4       V P                  \        VR\        ^x4       V P                  \        VR\        ^x4       V P                  \        VR^ ^x4       V P                  \        V. ^ ^x4       R# )
zTest PyUnicode_WriteChar())unicode_writecharabc:N   N:   NNr+   NrG      ¡¢£	   你好世   😀😁😂)r.   r/   r0   r1   r   r   )_testlimitedcapirF   r2   r   r    r!   r3   r7   r   r   	TypeError)r$   	writecharr9   r:   irB   jcs   &       r   test_writecharCAPITest.test_writechar^   s    	D
 8g&DA!%(6$$Yq!Q%7&'ec!fnqu&<a%@B %%j)1E ) ' 	*i4@*iDA*iM*iM)Y4@)YAt<r   c                   ^ RI Hp . ROpV F  pV P                  V! V^4      V^ 34       V P                  V! V^4      VR,          ^ 34       V P                  V! V^4      VR,           ^ 34       V P                  V! V^
4      VR,           ^ 34       V P                  V! V^ 4      R4       V P                  \        W\
        4       V P                  \        WR	4       V P                  \        W\        4       K  	  V P                  \        VR^ 4       V P                  \        V. ^ 4       V P                  \        V\        ^ 4       R# )
zTest PyUnicode_Resize())unicode_resizeNrI   N r+   NrJ   z       )r   r   r   )	rN   rW   r   r!   r"   r   r#   r   NULL)r$   resizer9   rB   s   &   r   test_resizeCAPITest.test_resize}   s    	>

 AVAq\Aq62VAq\AbE1:6VAq\AHa=9VAr]QZO<VAq\73k6nEk6b9k6nE  	+vvq9+vr15+vtQ7r   c                &   ^ RI Hp . ROpV F8  pVRRR1,          pV F#  pW4,           pV P                  V! W44      V4       K%  	  K:  	  V P                  \        VRR4       V P                  \        VRR4       V P                  \        VRR4       V P                  \        VR. 4       V P                  \        V. R4       V P                  \        V. . 4       V P                  \        V\
        R4       V P                  \        VR\
        4       R# )zTest PyUnicode_Append())unicode_appendrG   Nr+   rJ   r   )rN   r_   r   r!   r#   rZ   )r$   appendr9   leftrightrA   s   &     r   test_appendCAPITest.test_append   s     	>
 D":D <  !4h? !  	+vuf=+vvu=+vvv>+vub9+vr59+vr26+vtU;+vud;r   c                "   ^ RI Hp . ROpV F6  pVRRR1,          pV F!  pV P                  V! W44      W4,           4       K#  	  K8  	  V P                  \        VRR4       V P                  \        VRR4       V P                  \        VRR4       V P                  \        VR. 4       V P                  \        V. R4       V P                  \        V. . 4       V P                  \        V\
        R4       V P                  \        VR\
        4       R# )zTest PyUnicode_AppendAndDel())unicode_appendanddelrG   Nr+   rJ   r   )rN   rf   r   r!   r#   rZ   )r$   appendanddelr9   ra   rb   s   &    r   test_appendanddelCAPITest.test_appendanddel   s     	J
 D":D   d!:DLI ! 
 	+|UFC+|VUC+|VVD+|UB?+|R?+|R<+|T5A+|UDAr   c                   ^ RI Hp V P                  V! R4      R4       V P                  V! R^4      R4       V P                  V! R4      R4       V P                  V! R4      R4       V P                  V! R	4      R
4       V P                  V! R4      R4       V P                  \        VR^4       V P                  \        VR^4       V P                  V! R^ 4      R4       V P                  V! \
        ^ 4      R4       V P                  \        VR\        4       V P                  \        VRR4       V P                  \        VR\        4       V P                  \        V\
        R4       V P                  \        V\
        \        4       V P                  \        V\
        ^4       V P                  \        V\
        \        4       R# )z"Test PyUnicode_FromStringAndSize())unicode_fromstringandsizer+   rG   ab   abc defabc def   ¡¢   ¡¢   你   你   😀   😀s   ¡   r   r   Nr   )
rN   rk   r   r!   UnicodeDecodeErrorrZ   r"   r   r#   r   )r$   fromstringandsizes   & r   test_fromstringandsizeCAPITest.test_fromstringandsize   s    	T*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                ^   ^ RI Hp V P                  V! R4      R4       V P                  V! R4      R4       V P                  V! R4      R4       V P                  V! R4      R	4       V P                  \        VR
4       V P                  \        VR4       V P                  V! R4      R4       R# )zTest PyUnicode_FromString())unicode_fromstringr+   rG   ro   rp   rq   rr   rs   rt      ru   r   r   N)rN   r{   r   r!   rv   )r$   
fromstrings   & r   test_fromstringCAPITest.test_fromstring   s     	FF+U3$78*EO4h?$78,G,j'B,j'BC"-r   c           	        ^ RI Hp . ROpRpVR,           F+  pV P                  V! ^VP                  V4      4      V4       K-  	  \        P
                  R8X  d   RMRpVR,           F+  pV P                  V! ^VP                  V4      4      V4       K-  	  \        P
                  R8X  d   RMR	pV F+  pV P                  V! ^VP                  V4      4      V4       K-  	  V P                  V! ^R
P                  V4      4      R4       R FZ  pV P                  V! VR4      R4       V P                  V! VRV,          4      R4       V P                  V! V\        ^ 4      R4       K\  	  R F  pV P                  \        WR4       K  	  V P                  \        V^RR4       V P                  \        V^R\        4       V P                  \        V^\        R4       V P                  \        V^\        \        4       R# )z Test PyUnicode_FromKindAndData())unicode_fromkindanddatalatin1rX   littleutf-16leutf-16be:N   Nutf-32leutf-32bert   u   r   r       rY   r+   Nr,   )rH   rI      r   )r   r   r         )r   r   r   encodesys	byteorderrZ   r!   r#   r3   r   )r$   fromkindanddatar9   enc1rB   enc2enc4kinds   &       r   test_fromkindanddataCAPITest.test_fromkindanddata   s    	I

 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?#F #*oq&"E*oq&.Q*oq$C*oq$Or   c           
        ^ RI Hp . ROpV F  p. \        ^ \        V4      ^,           4      O\        N FZ  p. \        \        V^,
          ^ 4      \        V4      ^,           4      O\        N F  pV P                  V! W4V4      W4V 4       K   	  K\  	  K  	  V P                  \        VRR^ 4       V P                  \        VR\        ^ 4       V P                  \        VR^ R4       V P                  \        VR^ \        4       R# )zTest PyUnicode_Substring())unicode_substringrG   N)rl   u   ab¡¢u   ab¡¢你好u   ab¡¢你好😀😁r   )
rN   r   r4   lenr   r5   r   r!   r7   r   )r$   	substringr9   rB   r>   ends   &     r   test_substringCAPITest.test_substring  s     	D

 A@5CFQJ/@@PU3uQw?CFQJ?PPC$$Yq%=qs|L Q A 
 	*iA>*iJ*i2>*i>Jr   c                    ^ RI Hp R F$  pV P                  V! V4      \        V4      4       K&  	  V P	                  \
        VR4       V P	                  \
        V. 4       R# )zTest PyUnicode_GetLength())unicode_getlengthr+   NrG   rp   u   你好   a😀u	   abcu   )rN   r   r   r   r!   rO   )r$   	getlengthrB   s   &  r   test_getlengthCAPITest.test_getlength3  sR     	D5AYq\3q625 	)Y7)Y3r   c           	        ^ RI Hp R F  p\        V4       F&  w  r4V P                  V! W#4      \	        V4      4       K(  	  V P                  \        W\        V4      4       V P                  \        W\        4       V P                  \        WR4       V P                  \        W\        4       K  	  V P                  \        VR^ 4       V P                  \        V. ^ 4       R# )zTest PyUnicode_ReadChar())unicode_readcharr+   Nr   r   )rN   r   r2   r   ordr!   r7   r   r   r   rO   )r$   readcharrB   rQ   rS   s   &    r   test_readcharCAPITest.test_readcharA  s     	B5A!!  !Q8 %j(s1v>j(~Fj(r:j(~F5 	)Xvq9)Xr15r   c                X   ^ RI Hp R Fo  pV P                  V! V4      V4       \        V4      pV! V4      pV P                  WB4       V P	                  \        V4      \        4       V P                  WB4       Kq  	  V P                  \        VR4       V P                  \        V. 4       R# )zTest PyUnicode_FromObject())unicode_fromobjectr+   Nr   )
rN   r   r   r   assertIstypestrassertIsNotr!   rO   )r$   
fromobjectrB   os2s   &    r   test_fromobjectCAPITest.test_fromobjectT  s     	F5AZ]A.AAABR#MM$r(C(R#5 	)Z8)Z4r   need ctypesc                  a a#a$a% ^ RI HpHpHo%HpHpHpHpHpH	pH
p	Hp
HpHpHpHp Rp\!        W/4      o$V3S$n        S%S$n        V$V%3R lo#V#V 3R lpV! RRR4       S P'                  \(        RS#R	R
4       V! RRV! R4      4       V! RRV! R4      4       S P+                  \,        4      ;_uu_ 4        S#! RV! R4      4       RRR4       V! RRV! R4      V! R4      4       V! RR4       V! RR4       V! RR4       V! RRR4       V! RR R!4       V! R"R#R$P/                  R%4      4       V! R&R'R$P/                  R%4      4       V! R(R)R*4       V! R"R#R+4       V! R,R'R+4       V! R(R'R-4       V! R.R/R$P/                  R%4      4       V! R0R1R$P/                  R%4      4       V! R2R3R*4       V! R.R/R+4       V! R4R1R+4       V! R5R6R74       V! R8R9R:4       V! R;R<R74       V! R=R>R:4       V! R?R@R:4       V! R?RAR:4       V! R?RBR:R4       V! R"RCRR$P/                  R%4      4       V! R&RDRR$P/                  R%4      4       V! R(RERR*4       V! R"RCRR+4       V! R,RDRR+4       V! R.RFRR$P/                  R%4      4       V! R0RGRR$P/                  R%4      4       V! R2RHRR*4       V! R.RFRR+4       V! R4RGRR+4       V! R2RGRR-4       V! RIRJR4       V! RKRLR4       V! RMRNR4       V! RORPR4       V! RQRRR4       V! RSRTR4       V! RORUR4       V! RQRVR4       V! RSRWR4       V! RIRXR4       V! RKRYR4       V! RMRZR4       V! RIR[R4       V! RKR\R4       V! RMR]R4       V! RIR^RR_4       V! RKR`RR_4       V! RMRaRR_4       V! RbR^RR_4       V! RcR`RR_4       V! RdRaRR_4       V! ReRfV! ^
4      4       V! RgRhV! ^
4      4       ER F  w  ppppRmV'       d   TMT3RnV'       d   TMT	3RoV'       d   TMT
3RpV'       d   TMT33 FU  w  ppS P1                  RqV,           V,           Rr7      ;_uu_ 4        V! VRqV,           V,           V! V4      4       RRR4       KW  	  K  	  ^^V! V4      ,          ^,
          ,          ) pV) ^,
          pV! \3        V4      RsV! V4      4       V! \3        V4      RsV! V4      4       ^^V! V
4      ,          ,          ^,
          pV! \3        V4      RtV
! V4      4       S#! RuV! ER4      4       V! RjRvV! ^{4      4       V! RwRxV! ^{4      4       V! RyRzV! ^{4      4       V! R{R|V! ^{4      4       V! R{R}V! ^{4      4       V! RjR~V! ^{4      4       V! RRV! ^{4      4       V! RwRV! ^{4      4       V! RRV! ^{4      4       V! RyRV! ^{4      4       V! RRV! ^{4      4       V! RRV! ^{4      4       V! RiRvV! ER4      4       V! RRxV! ER4      4       V! RRzV! ER4      4       V! RR|V! ER4      4       V! RR}V! ER4      4       V! RiR~V! ER4      4       V! RRV! ER4      4       V! RRV! ER4      4       V! RRV! ER4      4       V! RRV! ER4      4       V! RRV! ER4      4       V! RRV! ER4      4       V! RjRV! ^{4      4       V! RwRV! ^{4      4       V! RyRV! ^{4      4       V! R{RV! ^{4      4       V! R{RV! ^{4      4       V! RjRV! ^{4      4       V! RRV! ^{4      4       V! RwRV! ^{4      4       V! RRV! ^{4      4       V! RyRV! ^{4      4       V! RRV! ^{4      4       V! RRV! ^{4      4       V! RjRV! ^S4      4       V! RwRV! ^S4      4       V! RyRV! ^S4      4       V! R{RV! ^S4      4       V! R{RV! ^S4      4       V! RjRV! ^S4      4       V! RRV! ^S4      4       V! RwRV! ^S4      4       V! RRV! ^S4      4       V! RyRV! ^S4      4       V! RRV! ^S4      4       V! RRV! ^S4      4       V! RRV! Rk4      4       V! RRV! Rk4      4       V! RRV! Rk4      4       V! RRV! Rk4      4       V! RRV! Rk4      4       V! RRV! Rk4      4       V! RRV! Rk4      4       V! RRV! Rk4      4       V! RRV! Rk4      4       V! RRV! Rk4      4       V! RRV! Rk4      4       V! RRV! Rk4      4       V! RlRV! Rk4      4       V! RRV! Rk4      4       V! RRV! Rk4      4       V! RRV! Rk4      4       V! RRV! Rk4      4       V! RlRV! Rk4      4       V! RRV! Rk4      4       V! RRV! Rk4      4       V! RRV! Rk4      4       V! RRV! Rk4      4       V! RRV! Rk4      4       V! RRV! Rk4      4       V! RRR4       V! RRRR4       V! RRRR4       V! RRV! R4      4       V! RRV! R4      4       V! RRV! R4      4       V! RRV! R4      4       V! RRV! R4      4       V! RRV! R4      4       V! RRV! R4      4       T! V! V4      ^8  d   RMRRV! R4      4       T! V! V4      ^8  d   RMRRV! R4      4       V! RRRV! R4      4       V! RRRV! R4      4       V! RRRV! R4      4       V! RRRV! R4      4       V! RRRV! R4      4       V! RRRV! R4      4       V! RRRV! R4      4       V! RRRV! R4      4       T! V! V4      ^8  d   RMRRRV! R4      4       T! V! V4      ^8  d   RMRRRV! R4      4       V! RRS%! R4      4       V! RRS%! R4      4       V! RRS%! R4      4        ! R R4      pV! 4       p\4         RVP6                   2pV! RV 2RS%! V4      4       \4         RVP6                   2pV! RV 2RS%! V4      4       V! RRS%! \2        4      4       V! RRS%! \2        4      4       V! RRS%! \2        4      4       V! RV 2RS%! \9        V4      4      4       V! RV 2RS%! \9        V4      4      4       S P'                  \:        R4      ;_uu_ 4        V! RRS%! R4      4       RRR4       V! RRV! ^4      R4       V! RRV! ^4      R4       V! RRV! ^4      V! ^4      R4       V! RRV! ^4      R4       V! RRV! ^4      R4       V! RRV! ^4      V! ^4      R4       V! RRV! ^4      V! ^4      RR4       V! RRV! ^4      V! ^4      RV! R4      4       V! RRV! ^4      V! ^{4      4       V! ER ERV! ^4      V! ^{4      4       V! ERERV! ^4      V! ^4      V! ^{4      4       ERpS#! RuR4      pS P=                  V\2        4       S P?                  VV4       S#! ERERR4      p S P=                  V \2        4       S P?                  V ER4       S#! RuERRR4      p!S P=                  V!\2        4       S P?                  V!V4       V! ERER	RER
4       V! ERER	RER4       V! ERRm4       V! ERERRm4       ER FA  p"S P1                  V"ER7      ;_uu_ 4        S P'                  \@        ERS#V"R4       RRR4       KC  	  S P'                  \@        ERS#ERV! ^
4      4       R#   + '       g   i     EL; i  + '       g   i     E
K  ; i  + '       g   i     ELp; i  + '       g   i     K  ; i(  zTest PyUnicode_FromFormat())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_pc_wchar	c_wchar_pPyUnicode_FromFormatc                 |   < \         ;QJ d    . V3R  lV 4       F  NK  	  5M! V3R  lV 4       4      pS! V .VO5!  # )c              3   d   <"   T F%  p\        V\        4      '       d	   S! V4      MTx  K'  	  R # 5iN)
isinstancer   ).0argr   s   & r   	<genexpr>JCAPITest.test_from_format.<locals>.PyUnicode_FromFormat.<locals>.<genexpr>z  s-      !C #-S#"6"6	#C?s   -0tuple)formatargscargs_PyUnicode_FromFormatr   s   &* r   r   7CAPITest.test_from_format.<locals>.PyUnicode_FromFormaty  s?    E !!EE !! !E )8%88r   c                 >   < S! V.VO5!  pSP                  W4       R # r   )r   )rA   r   r   textr   r$   s   &&* r   check_format/CAPITest.test_from_format.<locals>.check_format  s     '66DX,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ͫ     􏿿r   r   Nu   𐀀􀀀s   %c%ci   i   %s   %%z%ss   %%sz[%]s   [%%]z%abcs   %%%sr+   rG   s   %.3ss   abcdefzabc[s   %.6su   abc[€]utf8u   abc[€s   %.7su   abc[�s   %.5ss   abc[]s   abc[]u   abc[�]s   abc[ z
      abc[s   %10.6su        abc[€s   %10.7su        abc[�s   %10.5su       abc[�]z'\u20acABC's   %Au   €ABCz'\u20s   %.5Au	   €ABCDEFu   '€ABC's   %Ru   '€As   %.3Ru   €ABs   %.3Ss   %.3Us   %.3Vs   %.6Vs   %.7Vs   %.5Vs   %10.6Vs   %10.7Vs   %10.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   %03i0010s   %0.4i-123123
  ABCr      ls   ll   z   %)r   s   %llds   %llus   %ps   %2iz
       123s   %10i
0000000123s   %010iz
123       s   %-10is   %-010is   %.2i0000123s   %.7is   %10.2iz
   0000123s   %10.7is   %010.7iz
0000123   s   %-10.7is   %-010.7iz
      -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   %2os   %10os   %010os   %-10os   %-010os   %.2os   %.7os   %10.2os   %10.7os   %010.7os   %-10.7os   %-010.7os   %2xz
       abcs   %10x
0000000abcs   %010xz
abc       s   %-10xs   %-010xs   %.2x0000abcs   %.7xs   %10.2xz
   0000abcs   %10.7xs   %010.7xz
0000abc   s   %-10.7xs   %-010.7xs   %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	type: strs   type: %Tztype: sts
   type: %.2Tztype:        strs
   type: %10Tc                       ] tR tRtRtR# ),CAPITest.test_from_format.<locals>.LocalTypei  r	   Nr
   r	   r   r   	LocalTyper     s    r   r   .ztype: :s	   type: %#Ts   type: %Ns
   type: %.2Ns
   type: %10Ns	   type: %#Nz%N argument must be a typez  abcs   %*srl   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)fmtzinvalid format strings   %+i))   iTr   r   )   dTr   r   )   uF{   r   )   oFS   r   )   xFr   rG   )   XFr   r   r   )r   s   %0s   %01s   %.s   %.1s   %0%ss   %1%ss   %.%ss   %.1%ss   %1abcs   %ls   %lls   %zs   %llss   %zs)!ctypesr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   getattrargtypesrestypeassertRaisesRegexr3   r!   OverflowErrorr   subTestr   r   r   r   rO   assertIsInstanceassertRegexr#   )&r$   r   r   r   r   r   r   r   r   r   r   r   r   r   r   namer   convsignedvaluerA   modctypemin_longlongmax_longlongmax_ulonglongr   objfullnamefullname_altp_format_regex	p_format1	p_format2	p_format3r   r   r   r   s&   f                                  @@@r   test_from_formatCAPITest.test_from_formatg  sq   	  	  	  	  	  & '	 8*2&(1%	9	-
 	,$m	5
 	z2 "3W	> 	XE&M	+\E(O	-}-- h8 . 	+eGneHo	? 	S	T	U	Vf	& 	Ui	)Vm226:	<\m226:	<\l	,V.	0].	0\/	1\ 4 4V <	>& 4 4V <	>&	.\ 0	2& 0	2 	^K	)Xn	.]K	)Zn	.Zn	.Zn	. 	Znd	4VdM$8$8$@	B\dM$8$8$@	B\dL	2Vd$4	6]d$4	6\m&:&:6&B	D&m&:&:6&B	D&l	4\&6	8&&6	8&&7	9
 	\ %	)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 	[ )E"2	4x"Ie$4	6'"Ie$4	6	 	kZq!7!7 89vhZ( )C.	2"1Y%;%;$<=vl^,!9S>	3 	[ )C.	2x"IcN	4'"IcN	4 	vhZ( )DI"6	8vl^,!9T#Y#7	9##I/KLL$i&68 M
 	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 &%)	5G .--t <;;X MLLt '&&s0   1y?z	0z(5z<?z	z%(z9	<{c                f    ^ RI Hp RP                  4       pV! V4      pV P                  VR4       R# )zTest PyUnicode_InternInPlace())unicode_interninplacer+   rG   N)rN   r  decoder   )r$   interninplacerB   rs   &   r   test_interninplaceCAPITest.test_interninplace  s-     	LMMO!E"r   c                    ^ RI Hp V P                  V! R4      R4       V P                  V! R4      R4       V P                  \        VR4       V P                  \        VR4       V P                  V! R4      R	4       R
# )z!Test PyUnicode_InternFromString())unicode_internfromstringr+   rG   rs   rt   r|   ru   r   r   N)rN   r%  r   r!   rv   )r$   internfromstrings   & r   test_internfromstringCAPITest.test_internfromstring&  ss     	R)&159)*=>M,.>H,.>H)#.3r   c                   ^ RI Hp ^ RIHp V^8X  d   \        P
                  R8X  d   RMRpM V^8X  d   \        P
                  R8X  d   RMRpR FS  pVP                  X4      pV P                  V! V4      V4       V P                  V! VR
V,          ,           R4      V4       KU  	  R FT  pVP                  XR4      pV P                  V! V4      V4       V P                  V! VR
V,          ,           R4      V4       KV  	  V P                  V! R	P                  X4      ^4      R4       V^8X  d)   V P                  V! RP                  V4      ^4      R4       V P                  \        VR\        4       V P                  \        VR
V,          R4       V P                  \        VR
V,          \        4       V P                  V! \        ^ 4      R4       V P                  \        V\        ^4       V P                  \        V\        \        4       V P                  \        V\        R4       V P                  \        V\        R4       V P                  \        V\        \        4       R# )zTest PyUnicode_FromWideChar())unicode_fromwidecharSIZEOF_WCHAR_Tr   r   r   r   r   r   rG   r   surrogatepassrl   r   u   ar   N)r   rG   rp   rr   rt   r   )r   u   )rN   r*  r   r,  r   r   r   r   r!   r"   r   r#   r   rZ   )r$   fromwidecharr,  encodingrB   bs   &     r   test_fromwidecharCAPITest.test_fromwidechar4  s    	J,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                   ^ RI Hp ^ RI Hp ^ RIHp V! R^4      w  rEV P                  V^4       V P                  VR4       V! R^4      w  rEV P                  V^4       V P                  VR4       V P                  V! R^
4      ^4       V P                  V! R^ 4      ^4       V! R^4      w  rEV P                  V^4       V P                  VR4       V! R^
4      w  rEV P                  V^4       V P                  VR4       V! R^4      w  rEV P                  V^4       V P                  VR	4       V P                  V! R^4      ^4       \        R
4      pV^8X  d   ^pM^pV! V^
4      w  rEV P                  WW4       V P                  WFR,           4       V P                  V! V^
4      V^,           4       V P                  \        VR^
4       V P                  \        V. ^
4       V P                  \        V\        ^
4       V P                  \        VR^
4       V P                  \        V. ^
4       V P                  \        V\        ^
4       R# )zTest PyUnicode_AsWideChar())unicode_aswidechar)unicode_aswidechar_nullr+  abcdefrl   rG   abc rn   abc def r   rY   r+   N)rN   r5  r6  r   r,  r   r    r!   rO   r#   rZ   )r$   r5  r6  r,  wcharsizenonbmpnchars   &       r   test_aswidecharCAPITest.test_aswidecharW  s    	8<,(15q!%(2q!&0;Q?0:A>(2q!((3q!((R8q!-0R@!DXQEE(4%.0<eaiH)%7D)%7R@+'94D)%<fbI)%<b"E+'>bIr   c                (   ^ RI Hp ^ RI Hp ^ RIHp V! R4      w  rEV P                  V^4       V P                  VR4       V P                  V! R4      R4       V! R4      w  rEV P                  V^4       V P                  VR4       V P                  \        VR4       \        R4      pV^8X  d   ^pM^pV! V4      w  rEV P                  WW4       V P                  WFR	,           4       V P                  V! V4      V4       V P                  \        VR
4       V P                  \        V. 4       V P                  \        V\        4       V P                  \        VR
4       V P                  \        V. 4       V P                  \        V\        4       R# )z!Test PyUnicode_AsWideCharString())unicode_aswidecharstring)unicode_aswidecharstring_nullr+  rG   r8  rn   r9  r   rY   r+   N)rN   rA  rB  r   r,  r   r!   r3   r    rO   r#   rZ   )r$   rA  rB  r,  r:  r;  r<  r=  s   &       r   test_aswidecharstringCAPITest.test_aswidecharstring  s]    	>B,.u5q!(6u=uE.z:q!-*&CZPXQEE.v6%.6v>G)%=vF)%=rB+'?F)%BFK)%BBG+'DdKr   c           	        ^ RI Hp R EFA  p\        V4      pV P                  V! W#^4      VR,           4       V P                  V! W#^ 4      VR,           4       V P                  V! W#^,           ^4      VR,           4       V P                  V! W#^,           ^ 4      VR,           4       V P	                  \
        WV^,
          ^4       V P	                  \
        WV^,
          ^ 4       RP                  W".4      pV P                  V! V\        V4      ^4      VR,           4       V P                  V! V\        V4      ^ 4      VR,           4       EKD  	  R# )zTest PyUnicode_AsUCS4())unicode_asucs4rY   u   ￿u    ￿Nr   )r   rF  r   r   r!   r#   join)r$   rF  rB   ls   &   r   test_asucs4CAPITest.test_asucs4  s    	-5AAA^A!4af=^A!4ajA^AsA6*E^AsA6*Ek>ac1Ek>ac1E		1&!A^As1vq91T6B^As1vq91X:F5r   c                    ^ RI Hp R FS  pV P                  V! V4      VR,           4       RP                  W".4      pV P                  V! V4      VR,           4       KU  	  R# )zTest PyUnicode_AsUCS4Copy())unicode_asucs4copyrY   Nr   )r   rL  r   rG  )r$   
asucs4copyrB   s   &  r   test_asucs4copyCAPITest.test_asucs4copy  sS     	?5AZ]AdF3		1&!AZ]AdF3	5r   c                    ^ RI Hp V P                  V! ^a4      R4       V P                  V! R4      R4       V P                  V! R4      R4       V P                  \        VR4       V P                  \        VR	4       R# )
zTest PyUnicode_FromOrdinal())unicode_fromordinalar0      €r   rt   r   Nr   )rN   rQ  r   r!   r3   )r$   fromordinals   & r   test_fromordinalCAPITest.test_fromordinal  sk     	HT*C0V,h7W-|<*k8<*k26r   c                j   ^ RI Hp V P                  V! R^4      R4       V P                  V! R^4      R4       V P                  V! R^4      R4       V P                  V! R^4      R	4       V P                  \        VR
^ 4       V P                  \
        VR^ 4       V P                  \
        V. ^ 4       R# )zTest PyUnicode_AsUTF8())unicode_asutf8rG      abc    абв   абв rt      😀 rn      abc def    r+   N)r   rX  r   r!   UnicodeEncodeErrorrO   )r$   rX  s   & r   test_asutf8CAPITest.test_asutf8  s     	-q18<!46STa8:OP
A6F,nhJ)^VQ?)^R;r   c                  a aa \         P                  o^ RIHp RoVV V3R lp\	        ^
4       Uu. uF  q1! VR7      NK  	  pp\
        P                  ! V4      ;_uu_ 4         RRR4       R# u upi   + '       g   i     R# ; i)z9Test that there's no race condition in PyUnicode_AsUTF8())Threadu   😊c                  ^   < \        R 4       F  p SP                  S! S^4      R4       K  	  R# )i  s   😊 N)r4   r   )_datar$   rX  s    r   worker)CAPITest.test_asutf8_race.<locals>.worker  s)    4[  a!8:OP !r   )targetN)r   rX  	threadingrc  r4   r   start_threads)r$   rc  rg  re  threadsrf  rX  s   f    @@r   test_asutf8_raceCAPITest.test_asutf8_race  sh     #11$	Q 38)<)Q6()<++G44 54 =444s   A."A33B	c                j   ^ RI Hp ^ RI Hp V P                  V! R^4      R4       V P                  V! R^4      R4       V P                  V! R^4      R4       V P                  V! R^4      R4       V P                  V! R^4      R4       V P                  V! R^4      R4       V P	                  \
        VR	^ 4       V P	                  \        VR
^ 4       V P	                  \        V. ^ 4       V P	                  \
        VR	^ 4       V P	                  \        VR
^ 4       V P	                  \        V. ^ 4       R# )zTest PyUnicode_AsUTF8AndSize()unicode_asutf8andsize)unicode_asutf8andsize_nullrG   rY  rZ  rt   rn   r]  r^  r+   N)rY  r   )r[     )r\  r   )r]     )rN   rq  rr  r   r!   r_  rO   )r$   rq  rr  s   &  r   test_asutf8andsizeCAPITest.test_asutf8andsize  s    	;?.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                @    ^ RI Hp V P                  V! 4       R4       R# )z#Test PyUnicode_GetDefaultEncoding())unicode_getdefaultencodings   utf-8N)rN   rx  r   )r$   getdefaultencodings   & r   test_getdefaultencoding CAPITest.test_getdefaultencoding  s     	V+-x8r   zneed _testinternalcapi modulec                ^   ^ RI Hp V P                  V! R4      R4       V P                  V! R4      R4       V P                  V! R4      R4       V P                  V! R4      R4       V P                  V! R	4      R	4       V P                  \        VR
4       V P                  \        V. 4       R# )z1Test _PyUnicode_TransformDecimalAndSpaceToASCII())*_PyUnicode_TransformDecimalAndSpaceToASCIIr   u   ٣.١٤z3.14u
    3.14 z 3.14 u   12€3z12?r   r   N)_testinternalcapir}  r   r!   r#   )r$   transform_decimals   & r    test_transform_decimal_and_space)CAPITest.test_transform_decimal_and_space!  s     	f*51	 *+@A	!*+IJ!	#*;7	 *2.3+'8&A+'8"=r   c                ,   ^ RI Hp V P                  V! RR4      R4       V P                  V! RR4      R4       V P                  V! RR4      R4       V P                  V! RR4      R	4       V P                  V! R
R4      R4       V P                  \        VRR4       V P                  \        VRR4       V P                  \        VRR4       V P                  \        V. R4       V P                  \        VR. 4       V P                  \        V. . 4       R# )zTest PyUnicode_Concat())unicode_concatrG   defr7  u   гдеu	   abcгдеrZ  u	   абвdefu   абвгдеza bzc dza bc dr+      defN)rN   r  r   r!   rO   )r$   concats   & r   test_concatCAPITest.test_concat5  s     	>u-x8x0+>%0+>(3^D/<)VVU;)VUF;)VVV<)VR7)VUB7)VR4r   c                ,   ^ RI Hp V P                  V! RR4      . RO4       V P                  V! RR^4      . RO4       V P                  V! RR\        4      . RO4       V P                  V! RRR4      . RO4       V P                  V! RR\        4      . RO4       V P                  V! RR4      R.4       V P                  V! RR4      . RO4       V P                  V! RR4      . RO4       V P                  V! R	R4      . RO4       V P                  V! R\
        4      . RO4       V P                  V! R\
        4      . RO4       V P                  \        VRR
4       V P                  \        VR\        R4      4       V P                  \        V. R4       R# )zTest PyUnicode_Split())unicode_splita|b|c|d|rS  	a||b|c||d||   а|б|в|г   а   абабагаламагаr    a	b
cde   ab c d eNrR  r1  rS   d)rR  r1  zc|dr   rR  b|cr  r     б   в   гr   r  r  r  u   лu   мr  r   rR  r1  rS   r  e)
rN   r  r   r   r   rZ   r!   r3   rO   r   )r$   splits   & r   
test_splitCAPITest.test_splitJ  sh    	<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   ^ RI Hp V P                  V! RR4      . RO4       V P                  V! RR^4      . RO4       V P                  V! RR\        4      . RO4       V P                  V! RRR4      . RO4       V P                  V! RR\        4      . RO4       V P                  V! RR4      R.4       V P                  V! RR4      . RO4       V P                  V! RR4      . RO4       V P                  V! R	R4      . RO4       V P                  V! RR4      . RO4       V P                  V! R\
        4      . RO4       V P                  V! R\
        4      . RO4       V P                  \        VRR
4       V P                  \        VR\        R4      4       V P                  \        V. R4       R# )zTest PyUnicode_RSplit())unicode_rsplitr  r  rS  r  r  r  r  r  r   u
   aжbжcжd   жr  r  Nr  )a|brS   r  r   r  r  r  r  )
rN   r  r   r   r   rZ   r!   r3   rO   r   )r$   rsplits   & r   test_rsplitCAPITest.test_rsplitf  s    	>	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                   ^ RI Hp V P                  V! RR4      R4       V P                  V! RR4      R4       V P                  V! RR4      R4       V P                  V! RR4      R4       V P                  V! R	R
4      R4       V P                  \        VRR4       V P                  \
        VRR4       V P                  \
        VRR4       V P                  \
        VR\        R4      4       V P                  \
        V. R4       R# )zTest PyUnicode_Partition())unicode_partitiona|b|cr  a||b||cr     а|б|вr  
   кабан   aжbжcr  r      a|b|c   |N)rR  r  r  )rR  r  zb||c)r  r  u   б|в)u   кr  u   бан)rR  r  u   bжc)rN   r  r   r!   r3   rO   r   )r$   	partitions   & r   test_partitionCAPITest.test_partition  s     	D7C02CD9d35HI:s35IJ<68NO9d35HI*i"=)Y#>)Y>)YSB)YC8r   c                   ^ RI Hp V P                  V! RR4      R4       V P                  V! RR4      R4       V P                  V! RR4      R4       V P                  V! RR4      R4       V P                  V! R	R
4      R4       V P                  \        VRR4       V P                  \
        VRR4       V P                  \
        VRR4       V P                  \
        VR\        R4      4       V P                  \
        V. R4       R# )zTest PyUnicode_RPartition())unicode_rpartitionr  r  r  r  r  r  r  r  r  r   r  r  N)r  r  rS   )za||br  rS   )u   а|бr  r  )u   кабr  u   н)u   aжbr  rS   )rN   r  r   r!   r3   rO   r   )r$   
rpartitions   & r   test_rpartitionCAPITest.test_rpartition  s     	F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   ^ RI Hp V P                  V! R4      . RO4       V P                  V! RR4      . R	O4       V P                  V! R4      . RO4       V P                  V! RR4      . R
O4       V P                  V! R4      . RO4       V P                  \        VR4       R# )zTest PyUnicode_SplitLines())unicode_splitlinesza
bc
dTu   ab c du   а
бв
гs   a
bc
dNr  )za
zbzc
r  )u   au   b u   c r  r  )rN   r  r   r!   rO   )r$   
splitliness   & r   test_splitlinesCAPITest.test_splitlines  s     	FN35IJND95	7$:;-	/$:DA=	?$679QR)ZAr   c                   ^ RI Hp V P                  V! R\        R4      R\        R4      \        R4      \        R4      R/4      R	4       V P                  V! R
\        R4      R\        R4      \        R4      \        R4      R/4      R4       V P                  V! R/ 4      R4       V P                  V! R. 4      R4       V P	                  \
        VR\        R4      R/4       V P	                  \
        VR\        R4      R/R4       V P	                  \        VR\        R4      R/R4       V P                  V! R\        R4      R/R4      R4       V P                  V! R\        R4      R/R4      R4       V P                  V! R\        R4      R/R4      R4       V P	                  \        VR. 4       V P	                  \        V^{. 4       V P	                  \        VR\        R4      R/4       V P	                  \        VR^{4       V P	                  \        VR\        4       V P	                  \        VR\        R4      R/R4       R# )zTest PyUnicode_Translate())unicode_translateabcdrR  Ar1  BrS   <>zAB<>du   абвгr  u   Аr  u   Бr  u   АБ<>гrG   Nstrictfooignoreacreplaceu   a�cbackslashreplaceza\x62cr+      A)	rN   r  r   r   r!   UnicodeTranslateErrorLookupErrorrO   rZ   )r$   	translates   & r   test_translateCAPITest.test_translate  s    	D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                   ^ RI Hp V P                  V! R. RO4      R4       V P                  V! R. RO4      R4       V P                  V! R. RO4      R4       V P                  V! \        . RO4      R4       V P                  V! R. RO4      R4       V P                  V! R	. RO4      R
4       V P	                  \
        VR. RO4       V P	                  \
        VR. RO4       V P	                  \
        V\        . RO4       V P	                  \
        VRR4       V P	                  \
        VR^{4       V P	                  \        VR\        4       R# )zTest PyUnicode_Join())unicode_joinr  r  r   za||crG   za b cr  r  u
   ажбжвr  r   N)rR  r1  rS   )rR  r   rS   )r  r  r  )   a   b   c)rN   r  r   rZ   r!   rO   r#   )r$   rG  s   & r   	test_joinCAPITest.test_join  s    	: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                `   ^ RI Hp R	 F:  p\        V4       F(  w  r4V P                  V! W$^ \	        V4      4      ^4       K*  	  K<  	  RpV P                  V! VR^ \	        V4      4      ^ 4       V P                  V! VR^ \	        V4      4      \	        V4      ^,           4       V P                  V! VR^\	        V4      ^,           4      ^4       V P                  V! VR^\
        4      ^4       V P                  V! VR^ ^ 4      ^ 4       V P                  V! VR\	        V4      ^ 4      ^ 4       V P                  V! VR\	        V4      ) R
4      ^4       V P                  V! VR\	        V4      ) ^,
          R
4      ^4       V P                  V! VR\        R
4      ^4       V P                  \        WR^ \	        V4      4       V P                  \        VRR^ \	        V4      4       V P                  \        W\        R4      ^ \	        V4      4       V P                  \        V. R^ \	        V4      ^4       R# )zTest PyUnicode_Count())unicode_count!>_<!zr   !   !   !>_<!N   ¡u   耀肀u   u   🄀🇱r   )
rN   r  r2   r   r   r   r   r!   rO   r   )r$   r  r   rQ   chs   &    r   
test_countCAPITest.test_count  s    	3QC"3  s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)]q#c(K)]Hc1c#hO)]S1c#hO)]BQC!Lr   c           
     &   ^ RI Hp RpV P                  V! VR^ \        V4      R
4      ^4       V P                  V! VR^ \        V4      ^4      ^4       V P                  V! VR^ \        R
4      ^4       V P                  V! VR\        V4      ) \        R
4      ^4       V P                  V! VR\
        \        V4      R
4      ^4       V P                  V! VR^ \        ^4      ^4       V P                  V! VR\
        \        V4      ^4      ^4       V P                  V! VR^ \        V4      ^4      ^ 4       V P                  V! VR^ \        V4      R
4      ^ 4       V P                  V! VR^ \        V4      ^4      ^4       V P                  V! VR^ \        V4      R
4      ^4       V P                  V! VR^ \        V4      ^,
          R
4      ^ 4       V P                  V! VR^\        V4      ^,
          R
4      ^4       V P                  V! VR^\        V4      ^,
          R
4      ^ 4       V P                  V! VR\        V4      ) ^,           R
R
4      ^4       V P                  V! VR^ \        V4      ^4      ^ 4       V P                  V! VR^ \        V4      ^,
          ^4      ^4       V P                  V! VR\        V4      ) R
^4      ^4       V P                  \        WR^ \        V4      R
4       V P                  \        WR^ \        V4      ^4       R	# )zTest PyUnicode_Tailmatch())unicode_tailmatchababahalamahaabaahar  r   baahNr   )r  r  )rN   r  r   r   r   r   r!   rO   )r$   	tailmatchr   s   &  r   test_tailmatchCAPITest.test_tailmatch  s    	D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                $   ^ RI Hp R	 F_  p\        V4       FM  w  r4V P                  V! W$^ \	        V4      ^4      V4       V P                  V! W$^ \	        V4      R
4      V4       KO  	  Ka  	  RpV P                  V! VR^ \	        V4      ^4      R
4       V P                  V! VR^ \	        V4      R
4      R
4       V P                  V! VR^ \	        V4      ^4      ^ 4       V P                  V! VR^ \	        V4      R
4      \	        V4      4       V P                  V! VR^\	        V4      ^,           ^4      ^4       V P                  V! VR^\
        ^4      ^4       V P                  V! VR^ \	        V4      ^,           R
4      ^4       V P                  V! VR^ \
        R
4      ^4       V P                  V! VR^ ^ ^4      R
4       V P                  V! VR^ ^ R
4      R
4       V P                  V! VR\	        V4      ^ ^4      R
4       V P                  V! VR\	        V4      ^ R
4      R
4       V P                  V! VR\	        V4      ) R
^4      ^ 4       V P                  V! VR\	        V4      ) R
R
4      ^ 4       V P                  V! VR\        R
^4      ^ 4       V P                  V! VR\        R
R
4      ^ 4       V P                  V! VR\        \
        ^4      ^ 4       V P                  V! VR\        \
        R
4      ^4       V P                  \        WR^ \	        V4      ^4       V P                  \        VRR^ \	        V4      ^4       V P                  \        W\        R4      ^ \	        V4      ^4       V P                  \        V. R^ \	        V4      ^4       R# )zTest PyUnicode_Find())unicode_findr  r  r   r  r  r  Nr  r   )
rN   r  r2   r   r   r   r   r!   rO   r   )r$   findr   rQ   r  s   &    r   	test_findCAPITest.test_find*  s!    	:QC"3  cq#c(A!>B  cq#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)TaS1E)T8S!SXqI)TC!SXqI)T2sAs3xCr   c                t   ^ RI Hp R Fs  p\        V4       Fa  w  r4V P                  V! V\	        V4      ^ \        V4      ^4      V4       V P                  V! V\	        V4      ^ \        V4      R4      V4       Kc  	  Ku  	  RpV P                  V! VR^ \        V4      ^4      R4       V P                  V! VR^ \        V4      R4      R4       V P                  V! V\	        R4      ^\        V4      ^,           ^4      ^4       V P                  V! V\	        R4      ^\        ^4      ^4       V P                  V! V\	        R4      ^ \        V4      ^,           R4      ^4       V P                  V! V\	        R4      ^ \        R4      ^4       V P                  V! V\	        R4      ^ ^ ^4      R4       V P                  V! V\	        R4      ^ ^ R4      R4       V P                  V! V\	        R4      \        V4      ^ ^4      R4       V P                  V! V\	        R4      \        V4      ^ R4      R4       V P                  V! V\	        R4      \        V4      ) R^4      ^ 4       V P                  V! V\	        R4      \        V4      ) RR4      ^ 4       V P                  V! V\	        R4      \        R^4      ^ 4       V P                  V! V\	        R4      \        RR4      ^ 4       V P                  V! V\	        R4      \        \        ^4      ^ 4       V P                  V! V\	        R4      \        \        R4      ^4       R# )zTest PyUnicode_FindChar())unicode_findcharr  r   r  Nr  r   )rN   r  r2   r   r   r   r   r   )r$   r  r   rQ   r  s   &    r   test_findcharCAPITest.test_findcharS  s    	6QC"3  !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           	     $   ^ RI Hp RpV P                  V! VRR4      R4       V P                  V! VRR4      R4       V P                  V! VRR4      R	4       V P                  V! VRR^4      R
4       V P                  V! VRR^ 4      V4       V P                  V! VRR\        4      R4       V P                  V! VRRR4      R4       V P                  V! VRR\        4      R4       V P                  V! VRR4      V4       V P                  V! VRR4      R4       V P                  V! VRR4      R4       V P                  V! RRR4      R4       V P                  V! RRR4      R4       V P                  \        VRRR4       V P                  \        VRRR4       V P                  \        VRRR4       V P                  \        VRR\        R4      4       V P                  \        VR\        R4      R4       V P                  \        V. RR4       R# )zTest PyUnicode_Replace())unicode_replaceabracadabrarR  =z=br=c=d=br=r  z<>br<>c<>d<>br<>abraz=cad=z=br=cadabrar  r   z=a=b=r=a=c=a=d=a=b=r=a=r  u   жbrжcжdжbrжr  r  u   =б=б=г=л=м=г=u   Баден-Баденu
   БаденBadenzBaden-Baden   =r  Nr   )rN   r  r   r   r   r!   rO   r   )r$   r  r   s   &  r   test_replaceCAPITest.test_replacew  s    	@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                ^   ^ RI Hp V P                  V! RR4      ^ 4       V P                  V! RR4      R4       V P                  V! RR4      ^4       V P                  V! RR4      R4       V P                  V! RR4      ^ 4       V P                  V! RR4      ^4       V P                  \        VRR4       V P                  \        VRR4       V P                  \        VRR4       V P                  \        V. R4       V P                  \        VR. 4       V P                  \        V. . 4       R# )	zTest PyUnicode_Compare())unicode_comparerG   r  rn   rZ  r+   Nr   )rN   r  r   r!   rO   )r$   compares   & r   test_compareCAPITest.test_compare  s
    	@.2.3.2
3R8Z8!<5115)Wfe<)WeV<)Wff=)Wb%8)WeR8)Wb"5r   c                >   ^ RI Hp V P                  V! RR4      ^ 4       V P                  V! RR4      R
4       V P                  V! RR4      ^4       V P                  V! RR4      ^ 4       V P                  V! RR4      ^4       V P                  V! RR4      ^4       R	# )z'Test PyUnicode_CompareWithASCIIString())unicode_comparewithasciistringrG   r+   r  r  rm   rn   rZ  Nr   )rN   r  r   )r$   comparewithasciistrings   & r   test_comparewithasciistring$CAPITest.test_comparewithasciistring  s     	^/v>B/v>C/v>B/{CQG/
KH!L/&A1Er   c           	     <   ^ RI Hp ^ RI Hp . ROpV EF  pV! V^ 4       VP                  4       pV P	                  V! WE4      ^4       VP                  4       pV P	                  V! We4      ^4       V P	                  V! VR,           VR,           4      ^4       V P	                  V! VR,           VR,           4      ^ 4       V P	                  V! WER,           4      ^4       V P	                  V! WeR,           4      ^4       V P	                  V! VR,           VR,           4      ^ 4       V P	                  V! VR,           V4      ^ 4       V P	                  V! WeR,           4      ^ 4       V P	                  V! WeR	R 4      ^ 4       V P	                  V! WeR	R R,           4      ^ 4       EK  	  V P	                  V! R
R4      ^4       V P	                  V! R
R4      ^4       V P	                  V! RR4      ^4       V P	                  V! RR4      ^ 4       V P	                  V! RR4      ^ 4       V P	                  V! RRP                  RR4      4      ^ 4       V P	                  V! RRP                  RR4      4      ^ 4       V P	                  V! RRP                  RR4      4      ^ 4       R	# )r   )unicode_equaltoutf8rp  rG   xr      yr   rY   Nr   r   r]  za bcr+   s   a bc   r   surrogateescaper-     rG   rK   rL   rM   r   r   )rN   r  rq  r   r   r  )r$   equaltoutf8asutf8andsizer9   rB   r1  r   s   &      r   test_equaltoutf8CAPITest.test_equaltoutf8  s_    	HK

 A !Q
A[.2B[/3[S!d(;Q?[S!d(;Q?[I6:[Y7;[T1u9=qA[T15q9[X6:[sV4a8[sVd];Q?! $ 	R-q1R/3 	UM:A>Wf5q9UH5q9 	X$OOF4EFHIJ	LX$OOFODFGH	JX$OOFODFGH	Jr   c           
       a a ^ RI Ho ^ RI Hp . ROpV EF  pV! V^ 4       VP                  4       pS P	                  S! W44      ^4       VP                  4       pS P	                  S! WT4      ^4       S P	                  S! VR,           VR,           4      ^4       S P	                  S! VR,           VR,           4      ^ 4       S P	                  S! W4R,           4      ^ 4       S P	                  S! WTR,           4      ^ 4       S P	                  S! VR,           VR,           4      ^4       S P	                  S! VR,           V4      ^ 4       S P	                  S! WTR,           4      ^ 4       S P	                  S! WTRR 4      ^ 4       S P	                  S! WTRR R,           4      ^ 4       S P	                  S! W4R,           \        V4      4      ^4       S P	                  S! WTR,           \        V4      4      ^4       S P	                  S! VR,           VR	,           \        V4      ^,           4      ^4       S P	                  S! WT\        V4      ^,
          4      ^ 4       S P	                  S! W4R4      ^ 4       S P	                  S! W4\        4      ^ 4       S P	                  S! W4\        4      ^ 4       EK  	  S P	                  S! R
R4      ^4       S P	                  S! R
R4      ^ 4       S P	                  S! R
R^ 4      ^4       S P	                  S! RR4      ^4       S P	                  S! RR4      ^4       S P	                  S! RRP                  RR4      4      ^ 4       S P	                  S! RRP                  RR4      4      ^ 4       S P	                  S! RRP                  RR4      4      ^ 4       VV 3R lpV! RR4       V! RR4       V! RR4       R# )r   )unicode_equaltoutf8andsizerp  r  r   r  r   rY   Ns    xr   r   rn   rm   r9  r]  r  r   r  r-  r  c                    < SP                  S! W P                  V4      4      ^ 4       SP                  V P                  V4      V P                  R4      4       R# )r   r   N)r   r   assertNotEqual)r   r0  equaltoutf8andsizer$   s   &&r   check_not_equal_encodingBCAPITest.test_equaltoutf8andsize.<locals>.check_not_equal_encoding!  sD    /kk(6KLaPH 5t{{67JKr   u	   Stéphaner   z	utf-16-leu	   北京市gbkr  r   )	rN   r  rq  r   r   r  r   r   r   )r$   r  r9   rB   r1  r   r  r  s   f      @r   test_equaltoutf8andsize CAPITest.test_equaltoutf8andsize  sn    	VK

 A !Q
A/5q9B/6:/CTBAF/CTBAF/u9=qA/I>B/D!e)DaH/D!<a@/H=qA/crF;Q?/crFTMBAF/t8SVDaH/Hc!fEqI/D!f*c!fqjQSTU/s1vzBAF/b91=/nEqI/nEqI1 4 	+B4a8+B6:+Ba8!< 	+JDaH+L-H!L 	+H$OOF4EFHIJ	L+H$OOFODFGH	J+H$OOFODFGH	J	L
 	!h7 k: e4r   c           	        ^ RI Hp \        ^4      w  r#rErgRpV F  p	V F  p
V P                  V! WV4      W8  4       V P                  V! WV4      W8*  4       V P                  V! WV4      W8H  4       V P                  V! WV4      W8g  4       V P                  V! WV4      W8  4       V P                  V! WV4      W8  4       K  	  K  	  W#WEWg3 F  pV P                  V! RRV4      \        4       V P                  V! RRV4      \        4       V P                  V! RRV4      \        4       V P                  V! . RV4      \        4       V P                  V! R. V4      \        4       V P                  V! . . V4      \        4       K  	  R# )zTest PyUnicode_RichCompare())unicode_richcomparerG   r+   N)rG   rZ  rt   r8  )rN   r!  r4   r   NotImplemented)r$   richcompareLTLEEQNEGTGEr9   s1r   ops   &           r   test_richcompareCAPITest.test_richcompare0  sX    	H!&q:Bk""5rw?k""5rx@k""5rx@k""5rx@k""5rw?k""5rx@   ""(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                   ^ RI Hp V P                  V! R^*4      R4       V P                  V! RR4      R4       V P                  V! R^*. 34      R4       V P                  \        VR\
        4       V P                  \        V\
        ^*4       R# )zTest PyUnicode_Format())unicode_formatzx=%d!zx=42!z
x=%d y=%s!z
x=42 y=[]!N)*   )rN   r/  r   r!   r#   rZ   )r$   r   s   & r   test_formatCAPITest.test_formatL  sx     	>,g6/9r2h7F+vw=+vtR8r   c                r   ^ RI Hp V P                  V! RR4      ^4       V P                  V! RR4      ^4       V P                  V! RR4      ^ 4       V P                  V! RR4      ^ 4       V P                  V! RR4      ^ 4       V P                  V! RR4      ^4       V P                  V! RR	4      ^4       V P                  \        VR
R4       V P                  \        VRR4       V P                  \        VR
R4       V P                  \        V. R4       V P                  \        VR\        R4      4       R# )zTest PyUnicode_Contains())unicode_containsr  r   r1  r  r  rY   rn   bcs   abcdr  N)rN   r4  r   r!   rO   r   )r$   containss   & r   test_containsCAPITest.test_containsY  s    	B&"-q1&#.2&#.2&$/3&$/3*d3Q7&$/3)Xw<)Xvt<)Xw=)Xr37)Xvs3x@r   c                   ^ RI Hp V P                  V! R4      ^4       V P                  V! R4      ^4       V P                  V! R4      ^4       V P                  V! R4      ^4       V P                  V! R4      ^ 4       V P                  V! R4      ^ 4       V P                  V! R4      ^ 4       V P                  V! R	4      ^ 4       V P                  V! R
4      ^ 4       V P                  V! R4      ^ 4       R# )zTest PyUnicode_IsIdentifier())unicode_isidentifierrR  b0   µu   𝔘𝔫𝔦𝔠𝔬𝔡𝔢r    [   ©032MN)rN   r:  r   )r$   isidentifiers   & r   test_isidentifierCAPITest.test_isidentifiero  s     	Jc*A.d+Q/d+Q/&DEqIb)1-c*A.c*A.d+Q/c*A.e,a0r   c                   ^ RI Hp . ROp\        V4       F  w  r4VRV  F  pV P                  \        W^ V^ ^4       K  	  \        ^4       F@  pV P                  V! V^ WF^4      WFV^,            P                  ^R4      ^V,
          34       KB  	  \        ^4       F?  pV P                  V! WGWG^4      WGV^,            P                  ^R4      ^V,
          34       KA  	  K  	  V^ ,          pV P                  \        W^V^ ^4       V P                  \        W\        V^ ^4       V P                  \        WRV^ ^4       V P                  \        W\        V^ ^4       V P                  \        W^ V^^4       V P                  \        W^ V\        ^4       V P                  \        W^ VR^4       V P                  \        W^ V\        ^4       V P                  \        W^V^ ^4       V P                  \        W^V^ \        4       V P                  \        W^ V^ R4       V P                  \        W^ V^ \        4       V P                  \        W^ R^ ^ 4       V P                  \        W^ . ^ ^ 4       R# )zTest PyUnicode_CopyCharacters())unicode_copycharactersNrY   r   r,   r   )r   rF  r2   r!   r#   r4   r   ljustrjustr7   r   r   )	r$   rF  r9   r;   from_r=   
from_startto_startrB   s	   &        r   test_copycharactersCAPITest.test_copycharacters  s^    	5
 $G,JCdsm!!*5!Q $ $Ah
  *5!UJjl399!TBz\# ' "!H  *5EQOHQJ/55a>xZ! % -. AJ*&<Aq!L*&<QRTUWXY*&<Q1M*&<QRTUWXY*&<Aq!L*&<A~WXY*&<Ar1M*&<A~WXY+'=!Q1M+'=!Q>Z+'=!Q2N+'=!Q>Z+'=!S!QO+'=!RANr   c                d   ^ RI Hp R F  pRp\        ^4       F  pV\        V4      ,          pV P	                  V! V4      \        V4      P                  4       V^,           ,          4       V P	                  V! V4      \        V4      P                  4       V^,           ,          4       K  	  K  	  R# )r   )getargs_s_hashr   N)$      r0   i )r   rO  r4   r    r   r   )r$   rO  krB   rQ   s   &    r   test_pep393_utf8_caching_bug%CAPITest.test_pep393_utf8_caching_bug  s     	-,AA1X SV   !2CFMMOq1u4MN  !2CFMMOq1u4MN  -r   r	   )Br   r   r   r   r   cpython_onlyunittestskipIfr   r'   rC   rN   rT   r\   rc   rh   rx   r~   r   r   r   r   r   r  r  r"  r'  r2  r>  rC  rI  rN  rU  r`  r   requires_working_threadingrm  ru  rz  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r,  r1  r7  rC  rL  rS  r   __classdictcell____classdict__s   @r   r   r      s}
    __Y$&(?@? A ?& __Y$&(?@!= A !=L __%-/MN= O =: __%-/MN8 O 80 __%-/MN< O <4 __%-/MNB O B2 __%-/MNP O P. __%-/MN
. O 
. __Y$&(?@P A PD __%-/MNK O K, __%-/MN	4 O 	4 __%-/MN6 O 6" __%-/MN5 O 5" __Vt^]3o5 4o5b __%-/MN# O # __%-/MN4 O 4 __%-/MNK O KB __%-/MN,J O ,J\ __%-/MNL O LB __Y$&(?@G A G. __Y$&(?@4 A 4 __%-/MN	7 O 	7 __Y$&(?@< A < __Y$&(?@002 3 A  __%-/MNH O H* __%-/MN9 O 9 __&$.0OP> Q >$ __%-/MN5 O 5& __%-/MN5 O 54 __%-/MN6 O 66 __%-/MN9 O 9$ __%-/MN: O :$ __%-/MNB O B  __%-/MNR O R. __%-/MN8 O 8  __%-/MNM O M: __%-/MNU O UB __%-/MN#D O #DN __%-/MNa O aD __%-/MN< O <: __%-/MN6 O 6( __%-/MN	F O 	F __%-/MN*J O *JX __%-/MN;5 O ;5F __%-/MNC O C4 __%-/MN	9 O 	9 __%-/MNA O A( __%-/MN1 O 1( __Y$&(?@0O A 0Oj __Y$&(?@O A Or   r   c                   b   a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tRtV tR# )PyUnicodeWriterTesti  c                .    \         P                  ! V4      # r   r   PyUnicodeWriterr$   r;  s   &&r   create_writer!PyUnicodeWriterTest.create_writer      ((..r   c                   V P                  ^d4      pVP                  RR4       VP                  R4       VP                  R^^4       VP	                  R4       VP                  R4       V P                  VP                  4       R4       R# )	d   s   varr  z[long]z value reprzvar=long value 'repr'Nr   )rb  
write_utf8
write_charwrite_substring	write_str
write_reprr   finishr$   writers   & r   
test_basicPyUnicodeWriterTest.test_basic  s    ##C( 	&"% 	# 	xA. 	# 	&!0	2r   c                :   V P                  ^ 4      pVP                  RR4       VP                  R4       VP                  RR4       VP                  R4       VP                  RR4       VP                  R4       V P                  VP	                  4       R4       R# )	r   s   ascii-s	   latin1=és   euro=€r   u   ascii-latin1=é-euro=€.Nr   )rb  rh  ri  r   rm  rn  s   & r   	test_utf8PyUnicodeWriterTest.test_utf8  s    ##A&(B'#,b1#.3#9	;r   c                    V P                  ^ 4      pVP                  RR4       VP                  R^ 4       VP                  R^4       V P                  VP                  4       R4       R# )r   s   Hello r   s   Python! <truncated>zHello PythonNr   )rb  write_asciir   rm  rn  s   & r   
test_asciiPyUnicodeWriterTest.test_ascii  sY    ##A&9b)3"115.9r   c                    V P                  ^ 4      pV P                  \        4      ;_uu_ 4        VP                  RR4       RRR4       R#   + '       g   i     R# ; i)r   s	   invalid=Nr   )rb  r!   rv   rh  rn  s   & r   test_invalid_utf8%PyUnicodeWriterTest.test_invalid_utf8  sC    ##A&122or2 3222s   AA	c                F   V P                  ^ 4      pVP                  RR4       V P                  \        4      ;_uu_ 4        VP                  RR4       RRR4       VP                  RR4       V P	                  VP                  4       R4       R#   + '       g   i     LD; i)r   s   value=   invalidNs   validzvalue=validr   )rb  rh  r!   rv   r   rm  rn  s   & r   test_recover_utf8_error+PyUnicodeWriterTest.test_recover_utf8_error  s    ##A&)R( 122nb1 3 	(B'&	( 32s   BB 	c                   V P                  ^ 4      pVP                  RR	R4       VP                  R4       VP                  RR	R4       VP                  R4       VP                  RR	R4       V P                  VP	                  4       R4       R# )
r   s   ignore   ignorers  s   replaces   replace   incompleteu   ignore-replace�-incomplete�Nr   )rb  decodeutf8statefulri  r   rm  rn  s   & r   test_decode_utf8$PyUnicodeWriterTest.test_decode_utf8  s    ##A&!!-Y?#!!."jA# 	!!"3RD@	Br   c                   V P                  ^ 4      pVP                  RRRR4      pV P                  V^4       VP                  R4       VP                  R^RR4      pV P                  V^4       VP                  R4       V P	                  \
        4      ;_uu_ 4        VP                  RRRR4       RRR4       VP                  RRR	R4      pV P                  V^4       VP                  R4       VP                  R
RR	R4      pV P                  V^
4       V P                  VP                  4       R4       R#   + '       g   i     L; i)r   s   texts   strictTrs  s   é-€r~  Ns   morer  r  u   text-é-€-more-incompleter   )rb  r  r   ri  r!   rv   rm  )r$   ro  consumeds   &  r   test_decode_utf8_consumed-PyUnicodeWriterTest.test_decode_utf8_consumed  s,   ##A& ,,Wb)TJ1%# ,,-Eq)UYZ1%# 122%%nb)TJ 3 ,,["iN1%# ,,->ItT2&*LM 32s   D99E		c                4   V P                  ^ 4      pVP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  R4       VP                  R4       V P                  VP	                  4       R4       R# )r   	   latin1=érs     euro=€   max=􏿿r   u   latin1=é-euro=€-max=􏿿.N)rb  write_widecharri  r   rm  rn  s   & r   test_widechar!PyUnicodeWriterTest.test_widechar9  s    ##A&m,c"m,#./#B	Dr   c                L   V P                  ^ 4      pVP                  R^4       VP                  R4       VP                  R^4       VP                  R4       VP                  R^4       VP                  R4       VP                  R^4       VP                  R4       V P                  VP	                  4       R4       V P                  ^ 4      pVP                  R^4       VP                  R4       VP                  R	^4       VP                  R4       VP                  R
^4       V P                  VP	                  4       R4       V P                  ^ 4      pV P                  \        4      ;_uu_ 4        VP                  RR4       RRR4       R#   + '       g   i     R# ; i)r   zascii IGNOREDrs  r  r  r  r   u"   ascii-latin1=é-euro=€-max=􏿿.u   loneu
   pairznull[ ]u   lone-pair-null[ ]r   Nr   )rb  
write_ucs4ri  r   rm  r!   r3   rn  s   & r   	test_ucs4PyUnicodeWriterTest.test_ucs4D  s_   ##A&/1-#-+#-+#*A.#H	J ##A&,*#,a0#*a(9	; ##A&z**fb) +***s   5FF#	c                    V P                  ^ 4      pVP                  R^^4       V P                  VP                  4       R4       R# )r   rG   r   N)rb  rj  r   rm  rn  s   & r   test_substring_empty(PyUnicodeWriterTest.test_substring_emptyb  s:    ##A&ua+"-r   r	   N)r   r   r   r   rb  rp  rt  rx  r{  r  r  r  r  r  r  r   rY  rZ  s   @r   r]  r]    sD     /2*	;:3
(BN:	D*<. .r   r]  r   c                   >   a  ] tR tRt o R tR tR tR tR tRt	V t
R# )	PyUnicodeWriterFormatTestih  c                .    \         P                  ! V4      # r   r_  ra  s   &&r   rb  'PyUnicodeWriterFormatTest.create_writerj  rd  r   c                    ^ RI HpHpHpHp \        VR4      pWc3Vn        WWn        V! VP                  4       .VO5!  ^ 8  d   \        R4      hR# )r   )r   r   r   r   PyUnicodeWriter_FormatzPyUnicodeWriter_Format failedN)
r  r   r   r   r   r  r  r  get_pointerr3   )r$   ro  r   r   r   r   r   _PyUnicodeWriter_Formats   &&*     r   writer_format'PyUnicodeWriterFormatTest.writer_formatm  sU    ??"))5M"N,4+@(*/'"6#5#5#7?$?!C<== Dr   c                    ^ RI Hp V P                  ^ 4      pV P                  VRRV! ^{4      4       VP	                  R4       V P                  VP                  4       R4       R# )r   )r   s   %s %ir+   r   zabc 123.N)r  r   rb  r  ri  r   rm  )r$   r   ro  s   &  r   r1  %PyUnicodeWriterFormatTest.test_formatv  sQ     ##A&68VU3Z@#*5r   c                L   V P                  ^ 4      pV P                  VRR4       V P                  \        4      ;_uu_ 4        V P                  VRR4       RRR4       V P                  VRR4       V P	                  VP                  4       R4       R#   + '       g   i     LE; i)r   s   %s s   Hellos   %ss   WorldNs   %s.zHello World.)rb  r  r!   r3   r   rm  rn  s   & r   test_recover_error,PyUnicodeWriterFormatTest.test_recover_error}  s    ##A&6684 z**vy(; + 	6684.9 +*s   BB#	c           
     `   \         P                  pR  pV P                  V! RR4      4       V P                  V! RR4      4       V P                  V! RV! R4      4      4       V P                  V! RV! R4      4      4       V P                  V! RV! R4      4      4       V P                  V! RR4      4       V P                  V! RR4      4       V P                  V! RR4      4       V P                  V! R\	        R4      4      4       V P                  V! \	        R4      R4      4       V P                  V! R\	        R4      4      4       V P                  V! \	        R4      R4      4       R
 F  pV P                  VR7      ;_uu_ 4        V P                  \        4      ;_uu_ 4        V! RV4       R	R	R	4       V P                  \        4      ;_uu_ 4        V! VR4       R	R	R	4       R	R	R	4       K  	  R	#   + '       g   i     LM; i  + '       g   i     L1; i  + '       g   i     K  ; i)c                 >    V P                  4       P                  4       # r   )r   r  )r   s   &r   copy:PyUnicodeWriterFormatTest.test_unicode_equal.<locals>.copy  s    ;;=''))r   r   rG   rS  r   r  u   ₭u   􏿾)invalid_typeN)s   bytesr   r   )rN   unicode_equal
assertTrueassertFalser   r  r!   rO   )r$   r  r  r  s   &   r   test_unicode_equal,PyUnicodeWriterFormatTest.test_unicode_equal  s   (66	* 	b"-.eU34eT%[9:hX?@lD4FGHuf56x:;|\BC 	eSZ89c%j%89uc&k:;s5z6:; 8L<88&&y11!%6 2&&y11!,6 2 98 81111 988s<   	H'
G61%H
H	 H6HH	HHH-r	   N)r   r   r   r   rb  r  r1  r  r  r   rY  rZ  s   @r   r  r  h  s#     />6:7 7r   r  __main__)rV  r   testr   test.supportr   r   r   r   ImportErrorrN   r~  r  rZ   r   r   TestCaser   r]  rW  r  r   mainr	   r   r   <module>r     s    
  )8
 	# 	mOx   mO`5V.(++ V.r 
4/>7 1 1 >7 0>7H zMMO I=  I      FsD   B1 C  C C 1	B=<B= 	CC	CC	C*)C*