o
    g=                     @   s   d dl Z d dlmZ d dlmZ e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 de jZG dd de jZedkrie   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                   @   sf   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Ze	
eedddd Zdd Zdd ZdS )ReadWriteTestsc                 C   s>   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self r*   M/Users/admin/.pyenv/versions/3.10.0/lib/python3.10/test/test_structmembers.py	test_bool    s
   zReadWriteTests.test_boolc                 C   @   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(   r*   r*   r+   	test_byte'      zReadWriteTests.test_bytec                 C   r-   r.   )r	   r#   T_SHORTr$   r
   r   T_USHORTr(   r*   r*   r+   
test_short/   r2   zReadWriteTests.test_shortc                 C   r-   r.   )r   r#   T_INTr$   r   r   T_UINTr(   r*   r*   r+   test_int7   r2   zReadWriteTests.test_intc                 C   r-   r.   )r   r#   T_LONGr$   r   r   T_ULONGr(   r*   r*   r+   	test_long?   r2   zReadWriteTests.test_longc                 C   s,   t t_| tjt  tt_| tjt d S r.   )r   r#   
T_PYSSIZETr$   r   r(   r*   r*   r+   test_py_ssize_tG   s   zReadWriteTests.test_py_ssize_t
T_LONGLONGzlong long not presentc                 C   sh   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#   r>   r$   r   r   T_ULONGLONGr(   r*   r*   r+   test_longlongM   s   zReadWriteTests.test_longlongc              	   C   sT   g d}t tdr|ddg d ddi g fD ]}|D ]}| ttt|| qqd S )N)
r"   r/   r0   r3   r4   r6   r7   r9   r:   r<   r>   r?   y        	@zfull of eels)hasattrr#   extendr%   r&   r'   )r)   Zinteger_attributesZnonintattrr*   r*   r+   test_bad_assignments]   s   
z#ReadWriteTests.test_bad_assignmentsc                 C   s4   |  tjd | tttdd | tttd d S )Nr    T_STRING_INPLACEs)r$   r#   rE   r%   r&   r'   delattrr(   r*   r*   r+   test_inplace_stringo   s   z"ReadWriteTests.test_inplace_stringN)__name__
__module____qualname__r,   r1   r5   r8   r;   r=   unittestZ
skipUnlessrA   r#   r@   rD   rH   r*   r*   r*   r+   r!      s    
r!   c                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )TestWarningsc                 C   >   t dtf td t_W d    d S 1 sw   Y  d S N r   )r   check_warningsRuntimeWarningr   r#   r/   r(   r*   r*   r+   test_byte_maxw      "zTestWarnings.test_byte_maxc                 C   >   t dtf td t_W d    d S 1 sw   Y  d S rO   )r   rQ   rR   r   r#   r/   r(   r*   r*   r+   test_byte_min{   rT   zTestWarnings.test_byte_minc                 C   rN   rO   )r   rQ   rR   r   r#   r0   r(   r*   r*   r+   test_ubyte_max   rT   zTestWarnings.test_ubyte_maxc                 C   rN   rO   )r   rQ   rR   r	   r#   r3   r(   r*   r*   r+   test_short_max   rT   zTestWarnings.test_short_maxc                 C   rU   rO   )r   rQ   rR   r
   r#   r3   r(   r*   r*   r+   test_short_min   rT   zTestWarnings.test_short_minc                 C   rN   rO   )r   rQ   rR   r   r#   r4   r(   r*   r*   r+   test_ushort_max   rT   zTestWarnings.test_ushort_maxN)	rI   rJ   rK   rS   rV   rW   rX   rY   rZ   r*   r*   r*   r+   rM   u   s    rM   __main__)rL   Ztest.supportr   r   import_moduler   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r#   ZTestCaser!   rM   rI   mainr*   r*   r*   r+   <module>   s0    
PW