
    daf}                     z   d dl Z d dlZd dlmZ d dlmZ  ej                  d      Zd dlmZm	Z	 dZ
 G d de      Z G d d	e      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 Z G d de j.                        Zedk(  r e j4                          yy)    N)OrderedDict)import_helper	_testcapi)PY_SSIZE_T_MINPY_SSIZE_T_MAXc                       e Zd Zy)StrSubclassN__name__
__module____qualname__     7/root/Python-3.12.4/Lib/test/test_capi/test_abstract.pyr	   r	          r   r	   c                       e Zd Zy)BytesSubclassNr
   r   r   r   r   r      r   r   r   c                       e Zd Zd Zd Zy)WithStrc                     || _         y Nvalueselfr   s     r   __init__zWithStr.__init__   	    
r   c                     | j                   S r   r   r   s    r   __str__zWithStr.__str__       zzr   N)r   r   r   r   r    r   r   r   r   r          r   r   c                       e Zd Zd Zd Zy)WithReprc                     || _         y r   r   r   s     r   r   zWithRepr.__init__   r   r   c                     | j                   S r   r   r   s    r   __repr__zWithRepr.__repr__   r!   r   N)r   r   r   r   r'   r   r   r   r$   r$      r"   r   r$   c                       e Zd Zd Zd Zy)	WithBytesc                     || _         y r   r   r   s     r   r   zWithBytes.__init__   r   r   c                     | j                   S r   r   r   s    r   	__bytes__zWithBytes.__bytes__    r!   r   N)r   r   r   r   r,   r   r   r   r)   r)      r"   r   r)   c                   d    e Zd Zed        Zej
                  d        Zej                  d        Zy)
TestObjectc                     t        d      )Nzdo not get evilRuntimeErrorr   s    r   evilzTestObject.evil$       ,--r   c                     t        d      )Nzdo not set evilr0   r   s     r   r2   zTestObject.evil'   r3   r   c                     t        d      )Nzdo not del evilr0   r   s    r   r2   zTestObject.evil*   r3   r   N)r   r   r   propertyr2   setterdeleterr   r   r   r.   r.   #   s@    . .	[[. .	\\. .r   r.   c                       e Zd Zd Zd Zy)ProxyGetItemc                     || _         y r   objr   r=   s     r   r   zProxyGetItem.__init__/   	    r   c                      | j                   |   S r   r<   r   keys     r   __getitem__zProxyGetItem.__getitem__1   s    xx}r   N)r   r   r   r   rC   r   r   r   r:   r:   .   s    r   r:   c                       e Zd Zd Zd Zy)ProxySetItemc                     || _         y r   r<   r>   s     r   r   zProxySetItem.__init__5   r?   r   c                 "    || j                   |<   y r   r<   )r   rB   r   s      r   __setitem__zProxySetItem.__setitem__7   s    r   N)r   r   r   r   rH   r   r   r   rE   rE   4   s    r   rE   c                       e Zd Zd Zd Zy)ProxyDelItemc                     || _         y r   r<   r>   s     r   r   zProxyDelItem.__init__;   r?   r   c                     | j                   |= y r   r<   rA   s     r   __delitem__zProxyDelItem.__delitem__=   s    HHSMr   N)r   r   r   r   rM   r   r   r   rJ   rJ   :   s    r   rJ   c               #   $   K   d d d y w)Nabcr   r   r   r   genrR   @   s     
I
I
Is   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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*)+CAPITestc                 p    | j                  t        |      t        |             | j                  ||       y r   )assertIstypeassertEqual)r   actualexpecteds      r   assertTypedEqualzCAPITest.assertTypedEqualG   s(    d6lDN3*r   c           	      ~   t         j                  }| j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |t        d            d       | j                   |t	        d            d       | j                   |t	        t        d                  t        d             | j                   |t        d            d       | j                   |t        t        d                  t        d             | j                   |t              d       y )N abc   🐍<abc><NULL>)r   
object_strr[   r	   r   r$   NULL)r   rb   s     r   test_object_strzCAPITest.test_object_strK   s    ))
jnb1j/7j6EjU);<eDj8%@jU1C)DE{SXGYZj'):;WEj+g2F)GH+V]J^_j.9r   c           	      ~   t         j                  }| j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |t        d            d       | j                   |t	        d            d       | j                   |t	        t        d                  t        d             | j                   |t	        d            d       | j                   |t	        t        d                  t        d             | j                   |t
              d	       y )
Nr]   ''r^   'abc'r_   u   '🐍'r`      <🐍>ra   )r   object_reprr[   r	   r$   rc   )r   ri   s     r   test_object_reprzCAPITest.test_object_reprX   s    ++k"ot4k%0':k,7Hk+e*<=wGk(7*;<gFk(;w3G*HI;W^K_`k(>*BC^Tk(;~3N*OPR]^lRmnk$/:r   c           	      l   t         j                  }| j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |t        d            d       | j                   |t	        d            d       | j                   |t	        t        d                  t        d             | j                   |t	        d            d	       | j                   |t	        t        d                  d	       | j                   |t
              d
       y )Nr]   rf   r^   rg   r_   z'\U0001f40d'r`   rh   z<\U0001f40d>ra   )r   object_asciir[   r	   r$   rc   )r   rl   s     r   test_object_asciizCAPITest.test_object_asciie   s     --l2.5l517;l<8/Jl;u+=>Hl8G+<=wGl8K4H+IJKX_L`al8N+CDoVl8K4O+PQSbcl40(;r   c           	         t         j                  }| j                   |d      d       | j                   |d      d       | j                   |t        d            d       | j                   |t	        d            d       | j                   |t	        t        d                  t        d             | j                   |t        d            d       | j                   |t        d            d       | j                   |g d      d       | j                   |d      d       | j                   |t        g d            d       | j                  t        |t	        t        d                   | j                  t        |t	        g d             | j                  t        |d       | j                  t        |d       | j                  t        |t                      | j                   |t              d       y )Nr      abc)a   b   c      r^   s   <NULL>)r   object_bytesr[   r   r)   	bytearray
memoryviewiterassertRaises	TypeErrorobjectrc   )r   rt   s     r   test_object_byteszCAPITest.test_object_bytesr   s    --l3/5l62F;l=+@A6Jl9V+<=vFl9]65J+KLm\bNcdl9V+<=vFl:f+=>Gl<8&Al<8&Al4+=>G)\9Yv=N3OP)\9\3JK)\15)\59)\68<l40)<r   c                 T   t         j                  }t               }d|_        t	        |dd       | j                   ||d      d       | j                  t        ||d       | j                   ||d      d       | j                  t        ||d       | j                  t        ||d       y )N   r_      rO   rP   r2      )
r   object_getattrr.   rO   setattrrX   rx   AttributeErrorr1   ry   )r   xgetattrr=   s      r   test_object_getattrzCAPITest.test_object_getattr   s    ++l\2&#s+R0.(C=#|4b9,#v>)XsA6r   c                 p   t         j                  }t               }d|_        t	        |dd       | j                   ||d      d       | j                  t        ||d       | j                   ||dj                               d       | j                  t        ||d       | j                  t        ||d       y )Nr}   r_   r~      a   b   evil   )r   object_getattrstringr.   rO   r   rX   rx   r   encoder1   UnicodeDecodeError)r   getattrstringr=   s      r   test_object_getattrstringz"CAPITest.test_object_getattrstring   s    !66l\2&sD126.-dCsL,?,?,ABBG,sGD,mS'Jr   c                 P   t         j                  }t               }d|_        t	        |dd       | j                   ||d             | j                   ||d             | j                   ||d             | j                   ||d             | j                   ||d             y )Nr   r_      rO   rP   r2   )r   object_hasattrr.   rO   r   
assertTrueassertFalse)r   xhasattrr=   s      r   test_object_hasattrzCAPITest.test_object_hasattr   s    ++l\1%c*+#s+,l34#v./#q)*r   c                 l   t         j                  }t               }d|_        t	        |dd       | j                   ||d             | j                   ||d             | j                   ||dj                                      | j                   ||d             | j                   ||d             y )Nr   r_   r   r   r   r   r   )r   object_hasattrstringr.   rO   r   r   r   r   )r   hasattrstringr=   s      r   test_object_hasattrstringz"CAPITest.test_object_hasattrstring   s    !66l\1%c401sD12c<+>+>+@ABsG45sG45r   c                 ,   t         j                  }t               } ||dd       | j                  |j                  d        ||dd       | j                  t        |d      d        ||dt               | j                  t        |d             | j                  t        ||dt               | j                  t        ||dt               | j                  t        ||dd       | j                  t        |ddd       | j                  t        ||d	d       y )
NrO      r_      rP   r2   good*   r   )r   object_setattrr.   rX   rO   getattrrc   r   hasattrrx   r   r1   ry   )r   xsetattrr=   s      r   test_object_setattrzCAPITest.test_object_setattr   s    ++lc1"lA&l3Q7 	c4 c*+.(CdC,#vtD,#vvF.(BQ?)XsAq9r   c                 z   t         j                  }t               } ||dd       | j                  |j                  d        ||dj                         d       | j                  t        |d      d        ||dt               | j                  t        |d             | j                  t        ||dt               | j                  t        ||dt               | j                  t        ||dd       | j                  t        |d	dd       | j                  t        ||d
d       | j                  t        ||dd       y )Nr   r   r_   r   rO   r   r   r   r   r   r   )r   object_setattrstringr.   rX   rO   r   r   rc   r   r   rx   r   r1   ry   r   )r   setattrstringr=   s      r   test_object_setattrstringz"CAPITest.test_object_setattrstring   s   !66lc4#"c<..0!4l3Q7 	c4&c*+.-dDI,sGTJ,sGVL.-T1E)]CA>,mS'1Mr   c                    t         j                  }t               }d|_        t	        |dd        ||d       | j                  t        |d             | j                  t        ||d        ||d       | j                  t        |d             | j                  t        |dd       | j                  t        ||d       | j                  t        ||d       y )	Nr   r_   r   rO   rP   r   	numeratorr2   )r   object_delattrr.   rO   r   r   r   rx   r   r1   ry   )r   xdelattrr=   s      r   test_object_delattrzCAPITest.test_object_delattr   s    ++l\1%cc*+.(C=l#l34.(BD,#v>)XsA6r   c                    t         j                  }t               }d|_        t	        |dd        ||d       | j                  t        |d             | j                  t        ||d        ||dj                                | j                  t        |d             | j                  t        |dd       | j                  t        ||d	       | j                  t        ||d
       y )Nr   r_   r   r   rO   r   r   s	   numeratorr   r   )r   object_delattrstringr.   rO   r   r   r   rx   r   r   r1   r   )r   delattrstringr=   s      r   test_object_delattrstringz"CAPITest.test_object_delattrstring   s    !66l\1%c4 c*+.-dCc<..01l34.-\J,sGD,mS'Jr   c                    t         j                  }| j                   |ddi             | j                   |ddg             | j                   |d             | j                   |d             | j                   |d             | j                   |d             | j                   |t	                            | j                   |t
                     y Nr   r   r   r   r^   ro   r   )r   mapping_checkr   r   rz   rc   r   checks     r   test_mapping_checkzCAPITest.test_mapping_check
  s    ''q!f&q!f&f&e%f&r#vx)t%r   c                    t         j                  t         j                  fD ]  }| j                   |ddi      d       | j                   |ddg      d       | j                   |d      d       | j                   |d      d       | j                   |d      d       | j	                  t
        |d       | j	                  t
        |t                      | j	                  t        |t                y Nr   r   r   r^   rs   ro   r   )	r   mapping_sizemapping_lengthrX   rx   ry   rz   SystemErrorrc   r   sizes     r   test_mapping_sizezCAPITest.test_mapping_size  s    **I,D,DD 		7DT1a&\1-T1a&\1-T&\1-T%[!,T&\1-ir2ivx8k46		7r   c                    t         j                  }ddd}| j                   ||d      d       | j                  t        ||d       | j                   ||d      d       t        |      }| j                   ||d      d       | j                  t        ||d       | j                   |g dd      d       | j                  t        |dd       | j                  t        |i g        | j                  t        |i t               | j                  t        |g d       | j                  t        |g d       | j                  t        |t        d       y 	Nr   r   rO   r_   rO   rP   r_   rO   rP   rQ   r   )
r   object_getitemrX   rx   KeyErrorr:   ry   r   rc   
IndexError)r   getitemdctdct2s       r   test_object_getitemzCAPITest.test_object_getitem!  s   **Q'c*A.(GS#6l3Q7C s+Q/(GT37!4c:)Wb#6)Wb"5+wD9*gr15)Wb#6+wc:r   c                 V   t         j                  }ddd}| j                   ||d      d       | j                  t        ||d       | j                   ||dj                               d       t        |      }| j                   ||d      d       | j                  t        ||d       | j                  t        |dd       | j                  t        |i d       | j                  t        |i t               | j                  t        |g d       | j                  t        |t        d       y 	Nr   r   r   r   r   r_   r   r   )r   mapping_getitemstringrX   rx   r   r   r:   ry   r   r   rc   )r   getitemstringr   r   s       r   test_mapping_getitemstringz#CAPITest.test_mapping_getitemstring5  s    !77Q'sD115(M3=sL,?,?,ABAFC tT2A6(M4>)]B=,mRI+}b$?)]B=+}dDAr   c                    t         j                  }ddd}| j                   ||d             | j                   ||d             | j                   ||d             t	        |      }| j                   ||d             | j                   ||d             | j                   |g dd             | j                   |dd             | j                   |i g              | j                   |i t
                     | j                   |g d             | j                   |g d             | j                   |t
        d             y r   )r   mapping_haskeyr   r   r:   rc   )r   haskeyr   r   s       r   test_mapping_haskeyzCAPITest.test_mapping_haskeyF  s   ))Q'sC()S)*sL12C tS)*c*+23C)B(D)*A'C)c*+r   c                 P   t         j                  }ddd}| j                   ||d             | j                   ||d             | j                   ||dj	                                      t        |      }| j                   ||d             | j                   ||d             | j                   |dd             | j                   |i d             | j                   |i t                     | j                   |g d             | j                   |t        d             y r   )r   mapping_haskeystringr   r   r   r:   rc   )r   haskeystringr   r   s       r   test_mapping_haskeystringz"CAPITest.test_mapping_haskeystringZ  s     55Q'S$/0c401S,*=*=*?@AC T401dD12b$/0b'23b$/0b$/0dD12r   c                    t         j                  }i } ||dd       | j                  |ddi        ||dd       | j                  |ddd       i }t        |      } ||dd       | j                  |ddi       g d} ||dd       | j                  |g d	       | j	                  t
        |d
dd       | j	                  t
        |i g d       | j	                  t        |i t        d       | j	                  t        |i dt               | j	                  t        |g dd       | j	                  t
        |g dd       | j	                  t
        |ddd       | j	                  t        |t        dd       y )NrO   r   r_   r   r   r   r   xrO   r   rQ   r   r   )	r   object_setitemrX   rE   rx   ry   r   rc   r   )r   setitemr   r   lsts        r   test_object_setitemzCAPITest.test_object_setitemk  sS   **S!sAh'\1%AQ78C c1sAh'Qo.)Wb#q9)Wb"a8+wD!<+wC>*gr1a8)Wb#q9)Wb!Q7+wc1=r   c                 X   t         j                  }i } ||dd       | j                  |ddi        ||dj                         d       | j                  |ddd       i }t	        |      } ||dd       | j                  |ddi       | j                  t        |ddd       | j                  t        |i dd       | j                  t        |i t        d       | j                  t        |i dt               | j                  t        |g dd       | j                  t        |t        dd       y )	Nr   r   rO   r_   r   r   r   r   )
r   mapping_setitemstringrX   r   rE   rx   ry   r   r   rc   )r   setitemstringr   r   s       r   test_mapping_setitemstringz#CAPITest.test_mapping_setitemstring  s   !77c4#sAh'c<..0!4AQ78C dD!$sAh')]Ba@,mR!L+}b$B+}b$E)]Ba@+}dD!Dr   c                     t         j                  t         j                  fD ]Z  }dddd} ||d       | j                  |ddd       | j	                  t
        ||d        ||d       | j                  |d	di       ddd
}t        |      } ||d       | j                  |d	di       | j	                  t
        ||d       g d} ||d       | j                  |dd	g       | j	                  t        |dd       | j	                  t        |i g        | j	                  t        |i t               | j	                  t        |g d       | j	                  t        |g d       | j	                  t        |t        d       ] y )Nr   r   rs   rO   rQ   r_   rO   rQ   r_   rP   r_   rQ   rO   rQ   r   r   )r   object_delitemmapping_delitemrX   rx   r   rJ   ry   r   rc   r   )r   delitemr   r   r   s        r   test_object_delitemzCAPITest.test_object_delitem  s_    //1J1JJ 	?G3CCS";<hc:C&S3(+"C$DD#S3(+hs;!CCOS3*-i"c:i"b9k7B=j'2q9i"c:k7D#>/	?r   c                 |   t         j                  }dddd} ||d       | j                  |ddd       | j                  t        ||d        ||dj                                | j                  |d	di       ddd
}t        |      } ||d       | j                  |d	di       | j                  t        ||d       | j                  t        |dd       | j                  t        |i d       | j                  t        |i t               | j                  t        |g d       | j                  t        |t        d       y )Nr   r   rs   r   r   r   r   r_   rQ   r   r   r   )r   mapping_delitemstringrX   rx   r   r   rJ   ry   r   r   rc   )r   delitemstringr   r   s       r   test_mapping_delitemstringz#CAPITest.test_mapping_delitemstring  s   !77AQ/c4 AQ78(M3=c<..01sAh'AC dD!sAh'(M4>)]B=,mRI+}b$?)]B=+}dDAr   c           
           G d dt               } G d dt               }dddd}i t                |        |       |t        |       ||       ||      fD ]  }| j                  t        j	                  |      t        |j                                      | j                  t        j                  |      t        |j                                      | j                  t        j                  |      t        |j                                       y )	Nc                   2     e Zd Z fdZ fdZ fdZ xZS )8CAPITest.test_mapping_keys_valuesitems.<locals>.Mapping1c                 2    t        t        | 	               S r   )listsuperkeysr   	__class__s    r   r   z=CAPITest.test_mapping_keys_valuesitems.<locals>.Mapping1.keys  s    EGLN++r   c                 2    t        t        | 	               S r   )r   r   valuesr   s    r   r   z?CAPITest.test_mapping_keys_valuesitems.<locals>.Mapping1.values  s    EGN,--r   c                 2    t        t        | 	               S r   )r   r   itemsr   s    r   r   z>CAPITest.test_mapping_keys_valuesitems.<locals>.Mapping1.items  s    EGMO,,r   r   r   r   r   r   r   __classcell__r   s   @r   Mapping1r     s    ,.- -r   r   c                   2     e Zd Z fdZ fdZ fdZ xZS )8CAPITest.test_mapping_keys_valuesitems.<locals>.Mapping2c                 2    t        t        | 	               S r   )tupler   r   r   s    r   r   z=CAPITest.test_mapping_keys_valuesitems.<locals>.Mapping2.keys  s    UW\^,,r   c                 2    t        t        | 	               S r   )r  r   r   r   s    r   r   z?CAPITest.test_mapping_keys_valuesitems.<locals>.Mapping2.values  s    UW^-..r   c                 2    t        t        | 	               S r   )r  r   r   r   s    r   r   z>CAPITest.test_mapping_keys_valuesitems.<locals>.Mapping2.items  s    UW]_--r   r   r   s   @r   Mapping2r    s    -/. .r   r  r   r   rs   )foobarspam)dictr   assertListEqualr   mapping_keysr   r   mapping_valuesr   mapping_itemsr   )r   r   r  dict_objmappings        r   test_mapping_keys_valuesitemsz&CAPITest.test_mapping_keys_valuesitems  s    	-t 	-	.t 	. Q2KM8:xz +h"7 *HX,>@ 	8G   !7!7!@!%glln!57  !9!9'!B!%gnn&6!79  !8!8!A!%gmmo!68	8r   c                    | j                  t        t        j                  t	                      | j                  t        t        j
                  t	                      | j                  t        t        j                  t	                      | j                  t        t        j                  g        | j                  t        t        j
                  g        | j                  t        t        j                  g        | j                  t        t        j                  t               | j                  t        t        j
                  t               | j                  t        t        j                  t                G d d      } |       }| j                  t        t        j                  |       | j                  t        t        j
                  |       | j                  t        t        j                  |       y )Nc                       e Zd Zd Zd Zd Zy)BCAPITest.test_mapping_keys_valuesitems_bad_arg.<locals>.BadMappingc                      y r   r   r   s    r   r   zGCAPITest.test_mapping_keys_valuesitems_bad_arg.<locals>.BadMapping.keys      r   c                      y r   r   r   s    r   r   zICAPITest.test_mapping_keys_valuesitems_bad_arg.<locals>.BadMapping.values  r  r   c                      y r   r   r   s    r   r   zHCAPITest.test_mapping_keys_valuesitems_bad_arg.<locals>.BadMapping.items  r  r   N)r   r   r   r   r   r   r   r   r   
BadMappingr    s    r   r  )
rx   r   r   r  rz   r  r  r   rc   ry   )r   r  bad_mappings      r   %test_mapping_keys_valuesitems_bad_argz.CAPITest.test_mapping_keys_valuesitems_bad_arg  s;   .)*@*@&(K.)*B*BFHM.)*A*A68L.)*@*@"E.)*B*BBG.)*A*A2F+y'='=tD+y'?'?F+y'>'>E	 	 !l)Y%;%;[I)Y%=%={K)Y%<%<kJr   c                 ~   t         j                  }| j                   |ddi             | j                   |ddg             | j                   |d             | j                   |d             | j                   |d             | j                   |d             | j                   |t	                            y r   )r   sequence_checkr   r   rz   r   s     r   test_sequence_checkzCAPITest.test_sequence_check  s    ((1v'q!f&f&e%f&r#vx)r   c                    t         j                  t         j                  fD ]  }| j                   |ddg      d       | j                   |d      d       | j                   |d      d       | j                   |d      d       | j	                  t
        |i        | j	                  t
        |d       | j	                  t
        |t                      | j	                  t        |t                y r   )	r   sequence_sizesequence_lengthrX   rx   ry   rz   r   rc   r   s     r   test_sequence_sizezCAPITest.test_sequence_size  s    ++Y-F-FF 		7DT1a&\1-T&\1-T%[!,T&\1-ir2ir2ivx8k46		7r   c                    t         j                  }g d}| j                   ||d      d       | j                   ||d      d       | j                  t        ||d       | j                  t        ||t
               | j                  t        ||t               | j                  t        |dd       | j                  t        |i d       | j                  t        |t        d       y )Nr   r   rP   rQ   rs   r   )
r   sequence_getitemrX   rx   r   r   r   ry   r   rc   )r   r   r   s      r   test_sequence_getitemzCAPITest.test_sequence_getitem  s    ,,a#.b)3/*gsA6*gsNC*gsNC)Wb!4)Wb!4+wa8r   c                    t         j                  }| j                   |ddgddg      g d       | j                   |dd      d       | j                  t        |g d       | j                  t        |dg        | j                  t        |g d	       | j                  t        |d	g        | j                  t        |d	d
       | j                  t
        |g t               | j                  t
        |t        g        y )NrO   rP   r   r   rO   rP   r   r   rO   rP   r   r   r   +   )r   sequence_concatrX   rx   ry   r   rc   )r   concats     r   test_sequence_concatzCAPITest.test_sequence_concat  s    **c
QF35EF
F35EF)VR4)VR4)VR4)VR4)VR4+vr48+vtR8r   c                 X   t         j                  }| j                   |ddgd      g d       | j                   |dd      d       | j                   |ddgd      g        | j                   |ddgd      g        | j                   |ddgt              g        | j                   |g t              g        | j                  t        |ddgt               | j                  t        |t               d       | j                  t        |dd       | j                  t        |t        d       y 	NrO   rP   r   )rO   rP   rO   rP   r)  r   r$  r   )r   sequence_repeatrX   r   r   rx   MemoryErrorry   setr   rc   )r   repeats     r   test_sequence_repeatzCAPITest.test_sequence_repeat+  s    **c
A.0DE
A.0DEc
A.3c
B/4c
N;R@N3R8+vSz>J)VSUA6)VR3+vtQ7r   c                 V   t         j                  }ddg} ||ddg      }| j                  |g d       | j                  ||       ddg} ||d      }| j                  |g d       | j                  ||       | j                   |dd      d       | j	                  t
        |dg        | j	                  t
        |g d	       | j	                  t
        |d	g        | j	                  t
        |d	d
       | j	                  t        |g t               | j	                  t        |t        g        y )NrO   rP   r   r   r(  r   r)  r   r   r*  )r   sequence_inplaceconcatrX   rV   rx   ry   r   rc   )r   inplaceconcatr   ress       r   test_sequence_inplaceconcatz$CAPITest.test_sequence_inplaceconcat9  s	   !88CjC!Q(./c3CjC(./c3z6:<LM)]B;)]B;)]B;)]B;+}b$?+}dB?r   c                    t         j                  }ddg} ||d      }| j                  |g d       | j                  ||       | j                   |dd      d       | j                   |ddgd      g        | j                   |ddgd      g        | j                   |ddgt              g        | j                   |g t
              g        | j                  t        |ddgt
               | j                  t        |t               d       | j                  t        |dd       | j                  t        |t        d       y r/  )r   sequence_inplacerepeatrX   rV   r   r   rx   r1  ry   r2  r   rc   )r   inplacerepeatr   r8  s       r   test_sequence_inplacerepeatz$CAPITest.test_sequence_inplacerepeatL  s   !88CjC#23c3z157KLSz15r:Sz26;Sz>BBGr>:B?+}sCj.Q)]CE1=)]B:+}dA>r   c                 ,   t         j                  }g d} ||dd       | j                  |g d        ||dd       | j                  |g d        ||dt               | j                  |ddg       | j	                  t
        ||d	d       | j	                  t
        ||t        d       | j	                  t
        ||t        d       | j	                  t        |d
dd       | j	                  t        |i dd       | j	                  t        |t        dd       y )Nr   r   r   r   r$  y)rO   r   r?  r   rs   r   )
r   sequence_setitemrX   rc   rx   r   r   r   ry   r   )r   r   r   s      r   test_sequence_setitemzCAPITest.test_sequence_setitem]  s    ,,Qo.Ro.QsCj)*gsAs;*gsNCH*gsNCH)Wb!S9)Wb!S9+wa=r   c                    t         j                  }g d} ||d       | j                  |ddg        ||d       | j                  |dg       | j                  t        ||d       | j                  t        ||t
               | j                  t        ||t               | j                  t        |dd       | j                  t        |i d       | j                  t        |t        d       y )Nr   r   rO   rQ   r$  rs   r   )
r   sequence_delitemrX   rx   r   r   r   ry   r   rc   )r   r   r   s      r   test_sequence_delitemzCAPITest.test_sequence_delitemo  s    ,,QsCj)Rse$*gsA6*gsNC*gsNC)Wb!4)Wb!4+wa8r   c           	      L   t         j                  }g t        dd      t        t        D ]}  }g t        dd      t        t        D ]^  }g d}g d} ||||ddg       ddg||| | j                  ||       g d}g d} ||||t               |||= | j                  ||       `   G d d      } |       } ||dd	d
       | j                  |j                  t        dd	             | j                  |j                  d
       d}| j                  t        ||ddd       | j                  |d       d}	| j                  t        ||	ddd       | j                  |	d       | j                  t        |t               ddd       | j                  t        |t        ddd       y )N   r   r   rs      r   r   	   c                       e Zd Zd Zy)/CAPITest.test_sequence_setslice.<locals>.Customc                      || _         || _        y r   )indexr   )r   rN  r   s      r   rH   z;CAPITest.test_sequence_setslice.<locals>.Custom.__setitem__  s    "
"
r   N)r   r   r   rH   r   r   r   CustomrL    s    #r   rO  r   r   r^   r   r   rs   rI  r   rs   )r   rJ  abcdxy)r   sequence_setsliceranger   r   rX   rc   rN  slicer   rx   ry   rz   r   )
r   setslicestartstopdata	data_copyrO  rQ   bad_seq1bad_seq2s
             r   test_sequence_setslicezCAPITest.test_sequence_setslice~  s   .. EuR|D^D^D 	2EG%A,GGG 2&+	udQF3)*A	%%  y1&+	udD1eDj)  y12	2	# 	#
 HAq% %1+.%(  )XxAvF<0)XxAtD6* 	)XvxAtD+xq!TBr   c                    t         j                  }g t        dd      t        t        D ]J  }g t        dd      t        t        D ]+  }g d}g d} ||||       |||= | j                  ||       - L  G d d      } |       } ||dd       | j                  |j                  t        dd             d}| j                  t        ||d	d
       | j                  |d       d}	| j                  t        ||	d	d
       | j                  |	d       | j                  t        |t               d	d
       | j                  t        |t        d	d
       dddd}
| j                  t        ||
d	d
       | j                  |
dddd       y )NrF  rG  rH  c                       e Zd Zd Zy)/CAPITest.test_sequence_delslice.<locals>.Customc                     || _         y r   )rN  )r   rN  s     r   rM   z;CAPITest.test_sequence_delslice.<locals>.Custom.__delitem__  s	    "
r   N)r   r   r   rM   r   r   r   rO  r`    s    #r   rO  r   r   rP  r   rs   rQ  rO   rP   rQ   )r   r   rs   )r   sequence_delslicerT  r   r   rX   rN  rU  rx   ry   rz   r   rc   r   )r   delslicerW  rX  rY  rZ  rO  rQ   r[  r\  r  s              r   test_sequence_delslicezCAPITest.test_sequence_delslice  s   .. EuR|D^D^D 	2EG%A,GGG 2&+	ud+eDj)  y12	2	# 	# HAq%1+.  )XxA><0)XxA>6* 	)XvxA>+xq!<cc*(Hgq!<ccc":;r   c                 (   t         j                  }g d}| j                   ||d      d       | j                   ||d      d       | j                   |t        |      d      d       | j                   |t        |      d      d       | j                   |ddid      d       | j	                  t
        |dd       | j	                  t        |g t               | j	                  t        |dgt               | j	                  t        |t        d       y )NrO   rP   rO   rO   r   rQ   r   r   r   )r   sequence_countrX   rw   rx   ry   r   rc   )r   countr   s      r   test_sequence_countzCAPITest.test_sequence_count  s    ((sC!,sC!,tCy#.2tCy#.2Qx-q1)UB4+ub$7+uqc48+udC8r   c                    t         j                  }g d}| j                   ||d      d       | j                   ||d      d       | j                   |t        |      d      d       | j                   |t        |      d      d       | j                   |ddid      d       | j                   |g t              d       | j                  t        |dd       | j                  t        |dgt               y )Nrf  rO   r   rQ   r   r   r   )r   sequence_containsrX   rw   rc   rx   ry   r   )r   containsr   s      r   test_sequence_containszCAPITest.test_sequence_contains  s    ..#s+Q/#s+Q/$s)S115$s)S1153(C0!4 	"d+Q/)Xr37+x!d;r   c                    t         j                  }g d}| j                   ||d      d       | j                   ||d      d       | j                  t        ||d       | j                   |t        |      d      d       | j                   |t        |      d      d       | j                  t        |t        |      d       ddd	}| j                   ||d      d       | j                   ||d      d       | j                  t        ||d       | j                  t        |d
d       | j                  t        |g t               | j                  t        |dgt               | j                  t        |t        d       y )Nrf  rO   r   rP   r   rQ   r   rs   r)  r   )	r   sequence_indexrX   rx   
ValueErrorrw   ry   r   rc   )r   rN  r   r   s       r   test_sequence_indexzCAPITest.test_sequence_index  s<   ((sC!,sC!,*eS#6tCy#.2tCy#.2*eT#Y<AsC!,sC!,*eS#6)UB4+ub$7+uqc48+udC8r   c                    t         j                  }| j                   |g d      g d       | j                   |d      g d       | j                   |t        g d            g d       | j                   |t	                     g d       | j                  t        |d       | j                  t        |t               y Nr   r   )	r   sequence_listrX   rw   rR   rx   ry   r   rc   )r   xlists     r   test_sequence_listzCAPITest.test_sequence_list  s    ''/A/AtO45Gsu7)UB/+ud3r   c                 r   t         j                  }| j                   |g d      d       | j                   |d      d       | j                   |t        g d            d       | j                   |t	                     d       | j                  t        |d       | j                  t        |t               y rs  )	r   sequence_tuplerX   rw   rR   rx   ry   r   rc   )r   xtuples     r   test_sequence_tuplezCAPITest.test_sequence_tuple  s    ))0/B0/B_ 56H8)VR0+vt4r   N),r   r   r   r[   rd   rj   rm   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  r9  r=  rA  rD  r]  rd  ri  rm  rq  rv  rz  r   r   r   rT   rT   F   s    +:;<=(
7
K
+
6:(N*7"K$	&
7;(B",(3">4E(?4B*86K.*
7998@&?">$9(CT$<L9<&9(45r   rT   __main__)unittestsyscollectionsr   test.supportr   import_moduler   r   r   rc   strr	   bytesr   r   r$   r)   r.   r:   rE   rJ   rR   TestCaserT   r   mainr   r   r   <module>r     s     
 # &'M''4	 4	# 		E 	   	. 	.   P5x   P5f zHMMO r   