a
    äze@  ã                   @   sx   d dl mZ d dlZd dlZi ZddiZdddœZdddd	œZdddœZdddœZ	G d
d„ dej
ƒZedkrte ¡  dS )é    )Úmapping_testsNÚoneé   é   ©r   Útwoé   é   )r   r   Úthreec                   @   s2   e Zd ZejZdd„ Zdd„ Zdd„ Zdd„ Z	d	S )
ÚUserDictTestc                 C   sî  t  ¡ }t  t¡}t  t¡}t  t¡}t  |¡}t  |¡}t  |¡}t  |¡}|  t jdddt¡ |  t  ddg¡t¡ |  t jddgddddgi¡ |  t jddgdd	d
t¡ |  t j d ¡ ¡t	¡ |  t  ¡  d ¡ ¡t	¡ |  t j d ¡ d¡t
¡ |  t  ¡  d ¡ d¡t
¡ |  | d ¡ ¡|u¡ |  | d ¡ ¡t j¡ |  | d ¡ ¡t j¡ |  t|ƒttƒ¡ |  t|ƒttƒ¡ |  t|ƒd¡ ttt||||||||g}	|	D ].}
|	D ]"}|  |
|kt|
ƒt|ƒk¡ qÄq¼|  |d d¡ |  t|jd¡ t  |¡}d|d< d|d< |d= |  t|jd¡ | ¡  |  |i ¡ | ¡ }|  ||¡ t jddd}| ¡ }|  ||¡ G dd„ dt jƒ}||ƒ}| ¡ }|  ||¡ d|d< |  ||¡ |  t| ¡ ƒtt ¡ ƒ¡ |  t| ¡ ƒtt ¡ ƒ¡ |  t| ¡ ƒtt ¡ ƒ¡ | ¡ D ]:}|  ||¡ |  ||v |tv ¡ |  ||v |tv ¡ q$t  ¡ }| |¡ |  ||¡ | ¡ D ]L}|  | |¡|| ¡ |  | |¡t |¡¡ |  | |¡t |¡¡ q†tdƒD ]}t|ƒ||< qÜg }|D ]}| |¡ qø| ¡ }|  t |ƒt |ƒ¡ t  ¡ }|  | !dd¡d¡ |  d|¡ |  | !dd¡d¡ t jdd}|  | "d¡d¡ |  t|j"d¡ |  | "dd¡d¡ d|d< |  | "dd¡d¡ t jdd}|  | #¡ d¡ |  t|j#¡ d S )Nr   r   r   )r   r   )r   r   ©Údictr   r   r	   )r   r
   zone two)z{'one': 1, 'two': 2}z{'two': 2, 'one': 1}r   r   r
   é*   é   )ÚxÚyc                   @   s   e Zd Zdd„ ZdS )z)UserDictTest.test_all.<locals>.MyUserDictc                 S   s   t | ƒ d S ©N)Úprint©Úself© r   ú(/usr/lib/python3.9/test/test_userdict.pyÚdisplayT   ó    z1UserDictTest.test_all.<locals>.MyUserDict.displayN)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   r   Ú
MyUserDictS   s   r   ZbarZfooé   r   )r   )r   r   )$ÚcollectionsÚUserDictÚd0Úd1Úd2ÚassertEqualÚd3ÚfromkeysÚsplitÚd4Úd5Z
assertTrueZassertIsInstanceÚstrÚreprZassertInÚlenÚassertRaisesÚKeyErrorÚ__getitem__Ú__delitem__ÚclearÚcopyZassertNotEqualÚsortedÚkeysÚitemsÚvaluesÚupdateÚgetÚrangeÚappendÚsetÚ
setdefaultÚpopÚpopitem)r   ÚuZu0Úu1Úu2ÚuuZuu0Zuu1Zuu2ÚallÚaÚbÚu3Zu2aZu2bZu2cr   Zm2Zm2aÚiÚtZikeysÚkr4   r   r   r   Útest_all   s¤    







ÿ$

zUserDictTest.test_allc              	   C   sÔ   dD ].}|   ttjf i |di¤Ž ¡ ƒ|dfg¡ q|   ttji dd ¡ ƒdg¡ |   ttji d d ¡ ƒdg¡ |   ttjddid ¡ ƒdddifg¡ |  ttjd¡ |  ttjdd¡ |  ttjj¡ d S )	N)r   ÚotherÚiterabler   r   )r   r   )r   NrD   r   r   )r$   Úlistr   r    r5   r-   Ú	TypeErrorÚ__init__)r   Úkwr   r   r   Ú	test_init   s     ÿÿÿÿzUserDictTest.test_initc                 C   s~   dD ]:}t  ¡ }|jf i |di¤Ž |  t| ¡ ƒ|dfg¡ q|  tt  ¡ jd¡ |  tt  ¡ ji i ¡ |  tt jj¡ d S )N)r   r   rK   rL   r   )r   r    r7   r$   rM   r5   r-   rN   )r   rP   Údr   r   r   Útest_updatež   s    zUserDictTest.test_updatec           
   
   C   s®  |   ttjdƒd¡ G dd„ dtjƒ}|dddœƒ}|   |d d¡ |   |d	 d¡ |  d|¡ |  d| ¡ ¡ |   |d d
¡ G dd„ dtjƒ}|ƒ }z|d
  W n2 tyÖ } z|   |jd¡ W Y d }~nd }~0 0 |  d¡ G dd„ dtjƒ}|ƒ }z|d
  W n4 t	y: } z|   |jd¡ W Y d }~nd }~0 0 |  d¡ G dd„ dtjƒ}|ƒ }	z|	d
  W n4 t	yž } z|   |jd¡ W Y d }~nd }~0 0 |  d¡ d S )NÚ__missing__Fc                   @   s   e Zd Zdd„ ZdS )z$UserDictTest.test_missing.<locals>.Dc                 S   s   dS )Nr   r   ©r   Úkeyr   r   r   rT   °   s    z0UserDictTest.test_missing.<locals>.D.__missing__N©r   r   r   rT   r   r   r   r   ÚD¯   s   rX   r   é   )r   r   r   r   r   c                   @   s   e Zd Zdd„ ZdS )z$UserDictTest.test_missing.<locals>.Ec                 S   s   t |ƒ‚d S r   )ÚRuntimeErrorrU   r   r   r   rT   ¹   s    z0UserDictTest.test_missing.<locals>.E.__missing__NrW   r   r   r   r   ÚE¸   s   r[   )r   ze[42] didn't raise RuntimeErrorc                   @   s   e Zd Zdd„ ZdS )z$UserDictTest.test_missing.<locals>.Fc                 S   s   dd„ | _ tj | ¡ d S )Nc                 S   s   d S r   r   )rV   r   r   r   Ú<lambda>Å   r   z?UserDictTest.test_missing.<locals>.F.__init__.<locals>.<lambda>)rT   r   r    rO   r   r   r   r   rO   Ã   s    
z-UserDictTest.test_missing.<locals>.F.__init__N)r   r   r   rO   r   r   r   r   ÚFÂ   s   r]   zf[42] didn't raise KeyErrorc                   @   s   e Zd ZdS )z$UserDictTest.test_missing.<locals>.GN)r   r   r   r   r   r   r   ÚGÎ   s   r^   zg[42] didn't raise KeyError)
r$   Úhasattrr   r    ZassertNotInr4   rZ   ÚargsZfailr.   )
r   rX   rR   r[   ÚeÚerrr]   Úfr^   Úgr   r   r   Útest_missing§   s:    $
$
$zUserDictTest.test_missingN)
r   r   r   r   r    Z	type2testrJ   rQ   rS   re   r   r   r   r   r      s
   	r   Ú__main__)Útestr   Zunittestr   r!   r"   r#   r%   r(   r)   ZTestHashMappingProtocolr   r   Úmainr   r   r   r   Ú<module>   s   


 M