
    <e#                         d dl Z d dlmZ d dlmZ d dlZd dlZ G d dej                  Ze	dk    r ej
                     dS dS )    N)
list_tests)cpython_onlyc                        e Zd ZeZd Zd Zd Z fdZd Z	 fdZ
d Zd Zd	 Zd
 Zd Zd Zd Zd Zed             Zd Z xZS )ListTestc                 h   |                      t          g           g            g d}t          |          }|                      ||           |                     ||u           |                      t          d          g            |                      t          d          g d           |                      t          d          g            |                      t          d          g d           |                      t          d t          d          D                       g d           t          j        d	k    r;|                     t          t          t          t          j        d
z                       g }|                    d |D                        |                      |g            d S )N)r              spam)spamc              3   $   K   | ]}|d z  |V  dS )r	   Nr   ).0xs     %/usr/lib/python3.11/test/test_list.py	<genexpr>z&ListTest.test_basic.<locals>.<genexpr>   s+      <<Aa!e<a<<<<<<    
   )r   r
         	   ir	   c              3      K   | ]}| V  d S Nr   )r   ys     r   r   z&ListTest.test_basic.<locals>.<genexpr>*   s      !r   )	assertEquallist
assertTruerangesysmaxsizeassertRaisesMemoryErrorextend)selfl0_3l0_3_bisr   s       r   
test_basiczListTest.test_basic
   s   b2&&&||::x(((H,---b2&&&l++\\\:::b2&&&f';';';<<<<<r<<<<<(	* 	* 	* ;*$$ k4s{a7G1H1HIII 	QBr   c                     |                      t          d          5  t          g            d d d            d S # 1 swxY w Y   d S )Nzkeyword argumentsequence)assertRaisesRegex	TypeErrorr    r(   s    r   test_keyword_argszListTest.test_keyword_args-   s    ##I/ABB 	 	"	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   :>>c                 f    G d dt                     } |ddg          }|                     t          |          |           |                     t          |          ddg           |                     t
                    5   |d           d d d            n# 1 swxY w Y    G d dt                     } |ddgd	
          }|                     t          |          |           |                     t          |          ddg           |                     |j        d	            G d dt                     } |ddgd	
          }|                     t          |          |           |                     t          |          ddg           |                     |j        d	           d S )Nc                       e Zd ZdS )4ListTest.test_keywords_in_subclass.<locals>.subclassN__name__
__module____qualname__r   r   r   subclassr5   2   s        Dr   r:   r   r	   r   r-   c                         e Zd Zd fd	Z xZS )>ListTest.test_keywords_in_subclass.<locals>.subclass_with_initNc                 X    t                                          |           || _        d S r   )super__init__newarg)r(   seqr@   	__class__s      r   r?   zGListTest.test_keywords_in_subclass.<locals>.subclass_with_init.__init__;   s&      %%%$r   r   )r7   r8   r9   r?   __classcell__rB   s   @r   subclass_with_initr<   :   s=        % % % % % % % % % %r   rE   r
   )r@   c                         e Zd Zd fd	Z xZS )=ListTest.test_keywords_in_subclass.<locals>.subclass_with_newNc                 Z    t                                          | |          }||_        |S r   )r>   __new__r@   )clsrA   r@   r(   rB   s       r   rI   zEListTest.test_keywords_in_subclass.<locals>.subclass_with_new.__new__D   s&    wwsC00$r   r   )r7   r8   r9   rI   rC   rD   s   @r   subclass_with_newrG   C   s=                 r   rK   )r    assertIstyper   r%   r0   r@   )r(   r:   urE   rK   s        r   test_keywords_in_subclassz"ListTest.test_keywords_in_subclass1   s+   	 	 	 	 	t 	 	 	HaVd1ggx(((a1a&)))y)) 	" 	"Hb!!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"	% 	% 	% 	% 	% 	% 	% 	% 1va000d1gg1222a1a&)))1%%%	 	 	 	 	 	 	 	
 q!fQ///d1gg0111a1a&)))1%%%%%s   BB #B c                     t                                                       |                     g             |                     dg           d S )N*   )r>   
test_truthr!   r(   rB   s    r   rR   zListTest.test_truthM   sG    Br   c                 4    |                      g g u           d S r   )r!   r1   s    r   test_identityzListTest.test_identityR   s    "%%%%%r   c                     t                                                       |                     t          g           d           |                     t          dg          d           |                     t          g d          d           d S )Nr   r   )r   r   r	   r
   )r>   test_lenr   lenrS   s    r   rW   zListTest.test_lenU   sy    R!$$$aS1%%%YYY+++++r   c                    g d}t          t          j        dz  dz   t          |          z            }d }d }|                     t
          t          f|||           |                     t
          t          f|||           d S )N   r      r   r	   c                     | |z  S r   r   r   bs     r   mulz#ListTest.test_overflow.<locals>.mul^   s
    a!e|r   c                     | |z  } d S r   r   r^   s     r   imulz$ListTest.test_overflow.<locals>.imul_   s    Qr   )intr#   r$   rX   r%   r&   OverflowError)r(   lstnr`   rb   s        r   test_overflowzListTest.test_overflow[   s    llQqSXX-..###;6S!DDD;6c1EEEEEr   c                    dgdz  }|dd = |                      t          |          d           dt          j        dz  z  dz
  dz  }|                     t
          t          f          5  ||z   d d d            n# 1 swxY w Y   |                     t
          t          f          5  ||z  }d d d            d S # 1 swxY w Y   d S )Nr   A   r   r	      )r   rX   tuple__itemsize__r%   r&   rd   )r(   re   sizes      r   test_list_resize_overflowz"ListTest.test_list_resize_overflowc   sO    cBhGS1%%%u)A-.2q8];<< 	 	$JJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	];<< 	 	4KC	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s$   (A::A>A>&B99B= B=c                 >      fd} |d            |d           d S )Nc                     dg| z  }t          |          }                    |dd                    dg| z            z   dz              d S )Nr   [z, 0])reprr   join)rf   lr   r(   s      r   checkz'ListTest.test_repr_large.<locals>.checkr   s\    aAQAQdii	***S02 2 2 2 2r   r   i@B r   )r(   rw   s   ` r   test_repr_largezListTest.test_repr_largep   s<    	2 	2 	2 	2 	2
 	b			gr   c                 t   |                      g d          }g d}t          t          j        dz             D ]~}t	          |          }t          j        ||f|          }t          j        |          \  }}||d d <   |                     t          |          t          |                     |                     t          |          |           t          |           t          j        ||f|          }t          j        |          \  }}||d d <   |                     t          |          t          |                     |                     t          |          |dd                     t          dt          |                    D ]}t          |           t          j        ||f|          }t          j        |          \  }}||d d <   |                     t          |          t          |                     |                     t          |          |t          |          d                     |                     t          t          |           t          j        ||f|          }t          j        |          \  }}||d d <   |                     t          |          g            d S )NrZ   r                  r   )	type2testr"   pickleHIGHEST_PROTOCOLiterdumpsloadsr   rM   r    nextrX   r%   StopIteration	r(   origdataprotoitorigditr   is	            r   test_iterator_picklezListTest.test_iterator_picklez   sg   ~~lll++'''62Q677 	+ 	+E$ZZFfd^U33ALOOEBAaaaDT"XXtF||444T"XXt,,, LLLfd^U33ALOOEBAaaaDT"XXtF||444T"XXtABBx000 1c$ii((  Vfd^U33ALOOEBAaaaDT"XXtF||444T"XXtCIIJJ'7888 mT6:::fd^U33ALOOEBAaaaDT"XXr****?	+ 	+r   c                    |                      g d          }g d}t          t          j        dz             D ]}t	          |          }t          j        ||f|          }t          j        |          \  }}||d d <   |                     t          |          t          |                     |                     t          |          |t          |          dz
  d d                    t          |           t          j        ||f|          }t          j        |          \  }}||d d <   |                     t          |          t          |                     |                     t          |          |t          |          dz
  d d                    t          dt          |                    D ]}t          |           t          j        ||f|          }t          j        |          \  }}||d d <   |                     t          |          t          |                     |                     t          |          g            |                     t          t          |           t          j        ||f|          }t          j        |          \  }}||d d <   |                     t          |          g            d S )NrZ   rz   r   r	   )r   r"   r   r   reversedr   r   r   rM   r    rX   r   r%   r   r   s	            r   test_reversed_picklezListTest.test_reversed_pickle   sz   ~~lll++'''62Q677 	+ 	+Ed^^Ffd^U33ALOOEBAaaaDT"XXtF||444T"XXtCIIaKOO'<=== LLLfd^U33ALOOEBAaaaDT"XXtF||444T"XXtCIIaKOO'<=== 1c$ii((  Vfd^U33ALOOEBAaaaDT"XXtF||444T"XXr*** mT6:::fd^U33ALOOEBAaaaDT"XXr****?	+ 	+r   c                     g d}dg|dd t           j        <   |                     |dd t           j                 dg           d S )N)r   r   r	   r
   r[   r   r   r
   )r#   r$   r   )r(   r   s     r   test_step_overflowzListTest.test_step_overflow   sJ    OOC!.S[.1>ck>*QC00000r   c                      G d dt                     }|                     t                    5  d |ddg          z    d d d            d S # 1 swxY w Y   d S )Nc                       e Zd ZdS )*ListTest.test_no_comdat_folding.<locals>.LNr6   r   r   r   Lr      s          r   r   )r
   r   r	   )r    r%   r0   )r(   r   s     r   test_no_comdat_foldingzListTest.test_no_comdat_folding   s     	y)) 	 	11aU88OO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAc                     G fdd          } G fdd          } G fdd          } |            g |            g|                      k                |            gdg}|                     |k               d S )Nc                       e Zd Z fdZdS )9ListTest.test_equal_operator_modifying_operand.<locals>.Xc                 :                                      t          S r   clearNotImplemented)r(   otherlist2s     r   __eq__z@ListTest.test_equal_operator_modifying_operand.<locals>.X.__eq__       %%r   Nr7   r8   r9   r   )r   s   r   Xr      .        & & & & & & &r   r   c                       e Zd Z fdZdS )9ListTest.test_equal_operator_modifying_operand.<locals>.Yc                 :                                      t          S r   r   )r(   r   list1s     r   r   z@ListTest.test_equal_operator_modifying_operand.<locals>.Y.__eq__   r   r   Nr   )r   s   r   Yr      r   r   r   c                       e Zd Z fdZdS )9ListTest.test_equal_operator_modifying_operand.<locals>.Zc                 :                                      t          S r   r   )r(   r   list3s     r   r   z@ListTest.test_equal_operator_modifying_operand.<locals>.Z.__eq__   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_operandz.ListTest.test_equal_operator_modifying_operand   s    	& 	& 	& 	& 	& 	& 	& 	& 	& 	&
	& 	& 	& 	& 	& 	& 	& 	& 	& 	&
	& 	& 	& 	& 	& 	& 	& 	& 	& 	&
 '''%(((((r   c           
      0   dgdz  }t          j        |          }|                     |t          j        t          dgdz                                 |                     |t          j        t          t	          d                                         d S )Nr   r   )r#   	getsizeofr   r    r"   )r(   iterable	iter_sizes      r   test_preallocationzListTest.test_preallocation   sz    38M(++	CM$sRx..$A$ABBBCM$uRyy//$B$BCCCCCr   c                 h    G fdd          } |            g|                      t                    5                                 d d d            n# 1 swxY w Y    G d dt                    } | |            g                                          | |            g          |                      t                    5                                 d d d            n# 1 swxY w Y    |             |            gdv   |             |            g |            v  d S )Nc                       e Zd Z fdZdS )3ListTest.test_count_index_remove_crashes.<locals>.Xc                 :                                      t          S r   r   )r(   r   re   s     r   r   z:ListTest.test_count_index_remove_crashes.<locals>.X.__eq__   s    		%%r   Nr   )re   s   r   r   r      r   r   r   c                       e Zd Zd ZdS )3ListTest.test_count_index_remove_crashes.<locals>.Lc                 .    t          |           t          S r   )strr   )r(   r   s     r   r   z:ListTest.test_count_index_remove_crashes.<locals>.L.__eq__   s    E


%%r   Nr   r   r   r   r   r      s#        & & & & &r   r   r
   )r%   
ValueErrorindexr    countremove)r(   r   r   re   s      @r   test_count_index_remove_crashesz(ListTest.test_count_index_remove_crashes   s   	& 	& 	& 	& 	& 	& 	& 	& 	& 	&
 qssez** 	 	IIcNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 		& 	& 	& 	& 	& 	& 	& 	&
 ahh		#ahhz** 	 	JJsOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 qssAACCj	SqssAACCj	s



s#   AAAC//C36C3)r7   r8   r9   r    r   r+   r2   rO   rR   rU   rW   rg   rn   rx   r   r   r   r   r   r   r   r   rC   rD   s   @r   r   r      s=       I!  !  ! F  & & &8    
& & &, , , , ,F F F    "+ "+ "+H"+ "+ "+H1 1 1
  ) ) )2 D D \D      r   r   __main__)r#   testr   test.supportr   r   unittest
CommonTestr   r7   mainr   r   r   <module>r      s    



       % % % % % %  G G G G Gz$ G G GT zHMOOOOO r   