
    daf4O                         d dl mZmZ d dlZd dlZd dlZdZdZ G d dej                        Z	e
dk(  r ej                          yy)    )support	seq_testsNFc                   4    e Zd ZeZd Z fdZd Zd Z fdZ	 fdZ
 fdZ fdZd	 Zd
 Zd Zd Zd Zd Zej(                  d        Zd Zej(                  d        Zej(                  d        Zej(                  d        Zd Zd Zd Zd Zd Z xZS )	TupleTestc                 l    d}d}| j                  t        |      5  |d    d d d        y # 1 sw Y   y xY w)N z(tuple indices must be integers or slicesa)assertRaisesRegex	TypeError)selftmsgs      */root/Python-3.12.4/Lib/test/test_tuple.pytest_getitem_errorzTupleTest.test_getitem_error   s8    8##Is3 	cF	 	 	s   *3c                    t         |           | j                  t               d       d}t        |      }| j	                  ||u        | j                  t        g       d       | j                  t        g d      d       | j                  t        d      d       | j                  t        d      d       | j                  t        d t        d      D              d       y )	Nr   )r             spam)spr	   mc              3   ,   K   | ]  }|d z  s	|  yw)r   Nr   ).0xs     r   	<genexpr>z.TupleTest.test_constructors.<locals>.<genexpr>&   s     =Qq1uq=s   

   )r   r         	   )supertest_constructorsassertEqualtuple
assertTruerange)r   t0_3t0_3_bis	__class__s      r   r#   zTupleTest.test_constructors   s    !#"%;()rB'|,l;rB'v(<==%)==(	*    c                 r    | j                  t        d      5  t        d       d d d        y # 1 sw Y   y xY w)Nzkeyword argumentr   sequence)r
   r   r%   r   s    r   test_keyword_argszTupleTest.test_keyword_args)   s0    ##I/AB 	2	 	 	s   -6c                     G d dt               } |ddg      }| j                  t        |      |       | j                  t	        |      ddg       | j                  t              5   |d       d d d         G d dt               } |ddgd	
      }| j                  t        |      |       | j                  t	        |      ddg       | j                  |j                  d	        G d dt               } |ddgd	
      }| j                  t        |      |       | j                  t	        |      ddg       | j                  |j                  d	       y # 1 sw Y   xY w)Nc                       e Zd Zy)5TupleTest.test_keywords_in_subclass.<locals>.subclassN__name__
__module____qualname__r   r+   r   subclassr3   .       r+   r8   r   r   r   r-   c                       e Zd ZddZy)?TupleTest.test_keywords_in_subclass.<locals>.subclass_with_initNc                     || _         y Nnewarg)r   argr?   s      r   __init__zHTupleTest.test_keywords_in_subclass.<locals>.subclass_with_init.__init__7   s	    $r+   r=   )r5   r6   r7   rA   r   r+   r   subclass_with_initr;   6   s    %r+   rB   r   r>   c                         e Zd Zd fd	Z xZS )>TupleTest.test_keywords_in_subclass.<locals>.subclass_with_newc                 6    t         |   | |      }||_        |S r=   )r"   __new__r?   )clsr@   r?   r   r*   s       r   rF   zFTupleTest.test_keywords_in_subclass.<locals>.subclass_with_new.__new__?   s    wsC0$r+   r=   )r5   r6   r7   rF   __classcell__r*   s   @r   subclass_with_newrD   >   s     r+   rJ   )r%   assertIstyper$   listassertRaisesr   r?   )r   r8   urB   rJ   s        r   test_keywords_in_subclassz#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         |           | j                  d       | j                  d       y )NT)*   )r"   
test_truthr&   r   r*   s    r   rS   zTupleTest.test_truthH   s&    r+   c                     t         |           | j                  t        d      d       | j                  t        d      d       | j                  t        d      d       y )Nr   r   r   r   r   r   r   r   )r"   test_lenr$   lenrT   s    r   rX   zTupleTest.test_lenM   sJ    R!$TA&Y+r+   c                 Z    t         |           d}|}|dz  }| j                  ||u       y )Nr   r   r   r   )r"   	test_iaddr&   r   rO   u2r*   s      r   r]   zTupleTest.test_iaddS   s1    	V$r+   c                 Z    t         |           d}|}|dz  }| j                  ||u       y )Nr[   r   )r"   	test_imulr&   r^   s      r   ra   zTupleTest.test_imulZ   s1    	Q$r+   c                     d }| j                  t        t         |                   t        t        d                   y )Nc               3   4   K   t        d      D ]  } |   y w)N  )r'   )is    r   fz(TupleTest.test_tupleresizebug.<locals>.fc   s     4[    rd   )r$   rM   r%   r'   )r   rf   s     r   test_tupleresizebugzTupleTest.test_tupleresizebuga   s-    	 	eACj)4d+<=r+   c                 t      fd} |ddd        |ddd        |dd	d
        |ddd        |ddd       y )Nc                     t        |       }t        j                  dk(  r|n|}||k7  rd| d| d| }j                  |       y y )N    z
FAIL hash(z) ==  != )hashr   	NHASHBITSfail)r   e32e64gotexpectedr   r   s         r   check_one_exactz2TupleTest.test_hash_exact.<locals>.check_one_exactl   sO    q'C%//25s3Hh"1%uSEhZ@		# r+   r   is,l   {tYxYN} rV   im<iHl"$/K r   r   i lOP+c
+ )      ?im{l"$w(P-)rv   r   )r   )      i_*lteL r   )r   rt   s   ` r   test_hash_exactzTupleTest.test_hash_exactk   sN    	 	I':;j*>?
,@A
,?@2I,	.r+   c           
      r    ddl m} t        sy d+ fd		 	 d,fd	} |dt         |t	        d      d            d	d	d
d	       t        t	        dd            t        t	        d            z   } |dt         ||d            d	d	d	d	       ~t	        d      D cg c]  }|dz  	 }} |dt         ||d            d	d	d	d       ~ |dt         |ddgd            dd	dd        |dt         |ddgd            dd	dd        |dt         |dd            d        d!}t        t	        |            }t         ||d"            }|t         |||            z   t         |||            z   |z   t        t        |            z   }	 |d#|	d$d	d%d       ~~~	d&}t	        | |d'z         D 
cg c]
  }
|
dk7  s	|
 }}
||D cg c]  }|f c}z   }t         ||d"            }|t         ||d            z   }|t         ||d            z   }|}|||z   D cg c]  }|f c}z  }| |||      z  }| ||d"      z  }| |||      z  }| ||||      z  }| ||||      z  }| ||||      z  }| ||d      z  }t        |      d(k(  sJ  |d)|dd	d*d       y c c}w c c}
w c c}w c c}w )-Nr   )productc                    ddl m} t        |      }t        j                  ||      \  }} ||      }	|t        |	      z
  }
|
|z
  |z  }t        |	j                               dz
  }~	|
|f}d}d}|||kD  rd}d| d}|||k7  rd}|d	| d
| dz  }|st        rP| |  d|dd|dd}|d|
dd|dz  }t        rdd l}t        ||j                         y j                  |       y y )Nr   )Counterr   Fr   Tz	FAIL z > ; zFAIL rl   z	; pileup ,z mean z.1f zcoll z z z+.1f)file)collectionsr~   rY   r   collision_statsmaxvaluesJUST_SHOW_HASH_RESULTSsysprint
__stdout__ro   )tagnbinshashesrs   zlimitr~   nballsmeansdevc
collisionszpileuprr   failedprefixr   r   r   s                     r   tryone_innerz2TupleTest.test_hash_optional.<locals>.tryone_inner   s#   +[F 00?JD$A#a&Jd"d*A_q(Fv&CFF!a&j$VHB/#xE#d8*B77/YvajtCjJz!nC$x88)#CNN3IIcN 0r+   c           	      @   t         j                  }t        t        t        |            } | d| dz   d|z  ||dk(  r|n||       |dkD  rH|dz
  }	 | dz   d|D 
cg c]  }
|
|	z	  	 c}
||       d} | dz   d|D 
cg c]  }
|
|z  	 c}
||       y y c c}
w c c}
w )	Nr   z-bit hash codesr   rk   z; 32-bit upper hash codesl        l    z; 32-bit lower hash codes)r   rn   rM   maprm   )r   xsnative32native64hi32lo32r   rn   r   shifthmaskr   s               r   tryonez,TupleTest.test_hash_optional.<locals>.tryone   s      ))I#dB-(FI;o>>i%."_(	! 2~!BS#>>$289Qa5j9!#	% %S#>>$0671a$h7!#	%  : 8s   B?Bzrange(100) by 3d   r   )repeatru   )rx   r   ir!   z-10 .. 8 by 4rx   <   z0..99 << 60 by 3)iD  r   z[-3, 3] by 18   )r    r   )ry   r   z[0, 0.5] by 18rv   )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_TESTSrM   r'   ziprY   )r   r|   r   candsnLNbasexpinpsr   Ar	   BL2L3L4Tr   s   `                 @r   test_hash_optionalzTupleTest.test_hash_optional   s   %!	#: BF	%8 	 $wuSz!'D"Evvv	/ U3^$tE!H~5
 	WU1%= >vvv	/ $Cj)Q"W))!4!(<#=vvx	1 	Wb!WR%@ Avvv	/
 	gq#hr&B!Cvvw	0 	G8CD	 E!H~'$q)*d74,--'"d+,-/1248TODvx	1"d
 qb!A#21!r'Q22q!!!!!'!A&'$wq+,,$wq+,, 	AF#qqd##	WR^	WR""	WQ^	WQ2	WQA	WRA	WQq!!1vvw	0 *Z 3! $s   J%1
J*<J*
J/
J4c                 \   t               }d}| j                  |      }| j                  |      }| j                  t        |      t	        |             | j                  t        |      t	        |             | j                  t	        |      d       | j                  t	        |      d       y )NrW   z()z	(0, 1, 2))r%   	type2testr$   strrepr)r   l0l2a0a2s        r   	test_reprzTupleTest.test_repr  s    W^^B^^BR$r(+R$r(+b4(b;/r+   c                     t        j                          t        j                          | j                  t        j                  |      |       y r=   )gccollectassertFalse
is_trackedr   r   s     r   _not_trackedzTupleTest._not_tracked%  s-    





q)1-r+   c                     | j                  t        j                  |      |       t        j                          t        j                          | j                  t        j                  |      |       y r=   )r&   r   r   r   r   s     r   _trackedzTupleTest._tracked+  sB    a(!,





a(!,r+   c                    ddg }}}| j                  d       | j                  d       | j                  d       | j                  d       | j                  ddd	t        f       | j                  t               f       | j                  d|f|d
f       | j                  g f       | j                  dgf       | j                  i f       | j                  t	               f       | j                  |||f       y )N      ?r	   r   )r   r   r   )r   r   r	   r   r   )NTFr   r\   )r   intobjectr   set)r   r   yr   s       r   test_track_literalszTupleTest.test_track_literals1  s     sBa1"$&!+&1a!8#>?68+&Aq61f-. 	resfresuhq!Qi r+   c           	          ddg }}}|r| j                   n| j                  } |                | g               | t                             | d||g              | d d||fD                      | t        d||g                    | d d||fD                      |t        fdd||fD                     | j                   |g             | j                   ||gg             | j                   ||ig             | j                   d |||fD                     | j                   d |||fD                     | j                  t        fd	|||fD                     y )
Nr   r	   r   c              3       K   | ]  }|  y wr=   r   r   objs     r   r   z0TupleTest.check_track_dynamic.<locals>.<genexpr>N  s     **   c              3   4   K   | ]  }t        |g        y wr=   r%   r   s     r   r   z0TupleTest.check_track_dynamic.<locals>.<genexpr>P  s     3#u3rg   c              3   0   K   | ]  } |g        y wr=   r   r   r   tps     r   r   z0TupleTest.check_track_dynamic.<locals>.<genexpr>Q  s     3#BuI3   c              3       K   | ]  }|  y wr=   r   r   s     r   r   z0TupleTest.check_track_dynamic.<locals>.<genexpr>V  s     22r   c              3   4   K   | ]  }t        |g        y wr=   r   r   s     r   r   z0TupleTest.check_track_dynamic.<locals>.<genexpr>W  s     ;#u;rg   c              3   0   K   | ]  } |g        y wr=   r   r   s     r   r   z0TupleTest.check_track_dynamic.<locals>.<genexpr>X  s     ;#BuI;r   )r   r   r   r%   )r   r   always_trackr   r   r   checks    `     r   check_track_dynamiczTupleTest.check_track_dynamicF  sN   sBa1!-43D3Dbdbfbib!Qmb*Aq	**+baAY !b3!Q334e3!Q334b!gb1a&l#b1a&l#b2Aq	223b;!Q;;<e;!Q;;<r+   c                 0    | j                  t        d       y )NF)r   r%   r/   s    r   test_track_dynamiczTupleTest.test_track_dynamicZ  s     	  .r+   c                 F     G d dt               }| j                  |d       y )Nc                       e Zd Zy).TupleTest.test_track_subtypes.<locals>.MyTupleNr4   r   r+   r   MyTupler   b  r9   r+   r   T)r%   r   )r   r   s     r   test_track_subtypeszTupleTest.test_track_subtypes_  s    	e 	  $/r+   c                 X    | j                  t        d t        d      D                     y )Nc              3   D   K   | ]  }t        j                           y wr=   )r   r   )r   re   s     r   r   z)TupleTest.test_bug7466.<locals>.<genexpr>i  s     A

As    e   )r   r%   r'   r/   s    r   test_bug7466zTupleTest.test_bug7466f  s!     	%AeCjAABr+   c                 0      fd} |d        |d       y )Nc                 |    d| z  }t        |      }j                  |ddj                  dg| z        z   dz          y )NrV   (z, 0))r   r$   join)r   lr   r   s      r   r   z(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_largezTupleTest.test_repr_largek  s    	2
 	b	gr+   c                 R   | j                  g d      }t        t        j                  dz         D ]  }t	        |      }t        j
                  ||      }t        j                  |      }| j                  t        |      t        |             | j                  | j                  |      | j                  |             t        j                  |      }t        |       t        j
                  ||      }| j                  | j                  |      | j                  |      dd          y N)rx   r   ry   r    r   )
r   r'   pickleHIGHEST_PROTOCOLiterdumpsloadsr$   rL   nextr   dataprotoitorgdits         r   test_iterator_picklezTupleTest.test_iterator_pickleu  s     ~~l+622Q67 
	KEJEUE*AaBT%[$r(3T^^B/1EFaBHR'AT^^B/1Eab1IJ
	Kr+   c           	      z   | j                  g d      }t        t        j                  dz         D ]  }t	        |      }t        j
                  ||      }t        j                  |      }| j                  t        |      t        |             | j                  | j                  |      | j                  t	        |                   t        j                  |      }t        |       t        j
                  ||      }| j                  | j                  |      | j                  t	        |            dd          y r   )
r   r'   r  r  reversedr  r  r$   rL   r  r  s         r   test_reversed_picklezTupleTest.test_reversed_pickle  s    ~~l+622Q67 
	UETNEUE*AaBT%[$r(3T^^B/1OPaBHR'AT^^B/1OPQPR1ST
	Ur+   c                      G d dt               }| j                  t              5  dg |d      z    d d d        y # 1 sw Y   y xY w)Nc                       e Zd Zy)+TupleTest.test_no_comdat_folding.<locals>.TNr4   r   r+   r   r   r    s    r+   r   r   r   )r%   rN   r   )r   r   s     r   test_no_comdat_foldingz TupleTest.test_no_comdat_folding  s<     	y) 	D1U8O	 	 	s	   ;Ac                     | j                  ddg      }| j                  g d      }| j                  ddg      }| j                  ||       | j                  ||       y )Nr   r   )r   r   r   r   )r   
assertLess)r   r	   br   s       r   test_lexicographic_orderingz%TupleTest.test_lexicographic_ordering  sP    NNAq6"NN9%NNAq6"11r+   ) r5   r6   r7   r%   r   r   r#   r0   rP   rS   rX   r]   ra   rh   rz   r   r   r   r   r   cpython_onlyr   r   r   r   r   r   r  r  r  r  rH   rI   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   r5   mainr   r+   r   <module>r     sN    #  	    O	$$ O\ zHMMO r+   