;
Ìâ"Ic               @   s  d  d l  Z  d  d l Z d  d l m Z d  d l m Z e d „  ƒ Z d „  Z Gd „  d e j	 ƒ Z
 Gd „  d	 e  j ƒ Z Gd
 „  d e
 ƒ Z Gd „  d e
 ƒ Z Gd „  d e j	 ƒ Z Gd „  d e ƒ Z Gd „  d e j	 ƒ Z d d „ Z e d k o e d d ƒ n d S(   i    N(   u   support(   u   proxyc                s4   ‡ ‡ ‡  f d †  } ˆ | _  ˆ | _ ˆ  | _ | S(   u&   Pure Python approximation of partial()c                 s*   ˆ j  ƒ  } | j | ƒ ˆ ˆ  |  | Ž  S(   N(   u   copyu   update(   u   fargsu	   fkeywordsu   newkeywords(   u   argsu   funcu   keywords(    u0   /mit/python/lib/python3.0/test/test_functools.pyu   newfunc	   s    (   u   funcu   argsu   keywords(   u   funcu   argsu   keywordsu   newfunc(    (   u   keywordsu   argsu   funcu0   /mit/python/lib/python3.0/test/test_functools.pyu   PythonPartial   s
    			c              O   s
   |  | f S(   u,   capture all positional and keyword arguments(    (   u   argsu   kw(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   capture   s    c             B   sŒ   |  Ee  Z e j 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 S(   c          
   C   s®   |  j  t d d d d d d ƒ} |  j | d d d d	 d
 d ƒd t d d d d	 d
 d ƒ f ƒ |  j  t d „  ƒ } |  j t | d d d d g ƒ ƒ d d d	 d g ƒ d  S(   Ni   i   u   ai
   u   bi   i   i   i   u   ci(   c             S   s   |  d  S(   i
   (    (   u   x(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   <lambda>   s    (   i   i   i   i   (   u   thetypeu   captureu   assertEqualu   dictu   mapu   list(   u   selfu   p(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   test_basic_examples   s
    !"c          
   C   sß   |  j  t d d d d d d ƒ} |  j | j t ƒ |  j | j d
 ƒ |  j | j t d d d d ƒ ƒ t |  j  t ƒ p d  S|  j	 t
 t | d t ƒ |  j	 t
 t | d d ƒ |  j	 t
 t | d	 t d d d d ƒ ƒ d  S(   Ni   i   u   ai
   u   bi   u   funcu   argsu   keywords(   i   i   (   i   i   (   u   thetypeu   captureu   assertEqualu   funcu   argsu   keywordsu   dictu
   isinstanceu   typeu   assertRaisesu	   TypeErroru   setattru   map(   u   selfu   p(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   test_attributes"   s    !"c             C   sO   |  j  t |  j ƒ y |  j d ƒ ƒ  Wn t k
 o Yn X|  j d ƒ d  S(   Ni   u%   First arg not checked for callability(   u   assertRaisesu	   TypeErroru   thetypeu   fail(   u   self(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   test_argument_checking/   s    c             C   s†   d d d „ } i d d 6} |  j  | d d ƒ} |  j | |   d ƒ |  j | i d d 6ƒ | d d ƒ |  j | i d d 6ƒ d  S(	   Ni
   i   c             S   s   |  S(   N(    (   u   au   b(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   func:   s    i   u   ai   u   bi   (   u   thetypeu   assertEqual(   u   selfu   funcu   du   p(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu(   test_protection_of_callers_dict_argument8   s    c             C   s˜   |  j  t ƒ } |  j | ƒ  d i  f ƒ |  j | d d ƒ d i  f ƒ |  j  t d d ƒ } |  j | ƒ  d i  f ƒ |  j | d d ƒ d i  f ƒ d  S(	   Ni   i   i   i   (    (   i   i   (   i   i   (   i   i   i   i   (   u   thetypeu   captureu   assertEqual(   u   selfu   p(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   test_arg_combinationsC   s    c             C   sç   |  j  t ƒ } |  j | ƒ  d i  f ƒ |  j | d d ƒ d i d d 6f ƒ |  j  t d d ƒ} |  j | ƒ  d i d d 6f ƒ |  j | d d ƒ d	 i d d 6d d 6f ƒ |  j | d d d d ƒ d
 i d d 6d d 6f ƒ d  S(   Nu   ai   u   bi   i   (    (    (    (    (    (   u   thetypeu   captureu   assertEqual(   u   selfu   p(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   test_kw_combinationsM   s    & -c             C   sr   xk d d d d	 d
 g D]T } |  j  t | Œ } | d } | d ƒ \ } } |  j | | k o
 | i  k ƒ q Wd  S(   Ni    i   i   i   u   x(    (   i    (   i    i   (   i    i   i   (   i    i   i   i   (   u   x(   u   thetypeu   captureu
   failUnless(   u   selfu   argsu   pu   expectedu   gotu   empty(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   test_positionalY   s     
c             C   s   xx d d d  d g D]d } |  j t d | ƒ} i | d 6d  d 6} | d d  ƒ \ } } |  j | | k o
 | d k ƒ q Wd  S(   Nu   ai    g      @u   x(    (   u   Noneu   thetypeu   captureu
   failUnless(   u   selfu   au   pu   expectedu   emptyu   got(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   test_keyworda   s     c             C   s˜   |  j  t d d d ƒ} | d d d ƒ\ } } |  j | d k o | i d d 6d d 6k ƒ | ƒ  \ } } |  j | d k o | i d d 6k ƒ d  S(   Ni    u   ai   u   bi   (   i    i   (   i    (   u   thetypeu   captureu
   failUnless(   u   selfu   pu   args1u   kw1u   args2u   kw2(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   test_no_side_effectsi   s
    .c             C   sŒ   d „  } |  j  t |  j | d d ƒ ƒ |  j  t |  j | d ƒ d ƒ |  j  t |  j | ƒ d d ƒ |  j  t |  j | d d ƒd ƒ d  S(   Nc             S   s   |  | d  S(   N(    (   u   xu   y(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   fr   s    i   i    u   y(   u   assertRaisesu   ZeroDivisionErroru   thetype(   u   selfu   f(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   test_error_propagationq   s
    	c             C   sA   |  j  t ƒ } y
 | ` Wn t k
 o Yn X|  j d ƒ d  S(   Nu-   partial object allowed __dict__ to be deleted(   u   thetypeu   hexu   __dict__u	   TypeErroru   fail(   u   selfu   p(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   test_attributesy   s    
c             C   sW   |  j  t d d ƒ} t | ƒ } |  j | j | j ƒ d  } |  j t t | d ƒ d  S(   Nu   basei   u   func(	   u   thetypeu   intu   proxyu   assertEqualu   funcu   Noneu   assertRaisesu   ReferenceErroru   getattr(   u   selfu   fu   p(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   test_weakref‚   s
    c             C   sr   t  t t t d ƒ ƒ ƒ } |  j t j d ƒ } |  j | | ƒ d ƒ |  j d j ƒ } |  j | | ƒ d ƒ d  S(   Ni
   u    u
   0123456789(   u   listu   mapu   stru   rangeu   thetypeu   joinu   assertEqual(   u   selfu   datau   join(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu#   test_with_bound_and_unbound_methods‰   s
    N(   u   __name__u
   __module__u	   functoolsu   partialu   thetypeu   test_basic_examplesu   test_attributesu   test_argument_checkingu(   test_protection_of_callers_dict_argumentu   test_arg_combinationsu   test_kw_combinationsu   test_positionalu   test_keywordu   test_no_side_effectsu   test_error_propagationu   test_weakrefu#   test_with_bound_and_unbound_methods(   u
   __locals__(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   TestPartial   s   
							
								u   TestPartialc             B   s   |  Ee  Z d  S(   N(   u   __name__u
   __module__(   u
   __locals__(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   PartialSubclass   s   
u   PartialSubclassc             B   s   |  Ee  Z e Z d  S(   N(   u   __name__u
   __module__u   PartialSubclassu   thetype(   u
   __locals__(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   TestPartialSubclass“   s   
u   TestPartialSubclassc             B   s   |  Ee  Z e Z d  S(   N(   u   __name__u
   __module__u   PythonPartialu   thetype(   u
   __locals__(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   TestPythonPartial˜   s   
u   TestPythonPartialc             B   sG   |  Ee  Z e j e j d  „ Z d „  Z d „  Z d „  Z d „  Z	 d S(   c       	      C   s•   x3 | D]+ } |  j  t | | ƒ t | | ƒ k ƒ q WxX | D]P } t | | ƒ } t | | ƒ } x) | D]! } |  j  | | | | k ƒ qh Wq= Wd  S(   N(   u
   failUnlessu   getattr(	   u   selfu   wrapperu   wrappedu   assignedu   updatedu   nameu   wrapper_attru   wrapped_attru   key(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   check_wrapperž   s     )  c             C   sx   d „  } d | _  d „  } t j | | ƒ |  j | | ƒ |  j | j d ƒ |  j | j d ƒ |  j | j  d ƒ d  S(   Nc               S   s   d S(   u   This is a testN(    (    (    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   f¬   s    u   This is also a testc               S   s   d  S(   N(    (    (    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   wrapper°   s    u   fu   This is a test(   u   attru	   functoolsu   update_wrapperu   check_wrapperu   assertEqualu   __name__u   __doc__(   u   selfu   fu   wrapper(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   test_default_update«   s    			c             C   s‡   d „  } d | _  d „  } t j | | d d ƒ |  j | | d d	 ƒ |  j | j d ƒ |  j | j d  ƒ |  j t	 | d ƒ ƒ d  S(
   Nc               S   s   d S(   u   This is a testN(    (    (    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   f¹   s    u   This is also a testc               S   s   d  S(   N(    (    (    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   wrapper½   s    u   wrapperu   attr(    (    (    (    (
   u   attru	   functoolsu   update_wrapperu   check_wrapperu   assertEqualu   __name__u   __doc__u   Noneu   failIfu   hasattr(   u   selfu   fu   wrapper(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   test_no_update¸   s    			c             C   sÍ   d „  } d | _  t d d d d d d ƒ | _ d	 „  } i  | _ d } d } t j | | | | ƒ |  j | | | | ƒ |  j | j d ƒ |  j | j d  ƒ |  j | j  d ƒ |  j | j | j ƒ d  S(   Nc               S   s   d  S(   N(    (    (    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   fÆ   s    u   This is a different testu   ai   u   bi   u   ci   c               S   s   d  S(   N(    (    (    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   wrapperÊ   s    u   attru	   dict_attru   wrapper(   u   attr(   u	   dict_attr(
   u   attru   dictu	   dict_attru	   functoolsu   update_wrapperu   check_wrapperu   assertEqualu   __name__u   __doc__u   None(   u   selfu   fu   wrapperu   assignu   update(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   test_selective_updateÅ   s    				c             C   sI   d „  } t  j | t ƒ |  j | j d ƒ |  j | j j d ƒ ƒ d  S(   Nc               S   s   d  S(   N(    (    (    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   wrapperØ   s    u   maxu   max((   u	   functoolsu   update_wrapperu   maxu   assertEqualu   __name__u   assert_u   __doc__u
   startswith(   u   selfu   wrapper(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   test_builtin_updateÖ   s    	N(
   u   __name__u
   __module__u	   functoolsu   WRAPPER_ASSIGNMENTSu   WRAPPER_UPDATESu   check_wrapperu   test_default_updateu   test_no_updateu   test_selective_updateu   test_builtin_update(   u
   __locals__(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   TestUpdateWrapperœ   s   
			u   TestUpdateWrapperc             B   s)   |  Ee  Z d  „  Z d „  Z d „  Z d S(   c             C   sw   d „  } d | _  t j | ƒ d „  ƒ } |  j | | ƒ |  j | j d ƒ |  j | j d ƒ |  j | j  d ƒ d  S(   Nc               S   s   d S(   u   This is a testN(    (    (    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   fá   s    u   This is also a testc               S   s   d  S(   N(    (    (    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   wrapperå   s    u   fu   This is a test(   u   attru	   functoolsu   wrapsu   check_wrapperu   assertEqualu   __name__u   __doc__(   u   selfu   fu   wrapper(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   test_default_updateà   s    		c             C   s†   d „  } d | _  t j | d d ƒ d „  ƒ } |  j | | d d	 ƒ |  j | j d ƒ |  j | j d  ƒ |  j t	 | d ƒ ƒ d  S(
   Nc               S   s   d S(   u   This is a testN(    (    (    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   fî   s    u   This is also a testc               S   s   d  S(   N(    (    (    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   wrapperò   s    u   wrapperu   attr(    (    (    (    (
   u   attru	   functoolsu   wrapsu   check_wrapperu   assertEqualu   __name__u   __doc__u   Noneu   failIfu   hasattr(   u   selfu   fu   wrapper(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   test_no_updateí   s    		c             C   sÒ   d „  } d | _  t d d d d d d ƒ | _ d	 „  } d } d } t j | | | ƒ | d „  ƒ ƒ } |  j | | | | ƒ |  j | j d ƒ |  j | j d  ƒ |  j | j  d ƒ |  j | j | j ƒ d  S(   Nc               S   s   d  S(   N(    (    (    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   fû   s    u   This is a different testu   ai   u   bi   u   ci   c             S   s   i  |  _  |  S(   N(   u	   dict_attr(   u   f(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   add_dict_attrÿ   s    	u   attru	   dict_attrc               S   s   d  S(   N(    (    (    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   wrapper  s    u   wrapper(   u   attr(   u	   dict_attr(
   u   attru   dictu	   dict_attru	   functoolsu   wrapsu   check_wrapperu   assertEqualu   __name__u   __doc__u   None(   u   selfu   fu   add_dict_attru   assignu   updateu   wrapper(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   test_selective_updateú   s    			N(   u   __name__u
   __module__u   test_default_updateu   test_no_updateu   test_selective_update(   u
   __locals__(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu	   TestWrapsÞ   s   
		u	   TestWrapsc             B   s)   |  Ee  Z e j Z d  „  Z d „  Z d S(   c             C   s  Gd „  d ƒ } |  j  |  j d „  d d d g d ƒ d ƒ |  j  |  j d	 „  d d g g  d
 d g g g  ƒ d d d
 d g ƒ |  j  |  j d „  t d d ƒ d ƒ d ƒ |  j  |  j d „  t d d ƒ d ƒ d ƒ |  j  |  j d „  | d ƒ ƒ d ƒ |  j  |  j d „  | d ƒ d ƒ d ƒ |  j  |  j d „  | d ƒ d ƒ d ƒ |  j t |  j ƒ |  j t |  j d d ƒ |  j t |  j d d d ƒ |  j  |  j d d ƒ d ƒ |  j  |  j d d d ƒ d ƒ |  j t |  j d d ƒ Gd „  d ƒ } |  j t |  j d | ƒ  ƒ d  S(   Nc             B   s)   |  Ee  Z d  „  Z d „  Z d „  Z d S(   c             S   s   | |  _  g  |  _ d  S(   N(   u   maxu   sofar(   u   selfu   max(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   __init__  s    	c             S   s   t  |  j ƒ S(   N(   u   lenu   sofar(   u   self(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   __len__  s    c             S   sx   d | k o |  j  k  n p
 t ‚ n t |  j ƒ } x0 | | k o" |  j j | | ƒ | d 7} q= W|  j | S(   Ni    i   (   u   maxu
   IndexErroru   lenu   sofaru   append(   u   selfu   iu   n(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   __getitem__  s    ! 
 N(   u   __name__u
   __module__u   __init__u   __len__u   __getitem__(   u
   __locals__(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   Squares  s   
		u   Squaresc             S   s   |  | S(    (    (   u   xu   y(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   <lambda>"  s    u   au   bu   cu    u   abcc             S   s   |  | S(    (    (   u   xu   y(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   <lambda>$  s    u   du   wc             S   s   |  | S(    (    (   u   xu   y(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   <lambda>'  s    i   i   i   i°  c             S   s   |  | S(    (    (   u   xu   y(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   <lambda>)  s    i   l     hò c             S   s   |  | S(    (    (   u   xu   y(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   <lambda>,  s    i
   i  c             S   s   |  | S(    (    (   u   xu   y(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   <lambda>-  s    i    c             S   s   |  | S(    (    (   u   xu   y(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   <lambda>.  s    i*   u   1c             B   s   |  Ee  Z d  „  Z d S(   c             S   s
   t  ‚ d  S(   N(   u
   ValueError(   u   selfu   index(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   __getitem__7  s    N(   u   __name__u
   __module__u   __getitem__(   u
   __locals__(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   BadSeq6  s   
u   BadSeq(   i*   i*   (   u   assertEqualu   funcu   rangeu   assertRaisesu	   TypeErroru
   ValueError(   u   selfu   Squaresu   BadSeq(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   test_reduce  s(    +*+%((c             C   s<  Gd „  d ƒ } d d l  m } |  j |  j | | d ƒ ƒ d ƒ |  j |  j | | d ƒ d ƒ d ƒ |  j t |  j | | d ƒ ƒ |  j |  j | | d ƒ d ƒ d ƒ |  j |  j | | d	 ƒ ƒ d ƒ |  j |  j | | d	 ƒ d ƒ d ƒ i d	 d
 6d d 6d d 6} |  j |  j | | ƒ d j | j ƒ  ƒ ƒ d  S(   Nc             B   s    |  Ee  Z d  „  Z d „  Z d S(   c             S   s   | |  _  d  S(   N(   u   n(   u   selfu   n(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   __init__>  s    c             S   s0   d | k o |  j  k  n o | St ‚ d  S(   Ni    (   u   nu
   IndexError(   u   selfu   i(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   __getitem__@  s    !N(   u   __name__u
   __module__u   __init__u   __getitem__(   u
   __locals__(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   SequenceClass=  s   
	u   SequenceClassi    (   u   addi   i
   i*   i4   i   u   onei   u   twoi   u   threeu    (   u   operatoru   addu   assertEqualu   funcu   assertRaisesu	   TypeErroru   joinu   keys(   u   selfu   SequenceClassu   addu   d(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   test_iterator_usage<  s    	"%%"%N(   u   __name__u
   __module__u	   functoolsu   reduceu   funcu   test_reduceu   test_iterator_usage(   u
   __locals__(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu
   TestReduce  s   
		+u
   TestReducec             C   s·   d d  l  } t t t t t t f } t j | Œ  |  o{ t	 | d ƒ ok d d  l
 } d  g d } xA t t | ƒ ƒ D]- } t j | Œ  | j ƒ  | j ƒ  | | <qt Wt | ƒ n d  S(   Ni    u   gettotalrefcounti   (   u   sysu   TestPartialu   TestPartialSubclassu   TestPythonPartialu   TestUpdateWrapperu	   TestWrapsu
   TestReduceu   supportu   run_unittestu   hasattru   gcu   Noneu   rangeu   lenu   collectu   gettotalrefcountu   print(   u   verboseu   sysu   test_classesu   gcu   countsu   i(    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu	   test_mainT  s"    	 
u   __main__u   verboseT(   u	   functoolsu   unittestu   testu   supportu   weakrefu   proxyu   staticmethodu   PythonPartialu   captureu   TestCaseu   TestPartialu   partialu   PartialSubclassu   TestPartialSubclassu   TestPythonPartialu   TestUpdateWrapperu	   TestWrapsu
   TestReduceu   Noneu	   test_mainu   __name__u   True(    (    (    u0   /mit/python/lib/python3.0/test/test_functools.pyu   <module>   s   	yB0F