
    0hh8                         S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKJr   " S S\R                  5      r
\S:X  a  \R                  " 5         gg)    N)script_helperc                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rSrg)StructSeqTest   c                 t   [         R                  " 5       nU R                  U[        5        [        U5      nU R	                  [        U5      [        U5      5        U R	                  X5        [        [        U5      * [        U5      5       HU  nU R	                  XS  X#S  5        [        [        U5      * [        U5      5       H  nU R	                  XU X#U 5        M     MW     [        [        U5      * [        U5      5       H  nU R	                  US U US U 5        M     U R                  [        UR                  [        U5      * S-
  5        U R                  [        UR                  [        U5      5        [        [        U5      * [        U5      S-
  5       H  nU R	                  X   X#   5        M     g N   )
timegmtimeassertIsInstancetupleassertEquallenrangeassertRaises
IndexError__getitem__)selftastupleijs        </opt/python-3.13.8/usr/lib/python3.13/test/test_structseq.py
test_tupleStructSeqTest.test_tuple   s\   KKMa'(QW.$ AwA'AQrUGBK0CF7CF+  Q16 , (
 AwA'AQrUGBQK0 ( 	*ammc!fWQY?*ammSV<AwAq)AQT7:. *    c                    [         R                  " 5       nU R                  [        U5      5        [         R                  " S5      nU R	                  [        U5      S5        [
        R                  " [        5      n[        U5      nU R                  UR                  S5      5        U R                  SU5        U R                  SU5        U R                  SU5        g )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   streps       r   	test_reprStructSeqTest.test_repr#   s    KKMQ KKNaD	E WWX2h'789j#&i%i%r   c           	          [         R                  " 5       nU[        U5      -   n[        [	        U5      5       H%  nU R                  X#   X#[	        U5      -      5        M'     g N)r
   r   r   r   r   r   r   t1t2r   s       r   test_concatStructSeqTest.test_concat2   sH    [[]%)^s2wARUBRyM2  r   c           
          [         R                  " 5       nSU-  n[        [        U5      5       HJ  nU R	                  X#   X#[        U5      -      5        U R	                  X#   X#S[        U5      -  -      5        ML     g )N      )r
   r   r   r   r   r+   s       r   test_repeatStructSeqTest.test_repeat8   sd    [[]Vs2wARUBRyM2RUB3r7{O4  r   c                     [         R                  " 5       nU H  nU R                  X!5        M     U R                  SU5        g )Ni)r
   r   r$   assertNotIn)r   r,   items      r   test_containsStructSeqTest.test_contains?   s3    [[]DMM$# b!r   c                     [         R                  " 5       nU R                  [        U5      [        [	        U5      5      5        g r*   )r
   r   r   hashr   )r   r,   s     r   	test_hashStructSeqTest.test_hashE   s)    [[]b4b	?3r   c                 6   [         R                  " 5       n[        U5      " U5      nU R                  X5        U R	                  X:  + 5        U R	                  X:*  5        U R	                  X:  + 5        U R	                  X:  5        U R	                  X:w  + 5        g r*   )r
   r   typer   r   )r   r,   r-   s      r   test_cmpStructSeqTest.test_cmpI   sn    [[]"Xb\ R&!R&!R'r   c                    [         R                  " 5       nU R                  [        U5      UR                  5        U R                  UR
                  S5        U R                  UR                  [         R                  5        g Nr   )r
   r   r   r   n_sequence_fieldsn_unnamed_fieldsn_fields_STRUCT_TM_ITEMSr   r   s     r   test_fieldsStructSeqTest.test_fieldsS   sW    KKMQ!4!45++Q/T%:%:;r   c                    [         R                  nU R                  [        U5        U R                  [        US 5        U R                  [        US5        U R                  [        US0 S9  U R                  [        USS S9  U R                  [        US0 S9  U R	                  U" S5      [        S5      5        U R	                  U" S0 5      [        S5      5        U R	                  U" S0 S9[        S5      5        U R	                  U" S0 S9[        S5      5        U R	                  U" S5      [        S5      5        U R	                  U" S5      R                  S5        U R	                  U" SSS	05      [        S5      5        U R	                  U" SSS	05      R                  S	5        SnU R	                  S
R                  U" U5      5      U5        g )N123dict	123456789)seqrN   )sequencerN   
12345678900tm_zone	some zone )r
   struct_timer   	TypeErrorr   r   rT   join)r   r   ss      r   test_constructorStructSeqTest.test_constructorY   s   )Q')Q-)Q.)QB7)Q$?)QKbA;{);<;+U;-?@;R0%2DEKb95;MN<%*<=<00#6;K(@A5CUV;K(@AII;W1*r   c                     [         R                  n[        R                  " S5      nU R	                  [
        U5         U" SSS0S9  S S S 5        U R	                  [
        U5         U" SSSS.S9  S S S 5        U R	                  [
        U5         U" SSSS	.S9  S S S 5        U R	                  [
        U5         U" SSSSS
.S9  S S S 5        g ! , (       d  f       N= f! , (       d  f       Ns= f! , (       d  f       N[= f! , (       d  f       g = f)N)got duplicate or unexpected field name(s)rR   rT   rU   rM   r	   rT   tm_monr   )errorrT   ra   rT   r`   r
   rW   reescapeassertRaisesRegexrX   r   r   error_messages      r   &test_constructor_with_duplicate_fields4StructSeqTest.test_constructor_with_duplicate_fieldsp   s    		"MN##I}=l)[!9: >##I}=l[A!FG >##I}=l1!EF >##I}=l1PQ!RS >= >=======s/   
C%CC.7C?
C
C+.
C<?
Dc                    [         R                  R                  S:  d   e[         R                  R                  n[         R                  " [	        U5      SS05      nU R                  UR                  S5        U R                  U[        [	        U5      5      5        [         R                  " / [	        U5      QSP75      nU R                  UR                  S5        U R                  U[        [	        U5      5      5        U R                  [        [        R                  " S5      5         [         R                  " / [	        U5      QSP7SS05        S S S 5        g ! , (       d  f       g = f)Nr   st_atimeg      r^   )r    stat_resultrE   rD   r   r   rl   r   rf   rX   rd   re   )r   n_visible_fieldsrs      r   .test_constructor_with_duplicate_unnamed_fields<StructSeqTest.test_constructor_with_duplicate_unnamed_fields}   s   ~~..222>>;;NN5!12Z4FGT*E%(8"9:;NN;U#34;d;<T*E%(8"9:;##I$&II.Y$Z\NN;U#34;d;j$=OP\ \ \s   +(E
E*c                 |   [         R                  n[        R                  " S5      nU R	                  [
        U5         U" SSS0S9  S S S 5        U R	                  [
        U5         U" SSSS.S9  S S S 5        U R	                  [
        U5         U" SSSS	.S9  S S S 5        U R	                  [
        U5         U" SSSS
.S9  S S S 5        U R	                  [
        U5         U" SSSSS.S9  S S S 5        U R	                  [
        U5         U" SSS0S9  S S S 5        U R	                  [
        U5         U" SSSS
.S9  S S S 5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr^   rO   tm_yearr   rM   r	   rs   r`   rU   r_   rT   ra   rb   ra   rc   rg   s      r   $test_constructor_with_unknown_fields2StructSeqTest.test_constructor_with_unknown_fields   sN   		"MN##I}=kA/ >##I}=kA ;< >##I}=kK1 EF >##I}=kK! DE >##I}=k!q QR >##I}=k!- >##I}=kK! DE >= >=============sS   
E%EE)7E: F

F2F-
E
E&)
E7:
F
F
F*-
F;c                    ^  " S S[         5      m " U4S jS5      nU R                  T[        R                  U" 5       5        g )Nc                       \ rS rSrSrg))StructSeqTest.test_eviltuple.<locals>.Exc    N)__name__
__module____qualname____firstlineno____static_attributes__r|   r   r   Excrz      s    r   r   c                   (   > \ rS rSrU 4S jrS rSrg)'StructSeqTest.test_eviltuple.<locals>.C   c                    > Ter*   r|   )r   r   r   s     r   r   3StructSeqTest.test_eviltuple.<locals>.C.__getitem__   s    	r   c                     g)N	   r|   r   s    r   __len__/StructSeqTest.test_eviltuple.<locals>.C.__len__   s    r   r|   N)r}   r~   r   r   r   r   r   )r   s   r   Cr      s    r   r   )	Exceptionr   r
   rW   )r   r   r   s     @r   test_eviltupleStructSeqTest.test_eviltuple   s5    	) 		 	 	#t//5r   c                    [         R                  " 5       n[        [        R                  S-   5       H  n[        R
                  " X5      n[        R                  " U5      nU R                  UR                  UR                  5        U R                  XA5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        M     g r   )r
   r   r   pickleHIGHEST_PROTOCOLdumpsloadsr   	__class__rs   rT   )r   r   protopr-   s        r   test_picklingStructSeqTest.test_pickling   s    KKM622Q67EQ&AaBR\\1;;7R#RZZ3RZZ3 8r   c                    [         R                  R                  S:  d   e[         R                  " [        [         R                  R                  5      SSS.5      n[        [
        R                  S-   5       H  n[
        R                  " X5      n[
        R                  " U5      nU R                  UR                  UR                  5        U R                  XA5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        M     g )Nr         ?       @rl   st_atime_nsr	   )r    rm   rE   r   rD   r   r   r   r   r   r   st_moderl   r   )r   ro   r   r   r2s        r   !test_pickling_with_unnamed_fields/StructSeqTest.test_pickling_with_unnamed_fields   s    ~~..222NN5!A!AB(+C@B622Q67EQ&AaBR\\1;;7R#RZZ3R[[!**5R^^Q]]; 8r   c                    [         R                  R                  n[         R                  " [        U5       Vs/ s H  o"/PM     sn5      n[        R                  " U5      nU R                  UR                  UR                  5        U R                  XC5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  US   US   5        U R                  UR                  UR                  5        [        R                  " U5      nU R                  UR                  UR                  5        U R                  XS5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  US   US   5        U R                  UR                  UR                  5        g s  snf rC   )r
   rW   rF   r   copyr   r   rs   rT   assertIsdeepcopyassertIsNot)r   rF   r   r   r-   t3s         r   test_copyingStructSeqTest.test_copying   s^   ##,,5?;?ac?;<YYq\q{{3QYY/QYY/beQqT"bjj!)),]]1q{{3QYY/QYY/A!%QYY/! <s   G:c                    [         R                  R                  S:  d   e[         R                  R                  n[         R                  " [	        U5       Vs/ s H  o"/PM     snS/S/S.5      n[
        R
                  " U5      nU R                  UR                  UR                  5        U R                  XC5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  US   US   5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        [
        R                  " U5      nU R                  UR                  UR                  5        U R                  XS5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  US   US   5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                  UR                  5        g s  snf )Nr   r   r   r   )r    rm   rE   rD   r   r   r   r   r   rl   r   r   r   r   )r   rD   r   ro   r   r3s         r    test_copying_with_unnamed_fields.StructSeqTest.test_copying_with_unnamed_fields   s   ~~..222NN<<NN/@)AB)AAC)AB),seDF YYq\q{{3QYY/ajj17beQqT"bjj!)),bkk1::.bnnamm4]]1q{{3QYY/ajj17A!%QYY/ajj17/ Cs   Lc                     [         R                  " 5       n[        U5      nSnU H;  nU H2  nUSS   H&  nU R                  [        XXV2   5      X$XV2   5        M(     M4     M=     g )N)
r   Nr	   r1      i,  iir	   )r
   r   listr   )r   r   Lindicesstartstopsteps          r   test_extended_getslice$StructSeqTest.test_extended_getslice   se    KKMG=E#ABKD$$T!$O*<%=%&T%79 (   r   c                 \    SnU R                  [        R                  R                  U5        g )N)	rs   r`   tm_mdaytm_hourtm_mintm_sectm_wdaytm_ydaytm_isdst)r   r
   rW   __match_args__r   expected_argss     r   test_match_argsStructSeqTest.test_match_args  s&    E))88-Hr   c                     SnU R                  [        R                  R                  S5        U R                  [        R                  R                  U5        g )N)r   st_inost_devst_nlinkst_uidst_gidst_sizer1   )r   r    rm   rE   r   r   s     r   #test_match_args_with_unnamed_fields1StructSeqTest.test_match_args_with_unnamed_fields  s=    .88!<66Fr   c                    [         R                  R                  S:X  d   e[         R                  R                  [         R                  R                  :X  d   e[         R
                  " 5       nU R                  [        R                  " U5      U5        U R                  [        R                  " U5      [         R                  5        U R                  [        R                  " USS9S/USS  Q75        U R                  [        R                  " USS9US   S/USS  Q75        U R                  [        R                  " USSS9SS/USS  Q75        U R                  [        S	5         [        R                  " US
S9  S S S 5        U R                  [        S	5         [        R                  " USS
S9  S S S 5        g ! , (       d  f       ND= f! , (       d  f       g = f)Nr   g      ?)userr	   g      @)systemr2   )r   r   unexpected field namer   ra   )r   ra   )r    times_resultrE   rD   rF   timesr   r   replacer   rf   rX   rH   s     r   $test_copy_replace_all_fields_visible2StructSeqTest.test_copy_replace_all_fields_visible  sb   //144400BOO4L4LLLLHHJ 	a!,dll1or?ac2SM1QR5MBa4qtS6I1QR56IJac#>c@RAabE@RS ##I/FGLL"% H##I/FGLL"- HG HGGGs   (F<G<
G

Gc                    [         R                  R                  S:X  d   e[         R                  R                  [         R                  R                  :  d   e[         R
                  " S5      n[        R                  " U5      nU R                  US5        U R                  U[         R                  5        [        R                  " USS9nU R                  US5        U R                  UR                  S5        [        R                  " USS9nU R                  US5        U R                  UR                  S5        [        R                  " USSS	9nU R                  US
5        U R                  UR                  S5        U R                  UR                  S5        U R                  [        US5      U S35        U R                  [        S5         SUl        S S S 5        U R                  UR                   UR                   5        U R                  UR                   UR                   5        U R                  UR                   UR                   5        [        R                  " USS9nU R                  X5        U R                  UR                   S5        [        R                  " USSS9nU R                  US5        U R                  UR                  S5        U R                  UR                   S5        U R                  ["        S5         [        R                  " USS9  S S S 5        U R                  ["        S5         [        R                  " USSS9  S S S 5        U R                  ["        S5         [        R                  " USSS9  S S S 5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       Ng= f! , (       d  f       g = f)Nr   )	  r	   r	   r   r   r   r1   r	   r     )rs   )	r   r	   r	   r   r   r   r1   r	   r   r2   )r`   )	r   r2   r	   r   r   r   r1   r	   r   rt   )	r   r2   r	   r   r   r   r1   r	   r   rT   z has no attribute 'tm_zone'zreadonly attributezsome other zone)rT   )rs   rT   r   r   )rs   ra   ru   )r
   rW   rE   rD   rF   r   r   r   r   r   rs   r`   r   hasattrrf   AttributeErrorrT   rX   )r   r   r-   r   t4t5t6t7s           r   'test_copy_replace_with_invisible_fields5StructSeqTest.test_copy_replace_with_invisible_fields   s   00A55511D4D4D4M4MMMMKKN \\!_;<b$"2"23\\!T*;<T*\\!A&;<A&\\!T!4;<T*A& 	9-!4O/PQ##N4HI)AI JQYY/QYY/QYY/\\!%67%67\\!T3DE;<T*%67 ##I/FGLL!$ H##I/FGLLD2 H##I/FGLL$5Q? HG% JI HGGGGGs0   NN' N85O	
N$'
N58
O	
Oc                 
   [         R                  R                  S:  d   e[         R                  " [        [         R                  R                  5      5      n[
        R                  " S5      nU R                  [        U5         [        R                  " U5        S S S 5        U R                  [        U5         [        R                  " USS9  S S S 5        U R                  [        U5         [        R                  " USS9  S S S 5        U R                  [        U5         [        R                  " USSS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nf= f! , (       d  f       g = f)Nr   z__replace__() is not supportedr	   )r   r2   r   )r   ra   )r    rm   rE   r   rD   rd   re   rf   rX   r   r   )r   ro   rh   s      r   %test_copy_replace_with_unnamed_fields3StructSeqTest.test_copy_replace_with_unnamed_fieldsL  s    ~~..222NN5!A!ABC		"BC##I}=LLO >##I}=LLA& >##I}=LL!$ >##I}=LLAQ/ >= >=======s0   E9E-E#!E4
E
E #
E14
Fc                 Z    [         R                  " S[        R                  " S5      5        g )Nz-cz_
            import time
            t = time.gmtime()
            type(t).refcyle = t
        )r   assert_python_oktextwrapdedentr   s    r   test_reference_cycle"StructSeqTest.test_reference_cycle[  s$    
 	&&tX__ > . 	r   r|   N)r}   r~   r   r   r   r'   r.   r3   r8   r<   r@   rI   r[   ri   rp   rv   r   r   r   r   r   r   r   r   r   r   r   r   r   r|   r   r   r   r      s    /,&35"4(<+.TQ F&64<0(8:
9I
G.&*@X0	r   r   __main__)r   r    r   rd   r   r
   unittesttest.supportr   TestCaser   r}   mainr|   r   r   <module>r      sJ     	  	    &YH%% Yx
 zMMO r   