
    dafB                     f    d Z ddlZddlmZ ddlmZ ddlmZmZm	Z	  G d dej                        Z
y)z,
Tests common to list and UserList.UserList
    N)
cmp_to_key)	seq_tests)	ALWAYS_EQNEVER_EQC_RECURSION_LIMITc                        e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Z fdZd Zd Zd Zd Zd Z fdZ fdZd Zd Zd Z xZS )
CommonTestc                 
   | j                  | j                  g       | j                                | j                  g d      }|j                          | j                  || j                  g              | j                  g d      }|j                  g d       | j                  || j                  g d             | j                  |      }| j                  t	        |      t	        |             | j                  ||       y )N         )         )assertEqual	type2test__init__assertNotEqualidselfabs      */root/Python-3.12.4/Lib/test/list_tests.py	test_initzCommonTest.test_init   s    +T^^-=> NN9%	

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

9DNN956 NN1BqE2a5)A    c                 l    g }d}| j                  t        |      5  |d    d d d        y # 1 sw Y   y xY w)N'list indices must be integers or slicesr   assertRaisesRegex	TypeErrorr   r   msgs      r   test_getitem_errorzCommonTest.test_getitem_error!   s8    7##Is3 	cF	 	 	   *3c                 l    g }d}| j                  t        |      5  d|d<   d d d        y # 1 sw Y   y xY w)Nr   pythonr   r    r#   s      r   test_setitem_errorzCommonTest.test_setitem_error'   s:    7##Is3 	AcF	 	 	r&   c                 H   g }g d}| j                  |      }| j                  |      }| j                  t        |      t        |             | j                  t        |      t        |             | j                  t        |      t        |             | j                  t        |      d       | j                  t        |      d       |j	                  |       |j	                  d       | j                  t        |      d       | j                  t        |      d       y )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_reprzCommonTest.test_repr-   s    ^^B^^BR#b'*b48,b48,R+.b;/
		"
		!R"78b#89r   c                     | j                  g       }t        t        dz         D ]  }| j                  |g      } | j                  t        t
        |       y )Nr   )r   ranger   assertRaisesRecursionErrorr-   )r   r   is      r   test_repr_deepzCommonTest.test_repr_deep>   sL    NN2(1,- 	$As#A	$.$2r   c           	         | j                  t        d            }| j                  t        |j                  t        ddd      g d       | j                  t        |j                  t        dd      d       | j                  t        |j                  t        ddd      ddg       | j                  t        |j                  dd       g d|t        ddd      <   | j                  || j                  g d	             y )
N   r   
   r   r   r   xr   )r   r   r   r   r   r   r      r   	   r<                              )	r   r5   r6   
ValueError__setitem__slicer"   __getitem__r   r   r   s     r   test_set_subscriptzCommonTest.test_set_subscriptD   s    NN59%*ammU1b!_gN)Q]]E!RL!D*ammU1b!_qeL)Q]]C;"%"Q-DNN ,< = 	>r   c           
         | j                  t        d            }t        |      }| j                  t	        |      | j                  t        ddd                   | j                  t        t        |       | j                  t	        t        | j                                     | j                                | j                  t        t        t        g d             y )Nr;   rH   r   )
r   r5   reversedr   listr6   StopIterationnextr"   len)r   r   rs      r   test_reversedzCommonTest.test_reversedO   s    NN59%QKa$..r2r1B"CD-q1ht~~'789)	+ 	)S(7*;<r   c                    | j                  ddg      }d|d<   d|d<   | j                  || j                  ddg             d|d<   | j                  || j                  ddg             d|d<   | j                  || j                  ddg             | j                  t        |j                  dd       | j                  t        |j                  dd       | j                  g       }| j                  t        |j                  dd       | j                  t        |j                  dd       | j                  t
        |j                         | j                  g d	      }d|d<   d|d<   d
|d<   | j                  || j                  g d             d|d<   d|d<   d|d<   | j                  || j                  g d             d|d<   d|d<   | j                  || j                  g d             d|d<   d|d<   | j                  || j                  g d             d}| j                  t
        |      5  d|d<   d d d        y # 1 sw Y   y xY w)Nr   r   d      rP   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   r>   )r   r   r>   r   r   X   c   )r   r   r>   r^   r_      r?   )r   r   r>   r`   r?   r   r(   r   )r   r   r6   
IndexErrorrJ   r"   r!   r#   s      r   test_setitemzCommonTest.test_setitemY   s   NNAq6"!!DNNAs845"DNNAs845"DNNC:67*ammR=*ammQ<NN2*ammQ<*ammR=)Q]]3NN;'!!!DNN;78!!!DNN;78""DNN=9:""DNN;787##Is3 	AcF	 	 	s   3IIc                 J   | j                  ddg      }|d= | j                  |dg       |d= | j                  |g        | j                  ddg      }|d= | j                  |dg       |d= | j                  |g        | j                  ddg      }| j                  t        |j                  d       | j                  t        |j                  d       | j                  g       }| j                  t        |j                  d       | j                  t
        |j                         y )Nr   r   r[   rP   r\   r   )r   r   r6   ra   __delitem__r"   rM   s     r   test_delitemz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           	         ddg}| j                  |      }t        dd      D ]  }|d | |d | | j                  ||       |d d  }|d | |d | | j                  ||       ||d  ||d  | j                  ||       |d d  }||d  ||d  | j                  ||       t        dd      D ];  }||| ||| | j                  ||       |d d  }||| ||| | j                  ||       =  d d  }ddg|d d | j                  |g d       g |dd  | j                  |g        | j                  g d      }||d d | j                  || j                  g d	             | j                  g d      }||dd  | j                  || j                  g d
             | j                  g d      }||dd | j                  || j                  g d             | j                  g       }t        t        d            |d d  | j                  || j                  t        d                   | j	                  t
        |j                  t        ddd             | j	                  t
        |j                         y )Nr   r   r\   r   r[   rP   )r[   rP   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   r<   r   )r   r5   r   tupler6   r"   rJ   rK   )r   lr   r8   r2   jaa2s          r   test_setslicezCommonTest.test_setslice   sq   FNN1r1 	(AbqEAbqEQ"1BrUBrFR#abEAabEQ"1BqrUBqrFR#2q\ (1Q!A  A&qTAa&1Q  Q'(	($ er(BQn-ABb!NN?+#2DNN+=>?NN?+!"DNN+=>?NN?+!BDNN+@ABNN2U2Y!DNN5956)Q]]E!QNC)Q]]3r   c                 6   | j                  ddg      }|dd= |dd= | j                  || j                  g              | j                  ddg      }|dd= |dd= | j                  || j                  g              | j                  ddg      }|dd= | j                  || j                  dg             | j                  ddg      }|dd= | j                  || j                  dg             | j                  ddg      }|dd = |d d= | j                  || j                  g              | j                  ddg      }|dd = |d d= | j                  || j                  g              | j                  ddg      }|dd = | j                  || j                  dg             | j                  ddg      }|dd = | j                  || j                  dg             | j                  ddg      }|d d = | j                  || j                  g              y )Nr   r   r   r[   rP   )r   r   rM   s     r   test_delslicezCommonTest.test_delslice   s   NNAq6"acFacFDNN2./NNAq6"acFacFDNN2./NNAq6"beHDNNA3/0NNAq6"beHDNNA3/0NNAq6"abEbqbEDNN2./NNAq6"abEbqbEDNN2./NNAq6"bcFDNNA3/0NNAq6"bcFDNNA3/0NNAq6"aDDNN2./r   c                    | j                  g       }|j                  d       |j                  d       |j                  d       | j                  || j                  g d             | j                  t        |j                         y )Nr   r   r   r+   )r   r.   r   r6   r"   rM   s     r   test_appendzCommonTest.test_append   s^    NN2			DNN956)QXX.r   c                    | j                  dg      }| j                  d      }|d d  }|j                  |       | j                  |||z          |j                  | j                  g              | j                  |||z          |j                  |       | j                  || j                  g d             | j                  d      }|j                  d       | j                  |t        d             | j	                  t
        |j                  d        | j	                  t
        |j                          G d d      }| j                  g d	      }|j                   |              | j                  |g d	       y )
Nr   )r   r   )r   r   r   r   r   r   spameggsspameggsc                       e Zd Zd Zd Zd Zy)*CommonTest.test_extend.<locals>.CustomIterc                     | S N r   s    r   __iter__z3CommonTest.test_extend.<locals>.CustomIter.__iter__
  s    r   c                     t         rw   )rS   ry   s    r   __next__z3CommonTest.test_extend.<locals>.CustomIter.__next__  s    ##r   c                 "    t         j                  S rw   )sysmaxsizery   s    r   __length_hint__z:CommonTest.test_extend.<locals>.CustomIter.__length_hint__  s    {{"r   N)__name__
__module____qualname__rz   r|   r   rx   r   r   
CustomIterru   	  s    $#r   r   )r   r   r   r   )r   extendr   rR   r6   r"   )r   a1r2   r   r   s        r   test_extendzCommonTest.test_extend   s'   ^^QC ^^F#qE	BG$	#$BG$	DNN+=>?NN6"	D,-)QXXt4)QXX.	# 	# NN9%	I&r   c                    | j                  g d      }|j                  dd       |j                  dd       |j                  dd       | j                  |g d       |d d  }|j                  dd       |j                  d	d
       |j                  dd       | j                  || j                  g d             | j                  t        |j                         y )Nr+   r   r[   r   rP   r   r[   rP   r   r   r   r   fooi8leftrZ   right)	r   r[   rP   r   r   r   r   r   r   )r   insertr   r6   r"   r   s      r   test_insertzCommonTest.test_insert  s    NN9%	B	B	A01aD	U	v	gDNN+OPQ)QXX.r   c                    | j                  g d      }|j                          | j                  |ddg       |j                  d       | j                  |dg       | j                  t        |j                  d       |j                  d       | j                  |g        | j                  t        |j                         | j                  t
        |j                  dd       | j                  g d      }y )N)rP   r   r   rP   r   r   *   )r   r<   r;      (   )r   popr   r6   ra   r"   rM   s     r   test_popzCommonTest.test_pop$  s    NN:&	RG$	aQC *aeeQ/	aB*aee,)QUUB3NN./r   c                    | j                  g d      }|j                  d       | j                  |ddg       |j                  d       | j                  |dg       |j                  d       | j                  |g        | j                  t        |j                  d       | j                  t
        |j                         | j                  ddg      }| j                  t        |j                  t               | j                  |ddg       |j                  t               | j                  |dg       | j                  t        g      }|j                  d       | j                  |g        | j                  t        g      }|j                  t               | j                  |g        | j                  t        g      }| j                  t        |j                  t                G d dt               G fdd      }| j                  g d	      }| j                  |j                   |               G fd
d      }| j                  d      }|j                  d       | j                  || j                  d             |j                  d       | j                  || j                  d             | j                  t        |j                  d       | j                  || j                  d             | j                  dd |       dg      }| j                  |      }| j                  |j                  d       t        ||      D ]  \  }}| j                  ||        y )N)r   r   r   r   r   r   c                       e Zd Zy)&CommonTest.test_remove.<locals>.BadExcN)r   r   r   rx   r   r   BadExcr   L  s    r   r   c                       e Zd Z fdZy)&CommonTest.test_remove.<locals>.BadCmpc                     |dk(  r        y)Nr   Frx   r   otherr   s     r   __eq__z-CommonTest.test_remove.<locals>.BadCmp.__eq__P  s    A: (Nr   Nr   r   r   r   r   s   r   BadCmpr   O  s    r   r   )r   r   r   r   c                       e Zd Z fdZy)'CommonTest.test_remove.<locals>.BadCmp2c                             rw   rx   r   s     r   r   z.CommonTest.test_remove.<locals>.BadCmp2.__eq__Y  s
    hr   Nr   r   s   r   BadCmp2r   X  s    r   r   abcdefghcijc
abdefghcij	abdefghijr   r   )r   remover   r6   rI   r"   r   r   	ExceptionzipassertIs)	r   r   r   r   der=   yr   s	           @r   test_removezCommonTest.test_remove1  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=)	DNN<89	DNN;78*ahh4DNN;78 NNCgi56NN1&!((C01I 	 DAqMM!Q	 r   c                    t         |           | j                  g d      }|j                  d       | j	                  t
        |j                  ddd       | j                  || j                  g d              G d d      }| j                         }t        d      D cg c]
  } ||       c}|d d  | j	                  t
        |j                  d        y c c}w )	Nr   r   r   r   r[   rP   r   r   r   c                       e Zd Zd Zd Zy)&CommonTest.test_index.<locals>.EvilCmpc                     || _         y rw   victim)r   r   s     r   r   z/CommonTest.test_index.<locals>.EvilCmp.__init__u  s	    $r   c                 "    | j                   d d = y)NFr   )r   r   s     r   r   z-CommonTest.test_index.<locals>.EvilCmp.__eq__w  s    KKNr   N)r   r   r   r   r   rx   r   r   EvilCmpr   t  s    %r   r   rY   )	super
test_indexr   r   r6   rI   indexr   r5   )r   r   r   _	__class__s       r   r   zCommonTest.test_indexl  s    NN/0	*aggq!Q7DNN+<=>	 	 NN$)#J/q
/!*aggt4 0s   !Cc                    | j                  g d      }|d d  }|j                          | j                  |g d       |j                          | j                  ||       | j                  t        |j                  d       y )Nr   r   r   r   rP   r[   r   )r   reverser   r6   r"   )r   uu2s      r   test_reversezCommonTest.test_reverse  sc    NN,-qT			-.			B)QYY3r   c                    | j                  g d      }|j                          | j                  |g        | j                  g       }|j                          | j                  |g        | j                  g       }|j                  d       |j                          |j                  d       | j                  |dg       | j	                  t
        |j                  d        y )N)r   r   r   r   r   )r   clearr   r.   r6   r"   r   r   s     r   
test_clearzCommonTest.test_clear  s    NN9%		BNN2		BNN2				QC )QWWd3r   c                 x   | j                  g d      }|j                         }| j                  |g d       | j                  g       }|j                         }| j                  |g        | j                  ddg      }|j                         }|j                  d       | j                  |ddg       | j                  ||dgz          | j                  ddddgd	g      }|j                         }| j                  ||       | j	                  |d   |d          | j                  t        |j                  d        y )
Nr   r   r   r8   r   r   r   r   r   )r   copyr   r.   r   r6   r"   )r   r   vs      r   	test_copyzCommonTest.test_copy  s   NN9%FFHI&NN2FFHB NNC:&FFH	S#J'AI& NNAq1a&!,-FFHAadAaD!)QVVT2r   c                     | j                  ddg      }|j                          | j                  |ddg       | j                  g d      }|j                          | j                  || j                  g d             | j                  t        |j                  dd       d }|j                  t        |             | j                  || j                  g d             d }| j                  t        d	            j                  t        |             | j                  t        j                  d
       fd}| j                  t        j                  t        |             | j                  t        j                  dddd       y )Nr   r   r   r   r   c                     | |k(  ry| |k  ryy)Nr   r   rP   rx   )r   r   s     r   revcmpz$CommonTest.test_sort.<locals>.revcmp  s    AvQr   )keyc                 0    | dz  |dz  }}||k(  ry||k  ryy)Nr   r>   r   rP   r   rx   )r=   r   xmodymods       r   myComparisonz*CommonTest.test_sort.<locals>.myComparison  s*    1ac$Dt|r   rA   r   c                 @    j                  d       | |k(  ry| |k  ryy)Nr   r   rP   )r.   )r=   r   zs     r   selfmodifyingComparisonz5CommonTest.test_sort.<locals>.selfmodifyingComparison  s%    HHQKAvQr   )r   sortr   r6   r"   r   r5   rI   )r   r   r   r   r   r   s        @r   	test_sortzCommonTest.test_sort  s9   NNAq6"	QF#NN=)	DNN=9:)QVVR4	 	
:f%&DNN=9:	 NN59%	:l+,)QVVQ/	 	*aff()@A 	 	C 	)QVVRR<r   c                 f    | j                  d      }d|d d | j                  |t        d             y )Nrq   hr   ham)r   r   rR   r   s     r   
test_slicezCommonTest.test_slice  s/    NN6""1DK(r   c                 .   t         |           | j                  ddg      }|}|ddgz  }| j                  ||       | j                  d      }|dz  }| j	                  || j                  d             | j                  t        |j                  d        y )Nr   r   r   r   rq   rr   rs   )r   	test_iaddr   r   r   r6   r"   __iadd__)r   r   r   r   s      r   r   zCommonTest.test_iadd  s    NNAq6"	aVaNN6"	VDNN:67)QZZ6r   c                     t         |           | j                  g       }t        |      }|dz  }| j	                  t        |      |       y )Nr<   )r   	test_imulr   r   r   )r   soldidr   s      r   r   zCommonTest.test_imul  sB    NN21	RA&r   c                    | j                  g d      }|d d d= | j                  || j                  ddg             | j                  t        d            }|dd d= | j                  || j                  g d             | j                  t        d            }|dd d= | j                  || j                  g d             | j                  t        d	            }|d d d
= | j                  || j                  g d             | j                  t        d	            }dgdz  |d d d<   | j                  || j                  g d             | j                  t        d	            }d	gdz  |d d d<   | j                  || j                  g d             | j                  t        d            }||d d d<   | j                  || j                  g d             | j                  t        d	            }|d d  }|d d  }| j                  ddg      |dd | j                  ddg      |t        dd      <   | j                  ddg      |dd | j                  ||       | j                  ||       | j                  t        d	            }t	        t        d            |d d d<   | j                  || j                  g d             | j                  t        d	            }|dd ddz  = y )Nr]   r   r   r   r   )r   r   r   r[   )r   r   r   r   r<   i  )	r   r   r   r   r   r   r>   r`   r?   rP   )
rP   r   rP   r   rP   r   rP   r>   rP   r?   )
r   r<   r   r   r   r<   r   r>   r`   r<   r   )r   r   r   r   twoelements)
r   r   r   r   r   r   r   r>   r   r?   r?   iM  )r   r   r5   rK   rg   )r   r   r   r   s       r   test_extendedslicingzCommonTest.test_extendedslicing  s   NN;' ccFDNNAa512NN58$addGDNN734NN58$aeeHDNN956NN59%ffIDNN+FGHNN59%a#A#DNN+NOPNN59%$q&$B$DNN+LMNNN58$$B$DNN<89NN59%aDaD
 34!Az':;%!*..%!45!AAANN59%uQx#A#DNN+IJKNN59%aiCiLr   c                 b     G d dt               }| j                  t        t         |              y )Nc                       e Zd Zd Zy)9CommonTest.test_constructor_exception_handling.<locals>.Fc                     t         rw   )KeyboardInterruptry   s    r   rz   zBCommonTest.test_constructor_exception_handling.<locals>.F.__iter__'  s    ''r   N)r   r   r   rz   rx   r   r   Fr   &  s    (r   r   )objectr6   r   rR   )r   r   s     r   #test_constructor_exception_handlingz.CommonTest.test_constructor_exception_handling$  s%    	( 	( 	+T137r   c                 P   | j                  g d      }t        |      }t        |      }|D ]  }t        |        |j                  d       | j	                  t        |      g        | j	                  t        |      dg       | j	                  || j                  g d             y )Nr   r?   )r   r   r   r?   )r   iterrT   r.   r   rR   )r   r   exhitempitr=   s        r   test_exhausted_iteratorz"CommonTest.test_exhausted_iterator+  s    NN9%QQ 	AK		eb)eqc*DNN<89r   )r   r   r   r   r%   r)   r3   r9   rN   rW   rb   re   rk   rm   ro   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\'0R/'B/09 v5&44"30.=`)
7''R8	:r   r	   )__doc__r~   	functoolsr   testr   test.supportr   r   r   r	   rx   r   r   <module>r      s/        ? ?h:%% h:r   