
    ;e                     T   d dl Z d dlZ d dlZd dlZd dlZd dlZd dlZd dlZd dlZd dl	m
Z
 d dlmZ  G d dej                  Z G d dej                  Zd dl	mZ  G d	 d
ej                  Z G d de          Z G d dej                  Zedk    r ej                     dS dS )    N)support)import_helperc                   0   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d' Z)d( Z*d) Z+d* Z,d+ Z-d, Z.d- Z/d. Z0d/ Z1d0 Z2d1 Z3d2 Z4e5j6        d3             Z7e5j6        d4             Z8e5j6        d5             Z9d6 Z:e5j6        d7             Z;e5j6        d8             Z<e5j6        d9             Z=e5j6        d:             Z>e5j6        d;             Z?e5j6        d<             Z@d= ZAd> ZBd? ZCd@ ZDdA ZEdB ZFdC ZGdD ZHdE ZIdF ZJdG ZKdH ZLdI ZMdJ ZNdK ZOdL ZPdM ZQdN ZRdO ZSdP ZTdQ ZUdR ZVdS ZWe5j6        dT             ZXe5j6        dU             ZYdV ZZdWS )XDictTestc                 N    G d dt                     }ddi |ddi          fD ]}|                     t                    5  t          di | d d d            n# 1 swxY w Y   |                     t                    5   i j        di | d d d            n# 1 swxY w Y   d S )Nc                       e Zd ZdS )7DictTest.test_invalid_keyword_arguments.<locals>.CustomN__name__
__module____qualname__     %/usr/lib/python3.11/test/test_dict.pyCustomr	              Dr   r         r   )dictassertRaises	TypeErrorupdate)selfr   invalids      r   test_invalid_keyword_argumentsz'DictTest.test_invalid_keyword_arguments   sT   	 	 	 	 	T 	 	 	AwAw/ 	% 	%G""9--    w                             ""9-- % %	$$G$$$% % % % % % % % % % % % % % %	% 	%s$   AA	!A	?BB	 B	c                     |                      t                      i            |                     t                      i            d S N)assertEqualr   assertIsNotr   s    r   test_constructorzDictTest.test_constructor   s<    $$$$$$$$r   c                    dD ]}d t          |          D             }t          j        |           d |D             }dd                    |          z   dz   }|                     t          |          t          |                     d S )N)r   r         i  c                 v    g | ]6}d                      t          j        t          j        d                    |f7S )    )joinrandomsamplestringascii_letters.0is     r   
<listcomp>z5DictTest.test_literal_constructor.<locals>.<listcomp>"   sH     ( ( ( ggfmF,@!DDEEqI ( ( (r   c              3   H   K   | ]\  }}d                      ||          V  dS )z
{!r}: {:d}N)format)r.   kvs      r   	<genexpr>z4DictTest.test_literal_constructor.<locals>.<genexpr>%   s6      KKTQ|221a88KKKKKKr   {z, })ranger)   shuffler(   r   evalr   )r   nitemsformatted_itemsdictliterals        r   test_literal_constructorz!DictTest.test_literal_constructor   s     % 	= 	=A( (#Ahh( ( (EN5!!!KKUKKKO		/ : ::S@KT+..U<<<<	= 	=r   c                 z   dddd}dddd}|                                 }||z  }|                     ||z  ddddd           |                     |ddddd           |                                 }||z  }|                     ||z  ddddd           |                     |ddddd           |                                 }|g d	z  }|                     |ddddd           |                     |                    d           t                     |                     |                    d
          t                     |                     |                    d          t                     |                     |                    d          t                     |                     t          |j        d            |                     |                    d
          dddd           |                     t          |j        d           |                     |                    d          dddd           d S )Nr   r   )r   r   r   r      r   r   rA   )r   r   r   rA   )r   r   rA   r   )r   r   r   r   rA   rA   r   BADr&   )	copyr   assertIs__or__NotImplementedr   r   __ior__
ValueError)r   abcs       r   test_merge_operatorzDictTest.test_merge_operator)   s"   aAaAFFHH	QQA!a 8 8999aA!44555FFHH	QQA!a 8 8999aA!44555FFHH	%%%%aA!44555ahhtnnn555ahhrllN333ahhuoo~666ahhrllN333)QY5552A!(:(:;;;*ai7772A!(:(:;;;;;r   c                     |                      i  d           |                     ddi           |                      t          i           d           |                      t          ddi          d           d S )NTr   r   F)rH   
assertTrueboolr    s    r   	test_boolzDictTest.test_boolI   sl    "fd###Ad2hh&&&dAq6llD)))))r   c                    i }|                      t          |                                          t                                 ddd}|                                }|                      t          |          ddh           |                     d|           |                     d|           |                     d|           |                     d|           |                     t
          |j        d            |                      t          t          d                                                    d           d S )Nr   r   rM   rN   rM   rN   rM   zdict_keys(['a']))r   setkeysassertInr   r   reprr   )r   dr3   s      r   	test_keyszDictTest.test_keysO   s
   QVVXX...!FFHHQ#s,,,c1c1c1c1)QVT222dQiiinn..//1CDDDDDr   c                    i }|                      t          |                                          t                                 ddi}|                      t          |                                          dh           |                     t          |j        d            |                      t          t          d                                                    d           d S )Nr   r   rW   zdict_values([1]))r   rX   valuesr   r   r[   r   r   r\   s     r   test_valueszDictTest.test_values\   s    QXXZZ#%%000qEQXXZZ1#...)QXt444dQiii..00113EFFFFFr   c                    i }|                      t          |                                          t                                 ddi}|                      t          |                                          dh           |                     t          |j        d            |                      t          t          d                                                    d           d S )Nr   r   r   r   rW   zdict_items([('a', 1)]))r   rX   r<   r   r   r[   r   r`   s     r   
test_itemszDictTest.test_itemsd   s    QWWYY///qEQWWYY&222)QWd333dQiiioo//002JKKKKKr   c                    t          t           j                  } G d dt                    }t          |fD ]} |            }|                                j        }|                                j        }|                                j        }|||fD ].}|                     ||           |                     ||           /d|d<   |||fD ].}|                     ||           |                     ||           /d S )Nc                       e Zd ZdS ))DictTest.test_views_mapping.<locals>.DictNr
   r   r   r   Dictrg   o   r   r   rh   barfoo)	type__dict__r   rY   mappingr_   r<   assertIsInstancer   )	r   mappingproxyrh   clsr\   m1m2m3ms	            r   test_views_mappingzDictTest.test_views_mappingm   s)   DM**	 	 	 	 	4 	 	 	$< 	' 	'CA!B#B"B"b\ ' '%%a666  A&&&&AeH"b\ ' '%%a666  A&&&&'	' 	'r   c                 `   i }|                      d|           |                     d|v            |                     d|v           ddd}|                     d|           |                     d|           |                      d|           |                     t
          |j                   d S )NrM   r   r   rV   rN   rO   )assertNotInassertFalserR   rZ   r   r   __contains__r`   s     r   test_containszDictTest.test_contains   s    a   """1%%%!c1c1a   )Q^44444r   c                     i }|                      t          |          d           ddd}|                      t          |          d           d S )Nr   r   r   rV   )r   lenr`   s     r   test_lenzDictTest.test_len   sR    Q###!Q#####r   c                    ddd}|                      |d         d           |                      |d         d           d|d<   d|d<   |                      |d         d           |                      |d         d           |d= |                      |ddd	           |                     t          |j                    G fd
dt                    }i }d| |            <   |                     t
          |j        d            G d dt                     G fddt                    } |            }d||<   d|_        |                     |j        |           d S )Nr   r   rV   rM   rN   rA   rO      )rM   rO   c                        e Zd Z fdZd ZdS )$DictTest.test_getitem.<locals>.BadEqc                                  r   r   r   otherExcs     r   __eq__z+DictTest.test_getitem.<locals>.BadEq.__eq__       ceer   c                     dS )N   r   r    s    r   __hash__z-DictTest.test_getitem.<locals>.BadEq.__hash__       rr   Nr   r   r   r   r   r   s   r   BadEqr      s=                r   r   *      c                       e Zd ZdS )"DictTest.test_getitem.<locals>.ExcNr
   r   r   r   r   r                r   r   c                       e Zd ZdZ fdZdS )&DictTest.test_getitem.<locals>.BadHashFc                 *    | j         r
             dS Nr   failr   r   s    r   r   z/DictTest.test_getitem.<locals>.BadHash.__hash__       9 #%%K2r   Nr   r   r   r   r   r   s   r   BadHashr      3        D      r   r   T)r   r   r   __getitem__objectKeyError	Exceptionr   )r   r\   r   r   xr   s        @r   test_getitemzDictTest.test_getitem   s   !3###3#####3###3###cF!!,,---)Q]333	 	 	 	 	 	 	F 	 	 	 %%''
(AM2666""""")"""	 	 	 	 	 	 	f 	 	 	 GII!#q}a00000r   c                     dddd}|                                  |                     |i            |                     t          |j         d            d S Nr   r   rA   rB   )clearr   r   r   r`   s     r   
test_clearzDictTest.test_clear   sR    AOO				B)QWd33333r   c                 `   i }|                     ddi           |                     ddi           |                     dddd           |                     |dddd           |                                  |                     |dddd           |                     t          t          f|j         d             G d d          }|                                 |                      |                       |                     |dddd            G d	 d
t                    |                                  G fdd          }|                     |j          |                        G fdd          }|                     |j          |                        G fdd          }|                     |j          |                        G fddt                    }|                     i j          |                       |                     t          i j         dg           d S )Nr   d   r      rA   rB   c                        e Zd Zd Zd Zd ZdS ),DictTest.test_update.<locals>.SimpleUserDictc                     dddd| _         d S r   r\   r    s    r   __init__z5DictTest.test_update.<locals>.SimpleUserDict.__init__   s    ar   c                 4    | j                                         S r   )r\   rY   r    s    r   rY   z1DictTest.test_update.<locals>.SimpleUserDict.keys   s    v{{}}$r   c                     | j         |         S r   r   )r   r/   s     r   r   z8DictTest.test_update.<locals>.SimpleUserDict.__getitem__   s    vay r   N)r   r   r   r   rY   r   r   r   r   SimpleUserDictr      sA        ) ) )% % %! ! ! ! !r   r   c                       e Zd ZdS )!DictTest.test_update.<locals>.ExcNr
   r   r   r   r   r      r   r   r   c                       e Zd Z fdZdS )-DictTest.test_update.<locals>.FailingUserDictc                     r   r   r   s    r   rY   z2DictTest.test_update.<locals>.FailingUserDict.keys       	r   N)r   r   r   rY   r   s   r   FailingUserDictr      .              r   r   c                        e Zd Z fdZd ZdS )r   c                 6     G fdd          } |            S )Nc                   &    e Zd Zd Zd Z fdZdS )EDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIterc                     d| _         d S Nr   r/   r    s    r   r   zNDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__init__   s    !"r   c                     | S r   r   r    s    r   __iter__zNDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__iter__       #r   c                 (    | j         r	d| _         dS )Nr   rM   r   r   s    r   __next__zNDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__next__   s    6 '%&DF#&3!	r   Nr   r   r   r   r   r   r   s   r   	BogonIterr      sL        # # #$ $ $" " " " " " "r   r   r   )r   r   r   s     r   rY   z2DictTest.test_update.<locals>.FailingUserDict.keys   sC    	" 	" 	" 	" 	" 	" 	" 	" 	" 	" !y{{"r   c                     |S r   r   r   keys     r   r   z9DictTest.test_update.<locals>.FailingUserDict.__getitem__   s    
r   Nr   r   r   rY   r   r   s   r   r   z-DictTest.test_update.<locals>.FailingUserDict   s=        # # # # #    r   c                        e Zd Zd Z fdZdS )r   c                 0     G d d          } |            S )Nc                        e Zd Zd Zd Zd ZdS )r   c                 .    t          d          | _        d S )NrM   )ordr/   r    s    r   r   zNDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__init__   s    !$Sr   c                     | S r   r   r    s    r   r   zNDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__iter__   r   r   c                     | j         t          d          k    r&t          | j                   }| xj         dz  c_         |S t          )Nzr   )r/   r   chrStopIteration)r   rtns     r   r   zNDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter.__next__   s<    6SXX--"%df++C FFaKFF#&J++r   Nr   r   r   r   r   zEDictTest.test_update.<locals>.FailingUserDict.keys.<locals>.BogonIter   sA        * * *$ $ $, , , , ,r   r   r   )r   r   s     r   rY   z2DictTest.test_update.<locals>.FailingUserDict.keys   s8    
, 
, 
, 
, 
, 
, 
, 
, !y{{"r   c                     r   r   )r   r   r   s     r   r   z9DictTest.test_update.<locals>.FailingUserDict.__getitem__   r   r   Nr   r   s   r   r   z-DictTest.test_update.<locals>.FailingUserDict   s=        # # #      r   c                        e Zd Zd Z fdZdS )$DictTest.test_update.<locals>.badseqc                     | S r   r   r    s    r   r   z-DictTest.test_update.<locals>.badseq.__iter__      r   c                                  r   r   r   s    r   r   z-DictTest.test_update.<locals>.badseq.__next__  r   r   Nr   r   r   r   r   r   s   r   badseqr     =                r   r   )	r   r   r   r   AttributeErrorr   r   r   rL   )r   r\   r   r   r   r   s        @r   test_updatezDictTest.test_update   s   	!C	!B	Aa!!!qAOO,,,	


qAOO,,,9n5qxFFF	! 	! 	! 	! 	! 	! 	! 	! 	
				!!"""qAOO,,,""""")"""					 	 	 	 	 	 	 	 	 	 	#qx):):;;;	 	 	 	 	 	 	 	 	 	 	#qx):):;;;	 	 	 	 	 	 	 	 	 	  	#qx):):;;;	 	 	 	 	 	 	V 	 	 	 	#ry&&((333*bi)=====r   c           
        
 |                      t                              d          d d d d           i |                                         d                     |                                          d          d d d d           |                                          dd          ddd           |                                          g           i            d }|                                           |                      dd i           |                     t
          i j        d            G d d	t                    }|                      |                    d
          d
d i           |                       |                                d
          d
d i           |                     |                    d
          |           |                      |                                d
          |            G d dt                    }|                    d          }|                      |d d d           |                     |t          j                   |                     t
          t          j                    G d dt                    
 G 
fddt                    }|                     
|j        dg            G 
fddt                    }|                     
t          j         |                        G 
fddt                    }|                     
|j        dg           t          t          t          d          t          d                              |                      t                              d          t          t          t          d          dgdz                                  G fddt                    }d t          d          D                                             }	|	                    d d d            |                      |                    h d          |	           d S )NabcrM   rN   rO   )r      r   c               3      K   dV  d S r   r   r   r   r   gz!DictTest.test_fromkeys.<locals>.g  s      GGGGGr   r   rA   c                       e Zd ZdS )(DictTest.test_fromkeys.<locals>.dictlikeNr
   r   r   r   dictliker     r   r   r   rM   c                       e Zd Zd ZdS )&DictTest.test_fromkeys.<locals>.mydictc                 (    t          j                    S r   )collectionsUserDict)rp   s    r   __new__z.DictTest.test_fromkeys.<locals>.mydict.__new__  s    "+---r   Nr   r   r   r   r   r   r   mydictr     s#        . . . . .r   r   abrV   c                       e Zd ZdS )#DictTest.test_fromkeys.<locals>.ExcNr
   r   r   r   r   r   $  r   r   r   c                       e Zd Z fdZdS )(DictTest.test_fromkeys.<locals>.baddict1c                                  r   r   r   s    r   r   z1DictTest.test_fromkeys.<locals>.baddict1.__init__'  r   r   Nr   r   r   r   r   s   r   baddict1r   &  .              r   r   c                        e Zd Zd Z fdZdS )&DictTest.test_fromkeys.<locals>.BadSeqc                     | S r   r   r    s    r   r   z/DictTest.test_fromkeys.<locals>.BadSeq.__iter__-  r   r   c                                  r   r   r   s    r   r   z/DictTest.test_fromkeys.<locals>.BadSeq.__next__/  r   r   Nr   r   s   r   BadSeqr   ,  r   r   r  c                       e Zd Z fdZdS )(DictTest.test_fromkeys.<locals>.baddict2c                                  r   r   )r   r   valuer   s      r   __setitem__z4DictTest.test_fromkeys.<locals>.baddict2.__setitem__5  r   r   N)r   r   r   r  r   s   r   baddict2r  4  r   r   r  r#   c                       e Zd Z fdZdS )(DictTest.test_fromkeys.<locals>.baddict3c                     S r   r   )rp   r\   s    r   r   z0DictTest.test_fromkeys.<locals>.baddict3.__new__?  s    r   Nr   r   s   r   baddict3r
  >  s.              r   r  c                     i | ]}||S r   r   r-   s     r   
<dictcomp>z*DictTest.test_fromkeys.<locals>.<dictcomp>A  s    &&&qQ&&&r   
   >   rM   rN   rO   )r   r   fromkeysr   r   r   rn   r   r   r   r   zipr8   rG   r   )r   r   r   r   udr   r  r  r  resr   r\   s             @@r   test_fromkeyszDictTest.test_fromkeys  s   u--Dd/M/MNNNE**A...E**4T,J,JKKKE!,,ajj999B,,,	 	 	AACC1T(333)R[!444"""""t"""**3//#d<<<,,S11C:>>>h//44h???hhjj11#66AAA	. 	. 	. 	. 	.T 	. 	. 	. __T""$D11222b+"6777)T]333""""")"""	 	 	 	 	 	 	t 	 	 	 	#x01#666	 	 	 	 	 	 	V 	 	 	 	#t}ffhh777	 	 	 	 	 	 	t 	 	 	 	#x01#666 U1XXuQxx(())q!,,d3uQxx!Q3G3G.H.HIII	 	 	 	 	 	 	t 	 	 	 '&E"II&&&ffhh

TTT
*****???;;SAAAAAr   c                    dddd}|                      |                                |           |                     |                                |           |                     |                                dddd           |                                }d|d<   |                     ||           |                     i                                 i            |                     t
          |j        d            d S )Nr   r   rA   rB   r   )r   rG   r   assertNotEqualr   r   )r   r\   rG   s      r   	test_copyzDictTest.test_copyF  s    aA1%%%1%%%qQ1#5#5666vvxx!D!$$$B''')QVT22222r   c                    dD ]}t          j        |dz  ||dz  z             }|                     |          5  i }t          |          D ]}|||<   |                                }|                     ||           |                     ||           d|d<   |                     ||           |                     t          |          t          |          dz              d d d            n# 1 swxY w Y   d S )N)r  r     i'  i r   )	dict_sizer  r   r   )	r)   	randrangesubTestr8   rG   r   r   r  r|   )r   r  r\   r/   d2s        r   test_copy_fuzzzDictTest.test_copy_fuzzS  sN   7 	6 	6I(Q	IN :< <I	22 
6 
6y))  AAaDDVVXX  Q'''  B'''#5	##Ar***  R#a&&1*555
6 
6 
6 
6 
6 
6 
6 
6 
6 
6 
6 
6 
6 
6 
6	6 	6s   B(C--C1	4C1	c                      G d d          } |            }i ddi|difD ]P}|                                 }|                     t          j        |          t          j        |                     Qd S )Nc                       e Zd ZdS )0DictTest.test_copy_maintains_tracking.<locals>.ANr
   r   r   r   Ar!  d  r   r   r"  rM   r   val)rG   r   gc
is_tracked)r   r"  r   r\   r  s        r   test_copy_maintains_trackingz%DictTest.test_copy_maintains_trackingc  s    	 	 	 	 	 	 	 	 accsAhe- 	B 	BABR]1--r}R/@/@AAAA	B 	Br   c                     d t          d          D             }t          d          D ]}||= |                                }|                     ||           d S )Nc                     i | ]}||S r   r   )r.   r3   s     r   r  z1DictTest.test_copy_noncompact.<locals>.<dictcomp>t  s    '''aQ'''r   r  i  )r8   rG   r   )r   r\   r3   r  s       r   test_copy_noncompactzDictTest.test_copy_noncompactm  sd     ('5;;'''s 	 	A!VVXXQr   c                    i }|                      |                    d          d            |                     |                    dd          d           ddd}|                      |                    d          d            |                     |                    dd          d           |                     |                    d          d           |                     |                    dd          d           |                     t          |j                   |                     t          |j        d d d            d S )NrO   rA   r   r   rV   rM   )rH   getr   r   r   r`   s     r   test_getzDictTest.test_getz  s   aeeCjj$'''sA***!aeeCjj$'''sA***sQ'''sA***)QU+++)QUD$=====r   c                    i }|                      |                    d          d            |                    dg            |                      |                    d          d            |                    dg                               d           |                     |d         d         d           |                    dg                               d           |                     t	          |d                   d           |                     t          |j                    G d dt                     G fd	d
t                    } |            }d||<   d|_	        |                     |j        |g            d S )Nkey0r   rA   r   r   r   c                       e Zd ZdS )%DictTest.test_setdefault.<locals>.ExcNr
   r   r   r   r   r0    r   r   r   c                       e Zd ZdZ fdZdS ))DictTest.test_setdefault.<locals>.BadHashFc                 *    | j         r
             dS r   r   r   s    r   r   z2DictTest.test_setdefault.<locals>.BadHash.__hash__  r   r   Nr   r   s   r   r   r2    r   r   r   r   T)
rH   
setdefaultappendr   r|   r   r   r   r   r   )r   r\   r   r   r   s       @r   test_setdefaultzDictTest.test_setdefault  s   all6**D111	VR   all6**D111	UB&&q)))5!a(((	UB&&q)))QuX***)Q\222""""")"""	 	 	 	 	 	 	f 	 	 	 GII!#q|Q33333r   c                 :    G d dt                     } |            }|di} |            }|                    |g            |                     |j        d           |                     |j        d           |                     |j        |j        z   d           d S )Nc                        e Zd Zd Zd Zd ZdS )/DictTest.test_setdefault_atomic.<locals>.Hashedc                 "    d| _         d| _        d S Nr   
hash_counteq_countr    s    r   r   z8DictTest.test_setdefault_atomic.<locals>.Hashed.__init__      "# !r   c                 &    | xj         dz  c_         dS Nr   r   r=  r    s    r   r   z8DictTest.test_setdefault_atomic.<locals>.Hashed.__hash__      1$rr   c                 b    | xj         dz  c_         t          |           t          |          k    S r   r>  idr   r   s     r   r   z6DictTest.test_setdefault_atomic.<locals>.Hashed.__eq__  )    "$xx2e99,,r   Nr   r   r   r   r   r   r   r   r   Hashedr9    A        " " "  - - - - -r   rJ  r   r   )r   r4  r   r=  r>  r   rJ  hashed1yhashed2s        r   test_setdefault_atomiczDictTest.test_setdefault_atomic  s    		- 		- 		- 		- 		-V 		- 		- 		- &((aL&((	Wb!!!+Q///+Q///)G,<<a@@@@@r   c           
      (    G d dt                     } |            }|dddddddddi} |            }g ||<   |                     |j        d           |                     |j        d           |                     |j        |j        z   d           d S )Nc                        e Zd Zd Zd Zd ZdS )6DictTest.test_setitem_atomic_at_resize.<locals>.Hashedc                 "    d| _         d| _        d S r;  r<  r    s    r   r   z?DictTest.test_setitem_atomic_at_resize.<locals>.Hashed.__init__  r?  r   c                 &    | xj         dz  c_         dS rA  rB  r    s    r   r   z?DictTest.test_setitem_atomic_at_resize.<locals>.Hashed.__hash__  rC  r   c                 b    | xj         dz  c_         t          |           t          |          k    S r   rE  rG  s     r   r   z=DictTest.test_setitem_atomic_at_resize.<locals>.Hashed.__eq__  rH  r   NrI  r   r   r   rJ  rS    rK  r   rJ  r   r   r   r   rA   )r   r   r=  r>  rL  s        r   test_setitem_atomic_at_resizez&DictTest.test_setitem_atomic_at_resize  s    		- 		- 		- 		- 		-V 		- 		- 		- &((aAq!Q1a0&(('
+Q///+Q///)G,<<a@@@@@r   c           	         dD ]I}t          d          D ]5}d|z  }i }i }t          |          D ],}||t          |          <   |dk     r||t          |          <   -|dk    r|                                }t          |          D ]}|                                x\  }}}	|                     |t          |                     |                                x\  }
}}|                     |t          |
                     |                     |dk     o|	|k               |                     |           |                     |           7Ki }|                     t          |j                   d S )N)r      r   r   )	r8   r[   rG   popitemr   intrx   r   r   )r   copymodelog2sizesizerM   rN   r/   kavatakbvbtbr\   s                 r   test_popitemzDictTest.test_popitem  s    	$ 	$H ""II $ $({t ' 'A!"Ad1ggJ!||%&$q''
a<<At @ @A"#))++-FBR$$RR111"#))++-FBR$$RR111$$X\%>bBh????  ###  #####$& (AI.....r   c                    i }d\  }}|||<   |                      t          |j        d           |                     |                    |          |           |                     t	          |          d           |                      t          |j        |           |                     |                    ||          |           |||<   |                     |                    |d          |           |                      t
          |j                    G d dt                     G fddt                    } |            }d	||<   d
|_        |                      |j        |           d S )N)r   defghir   r   c                       e Zd ZdS )DictTest.test_pop.<locals>.ExcNr
   r   r   r   r   rk    r   r   r   c                       e Zd ZdZ fdZdS )"DictTest.test_pop.<locals>.BadHashFc                 *    | j         r
             dS r   r   r   s    r   r   z+DictTest.test_pop.<locals>.BadHash.__hash__  r   r   Nr   r   s   r   r   rm    r   r   r   r   T)	r   r   popr   r|   r   r   r   r   )r   r\   r3   r4   r   r   r   s         @r   test_popzDictTest.test_pop  sz   1!(AE5111q1%%%Q###(AE1---q!a(((!q!a((()QU+++""""")"""	 	 	 	 	 	 	f 	 	 	 GII!#qua(((((r   c                     i }d|d<   |                      t                    5  |D ]
}d||dz   <   	 d d d            d S # 1 swxY w Y   d S r   r   RuntimeErrorr   r\   r/   s      r   test_mutating_iterationz DictTest.test_mutating_iteration  s    !|,, 	 	  !A#	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   >AAc                     i }d|d<   |                      t                    5  |D ]
}|d= d|d<   	 d d d            d S # 1 swxY w Y   d S r;  rr  rt  s      r   test_mutating_iteration_deletez'DictTest.test_mutating_iteration_delete  s    !|,, 	 	  aD!	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	rv  c                     i }d|d<   |                      t                    5  |                                D ]
}|d= d|d<   	 d d d            d S # 1 swxY w Y   d S r;  )r   rs  r_   rt  s      r   *test_mutating_iteration_delete_over_valuesz3DictTest.test_mutating_iteration_delete_over_values  s    !|,, 	 	XXZZ  aD!	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	    AAAc                     i }d|d<   |                      t                    5  |                                D ]
}|d= d|d<   	 d d d            d S # 1 swxY w Y   d S r;  r   rs  r<   rt  s      r   )test_mutating_iteration_delete_over_itemsz2DictTest.test_mutating_iteration_delete_over_items   s    !|,, 	 	WWYY  aD!	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r{  c                      G fdd           d          } d          }|di}||f_         d||<   |                     ||di           d S )Nc                   *    e Zd ZdZd Zd Z fdZdS )/DictTest.test_mutating_lookup.<locals>.NastyKeyNc                     || _         d S r   )r  )r   r  s     r   r   z8DictTest.test_mutating_lookup.<locals>.NastyKey.__init__.  s    "


r   c                     dS r   r   r    s    r   r   z8DictTest.test_mutating_lookup.<locals>.NastyKey.__hash__1  s    qr   c                 Z    j         rj         \  }}d _         ||= | j        |j        k    S r   )mutate_dictr  )r   r   r   r   NastyKeys       r   r   z6DictTest.test_mutating_lookup.<locals>.NastyKey.__eq__5  s8    ' $"*"6KFC+/H(szU[00r   )r   r   r   r  r   r   r   )r  s   r   r  r  +  sQ        K# # #  1 1 1 1 1 1 1r   r  r   r   )r  r   )r   key1key2r\   r  s       @r   test_mutating_lookupzDictTest.test_mutating_lookup)  s    	1 	1 	1 	1 	1 	1 	1 	1 	1 	1" x{{x{{1I !4y$T1I&&&&&r   c                    i }|                      t          |          d           d|d<   |                      t          |          d           i }||d<   |                      t          |          d            G d dt                     G fdd	t                    }d |            i}|                     t          |           d S )
Nz{}r   r   z{1: 2}z
{1: {...}}c                       e Zd ZdS )DictTest.test_repr.<locals>.ExcNr
   r   r   r   r   r  L  r   r   r   c                       e Zd Z fdZdS )#DictTest.test_repr.<locals>.BadReprc                                  r   r   r   s    r   __repr__z,DictTest.test_repr.<locals>.BadRepr.__repr__O  r   r   N)r   r   r   r  r   s   r   BadReprr  N  r   r   r  )r   r[   r   r   r   )r   r\   r  r   s      @r   	test_reprzDictTest.test_reprC  s    a$'''!a(+++!a,///""""")"""	 	 	 	 	 	 	f 	 	 	 		N#tQ'''''r   c                     i }t          t          j                    dz             D ]}d|i}|                     t          t
          |           d S )Nr   r   )r8   sysgetrecursionlimitr   RecursionErrorr[   rt  s      r   test_repr_deepzDictTest.test_repr_deepU  sU    s,..455 	 	AAAA.$22222r   c                 @   |                      i i            |                      ddiddi            G d dt                     G fddt                    } |            di}ddi}|                               5  ||k     d d d            d S # 1 swxY w Y   d S )Nr   r   c                       e Zd ZdS )DictTest.test_eq.<locals>.ExcNr
   r   r   r   r   r  _  r   r   r   c                        e Zd Z fdZd ZdS ) DictTest.test_eq.<locals>.BadCmpc                                  r   r   r   s     r   r   z'DictTest.test_eq.<locals>.BadCmp.__eq__b  r   r   c                     dS r   r   r    s    r   r   z)DictTest.test_eq.<locals>.BadCmp.__hash__d      qr   Nr   r   s   r   BadCmpr  a  s=                r   r  )r   r   r   r   )r   r  d1r  r   s       @r   test_eqzDictTest.test_eq[  s    R   !Q!Q(((""""")"""	 	 	 	 	 	 	V 	 	 	 fhh]Vs## 	 	"HH	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   ?BBBc                 ^    |                      d            |                      d            d S )Nc                 *    |                                  S r   )rY   r   s    r   <lambda>z.DictTest.test_keys_contained.<locals>.<lambda>n  s    QVVXX r   c                 *    |                                  S r   r<   r  s    r   r  z.DictTest.test_keys_contained.<locals>.<lambda>o  s    QWWYY r   )helper_keys_containedr    s    r   test_keys_containedzDictTest.test_keys_containedm  s8    ""#5#5666""#6#677777r   c                     |t                                } |t                                } |ddd          } |dddd          } |dddd          } |dddd          }|                     ||k                |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k                |                     ||k                |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k                |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               |                     ||k               d S )Nr   r   rc   rA   rB   )r   r   rA   )r   rR   rx   )r   fnemptyempty2smallerlargerlarger2larger3s           r   r  zDictTest.helper_keys_containedq  s    466

DFF"QZZ..qAOO$$"Q!__%%"Q!__%%6)***6)***')***')***F*+++F*+++G+,,,G+,,,G+,,,G+,,,G+,,,G+,,, 	6)***6)***6)***6)***')***6)*** 	(((&)))')***())) 	')***7*+++++r   c                     G d d          }d |            i}d |            i}|                      t                    5  |                                |                                k     d d d            n# 1 swxY w Y   |                      t                    5  |                                |                                k     d d d            n# 1 swxY w Y   |                      t                    5  |                                |                                k     d d d            n# 1 swxY w Y   |                      t                    5  |                                |                                k     d d d            n# 1 swxY w Y    |             |            d}|                      t                    5  |                                |                                k      d d d            n# 1 swxY w Y   |                      t                    5  |                                |                                k     d d d            d S # 1 swxY w Y   d S )Nc                       e Zd Zd ZdS )9DictTest.test_errors_in_view_containment_check.<locals>.Cc                     t           r   rs  rG  s     r   r   z@DictTest.test_errors_in_view_containment_check.<locals>.C.__eq__  s    ""r   Nr   r   r   r   r   r   r   Cr    s#        # # # # #r   r  r   rc   r}  )r   r  r  r  d3s        r   %test_errors_in_view_containment_checkz.DictTest.test_errors_in_view_containment_check  s   	# 	# 	# 	# 	# 	# 	# 	# XX|,, 	% 	%HHJJ"((**$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%|,, 	% 	%HHJJ"((**$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%|,, 	% 	%HHJJ"((**$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%|,, 	% 	%HHJJ"((**$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% |,, 	$ 	$HHJJ##	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$|,, 	$ 	$HHJJ##	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$sl    +A77A;>A;+CCC8+D//D36D3+FFF+G<<H H !+II Ic                    ddd                                 }dddd                                 }ddi                                 }|                     ||z
  t                                 |                     ||z
  ddh           |                     ||z
  dh           |                     ||z
  dh           |                     ||z  ddh           |                     ||z  t                                 |                     ||z  h d           |                     ||z  dh           |                     ||z  h d           d S )	Nr   r   rc   rA   rB   r   >   r   r   rA   >   r   r   r   )rY   r   rX   r   k1k2k3s       r   $test_dictview_set_operations_on_keysz-DictTest.test_dictview_set_operations_on_keys  sO   QZZ__Q!__!!##UZZ\\b#%%(((b1Q%(((b1#&&&b1#&&&b1Q%(((b#%%(((b'''***b1#&&&b'''*****r   c                    ddd                                 }dddd                                 }ddi                                 }|                     ||z
  t                                 |                     ||z
  ddh           |                     ||z
  d	h           |                     ||z
  d
h           |                     ||z  ddh           |                     ||z  t                                 |                     ||z  h d           |                     ||z  d	h           |                     ||z  h d           d S )Nr   r   rc   rA   rB   r   rC   rD   rE   r   r   >   rC   rD   rE   >   rC   rD   r  )r<   r   rX   r  s       r   %test_dictview_set_operations_on_itemsz.DictTest.test_dictview_set_operations_on_items  sW   QZZQ!__""$$U[[]]b#%%(((b5%.111b5'***b5'***b5%.111b#%%(((b"7"7"7888b5'***b"7"7"788888r   c                    t           j        t          d          D ]}fdt          d          D             }fdt          d          D             }|                     ||          5  t	          |                                          t	          |                                          z  }|                                |                                z  }|                     ||           d d d            n# 1 swxY w Y   d S )Nr   c                 >    i | ]} d           | d          S r   rA   r   r.   r   rrs     r   r  z<DictTest.test_items_symmetric_difference.<locals>.<dictcomp>  s0    888""Q%%8Abbee888r   r   c                 >    i | ]} d           | d          S r  r   r  s     r   r  z<DictTest.test_items_symmetric_difference.<locals>.<dictcomp>  s0    99922a559Qrr!uu999r   )leftright)r)   r  r8   r  rX   r<   r   )r   _r  r  expectedactualr  s         @r   test_items_symmetric_differencez(DictTest.test_items_symmetric_difference  s.   s 	3 	3A8888U2YY888D9999eBii999E4u55 3 3tzz||,,s5;;==/A/AA5  2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3	3 	3s   ,BC;;C?	C?	c                    |                      ddi                                dhk               |                      dhddi                                k               |                     ddi                                dhz  ddh           |                     dhddi                                z  ddh           |                      ddi                                dhk               |                      dhddi                                k               |                     ddi                                dhz  ddh           |                     dhddi                                z  ddh           d S )Nr   r   rC   )rR   rY   r   r<   r    s    r   "test_dictview_mixed_set_operationsz+DictTest.test_dictview_mixed_set_operations  sP   1

+,,,!uzz||+,,,!A+aV444!!uzz||+aV4441%0111Aa5;;==0111!A!,uaj999!!u{{}},uaj99999r   c                    |                      t          t          d                     |                      t          i d                      G d dt                    } |ddd          }|                     |d         d           |                     |d         d           |                     d|           |                     d|                                           |                     |d         d	            G d
 dt                    } |            }|                     t                    5 }|d	          d d d            n# 1 swxY w Y   |                     |j        j	        d            G d dt                    } |            }|                     t                    5 }|d	          d d d            n# 1 swxY w Y   |                     |j        j	        d            G d dt                    } |            }	|                     t                    5 }|	d	          d d d            n# 1 swxY w Y   |                     |j        j	        d           d S )N__missing__c                       e Zd Zd ZdS ) DictTest.test_missing.<locals>.Dc                     dS r   r   r   s     r   r  z,DictTest.test_missing.<locals>.D.__missing__  r   r   Nr   r   r   r  r   r   r   Dr    s#            r   r  r   r   )r   rA   r   rA   r   c                       e Zd Zd ZdS ) DictTest.test_missing.<locals>.Ec                      t          |          r   r  r   s     r   r  z,DictTest.test_missing.<locals>.E.__missing__  s    "3'''r   Nr  r   r   r   Er    s#        ( ( ( ( (r   r  r   c                       e Zd Zd ZdS ) DictTest.test_missing.<locals>.Fc                     d | _         d S )Nc                     d S r   r   )r   s    r   r  z;DictTest.test_missing.<locals>.F.__init__.<locals>.<lambda>  s    t r   )r  r    s    r   r   z)DictTest.test_missing.<locals>.F.__init__  s    #3#3   r   Nr   r   r   r   Fr    s#        4 4 4 4 4r   r  c                       e Zd ZdS ) DictTest.test_missing.<locals>.GNr
   r   r   r   Gr    r   r   r  )rx   hasattrr   r   rw   rY   r   rs  	exceptionargsr   )
r   r  r\   r  erO   r  fr  r   s
             r   test_missingzDictTest.test_missing  sF   }55666]33444	 	 	 	 	 	 	 	 A!llOO1q!!!1q!!!AAFFHH%%%1r"""	( 	( 	( 	( 	( 	( 	( 	( ACC|,, 	bEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	)5111	4 	4 	4 	4 	4 	4 	4 	4 ACCx(( 	AbEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	)5111	 	 	 	 	 	 	 	ACCx(( 	AbEE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	)511111s6   6	EEE-	GG	G$	H99H= H=c                     i }|                      t                    5 }|d          d d d            n# 1 swxY w Y   |                     |j        j        d           d S )Nr   )r  )r   r   r   r  r  )r   r\   rO   s      r   test_tuple_keyerrorzDictTest.test_tuple_keyerror  s    x(( 	AdGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	)733333s   	266c                     G d dt                      G fdd          }i } |            } |            }d||<   dD ]K}|                               5  t          |t                                 d d d            n# 1 swxY w Y   Ld S )Nc                       e Zd ZdS ).DictTest.test_bad_key.<locals>.CustomExceptionNr
   r   r   r   CustomExceptionr    r   r   r  c                        e Zd Zd Z fdZdS ))DictTest.test_bad_key.<locals>.BadDictKeyc                 *    t          | j                  S r   )hash	__class__r    s    r   r   z2DictTest.test_bad_key.<locals>.BadDictKey.__hash__  s    DN+++r   c                 6    t          || j                  r|S r   )
isinstancer  )r   r   r  s     r   r   z0DictTest.test_bad_key.<locals>.BadDictKey.__eq__"  s"    eT^44 *))r   Nr   r   r   r   r   )r  s   r   
BadDictKeyr    s=        , , ,      r   r  r   )z	d[x2] = 2z	z = d[x2]zx2 in dz	d.get(x2)zd.setdefault(x2, 42)z	d.pop(x2)zd.update({x2: 2}))r   r   execlocals)r   r  r\   x1x2stmtr  s         @r   test_bad_keyzDictTest.test_bad_key  s    	 	 	 	 	i 	 	 		 	 	 	 	 	 	 	 	 	 Z\\Z\\"* 	% 	%D ""?33 % %T688$$$% % % % % % % % % % % % % % %	% 	%s   BB	B	c                     i }t          d          D ]}|||<   t          d          D ]}||= t          dd          D ]}|||<   d S )Nr   	   )r8   rt  s      r   test_resize1zDictTest.test_resize15  ss     q 	 	AAaDDq 	 	A!q! 	 	AAaDD	 	r   c                      G fddt                     }i dd |            <   d |            <   d |            <   d |            <   d |            <   d	d
d<   d S )Nc                   "    e Zd Zd Z fdZdS ) DictTest.test_resize2.<locals>.Xc                     dS )Nr   r   r    s    r   r   z)DictTest.test_resize2.<locals>.X.__hash__J  r  r   c                 4    r                                  dS NFr   )r   r   r\   resizings     r   r   z'DictTest.test_resize2.<locals>.X.__eq__L  s     GGIIIur   Nr  )r\   r  s   r   Xr  I  sB                 r   r  Fr   r   rA   r   r   Tr#   r  )r   )r   r  r\   r  s     @@r   test_resize2zDictTest.test_resize2E  s    	 	 	 	 	 	 	 	 	 	 	 !!##!!##!!##!!##!!##!r   c           
          |                      t                    5  ddz  d d d d d d d d}d d d            n# 1 swxY w Y   i }d S )Nr   r   )rM   rN   rO   r\   r  r  r   h)r   ZeroDivisionErrorr`   s     r   $test_empty_presized_dict_in_freelistz-DictTest.test_empty_presized_dict_in_freelist[  s     011 	2 	21f4dDD2 2A	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 s   6::c                 z    G d dt                     }t          j        t          j        t          j        f}|D ]} |            }t          j        |          }|di} ||          |_        t          |j                  |_	        ~~t          j                     |                      |            d d           d S )Nc                       e Zd ZdS )+DictTest.test_container_iterator.<locals>.CNr
   r   r   r   r  r  f  r   r   r  r   zCycle was not collected)r   r   r<   r_   rY   weakrefrefr4   iterr   r$  collectrH   )r   r  viewsr4   objr  	containers          r   test_container_iteratorz DictTest.test_container_iteratorc  s    	 	 	 	 	 	 	 	T[$)4 	B 	BA!##C+c""CaIAiLLCEKKCEYJLLLMM##%%'@AAAA	B 	Br   c                     t          j                     t          j                     |                     t          j        |          |           d S r   )r$  r  rx   r%  r   ts     r   _not_trackedzDictTest._not_trackeds  s>    



q))1-----r   c                     |                      t          j        |          |           t          j                     t          j                     |                      t          j        |          |           d S r   )rR   r$  r%  r  r   s     r   _trackedzDictTest._trackedy  sZ    a((!,,,



a((!,,,,,r   c                     t          d          D ]-}i }t          d          D ]}||t          |          <   ||d<   .d S )Nr  rj   )r8   str)r   r/   r\   js       r   !test_string_keys_can_track_valuesz*DictTest.test_string_keys_can_track_values  sW    r 	 	AA2YY  #a&&		AeHH		 	r   c                    dddg f\  }}}}|                      i            |                      |d|||di           |                      ddd           |                      dt          d           |                      dt                      i           |                     dg i           |                     dg fi           |                     di i           |                     dt	                      i           d S )	N      ?rM   )r   Nr   r   r   )r   rN   )r   )NTFr   )r"  r\  r   r$  rX   )r   r   rN  r   ws        r   test_track_literalszDictTest.test_track_literals  s	    #y",
1a"1R1a*+++c**+++a#>>???1fhh-((( 	q"gq2%j!!!q"gq#%%j!!!!!r   c                     G d dt                     }dddt                      fg  |            f\  }}}}}t                      }|                     |           d|d<   |                     |           d||<   |                     |           d||<   |                     |           |                     |                                           ||d<   |                     |           |                     |                                           d |d<   |                     |           |                     |                                           t                      }t                      }||d<   |                     |           |                     |           ||d<   |                     |           t                              |||g          }|                     |           t                      }|                    |           |                     |           t                              ||||g          }|                     |           t                      }|                    |           |                     |           t          |||	          }|                     |           t          ||||
          }|                     |           t                      }|                    |||	           |                     |           |                    |           |                     |           t          ||f|dfg          }|                     |           t          ||f||fg          }|                     |           t                      }|                    ||f|dfg           |                     |           |                    ||f||fg           |                     |           d S )Nc                       e Zd ZdS )-DictTest.test_track_dynamic.<locals>.MyObjectNr
   r   r   r   MyObjectr/    r   r   r0  r*  rM   r   r   rA   r   r   rN  r   )r   rN  r   r+  )r+  )r   r   r"  rG   r$  r  r   )	r   r0  r   rN  r   r+  or\   dds	            r   test_track_dynamiczDictTest.test_track_dynamic  s   	 	 	 	 	v 	 	 	S1fhh-XXZZ?1aAFF!!!!!!!!&&((###!aaffhh!!!&&((### FFVV!"a1bMM1a)$$!VV
		!"MM1aA,''aVV
		!b1Q!1Q!$$$aFF	1Q!	1a1a&1a&!""!1a&1a&!""aFF	1a&1a&!"""!	1a&1a&!"""ar   c                 f     G d dt                     }|                      |                       d S )Nc                       e Zd ZdS ),DictTest.test_track_subtypes.<locals>.MyDictNr
   r   r   r   MyDictr7    r   r   r8  )r   r$  )r   r8  s     r   test_track_subtypeszDictTest.test_track_subtypes  sJ    	 	 	 	 	T 	 	 	ffhhr   c                      G d d          }g }t          |          D ];} |            }d\  |_        |_        |_        |                    |j                   <|S )Nc                       e Zd ZdS )(DictTest.make_shared_key_dict.<locals>.CNr
   r   r   r   r  r<    r   r   r  rB   )r8   r   rN  r   r5  rl   )r   r;   r  dictsr/   rM   s         r   make_shared_key_dictzDictTest.make_shared_key_dict  s~    	 	 	 	 	 	 	 	 q 	% 	%AA#MACacLL$$$$r   c                 f   	 |                      d          \  }}d|d<   t          j        |          }d|d<   |                    dd           t          j        |          }d|d<   |                     t          |          g d           |                     t          |          g d           d S )Nr   r   rM   rN   )r   rN  r   rM   rN   )r   rN  r   rN   rM   )r>  r  	getsizeofr4  r   list)r   rM   rN   size_asize_bs        r   test_splittable_setdefaultz#DictTest.test_splittable_setdefault  s    	?((++1#q!!#	S!q!!#a";";";<<<a";";";<<<<<r   c                    	 |                      d          \  }}t          j        |          }|d= |                     t                    5  |d= d d d            n# 1 swxY w Y   |                     t          |          ddg           |                     t          |          g d           d|d<   |                     t          |          g d           |                     t          |          g d           d S Nr   rN  r   r   r1  r   )r   r   rN  )r>  r  r@  r   r   r   rA  )r   rM   rN   	orig_sizes       r   test_splittable_delzDictTest.test_splittable_del  s5   8((++1M!$$	cFx(( 	 	#	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	a3*---a///222 #a///222a///22222s   AA"Ac                     |                      d          \  }}|                    d           |                     t                    5  |                    d           d d d            n# 1 swxY w Y   |                     t          |          ddg           |                     t          |          g d           d|d<   |                     t          |          g d           |                     t          |          g d           d S rF  )r>  ro  r   r   r   rA  r   rM   rN   s      r   test_splittable_popzDictTest.test_splittable_pop  s3   ((++1	c


x(( 	 	EE#JJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	a3*---a///222 #a///222a///22222s   A**A.1A.c                     	 |                      d          \  }}d|d<   |                     t                    5  |                    d           d d d            d S # 1 swxY w Y   d S )Nr   r   rM   )r>  r   r   ro  rJ  s      r   test_splittable_pop_pendingz$DictTest.test_splittable_pop_pending  s    A((++1#x(( 	 	EE#JJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AA #A c                    	 |                      d          \  }}t          j        |          }|                                }|                     |d           |                     t                    5  |d= d d d            n# 1 swxY w Y   |                     t          j        |          |           |                     t          |          ddg           |                     t          |          g d           d S )Nr   )r   rA   r   r   rN  r1  )	r>  r  r@  r[  r   r   r   assertGreaterrA  )r   rM   rN   rG  items        r   test_splittable_popitemz DictTest.test_splittable_popitem(  s&   ;((++1M!$$	yy{{x(((x(( 	 	#	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	3=++Y777a3*---a///22222s   2BB	Bc                 $   	  G d d          } |d          } |d          }|                      t          |j                  g d           i }|                    |j                   |                      t          |          g d           d S )Nc                       e Zd Zd ZdS )*DictTest.test_splittable_update.<locals>.Cc                 b    |rd\  | _         | _        | _        d S d\  | _        | _        | _         d S )NrB   r   )r   orders     r   r   z3DictTest.test_splittable_update.<locals>.C.__init__<  s6     5-4*DFDFDFFF-4*DFDFDFFFr   Nr   r   r   r   r  rT  ;  s#        5 5 5 5 5r   r  TF)rO   rN   rM   )r   rA  rl   r   )r   r  r2  r\   s       r   test_splittable_updatezDictTest.test_splittable_update8  s    >	5 	5 	5 	5 	5 	5 	5 	5 AdGGAeHHaj))???;;;	a///22222r   c                 F   t          t          j        dz             D ]}dddd}t          |          }t          j        ||          }t          j        |          }|                     t          |          t          |                     t          j        |          }	 t          |          }n# t          $ r Y w xY wt          j        ||          }t          j        |          }||= |                     t          |          t          |                     d S Nr   rM   rN   rO   rB   )
r8   pickleHIGHEST_PROTOCOLr  dumpsloadsr   rA  nextr   r   protodataitr\   drops         r   test_iterator_picklingzDictTest.test_iterator_picklingI  s   62Q677 	3 	3ESC((DdBR''AaBT"XXtDzz222aBBxx    R''AaBT
T"XXtDzz2222	3 	3s   #B33
C ?C c                 h   t          t          j        dz             D ]}dddd}t          |                                          }t          j        ||          }t          j        |          }|                     |t          j	        j
                   |                     t          |          |           t          j        |          }t          |          }t          j        ||          }t          j        |          }||d         = |                     t          |          |           d S Nr   rM   rN   rO   rB   r   )r8   rZ  r[  r  r<   r\  r]  rn   r   r   Iteratorr   r   r^  r   r`  ra  itorgr\   rb  rc  s          r   test_itemiterator_picklingz#DictTest.test_itemiterator_pickling[  s   62Q677 	- 	-ESC((D&&EUE**AaB !!"ko&>???T"XXt,,,aB88DR''AaBT!WT"XXt,,,,'	- 	-r   c           
         t          t          j        dz             D ]C}dddd}t          |                                          }t          j        ||          }t          j        |          }|                     t          |          t          |                                                     t          j        |          }t          |          }t          j        ||          }t          j        |          }t          |          |gz   }|                     t          |          t          t          |                                                               Ed S rY  )r8   rZ  r[  r  r_   r\  r]  r   rA  r^  sortedr   r`  ra  rb  r\   rc  r_   s          r   test_valuesiterator_picklingz%DictTest.test_valuesiterator_picklingq  s   62Q677 	J 	JESC((Ddkkmm$$BR''AaBT"XXtDKKMM':':;;;aB88DR''AaB"XX&FVF^^VD4G4G-H-HIIII	J 	Jr   c           	      z   t          t          j        dz             D ]}dddd}t          |          }t          j        ||          }t          j        |          }|                     t          |          t          t          |                               t          j        |          }	 t          |          }n# t          $ r Y w xY wt          j        ||          }t          j        |          }||= |                     t          |          t          t          |                               d S rY  )
r8   rZ  r[  reversedr\  r]  r   rA  r^  r   r_  s         r   test_reverseiterator_picklingz&DictTest.test_reverseiterator_pickling  s   62Q677 	= 	=ESC((D$BR''AaBT"XXtHTNN';';<<<aBBxx    R''AaBT
T"XXtHTNN';';<<<<	= 	=s   0C  
CCc                 h   t          t          j        dz             D ]}dddd}t          |                                          }t          j        ||          }t          j        |          }|                     |t          j	        j
                   |                     t          |          |           t          j        |          }t          |          }t          j        ||          }t          j        |          }||d         = |                     t          |          |           d S rf  )r8   rZ  r[  rp  r<   r\  r]  rn   r   r   rg  r   r   r^  rh  s          r   !test_reverseitemiterator_picklingz*DictTest.test_reverseitemiterator_pickling  s   62Q677 	- 	-ESC((DTZZ\\**EUE**AaB !!"ko&>???T"XXt,,,aB88DR''AaBT!WT"XXt,,,,'	- 	-r   c           
         t          t          j        dz             D ]C}dddd}t          |                                          }t          j        ||          }t          j        |          }|                     t          |          t          t          |                                                               t          j        |          }t          |          }t          j        ||          }t          j        |          }t          |          |gz   }|                     t          |          t          |                                                     Ed S rY  )r8   rZ  r[  rp  r_   r\  r]  r   rA  r^  rl  rm  s          r   #test_reversevaluesiterator_picklingz,DictTest.test_reversevaluesiterator_pickling  s   62Q677 	D 	DESC((D$++--((BR''AaBT"XXtHT[[]],C,C'D'DEEEaB88DR''AaB"XX&FVF^^VDKKMM-B-BCCCC	D 	Dr   c           	          G d d          } |d          } G d dt                     }|                     |j        t          | |d                               |                     |j        |j         |d                              d S )Nc                       e Zd Zd ZdS )=DictTest.test_instance_dict_getattr_str_subclass.<locals>.Fooc                     || _         d S r   )msg)r   rz  s     r   r   zFDictTest.test_instance_dict_getattr_str_subclass.<locals>.Foo.__init__  s    r   Nr   r   r   r   Foorx    s#            r   r{  123c                       e Zd ZdS )>DictTest.test_instance_dict_getattr_str_subclass.<locals>._strNr
   r   r   r   _strr~    r   r   r  rz  )r&  r   rz  getattrrl   )r   r{  r  r  s       r   'test_instance_dict_getattr_str_subclassz0DictTest.test_instance_dict_getattr_str_subclass  s    	 	 	 	 	 	 	 	 CJJ	 	 	 	 	3 	 	 	44;; 7 7888
44;; 788888r   c                      G d d          } |            }d|j         d<   d|_        |                     |j         ddd           d S )Nc                       e Zd ZdS )FDictTest.test_object_set_item_single_instance_non_str_key.<locals>.FooNr
   r   r   r   r{  r    r   r   r{  r   rM   )r   rM   )rl   rM   r   )r   r{  r  s      r   0test_object_set_item_single_instance_non_str_keyz9DictTest.test_object_set_item_single_instance_non_str_key  sT    CEE
1s^^44444r   c                 v     G fdd          fddD             t                    D ]}||<   d S )Nc                       e Zd Z fdZdS )4DictTest.check_reentrant_insertion.<locals>.Mutatingc                                 d S r   r   )r   r\   mutates    r   __del__z<DictTest.check_reentrant_insertion.<locals>.Mutating.__del__  s    q					r   Nr   r   r   r  )r\   r  s   r   Mutatingr    s3               r   r  c                 &    i | ]}|             S r   r   )r.   r3   r  s     r   r  z6DictTest.check_reentrant_insertion.<locals>.<dictcomp>  s!    999qQ

999r   abcdefghijklmnopqr)rA  )r   r  r3   r  r\   s    ` @@r   check_reentrant_insertionz"DictTest.check_reentrant_insertion  s    	 	 	 	 	 	 	 	 	 	 	 :999$8999a 	 	AAaDD	 	r   c                      d }                      |            fd}                      |           d }                      |           d S )Nc                     d| d<   d S )Nr   rN   r   r   s    r   r  z1DictTest.test_reentrant_insertion.<locals>.mutate  s    AcFFFr   c                 d    |                      j                   |                                  d S r   )r   rl   r   )r\   r   s    r   r  z1DictTest.test_reentrant_insertion.<locals>.mutate  s(    HHT]###GGIIIIIr   c                 :    | r|                                   | d S d S r   )r[  r   s    r   r  z1DictTest.test_reentrant_insertion.<locals>.mutate  s5     		      r   )r  )r   r  s   ` r   test_reentrant_insertionz!DictTest.test_reentrant_insertion  s    	 	 	&&v...	 	 	 	 	 	&&v...	 	 	 	&&v.....r   c                      G fdd          }d t          dd          D             }t          |          d |            <    |            dddi}|                     t          |j                   d S )Nc                        e Zd Zd Z fdZdS ))DictTest.test_merge_and_mutate.<locals>.Xc                     dS r;  r   r    s    r   r   z2DictTest.test_merge_and_mutate.<locals>.X.__hash__  r  r   c                 0                                      dS r  r  )r   r2  r   s     r   r   z0DictTest.test_merge_and_mutate.<locals>.X.__eq__  s    ur   Nr  )r   s   r   r  r    s=                r   r  c                     g | ]}|d fS )r   r   r-   s     r   r0   z2DictTest.test_merge_and_mutate.<locals>.<listcomp>  s    +++qaU+++r   r   i9  r   )r8   r   r   rs  r   )r   r  lr\   r   s       @r   test_merge_and_mutatezDictTest.test_merge_and_mutate  s    	 	 	 	 	 	 	 	 	 	 ,+E!TNN+++Qaacc
QSS!QN,%88888r   c                     t          j        | t          t                     t          j        | d t                     t          j        | d t                     t          j        | d t                     d S )Nc                 D    t          |                                           S r   )r  rY   r   s    r   r  z4DictTest.test_free_after_iterating.<locals>.<lambda>  s    4>> r   c                 D    t          |                                           S r   )r  r_   r   s    r   r  z4DictTest.test_free_after_iterating.<locals>.<lambda>  s    4

;K;K r   c                 D    t          |                                           S r   )r  r<   r   s    r   r  z4DictTest.test_free_after_iterating.<locals>.<lambda>  s    4		?? r   )r   check_free_after_iteratingr  r   r    s    r   test_free_after_iteratingz"DictTest.test_free_after_iterating  sh    *4t<<<*41I1I4PPP*41K1KTRRR*41J1JDQQQQQr   c                 &    G fdd          } |            di |             |            i|                      k                G fdd          }d |            i}dt                      i|                      |k               d S )Nc                   *    e Zd ZfdZ fdZd ZdS )9DictTest.test_equal_operator_modifying_operand.<locals>.Xc                 0                                      d S r   r  )r   dict_bs    r   r  zADictTest.test_equal_operator_modifying_operand.<locals>.X.__del__  s    r   c                 0                                      dS NTr  )r   r   dict_as     r   r   z@DictTest.test_equal_operator_modifying_operand.<locals>.X.__eq__      tr   c                     dS N   r   r    s    r   r   zBDictTest.test_equal_operator_modifying_operand.<locals>.X.__hash__  r   r   N)r   r   r   r  r   r   )r  r  s   r   r  r    sV                    r   r  r   c                       e Zd Z fdZdS )9DictTest.test_equal_operator_modifying_operand.<locals>.Yc                 0                                      dS r  r  )r   r   dict_ds     r   r   z@DictTest.test_equal_operator_modifying_operand.<locals>.Y.__eq__  r  r   Nr  )r  s   r   Yr    s.              r   r  )rR   rX   )r   r  r  dict_cr  r  r  s       @@@r   %test_equal_operator_modifying_operandz.DictTest.test_equal_operator_modifying_operand  s    		 		 		 		 		 		 		 		 		 		 		 !##q!##qqss&()))	 	 	 	 	 	 	 	 	 	
 QQSSSUU&()))))r   c                      G fddt                     }i  |d          d |d          di	 t                                         d S # t          $ r Y d S w xY w)Nc                        e Zd Zd Z fdZdS )ADictTest.test_fromkeys_operator_modifying_dict_operand.<locals>.Xc                     dS r  r   r    s    r   r   zJDictTest.test_fromkeys_operator_modifying_dict_operand.<locals>.X.__hash__  r   r   c                 V    t                    dk    r                                 dS Nr   Fr|   r   r   r   r\   s     r   r   zHDictTest.test_fromkeys_operator_modifying_dict_operand.<locals>.X.__eq__  $    q66A::GGIIIur   Nr  r   s   r   r  r    =                r   r  r   r   r\  r   r  rs  r   r  r\   s     @r   -test_fromkeys_operator_modifying_dict_operandz6DictTest.test_fromkeys_operator_modifying_dict_operand  s    	 	 	 	 	 	 	 	 	 	 QqTT1aaddA	MM! 	 	 	DD	s   A 
AAc                      G fddt                     }i  |d           |d          h	 t                                         d S # t          $ r Y d S w xY w)Nc                        e Zd Zd Z fdZdS )@DictTest.test_fromkeys_operator_modifying_set_operand.<locals>.Xc                     dS r  r   r    s    r   r   zIDictTest.test_fromkeys_operator_modifying_set_operand.<locals>.X.__hash__+  r   r   c                 V    t                    dk    r                                 dS r  r  r  s     r   r   zGDictTest.test_fromkeys_operator_modifying_set_operand.<locals>.X.__eq__.  r  r   Nr  r   s   r   r  r  *  r  r   r  r   r   r  r  s     @r   ,test_fromkeys_operator_modifying_set_operandz5DictTest.test_fromkeys_operator_modifying_set_operand(  s    	 	 	 	 	 	 	 	 	 	 QqTT11Q44L	MM! 	 	 	DD	s   A 
AAc                      G fdd          }dt                      id |            f                                v  d S )Nc                       e Zd Z fdZdS ):DictTest.test_dictitems_contains_use_after_free.<locals>.Xc                 :                                      t          S r   r   rJ   r  s     r   r   zADictTest.test_dictitems_contains_use_after_free.<locals>.X.__eq__<      			%%r   Nr  r   s   r   r  r  ;  s.        & & & & & & &r   r  r   )rX   r<   r  s     @r   &test_dictitems_contains_use_after_freez/DictTest.test_dictitems_contains_use_after_free:  sg    	& 	& 	& 	& 	& 	& 	& 	& 	& 	&
 J	
AACCAGGIIr   c                 x     G fddt                     } |            di|                     dv            d S )Nc                        e Zd Z fdZd ZdS )4DictTest.test_dict_contain_use_after_free.<locals>.Sc                 :                                      t          S r   r  r  s     r   r   z;DictTest.test_dict_contain_use_after_free.<locals>.S.__eq__F  r  r   c                      t          d          S )Ntestr  r    s    r   r   z=DictTest.test_dict_contain_use_after_free.<locals>.S.__hash__J      F||#r   Nr   r   s   r   Sr  E  s=        & & & & &$ $ $ $ $r   r  r  r  )r&  rx   )r   r  r\   s     @r    test_dict_contain_use_after_freez)DictTest.test_dict_contain_use_after_freeC  sf    	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ QSS'N1%%%%%r   c                 ^     G fdd          } |            dgt          g           d S )Nc                       e Zd Z fdZdS ),DictTest.test_init_use_after_free.<locals>.Xc                     g d d <   dS r  r   )r   pairs    r   r   z5DictTest.test_init_use_after_free.<locals>.X.__hash__R  s    QQQrr   N)r   r   r   r   )r  s   r   r  r  Q  s.              r   r  {   )r   )r   r  r  s     @r   test_init_use_after_freez!DictTest.test_init_use_after_freeP  sW    	 	 	 	 	 	 	 	 	 	
 SzdVr   c                      G fddt                     fdt          d          D             fd}|                     t          |           d S )Nc                       e Zd Z fdZdS );DictTest.test_oob_indexing_dictiter_iternextitem.<locals>.Xc                 0                                      d S r   r  r`   s    r   r  zCDictTest.test_oob_indexing_dictiter_iternextitem.<locals>.X.__del__[  s    					r   Nr  r   s   r   r  r  Z  r   r   r  c                 (    i | ]}| |          S r   r   )r.   r/   r  s     r   r  zDDictTest.test_oob_indexing_dictiter_iternextitem.<locals>.<dictcomp>^  s#    '''Q!'''r   r'   c                  X                                     D ]} | d         dk    rd d<   d S )Nr   r   r  )resultr\   s    r   iter_and_mutatezIDictTest.test_oob_indexing_dictiter_iternextitem.<locals>.iter_and_mutate`  s;    ''))    !9>>AaD   r   )r\  r8   r   rs  )r   r  r  r\   s     @@r   'test_oob_indexing_dictiter_iternextitemz0DictTest.test_oob_indexing_dictiter_iternextitemY  s    	 	 	 	 	 	 	 	 	 	 ('''eAhh'''	  	  	  	  	 
 	,88888r   c                     dddddd}|d= t          |          }|                     t          |          t          d                     |                     t          t
          |           d S )	Nr   r   r   rA   r   )rM   rN   rj   rO   r\   rj   dcba)rp  r   rA  r   r   r^  )r   r\   rs      r   test_reversedzDictTest.test_reversedg  sg    !AAA66eHQKKa$v,,///-q11111r   c                 >   |                      t          t          i                     g            |                      t          t          i                                                     g            |                      t          t          i                                                     g            |                      t          t          i                                                     g            |                      t          t          t                                          g            |                      t          t          t                                                                          g            |                      t          t          t                                                                          g            |                      t          t          t                                                                          g            d S r   )r   rA  rp  r<   r_   rY   r   r    s    r   $test_reverse_iterator_for_empty_dictz-DictTest.test_reverse_iterator_for_empty_dictn  sz    	hrll++R000hrxxzz2233R888hryy{{3344b999hrwwyy1122B777 	htvv..//444htvv||~~6677<<<htvv}}7788"===htvv{{}}5566;;;;;r   c           
          G d d          }|                      t          t           |dd          j                            ddg           |                      t          t           |dd          j                            dg           |                      t          t           |dd          j                            dg           d S )Nc                       e Zd Zd ZdS )ADictTest.test_reverse_iterator_for_shared_shared_dicts.<locals>.Ac                 .    |r|| _         |r	|| _        d S d S r   )r   rN  )r   r   rN  s      r   r   zJDictTest.test_reverse_iterator_for_shared_shared_dicts.<locals>.A.__init__  s$     qdf qdfff  r   Nr   r   r   r   r"  r  ~  s#        ! ! ! ! !r   r"  r   r   rN  r   r   )r   rA  rp  rl   )r   r"  s     r   -test_reverse_iterator_for_shared_shared_dictsz6DictTest.test_reverse_iterator_for_shared_shared_dicts}  s    	! 	! 	! 	! 	! 	! 	! 	!
 	hqqAww'78899C:FFFhqqAww'78899C5AAAhqqAww'78899C5AAAAAr   c                    t          j        ddg          }|                    d           t          |                                          }t          |          }|                     t          |                                          |            G d dt
                    }g d} ||          }|                     |t          t          |                                                                G d dt
                    } ||          }|                     |d d d	         t          t          |                                                               d S )
NrM   r   rN   r   rM   c                       e Zd ZdS )1DictTest.test_dict_copy_order.<locals>.CustomDictNr
   r   r   r   
CustomDictr    r   r   r  )r  r  )rO   rA   c                       e Zd Zd ZeZd ZdS )9DictTest.test_dict_copy_order.<locals>.CustomReversedDictc                 j    t          t          t                              |                               S r   )rp  rA  r   rY   r    s    r   rY   z>DictTest.test_dict_copy_order.<locals>.CustomReversedDict.keys  s"    TYYt__ 5 5666r   c                 P    t          t                              |                     S r   )rp  r   r<   r    s    r   r<   z?DictTest.test_dict_copy_order.<locals>.CustomReversedDict.items  s    

4 0 0111r   N)r   r   r   rY   r   r<   r   r   r   CustomReversedDictr    s9        7 7 7 H2 2 2 2 2r   r   rY  )r   OrderedDictmove_to_endrA  r<   r   r   )r   odr  rG   r  pairsr\   r   s           r   test_dict_copy_orderzDictTest.test_dict_copy_order  sY   $h%9::
s

##Bxxdjjll++X666	 	 	 	 	 	 	 	 /..JuT!WW]]__ 5 5666	2 	2 	2 	2 	2 	2 	2 	2 u%%tttd477==??&;&;<<<<<r   c                     t          d g i                                          }t          j                     |                     t          j        t          |                               d S r   )r  r<   r$  r  rR   r%  r^  r   rb  s     r   test_dict_items_result_gcz"DictTest.test_dict_items_result_gc  sV    
 4*""$$%%

 	d2hh//00000r   c                     t          d g i                                          }t          j                     |                     t          j        t          |                               d S r   )rp  r<   r$  r  rR   r%  r^  r  s     r   "test_dict_items_result_gc_reversedz+DictTest.test_dict_items_result_gc_reversed  sT     tRj&&(())

d2hh//00000r   c           	      P  
  G d dt                     }d G 
fdd          
 |d          } 
            } 
            }g }||fD ]^|                    ddd	d
di           dd
d}d|<   |                    |           dd
d}|                     |                    d          d           |                    |           dd
d}|                    di           |                    |           dd
d}|diz  }|                    |           fd}t           |                      }|                    |           |                                }|                    |           d t          dd	g          D             }|                    |           `|D ]t}|                     |          5  |                     |	                    d          d           d}|dz  }t          j        d          rd}	|                     ||	u            |                     |	                    |          d           |                     |	                    d          d           |                     |	                    |          d           |                     |	                    |          d           d|                     |	                    |          d           |                     d           d d d            n# 1 swxY w Y   vd S )Nc                       e Zd ZdS )(DictTest.test_str_nonstr.<locals>.StrSubNr
   r   r   r   StrSubr    r   r   r  r   c                   "    e Zd Zd Z fdZdS )&DictTest.test_str_nonstr.<locals>.Key3c                      t          d          S )Nkey3r  r    s    r   r   z/DictTest.test_str_nonstr.<locals>.Key3.__hash__  r  r   c                 l    t          |          st          |t                    r|dk    rdz  dS dS )Nr  r   TF)r  r&  )r   r   Key3r>  s     r   r   z-DictTest.test_str_nonstr.<locals>.Key3.__eq__  sB    eT**  j.D.D  RXMH4ur   Nr  )r  r>  s   r   r  r    sB        $ $ $       r   r  r  r  r   r  +   ,   )r  r  c               3   (   K   dV  dV   dfV  d S )N)r  r   )r  r  r  r   )r  s   r   
make_pairsz,DictTest.test_str_nonstr.<locals>.make_pairs  s5      """"""""Rj     r   c                      i | ]\  }}|d |z   S r  r   )r.   r/   r   s      r   r  z,DictTest.test_str_nonstr.<locals>.<dictcomp>  s"    LLL3b1fLLLr   r   key1T)cpythonr   )r&  r5  r   r4  r   r   rG   	enumerater  r+  r   check_impl_detailrx   assertGreaterEqual)r   r  key3_1key3_2key3_3r=  r\   r  noninterned_key1interned_key1r  r>  r  s             @@@r   test_str_nonstrzDictTest.test_str_nonstr  s   
	 	 	 	 	S 	 	 	 		 		 		 		 		 		 		 		 		 		 		  V$ &	 &	DLL&"fb$;<<< R((AAdGLLOOO R((AQ\\$33R888LLOOO R((AHHdBZ   LLOOO R((A$OALLOOO! ! ! ! ! ZZ\\""ALLOOO ALLOOO ML)VVT4J*K*KLLLALLOOOO 	5 	5A"" 5 5  v333 $(  D( ,T::: H$*M$$%5%FGGG  '7!8!8"===  v333  v333  v333   v333''!44455 5 5 5 5 5 5 5 5 5 5 5 5 5 5	5 	5s   	ELL	 L	N)[r   r   r   r   r!   r?   rP   rT   r]   ra   rd   ru   rz   r}   r   r   r   r  r  r  r&  r)  r,  r6  rP  rW  rf  rp  ru  rx  rz  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r"  r$  r(  r   cpython_onlyr,  r4  r9  r>  rD  rH  rK  rM  rQ  rW  rd  rj  rn  rq  rs  ru  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r%  r   r   r   r   r      s       % % %% % %
	= 	= 	=< < <@* * *E E EG G GL L L' ' '(
5 
5 
5$ $ $$1 $1 $1L4 4 4J> J> J>X8B 8B 8Bt3 3 36 6 6 B B B     
> 
> 
>4 4 46A A A(A A A*/ / /6) ) )B        ' ' '4( ( ($3 3 3  $8 8 8*, *, *,X$ $ $,+ + +9 9 93 3 3
: 
: 
:)2 )2 )2V4 4 4% % %8     ,  B B B . . .- - -   " " "" = = =~      
 
 
 = = = 3 3 3$ 3 3 3    3 3 3 3 3 3 3 3 3$- - -,J J J = = =$- - -,D D D 9 9 95 5 5
 
 
/ / / 9 9 9R R R* * *6  $  $  & & &  9 9 92 2 2< < <B B B= = =< 	1 	1 	1 1 1 1b5 b5 b5 b5 b5r   r   c                   .    e Zd Zej        d             ZdS )CAPITestc           	      &   t          j        d          }|j        }dddd}|                      ||dt	          d                    d           |                      ||dt	          d                    d           |                      ||dt	          d                    d           |                     t          |g dt	          d                     |                     t          |i dt	          d                      G d	 d
t                     G fdd          } |             |            }}|di}|                      |||t	          |                    d           |                     |||t	          |                     d S )N	_testcapir   r   rA   r1  r   rN  r   c                       e Zd ZdS ),CAPITest.test_getitem_knownhash.<locals>.ExcNr
   r   r   r   r   r,  /  r   r   r   c                        e Zd Z fdZd ZdS ).CAPITest.test_getitem_knownhash.<locals>.BadEqc                     r   r   r   s     r   r   z5CAPITest.test_getitem_knownhash.<locals>.BadEq.__eq__1  r   r   c                     dS )N   r   r    s    r   r   z7CAPITest.test_getitem_knownhash.<locals>.BadEq.__hash__3  r  r   Nr   r   s   r   r   r.  0  s=                r   r   )	r   import_moduledict_getitem_knownhashr   r  r   SystemErrorr   r   )r   r*  r3  r\   r   r  r  r   s          @r   test_getitem_knownhashzCAPITest.test_getitem_knownhash   s   !/<<	!*!A!!$$//3S		BBAFFF//3S		BBAFFF//3S		BBAFFF 	+'=r1d1ggNNN($:B477KKK""""")"""	 	 	 	 	 	 	 	 	 	 %%''BG//2tBxx@@!DDD#5q"d2hhGGGGGr   N)r   r   r   r   r&  r5  r   r   r   r(  r(    s8         H H H H Hr   r(  )mapping_testsc                       e Zd ZeZdS )GeneralMappingTestsN)r   r   r   r   	type2testr   r   r   r8  r8  >          IIIr   r8  c                       e Zd ZdS )rh   Nr
   r   r   r   rh   rh   A  s        Dr   rh   c                       e Zd ZeZdS )SubclassMappingTestsN)r   r   r   rh   r9  r   r   r   r=  r=  D  r:  r   r=  __main__)r   collections.abcr$  rZ  r)   r+   r  unittestr  r  r   test.supportr   TestCaser   r(  r6  BasicTestMappingProtocolr8  r   rh   r=  r   mainr   r   r   <module>rE     s           				    



         & & & & & &L5 L5 L5 L5 L5x  L5 L5 L5^0H H H H Hx  H H H>          -@   	 	 	 	 	4 	 	 	    =A    zHMOOOOO r   