o
    GXîh–B  ã                   @   sT   	 d dl Z d dlZd dlmZ d dlmZmZ d dlmZm	Z	 G dd„ dej
ƒZ
dS )é    N)Ú
cmp_to_key)ÚsupportÚ	seq_tests)Ú	ALWAYS_EQÚNEVER_EQc                       sô   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Z‡ fd!d"„Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Z‡ fd-d.„Z‡ fd/d0„Zd1d2„ Zd3d4„ Zd5d6„ Z‡  ZS )7Ú
CommonTestc                 C   sž   |   |  g ¡|  ¡ ¡ |  g d¢¡}| ¡  |   ||  g ¡¡ |  g d¢¡}| g d¢¡ |   ||  g d¢¡¡ |  |¡}|  t|ƒt|ƒ¡ |   ||¡ d S )N©é   é   é   )é   é   é   )ÚassertEqualÚ	type2testÚ__init__ZassertNotEqualÚid©ÚselfÚaÚb© r   ú9/opt/python-3.10.19/usr/lib/python3.10/test/list_tests.pyÚ	test_init   s   
zCommonTest.test_initc                 C   sB   g }d}|   t|¡ |d  W d   ƒ d S 1 sw   Y  d S )Nú'list indices must be integers or slicesr   ©ÚassertRaisesRegexÚ	TypeError©r   r   Úmsgr   r   r   Útest_getitem_error"   ó
   
"ÿzCommonTest.test_getitem_errorc                 C   sB   g }d}|   t|¡ d|d< W d   ƒ d S 1 sw   Y  d S )Nr   Úpythonr   r   r   r   r   r   Útest_setitem_error(   r!   zCommonTest.test_setitem_errorc                 C   s´   g }g d¢}|   |¡}|   |¡}|  t|ƒt|ƒ¡ |  t|ƒt|ƒ¡ |  t|ƒt|ƒ¡ |  t|ƒd¡ |  t|ƒd¡ | |¡ | d¡ |  t|ƒd¡ |  t|ƒd¡ d S )N©r   r	   r
   z	[0, 1, 2]r   z[0, 1, 2, [...], 3])r   r   ÚstrÚreprÚappend)r   Zl0Úl2Za0Úa2r   r   r   Ú	test_repr.   s   



zCommonTest.test_reprc                 C   s>   |   g ¡}tt ¡ d ƒD ]}|   |g¡}q|  tt|¡ d S )Néd   )r   ÚrangeÚsysÚgetrecursionlimitÚassertRaisesÚRecursionErrorr&   )r   r   Úir   r   r   Útest_repr_deep?   s   
zCommonTest.test_repr_deepc                 C   s¢   |   tdƒ¡}|  t|jtdddƒg d¢¡ |  t|jtddƒd¡ |  t|jtdddƒddg¡ |  t|jdd¡ g d¢|tdddƒ< |  ||   g d	¢¡¡ d S )
Né   r   é
   r   r	   r
   Úxr   )r   r	   r	   r   r   r
   r   é   r   é	   r4   é   é   é   é   é   é   é   é   é   )	r   r,   r/   Ú
ValueErrorÚ__setitem__Úslicer   Ú__getitem__r   ©r   r   r   r   r   Útest_set_subscriptE   s   zCommonTest.test_set_subscriptc              	   C   sx   |   tdƒ¡}t|ƒ}|  t|ƒ|   tdddƒ¡¡ |  tt|¡ |  tt|   ¡ ƒƒ|   ¡ ¡ |  tt	tg d¢ƒ¡ d S )Nr3   r@   éÿÿÿÿr   )
r   r,   Úreversedr   Úlistr/   ÚStopIterationÚnextr   Úlen)r   r   Úrr   r   r   Útest_reversedP   s   ÿzCommonTest.test_reversedc                 C   sÄ  |   ddg¡}d|d< d|d< |  ||   ddg¡¡ d|d< |  ||   ddg¡¡ d|d< |  ||   ddg¡¡ |  t|jdd¡ |  t|jdd¡ |   g ¡}|  t|jdd¡ |  t|jdd¡ |  t|j¡ |   g d	¢¡}d|d< d|d< d
|d< |  ||   g d¢¡¡ d|d< d|d< d|d< |  ||   g d¢¡¡ d|d< d|d< |  ||   g d¢¡¡ d|d< d|d< |  ||   g d¢¡¡ d}|  t|¡ d|d< W d   ƒ d S 1 sÛw   Y  d S )Nr   r	   r+   éÈ   rG   éþÿÿÿéýÿÿÿr
   ©r   r	   r
   r   r   r   )r	   r
   r   r   r   r   r   r6   )r   r   r6   r   r   éX   éc   )r   r   r6   rS   rT   é   r7   )r   r   r6   rU   r7   r   r"   r   )r   r   r/   Ú
IndexErrorrB   r   r   r   r   r   r   Útest_setitemZ   sB   

"ÿzCommonTest.test_setitemc                 C   sÂ   |   ddg¡}|d= |  |dg¡ |d= |  |g ¡ |   ddg¡}|d= |  |dg¡ |d= |  |g ¡ |   ddg¡}|  t|jd¡ |  t|jd¡ |   g ¡}|  t|jd¡ |  t|j¡ d S )Nr   r	   rP   rG   rQ   r
   )r   r   r/   rV   Ú__delitem__r   rE   r   r   r   Útest_delitem   s    
zCommonTest.test_delitemc                 C   sH  ddg}|   |¡}tddƒD ]|}|d |… |d |…< |  ||¡ |d d … }|d |… |d |…< |  ||¡ ||d … ||d …< |  ||¡ |d d … }||d … ||d …< |  ||¡ tddƒD ](}|||… |||…< |  ||¡ |d d … }|||… |||…< |  ||¡ qaq|d d … }ddg|d d…< |  |g d¢¡ g |dd …< |  |g ¡ |   g d¢¡}||d d…< |  ||   g d	¢¡¡ |   g d¢¡}||dd …< |  ||   g d
¢¡¡ |   g d¢¡}||dd…< |  ||   g d¢¡¡ |   g ¡}ttdƒƒ|d d …< |  ||   tdƒ¡¡ |  t|jtdddƒ¡ |  t|j¡ d S )Nr   r	   rQ   r   rP   rG   )rP   rG   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   r4   r   )r   r,   r   Útupler/   r   rB   rC   )r   Úlr   r1   r)   ÚjZaa2r   r   r   Útest_setslice•   sN   
û
zCommonTest.test_setslicec                 C   s®  |   ddg¡}|dd…= |dd…= |  ||   g ¡¡ |   ddg¡}|dd…= |dd…= |  ||   g ¡¡ |   ddg¡}|dd…= |  ||   dg¡¡ |   ddg¡}|dd…= |  ||   dg¡¡ |   ddg¡}|dd …= |d d…= |  ||   g ¡¡ |   ddg¡}|dd …= |d d…= |  ||   g ¡¡ |   ddg¡}|dd …= |  ||   dg¡¡ |   ddg¡}|dd …= |  ||   dg¡¡ |   ddg¡}|d d …= |  ||   g ¡¡ d S )Nr   r	   r
   rP   rG   )r   r   rE   r   r   r   Útest_delsliceÃ   s>   












zCommonTest.test_delslicec                 C   sP   |   g ¡}| d¡ | d¡ | d¡ |  ||   g d¢¡¡ |  t|j¡ d S )Nr   r	   r
   r$   )r   r'   r   r/   r   rE   r   r   r   Útest_appendì   s   



zCommonTest.test_appendc                 C   sú   |   dg¡}|   d¡}|d d … }| |¡ |  ||| ¡ | |   g ¡¡ |  ||| ¡ | |¡ |  ||   g d¢¡¡ |   d¡}| d¡ |  |tdƒ¡ |  t|jd ¡ |  t|j¡ G dd„ dƒ}|   g d	¢¡}| |ƒ ¡ |  |g d	¢¡ d S )
Nr   )r   r	   )r   r   r	   r   r   r	   ÚspamÚeggsÚspameggsc                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )z*CommonTest.test_extend.<locals>.CustomIterc                 S   s   | S ©Nr   ©r   r   r   r   Ú__iter__  ó   z3CommonTest.test_extend.<locals>.CustomIter.__iter__c                 S   ó   t ‚rc   )rJ   rd   r   r   r   Ú__next__  rf   z3CommonTest.test_extend.<locals>.CustomIter.__next__c                 S   s   t jS rc   )r-   Úmaxsizerd   r   r   r   Ú__length_hint__  ó   z:CommonTest.test_extend.<locals>.CustomIter.__length_hint__N)Ú__name__Ú
__module__Ú__qualname__re   rh   rj   r   r   r   r   Ú
CustomIter
  s    ro   )r	   r
   r   r   )r   Úextendr   rI   r/   r   )r   Za1r)   r   ro   r   r   r   Útest_extendõ   s$   




zCommonTest.test_extendc                 C   sš   |   g d¢¡}| dd¡ | dd¡ | dd¡ |  |g d¢¡ |d d … }| dd¡ | d	d
¡ | dd¡ |  ||   g d¢¡¡ |  t|j¡ d S )Nr$   r   rP   r	   rG   r
   ©rP   rG   r   r   r	   r
   Úfooi8ÿÿÿÚleftrO   Úright)	rt   rP   rG   r   r   rs   r	   r
   ru   )r   Úinsertr   r/   r   r   r   r   r   Útest_insert  s   zCommonTest.test_insertc                 C   s–   |   g d¢¡}| ¡  |  |ddg¡ | d¡ |  |dg¡ |  t|jd¡ | d¡ |  |g ¡ |  t|j¡ |  t|jdd¡ |   g d¢¡}d S )N)rG   r   r	   rG   r   r   é*   )r   r4   r3   é   é(   )r   Úpopr   r/   rV   r   rE   r   r   r   Útest_pop%  s   

zCommonTest.test_popc                    s&  |   g d¢¡}| d¡ |  |ddg¡ | d¡ |  |dg¡ | d¡ |  |g ¡ |  t|jd¡ |  t|j¡ |   ddg¡}|  t|jt¡ |  |ddg¡ | t¡ |  |dg¡ |   tg¡}| d¡ |  |g ¡ |   tg¡}| t¡ |  |g ¡ |   tg¡}|  t|jt¡ G dd„ dtƒ‰ G ‡ fdd„dƒ}|   g d	¢¡}|  ˆ |j|ƒ ¡ G ‡ fd
d„dƒ}|   d¡}| d¡ |  ||   d¡¡ | d¡ |  ||   d¡¡ |  t|jd¡ |  ||   d¡¡ |   dd|ƒ dg¡}|   |¡}|  ˆ |jd¡ t	||ƒD ]\}}|  
||¡ qd S )N)r   r   r	   r	   r   r
   c                   @   s   e Zd ZdS )z&CommonTest.test_remove.<locals>.BadExcN)rl   rm   rn   r   r   r   r   ÚBadExcM  s    r}   c                       ó   e Zd Z‡ fdd„ZdS )z&CommonTest.test_remove.<locals>.BadCmpc                    s   |dkrˆ ƒ ‚dS )Nr
   Fr   ©r   Úother©r}   r   r   Ú__eq__Q  s   z-CommonTest.test_remove.<locals>.BadCmp.__eq__N©rl   rm   rn   r‚   r   r   r   r   ÚBadCmpP  ó    r„   )r   r	   r
   r   c                       r~   )z'CommonTest.test_remove.<locals>.BadCmp2c                    s   ˆ ƒ ‚rc   r   r   r   r   r   r‚   Z  rk   z.CommonTest.test_remove.<locals>.BadCmp2.__eq__Nrƒ   r   r   r   r   ÚBadCmp2Y  r…   r†   ZabcdefghcijÚcZ
abdefghcijZ	abdefghijr   r   )r   Úremover   r/   rA   r   r   r   Ú	ExceptionÚzipÚassertIs)r   r   r„   r†   ÚdÚer5   Úyr   r   r   Útest_remove2  sP   









þzCommonTest.test_removec                    s–   t ƒ  ¡  |  g d¢¡‰ˆ d¡ |  tˆjddd¡ |  ˆ|  g d¢¡¡ G dd„ dƒ‰ |  ¡ ‰‡ ‡fdd	„td
ƒD ƒˆd d …< |  tˆjd ¡ d S )Nrr   r   r
   r   ©rP   rG   r   r	   r
   c                   @   s   e Zd Zdd„ Zdd„ ZdS )z&CommonTest.test_index.<locals>.EvilCmpc                 S   s
   || _ d S rc   ©Úvictim)r   r’   r   r   r   r   v  s   
z/CommonTest.test_index.<locals>.EvilCmp.__init__c                 S   s   | j d d …= dS )NFr‘   r   r   r   r   r‚   x  s   z-CommonTest.test_index.<locals>.EvilCmp.__eq__N)rl   rm   rn   r   r‚   r   r   r   r   ÚEvilCmpu  s    r“   c                    s   g | ]}ˆ ˆƒ‘qS r   r   )Ú.0Ú_©r“   r   r   r   Ú
<listcomp>|  s    z)CommonTest.test_index.<locals>.<listcomp>r+   )	ÚsuperÚ
test_indexr   rˆ   r/   rA   Úindexr   r,   rd   ©Ú	__class__r–   r   r™   m  s   

 zCommonTest.test_indexc                 C   sZ   |   g d¢¡}|d d … }| ¡  |  |g d¢¡ | ¡  |  ||¡ |  t|jd¡ d S )Nr   ©r
   r	   r   rG   rP   rx   )r   Úreverser   r/   r   ©r   ÚuÚu2r   r   r   Útest_reverse€  s   zCommonTest.test_reversec                 C   sˆ   |   g d¢¡}| ¡  |  |g ¡ |   g ¡}| ¡  |  |g ¡ |   g ¡}| d¡ | ¡  | d¡ |  |dg¡ |  t|jd ¡ d S )N)r
   r   r   r	   r
   )r   Úclearr   r'   r/   r   ©r   r    r   r   r   Ú
test_clearŠ  s   



zCommonTest.test_clearc                 C   sØ   |   g d¢¡}| ¡ }|  |g d¢¡ |   g ¡}| ¡ }|  |g ¡ |   ddg¡}| ¡ }| d¡ |  |ddg¡ |  ||dg ¡ |   ddddgd	g¡}| ¡ }|  ||¡ |  |d |d ¡ |  t|jd ¡ d S )
Nr   r   r   r1   r	   r
   r   r   r   )r   Úcopyr   r'   r‹   r/   r   )r   r    Úvr   r   r   Ú	test_copy›  s    

zCommonTest.test_copyc                    s  |   ddg¡}| ¡  |  |ddg¡ |   g d¢¡}| ¡  |  ||   g d¢¡¡ |  t|jdd¡ dd„ }|jt|ƒd |  ||   g d¢¡¡ d	d
„ }|   tdƒ¡‰ ˆ jt|ƒd |  tˆ jd¡ ‡ fdd„}| jtˆ jt|ƒd |  tˆ jdddd¡ d S )Nr	   r   r   r   rx   c                 S   s   | |krdS | |k rdS dS )Nr   r	   rG   r   )r   r   r   r   r   Úrevcmp¾  s
   z$CommonTest.test_sort.<locals>.revcmp)Úkeyc                 S   s.   | d |d }}||krdS ||k rdS dS )Nr   r6   r   rG   r	   r   )r5   rŽ   ZxmodZymodr   r   r   ÚmyComparisonÉ  s   z*CommonTest.test_sort.<locals>.myComparisonr9   r
   c                    s&   ˆ   d¡ | |krdS | |k rdS dS )Nr	   r   rG   )r'   )r5   rŽ   ©Úzr   r   ÚselfmodifyingComparisonÖ  s   
z5CommonTest.test_sort.<locals>.selfmodifyingComparison)r   Úsortr   r/   r   r   r,   rA   )r   r    r©   r«   r®   r   r¬   r   Ú	test_sort³  s&   
ÿzCommonTest.test_sortc                 C   s*   |   d¡}d|d d…< |  |tdƒ¡ d S )Nr`   Úhr
   Zham)r   r   rI   r¤   r   r   r   Ú
test_sliceã  s   
zCommonTest.test_slicec                    sl   t ƒ  ¡  |  ddg¡}|}|ddg7 }|  ||¡ |  d¡}|d7 }|  ||  d¡¡ |  t|jd ¡ d S )Nr   r	   r
   r   r`   ra   rb   )r˜   Ú	test_iaddr   r‹   r   r/   r   Ú__iadd__rŸ   r›   r   r   r³   è  s   

zCommonTest.test_iaddc                    s8   t ƒ  ¡  |  g ¡}t|ƒ}|d9 }|  t|ƒ|¡ d S )Nr4   )r˜   Ú	test_imulr   r   r   )r   ÚsZoldidr›   r   r   rµ   õ  s
   

zCommonTest.test_imulc                 C   s@  |   g d¢¡}|d d d…= |  ||   ddg¡¡ |   tdƒ¡}|dd d…= |  ||   g d¢¡¡ |   tdƒ¡}|dd d…= |  ||   g d¢¡¡ |   td	ƒ¡}|d d d
…= |  ||   g d¢¡¡ |   td	ƒ¡}dgd |d d d…< |  ||   g d¢¡¡ |   td	ƒ¡}d	gd |d d d…< |  ||   g d¢¡¡ |   tdƒ¡}||d d d…< |  ||   g d¢¡¡ |   td	ƒ¡}|d d … }|d d … }|   ddg¡|dd…< |   ddg¡|tddƒ< |   ddg¡|dd…< |  ||¡ |  ||¡ |   td	ƒ¡}ttdƒƒ|d d d…< |  ||   g d¢¡¡ |   td	ƒ¡}|dd dd> …= d S )NrR   r
   r	   r   r   )r   r
   r   rP   )r   r
   r   r   r4   iè  )	r	   r
   r   r   r   r   r6   rU   r7   rG   )
rG   r	   rG   r   rG   r   rG   r6   rG   r7   éüÿÿÿ)
r   r4   r
   r   r   r4   r   r6   rU   r4   r   )r   r
   r	   r   ZtwoÚelements)
r   r	   r	   r   r
   r   r   r6   r   r7   r7   iM  )r   r   r,   rC   rZ   )r   r   r   r‡   r   r   r   Útest_extendedslicingü  sD   zCommonTest.test_extendedslicingc                 C   s$   G dd„ dt ƒ}|  tt|ƒ ¡ d S )Nc                   @   s   e Zd Zdd„ ZdS )z9CommonTest.test_constructor_exception_handling.<locals>.Fc                 S   rg   rc   )ÚKeyboardInterruptrd   r   r   r   re   (  rf   zBCommonTest.test_constructor_exception_handling.<locals>.F.__iter__N)rl   rm   rn   re   r   r   r   r   ÚF'  s    r»   )Úobjectr/   rº   rI   )r   r»   r   r   r   Ú#test_constructor_exception_handling%  s   z.CommonTest.test_constructor_exception_handlingc                 C   sv   |   g d¢¡}t|ƒ}t|ƒ}|D ]}t|ƒ q| d¡ |  t|ƒg ¡ |  t|ƒdg¡ |  ||   g d¢¡¡ d S )Nr   r7   )r	   r
   r   r7   )r   ÚiterrK   r'   r   rI   )r   r   ZexhitZempitr5   r   r   r   Útest_exhausted_iterator,  s   

z"CommonTest.test_exhausted_iterator)rl   rm   rn   r   r    r#   r*   r2   rF   rN   rW   rY   r]   r^   r_   rq   rw   r|   r   r™   r¢   r¥   r¨   r°   r²   r³   rµ   r¹   r½   r¿   Ú__classcell__r   r   r›   r   r      s8    
%.)	!;
0)r   )r-   ÚosÚ	functoolsr   Útestr   r   Ztest.supportr   r   r   r   r   r   r   Ú<module>   s    