o
    HXîh­  ã                   @   sB   d dl Z d dlZd dlZG dd„ dejƒZedkre ¡  dS dS )é    Nc                   @   s|   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚStructSeqTestc                 C   sB  t  ¡ }|  |t¡ t|ƒ}|  t|ƒt|ƒ¡ |  ||¡ tt|ƒ t|ƒƒD ]+}|  ||d … ||d … ¡ tt|ƒ t|ƒƒD ]}|  |||… |||… ¡ qBq(tt|ƒ t|ƒƒD ]}|  |d |… |d |… ¡ q^|  t|j	t|ƒ d ¡ |  t|j	t|ƒ¡ tt|ƒ t|ƒd ƒD ]}|  || || ¡ q’d S )Né   )
ÚtimeÚgmtimeZassertIsInstanceÚtupleÚassertEqualÚlenÚrangeÚassertRaisesÚ
IndexErrorÚ__getitem__)ÚselfÚtZastupleÚiÚj© r   ú=/opt/python-3.10.19/usr/lib/python3.10/test/test_structseq.pyÚ
test_tuple   s"   ÿÿzStructSeqTest.test_tuplec                 C   sz   t  ¡ }|  t|ƒ¡ t  d¡}|  t|ƒd¡ t t¡}t|ƒ}|  | d¡¡ |  	d|¡ |  	d|¡ |  	d|¡ d S )Nr   zttime.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=1, tm_isdst=0)zos.stat_resultzst_mode=zst_ino=zst_dev=)
r   r   Ú
assertTrueÚreprr   ÚosÚstatÚ__file__Ú
startswithÚassertIn)r   r   ÚstZrepr   r   r   Ú	test_repr   s   

ÿ
zStructSeqTest.test_reprc                 C   sF   t  ¡ }|t|ƒ }tt|ƒƒD ]}|  || ||t|ƒ  ¡ qd S ©N)r   r   r   r	   r   r   ©r   Út1Út2r   r   r   r   Útest_concat-   s
   ÿzStructSeqTest.test_concatc              	   C   sb   t  ¡ }d| }tt|ƒƒD ] }|  || ||t|ƒ  ¡ |  || ||dt|ƒ   ¡ qd S )Né   é   )r   r   r	   r   r   r   r   r   r   Útest_repeat3   s   "þzStructSeqTest.test_repeatc                 C   s.   t  ¡ }|D ]}|  ||¡ q|  d|¡ d S )NiÖÿÿÿ)r   r   r   ZassertNotIn)r   r   Úitemr   r   r   Útest_contains:   s   zStructSeqTest.test_containsc                 C   s$   t  ¡ }|  t|ƒtt|ƒƒ¡ d S r   )r   r   r   Úhashr   )r   r   r   r   r   Ú	test_hash@   s   zStructSeqTest.test_hashc                 C   sp   t  ¡ }t|ƒ|ƒ}|  ||¡ |  ||k  ¡ |  ||k¡ |  ||k ¡ |  ||k¡ |  ||k ¡ d S r   )r   r   Útyper   r   )r   r   r    r   r   r   Útest_cmpD   s   zStructSeqTest.test_cmpc                 C   s<   t  ¡ }|  t|ƒ|j¡ |  |jd¡ |  |jt j¡ d S )Nr   )r   r   r   r   Ún_sequence_fieldsÚn_unnamed_fieldsÚn_fieldsÚ_STRUCT_TM_ITEMS)r   r   r   r   r   Útest_fieldsN   s   zStructSeqTest.test_fieldsc                 C   sp   t j}|  t|¡ |  t|d ¡ |  t|d¡ | jt|di d | jt|dd d d}|  d ||ƒ¡|¡ d S )NZ123)ÚdictZ	123456789Ú )r   Ústruct_timer
   Ú	TypeErrorr   Újoin)r   r   Úsr   r   r   Útest_constructorT   s   zStructSeqTest.test_constructorc                    s8   G dd„ dt ƒ‰ G ‡ fdd„dƒ}|  ˆ tj|ƒ ¡ d S )Nc                   @   s   e Zd ZdS )z)StructSeqTest.test_eviltuple.<locals>.ExcN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   ÚExca   s    r:   c                       s    e Zd Z‡ fdd„Zdd„ ZdS )z'StructSeqTest.test_eviltuple.<locals>.Cc                    s   ˆ ‚r   r   )r   r   ©r:   r   r   r   f   ó   z3StructSeqTest.test_eviltuple.<locals>.C.__getitem__c                 S   s   dS )Né	   r   )r   r   r   r   Ú__len__h   r<   z/StructSeqTest.test_eviltuple.<locals>.C.__len__N)r7   r8   r9   r   r>   r   r;   r   r   ÚCe   s    r?   )Ú	Exceptionr
   r   r2   )r   r?   r   r;   r   Útest_eviltuple`   s   zStructSeqTest.test_eviltuplec                 C   s   t  ¡ }| ¡ }d S r   )r   r   Ú
__reduce__)r   r   Úxr   r   r   Útest_reducem   s   zStructSeqTest.test_reducec              
   C   sb   t  ¡ }t|ƒ}d}|D ]"}|D ]}|dd … D ]}|  t||||… ƒ||||… ¡ qqqd S )N)
r   Nr   r"   é   i,  éÿÿÿÿéþÿÿÿiáÿÿÿiÔþÿÿr   )r   r   Úlistr   )r   r   ÚLÚindicesÚstartÚstopÚstepr   r   r   Útest_extended_getsliceq   s   ÿÿþÿz$StructSeqTest.test_extended_getslicec                 C   s   d}|   tjj|¡ d S )N)	Útm_yearÚtm_monÚtm_mdayÚtm_hourÚtm_minÚtm_secÚtm_wdayÚtm_ydayÚtm_isdst)r   r   r2   Ú__match_args__©r   Zexpected_argsr   r   r   Útest_match_args}   s   zStructSeqTest.test_match_argsc                 C   s(   d}|   tjjd¡ |   tjj|¡ d S )N)Úst_modeÚst_inoÚst_devÚst_nlinkÚst_uidÚst_gidÚst_sizer"   )r   r   Ústat_resultr,   rX   rY   r   r   r   Ú#test_match_args_with_unnamed_fields‚   s   z1StructSeqTest.test_match_args_with_unnamed_fieldsN)r7   r8   r9   r   r   r!   r$   r&   r(   r*   r/   r6   rA   rD   rN   rZ   rc   r   r   r   r   r      s    
r   Ú__main__)r   r   ZunittestZTestCaser   r7   Úmainr   r   r   r   Ú<module>   s     ÿ