
    z%in                         d dl Z d dlZd dlmZ  ej                  d      ZdZ G d de j                        Ze	dk(  r e j                          yy)    N)import_helper	_testcapic                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)CAPITestc                    	 t         j                  }| j                   |dt              d       | j                   |dd      d       d}d}| j                   ||t              |       | j                   ||d      |       | j                   ||d      |j	                  d             | j                  t        ||d       | j                   ||dd      d	       | j                   |t        |      t              |       | j                   |t        |      d      |       | j                  t        |dd
       | j                  t        ||dd
       | j                  t        |dt               | j                  t        |dd       | j                  t        |g t               | j                  t        |g d       | j                  t        |t        t               | j                  t        |t        d       y )N   abcabcascii
   a¡你😀
   a¡你😀utf-8latin1replaceu   a���������foo)r   unicode_fromencodedobjectassertEqualNULLdecodeassertRaisesUnicodeDecodeError	bytearrayLookupError	TypeErrorSystemError)selffromencodedobjectbss       N/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/test/test_capi/test_codecs.pytest_fromencodedobjectzCAPITest.test_fromencodedobject   s   0%??*648%@*67;UC4#*1d3Q7*1g6:*1h7(9KL,.?GL*1gyA)	+*9Q<>B*9Q<A1E+'8&%H+'8!WeL)%6tD)%6wG)%6DA)%6GD+'8$E+'8$H    c                    	 t         j                  }| j                   |dd      d       | j                   |dd      d       | j                   |ddd      d       | j                  t        |dd       | j                   |ddd      d       | j                   |dt
              d       | j                   |dt
        d      d       | j                  t        |d	d
       | j                  t        |d	dd
       y )Ns   [€]r   u   [€]s   []z
iso8859-15strictr   u   [�]   r   )r   unicode_decoder   r   r   r   r   )r   r   s     r   test_decodezCAPITest.test_decode5   s    %)) 17;ZH	<8*E	<BJO,fiI	7I>
K 148*E	4;ZH+vw>+vwGr!   c                    	 t         j                  }| j                   |dt              d       | j                   |dd      d       d}d}| j                   ||t              |       | j                   ||d      |       | j                   |dd      d	       | j	                  t
        |dd       | j                   ||dd
      d       | j	                  t        |dd       | j	                  t        ||dd       | j	                  t        |dt               | j	                  t        |dd       | j	                  t        |g t               | j	                  t        |g d       y )Nr	   r   r
   r   r   r      ¡¢r      r   s   a???r   )r   unicode_asencodedstringr   r   r   UnicodeEncodeErrorr   r   )r   asencodedstringr   r   s       r   test_asencodedstringzCAPITest.test_asencodedstringG   s5   .#;;5v>8&A#4D115G4a8X>L,oz7SGY?I+uE+7EJ)_fdC)_fgF)_b$?)_b'Br!   c                    	 t         j                  }dD ]D  }|j                  d      }| j                   ||      |       | j                   ||d      |       F | j	                  t
        |d       | j	                  t
        |d       | j	                  t
        |d       | j	                  t
        |d       | j                   |dd      d	       | j                   |d
d      d       | j	                  t        |dd       y )Nr	   r(      你好u   a😀r   r#               ar      a�   ab   a�b   ar   )r   unicode_decodeutf8encoder   r   r   r   )r   
decodeutf8r   r   s       r   test_decodeutf8zCAPITest.test_decodeutf8^   s    )11
C 	9A!AZ]A.Z84a8	9
 	,j'B,j'B,j'B,j,GL)<iHM9=zJ+z8UCr!   c                 `   	 t         j                  }dD ]Z  }|j                  d      }| j                   ||      |t	        |      f       | j                   ||d      |t	        |      f       \ | j                  t        |d       | j                  t        |d       | j                  t        |d       | j                   |d      d       | j                   |dd	      d       | j                  t        |d
       | j                   |d
d	      d       | j                  t        |dd       y )Nr/   r   r#   r1   r2   r3   r4   )a   r   r6   )r7      r8   r   )r   unicode_decodeutf8statefulr:   r   lenr   r   r   )r   decodeutf8statefulr   r   s       r   test_decodeutf8statefulz CAPITest.test_decodeutf8statefulr   s   1&AAC 	KA!A/2QAK@/8<q#a&kJ	K
 	,.@'J,.@'J,.@'J+L98D+L)DhO,.@-P+M9EW+'98UKr!   c                    	 t         j                  }dD ])  }| j                   ||      |j                  d             + | j	                  t
        |d       | j	                  t        |d       | j	                  t        |g        y )Nr/   r      r   )r   unicode_asutf8stringr   r:   r   r+   r   )r   asutf8stringr   s      r   test_asutf8stringzCAPITest.test_asutf8string   sw    + 55C 	AA\!_ahhw.?@	A 	,lHE)\6:)\26r!   c                 `   	 t         j                  }t        j                  dk(  rdnd}dD ]  }|j	                  d      }| j                   |d|      ||f       |j	                  d      }| j                   |d|      d|f       | j                   |dd|z         d|f       |j	                  d	      }| j                   |d|      d|f       | j                   |dd
|z         d|f        | j                  t        |dd       | j                  t        |dd       | j                  t        |dd       | j                  t        |dd       | j                  t        |dd       | j                  t        |dd       | j                  t        |dd       | j                   |ddd      d       | j                   |ddd      d       | j                   |ddd      d       | j                   |ddd      d       | j                   |ddd      d       | j                  t        |dd       | j                  t        |dd       | j                  t        |dd       | j                   |ddd      d       | j                   |ddd      d       | j                   |ddd      d       | j                   |ddd      d       | j                   |ddd      d       | j                  t        |ddd       | j                  t        |ddd       | j                  t        |ddd       y )Nlittler?   r/   utf-16r   utf-16le   utf-16be      as   as   a           r   rL      �r?   rW   r   rW           s   =s   =s   s   =s   =r   )	r   unicode_decodeutf16sys	byteorderr:   r   r   r   r   )r   decodeutf16naturalbyteorderr   r   s        r   test_decodeutf16zCAPITest.test_decodeutf16   s   *33!$(!:2C 	DA"A[A.1A10EF$A[Q/"a9[KM:RGD$A[A.A7[KM:QFC	D 	,k2tD,k1dC,k1lK,k1lK,k2{K,k1kJ,k1kJRi@.QQY?OQY?OQ(;YGXQ(;YGW,k2{K,k1kJ,k1kJRi@.QQY?OQY?OQ(;YGXQ(;YGW+{BUK+{A{EJ+{A{EJr!   c           	         	 t         j                  }t        j                  dk(  rdnd}dD ]  }|j	                  d      }| j                   |d|      ||t        |      f       |j	                  d      }| j                   |d|      d|t        |      f       | j                   |dd|z         d|t        |      d	z   f       |j	                  d
      }| j                   |d|      d|t        |      f       | j                   |dd|z         d|t        |      d	z   f        | j                   |dd      d       | j                   |dd      d       | j                   |dd      d       | j                   |dd      d       | j                   |dd      d       | j                   |dd      d       | j                   |dd      d       | j                   |dd      d       | j                  t        |dd       | j                  t        |dd       | j                  t        |dd       | j                   |ddd      d       | j                   |ddd      d       | j                   |ddd      d       | j                   |ddd      d        | j                   |dd!d      d"       | j                  t        |dd#       | j                   |dd#d      d$       | j                  t        |dd%       | j                   |dd%d      d&       | j                  t        |ddd'       | j                  t        |ddd'       | j                  t        |ddd'       y )(NrK   rL   r?   r/   rM   r   rN   rO      rP   rQ   s   a =)rL   r>   rc   s   a =s   a = s    a)r?   r>   rc   s    a=s    a=s   a = rL   r>   r@   s    a=ީr?   r>   r@   rS   rT   rU   r   )rL   rW   rc   )r?   rW   rc   )r   rW   rc   rZ   rL   rW   r@   r[   r?   rW   r@   s   =a )rL      �ar@   s   = a)r?   rh   r@   r   )
r   unicode_decodeutf16statefulr]   r^   r:   r   rB   r   r   r   )r   decodeutf16statefulr`   r   r   s        r   test_decodeutf16statefulz!CAPITest.test_decodeutf16stateful   sa   2'CC!$(!:2C 	VA"A0A69I1cRSf8UV$A0Q7"aQI0KMBRCPQFSTHDUV$A0A6As1vG0KMBQ3q6RS8DTU	V 	,RA<P,R1DE|T,R1HI<X,Q@+N,Q0CDkR,Q0GH+V,Q0OPR^_,Q0OPR]^,.A2{S,.A1kR,.A1kR,RiHJ[\,QYGIYZ,QYGIYZ,Q0CYOQbc,Q0CYOQab,.A2GZ[,R1DiPRde,.A1FYZ,Q0CYOQbc+':BUS+':A{ER+':A{ERr!   c                    	 t         j                  }dD ])  }| j                   ||      |j                  d             + | j	                  t
        |d       | j	                  t        |d       | j	                  t        |g        y )Nr/   rM   rF   r   )r   unicode_asutf16stringr   r:   r   r+   r   )r   asutf16stringr   s      r   test_asutf16stringzCAPITest.test_asutf16string   x    ,!77C 	CA]1-qxx/AB	C 	,mXF)]F;)]B7r!   c                    	 t         j                  }t        j                  dk(  rdnd}dD ]  }|j	                  d      }| j                   |d|      ||f       |j	                  d      }| j                   |d|      d|f       | j                   |dd|z         d|f       |j	                  d	      }| j                   |d|      d|f       | j                   |dd
|z         d|f        | j                  t        |dd       | j                  t        |dd       | j                  t        |dd       | j                  t        |dd       | j                  t        |dd       | j                  t        |dd       | j                  t        |dd       | j                   |ddd      d       | j                   |ddd      d       | j                   |ddd      d       | j                   |ddd      d       | j                   |ddd      d       | j                  t        |dd       | j                   |ddd      d       | j                  t        |dd       | j                   |ddd      d       | j                  t        |ddd       | j                  t        |ddd       | j                  t        |ddd       y )NrK   rL   r?   r/   utf-32r   utf-32le     utf-32be        a          a s	     a    s	        a    r   rV   rX   rY                =       =r   )	r   unicode_decodeutf32r]   r^   r:   r   r   r   r   )r   decodeutf32r`   r   r   s        r   test_decodeutf32zCAPITest.test_decodeutf32   s   )33!$(!:2C 	LA"A[A.1A10EF$A[Q/"a9[,?,ABRGL$A[A.A7[,?,ABQFK	L 	,k2?VW,k1>UV,k1>ef,k1>ef,k2?RS,k1>QR,k1>QRR)<iH.YQ(;YGWQ(;YGWQ(KYWYghQ(KYWYfg,k2?RSR)<iH.Y,k1>QRQ(;YGW+{B8KUS+{A7JER+{A7JERr!   c           	         	 t         j                  }t        j                  dk(  rdnd}dD ]  }|j	                  d      }| j                   |d|      ||t        |      f       |j	                  d      }| j                   |d|      d|t        |      f       | j                   |dd|z         d|t        |      d	z   f       |j	                  d
      }| j                   |d|      d|t        |      f       | j                   |dd|z         d|t        |      d	z   f        | j                   |dd      d       | j                   |dd      d       | j                   |dd      d       | j                   |dd      d       | j                   |dd      d       | j                   |dd      d       | j                   |dd      d       | j                   |dd      d       dD ]  }| j                   |d|      d       | j                   |d|      d       | j                   |d|      d       | j                   |dd|z         d       | j                   |dd|z         d        | j                  t        |dd       | j                  t        |dd       | j                  t        |dd       | j                   |ddd      d        | j                   |ddd      d!       | j                   |ddd      d"       | j                   |dd#d      d$       | j                   |dd%d      d&       | j                  t        |dd'       | j                   |dd'd      d        | j                  t        |dd(       | j                   |dd(d      d!       | j                  t        |ddd)       | j                  t        |ddd)       | j                  t        |ddd)       y )*NrK   rL   r?   r/   rr   r   rs   rt   r@   ru   rv   rw   rd   s   a    s   a    rx   re   s      a s      a s     a    )rL   r>      s        a )r?   r>   r   )r3   s   s   )rL    r   )r?   r   r   )r   r   r   )rL   r   r@   )r?   r   r@   ry   r   rf   rg   )r   rW   r@   rz   )rL   rW   r   r{   )r?   rW   r   r|   r}   r   )
r   unicode_decodeutf32statefulr]   r^   r:   r   rB   r   r   r   )r   decodeutf32statefulr`   r   r   s        r   test_decodeutf32statefulz!CAPITest.test_decodeutf32stateful#  s   2'CC!$(!:2C 	^A"A0A69I1cRSf8UV$A0Q7"aQI04G4IJRQRTWXYTZ[\T\L]^$A0A6As1vG04G4IJQPQSVWXSYZ[S[L\]	^ 	,R1HI<X,R1LM|\,R1PQS_`,Q0GH+V,Q0KLkZ,Q0OPR]^,Q0_`bno,Q0_`bmn6 	XA0Q7E0A6
C0A6
C04G4IJKX04G4IJJW	X 	,.A2GZ[,.A1FYZ,.A1FYZ,R1DiPRcd,Q0CYOQab,Q0CYOQab,Q0SU^_ars,Q0SU^_aqr,.A2GZ[,R1DiPRcd,.A1FYZ,Q0CYOQab+':B@SUZ[+':A?RTYZ+':A?RTYZr!   c                    	 t         j                  }dD ])  }| j                   ||      |j                  d             + | j	                  t
        |d       | j	                  t        |d       | j	                  t        |g        y )Nr/   rr   rF   r   )r   unicode_asutf32stringr   r:   r   r+   r   )r   asutf32stringr   s      r   test_asutf32stringzCAPITest.test_asutf32stringW  rp   r!   c                     	 t         j                  }| j                   |d      d       | j                   |dd      d       | j                   |d      d       | j                   |dd      d       y )Nr   r	   r#   r)   r(   )r   unicode_decodelatin1r   )r   decodelatin1s     r   test_decodelatin1zCAPITest.test_decodelatin1c  sh    + 55f-u5fh7?k2J?k8<jIr!   c                    	 t         j                  }| j                   |d      d       | j                   |d      d       | j                  t        |d       | j                  t
        |d       | j                  t
        |g        y )Nr	   r   r(   r)      你)r   unicode_aslatin1stringr   r   r+   r   )r   aslatin1strings     r   test_aslatin1stringzCAPITest.test_aslatin1stringn  sq    -"99.7
3[A,nhG)^V<)^R8r!   c                 J   	 t         j                  }| j                   |d      d       | j                   |dd      d       | j                  t        |d       | j                   |dd      d       | j                   |dd      d	       | j                  t
        |dd
       y )Nr   r	   r#   r3   s   ar   r5   s   abr7   r   )r   unicode_decodeasciir   r   r   r   )r   decodeasciis     r   test_decodeasciizCAPITest.test_decodeasciiz  s    *33V,e4VX6>,k7CXy99EY	:JG+{HeDr!   c                     	 t         j                  }| j                   |d      d       | j                  t        |d       | j                  t
        |d       | j                  t
        |g        y )Nr	   r      )r   unicode_asasciistringr   r   r+   r   )r   asasciistrings     r   test_asasciistringzCAPITest.test_asasciistring  s\    ,!77u-v6,mVD)]F;)]B7r!   c           	         	 t         j                  }| j                   |ddddd      d       | j                   |dg d      d       | j                   |dd	      d       | j                   |dg d
      d       | j                   |dg d      d       | j                   |dg d      d       | j                   |dg d      d       | j                   |dg d      d       | j                  t        |di        | j                  t        |ddd i       | j                   |dg dd      d       | j                   |dt
              d       | j                  t        |dd       y )N    r>   r   c)r         bacs    )r>   r   r   r	   )   ¡   ¢   £u   ¢¡£)r   u   好u   世u	   好你世)   😀u   😁u   😂u   😁😀😂a   b   c   )r   r   cdbcd    r   )Nr   r   r   u   b�cs    u    ÿ*   )r   unicode_decodecharmapr   r   r   r   r   )r   decodecharmaps     r   test_decodecharmapzCAPITest.test_decodecharmap  sK   ,!77yccc2JKUSy/BEJy%8%@y2JK^\y2PQSghy2\]_  	Ay,?Gy/BEJ,mUBG,mUQINy2BINPZ[}d;\J)]E2>r!   c           	      D   	 t         j                  }| j                   |ddddd      d       | j                   |ddddd      d       | j                   |d	dddd
      d       | j                   |ddddd      d       | j                   |ddddd      d       | j                  t        |di        | j                  t        |ddd i       | j                  t
        |di        | j                  t
        |g i        | j                  t
        |dt               y )Nr	   r   r   r   r   r   u   ¡¢£)         u	   你好世)i`O  i}Y  iN  u   😀😁😂)i  i i r!   s   spams   spamr>   r   rR   )r   unicode_ascharmapstringr   r   r+   r   r   )r   ascharmapstrings     r   test_ascharmapstringzCAPITest.test_ascharmapstring  s   .#;;QA10EF	RRS9TUW`a)=ST^_?`aclm)IUVabmnKopr{|QCW0MNPYZ,osBG,osRJO)_dB?)_b"=)_c4@r!   c                    	 t         j                  }| j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d	      d       | j                   |d
      d       | j                   |d      d       | j                  t              5  | j                   |d      d       d d d        dD ]1  }| j                  t        ||       | j                  t        ||d       3 | j                   |dd      d       | j                   |dd      d       | j                  t        |dd       y # 1 sw Y   xY w)Nr   r	      \t\n\r\x0b\x0c\x00\\	
 \s   	
 z	
    \xa1\xa2r(   r)      \u4f60\u597dr0   
   \U0001f600r      \z\z)   \s   \xa   \u4f6	   \U0001f60r#   
   x\U0001f60r      x�   x\U0001f60y   x�yr   r   )r   unicode_decodeunicodeescaper   assertWarnsDeprecationWarningr   r   r   )r   decodeunicodeescaper   s      r   test_decodeunicodeescapez!CAPITest.test_decodeunicodeescape  sq   2'CC,V4e<,-EFHXY,-BC^T,\:JG,[9:F,-=>O,^<lK01 	A08%@	A : 	TA02EqI02Eq(S	T 	,^YGS,_iH*U+':E5I	A 	As   E11E:c                 r   	 t         j                  }| j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d	      d
       | j                  t        |d       | j                  t        |g        y )Nr	   r   r   r   r(   r   r0   r   r   r   )r   unicode_asunicodeescapestringr   r   r   )r   asunicodeescapestrings     r   test_asunicodeescapestringz#CAPITest.test_asunicodeescapestring  s    4 ) G G.u5v>./?@BZ[.z:LI.~>@PQ.|<nM)%:FC)%:B?r!   c                 v   	 t         j                  }| j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d	      d
       | j                   |d      d       | j                   |d      d       dD ]1  }| j                  t        ||       | j                  t        ||d       3 | j                   |dd      d       | j                   |dd      d       | j                  t
        |dd       y )Nr   r	      	
 \r   r)   r(   r   r0   r   r   r   z\xa1\xa2r   r   )r   r   r#   r   r   r   r   r   r   r   )r   unicode_decoderawunicodeescaper   r   r   r   )r   decoderawunicodeescaper   s      r   test_decoderawunicodeescapez$CAPITest.test_decoderawunicodeescape  s0   5!*!I!I/7?/0ABDTU/<jI/0@A>R/?N/={K/7?) 	WA02H!L02H!XV	W 	/	JIV/KZX+'=}eTr!   c                 r   	 t         j                  }| j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d	      d
       | j                  t        |d       | j                  t        |g        y )Nr	   r   r   r   r(   r)   r0   r   r   r   )r    unicode_asrawunicodeescapestringr   r   r   )r   asrawunicodeescapestrings     r   test_asrawunicodeescapestringz&CAPITest.test_asrawunicodeescapestring  s    7#,#M#M 1%8&A12BCEVW1*={K1.ACST1,?P)%=vF)%=rBr!   N)__name__
__module____qualname__r    r&   r-   r<   rD   rI   ra   rk   ro   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r   r   r   
   s    $I2H$C.D(L.	7(KX(S\	8$SP.[h	8J	9E8?.A"J0@U,Cr!   r   __main__)unittestr]   test.supportr   import_moduler   r   TestCaser   r   mainr   r!   r   <module>r      sV     
 &'M''4	yCx   yCz zHMMO r!   