
    daf"%                         d dl Z d dlmZ  ej                  d      Zd dlmZmZ dZ G d de      Z	 G d d      Z
 G d	 d
e j                        Zedk(  r e j                          yy)    N)import_helper	_testcapi)PY_SSIZE_T_MINPY_SSIZE_T_MAXc                       e Zd Zy)BytesSubclassN)__name__
__module____qualname__     4/root/Python-3.12.4/Lib/test/test_capi/test_bytes.pyr   r   	   s    r   r   c                       e Zd Zd Zd Zy)	BytesLikec                     || _         y Nvalue)selfr   s     r   __init__zBytesLike.__init__   s	    
r   c                     | j                   S r   r   r   s    r   	__bytes__zBytesLike.__bytes__   s    zzr   N)r	   r
   r   r   r   r   r   r   r   r      s    r   r   c                   V    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 ZddZd Zd Zy
)CAPITestc                    t         j                  }| j                   |d             | j                   |d             | j                   |t	        d                   | j                   |t        d                   | j                   |t        d                   | j                   |d             | j                   |g              | j                   |t                            y N   abcabc   )r   bytes_check
assertTrueassertFalse	bytearrayr   r   objectr   checks     r   
test_checkzCAPITest.test_check   s    %%f&u&y012mF345y012q"r#vx)r   c                    t         j                  }| j                   |d             | j                   |d             | j                   |t	        d                   | j                   |t        d                   | j                   |t        d                   | j                   |d             | j                   |g              | j                   |t                            y r   )r   bytes_checkexactr"   r#   r$   r   r   r%   r&   s     r   test_checkexactzCAPITest.test_checkexact"   s    **f&u&y012}V456y012q"r#vx)r   c                    t         j                  }| j                   |d      d       | j                   |dd      d       | j                   |d      d       | j                   |dd      d       | j                   |t        d      d       | j                  t	         |t        d            d       | j                  t        t        f|t        t               | j                  t        |dd       | j                  t        |dt               | j                  t        |t        d       | j                  t        |t        t               y )	Nr      s   ab   abc defr   r   r    )r   bytes_fromstringandsizeassertEqualNULLlenassertRaisesMemoryErrorOverflowErrorr   SystemErrorr   )r   fromstringandsizes     r   test_fromstringandsizezCAPITest.test_fromstringandsize0   s   %==*62F;*615u=*;7E*32C8*43S9.tQ78!<;6+T>	C 	+'8&"E+'8&.Q+'8$C+'8$Or   c                     t         j                  }| j                   |d      d       | j                   |d      d       y )Nr.   r   r   )r   bytes_fromstringr1   )r   
fromstrings     r   test_fromstringzCAPITest.test_fromstringB   s6    //
K0&9C#.r   c                    t         j                  }| j                   |d      d       | j                   |t        d            d       | j                   |t	        d            d       | j                   |g d      d       | j                  t        |d       | j                  t        |t        d             | j                  t        |d       | j                  t        |t                      | j                  t        |t               y )Nr   )a   b   c   r    r   )r   bytes_fromobjectr1   r$   r   r4   	TypeErrorr   r%   r7   r2   )r   
fromobjects     r   test_fromobjectzCAPITest.test_fromobjectK   s    //
F+V4If$56?M&$9:FCL16:)Z3)Z61BC)Z7)Z:+z48r   c                 B   t         j                  }| j                   |d      d       | j                   |t        d            d       | j	                  t
        |t        d             | j	                  t
        |d       | j	                  t
        |t                      y )Nr   r    r   )r   
bytes_sizer1   r   r4   rC   r$   r%   )r   sizes     r   	test_sizezCAPITest.test_sizeY   sx    ##fq)mF34a8)T9V+<=)T51)T684r   c                     t         j                  }| j                   |dd      d       | j                   |dd      d       | j                  t        |dd       | j                  t        |t               d       y	)
zTest PyBytes_AsString()r         abc r.         abc def r   r   N)r   bytes_asstringr1   r4   rC   r%   )r   asstrings     r   test_asstringzCAPITest.test_asstringe   se    ++&!,h7+q1=A)Xua8)Xvx;r   c                    t         j                  }t         j                  }| j                   |dd      d       | j                   |dd      d       | j                   |dd      d       | j	                  t
        |dd       | j	                  t        |dd	       | j	                  t        |dd	       | j	                  t        |t               d	       | j	                  t        |t               d	       y
)zTest PyBytes_AsStringAndSize()r   rK   )rL   r    r.   rM   )rN      rL   r   r   N)r   bytes_asstringandsizebytes_asstringandsize_nullr1   r4   
ValueErrorrC   r%   )r   asstringandsizeasstringandsize_nulls      r   test_asstringandsizezCAPITest.test_asstringandsizep   s    #99(CC3]Ca8:LM-fa8(C*&:KK)_eQ?)%95!D)_fhB)%968QGr   c                 \   t         j                  }| 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                   |dd      d       | j                   |dd      d       | j                   |t        d      d      d       y )Nr   r   zb'abc'   s   a'b"c"dzb'a\'b"c"d's   a'b"cz	b'a\'b"c's   a'b'c"dzb'a\'b\'c"d's   a'b'c'dzb'a\'b\'c\'d'z
b"a'b'c'd")r   
bytes_reprr1   r   )r   r\   s     r   	test_reprzCAPITest.test_repr   s   ))
J2MBJ2MBNA68JKNA68JKL!46FGL!46FGNA68KLNA68KLNA68LMNA68IJM&$91=}Mr   Nc           	         |t         j                  }| j                   |dd      d       | j                   |dd      d       | j                   |t        d      d      d       | j                   |dt        d            d       | j                   |t        d      d      d       | j                   |dt        d            d       | j                   |t	        d	      d
d d      d       | j                   |dt	        d      d
d       d       | j                   |ddd      d       | j                   |dt        d      d      d       | j                   |t               dd      d       | j                  t        t                     d       | j                  t        |t	        d      ddd   d       | j                  t        |dt	        d      ddd          | j                  t        |dd       | j                  t        |dd       | j                  t        |dd       | j                  t        |g d       | j                  t        |dg        | j                  t        |g g        | j                   |t        d      t               | j                   |dt              t               | j                   |t        t                     t               | j                   |t               t              t               y)zTest PyBytes_Concat()Nr   s   defs   abcdefs   a bs   c ds   a bc dr   s   xabcyr[   rK   s   xdefyTr   s   axbyczr-   s   dxeyfzdefr   )r   bytes_concatr1   r$   
memoryviewbytesr3   r4   rC   r2   r%   )r   concats     r   test_concatzCAPITest.test_concat   sz   >++F/;1;?	& 16:IF	&(9:IF	& 137@Yv%67@
8 4Qq 96BIN
8(<Qq(ABIN5yA	&(94@)L6?UWq))VZ	-B3Q3-GP)VVZ	5J3Q35OP)VVU;)VUF;)VUE:)VR8)VVR8)VR4f-t4-t4fh/6$/6r   c                 B    | j                  t        j                         y)zTest PyBytes_ConcatAndDel()N)rd   r   bytes_concatanddelr   s    r   test_concatanddelzCAPITest.test_concatanddel   s    556r   c                    t         j                  }| 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
       | j                  t              5  | j                   |d      d       d
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                   |dd      d       | j                   |dd      d       | j                  t        |dd       | j                   |t              d       | j                  t        |dt        t               | j                  t        |t        t        t               y
# 1 sw Y   xY w# 1 sw Y   bxY w# 1 sw Y   9xY w)zTest PyBytes_DecodeEscape()r   s   \t\n\r\x0b\x0c\x00\\\'\"s	   	
 \'"s   	
 s   \xa1\xa2s   s	   \2\24\241s   s   \u4f60Ns   \zs   \541   a)   \s   \xs   \xas   \xzs   \xazstricts   x\xareplaces   x?s   x\xays   x?ys   x\xa\xys   x??yignores   xyrj   spamr   )
r   bytes_decodeescaper1   assertWarnsDeprecationWarningr4   rV   r2   r6   r   )r   decodeescapebs      r   test_decodeescapezCAPITest.test_decodeescape   s+    33f-v6&BC0	2&;<oNl3[Am4oFk2K@01 	C\*5zB	C01 	;\&16:	;01 	;\(3T:	; ; 	EAj,:j,8D	E 	h	:EBi;VDk9=wGk8<eD*lE6Bd+S1-vt^T-tT>R#	C 	C	; 	;	; 	;s$   6I,I%"I2I"%I/2I<r   )r	   r
   r   r(   r+   r9   r=   rE   rI   rQ   rY   r]   rd   rg   rt   r   r   r   r   r      sC    
*
*P$/95<H"N( 7D7Sr   r   __main__)unittesttest.supportr   import_moduler   r   r   r2   rb   r   r   TestCaser   r	   mainr   r   r   <module>r{      sl     &'M''4	 4	E 	 DSx   DST zHMMO r   