
    z%i                        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mZ d Z G d d      Z G d	 d
ee j6                        Z G d dee j6                        Z G d d      Z G d dee j6                        Z G d dee j6                        Z e!dk(  r e jD                          yy)    N)import_helper)warnings_helper	_testcapi)_test_structmembersType_OldAPI_test_structmembersType_NewAPI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_MINc                 *     | ddddddddd	d
ddd      S )NF                           grt#@g3$@hi )clss    U/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/test/test_capi/test_structmembers.py_make_test_objectr'      s5    u     c                   H    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zy)ReadWriteTestsc                 8    t        | j                        | _        y Nr'   r%   tsselfs    r&   setUpzReadWriteTests.setUp&       #DHH-r(   c                     | j                   }d|_        | j                  |j                  d       d|_        | j                  |j                  d       | j                  t        t
        |dd       y )NTFT_BOOLr   )r.   r4   assertEqualassertRaises	TypeErrorsetattrr0   r.   s     r&   	test_boolzReadWriteTests.test_bool)   sW    WW	D)	E*)Wb(A>r(   c                    | j                   }t        |_        | j                  |j                  t               t        |_        | j                  |j                  t               t
        |_        | j                  |j                  t
               y r,   )r.   r   T_BYTEr5   r	   r
   T_UBYTEr9   s     r&   	test_bytezReadWriteTests.test_byte1   \    WW	H-	H-
Y/r(   c                    | j                   }t        |_        | j                  |j                  t               t        |_        | j                  |j                  t               t
        |_        | j                  |j                  t
               y r,   )r.   r   T_SHORTr5   r   r   T_USHORTr9   s     r&   
test_shortzReadWriteTests.test_short:   s\    WW
X.
X.i0r(   c                    | j                   }t        |_        | j                  |j                  t               t        |_        | j                  |j                  t               t
        |_        | j                  |j                  t
               y r,   )r.   r   T_INTr5   r   r   T_UINTr9   s     r&   test_intzReadWriteTests.test_intC   s\    WW7+7+	H-r(   c                    | j                   }t        |_        | j                  |j                  t               t        |_        | j                  |j                  t               t
        |_        | j                  |j                  t
               y r,   )r.   r   T_LONGr5   r   r   T_ULONGr9   s     r&   	test_longzReadWriteTests.test_longL   r?   r(   c                     | j                   }t        |_        | j                  |j                  t               t        |_        | j                  |j                  t               y r,   )r.   r   
T_PYSSIZETr5   r   r9   s     r&   test_py_ssize_tzReadWriteTests.test_py_ssize_tU   sA    WW&7&7r(   c                    | j                   }t        |d      s| j                  d       t        |_        | j                  |j                  t               t        |_        | j                  |j                  t               t        |_        | j                  |j                  t               d|_        | j                  |j                  d       d|_        | j                  |j                  d       y )N
T_LONGLONGzlong long not presentr   r   )	r.   hasattrskipTestr   rP   r5   r   r   T_ULONGLONGr9   s     r&   test_longlongzReadWriteTests.test_longlong\   s    WWr<(MM12!	2!	2#4 *+r(   c           	          | j                   }g d}t        |d      r|j                  ddg       d ddi g fD ]&  }|D ]  }| j                  t        t
        |||       ! ( y )N)
r4   r<   r=   rA   rB   rE   rF   rI   rJ   rM   rP   rS   y        	@zfull of eels)r.   rQ   extendr6   r7   r8   )r0   r.   integer_attributesnonintattrs        r&   test_bad_assignmentsz#ReadWriteTests.test_bad_assignmentso   sw    WW 2|$%%|]&CD D."b8 	HF* H!!)Wb$GH	Hr(   c                     | j                   }| j                  |j                  d       | j                  t        t
        |dd       | j                  t        t        |d       y )Nr#   T_STRING_INPLACEs)r.   r5   r\   r6   r7   r8   delattrr9   s     r&   test_inplace_stringz"ReadWriteTests.test_inplace_string   sM    WW,,d3)Wb2DcJ)Wb2DEr(   N)__name__
__module____qualname__r1   r:   r>   rC   rG   rK   rN   rT   rZ   r_   r$   r(   r&   r*   r*   %   s6    .?01.08,&H&Fr(   r*   c                       e Zd ZeZy)ReadWriteTests_OldAPINr`   ra   rb   r   r%   r$   r(   r&   rd   rd          
(Cr(   rd   c                       e Zd ZeZy)ReadWriteTests_NewAPINr`   ra   rb   r   r%   r$   r(   r&   rh   rh      rf   r(   rh   c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	TestWarningsc                 8    t        | j                        | _        y r,   r-   r/   s    r&   r1   zTestWarnings.setUp   r2   r(   c                     | j                   }t        j                  dt        f      5  t        dz   |_        d d d        y # 1 sw Y   y xY wN r   )r.   r   check_warningsRuntimeWarningr   r<   r9   s     r&   test_byte_maxzTestWarnings.test_byte_max   >    WW++R,@A 	# 
BI	# 	# 	#   A  A	c                     | j                   }t        j                  dt        f      5  t        dz
  |_        d d d        y # 1 sw Y   y xY wrn   )r.   r   rp   rq   r	   r<   r9   s     r&   test_byte_minzTestWarnings.test_byte_min   rs   rt   c                     | j                   }t        j                  dt        f      5  t        dz   |_        d d d        y # 1 sw Y   y xY wrn   )r.   r   rp   rq   r
   r=   r9   s     r&   test_ubyte_maxzTestWarnings.test_ubyte_max   s>    WW++R,@A 	%"1BJ	% 	% 	%rt   c                     | j                   }t        j                  dt        f      5  t        dz   |_        d d d        y # 1 sw Y   y xY wrn   )r.   r   rp   rq   r   rA   r9   s     r&   test_short_maxzTestWarnings.test_short_max   >    WW++R,@A 	$!!BJ	$ 	$ 	$rt   c                     | j                   }t        j                  dt        f      5  t        dz
  |_        d d d        y # 1 sw Y   y xY wrn   )r.   r   rp   rq   r   rA   r9   s     r&   test_short_minzTestWarnings.test_short_min   r{   rt   c                     | j                   }t        j                  dt        f      5  t        dz   |_        d d d        y # 1 sw Y   y xY wrn   )r.   r   rp   rq   r   rB   r9   s     r&   test_ushort_maxzTestWarnings.test_ushort_max   s>    WW++R,@A 	&#A+BK	& 	& 	&rt   N)
r`   ra   rb   r1   rr   rv   rx   rz   r}   r   r$   r(   r&   rk   rk      s%    .#
#
%
$
$
&r(   rk   c                       e Zd ZeZy)TestWarnings_OldAPINre   r$   r(   r&   r   r      rf   r(   r   c                       e Zd ZeZy)TestWarnings_NewAPINri   r$   r(   r&   r   r      rf   r(   r   __main__)#unittesttest.supportr   r   import_moduler   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r'   r*   TestCaserd   rh   rk   r   r   r`   mainr$   r(   r&   <module>r      s     & (   K (     "aF aFF)NH,=,= ))NH,=,= ) &  &D),(9(9 )),(9(9 ) zHMMO r(   