B
    u9a  ã               @   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d¡ |  t jddgdt¡ W d Q R X |  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 
¡ ¡|k	¡ |  | 	d 
¡ ¡t j¡ |  | 	d 
¡ ¡t j¡ |  t|ƒttƒ¡ |  t|ƒttƒ¡ |  t|ƒd¡ ttt||||||||g}	x:|	D ]2}
x*|	D ]"}|  |
|kt|
ƒt|ƒk¡ qØW qÎW |  |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 ¡ ƒ¡ xF| ¡ D ]:}|  ||¡ |  ||k|tk¡ |  ||k|tk¡ q>W t  ¡ }| |¡ |  ||¡ xX| ¡ D ]L}|  | |¡|| ¡ |  | |¡t |¡¡ |  | |¡t |¡¡ q¤W xt dƒD ]}t|ƒ||< qþW g }x|D ]}| !|¡ qW | ¡ }|  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   r   z'dict')Údictr   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.7/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ÚassertWarnsRegexÚDeprecationWarningÚ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u0Zu1Zu2ÚuuZuu0Zuu1Zuu2ÚallÚaÚbZu3Zu2aZu2bZu2cr   Zm2Zm2aÚiÚtZikeysÚkr2   r   r   r   Útest_all   s¢    






"

(


zUserDictTest.test_allc          	   C   sä   x2dD ]*}|   ttjf |diŽ ¡ ƒ|dfg¡ qW |   ttji dd ¡ ƒdg¡ |   ttji d d ¡ ƒdg¡ |  td¡( |   ttjddid ¡ ƒdg¡ W d Q R X |  ttjd¡ |  ttjd	d	¡ |  ttjj	¡ d S )
N)r   ÚotherÚiterabler   )r   )r   r   )r   Nz'dict'r@   )r@   r   r   )
r    Úlistr   r   r3   r!   r"   r+   Ú	TypeErrorÚ__init__)r   Úkwr   r   r   Ú	test_init   s    
zUserDictTest.test_initc             C   s~   x>dD ]6}t  ¡ }|jf |diŽ |  t| ¡ ƒ|dfg¡ qW |  tt  ¡ jd¡ |  tt  ¡ ji i ¡ |  tt jj¡ d S )N)r   r   rF   rG   r   )r   r   r5   r    rH   r3   r+   rI   )r   rK   Ú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ƒ}|ƒ }y|d
  W n0 tk
rÔ } z|   |jd¡ W d d }~X Y nX |  d¡ G dd„ dtjƒ}|ƒ }y|d
  W n2 t	k
r6 } z|   |jd¡ W d d }~X Y nX |  d¡ G dd„ dtjƒ}|ƒ }	y|	d
  W n2 t	k
r˜ } z|   |jd¡ W d d }~X Y nX |  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   rO   ±   s    z0UserDictTest.test_missing.<locals>.D.__missing__N)r   r   r   rO   r   r   r   r   ÚD°   s   rQ   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 )N)ÚRuntimeError)r   rP   r   r   r   rO   º   s    z0UserDictTest.test_missing.<locals>.E.__missing__N)r   r   r   rO   r   r   r   r   ÚE¹   s   rT   )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 )Nr   )rP   r   r   r   Ú<lambda>Æ   r   z?UserDictTest.test_missing.<locals>.F.__init__.<locals>.<lambda>)rO   r   r   rJ   )r   r   r   r   rJ   Ä   s    
z-UserDictTest.test_missing.<locals>.F.__init__N)r   r   r   rJ   r   r   r   r   ÚFÃ   s   rV   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   rW   zg[42] didn't raise KeyError)
r    Úhasattrr   r   ZassertNotInr2   rS   ÚargsZfailr,   )
r   rQ   rM   rT   ÚeÚerrrV   ÚfrW   Úgr   r   r   Útest_missing¨   s:     
 
 zUserDictTest.test_missingN)
r   r   r   r   r   Z	type2testrE   rL   rN   r^   r   r   r   r   r
      s
   	r
   Ú__main__)Ztestr   Zunittestr   r   r   r   r#   r&   r'   ZTestHashMappingProtocolr
   r   Úmainr   r   r   r   Ú<module>   s   


 N