;
Λβ"Ic               @   s¦   d  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	 d   Z
 Gd   d e j  Z d   Z e d	 k o e   n d S(
   u'   Unit tests for collections.defaultdict.i    N(   u   support(   u   defaultdictc               C   s   t  S(   N(   u   list(    (    (    u2   /mit/python/lib/python3.0/test/test_defaultdict.pyu   foobar   s    c             B   sh   |  Ee  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z d
 S(   c             C   s§  t    } |  j | j d   t | _ | d j d  |  j | i d g d 6 | d j d  |  j | i d d g d 6 | d | d |  j | i d d g d 6g  d 6g  d 6 |  j | d | d k	 o | d k	 n  t  t d d d d	 } |  j | j t  |  j | i d d 6d	 d 6 |  j | d d  |  j | d d	  |  j | d g   |  j d | k  |  j d | j   k  |  j d | k  |  j d | j   k  |  j d | k  |  j d | j   k  |  j d | k  |  j d | j   k  d  | _ |  j | j d   y | d
 Wn: t k
 o. } z |  j | j	 d  WYd  d  } ~ Xn X|  j
 d  |  j t t  d  d  S(   Ni   i*   i   i   i   u   fooi   u   bari   i   u   d2[15] didn't raise KeyError(   i   (   u   defaultdictu   assertEqualu   default_factoryu   Noneu   listu   appendu   assert_u   keysu   KeyErroru   argsu   failu   assertRaisesu	   TypeError(   u   selfu   d1u   d2u   err(    (    u2   /mit/python/lib/python3.0/test/test_defaultdict.pyu
   test_basic   sB    		+0	'c             C   sE   t    } |  j t | j d  t | _ |  j | j d  g   d  S(   Ni*   (   u   defaultdictu   assertRaisesu   KeyErroru   __missing__u   listu   default_factoryu   assertEqual(   u   selfu   d1(    (    u2   /mit/python/lib/python3.0/test/test_defaultdict.pyu   test_missing5   s    		c             C   sθ   t    } |  j | j d   |  j t |  d  d | d <|  j t |  d  t  t  } |  j | j t  d | d <|  j t |  d  d   } t  |  } |  j | j | k  | d	 |  j t |  d
 t |   d  S(   Nu   defaultdict(None, {})i)   i   u   defaultdict(None, {11: 41})i*   i   u$   defaultdict(<class 'int'>, {12: 42})c               S   s   d S(   Ni+   (    (    (    (    u2   /mit/python/lib/python3.0/test/test_defaultdict.pyu   fooE   s    i   u   defaultdict(%s, {13: 43})(   u   defaultdictu   assertEqualu   default_factoryu   Noneu   repru   intu   assert_(   u   selfu   d1u   d2u   foou   d3(    (    u2   /mit/python/lib/python3.0/test/test_defaultdict.pyu	   test_repr;   s    	

	c             C   sΫ   t    } d   } t  | i d d 6 } t j   } z t | d  } zq t | d | t | d | | j d  |  j | j   t |  d  |  j | j   t |  d  Wd  | j	   XWd  t
 j |  Xd  S(   Nc               S   s   d S(   Ni*   (    (    (    (    u2   /mit/python/lib/python3.0/test/test_defaultdict.pyu   fooM   s    i   i   u   w+u   filei    u   
(   u   defaultdictu   tempfileu   mktempu   openu   printu   seeku   assertEqualu   readlineu   repru   closeu   osu   remove(   u   selfu   d1u   foou   d2u   tfnu   f(    (    u2   /mit/python/lib/python3.0/test/test_defaultdict.pyu
   test_printK   s    		 $c             C   s  t    } | j   } |  j t |  t   |  j | j d   |  j | i   t | _ | j   } |  j t |  t   |  j | j t  |  j | i   | d | j   } |  j t |  t   |  j | j t  |  j | i g  d 6 | d |  j | i g  d 6g  d 6 d  S(   Ni*   i   (   u   defaultdictu   copyu   assertEqualu   typeu   default_factoryu   Noneu   list(   u   selfu   d1u   d2u   d3u   d4(    (    u2   /mit/python/lib/python3.0/test/test_defaultdict.pyu	   test_copy`   s"    		c             C   s   t  t i d d 6 } t j |  } |  j | j t  |  j | |  t | _ t j |  } |  j | j t  |  j | |  d  S(   Ni   (   u   defaultdictu   foobaru   copyu   assertEqualu   default_factoryu   list(   u   selfu   d1u   d2(    (    u2   /mit/python/lib/python3.0/test/test_defaultdict.pyu   test_shallow_copys   s    	c             C   s₯   t  t i d g d 6 } t j |  } |  j | j t  |  j | |  |  j | d | d k	  t | _ t j |  } |  j | j t  |  j | |  d  S(   Ni   (   u   defaultdictu   foobaru   copyu   deepcopyu   assertEqualu   default_factoryu   assert_u   list(   u   selfu   d1u   d2(    (    u2   /mit/python/lib/python3.0/test/test_defaultdict.pyu   test_deep_copy}   s    	c             C   sg   t    } y | d Wn> t k
 o2 } z |  j | j d d  WYd  d  } ~ Xn X|  j d  d  S(   Ni   i    u   expected KeyError(   i   (   i   (   u   defaultdictu   KeyErroru   assertEqualu   argsu   fail(   u   selfu   d1u   err(    (    u2   /mit/python/lib/python3.0/test/test_defaultdict.pyu   test_keyerror_without_factory   s    	+c             C   s   Gd   d t   } |   } |  j t |  j d   t j   } z5 t | d  } z t | d | Wd  | j   XWd  t	 j
 |  Xd  S(   Nc             B   s    |  Ee  Z d    Z d   Z d S(   c             S   s   |  j  |  _ d  S(   N(   u   _factoryu   default_factory(   u   self(    (    u2   /mit/python/lib/python3.0/test/test_defaultdict.pyu   __init__   s    c             S   s   g  S(   N(    (   u   self(    (    u2   /mit/python/lib/python3.0/test/test_defaultdict.pyu   _factory   s    N(   u   __name__u
   __module__u   __init__u   _factory(   u
   __locals__(    (    u2   /mit/python/lib/python3.0/test/test_defaultdict.pyu   sub   s   
	u   subu9   defaultdict(<bound method sub._factory of defaultdict(...u   w+u   file(   u   defaultdictu   assert_u   repru
   startswithu   tempfileu   mktempu   openu   printu   closeu   osu   remove(   u   selfu   subu   du   tfnu   f(    (    u2   /mit/python/lib/python3.0/test/test_defaultdict.pyu   test_recursive_repr   s    	
c             C   sg   t  t  } | d xL t t j d  D]7 } t j | |  } t j |  } |  j | |  q( Wd  S(   Ni   (   u   defaultdictu   intu   rangeu   pickleu   HIGHEST_PROTOCOLu   dumpsu   loadsu   assertEqual(   u   selfu   du   protou   su   o(    (    u2   /mit/python/lib/python3.0/test/test_defaultdict.pyu   test_pickleing¨   s     N(   u   __name__u
   __module__u
   test_basicu   test_missingu	   test_repru
   test_printu	   test_copyu   test_shallow_copyu   test_deep_copyu   test_keyerror_without_factoryu   test_recursive_repru   test_pickleing(   u
   __locals__(    (    u2   /mit/python/lib/python3.0/test/test_defaultdict.pyu   TestDefaultDict   s   
	$					
				u   TestDefaultDictc               C   s   t  j t  d  S(   N(   u   supportu   run_unittestu   TestDefaultDict(    (    (    u2   /mit/python/lib/python3.0/test/test_defaultdict.pyu	   test_main°   s    u   __main__(   u   __doc__u   osu   copyu   pickleu   tempfileu   unittestu   testu   supportu   collectionsu   defaultdictu   foobaru   TestCaseu   TestDefaultDictu	   test_mainu   __name__(    (    (    u2   /mit/python/lib/python3.0/test/test_defaultdict.pyu   <module>   s   	‘	