
    daf:8                         d dl Z d dlZd dlmZmZ d dlmZ d dlmZ d dl	m
Z
  e
j                  d      ZdZ G d de      Zd	 Z G d
 de j"                        Zedk(  r e j(                          yy)    N)OrderedDictUserDict)MappingProxyType)support)import_helper	_testcapic                       e Zd Zd Zd Zd Zy)DictSubclassc                     t        d      )Nzdo not get evilRuntimeErrorselfkeys     3/root/Python-3.12.4/Lib/test/test_capi/test_dict.py__getitem__zDictSubclass.__getitem__       ,--    c                     t        d      )Nzdo not set evilr   )r   r   values      r   __setitem__zDictSubclass.__setitem__   r   r   c                     t        d      )Nzdo not del evilr   r   s     r   __delitem__zDictSubclass.__delitem__   r   r   N)__name__
__module____qualname__r   r   r    r   r   r
   r
      s    ...r   r
   c               #   $   K   d d d y w)Nabcr   r   r   r   genr"      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y)CAPITestc                 N   t         j                  }| j                   |ddi             | j                   |t        ddi                   | j	                   |t        ddi                   | j	                   |ddg             | j	                   |t                            y N      )r   
dict_check
assertTruer   assertFalser   objectr   checks     r   test_dict_checkzCAPITest.test_dict_check   s    $$q!f&k1a&123xA/011v'vx)r   c                 N   t         j                  }| j                   |ddi             | j                   |t	        ddi                   | j                   |t        ddi                   | j                   |ddg             | j                   |t                            y r&   )r   dict_checkexactr*   r+   r   r   r,   r-   s     r   test_dict_checkexactzCAPITest.test_dict_checkexact'   s    ))q!f&{Aq6234xA/011v'vx)r   c                     t         j                  } |       }| j                  |i        | j                  t	        |      t
                |       }| j                  ||       y N)r   dict_newassertEqualassertIstypedictassertIsNot)r   r5   dctdct2s       r   test_dict_newzCAPITest.test_dict_new0   sM    %%jb!d3i&zs#r   c                    t         j                  }ddit        ddi      t        ddi      fD ]  } ||      }| j	                  t        |      t               | j                  ||       | j                  t              5  d|d<   d d d        | j                  |d   d       d|d<   | j                  |d   d        | j                  t        |g        | j                  t        |d       y # 1 sw Y   ixY w)Nr'   r(         *   )
r   dictproxy_newr   r   r7   r8   r   r6   assertRaises	TypeError)r   rB   r;   proxys       r   test_dictproxy_newzCAPITest.test_dictproxy_new8   s    !//q6;1v.!Q0@@ 	*C!#&EMM$u+'78UC(""9- aU1Xq)CFU1Xq)	* 	)]B7)]B7 s   ?C--C6	c                    t         j                  }ddit        ddi      fD ];  } ||      }| j                  t	        |      t
               | j                  ||       = | j                  t        |t                      | j                  t        |g        | j                  t        |d       | j                  t        |t               y Nr'   r(   rA   )r   	dict_copyr   r7   r8   r9   r6   rC   SystemErrorr   NULL)r   copyr;   dct_copys       r   test_dict_copyzCAPITest.test_dict_copyH   s    ""q6;1v.. 	,CCyHMM$x.$/Xs+	,
 	+tXZ8+tR0+tR0+tT2r   c                    t         j                  }ddi} ||       | j                  |i        t        ddi      } ||       | j                  |ddi       ddg} ||       | j                  |ddg        |t	                      y r&   )r   
dict_clearr6   r   r,   )r   clearr;   lsts       r   test_dict_clearzCAPITest.test_dict_clearT   s    $$!fc
b!
 1vc
q!f%!fc
q!f%fhr   c                    t         j                  }| j                   |ddi      d       | j                   |t        ddi            d       | j	                  t
        |t                      | j	                  t
        |g        | j	                  t
        |d       | j	                  t
        |t                      | j	                  t
        |t               y rH   )	r   	dict_sizer6   r   rC   rJ   r   r,   rK   )r   sizes     r   test_dict_sizezCAPITest.test_dict_sizeg   s    ""q!fq)k1a&12A6+tXZ8+tR0+tR0+tVX6+tT2r   c                    t         j                  }ddd}| j                   ||d      d       | j                   ||d      t               | j                   ||d      d       t        |      }| j                   ||d      d       | j                   ||d      t               | j                   |i g       t               | j                   |dd      t               | j                   |dgd      t               y )	Nr'   r(   r      🐍r   r    rZ   rA   r   )r   dict_getitemr6   r7   KeyErrorr
   r   getitemr;   r<   s       r   test_dict_getitemzCAPITest.test_dict_getitemr   s    ((Q'c*A.gc3'2l3Q7C s+Q/gdC((3gb"ox0gb#&1gqc1ox0r   c                    t         j                  }ddd}| j                   ||d      d       | j                   ||d      t               | j                   ||dj                               d       t        |      }| j                   ||d      d       | j                   ||d      t               | j                   |i d      t               | j                   |dd      t               | j                   |g d      t               y )	Nr'   r(   rY      a   brZ      rA   )r   dict_getitemstringr6   r7   r\   encoder
   )r   getitemstringr;   r<   s       r   test_dict_getitemstringz CAPITest.test_dict_getitemstring   s    !44Q'sD115mC.9sL,?,?,ABAFC tT2A6mD$/:mB0(;mB-x8mB-x8r   c                    t         j                  }ddd}| j                   ||d      d       | j                   ||d      t               | j                   ||d      d       t        |      }| j                   ||d      d       | j                   ||d      t               | j                  t        |dd       | j                  t        |i g        | j                  t        |g d       | j                  t        |g d       y )Nr'   r(   rY   r   r    rZ   rA   )	r   dict_getitemwitherrorr6   r7   r\   r
   rC   rJ   rD   r]   s       r   test_dict_getitemwitherrorz#CAPITest.test_dict_getitemwitherror   s    11Q'c*A.gc3'2l3Q7C s+Q/gdC((3+wC8)Wb"5+wA6+wC8r   c                 d   t         j                  }ddd}| j                   ||d             | j                   ||d             | j                   ||d             t	        |      }| j                   ||d             | j                   ||d             | j                  t        |i g        y )Nr'   r(   rY   r   r    rZ   )r   dict_containsr*   r+   r
   rC   rD   )r   containsr;   r<   s       r   test_dict_containszCAPITest.test_dict_contains   s    **Q'c*+#s+,l34C s+,$,-)Xr26r   c                    t         j                  }i } ||dd       | j                  |ddi        ||dd       | j                  |ddd       t               } ||dd       | j                  |ddi       | j	                  t
        |i g d       | j	                  t        |t               dd       | j	                  t        |dgdd       | j	                  t        |ddd       y )	Nr      rZ      rY   r'   r   rA   )r   dict_setitemr6   r
   rC   rD   rJ   r   )r   setitemr;   r<   s       r   test_dict_setitemzCAPITest.test_dict_setitem   s    ((S!sAh'\1%AQ78~c1Qx()Wb"a8+w
CC+wQ:+wC;r   c                    t         j                  }i } ||dd       | j                  |ddi        ||dj                         d       | j                  |ddd       t	               } ||dd       | j                  |ddi       | j                  t        |i dd       | j                  t        |t               dd       | j                  t        |ddd       y )	Nra   rp   r   rZ   rq   rY   rc   rA   )	r   dict_setitemstringr6   re   r
   rC   UnicodeDecodeErrorrJ   r   )r   setitemstringr;   r<   s       r   test_dict_setitemstringz CAPITest.test_dict_setitemstring   s    !44c4#sAh'c<..0!4AQ78~dD!$Qx(,mR!L+}hj$J+}b$Br   c                 4   t         j                  }dddd} ||d       | j                  |ddd       | j                  t        ||d        ||d       | j                  |d	di       t        ddd
      } ||d       | j                  |d	di       | j                  t        ||d       | j                  t        |i g        | j                  t        |t        ddi      d       | j                  t        |dgd       | j                  t        |dd       y )Nr'   r(   r?   r   r!   rZ   r   r!   rZ   r    rZ   r!   r   r!   r   rA   )	r   dict_delitemr6   rC   r\   r
   rD   rJ   r   )r   delitemr;   r<   s       r   test_dict_delitemzCAPITest.test_dict_delitem   s   ((AQ/SAQ78(GS#6\"sAh'!!,-cQx((GT37)Wb"5+w#q0BCH+wQ7+wC8r   c                    t         j                  }dddd} ||d       | j                  |ddd       | j                  t        ||d        ||dj                                | j                  |d	di       t        ddd
      } ||d       | j                  |d	di       | j                  t        ||d       | j                  t        |i d       | j                  t        |t        ddi      d       | j                  t        |dd       y )Nr'   r(   r?   r{   ra   r|   rb   rZ   r!   r}   rc   r   rA   )
r   dict_delitemstringr6   rC   r\   re   r
   rw   rJ   r   )r   delitemstringr;   r<   s       r   test_dict_delitemstringz CAPITest.test_dict_delitemstring   s    !44AQ/c4 AQ78(M3=c<..01sAh'!!,-dD!Qx((M4>,mRI+}hQx6H$O+}b$?r   c                    t         j                  }i }| j                   ||dd      d       | j                  |ddi       | j                   ||dd      d       | j                  |ddi       t               }| j                   ||dd      d       | j                  |ddi       | j                   ||dd      d       | j                  |ddi       | j	                  t
        |i g d       | j	                  t        |t               dd       | j	                  t        |dgdd       | j	                  t        |ddd       y )Nr   rp   rq   r'   r   rA   )r   dict_setdefaultr6   r
   rC   rD   rJ   r   )r   
setdefaultr;   r<   s       r   test_dict_setdefaultzCAPITest.test_dict_setdefault  s)   ..
Ca0!4sAh'Ca0!4sAh'~D#q115Qx(D#q115Qx()ZR;+z8:sAF+zA31=+z2sA>r   c                     G d dt               }dddd}|t        |       ||      fD ]  }| j                  t        j	                  |      t        |j                                      | j                  t        j                  |      t        |j                                      | j                  t        j                  |      t        |j                                       y )Nc                       e Zd Zd Zd Zd Zy):CAPITest.test_mapping_keys_valuesitems.<locals>.BadMappingc                      y r4   r   r   s    r   keysz?CAPITest.test_mapping_keys_valuesitems.<locals>.BadMapping.keys      r   c                      y r4   r   r   s    r   valueszACAPITest.test_mapping_keys_valuesitems.<locals>.BadMapping.values!  r   r   c                      y r4   r   r   s    r   itemsz@CAPITest.test_mapping_keys_valuesitems.<locals>.BadMapping.items#  r   r   N)r   r   r   r   r   r   r   r   r   
BadMappingr     s    r   r   r'   r(   r?   )foobarspam)r9   r
   assertListEqualr   	dict_keyslistr   dict_valuesr   
dict_itemsr   )r   r   dict_objmappings       r   test_mapping_keys_valuesitemsz&CAPITest.test_mapping_keys_valuesitems  s    	 	 Q2 ,x"8*X:NO 	9G  !4!4W!=!%hmmo!68  !6!6w!?!%hoo&7!8:  !5!5g!>!%hnn&6!79	9r   c                    t               g t               fD ]q  }| j                  t        t        j
                  |       | j                  t        t        j                  |       | j                  t        t        j                  |       s y r4   )r   r,   rC   rJ   r   r   r   r   )r   r   s     r   "test_dict_keys_valuesitems_bad_argz+CAPITest.test_dict_keys_valuesitems_bad_arg.  sf    z2vx/ 	JGk9+>+>Hk9+@+@'Jk9+?+?I	Jr   c                 .   t         j                  }| j                   |i d             dddd}d}g }	  |||      }|n-|\  }}}}| j                  |d       |j	                  ||f       9| j                  |t        |j                                      y )Nr   r'   r(   r?   r   r    r!   )r   	dict_nextassertIsNoner6   appendr   r   )	r   r   r;   pospairsresrcr   r   s	            r   test_dict_nextzCAPITest.test_dict_next4  s    ''	)B*+AA&C%C{"%BS%R#LL#u&  	SYY[ 12r   c           
         t         j                  }t        t        fD ]K  }t        t        t        fD ]5  } |ddd      } || |ddd             | j                  |dddd       7 M | j                  t        |i g        | j                  t        |i d       | j                  t        |t	               i        | j                  t        |di        | j                  t        |i t               | j                  t        |t        i        y )	Nr'   r(   r   r    r?   r@   r    r!   r   rA   )
r   dict_updater9   r
   r   r6   rC   AttributeErrorrJ   rK   )r   updatecls1cls2r;   s        r   test_dict_updatezCAPITest.test_dict_updateE  s    &&,& 	@DlH4 @+,sDqq!123  AAA&>?@	@ 	.&"b9.&"b9+vxz2>+vr26+vr48+vtR8r   c           
         t         j                  }t        t        fD ]  }t        t        t        fD ]j  } |ddd      } || |ddd      d       | j                  |dddd        |ddd      } || |ddd      d       | j                  |dddd       l  | j                  t        |i g d       | j                  t        |i d	d       | j                  t        |t	               i d       | j                  t        |d	i d       | j                  t        |i t        d       | j                  t        |t        i d       y )
Nr'   r(   r   r?   r@   r   r   r   rA   )
r   
dict_merger9   r
   r   r6   rC   r   rJ   rK   )r   merger   r   r;   s        r   test_dict_mergezCAPITest.test_dict_mergeT  s;   $$,& 	@DlH4 @+,c4aa 0115  AAA&>?+,c4aa 0115  AAA&>?@	@ 	.%R;.%R;+uhj"a@+ub"a8+ub$:+udB:r   c           	         t         j                  }t        t        fD ]y  }t        t
        fD ]h  } |ddd      } || |ddg      d       | j                  |dddd        |ddd      } || |ddg      d       | j                  |dd	dd       j { | j                  t        |i d
gd       | j                  t        |i dgd       | j                  t        |i dgd       | j                  t        |i dd       y )Nr'   r(   r   )r    r?   )r!   r@   r   r@   r   r?   )r'   )r'   r(   r?   rA   )
r   dict_mergefromseq2r9   r
   r   iterr6   rC   
ValueErrorrD   )r   mergefromseq2r   r   r;   s        r   test_dict_mergefromseq2z CAPITest.test_dict_mergefromseq2f  s   !44,& 	@Dd
 @+,c48(<#=qA  AAA&>?+,c48(<#=qA  AAA&>?@	@ 	*mR$C*mR)aH)]BQ?)]BA>r   N)r   r   r   r/   r2   r=   rF   rN   rS   rW   r_   rg   rj   rn   rt   ry   r   r   r   r   r   r   r   r   r   r   r   r   r$   r$      ss    **$8 
3&	31"9"9$7"<(C&9*@(?,9"J3"9;$?r   r$   __main__)unittestsyscollectionsr   r   typesr   testr   test.supportr   import_moduler   rK   r9   r
   r"   TestCaser$   r   mainr   r   r   <module>r      sr     
 - "  & (M''4	 .4 .X?x   X?~
 zHMMO r   