
    2hh                        S SK r S SKJr  S SKJr  S SKJr  \R                  " S5      r\R                  " S5      r	S SKJ
r
Jr  Sr " S S	\5      r " S
 S\5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      r " S S5      rS r " S S\ R2                  5      r\S:X  a  \ R8                  " 5         gg)    N)OrderedDict)support)import_helper	_testcapi_testlimitedcapi)PY_SSIZE_T_MINPY_SSIZE_T_MAXc                       \ rS rSrSrg)StrSubclass    N__name__
__module____qualname____firstlineno____static_attributes__r       E/opt/python-3.13.8/usr/lib/python3.13/test/test_capi/test_abstract.pyr   r          r   r   c                       \ rS rSrSrg)BytesSubclass   r   Nr   r   r   r   r   r      r   r   r   c                        \ rS rSrS rS rSrg)WithStr   c                     Xl         g Nvalueselfr    s     r   __init__WithStr.__init__       
r   c                     U R                   $ r   r   r"   s    r   __str__WithStr.__str__       zzr   r   N)r   r   r   r   r#   r(   r   r   r   r   r   r          r   r   c                        \ rS rSrS rS rSrg)WithRepr   c                     Xl         g r   r   r!   s     r   r#   WithRepr.__init__   r%   r   c                     U R                   $ r   r   r'   s    r   __repr__WithRepr.__repr__   r*   r   r   N)r   r   r   r   r#   r2   r   r   r   r   r-   r-      r+   r   r-   c                        \ rS rSrS rS rSrg)	WithBytes   c                     Xl         g r   r   r!   s     r   r#   WithBytes.__init__   r%   r   c                     U R                   $ r   r   r'   s    r   	__bytes__WithBytes.__bytes__!   r*   r   r   N)r   r   r   r   r#   r:   r   r   r   r   r5   r5      r+   r   r5   c                   l    \ rS rSr\S 5       r\R                  S 5       r\R                  S 5       rSrg)
TestObject$   c                     [        S5      e)Ndo not get evilRuntimeErrorr'   s    r   evilTestObject.evil%       ,--r   c                     [        S5      e)Nzdo not set evilrA   r!   s     r   rC   rD   (   rE   r   c                     [        S5      e)Nzdo not del evilrA   r'   s    r   rC   rD   +   rE   r   r   N)	r   r   r   r   propertyrC   setterdeleterr   r   r   r   r=   r=   $   s@    . .	[[. .	\\. .r   r=   c                        \ rS rSrS rS rSrg)ProxyGetItem/   c                     Xl         g r   objr"   rP   s     r   r#   ProxyGetItem.__init__0       r   c                      U R                   U   $ r   rO   r"   keys     r   __getitem__ProxyGetItem.__getitem__2   s    xx}r   rO   N)r   r   r   r   r#   rW   r   r   r   r   rL   rL   /   s    r   rL   c                        \ rS rSrS rS rSrg)ProxySetItem5   c                     Xl         g r   rO   rQ   s     r   r#   ProxySetItem.__init__6   rS   r   c                      X R                   U'   g r   rO   )r"   rV   r    s      r   __setitem__ProxySetItem.__setitem__8   s    r   rO   N)r   r   r   r   r#   r_   r   r   r   r   rZ   rZ   5   s    r   rZ   c                        \ rS rSrS rS rSrg)ProxyDelItem;   c                     Xl         g r   rO   rQ   s     r   r#   ProxyDelItem.__init__<   rS   r   c                     U R                   U	 g r   rO   rU   s     r   __delitem__ProxyDelItem.__delitem__>   s    HHSMr   rO   N)r   r   r   r   r#   rg   r   r   r   r   rb   rb   ;   s    r   rb   c               #   $   #    Sv   Sv   Sv   g 7f)Nabcr   r   r   r   genrm   A   s     
I
I
Is   c                   @   \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)S( r*S) r+S* r,S+ r-S, r.S- r/S. r0S/ r1S0 r2S1 r3S2 r4S3 r5S4r6g5)6CAPITestG   c                 n    U R                  [        U5      [        U5      5        U R                  X5        g r   )assertIstypeassertEqual)r"   actualexpecteds      r   assertTypedEqualCAPITest.assertTypedEqualH   s&    d6lDN3*r   c           	      ~   [         R                  nU R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S5      S5        U R                  U" [        S5      5      S5        U R                  U" [	        S5      5      S5        U R                  U" [	        [        S5      5      5      [        S5      5        U R                  U" [        S5      5      S5        U R                  U" [        [        S5      5      5      [        S5      5        U R                  U" [        5      S5        g )N abc   🐍<abc><NULL>)r   
object_strrw   r   r   r-   NULL)r"   r   s     r   test_object_strCAPITest.test_object_strL   s    %00
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           	      ~   [         R                  nU R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S5      S5        U R                  U" [        S5      5      S5        U R                  U" [	        S5      5      S5        U R                  U" [	        [        S5      5      5      [        S5      5        U R                  U" [	        S5      5      S5        U R                  U" [	        [        S5      5      5      [        S5      5        U R                  U" [
        5      S	5        g )
Nrz   ''r{   'abc'r|   u   '🐍'r}      <🐍>r~   )r   object_reprrw   r   r-   r   )r"   r   s     r   test_object_reprCAPITest.test_object_reprY   s    &22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   [         R                  nU R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S5      S5        U R                  U" [        S5      5      S5        U R                  U" [	        S5      5      S5        U R                  U" [	        [        S5      5      5      [        S5      5        U R                  U" [	        S5      5      S	5        U R                  U" [	        [        S5      5      5      S	5        U R                  U" [
        5      S
5        g )Nrz   r   r{   r   r|   z'\U0001f40d'r}   r   z<\U0001f40d>r~   )r   object_asciirw   r   r-   r   )r"   r   s     r   test_object_asciiCAPITest.test_object_asciif   s    '44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           	         [         R                  nU R                  U" S5      S5        U R                  U" S5      S5        U R                  U" [        S5      5      S5        U R                  U" [	        S5      5      S5        U R                  U" [	        [        S5      5      5      [        S5      5        U R                  U" [        S5      5      S5        U R                  U" [        S5      5      S5        U R                  U" / SQ5      S5        U R                  U" S5      S5        U R                  U" [        / SQ5      5      S5        U R                  [        U[	        [        S5      5      5        U R                  [        U[	        / SQ5      5        U R                  [        US5        U R                  [        US5        U R                  [        U[        5       5        U R                  U" [        5      S5        g )Nr      abc)a   b   c      r{   s   <NULL>)r   object_bytesrw   r   r5   	bytearray
memoryviewiterassertRaises	TypeErrorobjectr   )r"   r   s     r   test_object_bytesCAPITest.test_object_bytess   s   '44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                 N   [         R                  n[        5       nSUl        [	        USS5        U R                  U" US5      S5        U R                  [        XS5        U R                  U" US5      S5        U R                  [        XS5        U R                  [        XS5        g N   r|      rj   rk   rC      )
r   object_getattrr=   rj   setattrrt   r   AttributeErrorrB   r   )r"   xgetattrrP   s      r   test_object_getattrCAPITest.test_object_getattr   s    #22l\2&#s+R0.(=#|4b9,v>)XA6r   c                 j   [         R                  n[        5       nSUl        [	        USS5        U R                  U" US5      S5        U R                  [        XS5        U R                  U" USR                  5       5      S5        U R                  [        XS5        U R                  [        XS5        g Nr   r|   r      a   b   evil   )r   object_getattrstringr=   rj   r   rt   r   r   encoderB   UnicodeDecodeError)r"   getattrstringrP   s      r   test_object_getattrstring"CAPITest.test_object_getattrstring   s    (==l\2&sD126.-dCsL,?,?,ABBG,GD,m'Jr   c                 Z   [         R                  n[        5       nSUl        [	        USS5        U R                  U" US5      S5        U R                  U" US5      [        5        U R                  U" US5      S5        U R                  [        XS5        U R                  [        XS5        g r   )r   object_getoptionalattrr=   rj   r   rt   rr   r   r   rB   r   )r"   getoptionalattrrP   s      r   test_object_getoptionalattr$CAPITest.test_object_getoptionalattr   s    #::l\2&c2B7oc3/@l;R@,fE)_1=r   c                 v   [         R                  n[        5       nSUl        [	        USS5        U R                  U" US5      S5        U R                  U" US5      [        5        U R                  U" USR                  5       5      S5        U R                  [        XS5        U R                  [        XS5        g r   )r   object_getoptionalattrstringr=   rj   r   rt   rr   r   r   r   rB   r   )r"   getoptionalattrstringrP   s      r   !test_object_getoptionalattrstring*CAPITest.test_object_getoptionalattrstring   s     ) F Fl\2&.sD92>+C6G.sL4G4G4IJBO,(=GL,.C'Rr   c                 p   [         R                  n[        5       nSUl        [	        USS5        U R                  U" US5      5        U R                  U" US5      5        U R                  U" US5      5        [        R                  " 5        nU R                  U" US5      5        U R                  UR                  R                  [        5        U R                  [        UR                  R                  5      S5        S S S 5        [        R                  " 5        nU R                  U" US5      5        U R                  UR                  R                  [        5        U R                  [        UR                  R                  5      S5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)	Nr   r|      rj   rk   rC   r@   z(attribute name must be string, not 'int')r   object_hasattrr=   rj   r   
assertTrueassertFalser   catch_unraisable_exceptionrt   
unraisableexc_typerB   str	exc_valuer   )r"   xhasattrrP   cms       r   test_object_hasattrCAPITest.test_object_hasattr   sB   #22l\1%c*+#s+,l34//1RXc623R]]33\BS!8!89.0 2 //1RXc1-.R]]33Y?S!8!89GI 21 21 21s   A2FA2F'
F$'
F5c                    [         R                  n[        5       nSUl        [	        USS5        U R                  U" US5      5        U R                  U" US5      5        U R                  U" USR                  5       5      5        [        R                  " 5        nU R                  U" US5      5        U R                  UR                  R                  [        5        U R                  [        UR                  R                  5      S5        S S S 5        [        R                  " 5        nU R                  U" US5      5        U R                  UR                  R                  [         5        U R#                  [        UR                  R                  5      S	5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)
Nr   r|   r   r   r   r   r@   r   'utf-8' codec can't decode)r   object_hasattrstringr=   rj   r   r   r   r   r   r   rt   r   r   rB   r   r   r   assertRegex)r"   hasattrstringrP   r   s       r   test_object_hasattrstring"CAPITest.test_object_hasattrstring   sK   (==l\1%c401sD12c<+>+>+@AB//1R]389R]]33\BS!8!89.0 2 //1R]389R]]335GHS!8!899; 21 21 21s   A2F$)A2F5$
F25
Gc                 L   [         R                  n[        5       nSUl        [	        USS5        U R                  U" US5      5        U R                  U" US5      5        U R                  U" US5      5        U R                  [        XS5        U R                  [        XS5        g )Nr   r|   r   rj   rk   rC   )
r   object_hasattrwitherrorr=   rj   r   r   r   r   rB   r   )r"   r   rP   s      r   test_object_hasattrwitherror%CAPITest.test_object_hasattrwitherror   s    44l\1%c*+#s+,l34,v>)XA6r   c                 h   [         R                  n[        5       nSUl        [	        USS5        U R                  U" US5      5        U R                  U" US5      5        U R                  U" USR                  5       5      5        U R                  [        XS5        U R                  [        XS5        g )Nr   r|   r   r   r   r   r   )r   object_hasattrstringwitherrorr=   rj   r   r   r   r   r   rB   r   )r"   r   rP   s      r   "test_object_hasattrstringwitherror+CAPITest.test_object_hasattrstringwitherror   s    !??l\1%c401sD12c<+>+>+@AB,GD,m'Jr   c                 $   [         R                  n[        5       nU" USS5        U R                  UR                  S5        U" USS5        U R                  [        US5      S5        U" US[        5        U R                  [        US5      5        U R                  [        XS[        5        U R                  [        XS[        5        U R                  [        XSS5        U R                  [        USSS5        U R                  [        XS	S5        g )
Nrj      r|      rk   rC   good*   r   )r   object_setattrr=   rt   rj   getattrr   r   hasattrr   r   rB   r   )r"   xsetattrrP   s      r   test_object_setattrCAPITest.test_object_setattr  s    #22lc1"lA&l3Q7 	c4 c*+.(dC,vtD,vvF.(BQ?)XAq9r   c                 p   [         R                  n[        5       nU" USS5        U R                  UR                  S5        U" USR                  5       S5        U R                  [        US5      S5        U" US[        5        U R                  [        US5      5        U R                  [        XS[        5        U R                  [        XS[        5        U R                  [        XSS5        U R                  [        US	SS5        U R                  [        XS
S5        U R                  [        XSS5        g )Nr   r   r|   r   rj   r   r   r   r   r   r   )r   object_setattrstringr=   rt   rj   r   r   r   r   r   r   r   rB   r   r   )r"   setattrstringrP   s      r   test_object_setattrstring"CAPITest.test_object_setattrstring  s    (==lc4#"c<..0!4l3Q7 	c4&c*+.-dDI,GTJ,GVL.-T1E)]A>,m'1Mr   c                    [         R                  n[        5       nSUl        [	        USS5        U" US5        U R                  [        US5      5        U R                  [        XS5        U" US5        U R                  [        US5      5        U R                  [        USS5        U R                  [        XS5        U R                  [        XS5        g )	Nr   r|   r   rj   rk   r   	numeratorrC   )r   object_delattrr=   rj   r   r   r   r   r   rB   r   )r"   xdelattrrP   s      r   test_object_delattrCAPITest.test_object_delattr4  s    #22l\1%cc*+.(=l#l34.(BD,v>)XA6r   c                    [         R                  n[        5       nSUl        [	        USS5        U" US5        U R                  [        US5      5        U R                  [        XS5        U" USR                  5       5        U R                  [        US5      5        U R                  [        USS5        U R                  [        XS	5        U R                  [        XS
5        g )Nr   r|   r   r   rj   r   r   s	   numeratorr   r   )r   object_delattrstringr=   rj   r   r   r   r   r   r   rB   r   )r"   delattrstringrP   s      r   test_object_delattrstring"CAPITest.test_object_delattrstringE  s    (==l\1%c4 c*+.-dCc<..01l34.-\J,GD,m'Jr   c                    [         R                  nU R                  U" SS05      5        U R                  U" SS/5      5        U R                  U" S5      5        U R                  U" S5      5        U R                  U" S5      5        U R                  U" S5      5        U R                  U" [	        5       5      5        U R                  U" [
        5      5        g Nr   r   r   r   r{   r   r   )r   mapping_checkr   r   r   r   r"   checks     r   test_mapping_checkCAPITest.test_mapping_checkW  s     ..q!f&q!f&f&e%f&r#vx)t%r   c                    [         R                  [         R                  4 H  nU R                  U" SS05      S5        U R                  U" SS/5      S5        U R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S5      S5        U R	                  [
        US5        U R	                  [
        U[        5       5        U R	                  [        U[        5        M     g Nr   r   r   r{   r   r   r   )	r   mapping_sizemapping_lengthrt   r   r   r   SystemErrorr   r"   sizes     r   test_mapping_sizeCAPITest.test_mapping_sizeb  s    $113C3R3RRDT1a&\1-T1a&\1-T&\1-T%[!,T&\1-ir2ivx8k46 Sr   c                    [         R                  nSSS.nU R                  U" US5      S5        U R                  [        XS5        U R                  U" US5      S5        [        U5      nU R                  U" US5      S5        U R                  [        XS5        U R                  U" / SQS5      S5        U R                  [        USS5        U R                  [        U0 / 5        U R                  [        U0 [        5        U R                  [        U/ S5        U R                  [        U/ S5        U R                  [        U[        S5        g 	Nr   r   rj   r|   rj   rk   r|   rj   rk   rl   r   )
r   object_getitemrt   r   KeyErrorrL   r   r  r   
IndexErrorr"   getitemdctdct2s       r   test_object_getitemCAPITest.test_object_getitemn  s   "11Q'c*A.(G#6l3Q7C s+Q/(G37!4c:)Wb#6)Wb"5+wD9*gr15)Wb#6+wc:r   c                 R   [         R                  nSSS.nU R                  U" US5      S5        U R                  [        XS5        U R                  U" USR                  5       5      S5        [        U5      nU R                  U" US5      S5        U R                  [        XS5        U R                  [        USS5        U R                  [        U0 S5        U R                  [        U0 [        5        U R                  [        U/ S5        U R                  [        U[        S5        g 	Nr   r   r	  r   r   r|   r   r   )r   mapping_getitemstringrt   r   r  r   rL   r   r   r  r   r"   getitemstringr  r  s       r   test_mapping_getitemstring#CAPITest.test_mapping_getitemstring  s    (>>Q'sD115(M=sL,?,?,ABAFC tT2A6(M>)]B=,mRI+}b$?)]B=+}dDAr   c                 D   [         R                  nSSS.nU R                  U" US5      S5        U R                  U" US5      [        5        U R                  U" US5      S5        [	        U5      nU R                  U" US5      S5        U R                  U" US5      [        5        U R                  U" / SQS5      S5        U R                  [        USS5        U R                  [        U0 / 5        U R                  [        U/ S5        U R                  [        U/ S5        g r  )r   mapping_getoptionalitemrt   r  rL   r   r   r  r  s       r   test_mapping_getoptionalitem%CAPITest.test_mapping_getoptionalitem  s    33Q'c*A.c*H5l3Q7C s+Q/s+X6!4c:)Wb#6)Wb"5*gr15)Wb#6r   c                 2   [         R                  nSSS.nU R                  U" US5      S5        U R                  U" US5      [        5        U R                  U" USR	                  5       5      S5        [        U5      nU R                  U" US5      S5        U R                  U" US5      [        5        U R                  [        USS5        U R                  [        U0 S5        U R                  [        U0 [        5        U R                  [        U/ S5        g r  )r   mapping_getoptionalitemstringrt   r  r   rL   r   r   r   r  r   r  s       r   "test_mapping_getoptionalitemstring+CAPITest.test_mapping_getoptionalitemstring  s    !??Q'sD115sD18<sL,?,?,ABAFC tT2A6tT2H=)]B=,mRI+}b$?)]B=r   c                  	   [         R                  nSSS.nU R                  U" US5      5        U R                  U" US5      5        U R                  U" US5      5        [	        U5      nU R                  U" US5      5        U R                  U" US5      5        U R                  U" / SQS5      5        [
        R                  " 5        nU R                  U" SS5      5        U R                  UR                  R                  [        5        U R                  [        UR                  R                  5      S	5        S S S 5        [
        R                  " 5        nU R                  U" 0 / 5      5        U R                  UR                  R                  [        5        U R                  [        UR                  R                  5      S
5        S S S 5        [
        R                  " 5        nU R                  U" / S5      5        U R                  UR                  R                  [        5        U R                  [        UR                  R                  5      S5        S S S 5        [
        R                  " 5        nU R                  U" / S5      5        U R                  UR                  R                  [        5        U R                  [        UR                  R                  5      S5        S S S 5        [
        R                  " 5        nU R                  U" 0 [        5      5        U R                  UR                  R                  [        5        U R                  [        UR                  R                  5      S5        S S S 5        [
        R                  " 5        nU R                  U" [        S5      5        U R                  UR                  R                  [        5        U R                  [        UR                  R                  5      S5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GNf= f! , (       d  f       GN= f! , (       d  f       GNl= f! , (       d  f       N= f! , (       d  f       g = f)Nr   r   r	  rj   rk   r|   r
  r   !'int' object is not subscriptablezunhashable type: 'list'zlist index out of range0list indices must be integers or slices, not str!null argument to internal routine)r   mapping_haskeyr   r   rL   r   r   rt   r   r   r   r   r   r  r   r  )r"   haskeyr  r  r   s        r   test_mapping_haskeyCAPITest.test_mapping_haskey  s2   !00Q'sC()S)*sL12C tS)*c*+23//1RVB_-R]]33Y?S!8!89@B 2 //1RVB^,R]]33Y?S!8!8968 2 //1RVB]+R]]33Z@S!8!8968 2 //1RVB_-R]]33Y?S!8!89OQ 2 //1RVB-.R]]33[AS!8!89@B 2 //1RVD#./R]]33[AS!8!89@B 21= 21 21 21 21 21 21sN   A2PA2P(&A2P:5A2QA6QA6Q/
P%(
P7:
Q	
Q
Q,/
Q=c                    [         R                  nSSS.nU R                  U" US5      5        U R                  U" US5      5        U R                  U" USR	                  5       5      5        [        U5      nU R                  U" US5      5        U R                  U" US5      5        [        R                  " 5        nU R                  U" SS5      5        U R                  UR                  R                  [        5        U R                  [        UR                  R                  5      S5        S S S 5        [        R                  " 5        nU R                  U" 0 S	5      5        U R                  UR                  R                  [        5        U R                  [        UR                  R                  5      S
5        S S S 5        [        R                  " 5        nU R                  U" 0 [         5      5        U R                  UR                  R                  ["        5        U R                  [        UR                  R                  5      S5        S S S 5        [        R                  " 5        nU R                  U" / S5      5        U R                  UR                  R                  [        5        U R                  [        UR                  R                  5      S5        S S S 5        [        R                  " 5        nU R                  U" [         S5      5        U R                  UR                  R                  ["        5        U R                  [        UR                  R                  5      S5        S S S 5        g ! , (       d  f       GNT= f! , (       d  f       GN= f! , (       d  f       GNV= f! , (       d  f       N= f! , (       d  f       g = f)Nr   r   r	  r   r   r|   r   r$  r   r   r&  r%  )r   mapping_haskeystringr   r   r   rL   r   r   rt   r   r   r   r   r   r   r   r   r  )r"   haskeystringr  r  r   s        r   test_mapping_haskeystring"CAPITest.test_mapping_haskeystring  s   '<<Q'S$/0c401S,*=*=*?@AC T401dD12//1R\"d34R]]33Y?S!8!89@B 2 //1R\"g67R]]335GHS!8!899; 2 //1R\"d34R]]33[AS!8!89@B 2 //1R\"d34R]]33Y?S!8!89OQ 2 //1R\$56R]]33[AS!8!89@B 211 21 21 21 21 21sA   <A2M;A2NA6N-A2N1<A6O;
N

N
N.1
N?
Oc                 (   [         R                  nSSS.nU R                  U" US5      5        U R                  U" US5      5        U R                  U" US5      5        [	        U5      nU R                  U" US5      5        U R                  U" US5      5        U R                  U" / SQS5      5        U R                  [        USS5        U R                  [        U0 / 5        U R                  [        U/ S5        U R                  [        U/ S5        g r  )r   mapping_haskeywitherrorr   r   rL   r   r   r  )r"   r(  r  r  s       r   test_mapping_haskeywitherror%CAPITest.test_mapping_haskeywitherror  s    !99Q'sC()S)*sL12C tS)*c*+23)VR5)VR4*fb!4)VR5r   c                    [         R                  nSSS.nU R                  U" US5      5        U R                  U" US5      5        U R                  U" USR	                  5       5      5        [        U5      nU R                  U" US5      5        U R                  U" US5      5        U R                  [        USS5        U R                  [        U0 S5        U R                  [        U0 [        5        U R                  [        U/ S5        g r  )r   mapping_haskeystringwitherrorr   r   r   rL   r   r   r   r  r   )r"   r-  r  r  s       r   "test_mapping_haskeystringwitherror+CAPITest.test_mapping_haskeystringwitherror'  s    'EEQ'S$/0c401S,*=*=*?@AC T401dD12)\2t<,lBH+|R>)\2t<r   c                    [         R                  n0 nU" USS5        U R                  USS05        U" USS5        U R                  USSS.5        0 n[        U5      nU" USS5        U R                  USS05        / SQnU" USS5        U R                  U/ S	Q5        U R	                  [
        US
SS5        U R	                  [
        U0 / S5        U R	                  [        U0 [        S5        U R	                  [        U0 S[        5        U R	                  [        U/ SS5        U R	                  [
        U/ SS5        U R	                  [
        USSS5        U R	                  [        U[        SS5        g )Nrj   r   r|   r   r	  r
  r   xrj   r9  rl   r   r   )	r   object_setitemrt   rZ   r   r   r  r   r  )r"   setitemr  r  lsts        r   test_object_setitemCAPITest.test_object_setitem8  sS   "11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   [         R                  n0 nU" USS5        U R                  USS05        U" USR                  5       S5        U R                  USSS.5        0 n[	        U5      nU" USS5        U R                  USS05        U R                  [        USSS5        U R                  [        U0 SS5        U R                  [        U0 [        S5        U R                  [        U0 S[        5        U R                  [        U/ SS5        U R                  [        U[        SS5        g )	Nr   r   rj   r|   r   r	  r   r   )
r   mapping_setitemstringrt   r   rZ   r   r   r   r  r   )r"   setitemstringr  r  s       r   test_mapping_setitemstring#CAPITest.test_mapping_setitemstringR  s   (>>c4#sAh'c<..0!4AQ78C dD!$sAh')]Ba@,mR!L+}b$B+}b$E)]Ba@+}dD!Dr   c                     [         R                  [         R                  4 GHY  nSSSS.nU" US5        U R                  USSS.5        U R	                  [
        XS5        U" US5        U R                  US	S05        SSS
.n[        U5      nU" US5        U R                  US	S05        U R	                  [
        XS5        / SQnU" US5        U R                  USS	/5        U R	                  [        USS5        U R	                  [        U0 / 5        U R	                  [        U0 [        5        U R	                  [        U/ S5        U R	                  [        U/ S5        U R	                  [        U[        S5        GM\     g )Nr   r   r   rj   rl   r|   rj   rl   r|   rk   r|   rl   rj   rl   r
  r   )r   object_delitemmapping_delitemrt   r   r  rb   r   r  r   r  )r"   delitemr  r  r=  s        r   test_object_delitemCAPITest.test_object_delitemf  sX   '668H8X8XXG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#>/ Yr   c                 x   [         R                  nSSSS.nU" US5        U R                  USSS.5        U R                  [        XS5        U" USR                  5       5        U R                  US	S05        SSS
.n[        U5      nU" US5        U R                  US	S05        U R                  [        XS5        U R                  [        USS5        U R                  [        U0 S5        U R                  [        U0 [        5        U R                  [        U/ S5        U R                  [        U[        S5        g )Nr   r   r   rF  r   rG  r   r|   rl   rH  r   r   )r   mapping_delitemstringrt   r   r  r   rb   r   r   r  r   )r"   delitemstringr  r  s       r   test_mapping_delitemstring#CAPITest.test_mapping_delitemstring  s   (>>AQ/c4 AQ78(M=c<..01sAh'AC dD!sAh'(M>)]B=,mRI+}b$?)]B=+}dDAr   c           
      $    " S S[         5      n " S S[         5      nSSSS.n0 [        5       U" 5       U" 5       U[        U5      U" U5      U" U5      4 H  nU R                  [        R	                  U5      [        UR                  5       5      5        U R                  [        R                  U5      [        UR                  5       5      5        U R                  [        R                  U5      [        UR                  5       5      5        M     g )	Nc                   @   ^  \ rS rSrU 4S jrU 4S jrU 4S jrSrU =r$ )8CAPITest.test_mapping_keys_valuesitems.<locals>.Mapping1i  c                 2   > [        [        TU ]	  5       5      $ r   )listsuperkeysr"   	__class__s    r   rY  =CAPITest.test_mapping_keys_valuesitems.<locals>.Mapping1.keys  s    EGLN++r   c                 2   > [        [        TU ]	  5       5      $ r   )rW  rX  valuesrZ  s    r   r^  ?CAPITest.test_mapping_keys_valuesitems.<locals>.Mapping1.values  s    EGN,--r   c                 2   > [        [        TU ]	  5       5      $ r   )rW  rX  itemsrZ  s    r   ra  >CAPITest.test_mapping_keys_valuesitems.<locals>.Mapping1.items  s    EGMO,,r   r   	r   r   r   r   rY  r^  ra  r   __classcell__r[  s   @r   Mapping1rU    s    ,.- -r   rf  c                   @   ^  \ rS rSrU 4S jrU 4S jrU 4S jrSrU =r$ )8CAPITest.test_mapping_keys_valuesitems.<locals>.Mapping2i  c                 2   > [        [        TU ]	  5       5      $ r   )tuplerX  rY  rZ  s    r   rY  =CAPITest.test_mapping_keys_valuesitems.<locals>.Mapping2.keys  s    UW\^,,r   c                 2   > [        [        TU ]	  5       5      $ r   )rj  rX  r^  rZ  s    r   r^  ?CAPITest.test_mapping_keys_valuesitems.<locals>.Mapping2.values  s    UW^-..r   c                 2   > [        [        TU ]	  5       5      $ r   )rj  rX  ra  rZ  s    r   ra  >CAPITest.test_mapping_keys_valuesitems.<locals>.Mapping2.items  s    UW]_--r   r   rc  re  s   @r   Mapping2rh    s    -/. .r   rp  r   r   r   )foobarspam)dictr   assertListEqualr   mapping_keysrW  rY  mapping_valuesr^  mapping_itemsra  )r"   rf  rp  dict_objmappings        r   test_mapping_keys_valuesitems&CAPITest.test_mapping_keys_valuesitems  s    	-t 	-	.t 	. Q2KM8:xz +h"7 *HX,>@G   !1!>!>w!G!%glln!57  !1!@!@!I!%gnn&6!79  !1!?!?!H!%gmmo!68@r   c                    U R                  [        [        R                  [	        5       5        U R                  [        [        R
                  [	        5       5        U R                  [        [        R                  [	        5       5        U R                  [        [        R                  / 5        U R                  [        [        R
                  / 5        U R                  [        [        R                  / 5        U R                  [        [        R                  [        5        U R                  [        [        R
                  [        5        U R                  [        [        R                  [        5         " S S5      nU" 5       nU R                  [        [        R                  U5        U R                  [        [        R
                  U5        U R                  [        [        R                  U5        g )Nc                   &    \ rS rSrS rS rS rSrg)BCAPITest.test_mapping_keys_valuesitems_bad_arg.<locals>.BadMappingi  c                     g r   r   r'   s    r   rY  GCAPITest.test_mapping_keys_valuesitems_bad_arg.<locals>.BadMapping.keys      r   c                     g r   r   r'   s    r   r^  ICAPITest.test_mapping_keys_valuesitems_bad_arg.<locals>.BadMapping.values  r  r   c                     g r   r   r'   s    r   ra  HCAPITest.test_mapping_keys_valuesitems_bad_arg.<locals>.BadMapping.items  r  r   r   N)r   r   r   r   rY  r^  ra  r   r   r   r   
BadMappingr    s    r   r  )
r   r   r   rv  r   rw  rx  r  r   r   )r"   r  bad_mappings      r   %test_mapping_keys_valuesitems_bad_arg.CAPITest.test_mapping_keys_valuesitems_bad_arg  sG   .*:*G*GR.*:*I*I68T.*:*H*H&(S.*:*G*GL.*:*I*I2N.*:*H*H"M+'7'D'DdK+'7'F'FM+'7'E'EtL	 	 !l)%5%B%BKP)%5%D%DkR)%5%C%C[Qr   c                 ~   [         R                  nU R                  U" SS05      5        U R                  U" SS/5      5        U R                  U" S5      5        U R                  U" S5      5        U R                  U" S5      5        U R                  U" S5      5        U R                  U" [	        5       5      5        g r   )r   sequence_checkr   r   r   r   s     r   test_sequence_checkCAPITest.test_sequence_check  s     //1v'q!f&f&e%f&r#vx)r   c                    [         R                  [         R                  4 H  nU R                  U" SS/5      S5        U R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S5      S5        U R	                  [
        U0 5        U R	                  [
        US5        U R	                  [
        U[        5       5        U R	                  [        U[        5        M     g r   )	r   sequence_sizesequence_lengthrt   r   r   r   r  r   r  s     r   test_sequence_sizeCAPITest.test_sequence_size  s    $224D4T4TTDT1a&\1-T&\1-T%[!,T&\1-ir2ir2ivx8k46 Ur   c                    [         R                  n/ SQnU R                  U" US5      S5        U R                  U" US5      S5        U R                  [        XS5        U R                  [        X[
        5        U R                  [        X[        5        U R                  [        USS5        U R                  [        U0 S5        U R                  [        U[        S5        g )Nr
  r   rk   rl   r   r   )
r   sequence_getitemrt   r   r  r	   r   r   r  r   )r"   r  r=  s      r   test_sequence_getitemCAPITest.test_sequence_getitem  s    "33a#.b)3/*gA6*gNC*gNC)Wb!4)Wb!4+wa8r   c                    [         R                  nU R                  U" SS/SS/5      / SQ5        U R                  U" SS5      S5        U R                  [        U/ S5        U R                  [        US/ 5        U R                  [        U/ S	5        U R                  [        US	/ 5        U R                  [        US	S
5        U R                  [
        U/ [        5        U R                  [
        U[        / 5        g )Nrj   rk   r   r   rj   rk   r   r   rj   rk   r   r   r   +   )r   sequence_concatrt   r   r   r  r   )r"   concats     r   test_sequence_concatCAPITest.test_sequence_concat  s    !11c
QF35EF
F35EF)VR4)VR4)VR4)VR4)VR4+vr48+vtR8r   c                 X   [         R                  nU R                  U" SS/S5      / SQ5        U R                  U" SS5      S5        U R                  U" SS/S5      / 5        U R                  U" SS/S5      / 5        U R                  U" SS/[        5      / 5        U R                  U" / [        5      / 5        U R                  [        USS/[        5        U R                  [        U[        5       S5        U R                  [        USS5        U R                  [        U[        S5        g 	Nrj   rk   r   )rj   rk   rj   rk   r  r   r  r   )r   sequence_repeatrt   r   r	   r   MemoryErrorr   setr  r   )r"   repeats     r   test_sequence_repeatCAPITest.test_sequence_repeat  s    !11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                 R   [         R                  nSS/nU" USS/5      nU R                  U/ SQ5        U R                  X25        SS/nU" US5      nU R                  U/ SQ5        U R                  X25        U R                  U" SS5      S5        U R	                  [
        US/ 5        U R	                  [
        U/ S	5        U R	                  [
        US	/ 5        U R	                  [
        US	S
5        U R	                  [        U/ [        5        U R	                  [        U[        / 5        g )Nrj   rk   r   r   r  r   r  r   r   r  )r   sequence_inplaceconcatrt   rr   r   r   r  r   )r"   inplaceconcatr=  ress       r   test_sequence_inplaceconcat$CAPITest.test_sequence_inplaceconcat  s   (??CjC!Q(./cCjC(./cz6:<LM)]B;)]B;)]B;)]B;+}b$?+}dB?r   c                    [         R                  nSS/nU" US5      nU R                  U/ SQ5        U R                  X25        U R                  U" SS5      S5        U R                  U" SS/S5      / 5        U R                  U" SS/S5      / 5        U R                  U" SS/[        5      / 5        U R                  U" / [
        5      / 5        U R                  [        USS/[
        5        U R                  [        U[        5       S5        U R                  [        USS5        U R                  [        U[        S5        g r  )r   sequence_inplacerepeatrt   rr   r   r	   r   r  r   r  r  r   )r"   inplacerepeatr=  r  s       r   test_sequence_inplacerepeat$CAPITest.test_sequence_inplacerepeat  s   (??CjC#23cz157KLSz15r:Sz26;Sz>BBGr>:B?+}sCj.Q)]CE1=)]B:+}dA>r   c                 &   [         R                  n/ SQnU" USS5        U R                  U/ SQ5        U" USS5        U R                  U/ SQ5        U" US[        5        U R                  USS/5        U R	                  [
        XS	S5        U R	                  [
        X[        S5        U R	                  [
        X[        S5        U R	                  [        US
SS5        U R	                  [        U0 SS5        U R	                  [        U[        SS5        g )Nr
  r   r9  r:  r  y)rj   r9  r  r   r   r   )
r   sequence_setitemrt   r   r   r  r	   r   r   r  )r"   r<  r=  s      r   test_sequence_setitemCAPITest.test_sequence_setitem*  s    "33Qo.Ro.QsCj)*gAs;*gNCH*gNCH)Wb!S9)Wb!S9+wa=r   c                    [         R                  n/ SQnU" US5        U R                  USS/5        U" US5        U R                  US/5        U R                  [        XS5        U R                  [        X[
        5        U R                  [        X[        5        U R                  [        USS5        U R                  [        U0 S5        U R                  [        U[        S5        g )Nr
  r   rj   rl   r  r   r   )
r   sequence_delitemrt   r   r  r	   r   r   r  r   )r"   rK  r=  s      r   test_sequence_delitemCAPITest.test_sequence_delitem<  s    "33QsCj)Rse$*gA6*gNC*gNC)Wb!4)Wb!4+wa8r   c           	      D   [         R                  n/ [        SS5      Q[        P[        P Hz  n/ [        SS5      Q[        P[        P HY  n/ SQn/ SQnU" XBUSS/5        SS/XRU& U R                  XE5        / SQn/ SQnU" XBU[        5        XRU2	 U R                  XE5        M[     M|      " S S5      nU" 5       nU" USS	S
5        U R                  UR                  [        SS	5      5        U R                  UR                  S
5        SnU R                  [        XSSS5        U R                  US5        Sn	U R                  [        XSSS5        U R                  U	S5        U R                  [        U[        5       SSS5        U R                  [        U[        SSS5        g )N   r   r   r      r   r   	   c                       \ rS rSrS rSrg)/CAPITest.test_sequence_setslice.<locals>.Customi^  c                     Xl         X l        g r   indexr    )r"   r  r    s      r   r_   ;CAPITest.test_sequence_setslice.<locals>.Custom.__setitem___  s    "
"
r   r  N)r   r   r   r   r_   r   r   r   r   Customr  ^  s    #r   r  r   r   r{   r   r   r   r  r   r   )r   r  abcdxy)r   sequence_setsliceranger   r	   rt   r   r  slicer    r   r   r   r  )
r"   setslicestartstopdata	data_copyr  rl   bad_seq1bad_seq2s
             r   test_sequence_setsliceCAPITest.test_sequence_setsliceK  s   #55 EuR|D^D^DEG%A,GGG&+	dQF3)*A	%  1&+	dD1Dj)  1 H E	# 	#
 HAq% %1+.%(  )XAvF<0)XAtD6* 	)XvxAtD+xq!TBr   c                 
   [         R                  n/ [        SS5      Q[        P[        P HJ  n/ [        SS5      Q[        P[        P H)  n/ SQn/ SQnU" XBU5        XRU2	 U R                  XE5        M+     ML      " S S5      nU" 5       nU" USS5        U R                  UR                  [        SS5      5        SnU R                  [        XS	S
5        U R                  US5        Sn	U R                  [        XS	S
5        U R                  U	S5        U R                  [        U[        5       S	S
5        U R                  [        U[        S	S
5        SSSS.n
U R                  [        XS	S
5        U R                  U
SSSS.5        g )Nr  r  r  c                       \ rS rSrS rSrg)/CAPITest.test_sequence_delslice.<locals>.Customi  c                     Xl         g r   r  )r"   r  s     r   rg   ;CAPITest.test_sequence_delslice.<locals>.Custom.__delitem__  s    "
r   r  N)r   r   r   r   rg   r   r   r   r   r  r    s    #r   r  r   r   r  r   r   r  rj   rk   rl   )r   r   r   )r   sequence_delslicer  r   r	   rt   r  r  r   r   r   r  r   r  )r"   delslicer  r  r  r  r  rl   r  r  rz  s              r   test_sequence_delsliceCAPITest.test_sequence_delsliceu  sp   #55 EuR|D^D^DEG%A,GGG&+	d+Dj)  1 H E	# 	# HAq%1+.  )XA><0)XA>6* 	)XvxA>+xq!<cc*(Hq!<ccc":;r   c                 (   [         R                  n/ SQnU R                  U" US5      S5        U R                  U" US5      S5        U R                  U" [        U5      S5      S5        U R                  U" [        U5      S5      S5        U R                  U" SS0S5      S5        U R	                  [
        USS5        U R	                  [        U/ [        5        U R	                  [        US/[        5        U R	                  [        U[        S5        g )Nrj   rk   rj   rj   r   rl   r   r   r   )r   sequence_countrt   r   r   r   r  r   )r"   countr=  s      r   test_sequence_countCAPITest.test_sequence_count  s     //sC!,sC!,tCy#.2tCy#.2Qx-q1)UB4+ub$7+uqc48+udC8r   c                    [         R                  n/ SQnU R                  U" US5      S5        U R                  U" US5      S5        U R                  U" [        U5      S5      S5        U R                  U" [        U5      S5      S5        U R                  U" SS0S5      S5        U R                  U" / [        5      S5        U R                  [        USS5        U R                  [        US/[        5        g )Nr  rj   r   rl   r   r   r   )r   sequence_containsrt   r   r   r   r   r  )r"   containsr=  s      r   test_sequence_containsCAPITest.test_sequence_contains  s    #55#s+Q/#s+Q/$s)S115$s)S1153(C0!4 	"d+Q/)Xr37+x!d;r   c                    [         R                  n/ SQnU R                  U" US5      S5        U R                  U" US5      S5        U R                  [        XS5        U R                  U" [        U5      S5      S5        U R                  U" [        U5      S5      S5        U R                  [        U[        U5      S5        SSS	.nU R                  U" US5      S5        U R                  U" US5      S5        U R                  [        XS5        U R                  [        US
S5        U R                  [        U/ [        5        U R                  [        US/[        5        U R                  [        U[        S5        g )Nr  rj   r   rk   r   rl   r   r   r  r   )	r   sequence_indexrt   r   
ValueErrorr   r   r  r   )r"   r  r=  r  s       r   test_sequence_indexCAPITest.test_sequence_index  s8    //sC!,sC!,*e#6tCy#.2tCy#.2*eT#Y<AsC!,sC!,*e#6)UB4+ub$7+uqc48+udC8r   c                    [         R                  nU R                  U" / SQ5      / SQ5        U R                  U" S5      / SQ5        U R                  U" [        / SQ5      5      / SQ5        U R                  U" [	        5       5      / SQ5        U R                  [        US5        U R                  [        U[        5        g Nr
  r   )	r   sequence_listrt   r   rm   r   r   r  r   )r"   xlists     r   test_sequence_listCAPITest.test_sequence_list  s     ../A/AtO45Gsu7)UB/+ud3r   c                 r   [         R                  nU R                  U" / SQ5      S5        U R                  U" S5      S5        U R                  U" [        / SQ5      5      S5        U R                  U" [	        5       5      S5        U R                  [        US5        U R                  [        U[        5        g r  )	r   sequence_tuplert   r   rm   r   r   r  r   )r"   xtuples     r   test_sequence_tupleCAPITest.test_sequence_tuple  s    !000/B0/B_ 56H8)VR0+vt4r   c                     [         R                  n[        5       SS/ 4 H.  nU R                  U" U5      [        R	                  U5      5        M0     g )Nr   string)r   object_generichashr   rt   __hash__)r"   generichashrP   s      r   test_object_generichash CAPITest.test_object_generichash  s@    228Q",C[-vs/CD -r   r   N)7r   r   r   r   rw   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r!  r)  r.  r2  r6  r>  rC  rL  rQ  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r   ro   ro   G   s   +:;<=(
7
K
>
SI0;0
7
K:(N*7"K$	&
7;(B"7(>"/Bb'BR6*=">4E(?4B*86R.*
7998@&?">$9(CT$<L9<&9(45Er   ro   __main__)unittestcollectionsr   testr   test.supportr   import_moduler   r   r   r	   r   r   r   bytesr   r   r-   r5   r=   rL   rZ   rb   rm   TestCasero   r   mainr   r   r   <module>r     s     #  &''4	 ../AB  4	# 		E 	   	. 	.   bEx   bEJ zMMO r   