
    0hh+                         S SK r S SKrS SKJr  S SKJr  S SKJr  S SKrS SK	r	 " S S\R                  5      r\S:X  a  \	R                  " 5         gg)    N)
list_tests)cpython_only)assert_python_okc                      ^  \ rS rSr\rS rS rS rU 4S jr	S r
U 4S j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 5       rS rS rS rSrU =r$ )ListTest	   c                    U R                  [        / 5      / 5        / SQn[        U5      nU R                  X5        U R                  XL5        U R                  [        S5      / 5        U R                  [        S5      / SQ5        U R                  [        S5      / 5        U R                  [        S5      / SQ5        U R                  [        S [        S5       5       5      / SQ5        [        R
                  S	:X  a5  U R                  [        [        [        [        R
                  S
-  5      5        / nUR                  S U 5       5        U R                  U/ 5        g )N)r              spam)spamc              3   <   #    U  H  oS -  (       d  M  Uv   M     g7f)r   Nr   ).0xs     7/opt/python-3.13.8/usr/lib/python3.13/test/test_list.py	<genexpr>&ListTest.test_basic.<locals>.<genexpr>   s     <A!eaas   	
   )r
   r         r   ir   c              3   &   #    U  H  o* v   M	     g 7fNr   )r   ys     r   r   r   ,   s     QQs   )	assertEquallist
assertTruerangesysmaxsizeassertRaisesMemoryErrorextend)selfl0_3l0_3_bisr   s       r   
test_basicListTest.test_basic   s   b2&:(,-b2&l+\:b2&f';<<r<<(	* ;;*$ k4s{{a7G1HI 	QB    c                 v    U R                  [        S5         [        / S9  S S S 5        g ! , (       d  f       g = f)Nzkeyword argumentsequence)assertRaisesRegex	TypeErrorr!   r)   s    r   test_keyword_argsListTest.test_keyword_args/   s(    ##I/AB" 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)4ListTest.test_keywords_in_subclass.<locals>.subclass4   r   N__name__
__module____qualname____firstlineno____static_attributes__r   r.   r   subclassr9   4   s    r.   rA   r
   r   r   r0   c                   ,   ^  \ rS rSrSU 4S jjrSrU =r$ )>ListTest.test_keywords_in_subclass.<locals>.subclass_with_init<   c                 0   > [         TU ]  U5        X l        g r   )super__init__newarg)r)   seqrH   	__class__s      r   rG   GListTest.test_keywords_in_subclass.<locals>.subclass_with_init.__init__=   s     %$r.   rH   r   )r<   r=   r>   r?   rG   r@   __classcell__rJ   s   @r   subclass_with_initrC   <   s    % %r.   rO   r   rL   c                   ,   ^  \ rS rSrSU 4S jjrSrU =r$ )=ListTest.test_keywords_in_subclass.<locals>.subclass_with_newE   c                 2   > [         TU ]  X5      nX#l        U$ r   )rF   __new__rH   )clsrI   rH   r)   rJ   s       r   rT   EListTest.test_keywords_in_subclass.<locals>.subclass_with_new.__new__F   s    ws0$r.   rL   r   )r<   r=   r>   r?   rT   r@   rM   rN   s   @r   subclass_with_newrQ   E   s     r.   rW   )r!   assertIstyper    r&   r3   rH   )r)   rA   urO   rW   s        r   test_keywords_in_subclass"ListTest.test_keywords_in_subclass3   s$   	t 	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                 r   > [         TU ]  5         U R                  / (       + 5        U R                  S/5        g )N*   )rF   
test_truthr"   r)   rJ   s    r   r_   ListTest.test_truthO   s*    Br.   c                 *    U R                  / / L5        g r   )r"   r4   s    r   test_identityListTest.test_identityT   s    "%r.   c                    > [         TU ]  5         U R                  [        / 5      S5        U R                  [        S/5      S5        U R                  [        / SQ5      S5        g )Nr   r
   )r   r
   r   r   )rF   test_lenr    lenr`   s    r   rf   ListTest.test_lenW   sL    R!$aS1%Y+r.   c                     / SQn[        [        R                  S-  S-   [        U5      -  5      nS nS nU R	                  [
        [        4X1U5        U R	                  [
        [        4XAU5        g )N   r      r   r   c                 
    X-  $ r   r   r   bs     r   mul#ListTest.test_overflow.<locals>.mul`   s    ae|r.   c                     X-  n g r   r   rn   s     r   imul$ListTest.test_overflow.<locals>.imula   s    r.   )intr$   r%   rg   r&   r'   OverflowError)r)   lstnrp   rs   s        r   test_overflowListTest.test_overflow]   sZ    QqSX-.#;6!D;61Er.   c                 4    / nXS S & U R                  U/ 5        g r   )r    )r)   r   s     r   test_empty_sliceListTest.test_empty_slicee   s    !Br.   c                 T   S/S-  nUSS 2	 U R                  [        U5      S5        [        R                  nU R	                  [
        [        45         X-    S S S 5        U R	                  [
        [        45         X-  nS S S 5        g ! , (       d  f       N7= f! , (       d  f       g = f)Nr   A   r
   )r    rg   r$   r%   r&   r'   rv   )r)   rw   sizes      r   test_list_resize_overflow"ListTest.test_list_resize_overflowj   s     cBhGS1%{{];<J =];<KC =< =<<<s   B:B
B
B'c                    ^  " U4S jS5      n[        S5       Vs/ s H	  o!" 5       PM     snmU R                  [        T5      S5        g s  snf )Nc                   ,   > \ rS rSr\U 4S j5       rSrg)&ListTest.test_repr_mutate.<locals>.Objx   c                  H   >  T R                  5         g! [         a     gf = f)Nobj)pop
IndexErrormylists   r   __repr__/ListTest.test_repr_mutate.<locals>.Obj.__repr__y   s-    JJL  " s    
!!r   N)r<   r=   r>   r?   staticmethodr   r@   r   s   r   Objr   x   s     r.   r   r   z[obj, obj, obj])r#   r    repr)r)   r   _r   s      @r   test_repr_mutateListTest.test_repr_mutatew   sC    	 	 "'q*A#%*f'89 +s   A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 )Nr   [z, 0])r   r    join)rx   lr   r)   s      r   check'ListTest.test_repr_large.<locals>.check   sC    aAQAQdii	**S02r.   r   i@B r   )r)   r   s   ` r   test_repr_largeListTest.test_repr_large   s    	2
 	b	gr.   c                    U R                  / SQ5      n/ SQn[        [        R                  S-   5       GH  n[	        U5      n[        R
                  " XA4U5      n[        R                  " U5      u  pgX'S S & U R                  [        U5      [        U5      5        U R                  [        U5      U5        [        U5        [        R
                  " XA4U5      n[        R                  " U5      u  pgX'S S & U R                  [        U5      [        U5      5        U R                  [        U5      USS  5        [        S[        U5      5       H  n[        U5        M     [        R
                  " XA4U5      n[        R                  " U5      u  pgX'S S & U R                  [        U5      [        U5      5        U R                  [        U5      U[        U5      S  5        U R                  [        [        U5        [        R
                  " XA4U5      n[        R                  " U5      u  pgX'S S & U R                  [        U5      / 5        GM     g )Nrj   r                  r
   )	type2testr#   pickleHIGHEST_PROTOCOLiterdumpsloadsr    rY   r!   nextrg   r&   StopIteration	r)   origdataprotoitorigditr   is	            r   test_iterator_pickleListTest.test_iterator_pickle   s   ~~l+'622Q67E$ZFf^U3ALLOEBaDT"XtF|4T"Xt, Lf^U3ALLOEBaDT"XtF|4T"XtABx0 1c$i(V )f^U3ALLOEBaDT"XtF|4T"XtCIJ'78 mT6:f^U3ALLOEBaDT"Xr*? 8r.   c                    U R                  / SQ5      n/ SQn[        [        R                  S-   5       GH(  n[	        U5      n[        R
                  " XA4U5      n[        R                  " U5      u  pgX'S S & U R                  [        U5      [        U5      5        U R                  [        U5      U[        U5      S-
  S S2   5        [        U5        [        R
                  " XA4U5      n[        R                  " U5      u  pgX'S S & U R                  [        U5      [        U5      5        U R                  [        U5      U[        U5      S-
  S S2   5        [        S[        U5      5       H  n[        U5        M     [        R
                  " XA4U5      n[        R                  " U5      u  pgX'S S & U R                  [        U5      [        U5      5        U R                  [        U5      / 5        U R                  [        [        U5        [        R
                  " XA4U5      n[        R                  " U5      u  pgX'S S & U R                  [        U5      / 5        GM+     g )Nrj   r   r
   r   )r   r#   r   r   reversedr   r   r    rY   r!   rg   r   r&   r   r   s	            r   test_reversed_pickleListTest.test_reversed_pickle   s   ~~l+'622Q67Ed^Ff^U3ALLOEBaDT"XtF|4T"XtCIaKOO'<= Lf^U3ALLOEBaDT"XtF|4T"XtCIaKOO'<= 1c$i(V )f^U3ALLOEBaDT"XtF|4T"Xr* mT6:f^U3ALLOEBaDT"Xr*? 8r.   c                     / SQnS/USS [         R                  2'   U R                  USS [         R                  2   S/5        g )N)r   r
   r   r   rk   r   r
   r   )r$   r%   r    )r)   r   s     r   test_step_overflowListTest.test_step_overflow   s>    C!.S[[.1>ckk>*QC0r.   c                      " S S[         5      nU R                  [        5         SU" SS/5      -     S S S 5        g ! , (       d  f       g = f)Nc                       \ rS rSrSrg)*ListTest.test_no_comdat_folding.<locals>.L   r   Nr;   r   r.   r   Lr      s    tr.   r   )r   r
   r   )r!   r&   r3   )r)   r   s     r   test_no_comdat_foldingListTest.test_no_comdat_folding   s5     	y)1aU8O *))s	   <
A
c                    ^^^  " U4S jS5      n " U4S jS5      n " U4S jS5      nU" 5       /mU" 5       /mU R                  TT:H  5        U" 5       /mS/nU R                  TU:H  5        g )Nc                   "   > \ rS rSrU 4S jrSrg)9ListTest.test_equal_operator_modifying_operand.<locals>.X   c                 0   > TR                  5         [        $ r   clearNotImplemented)r)   otherlist2s     r   __eq__@ListTest.test_equal_operator_modifying_operand.<locals>.X.__eq__       %%r.   r   Nr<   r=   r>   r?   r   r@   )r   s   r   Xr          & &r.   r   c                   "   > \ rS rSrU 4S jrSrg)9ListTest.test_equal_operator_modifying_operand.<locals>.Y   c                 0   > TR                  5         [        $ r   r   )r)   r   list1s     r   r   @ListTest.test_equal_operator_modifying_operand.<locals>.Y.__eq__   r   r.   r   Nr   )r   s   r   Yr      r   r.   r   c                   "   > \ rS rSrU 4S jrSrg)9ListTest.test_equal_operator_modifying_operand.<locals>.Z   c                 0   > TR                  5         [        $ r   r   )r)   r   list3s     r   r   @ListTest.test_equal_operator_modifying_operand.<locals>.Z.__eq__   r   r.   r   Nr   )r   s   r   Zr      r   r.   r   r
   )r"   assertFalse)r)   r   r   r   list4r   r   r   s        @@@r   %test_equal_operator_modifying_operand.ListTest.test_equal_operator_modifying_operand   sg    	& 	&
	& 	&
	& 	&
 '%(r.   c                      " S S5      nU" 5       //nU R                  [        5         US   U:    S S S 5        g ! , (       d  f       g = f)Nc                       \ rS rSrS rSrg)9ListTest.test_lt_operator_modifying_operand.<locals>.evil   c                 .    UR                  5         [        $ r   r   r)   r   s     r   __lt__@ListTest.test_lt_operator_modifying_operand.<locals>.evil.__lt__   s    %%r.   r   N)r<   r=   r>   r?   r   r@   r   r.   r   evilr          &r.   r   r   )r&   r3   )r)   r   r   s      r   "test_lt_operator_modifying_operand+ListTest.test_lt_operator_modifying_operand   s>    	& 	&
 fXJy)aD1H *))s	   	;
A	c                      " S S5      n[        [        S5      5      nU" U5      nU R                  [        5         X2S S S2'   S S S 5        g ! , (       d  f       g = f)Nc                        \ rS rSrS rS rSrg)7ListTest.test_list_index_modifing_operand.<locals>.evili	  c                     Xl         g r   rw   )r)   rw   s     r   rG   @ListTest.test_list_index_modifing_operand.<locals>.evil.__init__
  s    r.   c              3   l   #    U R                    S h  vN   U R                   R                  5         g  N7fr   )rw   r   r4   s    r   __iter__@ListTest.test_list_index_modifing_operand.<locals>.evil.__iter__  s%     88##  $s   42 4r   N)r<   r=   r>   r?   rG   r   r@   r   r.   r   r   r   	  s    !r.   r   r   r   )r!   r#   r&   
ValueError)r)   r   rw   operands       r    test_list_index_modifing_operand)ListTest.test_list_index_modifing_operand  sI    	! 	! 58ns)z*"I +**s   A
Ac           
         S/S-  n[         R                  " U5      nU R                  U[         R                  " [        S/S-  5      5      5        U R                  U[         R                  " [        [	        S5      5      5      5        g )Nr   r   )r$   	getsizeofr    r!   r#   )r)   iterable	iter_sizes      r   test_preallocationListTest.test_preallocation  s_    38MM(+	CMM$sRx.$ABCMM$uRy/$BCr.   c                   ^  " U4S jS5      nU" 5       /mU R                  [        5         TR                  T5        S S S 5         " S S[        5      nU" U" 5       /5      mTR	                  T5        U" U" 5       /5      mU R                  [        5         TR                  T5        S S S 5        U" 5       U" 5       /mST;     U" 5       U" 5       /mU" 5       T;     g ! , (       d  f       N= f! , (       d  f       NK= f)Nc                   "   > \ rS rSrU 4S jrSrg)3ListTest.test_count_index_remove_crashes.<locals>.Xi!  c                 0   > TR                  5         [        $ r   r   )r)   r   rw   s     r   r   :ListTest.test_count_index_remove_crashes.<locals>.X.__eq__"  s    		%%r.   r   Nr   r   s   r   r   r  !  r   r.   r   c                       \ rS rSrS rSrg)3ListTest.test_count_index_remove_crashes.<locals>.Li*  c                 $    [        U5        [        $ r   )strr   r   s     r   r   :ListTest.test_count_index_remove_crashes.<locals>.L.__eq__+  s    E
%%r.   r   Nr   r   r.   r   r   r  *  r   r.   r   r   )r&   r   indexr!   countremove)r)   r   r   rw   s      @r   test_count_index_remove_crashes(ListTest.test_count_index_remove_crashes  s    	& 	&
 sez*IIcN +	& 	&
 h		#hz*JJsO +
 sACj	SsACj	s
) +* +*s   CC.
C+.
C<c                     [        S5       HG  n/ SQn[        U5      nU H  nM     UR                  S5        U R                  [	        U5      / 5        MI     g )Nd   )r
   r   r   rk   )r#   r   appendr    r!   )r)   r   r   r   s       r   test_tier2_invalidates_iterator(ListTest.test_tier2_invalidates_iterator=  sJ    sAAaB HHQKT"Xr* r.   c                 t    [         R                  " S5      n[        SU5      u  n  nU R                  US5        g )NaJ  
            l = []
            def lappend(l, x, y):
                l.append((x, y))
            for x in range(3):
                lappend(l, None, None)
            try:
                lappend(list, None, None)
            except TypeError:
                pass
            else:
                raise AssertionError
        z-cr   )textwrapdedentr   r    )r)   codercr   s       r   test_deopt_from_append_list$ListTest.test_deopt_from_append_listG  s;         $D$/AqQr.   r   )r<   r=   r>   r?   r!   r   r,   r5   r[   r_   rc   rf   ry   r|   r   r   r   r   r   r   r   r   r   r  r   r  r  r  r"  r@   rM   rN   s   @r   r   r   	   s    I! F&8
&,F 
:"+H"+H1
)2	  D D@+   r.   r   __main__)r$   r  testr   test.supportr   test.support.script_helperr   r   unittest
CommonTestr   r<   mainr   r.   r   <module>r+     sG    
   % 7  P z$$ P d
 zMMO r.   