
    <e=                     >   d dl Z d dlmZ d dlmZ  ej        d           d dlmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZ  edddd	d
dddddddd          Z G d de j                  Z G d de j                  Zedk    r e j                     dS dS )    N)import_helper)warnings_helper	_testcapi)_test_structmembersTypeCHAR_MAXCHAR_MIN	UCHAR_MAXSHRT_MAXSHRT_MIN	USHRT_MAXINT_MAXINT_MINUINT_MAXLONG_MAXLONG_MIN	ULONG_MAX	LLONG_MAX	LLONG_MIN
ULLONG_MAXPY_SSIZE_T_MAXPY_SSIZE_T_MINF                           grt#@g3$@hic                       e Zd Zd Zd Zd Zd Zd Zd Z e	j
         eed          d          d	             Zd
 Zd ZdS )ReadWriteTestsc                    dt           _        |                     t           j        d           dt           _        |                     t           j        d           |                     t          t
          t           dd           d S )NTFT_BOOLr   )tsr%   assertEqualassertRaises	TypeErrorsetattrselfs    8/usr/lib/python3.11/test/test_capi/test_structmembers.py	test_boolzReadWriteTests.test_bool    sb    	D)))	E***)Wb(A>>>>>    c                 J   t           t          _        |                     t          j        t                      t          t          _        |                     t          j        t                     t
          t          _        |                     t          j        t
                     d S N)r   r&   T_BYTEr'   r   r	   T_UBYTEr+   s    r-   	test_bytezReadWriteTests.test_byte'   e    	H---	H---
Y/////r/   c                 J   t           t          _        |                     t          j        t                      t          t          _        |                     t          j        t                     t
          t          _        |                     t          j        t
                     d S r1   )r
   r&   T_SHORTr'   r   r   T_USHORTr+   s    r-   
test_shortzReadWriteTests.test_short/   se    
X...
X...i00000r/   c                 J   t           t          _        |                     t          j        t                      t          t          _        |                     t          j        t                     t
          t          _        |                     t          j        t
                     d S r1   )r   r&   T_INTr'   r   r   T_UINTr+   s    r-   test_intzReadWriteTests.test_int7   se    7+++7+++	H-----r/   c                 J   t           t          _        |                     t          j        t                      t          t          _        |                     t          j        t                     t
          t          _        |                     t          j        t
                     d S r1   )r   r&   T_LONGr'   r   r   T_ULONGr+   s    r-   	test_longzReadWriteTests.test_long?   r5   r/   c                     t           t          _        |                     t          j        t                      t          t          _        |                     t          j        t                     d S r1   )r   r&   
T_PYSSIZETr'   r   r+   s    r-   test_py_ssize_tzReadWriteTests.test_py_ssize_tG   sF    &777&77777r/   
T_LONGLONGzlong long not presentc                    t           t          _        |                     t          j        t                      t          t          _        |                     t          j        t                     t
          t          _        |                     t          j        t
                     dt          _        |                     t          j        d           dt          _        |                     t          j        d           d S )Nr   r   )r   r&   rE   r'   r   r   T_ULONGLONGr+   s    r-   test_longlongzReadWriteTests.test_longlongM   s    !	222!	222#444 ***+++++r/   c           	          g d}t          t          d          r|                    ddg           d ddi g fD ]/}|D ]*}|                     t          t
          t          ||           +0d S )N)
r%   r2   r3   r7   r8   r;   r<   r?   r@   rC   rE   rG   y        	@zfull of eels)hasattrr&   extendr(   r)   r*   )r,   integer_attributesnonintattrs       r-   test_bad_assignmentsz#ReadWriteTests.test_bad_assignments]   s       2|$$ 	E%%|]&CDDD D."b8 	H 	HF* H H!!)Wb$GGGGH	H 	Hr/   c                     |                      t          j        d           |                     t          t
          t          dd           |                     t          t          t          d           d S )Nr!   T_STRING_INPLACEs)r'   r&   rQ   r(   r)   r*   delattrr+   s    r-   test_inplace_stringz"ReadWriteTests.test_inplace_stringo   sY    ,d333)Wb2DcJJJ)Wb2DEEEEEr/   N)__name__
__module____qualname__r.   r4   r9   r=   rA   rD   unittest
skipUnlessrJ   r&   rH   rO   rT    r/   r-   r#   r#      s        ? ? ?0 0 01 1 1. . .0 0 08 8 8 X\224KLL, , ML,H H H$F F F F Fr/   r#   c                   2    e Zd Zd Zd Zd Zd Zd Zd ZdS )TestWarningsc                     t          j        dt          f          5  t          dz   t          _        d d d            d S # 1 swxY w Y   d S N r   )r   check_warningsRuntimeWarningr   r&   r2   r+   s    r-   test_byte_maxzTestWarnings.test_byte_maxw       +R,@AA 	# 	# 
BI	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#   >AAc                     t          j        dt          f          5  t          dz
  t          _        d d d            d S # 1 swxY w Y   d S r^   )r   r`   ra   r   r&   r2   r+   s    r-   test_byte_minzTestWarnings.test_byte_min{   rc   rd   c                     t          j        dt          f          5  t          dz   t          _        d d d            d S # 1 swxY w Y   d S r^   )r   r`   ra   r	   r&   r3   r+   s    r-   test_ubyte_maxzTestWarnings.test_ubyte_max   s    +R,@AA 	% 	%"1BJ	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%rd   c                     t          j        dt          f          5  t          dz   t          _        d d d            d S # 1 swxY w Y   d S r^   )r   r`   ra   r
   r&   r7   r+   s    r-   test_short_maxzTestWarnings.test_short_max       +R,@AA 	$ 	$!!BJ	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$rd   c                     t          j        dt          f          5  t          dz
  t          _        d d d            d S # 1 swxY w Y   d S r^   )r   r`   ra   r   r&   r7   r+   s    r-   test_short_minzTestWarnings.test_short_min   rk   rd   c                     t          j        dt          f          5  t          dz   t          _        d d d            d S # 1 swxY w Y   d S r^   )r   r`   ra   r   r&   r8   r+   s    r-   test_ushort_maxzTestWarnings.test_ushort_max   s    +R,@AA 	& 	&#A+BK	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&rd   N)	rU   rV   rW   rb   rf   rh   rj   rm   ro   rZ   r/   r-   r\   r\   u   sn        # # ## # #% % %$ $ $$ $ $& & & & &r/   r\   __main__)rX   test.supportr   r   import_moduler   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r&   TestCaser#   r\   rU   mainrZ   r/   r-   <module>ru      s    & & & & & & ( ( ( ( ( (  K ( ( (# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 5!' TF TF TF TF TFX& TF TF TFn& & & & &8$ & & &6 zHMOOOOO r/   