
    /hhyW                     v    S SK r S SKrS SKJr   " S S\ R                  5      r " S S\5      r " S S\5      rg)	    N)get_c_recursion_limitc                       \ 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g)BasicTestMappingProtocol   Nc                     SSSS.$ )N2value1         )1key1key2 selfs    ;/opt/python-3.13.8/usr/lib/python3.13/test/mapping_tests.py
_reference#BasicTestMappingProtocol._reference   s     '::    c                 "    U R                  5       $ N)	type2testr   s    r   _empty_mapping'BasicTestMappingProtocol._empty_mapping   s    ~~r   c                 `    U R                  5       nUR                  5        H	  u  p4XBU'   M     U$ r   )r   items)r   dataxkeyvalues        r   _full_mapping&BasicTestMappingProtocol._full_mapping   s0     !**,JCcF 'r   c                 >   [         R                  R                  " U /UQ70 UD6  U R                  5       R	                  5       U l        U R
                  R                  5       u  p4X40U l        U R
                  R                  5       u  p4X40U l        X@R
                  U'   g r   )	unittestTestCase__init__r   copy	referencepopitemother	inmapping)r   argskwr!   r"   s        r   r(   !BasicTestMappingProtocol.__init__   s    ""45$5"5*//1 ^^++-
[
 ^^++-
#sr   c                 J  ^ ^^	 T R                  5       n[        U5      nT R                  T R                  5      mTUL a  UnT R                  R	                  5        H  u  p4T R                  TU   U5        M     [        T R                  R                  5       5      S   m	T R                  [        UU	4S j5        T R                  [        U5      S5        T R                  [        T5      [        T R                  5      5        T R                   H  nT R                  UT5        M     T R                   H  nT R                  UT5        M     T R                  X5        T R                  TT5        T R                  UT5        T R                  TU5        U(       a  T R                  S5        T(       d  T R                  S5        U 4S jnU" [!        TR                  5       5      [        TR                  5       5      T R                  R                  5       5        U" [!        T5      [        TR                  5       5      T R                  R                  5       5        U" [!        TR#                  5       5      [        TR#                  5       5      T R                  R#                  5       5        U" [!        TR	                  5       5      [        TR	                  5       5      T R                  R	                  5       5        [%        [!        TR	                  5       5      5      u  p4[%        [!        T R                  R	                  5       5      5      u  m	nT R                  TR'                  X75      U5        T R                  TR'                  T	U5      U5        T R                  T	T5        g )Nr   c                     > T T   $ r   r   )dknownkeys   r   <lambda>4BasicTestMappingProtocol.test_read.<locals>.<lambda>6   s	    1X;r   z#Empty mapping must compare to Falsez!Full mapping must compare to Truec                   > TR                  [        U S5      5        TR                  [        U S5      5        [        U 5      nTR                  [        U5      [        U5      s=:H  =(       a    [        U5      :H  5        g s  5        g )N__next____iter__)
assertTruehasattrlistset)iterlstrefr    r   s       r   check_iterandlist=BasicTestMappingProtocol.test_read.<locals>.check_iterandlistH   s]    OOGD*56OOGD*56T
AOOCFCH66c#h6767r   )r   dictr#   r*   r   assertEqualr<   r,   keysassertRaisesKeyErrorlenassertInassertNotInassertNotEqualfailr>   valuesnextget)
r   pp1r!   r"   krA   
knownvaluer3   r4   s
   `       @@r   	test_read"BasicTestMappingProtocol.test_read+   s   !!Wt~~.6A....0JCQsVU+ 1

)*1-($67Q#QT^^!45AMM!Q  AQ"  	AAq!Aq!dii=>$))?@	8
 	$qvvx.$qvvx...--/	1$q'4>4>>3F3F3HI$qxxz*D,<..//1	3$qwwy/4	?....0	2 $qwwy/*
#D)9)9);$<=*s/7x4jA1%r   c                 r  ^^ U R                  5       mU R                  R                  5        H   u  mnUTT'   U R                  TT   U5        M"     U R                  R	                  5        H!  mTT	 U R                  [        UU4S j5        M#     U R                  5       mTR                  U R                  5        U R                  [        T5      U R                  5        [        TR                  5       5      nU R                  5       mTR                  U5        U R                  [        T5      U R                  5        U R                  U R                  5      n[        [        UR                  5       5      5      u  mn[        [        U R                  R                  5       5      5      u  pEU R                  UR                  TU5      U5        U R                  UT   U5        U R                  UR                  XE5      U5        U R                  X4   U5        U R                  UR                  U5      U5        U R!                  XC5        U R                  [        UR                  U5        SnXSU'   U R                  UR                  XF5      U5        U R!                  XC5        U R                  UR                  XF5      U5        UR#                  5       u  mnU R!                  TU5        U R                  XR                  T   5        U R                  5       mU R                  [        TR"                  5        g )Nc                     > TT    $ r   r   )r!   rP   s   r   r5   5BasicTestMappingProtocol.test_write.<locals>.<lambda>d   s	    qvr   i  )r   r*   r   rD   rE   rF   rG   updaterC   r<   r#   rN   r>   r,   
setdefaultpoprJ   r+   )	r   r"   r   r3   r4   rS   defaultr!   rP   s	          @@r   
test_write#BasicTestMappingProtocol.test_write[   sv   !....0JCAcFQsVU+ 1 >>&&(C#h6 ) !	 a$..1QWWY!	a$..1t~~.$qwwy/*
U#D)9)9);$<=c:6>3'h;ZHj1x*5%(AEE84 (x1:>%x17;YY[
Ua s 34



(AII.r   c                 `    U R                  U R                  5       U R                  5       5        g r   )rD   r   r   s    r   test_constructor)BasicTestMappingProtocol.test_constructor   s$    ,,.0C0C0EFr   c                 "   U R                  U R                  5       (       + 5        U R                  U R                  5        U R                  [        U R                  5       5      SL 5        U R                  [        U R                  5      SL 5        g )NFT)r:   r   r*   boolr   s    r   	test_bool"BasicTestMappingProtocol.test_bool   sc    D//112'T0023u<=T^^,45r   c                    U R                  5       nU R                  [        UR                  5       5      / 5        U R                  nU R                  [        U R                  R                  5       5      S   UR                  5       5        U R                  [        U R                  R                  5       5      S   UR                  5       5        U R                  [        UR                  S 5        g Nr   )r   rD   r<   rE   r*   rI   r-   rJ   r,   rF   	TypeErrorr   r3   s     r   	test_keys"BasicTestMappingProtocol.test_keys   s    !affh,NNd4>>..01!4affh?djjoo/03QVVX>)QVVT2r   c                     U R                  5       nU R                  [        UR                  5       5      / 5        U R	                  [
        UR                  S 5        g r   )r   rD   r<   rM   rF   rh   ri   s     r   test_values$BasicTestMappingProtocol.test_values   sA    !ahhj)2.)QXXt4r   c                     U R                  5       nU R                  [        UR                  5       5      / 5        U R	                  [
        UR                  S 5        g r   )r   rD   r<   r   rF   rh   ri   s     r   
test_items#BasicTestMappingProtocol.test_items   s@    !aggi"-)QWWd3r   c                 Z    U R                  5       nU R                  [        U5      S5        g rg   )r   rD   rH   ri   s     r   test_len!BasicTestMappingProtocol.test_len   s$    !Q#r   c                    U R                   nU R                  U[        U R                  R	                  5       5      S      [        U R                  R                  5       5      S   5        U R                  [        UR                  5        g rg   )	r*   rD   r<   r-   rE   rM   rF   rh   __getitem__ri   s     r   test_getitem%BasicTestMappingProtocol.test_getitem   sg    NN4 3 3 56q9:dnn3356q9	; 	)Q]]3r   c                   ^^ U R                  5       nUR                  U R                  5        U R                  [	        UR                  5       5      [	        U R                  R                  5       5      5        U R                  5       nUR                  5         U R                  XR                  5       5        U R                  5       nUR                  U R                  R                  5       5        U R                  [	        UR                  5       5      [	        U R                  R                  5       5      5        U R                  5       nUR                  U R                  R                  5       5        U R                  [	        UR                  5       5      [	        U R                  R                  5       5      5        U R                  [        [        4UR                  S5        U m " U4S jS5      nUR                  5         UR                  U" 5       5        [        UR                  5       5      n[        U R                  R                  5       5      nU R                  X45         " S S[        5      mU R                  5       n " U4S jS5      nU R                  TUR                  U" 5       5        UR                  5          " U4S jS5      nU R                  TUR                  U" 5       5         " U4S	 jS5      nU R                  TUR                  U" 5       5        U R                  5       n " U4S
 jS[        5      nU R                  TUR                  U" 5       5        U R                  [        UR                  S/5        g )N*   c                   .   > \ rS rSrU 4S jrS rS rSrg)<BasicTestMappingProtocol.test_update.<locals>.SimpleUserDict   c                 (   > TR                   U l        g r   )r*   r3   )r   	outerselfs    r   r(   EBasicTestMappingProtocol.test_update.<locals>.SimpleUserDict.__init__   s    ",,r   c                 6    U R                   R                  5       $ r   r3   rE   r   s    r   rE   ABasicTestMappingProtocol.test_update.<locals>.SimpleUserDict.keys       vv{{}$r   c                      U R                   U   $ r   r3   r   is     r   rv   HBasicTestMappingProtocol.test_update.<locals>.SimpleUserDict.__getitem__       vvay r   r   N__name__
__module____qualname____firstlineno__r(   rE   rv   __static_attributes__)r   s   r   SimpleUserDictr|      s    -%!r   r   c                       \ rS rSrSrg)1BasicTestMappingProtocol.test_update.<locals>.Exc   r   Nr   r   r   r   r   r   r   r   Excr          dr   r   c                   "   > \ rS rSrU 4S jrSrg)=BasicTestMappingProtocol.test_update.<locals>.FailingUserDict   c                    > Ter   r   r   r   s    r   rE   BBasicTestMappingProtocol.test_update.<locals>.FailingUserDict.keys       	r   r   N)r   r   r   r   rE   r   r   s   r   FailingUserDictr      s     r   r   c                   (   > \ rS rSrU 4S jrS rSrg)r      c                 ,   >  " U4S jS5      nU" 5       $ )Nc                   .   > \ rS rSrS rS rU 4S jrSrg)UBasicTestMappingProtocol.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter   c                     SU l         g Nr   r   r   s    r   r(   ^BasicTestMappingProtocol.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__init__   s	    !"r   c                     U $ r   r   r   s    r   r9   ^BasicTestMappingProtocol.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__iter__       #r   c                 :   > U R                   (       a  SU l         gTe)Nr   ar   r   s    r   r8   ^BasicTestMappingProtocol.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__next__   s    66%&DF#&!	r   r   Nr   r   r   r   r(   r9   r8   r   r   s   r   	BogonIterr      s    #$" "r   r   r   )r   r   r   s     r   rE   r      s    	" 	" !{"r   c                     U$ r   r   )r   r!   s     r   rv   IBasicTestMappingProtocol.test_update.<locals>.FailingUserDict.__getitem__   s    
r   r   Nr   r   r   r   rE   rv   r   r   s   r   r   r      s    #r   c                   (   > \ rS rSrS rU 4S jrSrg)r      c                 $     " S S5      nU" 5       $ )Nc                   &    \ rS rSrS rS rS rSrg)r      c                 $    [        S5      U l        g )Nr   )ordr   r   s    r   r(   r      s    !$Sr   c                     U $ r   r   r   s    r   r9   r      r   r   c                     U R                   [        S5      ::  a,  [        U R                   5      nU =R                   S-  sl         U$ [        e)Nzr   )r   r   chrStopIteration)r   rtns     r   r8   r      s7    66SX-"%dff+C FFaKF#&J++r   r   Nr   r   r   r   r   r      s    *$,r   r   r   )r   r   s     r   rE   r      s    
, 
, !{"r   c                    > Ter   r   )r   r!   r   s     r   rv   r      r   r   r   Nr   r   s   r   r   r      s    # r   c                   (   > \ rS rSrS rU 4S jrSrg)4BasicTestMappingProtocol.test_update.<locals>.badseqi  c                     U $ r   r   r   s    r   r9   =BasicTestMappingProtocol.test_update.<locals>.badseq.__iter__      r   c                    > T" 5       er   r   r   s    r   r8   =BasicTestMappingProtocol.test_update.<locals>.badseq.__next__  
    er   r   Nr   r   r   r   r9   r8   r   r   s   r   badseqr          r   r   r
   )r   rY   r,   rD   r<   r   rF   rh   AttributeErrorclearsortedr*   	Exceptionobject
ValueError)	r   r3   r   i1i2r   r   r   r   s	          @@r   test_update$BasicTestMappingProtocol.test_update   s|   !	aggi$tzz/?/?/A*BC !	
//12 !	!!#$aggi$tzz/?/?/A*BC !	!!#$aggi$tzz/?/?/A*BC 	9n5qxxD		! 	! 	
		!"AGGIDNN((*+ ")"!	 	 	#qxx):;			 	 	#qxx):;	 	  	#qxx):;!	V 	 	#qxx2*ahh<r   c                    U R                  5       nU R                  UR                  [        U R                  R                  5       5      S   5      S L 5        U R                  UR                  [        U R                  R                  5       5      S   S5      S5        U R                  nU R                  UR                  [        U R                  R                  5       5      S   5      S L 5        U R                  UR                  [        U R                  R                  5       5      S   S5      S5        U R                  UR                  [        U R                  R                  5       5      S   5      [        U R                  R                  5       5      S   5        U R                  UR                  [        U R                  R                  5       5      S   S5      [        U R                  R                  5       5      S   5        U R                  [        UR                  5        U R                  [        UR                  S S S 5        g )Nr   r   )r   r:   rO   r<   r,   rE   rD   r*   r-   rM   rF   rh   ri   s     r   test_get!BasicTestMappingProtocol.test_get  s   !d4::??#45a89TABtDJJOO$56q91=qANNd4::??#45a89TABtDJJOO$56q91=qAtDNN$7$7$9:1=>dnn3356q9	;tDNN$7$7$9:1=qAdnn3356q9	;)QUU+)QUUD$=r   c                 d    U R                  5       nU R                  [        UR                  5        g r   )r   rF   rh   rZ   ri   s     r   test_setdefault(BasicTestMappingProtocol.test_setdefault  s$    !)Q\\2r   c                     U R                  5       nU R                  [        UR                  5        U R                  [        UR                  S5        g Nrz   )r   rF   rG   r+   rh   ri   s     r   test_popitem%BasicTestMappingProtocol.test_popitem   s:    !(AII.)QYY3r   c                    U R                  5       n[        U R                  R                  5       5      S   u  p#X1U'   U R	                  [
        UR                  [        U R                  R                  5       5      S   5        U R                  UR                  U5      U5        U R                  [        U5      S5        U R	                  [
        UR                  U5        g rg   )r   r<   r-   r   rF   rG   r[   r,   rE   rD   rH   r   r3   rR   vs       r   test_pop!BasicTestMappingProtocol.test_pop%  s    !DNN((*+A.!(AEE4

0A+B1+EFq1%Q#(AEE1-r   )r-   r,   r*   )r   r   r   r   r   r   r   r#   r(   rT   r]   r`   rd   rj   rm   rp   rs   rw   r   r   r   r   r   r   r   r   r   r   r      sh     I; $.&`(/TG6354$4]=B>34
	.r   r   c                   t    \ 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g)TestMappingProtocoli1  c                     [         R                  U 5        U R                  U R                  5       U R                  5       L5        U R	                  U R                  SSS9SSS.5        g )Nr   r   r    y)r   r`   r:   r   rD   r   r   s    r   r`   $TestMappingProtocol.test_constructor2  sU     11$7++-T5H5H5JJK!q13CDr   c                 h   [         R                  U 5        U R                  U R                  5       (       + 5        U R                  U R	                  SS05      5        U R                  [        U R                  5       5      SL 5        U R                  [        U R	                  SS05      5      SL 5        g )Nr    r   FT)r   rd   r:   r   r#   rc   r   s    r   rd   TestMappingProtocol.test_bool7  s     **40D//112**C:67T0023u<=T//c
;<DEr   c                 T   [         R                  U 5        U R                  5       nU R                  [	        UR                  5       5      / 5        U R                  SSS.5      nUR                  5       nU R                  SU5        U R                  SU5        U R                  SU5        g )Nr   r   r   br   r   c)	r   rj   r   rD   r<   rE   r#   rI   rJ   )r   r3   rR   s      r   rj   TestMappingProtocol.test_keys>  s     **40!affh,QQ/0FFHc1c1a r   c                     [         R                  U 5        U R                  SS05      nU R                  [	        UR                  5       5      S/5        g )Nr   r   )r   rm   r#   rD   r<   rM   ri   s     r   rm   TestMappingProtocol.test_valuesH  sA     ,,T2!u%ahhj)A3/r   c                     [         R                  U 5        U R                  SS05      nU R                  [	        UR                  5       5      S/5        g )Nr   r   r   r   )r   rp   r#   rD   r<   r   ri   s     r   rp   TestMappingProtocol.test_itemsM  s@     ++D1!u%aggi6(3r   c                 l   U R                  5       nU R                  SU5        U R                  SU;  5        U R                  SU;  5        U R                  SSS.5      nU R	                  SU5        U R	                  SU5        U R                  SU5        U R                  [        UR                  5        g )Nr   r   r   r   r   r   )r   rJ   r:   r#   rI   rF   rh   __contains__ri   s     r   test_contains!TestMappingProtocol.test_containsS  s    !a SAX'1%QQ/0c1c1a )Q^^4r   c                     [         R                  U 5        U R                  SSS.5      nU R                  [	        U5      S5        g )Nr   r   r   )r   rs   r#   rD   rH   ri   s     r   rs   TestMappingProtocol.test_len_  s9     ))$/QQ/0Q#r   c                    [         R                  U 5        U R                  SSS.5      nU R                  US   S5        U R                  US   S5        SUS'   SUS'   U R                  US   S5        U R                  US   S5        US	 U R                  USSS	.5        U R	                  [
        UR                  5        g )
Nr   r   r   r   r   r   r      )r   r   )r   rw   r#   rD   rF   rh   rv   ri   s     r   rw    TestMappingProtocol.test_getitemd  s     --d3QQ/03#3###3#3#cF!!,-)Q]]3r   c                     U R                  SSSS.5      nUR                  5         U R                  U0 5        U R                  [        UR                  S 5        g Nr   r   r   r
   )r#   r   rD   rF   rh   ri   s     r   
test_clearTestMappingProtocol.test_clearr  sG    !qA/		B)QWWd3r   c                    [         R                  U 5        U R                  5       nUR                  SS05        UR                  SS05        UR                  SSSS.5        U R	                  USSSS.5        UR                  5         U R	                  USSSS.5        U R                  5       nUR                  SS9  UR                  SS9  UR                  SSSS	9  U R	                  USSSS	.5        U R                  5       nUR                  S
S/5        U R	                  USSS.5        U R                  5       nUR                  S
S/SSS9  U R	                  USSS.5        U R                  SSS.5      nUR                  U R                  SSSS.5      R                  5       5        U R	                  USSSSS.5         " S S5      nUR                  5         UR                  U" 5       5        U R	                  USSSS.5        g )Nr   d   r      r   r
   )r    )r   )r    r   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Srg)7TestMappingProtocol.test_update.<locals>.SimpleUserDicti  c                     SSSS.U l         g r  r   r   s    r   r(   @TestMappingProtocol.test_update.<locals>.SimpleUserDict.__init__  s    ar   c                 6    U R                   R                  5       $ r   r   r   s    r   rE   <TestMappingProtocol.test_update.<locals>.SimpleUserDict.keys  r   r   c                      U R                   U   $ r   r   r   s     r   rv   CTestMappingProtocol.test_update.<locals>.SimpleUserDict.__getitem__  r   r   r   Nr   r   r   r   r   r    s    )%!r   r   )r   r   r   rY   rD   r#   r   r   )r   r3   r   s      r   r   TestMappingProtocol.test_updatey  s    ,,T2!	!C	!B	Aa!qAO, 	

qAO, !	3	2	1Qq12 !	*i()"-. !	*i(A3N+ !qz*	##qAO4::<=qAa01	! 	! 	
		!"qAO,r   c                 v  ^	 U R                  U R                  R                  S5      S S S S.5        U R                  5       nU R	                  UR                  S5      UL5        U R                  UR                  S5      S S S S.5        U R                  UR                  SS5      SSS.5        U R                  UR                  / 5      0 5        S nU R                  UR                  U" 5       5      SS 05        U R                  [        0 R                  S5         " S S	U R                  5      nU R                  UR                  S
5      S
S 05        U R                  U" 5       R                  S
5      S
S 05        U R	                  UR                  S
5      R                  UL 5        U R	                  U" 5       R                  S
5      R                  UL 5        U R	                  [        UR                  S
5      5      UL 5         " S SU R                  5      nUR                  S5      nU R                  US S S.5        U R                  U[        R                  5        U R                  [        [        R                  5         " S S[        5      m	 " U	4S jSU R                  5      nU R                  T	UR                  S/5         " U	4S jS[        5      nU R                  T	U R                  R                  U" 5       5         " U	4S jSU R                  5      nU R                  T	UR                  S/5        g )Nabc)r   r   r   )r  r  r   c               3      #    Sv   g 7fr   r   r   r   r   g,TestMappingProtocol.test_fromkeys.<locals>.g  s
     Gs   r   r   c                       \ rS rSrSrg)3TestMappingProtocol.test_fromkeys.<locals>.dictlikei  r   Nr   r   r   r   dictliker    s    r   r  r   c                       \ rS rSrS rSrg)1TestMappingProtocol.test_fromkeys.<locals>.mydicti  c                 ,    [         R                  " 5       $ r   collectionsUserDictclss    r   __new__9TestMappingProtocol.test_fromkeys.<locals>.mydict.__new__      "++--r   r   Nr   r   r   r   r%  r   r   r   r   mydictr        .r   r)  abr   c                       \ rS rSrSrg).TestMappingProtocol.test_fromkeys.<locals>.Exci  r   Nr   r   r   r   r   r-    r   r   r   c                   "   > \ rS rSrU 4S jrSrg)3TestMappingProtocol.test_fromkeys.<locals>.baddict1i  c                    > T" 5       er   r   )r   r.   kwargsr   s      r   r(   <TestMappingProtocol.test_fromkeys.<locals>.baddict1.__init__  r   r   r   N)r   r   r   r   r(   r   r   s   r   baddict1r/         r   r3  c                   (   > \ rS rSrS rU 4S jrSrg)1TestMappingProtocol.test_fromkeys.<locals>.BadSeqi  c                     U $ r   r   r   s    r   r9   :TestMappingProtocol.test_fromkeys.<locals>.BadSeq.__iter__  r   r   c                    > T" 5       er   r   r   s    r   r8   :TestMappingProtocol.test_fromkeys.<locals>.BadSeq.__next__  r   r   r   Nr   r   s   r   BadSeqr6    r   r   r;  c                   "   > \ rS rSrU 4S jrSrg)3TestMappingProtocol.test_fromkeys.<locals>.baddict2i  c                    > T" 5       er   r   )r   r!   r"   r   s      r   __setitem__?TestMappingProtocol.test_fromkeys.<locals>.baddict2.__setitem__  r   r   r   N)r   r   r   r   r?  r   r   s   r   baddict2r=    r4  r   rA  )rD   r   fromkeysr   r:   rF   rh   	__class__typeassertIsInstancer!  r"  rC   r   r   )
r   r3   r  r  r)  udr3  r;  rA  r   s
            @r   test_fromkeys!TestMappingProtocol.test_fromkeys  s   007dRV9WX!AJJu-24E*4T,JKE!,aj9B,	AC1T(3)R[[!4,t~~,**3/#d<,,S1C:>))#.88HDE
++C0::hFGX..s34@A	.T^^ 	. __T"$D12b+"6"67)T]]3")"	t~~ 	 	#x001#6	V 	 	#t~~66A	t~~ 	 	#x001#6r   c                 l   U R                  SSSS.5      nU R                  UR                  5       SSSS.5        U R                  5       nU R                  UR                  5       U5        U R	                  UR                  5       UR
                  5        U R                  [        UR                  S 5        g r  )r#   rD   r)   r   rE  rC  rF   rh   ri   s     r   	test_copyTestMappingProtocol.test_copy  s    !qA/a1?3!1%affh4)QVVT2r   c                    [         R                  U 5        U R                  5       nU R                  UR	                  S5      S L 5        U R                  UR	                  SS5      S5        U R                  SSS.5      nU R                  UR	                  S5      S L 5        U R                  UR	                  SS5      S5        U R                  UR	                  S5      S5        U R                  UR	                  SS5      S5        g )Nr   r   r   r   r   r   )r   r   r   r:   rO   rD   r#   ri   s     r   r   TestMappingProtocol.test_get  s     ))$/!c
d*+sA*aq12c
d*+sA*sQ'sA*r   c                    [         R                  U 5        U R                  5       nU R                  UR	                  S5      S L 5        UR	                  S/ 5        U R                  UR	                  S5      S L 5        UR	                  S/ 5      R                  S5        U R                  US   S   S5        UR	                  S/ 5      R                  S5        U R                  [        US   5      S5        g )Nkey0r!   r   r   r  r   )r   r   r   r:   rZ   appendrD   rH   ri   s     r   r   #TestMappingProtocol.test_setdefault  s     006!V,45	VR V,45	UB&&q)5!a(	UB&&q)QuX*r   c           	         [         R                  U 5        S GHG  n[        S5       GH3  nSU-  nU R                  5       nU R                  5       n[        U5       H%  nXd[	        U5      '   US:  d  M  Xe[	        U5      '   M'     US:  a  UR                  5       n[        U5       H  nUR                  5       =u  pxn	U R                  U[        U5      5        UR                  5       =u  pnU R                  U[        U
5      5        U R                  US:  =(       a    X:g  (       + 5        M     U R                  U(       + 5        U R                  U(       + 5        GM6     GMJ     g )N)r      r   r   )
r   r   ranger   reprr)   r+   rD   intr:   )r   copymodelog2sizesizer   r   r   kavatakbvbtbs                r   r    TestMappingProtocol.test_popitem  s     --d3H ""I({'')'')tA!"d1gJ!|%&$q'
 % a<AtA"#))+-FBR$$RR1"#))+-FBR$$RR1OO1(A$BC % A&A&# & r   c                     [         R                  U 5        U R                  5       nSu  p#U R                  UR	                  X#5      U5        X1U'   U R                  UR	                  US5      U5        g )N)r  defr   )r   r   r   rD   r[   r   s       r   r   TestMappingProtocol.test_pop  s`     ))$/ !qa(!q!a(r   r   N)r   r   r   r   r`   rd   rj   rm   rp   r   rs   rw   r  r   rG  rJ  r   r   r   r   r   r   r   r   r   r   1  sV    E
F!0
4
5$
44,-\-7^3	+	+'0	)r   r   c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)TestHashMappingProtocoli  c                   ^ [         R                  U 5         " S S[        5      m " U4S jS[        5      nU R	                  5       nSX!" 5       '   U R                  [        UR                  S5         " U4S jS[        5      nU R	                  5       nU" 5       nSX$'   S	Ul        U R                  TUR                  U5        g )
Nc                       \ rS rSrSrg)1TestHashMappingProtocol.test_getitem.<locals>.Exci  r   Nr   r   r   r   r   ri    r   r   r   c                   (   > \ rS rSrU 4S jrS rSrg)3TestHashMappingProtocol.test_getitem.<locals>.BadEqi  c                    > T" 5       er   r   r   r,   r   s     r   __eq__:TestHashMappingProtocol.test_getitem.<locals>.BadEq.__eq__  r   r   c                     g)N   r   r   s    r   __hash__<TestHashMappingProtocol.test_getitem.<locals>.BadEq.__hash__!  s    r   r   Nr   r   r   r   rn  rr  r   r   s   r   BadEqrk    s    r   ru  rz      c                   &   > \ rS rSrSrU 4S jrSrg)5TestHashMappingProtocol.test_getitem.<locals>.BadHashi(  Fc                 6   > U R                   (       a  T" 5       egr   rL   r   s    r   rr  >TestHashMappingProtocol.test_getitem.<locals>.BadHash.__hash__*      99%Kr   r   Nr   r   r   r   rL   rr  r   r   s   r   BadHashrx  (      D r   r~  T)	r   rw   r   r   r   rF   rG   rv   rL   )r   ru  r3   r~  r    r   s        @r   rw   $TestHashMappingProtocol.test_getitem  s    ((.")"	F 	 !%'
(AMM26	f 	 !I#q}}a0r   c                     [         R                  U 5         " S SU R                  5      nUR                  S5      nU R	                  US S S.5        U R                  U[        R                  5        g )Nc                       \ rS rSrS rSrg)5TestHashMappingProtocol.test_fromkeys.<locals>.mydicti8  c                 ,    [         R                  " 5       $ r   r   r#  s    r   r%  =TestHashMappingProtocol.test_fromkeys.<locals>.mydict.__new__9  r'  r   r   Nr(  r   r   r   r)  r  8  r*  r   r)  r+  r   )r   rG  r   rB  rD   rE  r!  r"  )r   r)  rF  s      r   rG  %TestHashMappingProtocol.test_fromkeys6  s[    ))$/	.T^^ 	. __T"$D12b+"6"67r   c                    ^ [         R                  U 5         " S S[        5      m " U4S jS[        5      nU R	                  5       nU" 5       nSX#'   SUl        U R                  TUR                  U5        g )Nc                       \ rS rSrSrg)-TestHashMappingProtocol.test_pop.<locals>.ExciB  r   Nr   r   r   r   r   r  B  r   r   r   c                   &   > \ rS rSrSrU 4S jrSrg)1TestHashMappingProtocol.test_pop.<locals>.BadHashiD  Fc                 6   > U R                   (       a  T" 5       egr   rz  r   s    r   rr  :TestHashMappingProtocol.test_pop.<locals>.BadHash.__hash__F  r|  r   r   Nr}  r   s   r   r~  r  D  r  r   r~  rz   T)r   r   r   r   r   rL   rF   r[   r   r~  r3   r    r   s       @r   r    TestHashMappingProtocol.test_pop?  s`    $$T*")"	f 	 !I#quua(r   c                     U R                  5       nSUS'    SnU H&  nSXS-   '   US:  a  U R                  S5        US-  nM(     g ! [         a     g f = f)Nr   r   z7changing dict size during iteration doesn't raise Error)r   rL   RuntimeError)r   r3   countr   s       r   test_mutatingiteration.TestHashMappingProtocol.test_mutatingiterationR  si    !!	EA#A:IIWX
	 
  		s   .A 
AAc                   ^ U R                  5       nU R                  [        U5      S5        SUS'   U R                  [        U5      S5        U R                  5       nXS'   U R                  [        U5      S5         " S S[        5      m " U4S jS	[        5      nU R                  SU" 5       05      nU R                  T[        U5        g )
Nz{}r   r   z{1: 2}z
{1: {...}}c                       \ rS rSrSrg).TestHashMappingProtocol.test_repr.<locals>.Excih  r   Nr   r   r   r   r   r  h  r   r   r   c                   "   > \ rS rSrU 4S jrSrg)2TestHashMappingProtocol.test_repr.<locals>.BadReprij  c                    > T" 5       er   r   r   s    r   __repr__;TestHashMappingProtocol.test_repr.<locals>.BadRepr.__repr__k  r   r   r   N)r   r   r   r   r  r   r   s   r   BadReprr  j  r4  r   r  )r   rD   rV  r   r   r#   rF   )r   r3   r  r   s      @r   	test_repr!TestHashMappingProtocol.test_repr_  s    !a$'!a(+!!a,/")"	f 	 79~.#tQ'r   c                     U R                  5       n[        [        5       S-   5       H  nUnU R                  5       nX1S'   M     U R                  [        [
        U5        g r   )r   rU  r   rF   RecursionErrorrV  )r   r3   r   d0s       r   test_repr_deep&TestHashMappingProtocol.test_repr_deepq  sV    !,.23AB##%AaD 4 	.$2r   c                   ^^^^ U R                  U R                  5       U R                  5       5        U R                  U R                  SS05      U R                  SS05      5         " S S[        5      m " U4S jS[        5      mU R                  T" 5       S05      mU R                  SS05      mU R                  TU4S j5        U R                  TUU4S j5        g )	Nr   r   c                       \ rS rSrSrg),TestHashMappingProtocol.test_eq.<locals>.Exci~  r   Nr   r   r   r   r   r  ~  r   r   r   c                   (   > \ rS rSrU 4S jrS rSrg)/TestHashMappingProtocol.test_eq.<locals>.BadCmpi  c                    > T" 5       er   r   rm  s     r   rn  6TestHashMappingProtocol.test_eq.<locals>.BadCmp.__eq__  r   r   c                     gr   r   r   s    r   rr  8TestHashMappingProtocol.test_eq.<locals>.BadCmp.__hash__  s    r   r   Nrt  r   s   r   BadCmpr    s    r   r  c                     > T " 5       S:H  $ r   r   )r  s   r   r5   1TestHashMappingProtocol.test_eq.<locals>.<lambda>  s    vx{r   c                     > T T:H  $ r   r   )d1d2s   r   r5   r    s	    r2vr   )rD   r   r#   r   r   rF   )r   r  r   r  r  s    @@@@r   test_eqTestHashMappingProtocol.test_eqy  s    ,,.0C0C0EF++QF3++QF3	5 	#)"	V 	 1.A'#23#~.r   c                    ^ [         R                  U 5         " S S[        5      m " U4S jS[        5      nU R	                  5       nU" 5       nSX#'   SUl        U R                  TUR                  U/ 5        g )Nc                       \ rS rSrSrg)4TestHashMappingProtocol.test_setdefault.<locals>.Exci  r   Nr   r   r   r   r   r    r   r   r   c                   &   > \ rS rSrSrU 4S jrSrg)8TestHashMappingProtocol.test_setdefault.<locals>.BadHashi  Fc                 6   > U R                   (       a  T" 5       egr   rz  r   s    r   rr  ATestHashMappingProtocol.test_setdefault.<locals>.BadHash.__hash__  r|  r   r   Nr}  r   s   r   r~  r    r  r   r~  rz   T)r   r   r   r   r   rL   rF   rZ   r  s       @r   r   'TestHashMappingProtocol.test_setdefault  sb    ++D1")"	f 	 !I#q||Q3r   r   N)r   r   r   r   rw   rG  r   r  r  r  r  r   r   r   r   r   rf  rf    s*    188)&($3/$4r   rf  )r&   r!  test.supportr   r'   r   r   rf  r   r   r   <module>r     sB      .g.x00 g.T	d)2 d)ND41 D4r   