+
    BiRU                        ^ RI t ^ RIHtHt ^ RIHt ^ RIHt ^ RIH	t	 ]	P                  ! R4      t]	P                  ! R4      tRtRt ! R	 R
]4      tR t ! R R] P$                  4      t]R8X  d   ] P*                  ! 4        R# R# )    N)OrderedDictUserDict)MappingProxyType)support)import_helper	_testcapi_testlimitedcapi   c                   2   a  ] tR t^t o R tR tR tRtV tR# )DictSubclassc                    \        R 4      h)zdo not get evilRuntimeErrorselfkeys   &&//usr/lib/python3.14/test/test_capi/test_dict.py__getitem__DictSubclass.__getitem__       ,--    c                    \        R 4      h)zdo not set evilr   )r   r   values   &&&r   __setitem__DictSubclass.__setitem__   r   r   c                    \        R 4      h)zdo not del evilr   r   s   &&r   __delitem__DictSubclass.__delitem__   r   r    N)	__name__
__module____qualname____firstlineno__r   r   r   __static_attributes____classdictcell____classdict__s   @r   r   r      s     ... .r   r   c               #   &   "   R x  Rx  Rx  R# 5iabcNr   r   r   r   genr-      s     
I
I
Is   c                      a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tRt V t!R# )CAPITestc                P   \         P                  pV P                  V! ^^/4      4       V P                  V! \        ^^/4      4      4       V P	                  V! \        ^^/4      4      4       V P	                  V! ^^.4      4       V P	                  V! \        4       4      4       R#    N)r	   
dict_check
assertTruer   assertFalser   objectr   checks   & r   test_dict_checkCAPITest.test_dict_check   s     ++q!f&k1a&123xA/011v'vx)r   c                P   \         P                  pV P                  V! ^^/4      4       V P                  V! \	        ^^/4      4      4       V P                  V! \        ^^/4      4      4       V P                  V! ^^.4      4       V P                  V! \        4       4      4       R# r1   )r	   dict_checkexactr4   r5   r   r   r6   r7   s   & r   test_dict_checkexactCAPITest.test_dict_checkexact(   s     00q!f&{Aq6234xA/011v'vx)r   c                    \         P                  pV! 4       pV P                  V/ 4       V P                  \	        V4      \
        4       V! 4       pV P                  W24       R # N)r	   dict_newassertEqualassertIstypedictassertIsNot)r   rA   dctdct2s   &   r   test_dict_newCAPITest.test_dict_new1   sK    #,,jb!d3i&z#r   c                $   \         P                  p^^/\        ^^/4      \        ^^/4      3 F  pV! V4      pV P	                  \        V4      \        4       V P                  W24       V P                  \        4      ;_uu_ 4        ^V^&   RRR4       V P                  V^,          ^4       ^V^&   V P                  V^,          ^4       K  	  V P                  \        V. 4       V P                  \        V^*4       R#   + '       g   i     L{; ir1   )
r	   dictproxy_newr   r   rC   rD   r   rB   assertRaises	TypeError)r   rL   rG   proxys   &   r   test_dictproxy_newCAPITest.test_dictproxy_new9   s    (66q6;1v.!Q0@@C!#&EMM$u+'78U(""9--a .U1Xq)CFU1Xq) A 	)]B7)]B7 .-s   C??Dc                   \         P                  p^^/\        ^^/4      3 F;  pV! V4      pV P                  \	        V4      \
        4       V P                  W24       K=  	  V P                  \        V\        4       4       V P                  \        V. 4       V P                  \        V^*4       V P                  \        V\        4       R# r1   )r	   	dict_copyr   rC   rD   rE   rB   rM   SystemErrorr   NULL)r   copyrG   dct_copys   &   r   test_dict_copyCAPITest.test_dict_copyI   s    ))q6;1v..CCyHMM$x.$/X+ /
 	+tXZ8+tR0+tR0+tT2r   c                   \         P                  p^^/pV! V4       V P                  V/ 4       \        ^^/4      pV! V4       V P                  V^^/4       ^^.pV! V4       V P                  V^^.4       V! \	        4       4       R# r1   )r	   
dict_clearrB   r   r6   )r   clearrG   lsts   &   r   test_dict_clearCAPITest.test_dict_clearU   s     ++!fc
b!
 1vc
q!f%!fc
q!f%fhr   c                   \         P                  pV P                  V! ^^/4      ^4       V P                  V! \        ^^/4      4      ^4       V P	                  \
        V\        4       4       V P	                  \
        V. 4       V P	                  \
        V^*4       V P	                  \
        V\        4       4       V P	                  \
        V\        4       R# r1   )	r	   	dict_sizerB   r   rM   rT   r   r6   rU   )r   sizes   & r   test_dict_sizeCAPITest.test_dict_sizeh   s    ))q!fq)k1a&12A6+tXZ8+tR0+tR0+tVX6+tT2r   c                &   \         P                  pR ^R^/pV P                  V! VR 4      ^4       V P                  V! VR4      \        4       V P                  V! VR4      ^4       \        V4      pV P                  V! VR 4      ^4       V P                  V! VR4      \        4       \        P                  ! 4       ;_uu_ 4       pV P                  V! / . 4      \        4       V P                  VP                  P                  \        4       V P                  \        VP                  P                  4      R4       RRR4       V P                  V! ^*R 4      \        4       V P                  V! ^.^ 4      \        4       R#   + '       g   i     LM; i)r*      🐍r+   zunhashable type: 'list'N)r	   dict_getitemrB   rC   KeyErrorr   r   catch_unraisable_exception
unraisableexc_typerN   str	exc_value)r   getitemrG   rH   cms   &    r   test_dict_getitemCAPITest.test_dict_getitems   s0   "//A|Q'c*A.gc3'2l3Q7C s+Q/gdC((3//11RMM'"b/84R]]33Y?S!8!8968 2 	gb#&1gqc1ox0 21s   A7F  F	c                H   \         P                  pR ^R^/pV P                  V! VR4      ^4       V P                  V! VR4      \        4       V P                  V! VRP                  4       4      ^4       \        V4      pV P                  V! VR4      ^4       V P                  V! VR4      \        4       \        P                  ! 4       ;_uu_ 4       pV P                  V! / \        4      \        4       V P                  VP                  P                  \        4       V P                  \        VP                  P                  4      R4       RRR4       V P                  V! ^*R4      \        4       V P                  V! . R4      \        4       R#   + '       g   i     LL; i)r*   rf      a   bz'utf-8' codec can't decodeN)r	   dict_getitemstringrB   rC   rh   encoder   r   ri   INVALID_UTF8rj   rk   UnicodeDecodeErrorassertRegexrl   rm   )r   getitemstringrG   rH   ro   s   &    r   test_dict_getitemstring CAPITest.test_dict_getitemstring   s:   (;;A|Q'sD115mC.9sL,?,?,ABAFC tT2A6mD$/://11RMM-L98DR]]335GHS!8!899; 2 	mB-x8mB-x8 21s   A;FF!	c                   \         P                  pR ^R^/pV P                  V! VR 4      ^4       V P                  V! VR4      \        4       V P                  V! VR4      ^4       \        V4      pV P                  V! VR 4      ^4       V P                  V! VR4      \        4       V P                  \        V^*R 4       V P                  \        V/ . 4       V P                  \        V. ^4       V P                  \        V. R 4       R# r*   rf   r+   N)	r   dict_getitemrefrB   rC   rh   r   rM   rT   rN   r   rn   rG   rH   s   &   r   test_dict_getitemrefCAPITest.test_dict_getitemref   s    ++A|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                   \         P                  pR ^R^/pV P                  V! VR4      ^4       V P                  V! VR4      \        4       V P                  V! VRP                  4       4      ^4       \        V4      pV P                  V! VR4      ^4       V P                  V! VR4      \        4       V P                  \        V^*R4       V P                  \        V/ \        4       V P                  \        V. R4       R# r*   rf   rs   rt   N)r   dict_getitemstringrefrB   rC   rh   rv   r   rM   rT   rx   rw   )r   rz   rG   rH   s   &   r   test_dict_getitemstringref#CAPITest.test_dict_getitemstringref   s    !77A|Q'sD115mC.9sL,?,?,ABAFC tT2A6mD$/:+}b$?,mRN+}b$?r   c                   \         P                  pR ^R^/pV P                  V! VR 4      ^4       V P                  V! VR4      \        4       V P                  V! VR4      ^4       \        V4      pV P                  V! VR 4      ^4       V P                  V! VR4      \        4       V P                  \        V^*R 4       V P                  \        V/ . 4       V P                  \        V. ^4       V P                  \        V. R 4       R# r~   )	r	   dict_getitemwitherrorrB   rC   rh   r   rM   rT   rN   r   s   &   r   test_dict_getitemwitherror#CAPITest.test_dict_getitemwitherror   s    "88A|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                h   \         P                  pR ^R^/pV P                  V! VR 4      4       V P                  V! VR4      4       V P                  V! VR4      4       \	        V4      pV P                  V! VR 4      4       V P                  V! VR4      4       V P                  \        V/ . 4       R# r~   )r	   dict_containsr4   r5   r   rM   rN   )r   containsrG   rH   s   &   r   test_dict_containsCAPITest.test_dict_contains   s    #11A|Q'c*+#s+,l34C s+,$,-)Xr26r   c                   \         P                  pR ^R^/pV P                  V! VR4      4       V P                  V! VR4      4       V P                  V! VRP	                  4       4      4       V P                  \        W\        4       \        V4      pV P                  V! VR4      4       V P                  V! VR4      4       R# r   )	r   dict_containsstringr4   r5   rv   rM   rx   rw   r   )r   contains_stringrG   rH   s   &   r   test_dict_contains_string"CAPITest.test_dict_contains_string   s    #77A|Q'T23d34\-@-@-BCD,oLQC d34t45r   c                   \         P                  p/ pV! VR ^4       V P                  VR ^/4       V! VR^4       V P                  VR ^R^/4       \        4       pV! VR ^4       V P                  VR ^/4       V P	                  \
        V/ . ^4       V P	                  \        V\        4       R ^4       V P	                  \        V^.^ ^4       V P	                  \        V^*R ^4       R# )r*   rf   N)r	   dict_setitemrB   r   rM   rN   rT   r   )r   setitemrG   rH   s   &   r   test_dict_setitemCAPITest.test_dict_setitem   s    "//S!sAh'\1%sA|Q78~c1Qx()Wb"a8+w
CC+wQ:+wC;r   c                   \         P                  p/ pV! VR ^4       V P                  VR^/4       V! VRP                  4       ^4       V P                  VR^R^/4       \	        4       pV! VR ^4       V P                  VR^/4       V P                  \        V/ \        ^4       V P                  \        V\        4       R ^4       V P                  \        V^*R ^4       R# )rs   r*   rf   N)
r	   dict_setitemstringrB   rv   r   rM   rx   rw   rT   r   )r   setitemstringrG   rH   s   &   r   test_dict_setitemstring CAPITest.test_dict_setitemstring  s    (;;c4#sAh'c<..0!4sA|Q78~dD!$Qx(,mRqQ+}hj$J+}b$Br   c                :   \         P                  pR ^R^R^/pV! VR 4       V P                  VR^R^/4       V P                  \        WR4       V! VR4       V P                  VR^/4       \        R ^R^/4      pV! VR 4       V P                  VR^/4       V P                  \        WR4       V P                  \        V/ . 4       V P                  \        V\        R ^/4      R 4       V P                  \        V^.^ 4       V P                  \        V^*R 4       R# )r*   r,   rf   r+   N)	r	   dict_delitemrB   rM   rh   r   rN   rT   r   )r   delitemrG   rH   s   &   r   test_dict_delitemCAPITest.test_dict_delitem  s   "//AsA|Q/SsA|Q78(G#6\"sAh'S!S!,-cQx((G37)Wb"5+w#q0BCH+wQ7+wC8r   c                ,   \         P                  pR ^R^R^/pV! VR4       V P                  VR^R^/4       V P                  \        WR4       V! VRP                  4       4       V P                  VR^/4       \        R ^R^/4      pV! VR4       V P                  VR^/4       V P                  \        WR4       V P                  \        V/ \        4       V P                  \        V\        R ^/4      R4       V P                  \        V^*R4       R# )r*   r,   rf   rs   rt   N)r	   dict_delitemstringrB   rM   rh   rv   r   rx   rw   rT   r   )r   delitemstringrG   rH   s   &   r   test_dict_delitemstring CAPITest.test_dict_delitemstring0  s   (;;AsA|Q/c4 sA|Q78(M=c<..01sAh'S!S!,-dD!Qx((M>,mRN+}hQx6H$O+}b$?r   c                   \         P                  p/ pV P                  V! VR ^4      ^4       V P                  VR ^/4       V P                  V! VR ^4      ^4       V P                  VR ^/4       \        4       pV P                  V! VR ^4      ^4       V P                  VR ^/4       V P                  V! VR ^4      ^4       V P                  VR ^/4       V P	                  \
        V/ . ^4       V P	                  \        V\        4       R ^4       V P	                  \        V^.^ ^4       V P	                  \        V^*R ^4       R# r*   N)r   dict_setdefaultrB   r   rM   rN   rT   r   r   
setdefaultrG   rH   s   &   r   test_dict_setdefaultCAPITest.test_dict_setdefaultD  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                   \         P                  p/ pV P                  V! VR ^4      ^4       V P                  VR ^/4       V P                  V! VR ^4      ^4       V P                  VR ^/4       \        4       pV P                  V! VR ^4      ^4       V P                  VR ^/4       V P                  V! VR ^4      ^4       V P                  VR ^/4       V P	                  \
        V/ . ^4       V P	                  \        V\        4       R ^4       V P	                  \        V^.^ ^4       V P	                  \        V^*R ^4       R# r   )r   dict_setdefaultrefrB   r   rM   rN   rT   r   r   s   &   r   test_dict_setdefaultref CAPITest.test_dict_setdefaultrefZ  s)   11
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                    ! R  R\         4      pR^R^R^/pV\        V4      V! V4      3 F  pV P                  \        P	                  V4      \        VP                  4       4      4       V P                  \        P                  V4      \        VP                  4       4      4       V P                  \        P                  V4      \        VP                  4       4      4       K  	  R# )c                   2   a  ] tR tRt o R tR tR tRtV tR# ):CAPITest.test_mapping_keys_valuesitems.<locals>.BadMappingiq  c                    R # r@   r   r   s   &r   keys?CAPITest.test_mapping_keys_valuesitems.<locals>.BadMapping.keysr      r   c                    R # r@   r   r   s   &r   valuesACAPITest.test_mapping_keys_valuesitems.<locals>.BadMapping.valuest  r   r   c                    R # r@   r   r   s   &r   items@CAPITest.test_mapping_keys_valuesitems.<locals>.BadMapping.itemsv  r   r   r   N)	r    r!   r"   r#   r   r   r   r$   r%   r&   s   @r   
BadMappingr   q  s      r   r   foobarspamN)rE   r   assertListEqualr	   	dict_keyslistr   dict_valuesr   
dict_itemsr   )r   r   dict_objmappings   &   r   test_mapping_keys_valuesitems&CAPITest.test_mapping_keys_valuesitemsp  s    	 	 1eQ2 ,x"8*X:NOG  !1!;!;G!D!%hmmo!68  !1!=!=g!F!%hoo&7!8:  !1!<!<W!E!%hnn&6!79 Pr   c                   \        4       . \        4       3 Fr  pV P                  \        \        P
                  V4       V P                  \        \        P                  V4       V P                  \        \        P                  V4       Kt  	  R # r@   )r   r6   rM   rT   r	   r   r   r   )r   r   s   & r   "test_dict_keys_valuesitems_bad_arg+CAPITest.test_dict_keys_valuesitems_bad_arg  sb    z2vx/Gk+;+E+EwOk+;+G+GQk+;+F+FP 0r   c                2   \         P                  pV P                  V! / ^ 4      4       R^R^R^/p^ p. p V! W#4      pVf   M+Vw  rcrxV P                  V^4       VP	                  Wx34       K9  V P                  V\        VP                  4       4      4       R# )r   r*   r+   r,   N)r	   	dict_nextassertIsNonerB   appendr   r   )	r   r   rG   pospairsresrcr   r   s	   &        r   test_dict_nextCAPITest.test_dict_next  s    $..	)B*+AsAsA&C%C{"%BSR#LL#&SYY[ 12r   c                (   \         P                  p\        \        3 FQ  p\        \        \        3 F9  pV! R ^R^/4      pV! WC! R^R^/4      4       V P                  VR ^R^R^/4       K;  	  KS  	  V P                  \        V/ . 4       V P                  \        V/ ^*4       V P                  \        V\	        4       / 4       V P                  \        V^*/ 4       V P                  \        V/ \        4       V P                  \        V\        / 4       R# r)   )
r	   dict_updaterE   r   r   rB   rM   AttributeErrorrT   rU   )r   updatecls1cls2rG   s   &    r   test_dict_updateCAPITest.test_dict_update  s    !--,&DlH4CC+,sD#q#q!123  sAsAsA&>? 5 ' 	.&"b9.&"b9+vxz2>+vr26+vr48+vtR8r   c                   \         P                  p\        \        3 F  p\        \        \        3 Fq  pV! R ^R^/4      pV! WC! R^R^/4      ^ 4       V P                  VR ^R^R^/4       V! R ^R^/4      pV! WC! R^R^/4      ^4       V P                  VR ^R^R^/4       Ks  	  K  	  V P                  \        V/ . ^ 4       V P                  \        V/ ^*^ 4       V P                  \        V\	        4       / ^ 4       V P                  \        V^*/ ^ 4       V P                  \        V/ \        ^ 4       V P                  \        V\        / ^ 4       R# r)   )
r	   
dict_mergerE   r   r   rB   rM   r   rT   rU   )r   merger   r   rG   s   &    r   test_dict_mergeCAPITest.test_dict_merge  sI    ++,&DlH4CC+,c4aa 0115  sAsAsA&>?CC+,c4aa 0115  sAsAsA&>? 5 ' 	.%R;.%R;+uhj"a@+ub"a8+ub$:+udB:r   c                   \         P                  p\        \        3 F  p\        \
        3 Fm  pV! R ^R^/4      pV! WC! RR.4      ^ 4       V P                  VR ^R^R^/4       V! R ^R^/4      pV! WC! RR.4      ^4       V P                  VR ^R^R^/4       Ko  	  K  	  V P                  \        V/ R.^ 4       V P                  \        V/ R.^ 4       V P                  \        V/ ^.^ 4       V P                  \        V/ ^*^ 4       R# )r*   r+   r,   N)r+      )r,      )r2   )r2      r   )
r	   dict_mergefromseq2rE   r   r   iterrB   rM   
ValueErrorrN   )r   mergefromseq2r   r   rG   s   &    r   test_dict_mergefromseq2 CAPITest.test_dict_mergefromseq2  s   (;;,&Dd
CC+,c48(<#=qA  sAsAsA&>?CC+,c48(<#=qA  sAsAsA&>? # ' 	*mR$C*mR)aH)]BQ?)]BA>r   c                   \         P                  p\         P                  pR RRR/pV P                  V! VR 4      R4       V P                  VRR/4       V P                  V! VR4      R4       V P                  V/ 4       R RRR/pV P                  V! VR 4      ^4       V P                  VRR/4       V P                  V! VR4      ^4       V P                  V/ 4       V P                  V! / R 4      ^ \        34       V P                  V! R^/R 4      ^ \        34       V P                  V! / R 4      ^ 4       V P                  V! R^/R 4      ^ 4       \        ^^/4      pV P                  \        WR 4       V P                  \        W$R 4       R.pV P                  V! / V4      ^ \        34       V P                  \        4      ;_uu_ 4        V! R ^/V4       RRR4       V! / \        4       R#   + '       g   i     L; i)	r   r   key2value2r*   r   Nr2   r   r2   r   )	r   dict_popdict_pop_nullrB   rU   r   rM   rT   rN   )r   r   r   mydictnot_dictnot_hashable_keys   &     r   test_dict_popCAPITest.test_dict_pop  s   %%!// &(3&%0,?&(!34&&1=A$ &(3vu5q9&(!34vv6:$ 	"e,q$i83(E2QI> 	r5115Qx7; QF#+x5A+}F #8"&67!TCy))eQZ!12 *T *)s   G..G>	c                D   \         P                  p\         P                  pR RRR/pV P                  V! VR 4      R4       V P                  VRR/4       V P                  V! VR4      R4       V P                  V/ 4       R RRR/pV P                  V! VR 4      ^4       V P                  VRR/4       V P                  V! VR4      ^4       V P                  V/ 4       V P                  V! / R 4      ^ \        34       V P                  V! / R 4      ^ 4       V P                  V! R^/R 4      ^ \        34       V P                  V! R^/R 4      ^ 4       RpR^{/pV P                  V! VRP                  4       4      R	4       R^{/pV P                  V! VRP                  4       4      ^4       \        ^^/4      pV P                  \        WR 4       V P                  \        W&R 4       V P                  \        V^^/\        4       V P                  \        V^^/\        4       R# )
r   r   r   r   r*   rf   Nr   r   )r2   {   )r   dict_popstringdict_popstring_nullrB   rU   rv   r   rM   rT   rx   rw   )r   r  r  r   	non_asciirG   r   s   &      r   test_dict_popstringCAPITest.test_dict_popstring  s   "11';; &(36E&(!347G$ &(3,VU;Q?&(!34,VV<a@$ 	E2QI>,R7;a%81d)D,c1Xu=qA !	S!\-@-@-BCXNS!,S,2E2E2GH!L QF#+~G+':eL 	,nq!flS,.AAq6<Xr   r   N)"r    r!   r"   r#   r9   r=   rI   rP   rX   r^   rc   rp   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r$   r%   r&   s   @r   r/   r/      s     **$8 
3&	31,9,9$@"9$7"
6<(C&9*@(?,?,9"Q3"9;$?(%T'Y 'Yr   r/   __main__)unittestcollectionsr   r   typesr   testr   test.supportr   import_moduler   r	   rU   rw   rE   r   r-   TestCaser/   r    mainr   r   r   <module>r     s     - "  & ''4	 ../AB  .4 .AYx   AYP zMMO r   