
    /hhsD                     f    S r SSKrSSKJr  SSKJr  SSKJrJrJ	r	   " S S\R                  5      r
g)z,
Tests common to list and UserList.UserList
    N)
cmp_to_key)	seq_tests)	ALWAYS_EQNEVER_EQget_c_recursion_limitc                      ^  \ 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U 4S jrS rS rS rS rS rU 4S jrU 4S jrS rS rS rSr U =r!$ )
CommonTest   c                    U R                  U R                  / 5      U R                  5       5        U R                  / SQ5      nUR                  5         U R                  XR                  / 5      5        U R                  / SQ5      nUR                  / SQ5        U R                  XR                  / SQ5      5        U R                  U5      nU R                  [	        U5      [	        U5      5        U R                  X5        g )N         )         )assertEqual	type2test__init__assertNotEqualidselfabs      8/opt/python-3.13.8/usr/lib/python3.13/test/list_tests.py	test_initCommonTest.test_init   s    +T^^-=> NN9%	

NN2./ NN9%	

9NN956 NN1BqE2a5)    c                     U R                  / 5      nSnU R                  [        U5         US     S S S 5        g ! , (       d  f       g = f)N'list indices must be integers or slicesr   r   assertRaisesRegex	TypeErrorr   r   msgs      r   test_getitem_errorCommonTest.test_getitem_error!   s8    NN27##Is3cF 433	   9
Ac                     U R                  / 5      nSnU R                  [        U5         SUS'   S S S 5        g ! , (       d  f       g = f)Nr!   pythonr   r"   r%   s      r   test_setitem_errorCommonTest.test_setitem_error'   s:    NN27##Is3AcF 433r)   c                 H   / n/ SQ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      [        U5      5        U R                  [        U5      S5        U R                  [        U5      S5        UR	                  U5        UR	                  S5        U R                  [        U5      S5        U R                  [        U5      S5        g )Nr   r   r   z	[0, 1, 2]r   z[0, 1, 2, [...], 3])r   r   strreprappend)r   l0l2a0a2s        r   	test_reprCommonTest.test_repr-   s    ^^B^^BR#b'*b48,b48,R+.b;/
		"
		!R"78b#89r   c                     U R                  / 5      n[        [        5       S-   5       H  nU R                  U/5      nM     U R                  [        [
        U5        g )Nr   )r   ranger   assertRaisesRecursionErrorr1   )r   r   is      r   test_repr_deepCommonTest.test_repr_deep>   sJ    NN2,.23As#A 4.$2r   c           	         U R                  [        S5      5      nU R                  [        UR                  [        SSS5      / SQ5        U R                  [        UR                  [        SS5      S5        U R                  [        UR                  [        SSS5      SS/5        U R                  [        UR                  SS5        / SQU[        SSS5      '   U R                  XR                  / S	Q5      5        g )
N   r   
   r   r   r   xr   )r   r   r   r   r   r   r      r   	   rB      r
                        )	r   r:   r;   
ValueError__setitem__slicer$   __getitem__r   r   r   s     r   test_set_subscriptCommonTest.test_set_subscriptD   s    NN59%*ammU1b!_gN)Q]]E!RL!D*ammU1b!_qeL)Q]]C;"%"Q-NN ,< = 	>r   c           
         U R                  [        S5      5      n[        U5      nU R                  [	        U5      U R                  [        SSS5      5      5        U R                  [        [        U5        U R                  [	        [        U R                  5       5      5      U R                  5       5        U R                  [        [        [        / SQ5      5        g )NrA   rM   r   )
r   r:   reversedr   listr;   StopIterationnextr$   len)r   r   rs      r   test_reversedCommonTest.test_reversedO   s    NN59%QKa$..r2r1B"CD-q1ht~~'789)	+ 	)S(7*;<r   c                    U R                  SS/5      nSUS'   SUS'   U R                  XR                  SS/5      5        SUS'   U R                  XR                  SS/5      5        SUS'   U R                  XR                  SS/5      5        U R                  [        UR                  SS5        U R                  [        UR                  SS5        U R                  / 5      nU R                  [        UR                  SS5        U R                  [        UR                  SS5        U R                  [
        UR                  5        U R                  / S	Q5      nSUS'   SUS'   S
US'   U R                  XR                  / SQ5      5        SUS'   SUS'   SUS'   U R                  XR                  / SQ5      5        SUS'   SUS'   U R                  XR                  / SQ5      5        SUS'   SUS'   U R                  XR                  / SQ5      5        SnU R                  [
        U5         SUS'   S S S 5        g ! , (       d  f       g = f)Nr   r   d      rV   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   rD   )r   r   rD   r   r   X   c   )r   r   rD   re   rf      rE   )r   r   rD   rg   rE   r!   r+   r   )r   r   r;   
IndexErrorrO   r$   r#   r%   s      r   test_setitemCommonTest.test_setitemY   s   NNAq6"!!NNAs845"NNAs845"NNC:67*ammR=*ammQ<NN2*ammQ<*ammR=)Q]]3NN;'!!!NN;78!!!NN;78""NN=9:""NN;787##Is3AcF 433s   ,H;;
I	c                 J   U R                  SS/5      nUS	 U R                  US/5        US	 U R                  U/ 5        U R                  SS/5      nUS	 U R                  US/5        US	 U R                  U/ 5        U R                  SS/5      nU R                  [        UR                  S5        U R                  [        UR                  S5        U R                  / 5      nU R                  [        UR                  S5        U R                  [
        UR                  5        g )Nr   r   rb   rV   rc   r   )r   r   r;   rh   __delitem__r$   rR   s     r   test_delitemCommonTest.test_delitem~   s    NNAq6"aDQC aDBNNAq6"bEQC bEBNNAq6"*ammR8*ammQ7NN2*ammQ7)Q]]3r   c           	         SS/nU R                  U5      n[        SS5       H  nUS U US U& U R                  X!5        US S  nUS U US U& U R                  XB5        XS  X#S & U R                  X!5        US S  nX#S  XCS & U R                  XB5        [        SS5       H6  nXU X#U& U R                  X!5        US S  nX#U XCU& U R                  XB5        M8     M     WS S  nSS/US S& U R                  U/ SQ5        / USS & U R                  U/ 5        U R                  / SQ5      nX"S S& U R                  X R                  / S	Q5      5        U R                  / SQ5      nX"SS & U R                  X R                  / S
Q5      5        U R                  / SQ5      nX"SS& U R                  X R                  / SQ5      5        U R                  / 5      n[        [        S5      5      US S & U R                  X R                  [        S5      5      5        U R	                  [
        UR                  [        SSS5      5        U R	                  [
        UR                  5        g )Nr   r   rc   r   rb   rV   )rb   rV   r   r   )r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   r   rB   r   )r   r:   r   tupler;   r$   rO   rP   )r   lr   r=   r6   jaa2s          r   test_setsliceCommonTest.test_setslice   s=   FNN1r1AbqEAbqEQ"1BrUBrFR#bEAbEQ"1BrUBrFR#2q\QA  &qTa&Q  ' " $ er(BQn-ABb!NN?+#2NN+=>?NN?+!"NN+=>?NN?+!BNN+@ABNN2U2Y!NN5956)Q]]E!QNC)Q]]3r   c                    U R                  [        S5      5      n[        [        S5      5      USS& U R                  XR                  / SQ5      5        [        [        S5      5      US S & U R                  XR                  / SQ5      5        g )Nr   r   r   )r   r   r   r   r   )r   r   r   )r   r:   rW   r   )r   rC   s     r   test_slice_assign_iterator%CommonTest.test_slice_assign_iterator   sh    NN58$%(#!ANN?;<a!!NN956r   c                 $   U R                  SS/5      nUSS2	 USS2	 U R                  XR                  / 5      5        U R                  SS/5      nUSS2	 USS2	 U R                  XR                  / 5      5        U R                  SS/5      nUSS2	 U R                  XR                  S/5      5        U R                  SS/5      nUSS2	 U R                  XR                  S/5      5        U R                  SS/5      nUSS 2	 US S2	 U R                  XR                  / 5      5        U R                  SS/5      nUSS 2	 US S2	 U R                  XR                  / 5      5        U R                  SS/5      nUSS 2	 U R                  XR                  S/5      5        U R                  SS/5      nUSS 2	 U R                  XR                  S/5      5        U R                  SS/5      nUS S 2	 U R                  XR                  / 5      5        g )Nr   r   r   rb   rV   )r   r   rR   s     r   test_delsliceCommonTest.test_delslice   s   NNAq6"acFacFNN2./NNAq6"acFacFNN2./NNAq6"beHNNA3/0NNAq6"beHNNA3/0NNAq6"abEbqbENN2./NNAq6"abEbqbENN2./NNAq6"bcFNNA3/0NNAq6"bcFNNA3/0NNAq6"aDNN2./r   c                    U R                  / 5      nUR                  S5        UR                  S5        UR                  S5        U R                  XR                  / SQ5      5        U R                  [        UR                  5        g )Nr   r   r   r/   )r   r2   r   r;   r$   rR   s     r   test_appendCommonTest.test_append   s\    NN2			NN956)QXX.r   c                    U R                  S/5      nU R                  S5      nUS S  nUR                  U5        U R                  X1U-   5        UR                  U R                  / 5      5        U R                  X1U-   5        UR                  U5        U R                  X0R                  / SQ5      5        U R                  S5      nUR                  S5        U R                  U[        S5      5        U R	                  [
        UR                  S 5        U R	                  [
        UR                  5         " S S5      nU R                  / S	Q5      nUR                  U" 5       5        U R                  U/ S	Q5        g )
Nr   )r   r   )r   r   r   r   r   r   spameggsspameggsc                   &    \ rS rSrS rS rS rSrg)*CommonTest.test_extend.<locals>.CustomIteri  c                     U $ N r   s    r   __iter__3CommonTest.test_extend.<locals>.CustomIter.__iter__  s    r   c                     [         er   )rY   r   s    r   __next__3CommonTest.test_extend.<locals>.CustomIter.__next__  s    ##r   c                 "    [         R                  $ r   )sysmaxsizer   s    r   __length_hint__:CommonTest.test_extend.<locals>.CustomIter.__length_hint__  s    {{"r   r   N)__name__
__module____qualname____firstlineno__r   r   r   __static_attributes__r   r   r   
CustomIterr     s    $#r   r   )r   r   r   r   )r   extendr   rX   r;   r$   )r   a1r6   r   r   s        r   test_extendCommonTest.test_extend   s!   ^^QC ^^F#qE	G$	#$G$	NN+=>?NN6"	D,-)QXXt4)QXX.	# 	# NN9%	I&r   c                    U R                  / SQ5      nUR                  SS5        UR                  SS5        UR                  SS5        U R                  U/ SQ5        US S  nUR                  SS5        UR                  S	S
5        UR                  SS5        U R                  X R                  / SQ5      5        U R                  [        UR                  5        g )Nr/   r   rb   r   rV   r   rb   rV   r   r   r   r   fooi8leftra   right)	r   rb   rV   r   r   r   r   r   r   )r   insertr   r;   r$   r   s      r   test_insertCommonTest.test_insert  s    NN9%	B	B	A01aD	U	v	gNN+OPQ)QXX.r   c                    U R                  / SQ5      nUR                  5         U R                  USS/5        UR                  S5        U R                  US/5        U R                  [        UR                  S5        UR                  S5        U R                  U/ 5        U R                  [        UR                  5        U R                  [
        UR                  SS5        U R                  / SQ5      ng )N)rV   r   r   rV   r   r   *   )r   rB   rA      (   )r   popr   r;   rh   r$   rR   s     r   test_popCommonTest.test_pop,  s    NN:&	RG$	aQC *aeeQ/	aB*aee,)QUUB3NN./r   c                   ^ U R                  / SQ5      nUR                  S5        U R                  USS/5        UR                  S5        U R                  US/5        UR                  S5        U R                  U/ 5        U R                  [        UR                  S5        U R                  [
        UR                  5        U R                  SS/5      nU R                  [        UR                  [        5        U R                  USS/5        UR                  [        5        U R                  US/5        U R                  [        /5      nUR                  S5        U R                  U/ 5        U R                  [        /5      nUR                  [        5        U R                  U/ 5        U R                  [        /5      nU R                  [        UR                  [        5         " S S[        5      m " U4S jS5      nU R                  / S	Q5      nU R                  TUR                  U" 5       5         " U4S
 jS5      nU R                  S5      nUR                  S5        U R                  X@R                  S5      5        UR                  S5        U R                  X@R                  S5      5        U R                  [        UR                  S5        U R                  X@R                  S5      5        U R                  SSU" 5       S/5      nU R                  U5      nU R                  TUR                  S5        [        XE5       H  u  pgU R                  Xg5        M     g )N)r   r   r   r   r   r   c                       \ rS rSrSrg)&CommonTest.test_remove.<locals>.BadExciT  r   N)r   r   r   r   r   r   r   r   BadExcr   T  s    r   r   c                   "   > \ rS rSrU 4S jrSrg)&CommonTest.test_remove.<locals>.BadCmpiW  c                     > US:X  a  T" 5       eg)Nr   Fr   r   otherr   s     r   __eq__-CommonTest.test_remove.<locals>.BadCmp.__eq__X  s    A: (Nr   r   Nr   r   r   r   r   r   r   s   r   BadCmpr   W  s     r   r   )r   r   r   r   c                   "   > \ rS rSrU 4S jrSrg)'CommonTest.test_remove.<locals>.BadCmp2i`  c                    > T" 5       er   r   r   s     r   r   .CommonTest.test_remove.<locals>.BadCmp2.__eq__a  s
    hr   r   Nr   r   s   r   BadCmp2r   `  s     r   r   abcdefghcijc
abdefghcij	abdefghijr   r   )r   remover   r;   rN   r$   r   r   	ExceptionzipassertIs)	r   r   r   r   derC   yr   s	           @r   test_removeCommonTest.test_remove9  s   NN9%	QF#	QC 	B*ahh2)QXX.NNAq6"*ahh9QF#	QC NNI;'	BNNI;'	BNNH:&*ahh	:	Y 		 	 NN<(&!((FH5	 	 NN=)	NN<89	NN;78*ahh4NN;78 NNCgi56NN1&!((C0IDAMM! r   c                   > [         TU ]  5         U R                  / SQ5      nUR                  S5        U R	                  [
        UR                  SSS5        U R                  XR                  / SQ5      5         " S S5      nU R                  5       n[        S5       Vs/ s H
  o2" U5      PM     snUS S & U R	                  [
        UR                  S 5        g s  snf )	Nr   r   r   r   rb   rV   r   r   r   c                        \ rS rSrS rS rSrg)&CommonTest.test_index.<locals>.EvilCmpi|  c                     Xl         g r   victim)r   r   s     r   r   /CommonTest.test_index.<locals>.EvilCmp.__init__}  s    $r   c                 "    U R                   S S 2	 g)NFr   )r   r   s     r   r   -CommonTest.test_index.<locals>.EvilCmp.__eq__  s    KKNr   r   N)r   r   r   r   r   r   r   r   r   r   EvilCmpr   |  s    %r   r   r`   )	super
test_indexr   r   r;   rN   indexr   r:   )r   r   r   _	__class__s       r   r   CommonTest.test_indext  s    NN/0	*aggq!Q7NN+<=>	 	 NN$)#J/Jq
J/!*aggt4 0s    Cc                     U R                  / SQ5      nUS S  nUR                  5         U R                  U/ SQ5        UR                  5         U R                  X5        U R                  [        UR                  S5        g )Nr   r   r   r   rV   rb   r   )r   reverser   r;   r$   )r   uu2s      r   test_reverseCommonTest.test_reverse  sa    NN,-qT			-.			)QYY3r   c                    U R                  / SQ5      nUR                  5         U R                  U/ 5        U R                  / 5      nUR                  5         U R                  U/ 5        U R                  / 5      nUR                  S5        UR                  5         UR                  S5        U R                  US/5        U R	                  [
        UR                  S 5        g )N)r   r   r   r   r   )r   clearr   r2   r;   r$   r   r   s     r   
test_clearCommonTest.test_clear  s    NN9%		BNN2		BNN2				QC )QWWd3r   c                 t   U R                  / SQ5      nUR                  5       nU R                  U/ SQ5        U R                  / 5      nUR                  5       nU R                  U/ 5        U R                  SS/5      nUR                  5       nUR                  S5        U R                  USS/5        U R                  X!S/-   5        U R                  SSSS/S	/5      nUR                  5       nU R                  X5        U R	                  US   US   5        U R                  [        UR                  S 5        g )
Nr   r   r   r=   r   r   r   r   r   )r   copyr   r2   r   r;   r$   )r   r   vs      r   	test_copyCommonTest.test_copy  s   NN9%FFHI&NN2FFHB NNC:&FFH	S#J'I& NNAq1a&!,-FFHadAaD!)QVVT2r   c                   ^ U R                  SS/5      nUR                  5         U R                  USS/5        U R                  / SQ5      nUR                  5         U R                  XR                  / SQ5      5        U R                  [        UR                  SS5        S nUR                  [        U5      S9  U R                  XR                  / SQ5      5        S nU R                  [        S	5      5      mTR                  [        U5      S9  U R                  [        TR                  S
5        U4S jnU R                  [        TR                  [        U5      S9  U R                  [        TR                  SSSS5        g )Nr   r   r   r   r   c                     X:X  a  gX:  a  gg)Nr   r   rV   r   )r   r   s     r   revcmp$CommonTest.test_sort.<locals>.revcmp  s    vr   )keyc                 .    U S-  US-  p2X#:X  a  gX#:  a  gg)Nr   rD   r   rV   r   r   )rC   r   xmodymods       r   myComparison*CommonTest.test_sort.<locals>.myComparison  s$    1ac$|r   r
   r   c                 @   > TR                  S5        X:X  a  gX:  a  gg)Nr   r   rV   )r2   )rC   r   zs     r   selfmodifyingComparison5CommonTest.test_sort.<locals>.selfmodifyingComparison  s!    HHQKvr   )r   sortr   r;   r$   r   r:   rN   )r   r   r   r   r   r   s        @r   	test_sortCommonTest.test_sort  s5   NNAq6"	QF#NN=)	NN=9:)QVVR4	 	
:f%&NN=9:	 NN59%	:l+,)QVVQ/	 	*aff()@A 	 	C 	)QVVRR<r   c                 f    U R                  S5      nSUS S& U R                  U[        S5      5        g )Nr   hr   ham)r   r   rX   r   s     r   
test_sliceCommonTest.test_slice  s/    NN6""1DK(r   c                 *  > [         TU ]  5         U R                  SS/5      nUnUSS/-  nU R                  X5        U R                  S5      nUS-  nU R	                  XR                  S5      5        U R                  [        UR                  S 5        g )Nr   r   r   r   r   r   r   )r   	test_iaddr   r   r   r;   r$   __iadd__)r   r   r   r   s      r   r  CommonTest.test_iadd  s    NNAq6"	aVaNN6"	VNN:67)QZZ6r   c                    > [         TU ]  5         U R                  / 5      n[        U5      nUS-  nU R	                  [        U5      U5        g )NrB   )r   	test_imulr   r   r   )r   soldidr   s      r   r	  CommonTest.test_imul  sB    NN21	RA&r   c                    U R                  / SQ5      nUS S S2	 U R                  XR                  SS/5      5        U R                  [        S5      5      nUSS S2	 U R                  XR                  / SQ5      5        U R                  [        S5      5      nUSS S2	 U R                  XR                  / SQ5      5        U R                  [        S	5      5      nUS S S
2	 U R                  XR                  / SQ5      5        U R                  [        S	5      5      nS/S-  US S S2'   U R                  XR                  / SQ5      5        U R                  [        S	5      5      nS	/S-  US S S2'   U R                  XR                  / SQ5      5        U R                  [        S5      5      nXS S S2'   U R                  XR                  / SQ5      5        U R                  [        S	5      5      nUS S  nUS S  nU R                  SS/5      USS& U R                  SS/5      U[        SS5      '   U R                  SS/5      USS& U R                  X5        U R                  X5        U R                  [        S	5      5      n[	        [        S5      5      US S S2'   U R                  XR                  / SQ5      5        U R                  [        S	5      5      nUSS SS-  2	 g )Nrd   r   r   r   r   )r   r   r   rb   )r   r   r   r   rB   i  )	r   r   r   r   r   r   rD   rg   rE   rV   )
rV   r   rV   r   rV   r   rV   rD   rV   rE   )
r   rB   r   r   r   rB   r   rD   rg   rB   r   )r   r   r   r   twoelements)
r   r   r   r   r   r   r   rD   r   rE   rE   iM  )r   r   r:   rP   rp   )r   r   r   r   s       r   test_extendedslicingCommonTest.test_extendedslicing  sx   NN;' ccFNNAa512NN58$addGNN734NN58$aeeHNN956NN59%ffINN+FGHNN59%a#A#NN+NOPNN59%$q&$B$NN+LMNNN58$$B$NN<89NN59%aDaD
 34!Az':;%!*..%!45!ANN59%uQx#A#NN+IJKNN59%aiCiLr   c                 n     " S S[         5      nU R                  [        U R                  U" 5       5        g )Nc                       \ rS rSrS rSrg)9CommonTest.test_constructor_exception_handling.<locals>.Fi.  c                     [         er   )KeyboardInterruptr   s    r   r   BCommonTest.test_constructor_exception_handling.<locals>.F.__iter__/  s    ''r   r   N)r   r   r   r   r   r   r   r   r   Fr  .  s    (r   r  )objectr;   r  r   )r   r  s     r   #test_constructor_exception_handling.CommonTest.test_constructor_exception_handling,  s)    	( 	( 	+T^^QSAr   c                    U R                  / SQ5      n[        U5      n[        U5      nU H  n[        U5        M     UR                  S5        U R	                  [        U5      / 5        U R	                  [        U5      S/5        U R	                  XR                  / SQ5      5        [        U R                  / SQ5      5      nU H  n[        US5        M     g )Nr   rE   )r   r   r   rE   r   )r   iterrZ   r2   r   rX   )r   r   exhitempitrC   r   s         r   test_exhausted_iterator"CommonTest.test_exhausted_iterator3  s    NN9%QQAK 	eb)eqc*NN<89 T^^I./AN r   r   )"r   r   r   r   r   r'   r,   r7   r>   rS   r]   ri   rm   rt   rw   rz   r}   r   r   r   r   r   r   r   r   r   r  r  r	  r  r  r!  r   __classcell__)r   s   @r   r	   r	      s    &:"3	>=#J4,,4\7'0R/'B/09 v5&44"30.=`)
7''RB r   r	   )__doc__r   	functoolsr   testr   test.supportr   r   r   r	   r   r   r   <module>r(     s/        C Cu%% ur   