
    daf;                     6   d Z 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 Z	 G d d      Z
 G d d	      Z G d
 d      Z G d d      Z G d d      Z G d d      Z G d d      ZddlmZ d Z G d de      Z G d de      Z G d dej0                        Zy)z3
Tests common to tuple, list and UserList.UserList
    N)support)	ALWAYS_EQNEVER_EQc              #   "   K   | D ]  }|  yw)zRegular generatorN seqnis     )/root/Python-3.12.4/Lib/test/seq_tests.pyiterfuncr      s      s   c                       e Zd ZdZd Zd Zy)SequencezSequence using __getitem__c                     || _         y Nr	   selfr	   s     r   __init__zSequence.__init__   s	    	    c                      | j                   |   S r   r   r   r
   s     r   __getitem__zSequence.__getitem__   s    yy|r   N)__name__
__module____qualname____doc__r   r   r   r   r   r   r      s     r   r   c                   "    e Zd ZdZd Zd Zd Zy)IterFuncz Sequence using iterator protocolc                      || _         d| _        y Nr   r   r   s     r   r   zIterFunc.__init__       	r   c                     | S r   r   r   s    r   __iter__zIterFunc.__iter__       r   c                     | j                   t        | j                        k\  rt        | j                  | j                      }| xj                   dz  c_         |S N   r
   lenr	   StopIterationr   vs     r   __next__zIterFunc.__next__    ?    66S^#=%8IIdff!r   Nr   r   r   r   r   r$   r.   r   r   r   r   r      s    &r   r   c                       e Zd ZdZd Zd Zy)IterGenz9Sequence using iterator protocol defined with a generatorc                      || _         d| _        y r    r   r   s     r   r   zIterGen.__init__(   r!   r   c              #   6   K   | j                   D ]  }|  y wr   r   )r   vals     r   r$   zIterGen.__iter__+   s     99 	CI	s   Nr   r   r   r   r   r$   r   r   r   r2   r2   &   s    ?r   r2   c                       e Zd ZdZd Zd Zy)IterNextOnlyz Missing __getitem__ and __iter__c                      || _         d| _        y r    r   r   s     r   r   zIterNextOnly.__init__1   r!   r   c                     | j                   t        | j                        k\  rt        | j                  | j                      }| xj                   dz  c_         |S r'   r)   r,   s     r   r.   zIterNextOnly.__next__4   r/   r   N)r   r   r   r   r   r.   r   r   r   r8   r8   /   s    &r   r8   c                       e Zd ZdZd Zd Zy)
IterNoNextzIterator missing __next__()c                      || _         d| _        y r    r   r   s     r   r   zIterNoNext.__init__<   r!   r   c                     | S r   r   r#   s    r   r$   zIterNoNext.__iter__?   r%   r   Nr6   r   r   r   r<   r<   :   s    !r   r<   c                   "    e Zd ZdZd Zd Zd Zy)
IterGenExczTest propagation of exceptionsc                      || _         d| _        y r    r   r   s     r   r   zIterGenExc.__init__D   r!   r   c                     | S r   r   r#   s    r   r$   zIterGenExc.__iter__G   r%   r   c                     ddz   y )N   r   r   r#   s    r   r.   zIterGenExc.__next__I   s	    	Qr   Nr0   r   r   r   r@   r@   B   s    $r   r@   c                   "    e Zd ZdZd Zd Zd Zy)IterFuncStopzTest immediate stopc                      y r   r   r   s     r   r   zIterFuncStop.__init__N   s    r   c                     | S r   r   r#   s    r   r$   zIterFuncStop.__iter__P   r%   r   c                     t         r   )r+   r#   s    r   r.   zIterFuncStop.__next__R   s    r   Nr0   r   r   r   rF   rF   L   s    r   rF   )chainc                 d    t        t        d t        t        t	        |                               S )z Test multiple tiers of iteratorsc                     | S r   r   )xs    r   <lambda>zitermulti.<locals>.<lambda>X   s    a r   )rJ   mapr   r2   r   r   s    r   	itermultirP   V   s"    Z'(4.*A!BCDDr   c                       e Zd Zd Zy)
LyingTuplec              #      K   d y wr'   r   r#   s    r   r$   zLyingTuple.__iter__[           Nr   r   r   r$   r   r   r   rR   rR   Z       r   rR   c                       e Zd Zd Zy)	LyingListc              #      K   d y wr'   r   r#   s    r   r$   zLyingList.__iter___   rT   rU   NrV   r   r   r   rY   rY   ^   rW   r   rY   c                       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d Zd Zd Zd Zd Zy)
CommonTestNc           	      ~   g }dg}ddg}| j                         }| j                  |      }| j                  |      }| j                  |      }| j                  |      }| j                  |      }	| j                  |      }
| j                  |      }| j                  t        |            } G d d      } ||      }| j                  |      }| j                  t        |      t        |             d}| j                  |      }| j                  t        |      t        |             ddt	        d      d	t	        d
dd      fD ]F  }t
        t        t        t        t        fD ]8  }| j                  | j                   ||            | j                  |             : | j                  | j                  t        |            | j                                | j                  | j                  d dD              | j                  d             | j                  t        | j                   t        |             | j                  t        | j                   t        |             | j                  t        | j                   t!        |             I | j                  | j                  t#        d            | j                  d             | j                  | j                  t%        dg            | j                  dg             | j                  t              5  | j                  g        d d d        y # 1 sw Y   y xY w)Nr   r(   c                       e Zd Zd Zd Zd Zy).CommonTest.test_constructors.<locals>.OtherSeqc                     || _         y r   _OtherSeq__data)r   initseqs     r   r   z7CommonTest.test_constructors.<locals>.OtherSeq.__init__w   s	    %r   c                 ,    t        | j                        S r   )r*   rb   r#   s    r   __len__z6CommonTest.test_constructors.<locals>.OtherSeq.__len__y   s    4;;''r   c                      | j                   |   S r   ra   r   s     r   r   z:CommonTest.test_constructors.<locals>.OtherSeq.__getitem__{   s    {{1~%r   N)r   r   r   r   re   r   r   r   r   OtherSeqr_   v   s    &(&r   rg   zthis is also a sequence123   )dog333333?i  i     c              3       K   | ]  }|  y wr   r   ).0cs     r   	<genexpr>z/CommonTest.test_constructors.<locals>.<genexpr>   s     +=!A+=s   )   )r(   rq   )unsupported_arg)	type2testtupleassertEqualr*   ranger   r   r2   rP   r   rF   assertRaises	TypeErrorr8   r<   ZeroDivisionErrorr@   rR   rY   )r   l0l1l2uu0u1u2uuuu0uu1uu2r-   rg   sv0vvgs                     r   test_constructorszCommonTest.test_constructorsf   s   SVNN^^B^^B^^B^^AnnR nnR nnR NN58$	& 	& RL^^AR#a&)%^^AR#a&) U4[+uT$q7IJ 	PA'+ J  !!5t~~a7HIJ T^^LO<dnn>NOT^^+=u+==t~~e?TUiaIiAG/AO	P 	
4(894>>$;OP	1#79LMy) 	/NN2N.	/ 	/ 	/s   L33L<c                     | j                  | j                                | j                  | j                  dg             y )N*   )assertFalsers   
assertTruer#   s    r   
test_truthzCommonTest.test_truth   s.    )*t,-r   c           	         | j                  g d      }t        t        |            D ]5  }| j                  ||   |       | j                  |t	        |         |       7 t        t        |       d      D ]M  }| j                  ||   t        |      |z          | j                  |t	        |         t        |      |z          O | j                  t        |j                  t        |       dz
         | j                  t        |j                  t        |             | j                  t        |j                  t        ddd             | j                         }| j                  t        |j                  d       | j                  t        |j                  d       | j                  t        |j                         | j                  ddg      }| j                  |d   d       | j                  |d   d       | j                  |d   d       | j                  |d   d       | j                  t        |j                  d       | j                  t        |j                  d	       y )
Nr   r(   rq   rD      r(   r   
      rD   )rs   rv   r*   ru   intrw   
IndexErrorr   
ValueErrorslicerx   )r   r}   r
   as       r   test_getitemzCommonTest.test_getitem   s   NN?+s1v 	+AQqT1%Qs1vY*	+ Aw# 	2AQqT3q6!8,Qs1vYAq1	2 	*ammc!fWQY?*ammSV<*ammU1R]CNN*ammQ7*ammR8)Q]]3NNB8$1r"1r"2#2#*ammR8*ammQ7r   c                 2   g d}| j                  |      }| j                  |dd | j                                | j                  |dd | j                  dg             | j                  |dd | j                  dg             | j                  |dd	 |       | j                  |d	d | j                  g              | j                  |d d  |       | j                  |dd  | j                  g d
             | j                  |d d | j                  g d             | j                  |d d  |       | j                  |d d d   | j                  g d             | j                  |dd d   | j                  ddg             | j                  |d d d   | j                  g d             | j                  |d d d   | j                  g d             | j                  |dd d   | j                  ddg             | j                  |ddd   | j                  g              | j                  |ddd   | j                  dg             | j                  |ddd   | j                  dg             | j                  |ddd   | j                  ddg             | j                  |d d d   | j                  dg             | j                  |dd | j                  g              | j                  |dd |       | j                  |ddd   |d d d          | j                  |ddd   | j                  g              | j                  |ddd   | j                  g d             | j                  g d      }| j                  |t        dd       d | j                  g d             | j                  |dt        dd       | j                  ddg             | j                  |dd t        j                     | j                  dg             y )Nr   r   r(   rq   r   r   rD   irj   )r(   rq   rD   r   r   r(   rq   )r   rq   r   )r   rD   rq   r(   r   )r   rq   r   ir   d         )rs   ru   powsysmaxsize)r   lr}   r   s       r   test_getslicezCommonTest.test_getslice   s   NN11Q!121Q!452b4>>1##675*4r(:;1q!1TDNN<$@A4DNN9$=> 	2"3Q3	!:;14a4$..!Q"894R4$.."AB4R4$..";<15b54>>1a&#9:1Qr6DNN2$671Qr6DNNA3$781Qr6DNNA3$781Qr6DNNAq6$:;6T6DNNA3$783tt~~b'9:4q)3tB;4R414B;);<4A:y(AB NN;'S3ZK,dnnW.EFAs1Sz+T^^QqE-BC1>ckk>*DNNA3,?@r   c                    | j                  g d      }|D ]  }| j                  ||        t        |      dz
  t        |      dz   fD ]  }| j	                  ||        | j                  t        |j                         y )Nr   r(   )rs   assertInminmaxassertNotInrw   rx   __contains__)r   r}   r
   s      r   test_containszCommonTest.test_contains   sw    NN9% 	 AMM!Q	 Q3q6!8# 	#AQ"	# 	)Q^^4r   c                    | j                  t        | j                  g              | j                  t        | j                  dg             | j                  d| j                  t        g             | j                  t        | j                  g              | j                  t        | j                  t        g             | j                  t        | j                  t        g             y r'   )r   r   rs   r   r   r#   s    r   test_contains_fakezCommonTest.test_contains_fake   s     	DNN2$67i!45a454>>"#56DNNH:$>?h	{ ;<r   c                      G d dt                G fdd      }| j                  d |       g      }| j                  d|       | j                   |       dg      }| j                  |j                  d       y )Nc                       e Zd Zy)3CommonTest.test_contains_order.<locals>.DoNotTestEqNr   r   r   r   r   r   DoNotTestEqr          r   r   c                       e Zd Z fdZy)4CommonTest.test_contains_order.<locals>.StopComparesc                     r   r   )r   otherr   s     r   __eq__z;CommonTest.test_contains_order.<locals>.StopCompares.__eq__   s	    !!r   Nr   r   r   r   )r   s   r   StopComparesr      s    "r   r   r(   )	Exceptionrs   r   rw   r   )r   r   
checkfirst	checklastr   s       @r   test_contains_orderzCommonTest.test_contains_order   sk    	) 		" 	" ^^Q$78
a$NNLNA#67	+y'='=qAr   c                 X   | j                  t        | j                               d       | j                  t        | j                  g             d       | j                  t        | j                  dg            d       | j                  t        | j                  g d            d       y )Nr   r(   r   rD   )ru   r*   rs   r#   s    r   test_lenzCommonTest.test_len   sz    T^^-.2T^^B/0!4T^^QC0115T^^I67;r   c                     | j                  g d      }| j                  t        |      d       | j                  t        |      d       y )Nr   r   rq   )rs   ru   r   r   r   r}   s     r   test_minmaxzCommonTest.test_minmax  s8    NN9%Q#Q#r   c                    | j                  dg      }| j                  ddg      }| j                  ||| j                         z          | j                  || j                         |z          | j                  || j                  dg      z   |       | j                  | j                  dg      |z   | j                  ddg             | j                  | j                         |dz         | j                  | j                         d|z         | j                  | j                         |dz         | j                  | j                         d|z         | j                  ||dz         | j                  |d|z         | j                  ||dz         | j                  |d|z         | j                  ||z   |dz         | j                  ||z   d|z         | j                  ||z   |dz         | j                  ||z   d|z         | j                  ||z   |z   |dz         | j                  ||z   |z   d|z          G d d| j                         } |ddg      }| j                  ||dz         | j                  ||dz         y )Nr   r(   r   rq   rD   c                       e Zd Zy)(CommonTest.test_addmul.<locals>.subclassNr   r   r   r   subclassr     r   r   r   )rs   ru   assertIsNot)r   r   r   r   u3s        r   test_addmulzCommonTest.test_addmul  sC   ^^QC ^^QF#R$.."223T^^-23dnnaS1126-2DNNB74KL)2a40)1R40)2a40)1R40RT"QrT"RT"QrT"B1%B"%B1%B"%Br2a4(Br1R4(	t~~ 	q!fRT"RT"r   c                    | j                  ddg      }|| j                         z  }| j                  || j                  ddg             || j                  ddg      z  }| j                  || j                  g d             || j                  ddg      z  }| j                  || j                  g d             | j                  d	      }|| j                  d
      z  }| j                  || j                  d             y )Nr   r(   rq   rD   r   r(   rq   rD   r   rl   )r   r(   rq   rD   r   rl   spameggsspameggsrs   ru   r   s     r   	test_iaddzCommonTest.test_iadd$  s    NNAq6"	T^^DNNAq623	T^^QF##DNN<89	T^^QF##DNN+=>?NN6"	T^^F##DNN:67r   c                     | j                  ddg      }|dz  }| j                  || j                  g d             |dz  }| j                  || j                  g              y )Nr   r(   rD   )r   r(   r   r(   r   r(   r   r   s     r   	test_imulzCommonTest.test_imul1  sY    NNAq6"	QDNN+=>?	QDNN2./r   c           	           G d d| j                         }| j                  t        t         |d                  d       y )Nc                       e Zd Zd Zy)/CommonTest.test_getitemoverwriteiter.<locals>.Tc                     t        |      dz   S )Nz!!!)str)r   keys     r   r   z;CommonTest.test_getitemoverwriteiter.<locals>.T.__getitem__;  s    3x%''r   N)r   r   r   r   r   r   r   Tr   :  s    (r   r   )r(   rq   r(   )rs   ru   nextiter)r   r   s     r   test_getitemoverwriteiterz$CommonTest.test_getitemoverwriteiter8  s1    	( 	( 	d1U8n-q1r   c                    t        d      D ]  }t        t        |            }t        dd      D ]8  }| j                  | j                  ||z        | j                  |      |z         : | j                  | j                  |      dz  | j                  g              | j                  t	        |      t	        |dz                y )Nr   r   rl   r(   )rv   rt   ru   rs   id)r   mr   ns       r   test_repeatzCommonTest.test_repeat?  s    q 	-AeAhA2q\ K  !!4dnnQ6G6IJKT^^A.3T^^B5GHRUBqsG,	-r   c                     t         j                  dk  rg| j                  dg      }|dz  }| j                  t        |j
                  d       t        |d      r"| j                  t        |j                  d       y y y )Nir   i   __imul__)r   r   rs   rw   MemoryError__mul__hasattrr   )r   rM   s     r   test_bigrepeatzCommonTest.test_bigrepeatG  sg    ;;*$s#AJAk199e<q*%!!+qzz5A &	 %r   c           	         | j                  ddg      }| j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                  d      d       | j                  t        |j                  d       | j                  t        |j                  d       | j                  |j                  t        dd            | j                  dg             | j                  |j                  t        dd	            | j                  dg             | j                  |j                  t        dd	            | j                  ddg             | j                  |j                  t        dd            | j                  ddg             | j                  |j                  t        dd
            | j                  g              | j                  t        |j                  t        ddd             | j                  t        |j                  d       y )Nr   r   r   r(   r   r   r   rD   rq   rl   rM   )rs   ru   r   rw   r   r   r   rx   )r   r   s     r   test_subscriptzCommonTest.test_subscriptO  s   NNB8$q)2.q)2.r*B/r*B/*ammR8*ammQ7uQqz2DNNB44HIuQqz2DNNB44HIuQqz2DNNB84LMuQqz2DNNB84LMuQqz2DNN24FG*ammU1b!_E)Q]]C8r   c                 h   | j                  g d      dz  }| j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                  t              d       | j                  | j                  t        t        g      j                  d      d       | j                  | j                  t        t        g      j                  t              d       | j                  | j                  t        t        g      j                  t              d       | j                  t        |j                          G d dt               G fd	d
      }| j                  |j                   |              y )Nr   rD   r   r(   	   rq   c                       e Zd Zy)%CommonTest.test_count.<locals>.BadExcNr   r   r   r   BadExcr   l  r   r   r   c                       e Zd Z fdZy)%CommonTest.test_count.<locals>.BadCmpc                     |dk(  r        yNrq   Fr   r   r   r   s     r   r   z,CommonTest.test_count.<locals>.BadCmp.__eq__p      A: (Nr   Nr   r   s   r   BadCmpr   o      r   r   )rs   ru   countr   r   rw   rx   r   )r   r   r   r   s      @r   
test_countzCommonTest.test_count_  s8   NN9%a'Q'Q'Q'+Q/I(>?EEaH!LI(>?EEhOQRS8(<=CCINPQR)QWW-	Y 		 	 	&!''684r   c                 ,	   | j                  ddg      }| j                  |j                  d      d       | j                  |j                  d      d       | j                  t        |j                  d       | j                  g d      }| j                  |j                  d      d       | j                  |j                  d      d       | j                  |j                  dd      d       | j                  |j                  dd      d       | j                  |j                  dd      d       | j                  |j                  ddd      d       | j                  t        |j                  ddd       | j                  |j                  t              d       | j                  | j                  t        t        g      j                  d      d       | j                  | j                  t        t        g      j                  t              d       | j                  t        | j                  t        t        g      j                  t               | j                  t        |j                          G d	 d
t               G fdd      }| j                  g d      }| j                  |j                   |              | j                  g d      }| j                  |j                  d      d       | j                  |j                  dd      d       | j                  |j                  dd      d       | j                  |j                  dd      d       | j                  |j                  dd      d       | j                  |j                  dd      d       | j                  |j                  ddd      d       | j                  |j                  ddd      d       | j                  |j                  ddt        j                  z  dt        j                  z        d       | j                  t        |j                  ddt        j                  z  dt        j                  z         | j                  t        |j                  ddd       y )Nr   r(   rq   )r   r   r   r   r(   rq   r   irD   r   c                       e Zd Zy)%CommonTest.test_index.<locals>.BadExcNr   r   r   r   r   r     r   r   r   c                       e Zd Z fdZy)%CommonTest.test_index.<locals>.BadCmpc                     |dk(  r        yr   r   r   s     r   r   z,CommonTest.test_index.<locals>.BadCmp.__eq__  r   r   Nr   r   s   r   r   r    r   r   r   r   r   r   )rs   ru   indexrw   r   r   r   r   rx   r   r   r   )r   r}   r   r   r   s       @r   
test_indexzCommonTest.test_indexw  sZ   NNAq6"Q'Q'*aggq1NN/0Q'Q'A*S)1-A*Aq)1-*aggq!S9+Q/I(>?EEaH!LI(>?EEhOQRS*dnnh5I&J&P&PR[\)QWW-	Y 		 	 NN<(&!''684NN/0Q'A*B+S)1-A*B+Aq)1-B+Q/Bs{{NAckkMBAF*aggq!CKK-3;;O*aggq!S9r   c                 *   | j                  g d      }t        t        j                  dz         D ]a  }t        j                  t        j
                  ||            }| j                  ||       | j                  t        |      t        |             c y )N)r   rl         r(   )	rs   rv   pickleHIGHEST_PROTOCOLloadsdumpsru   assertNotEqualr   )r   lstprotolst2s       r   test_picklezCommonTest.test_pickle  sp    nn\*622Q67 	3E<<S% 89DT3'4"S'2	3r   c                     t        j                  | t        | j                         t        j                  | t        | j                         y r   )r   check_free_after_iteratingr   rs   reversedr#   s    r   test_free_after_iteratingz$CommonTest.test_free_after_iterating  s.    **4t~~F**44>>Jr   )r   r   r   rs   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\   b   sr    I//b.84#AJ5	=B<$
#8802-B9 50-:^3Kr   r\   )r   unittestr   r	  testr   test.supportr   r   r   r   r   r2   r8   r<   r@   rF   	itertoolsrJ   rP   rt   rR   listrY   TestCaser\   r   r   r   <module>r     s     
   ,
   	 	    E  MK"" MKr   