
    0hh4O                         S SK JrJr  S SKrS SKrS SKrSrSr " S S\R                  5      r	\
S:X  a  \R                  " 5         gg)    )support	seq_testsNFc                   F  ^  \ rS rSr\rS rU 4S jrS rS r	U 4S jr
U 4S jrU 4S jrU 4S	 jrS
 rS rS rS rS rS r\R*                  S 5       rS r\R*                  S 5       r\R*                  S 5       r\R*                  S 5       rS rS rS rS rS rSr U =r!$ )	TupleTest   c                 v    SnSnU R                  [        U5         US     S S S 5        g ! , (       d  f       g = f)N z(tuple indices must be integers or slicesa)assertRaisesRegex	TypeError)selftmsgs      8/opt/python-3.13.8/usr/lib/python3.13/test/test_tuple.pytest_getitem_errorTupleTest.test_getitem_error   s/    8##Is3cF 433s   *
8c                   > [         TU ]  5         U R                  [        5       S5        Sn[        U5      nU R	                  XL 5        U R                  [        / 5      S5        U R                  [        / SQ5      S5        U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S [        S5       5       5      S5        g )	Nr	   )r             spam)spr
   mc              3   <   #    U  H  oS -  (       d  M  Uv   M     g7f)r   Nr	   ).0xs     r   	<genexpr>.TupleTest.test_constructors.<locals>.<genexpr>&   s     =)Q1uqq)s   	
   )r   r         	   )supertest_constructorsassertEqualtuple
assertTruerange)r   t0_3t0_3_bis	__class__s      r   r&   TupleTest.test_constructors   s    !#"%;()rB'|,l;rB'v(<==%)==(	*    c                 v    U R                  [        S5         [        SS9  S S S 5        g ! , (       d  f       g = f)Nzkeyword argumentr	   sequence)r   r   r(   r   s    r   test_keyword_argsTupleTest.test_keyword_args)   s(    ##I/AB2 CBBs   
*
8c                     " S S[         5      nU" SS/5      nU R                  [        U5      U5        U R                  [	        U5      SS/5        U R                  [        5         U" SS9  S S S 5         " S S[         5      nU" SS/S	S
9nU R                  [        U5      U5        U R                  [	        U5      SS/5        U R                  UR                  S	5         " S S[         5      nU" SS/S	S
9nU R                  [        U5      U5        U R                  [	        U5      SS/5        U R                  UR                  S	5        g ! , (       d  f       N= f)Nc                       \ rS rSrSrg)5TupleTest.test_keywords_in_subclass.<locals>.subclass.   r	   N__name__
__module____qualname____firstlineno____static_attributes__r	   r/   r   subclassr8   .       r/   r@   r   r   r	   r1   c                       \ rS rSrSS jrSrg)?TupleTest.test_keywords_in_subclass.<locals>.subclass_with_init6   Nc                     X l         g Nnewarg)r   argrH   s      r   __init__HTupleTest.test_keywords_in_subclass.<locals>.subclass_with_init.__init__7   s    $r/   rG   rF   )r;   r<   r=   r>   rJ   r?   r	   r/   r   subclass_with_initrC   6   s    %r/   rL   r   rG   c                   ,   ^  \ rS rSrSU 4S jjrSrU =r$ )>TupleTest.test_keywords_in_subclass.<locals>.subclass_with_new>   c                 2   > [         TU ]  X5      nX#l        U$ rF   )r%   __new__rH   )clsrI   rH   r   r-   s       r   rQ   FTupleTest.test_keywords_in_subclass.<locals>.subclass_with_new.__new__?   s    ws0$r/   rG   rF   )r;   r<   r=   r>   rQ   r?   __classcell__r-   s   @r   subclass_with_newrN   >   s     r/   rV   )r(   assertIstyper'   listassertRaisesr   rH   )r   r@   urL   rV   s        r   test_keywords_in_subclass#TupleTest.test_keywords_in_subclass-   s$   	u 	aVd1gx(a1a&)y)b! *	% 	% 1va0d1g12a1a&)1%	 	
 q!fQ/d1g01a1a&)1%' *)s   'E
Ec                 f   > [         TU ]  5         U R                  S5        U R                  S5        g )NT)*   )r%   
test_truthr)   r   r-   s    r   r`   TupleTest.test_truthH   s&    r/   c                    > [         TU ]  5         U R                  [        S5      S5        U R                  [        S5      S5        U R                  [        S5      S5        g )Nr	   r   r   r   r   r   r   r   )r%   test_lenr'   lenra   s    r   rf   TupleTest.test_lenM   sJ    R!$TA&Y+r/   c                 X   > [         TU ]  5         SnUnUS-  nU R                  XL5        g )Nr   r   r   r   )r%   	test_iaddr)   r   r[   u2r-   s      r   rl   TupleTest.test_iaddS   s/    	V$r/   c                 X   > [         TU ]  5         SnUnUS-  nU R                  XL5        g )Nrj   r   )r%   	test_imulr)   rm   s      r   rq   TupleTest.test_imulZ   s/    	Q$r/   c                     S nU R                  [        [        U" 5       5      5      [        [        S5      5      5        g )Nc               3   8   #    [        S5       H  n U v   M	     g 7f)N  )r*   )is    r   f(TupleTest.test_tupleresizebug.<locals>.fc   s     4[ !s   ru   )r'   rY   r(   r*   )r   rw   s     r   test_tupleresizebugTupleTest.test_tupleresizebuga   s-    	 	eACj)4d+<=r/   c                 v   ^  U 4S jnU" SSS5        U" SSS5        U" SS	S
5        U" SSS5        U" SSS5        g )Nc                    > [        U 5      n[        R                  S:X  a  UOUnX4:w  a  SU < SU SU 3nTR                  U5        g g )N    z
FAIL hash(z) ==  != )hashr   	NHASHBITSfail)r   e32e64gotexpectedr   r   s         r   check_one_exact2TupleTest.test_hash_exact.<locals>.check_one_exactl   sM    q'C%//25s3H"1%uSEhZ@		# r/   r	   is,l   {tYxYN} rd   im<iHl"$/K r   r   i lOP+c
+ )      ?im{l"$w(P-)r   r	   )r   )      i_*lteL r	   )r   r   s   ` r   test_hash_exactTupleTest.test_hash_exactk   sN    	 	I':;j*>?
,@A
,?@2I,	.r/   c           
      <  ^ ^ SSK Jn  [        (       d  g S+U 4S jjm  S,U4S jjnU" S[        U" [	        S5      SS95      S	S	S
S	5        [        [	        SS5      5      [        [	        S5      5      -   nU" S[        U" USS95      S	S	S	S	5        A[	        S5       Vs/ s H  oDS-  PM	     nnU" S[        U" USS95      S	S	S	S5        AU" S[        U" SS/SS95      SS	SS5        U" S[        U" SS/SS95      SS	SS5        U" S[        U" SSS95      SS 9  S!n[        [	        U5      5      n[        U" US"S95      nU[        U" Xx5      5      -   [        U" X5      5      -   U-   [        [        U5      5      -   n	U" S#U	S$S	S%S5        AAA	S&n[	        U* US'-   5       V
s/ s H  oS:w  d  M
  U
PM     nn
X Vs/ s H  o4PM     sn-   n[        U" US"S95      nU[        U" USS95      -   nU[        U" USS95      -   nUnUUU-    Vs/ s H  o4PM     sn-  nUU" X5      -  nUU" US"S9-  nUU" X5      -  nUU" XU5      -  nUU" XU5      -  nUU" XU5      -  nUU" USS9-  n[        U5      S(:X  d   eU" S)USS	S*S5        g s  snf s  sn
f s  snf s  snf )-Nr   )productc                   > SSK Jn  [        U5      n[        R                  " X5      u  pxU" U5      n	U[        U	5      -
  n
X-
  U-  n[        U	R                  5       5      S-
  nA	X4nSnSnUb  X:  a  SnSU S3nUb  X:w  a  SnUS	U S
U S3-  nU(       d  [        (       aR  U U  SUS SUS S3nUSU
S SUS 3-  n[        (       a  SS Kn[        UUR                  S9  g TR                  U5        g g )Nr   )Counterr   Fr   Tz	FAIL z > ; zFAIL r~   z	; pileup ,z mean z.1f zcoll z z z+.1f)file)collectionsr   rg   r   collision_statsmaxvaluesJUST_SHOW_HASH_RESULTSsysprint
__stdout__r   )tagnbinshashesr   zlimitr   nballsmeansdevc
collisionszpileupr   failedprefixr   r   r   s                     r   tryone_inner2TupleTest.test_hash_optional.<locals>.tryone_inner   s   +[F 00?JDA#a&J"d*A_q(F&CFF!aj$VHB/#E#d8*B77//YvajtCjJz!nC$x88))#CNN3IIcN 0r/   c           	      L  > [         R                  n[        [        [        U5      5      nT" U SU S3-   SU-  UUS:X  a  UOUU5        US:  aL  US-
  n	T" U S-   SU V
s/ s H  oU	-	  PM	     sn
UU5        SnT" U S-   SU V
s/ s H  oU-  PM	     sn
UU5        g g s  sn
f s  sn
f )	Nr   z-bit hash codesr   r}   z; 32-bit upper hash codesl        l    z; 32-bit lower hash codes)r   r   rY   mapr   )r   xsnative32native64hi32lo32r   r   r   shifthmaskr   s               r   tryone,TupleTest.test_hash_optional.<locals>.tryone   s      ))I#dB-(FI;o>>i%."_(	! 2~!BS#>>$289&Q5j&9!#	% %S#>>$0671$h7!#	%  : 8s   BB!zrange(100) by 3d   r   )repeatr   )r   r   ir$   z-10 .. 8 by 4r   <   z0..99 << 60 by 3)iD  r   z[-3, 3] by 18r   )r#   r   )r   r   z[0, 0.5] by 18r   )r"   r   )r$   r   )   r   z4-char tuplesabcdefghijklmnopqrstuvwxyzg      @)r   2   r   zold tuple test)r   r   )4   1   r"   r   i*D znew tuple test)   r"   )NN)NNNNN)	itertoolsr   RUN_ALL_HASH_TESTSrY   r*   ziprg   )r   r   r   candsnLNbasexpinpsr   Ar
   BL2L3L4Tr   s   `                 @r   test_hash_optionalTupleTest.test_hash_optional   s   %!!	#: BF	%8 	 $wuSz!'D"Evvv	/ U3^$tE!H~5
 	WU1%= >vvv	/ $Cj)j"Wj)!4!(<#=vvx	1 	Wb!WR%@ Avvv	/
 	gq#hr&B!Cvvw	0 	G8CD	 E!H~'$q)*d74,--'"+,-/1248TODvx	1"d
 qb!A#21r'Q2q!q!q!!'!A&'$wq+,,$wq+,, 	AF#FqdF##	WR^	WR""	WQ^	WQ2	WQA	WRA	WQq!!1vvw	0 *Z 3! $s   J
"	J/J;JJc                 \   [        5       nSnU R                  U5      nU R                  U5      nU R                  [        U5      [	        U5      5        U R                  [        U5      [	        U5      5        U R                  [	        U5      S5        U R                  [	        U5      S5        g )Nre   z()z	(0, 1, 2))r(   	type2testr'   strrepr)r   l0l2a0a2s        r   	test_reprTupleTest.test_repr  s    W^^B^^BR$r(+R$r(+b4(b;/r/   c                     [         R                  " 5         [         R                  " 5         U R                  [         R                  " U5      U5        g rF   )gccollectassertFalse
is_trackedr   r   s     r   _not_trackedTupleTest._not_tracked%  s-    





q)1-r/   c                     U R                  [        R                  " U5      U5        [        R                  " 5         [        R                  " 5         U R                  [        R                  " U5      U5        g rF   )r)   r   r   r   r   s     r   _trackedTupleTest._tracked+  sB    a(!,





a(!,r/   c                    SS/ p2nU R                  S5        U R                  S5        U R                  S5        U R                  S5        U R                  SSS	[        45        U R                  [        5       45        U R                  SU4US
45        U R                  / 45        U R                  S/45        U R                  0 45        U R                  [	        5       45        U R                  XU45        g )N      ?r
   r	   )r   r   r   )r   r   r
   r   r   )NTFr	   rk   )r   intobjectr   set)r   r   yr   s       r   test_track_literalsTupleTest.test_track_literals1  s     sBa"$&!+&1a!8#>?68+&Aq61f-. 	resfresuhqQi r/   c           	        ^ SS/ pTnU(       a  U R                   OU R                  nU" T" 5       5        U" T" / 5      5        U" T" [        5       5      5        U" T" SX4/5      5        U" T" S SX44 5       5      5        U" T" [        SX4/5      5      5        U" T" S SX44 5       5      5        U" [        U4S jSX44 5       5      5        U R                  T" U/5      5        U R                  T" X4//5      5        U R                  T" X40/5      5        U R                  T" S X4U4 5       5      5        U R                  T" S X4U4 5       5      5        U R                  [        U4S	 jX4U4 5       5      5        g )
Nr   r
   r   c              3   $   #    U  H  ov   M     g 7frF   r	   r   objs     r   r   0TupleTest.check_track_dynamic.<locals>.<genexpr>N  s     *		   c              3   :   #    U  H  n[        U/5      v   M     g 7frF   r(   r   s     r   r   r   P  s     3#u   c              3   6   >#    U  H  nT" U/5      v   M     g 7frF   r	   r   r   tps     r   r   r   Q  s     3#BuII   c              3   $   #    U  H  ov   M     g 7frF   r	   r   s     r   r   r   V  s     2		r   c              3   :   #    U  H  n[        U/5      v   M     g 7frF   r   r   s     r   r   r   W  s     ;#ur   c              3   6   >#    U  H  nT" U/5      v   M     g 7frF   r	   r   s     r   r   r   X  s     ;#BuIIr  )r   r   r   r(   )r   r   always_trackr   r   r   checks    `     r   check_track_dynamicTupleTest.check_track_dynamicF  s8   sBa!-43D3Dbdbfbib!Qmb*A	**+baY !b3!Q334e3!Q334b!gb1&l#b1&l#b2q	223b;!;;<e;!;;<r/   c                 0    U R                  [        S5        g )NF)r  r(   r3   s    r   test_track_dynamicTupleTest.test_track_dynamicZ  s     	  .r/   c                 F     " S S[         5      nU R                  US5        g )Nc                       \ rS rSrSrg).TupleTest.test_track_subtypes.<locals>.MyTupleib  r	   Nr:   r	   r/   r   MyTupler  b  rA   r/   r  T)r(   r  )r   r  s     r   test_track_subtypesTupleTest.test_track_subtypes_  s    	e 	  $/r/   c                 X    U R                  [        S [        S5       5       5      5        g )Nc              3   L   #    U  H  n[         R                  " 5       v   M     g 7frF   )r   r   )r   rv   s     r   r   )TupleTest.test_bug7466.<locals>.<genexpr>i  s     Aj

js   "$e   )r   r(   r*   r3   s    r   test_bug7466TupleTest.test_bug7466f  s!     	%AeCjAABr/   c                 2   ^  U 4S jnU" S5        U" S5        g )Nc                 |   > SU -  n[        U5      nTR                  USSR                  S/U -  5      -   S-   5        g )Nrd   (z, 0))r   r'   join)r   lr   r   s      r   r  (TupleTest.test_repr_large.<locals>.checkm  sA    qAQAQdii	**S02r/   r!   i@B r	   )r   r  s   ` r   test_repr_largeTupleTest.test_repr_largek  s    	2
 	b	gr/   c                 Z   U R                  / SQ5      n[        [        R                  S-   5       H  n[	        U5      n[        R
                  " X25      n[        R                  " U5      nU R                  [        U5      [        U5      5        U R                  U R                  U5      U R                  U5      5        [        R                  " U5      n[        U5        [        R
                  " XR5      nU R                  U R                  U5      U R                  U5      SS  5        M     g N)r   r"   r   r#   r   )
r   r*   pickleHIGHEST_PROTOCOLiterdumpsloadsr'   rX   nextr   dataprotoitorgdits         r   test_iterator_pickleTupleTest.test_iterator_pickleu  s     ~~l+622Q67EJEU*AaBT%[$r(3T^^B/1EFaBHR'AT^^B/1Eab1IJ 8r/   c           	         U R                  / SQ5      n[        [        R                  S-   5       GH  n[	        U5      n[        R
                  " X25      n[        R                  " U5      nU R                  [        U5      [        U5      5        U R                  U R                  U5      U R                  [	        U5      5      5        [        R                  " U5      n[        U5        [        R
                  " XR5      nU R                  U R                  U5      U R                  [	        U5      5      SS  5        GM     g r#  )
r   r*   r$  r%  reversedr'  r(  r'   rX   r)  r*  s         r   test_reversed_pickleTupleTest.test_reversed_pickle  s    ~~l+622Q67ETNEU*AaBT%[$r(3T^^B/1OPaBHR'AT^^B/1OPQPR1ST 8r/   c                      " S S[         5      nU R                  [        5         S/U" S5      -     S S S 5        g ! , (       d  f       g = f)Nc                       \ rS rSrSrg)+TupleTest.test_no_comdat_folding.<locals>.Ti  r	   Nr:   r	   r/   r   r   r8    s    r/   r   r   r   )r(   rZ   r   )r   r   s     r   test_no_comdat_folding TupleTest.test_no_comdat_folding  s3     	y)D1U8O *))s	   ;
A	c                     U R                  SS/5      nU R                  / SQ5      nU R                  SS/5      nU R                  X5        U R                  X#5        g )Nr   r   )r   r   r   r   )r   
assertLess)r   r
   br   s       r   test_lexicographic_ordering%TupleTest.test_lexicographic_ordering  sL    NNAq6"NN9%NNAq6"r/   r	   )"r;   r<   r=   r>   r(   r   r   r&   r4   r\   r`   rf   rl   rq   ry   r   r   r   r   r   r   cpython_onlyr   r  r
  r  r  r   r0  r4  r9  r>  r?   rT   rU   s   @r   r   r      s    I*&6 
,%%>.,W0r	0.- ! !(=( / / 0 0 C CK U r/   r   __main__)testr   r   unittestr   r$  r   r   
CommonTestr   r;   mainr	   r/   r   <module>rF     sL    #  	    O	$$ O\ zMMO r/   