o
    GXîhz;  ã                   @   sê   	 d dl Z d dlZd dlZd dlmZ d dlmZmZ dd„ ZG dd„ dƒZ	G dd	„ d	ƒZ
G d
d„ dƒZG dd„ dƒZG dd„ dƒZG dd„ dƒZG dd„ dƒZd dlmZ dd„ ZG dd„ deƒZG dd„ deƒZG dd„ de jƒZdS )é    N)Úsupport)Ú	ALWAYS_EQÚNEVER_EQc                 c   s    	 | D ]}|V  qd S ©N© ©ÚseqnÚir   r   ú8/opt/python-3.10.19/usr/lib/python3.10/test/seq_tests.pyÚiterfunc   s
   €ÿr   c                   @   ó   e Zd Z	 dd„ Zdd„ ZdS )ÚSequencec                 C   ó
   || _ d S r   ©r   ©Úselfr   r   r   r
   Ú__init__   ó   
zSequence.__init__c                 C   ó
   | j | S r   r   ©r   r	   r   r   r
   Ú__getitem__   r   zSequence.__getitem__N)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   r
   r      s    r   c                   @   ó&   e Zd Z	 dd„ Zdd„ Zdd„ ZdS )ÚIterFuncc                 C   ó   || _ d| _d S ©Nr   r   r   r   r   r
   r      ó   
zIterFunc.__init__c                 C   ó   | S r   r   ©r   r   r   r
   Ú__iter__   ó   zIterFunc.__iter__c                 C   ó2   | j t| jƒkr
t‚| j| j  }|  j d7  _ |S ©Né   ©r	   Úlenr   ÚStopIteration©r   Úvr   r   r
   Ú__next__    ó   zIterFunc.__next__N©r   r   r   r   r!   r+   r   r   r   r
   r      ó
    r   c                   @   r   )ÚIterGenc                 C   r   r   r   r   r   r   r
   r   (   r   zIterGen.__init__c                 c   s    | j D ]}|V  qd S r   r   )r   Úvalr   r   r
   r!   +   s   €
ÿzIterGen.__iter__N©r   r   r   r   r!   r   r   r   r
   r/   &   ó    r/   c                   @   r   )ÚIterNextOnlyc                 C   r   r   r   r   r   r   r
   r   1   r   zIterNextOnly.__init__c                 C   r#   r$   r&   r)   r   r   r
   r+   4   r,   zIterNextOnly.__next__N)r   r   r   r   r+   r   r   r   r
   r3   /   r2   r3   c                   @   r   )Ú
IterNoNextc                 C   r   r   r   r   r   r   r
   r   <   r   zIterNoNext.__init__c                 C   r   r   r   r    r   r   r
   r!   ?   r"   zIterNoNext.__iter__Nr1   r   r   r   r
   r4   :   r2   r4   c                   @   r   )Ú
IterGenExcc                 C   r   r   r   r   r   r   r
   r   D   r   zIterGenExc.__init__c                 C   r   r   r   r    r   r   r
   r!   G   r"   zIterGenExc.__iter__c                 C   s   dd  d S )Né   r   r   r    r   r   r
   r+   I   ó   zIterGenExc.__next__Nr-   r   r   r   r
   r5   B   r.   r5   c                   @   r   )ÚIterFuncStopc                 C   s   d S r   r   r   r   r   r
   r   N   r"   zIterFuncStop.__init__c                 C   r   r   r   r    r   r   r
   r!   P   r"   zIterFuncStop.__iter__c                 C   s   t ‚r   )r(   r    r   r   r
   r+   R   r"   zIterFuncStop.__next__Nr-   r   r   r   r
   r8   L   s
    r8   )Úchainc                 C   s    	 t tdd„ ttt| ƒƒƒƒƒS )Nc                 S   r   r   r   )Úxr   r   r
   Ú<lambda>X   s    zitermulti.<locals>.<lambda>)r9   Úmapr   r/   r   r   r   r   r
   Ú	itermultiV   s   r=   c                   @   ó   e Zd Zdd„ ZdS )Ú
LyingTuplec                 c   ó    dV  d S r$   r   r    r   r   r
   r!   [   ó   €
zLyingTuple.__iter__N©r   r   r   r!   r   r   r   r
   r?   Z   ó    r?   c                   @   r>   )Ú	LyingListc                 c   r@   r$   r   r    r   r   r
   r!   _   rA   zLyingList.__iter__NrB   r   r   r   r
   rD   ^   rC   rD   c                   @   s°   e Zd 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d"d#„ Zd$d%„ Zd&d'„ Zd(d)„ ZdS )*Ú
CommonTestNc                 C   sÌ  g }dg}ddg}|   ¡ }|   |¡}|   |¡}|   |¡}|   |¡}|   |¡}	|   |¡}
|   |¡}|   t|ƒ¡}G dd„ dƒ}||ƒ}|   |¡}|  t|ƒt|ƒ¡ d}|   |¡}|  t|ƒt|ƒ¡ ddtdƒd	td
ddƒfD ]V}ttttt	fD ]}|  |   ||ƒ¡|   |¡¡ qx|  |   t
|ƒ¡|   ¡ ¡ |  |   dd„ dD ƒ¡|   d¡¡ |  t| j t|ƒ¡ |  t| j t|ƒ¡ |  t| j t|ƒ¡ qo|  |   tdƒ¡|   d¡¡ |  |   tdgƒ¡|   dg¡¡ d S )Nr   r%   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )z.CommonTest.test_constructors.<locals>.OtherSeqc                 S   r   r   ©Ú_OtherSeq__data)r   Zinitseqr   r   r
   r   w   r   z7CommonTest.test_constructors.<locals>.OtherSeq.__init__c                 S   s
   t | jƒS r   )r'   rG   r    r   r   r
   Ú__len__y   r   z6CommonTest.test_constructors.<locals>.OtherSeq.__len__c                 S   r   r   rF   r   r   r   r
   r   {   r   z:CommonTest.test_constructors.<locals>.OtherSeq.__getitem__N)r   r   r   r   rH   r   r   r   r   r
   ÚOtherSeqv   s    rI   zthis is also a sequenceZ123Ú éè  )Zdog333333ó?iÐ  i˜  é   c                 s   s    | ]}|V  qd S r   r   )Ú.0Úcr   r   r
   Ú	<genexpr>‹   s   € z/CommonTest.test_constructors.<locals>.<genexpr>)é   )r%   rP   )Ú	type2testÚtupleÚassertEqualr'   Úranger   r   r/   r=   r   r8   ÚassertRaisesÚ	TypeErrorr3   r4   ÚZeroDivisionErrorr5   r?   rD   )r   Zl0Úl1Úl2ÚuZu0Úu1Úu2ÚuuZuu0Zuu1Zuu2r*   rI   ÚsZv0ZvvÚgr   r   r
   Útest_constructorsf   s>   








ÿ"$zCommonTest.test_constructorsc                 C   s$   |   |  ¡ ¡ |  |  dg¡¡ d S )Né*   )ZassertFalserQ   Z
assertTruer    r   r   r
   Ú
test_truth”   s   zCommonTest.test_truthc                 C   s|  |   g d¢¡}tt|ƒƒD ]}|  || |¡ |  |t|ƒ |¡ qtt|ƒ dƒD ]}|  || t|ƒ| ¡ |  |t|ƒ t|ƒ| ¡ q*|  t|jt|ƒ d ¡ |  t|jt|ƒ¡ |  t|jt	dddƒ¡ |   ¡ }|  t|jd¡ |  t|jd¡ |  t
|j¡ |   ddg¡}|  |d d¡ |  |d d¡ |  |d d¡ |  |d d¡ |  t|jd¡ |  t|jd	¡ d S )
N©r   r%   rP   r6   é   éÿÿÿÿr%   r   é
   é   éþÿÿÿéýÿÿÿr6   )rQ   rT   r'   rS   ÚintrU   Ú
IndexErrorr   Ú
ValueErrorÚslicerV   )r   rZ   r	   Úar   r   r
   Útest_getitem˜   s*   zCommonTest.test_getitemc                 C   s0  g d¢}|   |¡}|  |dd… |   ¡ ¡ |  |dd… |   dg¡¡ |  |dd… |   dg¡¡ |  |dd	… |¡ |  |d	d… |   g ¡¡ |  |d d … |¡ |  |dd … |   g d
¢¡¡ |  |d d… |   g d¢¡¡ |  |d d … |¡ |  |d d d… |   g d¢¡¡ |  |dd d… |   ddg¡¡ |  |d d d… |   g d¢¡¡ |  |d d d… |   g d¢¡¡ |  |dd d… |   ddg¡¡ |  |ddd… |   g ¡¡ |  |ddd… |   dg¡¡ |  |ddd… |   dg¡¡ |  |ddd… |   ddg¡¡ |  |d d d… |   dg¡¡ |  |dd… |   g ¡¡ |  |dd… |¡ |  |ddd… |d d d… ¡ |  |ddd… |   g ¡¡ |  |ddd… |   g d¢¡¡ |   g d¢¡}|  |tddƒ d… |   g d¢¡¡ |  |dtddƒ… |   ddg¡¡ |  |dd tj… |   dg¡¡ d S )Nrc   r   r%   rP   rh   re   r6   iüÿÿrK   )r%   rP   r6   rd   ©r   r%   rP   )r   rP   rd   )rd   r6   rP   r%   r   )rd   rP   r   iœÿÿÿrd   éd   é€   é‘   )rQ   rS   ÚpowÚsysÚmaxsize)r   ÚlrZ   rn   r   r   r
   Útest_getslice²   s<   
        &$$zCommonTest.test_getslicec                 C   s`   |   g d¢¡}|D ]}|  ||¡ q	t|ƒd t|ƒd fD ]}|  ||¡ q|  t|j¡ d S )Nrp   r%   )rQ   ÚassertInÚminÚmaxÚassertNotInrU   rV   Ú__contains__)r   rZ   r	   r   r   r
   Útest_contains×   s   zCommonTest.test_containsc                 C   sx   |   t|  g ¡¡ |  t|  dg¡¡ |  d|  tg¡¡ |   t|  g ¡¡ |   t|  tg¡¡ |  t|  tg¡¡ d S r$   )r|   r   rQ   ry   r   r    r   r   r
   Útest_contains_fakeà   s   zCommonTest.test_contains_fakec                    sb   G dd„ dt ƒ‰ G ‡ fdd„dƒ}|  d|ƒ g¡}|  d|¡ |  |ƒ dg¡}|  ˆ |jd¡ d S )Nc                   @   ó   e Zd ZdS )z3CommonTest.test_contains_order.<locals>.DoNotTestEqN©r   r   r   r   r   r   r
   ÚDoNotTestEqï   ó    r‚   c                       ó   e Zd Z‡ fdd„ZdS )z4CommonTest.test_contains_order.<locals>.StopComparesc                    s   ˆ ‚r   r   ©r   Úother©r‚   r   r
   Ú__eq__ò   r"   z;CommonTest.test_contains_order.<locals>.StopCompares.__eq__N©r   r   r   rˆ   r   r‡   r   r
   ÚStopComparesñ   ó    rŠ   r%   )Ú	ExceptionrQ   ry   rU   r}   )r   rŠ   Z
checkfirstZ	checklastr   r‡   r
   Útest_contains_orderë   s   zCommonTest.test_contains_orderc                 C   s`   |   t|  ¡ ƒd¡ |   t|  g ¡ƒd¡ |   t|  dg¡ƒd¡ |   t|  g d¢¡ƒd¡ d S )Nr   r%   rp   r6   )rS   r'   rQ   r    r   r   r
   Útest_lenú   s   zCommonTest.test_lenc                 C   s2   |   g d¢¡}|  t|ƒd¡ |  t|ƒd¡ d S )Nrp   r   rP   )rQ   rS   rz   r{   ©r   rZ   r   r   r
   Útest_minmax   s   zCommonTest.test_minmaxc                 C   sÎ  |   dg¡}|   ddg¡}|  |||   ¡  ¡ |  ||   ¡ | ¡ |  ||   dg¡ |¡ |  |   dg¡| |   ddg¡¡ |  |   ¡ |d ¡ |  |   ¡ d| ¡ |  |   ¡ |d ¡ |  |   ¡ d| ¡ |  ||d ¡ |  |d| ¡ |  ||d ¡ |  |d| ¡ |  || |d ¡ |  || d| ¡ |  || |d ¡ |  || d| ¡ |  || | |d ¡ |  || | d| ¡ G dd„ d| j ƒ}|ddgƒ}|  ||d ¡ |  ||d ¡ d S )Nr   r%   re   rP   r6   c                   @   r€   )z(CommonTest.test_addmul.<locals>.subclassNr   r   r   r   r
   Úsubclass  rƒ   r‘   )rQ   rS   ZassertIsNot)r   r[   r\   r‘   Úu3r   r   r
   Útest_addmul  s0   "zCommonTest.test_addmulc                 C   s®   |   ddg¡}||   ¡ 7 }|  ||   ddg¡¡ ||   ddg¡7 }|  ||   g d¢¡¡ ||   ddg¡7 }|  ||   g d¢¡¡ |   d	¡}||   d
¡7 }|  ||   d¡¡ d S )Nr   r%   rP   r6   ©r   r%   rP   r6   rd   rL   )r   r%   rP   r6   rd   rL   ZspamZeggsZspameggs©rQ   rS   r   r   r   r
   Ú	test_iadd!  s   
zCommonTest.test_iaddc                 C   sJ   |   ddg¡}|d9 }|  ||   g d¢¡¡ |d9 }|  ||   g ¡¡ d S )Nr   r%   r6   )r   r%   r   r%   r   r%   r•   r   r   r   r
   Ú	test_imul.  s
   zCommonTest.test_imulc                 C   s.   G dd„ d| j ƒ}|  tt|dƒƒƒd¡ d S )Nc                   @   r>   )z/CommonTest.test_getitemoverwriteiter.<locals>.Tc                 S   s   t |ƒd S )Nz!!!)Ústr)r   Úkeyr   r   r
   r   8  r7   z;CommonTest.test_getitemoverwriteiter.<locals>.T.__getitem__N)r   r   r   r   r   r   r   r
   ÚT7  rC   rš   )r%   rP   r%   )rQ   rS   ÚnextÚiter)r   rš   r   r   r
   Útest_getitemoverwriteiter5  s   z$CommonTest.test_getitemoverwriteiterc                 C   s‚   t dƒD ]:}tt |ƒƒ}t ddƒD ]}|  |  || ¡|  |¡| ¡ q|  |  |¡d |  g ¡¡ |  t|ƒt|d ƒ¡ qd S )Nrd   ri   rL   éüÿÿÿr%   )rT   rR   rS   rQ   Úid)r   Úmr^   Únr   r   r
   Útest_repeat<  s   "ûzCommonTest.test_repeatc                 C   sT   t jdkr&|  dg¡}|d9 }|  t|jd¡ t|dƒr(|  t|jd¡ d S d S d S )Niÿÿÿr   i   Ú__imul__)ru   rv   rQ   rU   ÚMemoryErrorÚ__mul__Úhasattrr£   )r   r:   r   r   r
   Útest_bigrepeatD  s   

ûzCommonTest.test_bigrepeatc                 C   sD  |   ddg¡}|  | d¡d¡ |  | d¡d¡ |  | d¡d¡ |  | d¡d¡ |  t|jd¡ |  t|jd¡ |  | tddƒ¡|   dg¡¡ |  | tdd	ƒ¡|   dg¡¡ |  | tdd	ƒ¡|   ddg¡¡ |  | tddƒ¡|   ddg¡¡ |  | tdd
ƒ¡|   g ¡¡ |  t|jtdddƒ¡ |  t|jd¡ d S )Nrf   rg   r   r%   rh   re   ri   r6   rP   rL   r:   )rQ   rS   r   rU   rk   rm   rl   rV   )r   rn   r   r   r
   Útest_subscriptL  s     ""zCommonTest.test_subscriptc                    sô   |   g d¢¡d }|  | d¡d¡ |  | d¡d¡ |  | d¡d¡ |  | t¡d¡ |  |   ttg¡ d¡d¡ |  |   ttg¡ t¡d¡ |  |   ttg¡ t¡d¡ |  t|j¡ G dd„ dtƒ‰ G ‡ fd	d
„d
ƒ}|  ˆ |j|ƒ ¡ d S )Nrp   r6   r   r%   é	   rP   c                   @   r€   )z%CommonTest.test_count.<locals>.BadExcNr   r   r   r   r
   ÚBadExci  rƒ   rª   c                       r„   )z%CommonTest.test_count.<locals>.BadCmpc                    ó   |dkrˆ ƒ ‚dS ©NrP   Fr   r…   ©rª   r   r
   rˆ   m  ó   z,CommonTest.test_count.<locals>.BadCmp.__eq__Nr‰   r   r­   r   r
   ÚBadCmpl  r‹   r¯   )rQ   rS   Úcountr   r   rU   rV   rŒ   )r   rn   r¯   r   r­   r
   Ú
test_count\  s   zCommonTest.test_countc                    s˜  |   ddg¡}|  | d¡d¡ |  | d¡d¡ |  t|jd¡ |   g d¢¡}|  | d¡d¡ |  | d¡d¡ |  | dd¡d¡ |  | dd¡d¡ |  | dd¡d¡ |  | ddd¡d¡ |  t|jddd¡ |  | t¡d¡ |  |   ttg¡ d¡d¡ |  |   ttg¡ t¡d¡ |  t|   ttg¡jt¡ |  t|j¡ G d	d
„ d
t	ƒ‰ G ‡ fdd„dƒ}|   g d¢¡}|  ˆ |j|ƒ ¡ |   g d¢¡}|  | d¡d¡ |  | dd¡d¡ |  | dd¡d¡ |  | dd¡d¡ |  | dd¡d¡ |  | dd¡d¡ |  | ddd¡d¡ |  | ddd¡d¡ |  | ddt
j dt
j ¡d¡ |  t|jddt
j dt
j ¡ |  t|jddd¡ d S )Nr   r%   rP   )rh   re   r   r   r%   rP   rh   iöÿÿÿr6   rd   c                   @   r€   )z%CommonTest.test_index.<locals>.BadExcNr   r   r   r   r
   rª   Š  rƒ   rª   c                       r„   )z%CommonTest.test_index.<locals>.BadCmpc                    r«   r¬   r   r…   r­   r   r
   rˆ   Ž  r®   z,CommonTest.test_index.<locals>.BadCmp.__eq__Nr‰   r   r­   r   r
   r¯     r‹   r¯   r”   rž   ri   )rQ   rS   ÚindexrU   rl   r°   r   r   rV   rŒ   ru   rv   )r   rZ   r¯   rn   r   r­   r
   Ú
test_indext  sB   " zCommonTest.test_indexc                 C   sX   |   g d¢¡}ttjd ƒD ]}t t ||¡¡}|  ||¡ |  t|ƒt|ƒ¡ qd S )N)rd   rL   é   é   r%   )	rQ   rT   ÚpickleÚHIGHEST_PROTOCOLÚloadsÚdumpsrS   ZassertNotEqualrŸ   )r   ZlstÚprotoZlst2r   r   r
   Útest_pickle£  s   ýzCommonTest.test_picklec                 C   s$   t  | t| j¡ t  | t| j¡ d S r   )r   Zcheck_free_after_iteratingrœ   rQ   Úreversedr    r   r   r
   Útest_free_after_iteratingª  s   z$CommonTest.test_free_after_iterating)r   r   r   rQ   r`   rb   ro   rx   r~   r   r   rŽ   r   r“   r–   r—   r   r¢   r§   r¨   r±   r³   r»   r½   r   r   r   r
   rE   b   s,    .%	/rE   )Zunittestru   r¶   Útestr   Ztest.supportr   r   r   r   r   r/   r3   r4   r5   r8   Ú	itertoolsr9   r=   rR   r?   ÚlistrD   ZTestCaserE   r   r   r   r
   Ú<module>   s&    	
	