ó
Ë£,]c           @   sx  d  d l  Z  d  d l Z d  d l m Z m Z m Z m Z m Z m Z m	 Z	 m
 Z
 m Z m Z m Z m Z m Z d  d l m Z d  d l m Z m Z m Z d  d l m Z d  d l m Z d „  Z d „  Z d	 „  Z d
 „  Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ  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 „  Z0 d „  Z1 d  „  Z2 d! „  Z3 d" „  Z4 d# „  Z5 d$ „  Z6 d% „  Z7 d& „  Z8 d' „  Z9 d( „  Z: d) „  Z; d* „  Z< d+ „  Z= d, „  Z> d- „  Z? d. „  Z@ d/ „  ZA d0 „  ZB d1 „  ZC d2 „  ZD d3 „  ZE d4 „  ZF d5 „  ZG d6 „  ZH d S(7   iÿÿÿÿN(   t   thread_firstt   thread_lastt   memoizet   curryt   composet   compose_leftt   pipet
   complementt   dot   juxtt   flipt   exceptst   apply(   t   PY3(   t   addt   mult
   itemgetter(   t   raises(   t   partialc         C   s   |  d d k S(   Ni   i    (    (   t   x(    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   iseven   s    c         C   s   |  d d k S(   Ni   i   (    (   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   isodd   s    c         C   s   |  d S(   Ni   (    (   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   inc   s    c         C   s   d |  S(   Ni   (    (   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   double   s    t   AlwaysEqualsc           B   s    e  Z d  Z d „  Z d „  Z RS(   s=   useful to test correct __eq__ implementation of other objectsc         C   s   t  S(   N(   t   True(   t   selft   other(    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   __eq__   s    c         C   s   t  S(   N(   t   False(   R   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   __ne__"   s    (   t   __name__t
   __module__t   __doc__R   R   (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR      s   	t   NeverEqualsc           B   s    e  Z d  Z d „  Z d „  Z RS(   s=   useful to test correct __eq__ implementation of other objectsc         C   s   t  S(   N(   R   (   R   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR   )   s    c         C   s   t  S(   N(   R   (   R   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR   ,   s    (   R   R    R!   R   R   (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR"   &   s   	c           C   sj   t  t d ƒ d k s t ‚ t t t  t t t g d d d g ƒ ƒ d k sQ t ‚ t t t  ƒ sf t ‚ d  S(	   Ni   i
   iô  i@  i   iõ  i€>  (   i   iõ  i€>  (   R   R   t   AssertionErrort   tuplet   mapR   R   t	   TypeError(    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt
   test_apply0   s    6c           C   s—   t  d ƒ d k s t ‚ t  d t ƒ d k s3 t ‚ t  d t t ƒ d k sQ t ‚ t  d t t ƒ d k so t ‚ t  d t d f t ƒ d k s“ t ‚ d  S(   Ni   i   i   i   i   (   R    R#   R   R   R   (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_thread_first6   s
    c           C   s£   t  t d d d g t t f t t f ƒ ƒ d d g k s? t ‚ t  t d d d g t t f t t f ƒ ƒ d g k s{ t ‚ t d t d f t	 ƒ d k sŸ t ‚ d  S(   Ni   i   i   i   i   i   (
   t   listR   R%   R   t   filterR   R#   R   R   R   (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_thread_last>   s    ?<c             s—   d g ‰  ‡  f d †  }  t  |  ƒ ‰ ˆ d d ƒ ˆ d d ƒ k sH t ‚ ˆ  d g k s] t ‚ ˆ j |  j k su t ‚ t t ‡ f d †  ƒ s“ t ‚ d  S(   Ni    c            s   ˆ  d c d 7<|  | S(   s    A docstring i    i   (    (   R   t   y(   t   fn_calls(    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   fG   s    i   i   i   c              s   ˆ  d i  ƒ S(   Ni   (    (    (   t   mf(    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   <lambda>P   t    (   R   R#   R!   R   R&   (   R.   (    (   R-   R/   s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_memoizeD   s    	$c          C   s»   d g }  d d „ } t  | ƒ } | d ƒ | d ƒ k s? t ‚ | d d ƒ | d d ƒ k sc t ‚ | d d d ƒ| d d d ƒk s t ‚ | d d d ƒ| d d d ƒk s· t ‚ d  S(   Ni    c         S   s   |  | S(   N(    (   R   R,   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR.   V   s    i   i   R,   i   (   R   R#   (   R-   R.   R/   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_memoize_kwargsS   s    	$*c          C   sm   t  d d „ ƒ }  |  d d ƒ } t | ƒ } | d ƒ | d ƒ k sK t ‚ | d ƒ | d ƒ k si t ‚ d  S(   Ni    c         S   s   |  | S(   N(    (   R   R,   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR.   b   s    R,   i   i   (   R   R   R#   (   R.   t   f2t   fm2(    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_memoize_currieda   s    c          C   sj   d d „ }  t  |  d d ƒ} t | ƒ } | d ƒ | d ƒ k sH t ‚ | d ƒ | d ƒ k sf t ‚ d  S(   Ni    c         S   s   |  | S(   N(    (   R   R,   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR.   n   s    R,   i   i   (   R   R   R#   (   R.   R4   R5   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_memoize_partialm   s
    c        	      sà  t  d „  d i t d 6ƒ‰  ˆ  d ƒ t k s4 t ‚ ˆ  d ƒ t k sL t ‚ t  d „  d i t d 6d d 6ƒ‰  ˆ  d ƒ t k s‡ t ‚ ˆ  d ƒ t k sŸ t ‚ ˆ  d d ƒ t k sº t ‚ ˆ  d d ƒ d k sÕ t ‚ ˆ  d ƒ t k sí t ‚ t  d „  d i t d 6ƒ‰  ˆ  d d ƒ t k s$t ‚ ˆ  d d ƒ t k s?t ‚ t t ‡  f d †  ƒ s]t ‚ t  d	 „  d i t d 6ƒ‰  ˆ  ƒ  t k sŽt ‚ t  d
 d „ d i d d t d ƒ f 6d d 6ƒ‰  ˆ  d d d ƒd k sÞt ‚ ˆ  d d ƒ d k sùt ‚ ˆ  d d d ƒt k st ‚ ˆ  d d ƒ t k s2t ‚ ˆ  d ƒ t k sJt ‚ ˆ  d ƒ t k sbt ‚ t  d
 d „ d i d d  t d ƒ f 6d d 6ƒ‰  ˆ  ƒ  t k s©t ‚ ˆ  d d ƒ d k sÄt ‚ ˆ  d ƒ d k sÜt ‚ d  S(   Nc         S   s   t  S(   N(   R   (   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   z   R1   t   cachei   i   c         W   s   t  S(   N(   R   (   R   t   args(    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0      R1   c         S   s   t  S(   N(   R   (   R   R,   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   ‡   R1   i   c              s
   ˆ  d ƒ S(   Ni   i   (   i   i   (    (    (   R/   (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   Š   R1   c           S   s   t  S(   N(   R   (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0      R1   i    c         S   s   t  S(   N(   R   (   R   R,   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   ’   R1   R,   c         S   s   t  S(   N(   R   (   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0      R1   R   (   i   (   i   i   (   i   i   (   i   i   (    (   i   (   R,   i   (   (   R,   i   (   i   i   (   (   i   i   N(   i   i   (   R   i   (   (   R   i   (   i   (   (   i   N(   R   R   R#   R   R   R&   t	   frozensett   None(    (    (   R/   s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_memoize_key_signaturex   s:    #%c          C   sS   t  d i t d 6ƒ d „  ƒ }  |  d ƒ t k s7 t ‚ |  d ƒ t k sO t ‚ d  S(   NR8   i   c         S   s   t  S(   N(   R   (   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR.   ¥   s    i   (   R   R   R#   R   (   R.   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_memoize_curry_cache¤   s    c          C   sU   t  d d „  ƒ d „  ƒ }  |  d d ƒ d k s6 t ‚ |  d d ƒ d k sQ t ‚ d  S(   Nt   keyc         S   s   |  d S(   Ni    (    (   R9   t   kwargs(    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   ®   R1   c         _   s   |  | S(   N(    (   R   R,   R9   R?   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR.   ®   s    i   i   i   (   R   R#   (   R.   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_memoize_key­   s    c          C   s.   d „  }  t  |  ƒ } | j |  k s* t ‚ d  S(   Nc           S   s   d S(   s   
        Docstring
        N(    (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   foo¸   s    (   R   t   __wrapped__R#   (   RA   t   memoized_foo(    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_memoize_wrapped¶   s    	c          C   sÖ   t  t ƒ }  |  d ƒ } t | ƒ s* t ‚ | d ƒ d k sB t ‚ t |  ƒ t t ƒ k s` t ‚ t  t ƒ } t | t ƒ d d d g ƒ ƒ d d d g k s¢ t ‚ t t	 d „  ƒ sº t ‚ t t	 d „  ƒ sÒ t ‚ d  S(	   Ni   i
   i   i   i   i   c           S   s   t  ƒ  S(   N(   R   (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   Ë   R1   c           S   s   t  i d d 6ƒ S(   Ni   i   (   R   (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   Ì   R1   (
   R   R   t   callableR#   t   reprR%   R)   R   R   R&   (   t   cmulR   t   cmap(    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_curry_simpleÁ   s    6c             sù  d d „ }  t  |  ƒ }  |  d d d ƒ d k s6 t ‚ |  d ƒ d d ƒ d k sW t ‚ |  d d ƒ d k sr t ‚ |  d d d ƒd ƒ d k s– t ‚ |  d d ƒ d d ƒ d k sº t ‚ d d d	 d
 „ } t  | d d ƒ‰  ˆ  ƒ  d k só t ‚ ˆ  d d ƒ d k st ‚ ˆ  d d	 ƒ d k s)t ‚ ˆ  d d	 d d ƒ d k sJt ‚ ˆ  d	 ƒ d k sbt ‚ t t ‡  f d †  ƒ s€t ‚ t d „ } t  | ƒ d ƒ d	 k sªt ‚ t  | ƒ d t ƒ d ƒ d k sÑt ‚ t  | d t ƒd ƒ d k sõt ‚ d  S(   Ni
   c         S   s   |  | | S(   N(    (   t   at   bt   c(    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR.   Ð   s    i   i   i   i	   i   RL   i    c         S   s   |  | | S(   N(    (   RJ   RK   RL   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   gÚ   s    RK   i   RJ   c              s   ˆ  d d ƒ S(   Ni   i   (    (    (   t   cg(    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   ã   R1   c         S   s
   | |  ƒ S(   N(    (   R   t   func(    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   hå   s    g        RO   s   0.0(   R   R#   R   R&   t   intt   str(   R.   RM   RP   (    (   RN   s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_curry_kwargsÏ   s&    !$$!'c              sˆ   t  d „  ƒ ‰  ˆ  d d ƒ d k s* t ‚ t t ‡  f d †  ƒ sH t ‚ t t ‡  f d †  ƒ sf t ‚ t t ‡  f d †  ƒ s„ t ‚ d  S(   Nc         S   s#   t  |  t ƒ s t ƒ  ‚ n  |  | S(   N(   t
   isinstanceRQ   R&   (   RJ   RK   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR.   ï   s    i   i   i   c              s   ˆ  d d ƒ S(   Nt   1i   (    (    (   R.   (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   ö   R1   c              s   ˆ  d ƒ d ƒ S(   NRU   i   (    (    (   R.   (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   ÷   R1   c              s   ˆ  d d d ƒ S(   Ni   i   i   (    (    (   R.   (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   ø   R1   (   R   R#   R   R&   (    (    (   R.   s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_curry_passes_errorsî   s
    c          C   ss   d „  }  t  |  ƒ } | j |  j k s- t ‚ t | ƒ t |  ƒ k sK t ‚ |  d d ƒ | d d ƒ k so t ‚ d  S(   Nc         S   s   |  S(   s    A docstring (    (   R   R,   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR.   ü   s    i   i   (   R   R!   R#   RR   (   R.   RM   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_curry_docstringû   s
    	c          C   s¢  d d „ }  t  |  d d d ƒt |  ƒ d d d ƒ} } | j | j k sR t ‚ | j | j k sj t ‚ | d ƒ | d ƒ k sˆ t ‚ t  |  d ƒ t |  ƒ d ƒ } } | j | j k sÂ t ‚ | j | j k sÚ t ‚ | d ƒ | d ƒ k sø t ‚ | d d d ƒ| d d d ƒk s"t ‚ t  |  d d ƒt |  ƒ d d ƒ } } | j | j k sbt ‚ | j | j k szt ‚ | d d ƒ | d d ƒ k sžt ‚ d  S(   Ni   c         S   s   |  | | S(   N(    (   RJ   RK   RL   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyRA     s    RL   i   i   (   R   R   t   keywordsR#   R9   (   RA   t   pRL   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_curry_is_like_partial  s    ."*(c          C   sÕ   d d „ }  t  |  d d d ƒ} t  | ƒ } t | t  ƒ sB t ‚ t | t  ƒ sW t ‚ t | j t  ƒ sp t ‚ t | j d ƒ s‰ t ‚ | j | j k s¡ t ‚ | j | j k s¹ t ‚ | j | j k sÑ t ‚ d  S(   Ni   c         S   s   |  | | S(   N(    (   RJ   RK   RL   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyRA     s    RL   i   RO   (   R   RT   R#   RO   t   hasattrR9   RX   (   RA   R.   RM   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_curry_is_idempotent  s    c             sÙ   d d „ }  t  |  d d d ƒ‰  t t ‡  f d †  ƒ s? t ‚ t t ‡  f d †  ƒ s] t ‚ t t ‡  f d †  ƒ s{ t ‚ t t ‡  f d †  ƒ s™ t ‚ t t ‡  f d	 †  ƒ s· t ‚ t t ‡  f d
 †  ƒ sÕ t ‚ d  S(   Ni   c         S   s   |  | | S(   N(    (   RJ   RK   RL   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyRA   +  s    RL   i   c              s   t  ˆ  d d ƒ S(   NR9   i   (   i   (   t   setattr(    (   R.   (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   /  R1   c              s   t  ˆ  d i d d 6ƒ S(   NRX   i   RL   (   R]   (    (   R.   (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   0  R1   c              s   t  ˆ  d ˆ  ƒ S(   NRO   (   R]   (    (   R.   (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   1  R1   c              s   t  ˆ  d ƒ S(   NR9   (   t   delattr(    (   R.   (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   2  R1   c              s   t  ˆ  d ƒ S(   NRX   (   R^   (    (   R.   (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   3  R1   c              s   t  ˆ  d ƒ S(   NRO   (   R^   (    (   R.   (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   4  R1   (   R   R   t   AttributeErrorR#   (   RA   (    (   R.   s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_curry_attributes_readonly*  s    c          C   så   d d „ }  d |  _  t |  d d d ƒ} | j  d k s? t ‚ d | _ d | _ d | _ d	 | _  | j d k sx t ‚ | j d k s t ‚ | j d k s¢ t ‚ | j  d	 k s· t ‚ t | d
 ƒ rá | j | j k sá t ‚ n  d  S(   Ni   c         S   s   |  | | S(   N(    (   RJ   RK   RL   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyRA   8  s    s   this.is.fooRL   i   t   newnamet   newdoct	   newmodulet   newqualnamet	   func_name(   t   __qualname__R   R#   R   R!   R    R[   Re   (   RA   R.   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_curry_attributes_writable7  s    					c          C   s)   d d l  m }  |  j d k s% t ‚ d  S(   Niÿÿÿÿ(   t   merges   toolz.curried.exceptions(   t   toolz.curried.exceptionsRh   R    R#   (   Rh   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_curry_moduleI  s    c    	         sÂ  d d „ }  t  |  d d d ƒ} t  |  d d d ƒ} t  |  d d d ƒ} t  |  d d ƒ} | d d ƒ } | ƒ  } | | k s‡ t ‚ | | k sš t ‚ | | k s¬ t ‚ | | k s¿ t ‚ | | k sÑ t ‚ | | k sã t ‚ | | k sõ t ‚ d d „ } t  | d d d ƒ} | | k s(t ‚ | | | | | | | | ƒ  h | | | | h k sat ‚ t  |  g  ƒ ‰  t t ‡  f d †  ƒ sŽt ‚ t  |  d g  ƒ‰ t t ‡ f d †  ƒ s¾t ‚ d  S(	   Ni   c         S   s   |  | | S(   N(    (   RJ   RK   RL   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyRA   O  s    RL   i   i   c         S   s   |  | | S(   N(    (   RJ   RK   RL   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   bar`  s    c              s
   t  ˆ  ƒ S(   N(   t   hash(    (   t   unhash1(    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   i  R1   c              s
   t  ˆ  ƒ S(   N(   Rl   (    (   t   unhash2(    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   k  R1   (   R   R#   R   R&   (	   RA   t   f1R4   t   g1t   h1t   h2t   h3Rk   t   b1(    (   Rm   Rn   s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_curry_comparableN  s,    	9c          C   sX   d d „ }  t  |  ƒ } | d d ƒ d d ƒ d d ƒ d ƒ |  d d ƒ k sT t ‚ d  S(   Ni    c         S   s   |  | S(   N(    (   R   R,   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR.   r  s    R,   i   i   i   (   R   R#   (   R.   t   cf(    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_curry_doesnot_transmogrifyn  s    c          C   sÙ  d t  f d „  ƒ  Y}  |  d ƒ } | j d d ƒ d k s@ t ‚ | j d ƒ d ƒ d k sa t ‚ |  j | d d ƒ d k s‚ t ‚ |  j | ƒ d ƒ d ƒ d k s© t ‚ | j d d ƒ d k sÇ t ‚ | j d ƒ d ƒ d k sè t ‚ |  j d d ƒ d k st ‚ |  j d ƒ d ƒ d k s't ‚ | j d d ƒ d k sEt ‚ | j d ƒ d ƒ d k sft ‚ |  j d d ƒ d k s„t ‚ |  j d ƒ d ƒ d k s¥t ‚ t | j t ƒ s½t ‚ t |  j t ƒ sÕt ‚ d  S(	   Nt   Ac           B   sP   e  Z d  Z d „  Z e d „  ƒ Z e e d „  ƒ ƒ Z e e d „  ƒ ƒ Z	 RS(   i
   c         S   s   | |  _  d  S(   N(   t   BASE(   R   t   base(    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   __init__}  s    c         S   s   |  j  | | S(   N(   Ry   (   R   R   R,   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt	   addmethod€  s    c         S   s   |  j  | | S(   N(   Ry   (   t   clsR   R,   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   addclass„  s    c         S   s   |  | S(   N(    (   R   R,   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt	   addstatic‰  s    (
   R   R    Ry   R{   R   R|   t   classmethodR~   t   staticmethodR   (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyRx   z  s   	id   i   i   ik   i   i   (   t   objectR|   R#   R~   R   RT   R   (   Rx   RJ   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_curry_on_classmethodsy  s     !!'!!!!c          C   sy  d t  f d „  ƒ  Y}  |  d ƒ } | j d d ƒ d k s@ t ‚ |  j | d d ƒ d k sa t ‚ d | _ | j d d ƒ d k sˆ t ‚ d | _ | j d d ƒ d k s¯ t ‚ | j d d ƒ d	 k sÍ t ‚ |  j d d ƒ d	 k së t ‚ d
 |  _ |  j d d ƒ d	 k st ‚ d
 |  _ |  j d d ƒ d	 k s9t ‚ | j d d ƒ d k sWt ‚ |  j d d ƒ d k sut ‚ d  S(   NRx   c           B   s_   e  Z d  Z d  Z d „  Z e d „  ƒ Z e e d „  ƒ ƒ Z e	 e d „  ƒ ƒ Z
 d „  Z RS(   i
   c         S   s   | |  _  d  S(   N(   Ry   (   R   Rz   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR{   ¨  s    c         S   s   |  j  | | S(   N(   Ry   (   R   R   R,   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR|   «  s    c         S   s   |  j  | | S(   N(   Ry   (   R}   R   R,   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR~   ¯  s    c         S   s   |  | S(   N(    (   R   R,   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR   ´  s    c         S   s   |  j  S(   N(   t   HASH(   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   __hash__¹  s    (   R   R    Ry   R„   R{   R   R|   R€   R~   R   R   R…   (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyRx   ¤  s   	id   i   i   ik   iÈ   iÏ   i   i   i   (   R‚   R|   R#   Ry   R„   R~   R   (   Rx   RJ   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_memoize_on_classmethods£  s     !				c              sˆ   t  d „  ƒ ‰  t t ‡  f d †  ƒ s- t ‚ ˆ  d ƒ d ƒ ˆ  j d d ƒ k sW t ‚ ˆ  d ƒ d ƒ ˆ  d ƒ j d ƒ k s„ t ‚ d  S(   Nc         S   s   |  | S(   N(    (   R   R,   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR   Ñ  s    c              s   ˆ  j  d ƒ S(   Ni   (   t   call(    (   R   (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   Ô  R1   i   i   (   R   R   R&   R#   R‡   (    (    (   R   s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_curry_callÐ  s    *c          C   s÷   t  d d d „ ƒ }  |  ƒ  |  d d ƒ k s3 t ‚ |  j d ƒ d ƒ |  d d ƒ k s] t ‚ |  j d ƒ j d ƒ ƒ  |  d d ƒ k s t ‚ |  j d d ƒ d d ƒ |  d d ƒ k s½ t ‚ |  j d d ƒ j d d ƒ ƒ  |  d d ƒ k só t ‚ d  S(   Ni   i   c         S   s   |  | S(   N(    (   R   R,   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR   Ú  s    i
   i   R   R,   (   R   R#   t   bind(   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_curry_bindÙ  s    *00c             sß   d „  ‰  t  ‡  f d †  ƒ }  |  ƒ  d ƒ d ƒ d ƒ d k sE t ‚ |  d ƒ d ƒ d ƒ d k si t ‚ |  d d ƒ d ƒ d k sŠ t ‚ |  d d d ƒ d k s¨ t ‚ |  d d ƒ d d ƒ |  d d d d ƒ k sÛ t ‚ d  S(   Nc         S   s   |  | | S(   N(    (   R   R,   t   z(    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   add3å  s    c             s
   ˆ  |  Œ  S(   N(    (   R9   (   RŒ   (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR.   è  s    i   i   i   i   i   (   R   R#   (   R.   (    (   RŒ   s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_curry_unknown_argsä  s    	'$!c           C   s   t  t d „  ƒ s t ‚ d  S(   Nc           S   s
   t  d ƒ S(   Ni   (   R   (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   ô  R1   (   R   R&   R#   (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_curry_bad_typesó  s    c          C   sª   d t  f d „  ƒ  Y}  |  d „  ƒ } t | t  ƒ s: t ‚ t | |  ƒ sO t ‚ t | d ƒ |  ƒ sj t ‚ t | ƒ  d ƒ |  ƒ sˆ t ‚ | d ƒ d ƒ d k s¦ t ‚ d  S(   Nt   mycurryc           B   s   e  Z RS(    (   R   R    (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR   ø  s   c         S   s   |  | S(   N(    (   R   R,   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   û  R1   i   i   i   (   R   RT   R#   (   R   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_curry_subclassable÷  s    c       
   C   s•   d d „ }  d d i  d f t  f d i  d f t t  f d i  d f t t t  t f d i  d f t t f d i  d f t t  |  f d i d d	 6d
 f f S(   sM   
    Generate test cases for parametrized tests of the compose function.
    i
   c         S   s   |  | | S(   N(    (   RJ   RK   RL   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   add_then_multiply  s    i    i   i   i   R   t   3RL   t   10(    (   i    (   i    (   i    (   i   (   i   i   (   i   i   (   R   R   RR   R   R   (   R‘   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   generate_compose_test_cases  s&    		c          C   sE   x> t  ƒ  D]3 \ }  } } } t |  Œ  | | Ž  | k s
 t ‚ q
 Wd  S(   N(   R”   R   R#   (   t   compose_argsR9   t   kwt   expected(    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_compose:  s    c             sE  d „  }  d „  } t  |  | ƒ ‰ ˆ j d k s6 t ‚ ˆ j d k sK t ‚ t ƒ  } t  |  | ƒ ‰ ˆ j d k sx t ‚ ˆ j d k s t ‚ t ˆ ƒ d j |  | ƒ k s± t ‚ ˆ t  |  | ƒ k sÌ t ‚ ˆ t ƒ  k sá t ‚ ˆ t  | |  ƒ k sý t ‚ ˆ t ƒ  k st ‚ ˆ t ƒ  k s)t ‚ ˆ t  | |  ƒ k sDt ‚ ˆ t ƒ  k sYt ‚ ˆ t ƒ  k snt ‚ ˆ t  |  | ƒ k sŠt ‚ ˆ t ƒ  k s t ‚ t	 ˆ ƒ t	 t  |  | ƒ ƒ k sÇt ‚ t	 ˆ ƒ t	 t  | |  ƒ ƒ k sît ‚ t  t
 d „  d	 d
 „ ƒ ‰  d d$ ‡  f d †  ƒ  Y} | j d ƒ d k s=t ‚ | j d d d ƒd k s^t ‚ | j d ƒ d k syt ‚ | ƒ  j ƒ  d k s”t ‚ | ƒ  j d d ƒ d k sµt ‚ | ƒ  j d	 ƒ d k sÓt ‚ | ƒ  j d	 d ƒ d k sôt ‚ t  |  | ƒ j | k st ‚ t t d ƒ rEt  |  | ƒ j j d  k sEt ‚ n  t rAd „  } d „  } i t d 6t
 d 6t d 6t d 6t d 6t d  6| _ i t d! 6t
 d  6| _ t  | | ƒ ‰ t j ˆ ƒ } | j t j | ƒ j k sæt ‚ | j t
 k sût ‚ d d% ‡ f d" †  ƒ  Y} t t j | ƒ  j ƒ j ƒ d# k sAt ‚ n  d  S(&   Nc         S   s   |  S(   N(    (   RJ   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR.   B  s    c         S   s   |  S(   N(    (   RJ   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyRM   E  s    t   f_of_gs-   lambda *args, **kwargs: f(g(*args, **kwargs))t   Composes   A composition of functionss   Compose({!r}, {!r})c         S   s   |  d S(   Ni   (    (   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   d  R1   i    c         S   s   t  |  ƒ | S(   N(   RQ   (   R   R,   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   d  R1   t   MyClassc              s#   e  Z d  „  Z ˆ  Z e ˆ  ƒ Z RS(   c         S   s   d S(   Ni   (    (   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   __int__h  s    (   R   R    Rœ   t	   my_methodR   t   my_static_method(    (   t   bindable(    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR›   f  s   	i   t   6R,   i   R“   t   4t   16t   22t   0i   t   2t   sandboxc         _   s   d S(   Ni   (    (   RJ   RK   RL   t   dt   e(    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   myfunc}  s    c         S   s   d j  |  ƒ S(   Ns
   result: {}(   t   format(   R.   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt	   otherfunc€  s    RJ   RK   RL   R§   R¨   t   returnR.   c              s   e  Z ˆ  Z RS(    (   R   R    t   method(    (   t   composed(    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR›   “  s   i   (    (    (   R   R   R#   R!   R‚   RF   Rª   R   R"   Rl   RR   R   Rž   RB   R[   t   toolzt	   __class__R;   R   RQ   t   floatt   boolt   __annotations__t   inspectt	   signaturet
   parameterst   return_annotationt   lenR­   (   R.   RM   RP   R›   R©   R«   t   sig(    (   RŸ   R®   s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_compose_metadata?  sf    			$''!!!$		!c           C   s   t  d „  t ƒ  Dƒ ƒ S(   s­   
    Generate test cases for parametrized tests of the compose function.

    These are based on, and equivalent to, those produced by
    enerate_compose_test_cases().
    c         s   s9   |  ]/ \ } } } } t  t | ƒ ƒ | | | f Vq d  S(   N(   R$   t   reversed(   t   .0R•   R9   R?   R—   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pys	   <genexpr>¡  s   (   R$   R”   (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt    generate_compose_left_test_cases™  s    c          C   sE   x> t  ƒ  D]3 \ }  } } } t |  Œ  | | Ž  | k s
 t ‚ q
 Wd  S(   N(   R½   R   R#   (   t   compose_left_argsR9   R–   R—   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_compose_left§  s    c           C   s^   t  d t ƒ d k s t ‚ t  d t t ƒ d k s9 t ‚ t  d t t t ƒ t k sZ t ‚ d  S(   Ni   i   i   (   R   R   R#   R   R   R   (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt	   test_pipe¬  s    c          C   sŽ  t  d „  ƒ ƒ  s t ‚ t  d „  ƒ ƒ  s1 t ‚ t  t ƒ d ƒ sI t ‚ t  t ƒ d ƒ sb t ‚ t  t  t ƒ ƒ d ƒ s€ t ‚ t  t  t ƒ ƒ d ƒ sŸ t ‚ d „  }  t  |  ƒ d d ƒ sÃ t ‚ t  |  ƒ d d ƒ sß t ‚ t  d „  ƒ ƒ  s÷ t ‚ t  d „  ƒ ƒ  st ‚ t  d „  ƒ ƒ  s't ‚ t  d	 „  ƒ ƒ  s?t ‚ t  d
 „  ƒ ƒ  sXt ‚ t  d „  ƒ ƒ  sqt ‚ t  d „  ƒ ƒ  sŠt ‚ d  S(   Nc           S   s   t  S(   N(   R   (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   ´  R1   c           S   s   t  S(   N(   R   (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   µ  R1   i   i   c         S   s   t  |  ƒ o t  | ƒ S(   N(   R   (   RJ   RK   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   ¾  R1   c           S   s   d S(   NR1   (    (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   Ã  R1   c           S   s   d S(   Ni    (    (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   Ä  R1   c           S   s   d  S(   N(   R;   (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   Å  R1   c           S   s   g  S(   N(    (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   Æ  R1   c           S   s   d S(   NR   (    (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   È  R1   c           S   s   d S(   Ni   (    (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   É  R1   c           S   s   d g S(   Ni   (    (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   Ê  R1   (   R   R#   R   R   (   t	   both_even(    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_complement²  s     	c          C   sa   d „  }  t  |  d ƒ d k s$ t ‚ g  } t  | j d ƒ d k sH t ‚ | d g k s] t ‚ d  S(   Nc         S   s   |  d S(   Ni   (    (   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0   Î  R1   i   (   R   R#   t   append(   R   t   log(    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_doÍ  s
    	c          C   sb   t  t d ƒ ƒ }  t d „  t d ƒ Dƒ ƒ } | |  ƒ d	 k sF t ‚ | |  ƒ d
 k s^ t ‚ d  S(   Ni
   c         s   s   |  ] } t  d  | ƒ Vq d S(   i   N(   R   (   R¼   t   i(    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pys	   <genexpr>Ø  s    i   i    i   i   i   i   (   i    i   i   i   i   (   i    i   i   i   i   (   R)   t   rangeR	   R#   (   t   datat   juxtfunc(    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_juxt_generator_inputÖ  s    c          C   s+   d „  }  t  |  d d ƒ d k s' t ‚ d  S(   Nc         S   s
   |  | f S(   N(    (   RJ   RK   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR.   Þ  s    RJ   RK   (   RK   RJ   (   R
   R#   (   R.   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt	   test_flipÝ  s    	c             sœ  t  j d k s t ‚ d t  j k s* t ‚ d „  }  d „  } t  t |  | ƒ ‰  ˆ  d ƒ d k sf t ‚ ˆ  d ƒ d k s~ t ‚ ˆ  d ƒ d	 k s– t ‚ ˆ  j d
 k s« t ‚ d ˆ  j k sÀ t ‚ d ˆ  j k sÕ t ‚ d ˆ  j k sê t ‚ d „  } t  t t f | ƒ ‰  ˆ  g  ƒ d  k s t ‚ ˆ  d g ƒ d k s;t ‚ ˆ  i  ƒ d  k sSt ‚ ˆ  i d d 6ƒ d k srt ‚ ˆ  j d k s‡t ‚ d ˆ  j k sœt ‚ d ˆ  j k s±t ‚ d ˆ  j k sÆt ‚ d „  } t  t t f | ƒ ‰  ˆ  t ƒ d  k süt ‚ ˆ  t ƒ d  k st ‚ t t	 ‡  f d †  ƒ s2t ‚ t t
 ‡  f d †  ƒ sPt ‚ t  t ƒ  t ƒ  t ƒ  ƒ ‰  ˆ  j d k s€t ‚ ˆ  j t  j k s˜t ‚ d  S(   NR   sO   A wrapper around a function to catch exceptions and
    dispatch to a handler.
c         S   s   d d g j  |  ƒ S(   s   idx docstring
        i   i   (   t   index(   RJ   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   idxì  s    c         S   s   t  |  t ƒ s t ‚ d S(   s   handler docstring
        iÿÿÿÿ(   RT   t
   ValueErrorR#   (   R¨   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   handlerñ  s    i   i    i   i   iÿÿÿÿt   idx_excepting_ValueErrors   idx docstringRÎ   s   handler docstringc         S   s   |  d S(   s   getzero docstring
        i    (    (   RJ   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   getzero  s    t(   getzero_excepting_IndexError_or_KeyErrors   getzero docstringt   return_nones   Returns Nonec         S   s   |  ƒ  ‚ d S(   sH   A function that raises an instance of the exception type given.
        N(    (   RJ   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   raise_  s    c              s
   ˆ  t  ƒ S(   N(   R&   (    (   t	   excepting(    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0     R1   c              s
   ˆ  t  ƒ S(   N(   t   NotImplementedError(    (   RÕ   (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyR0     R1   RÕ   (   R   R   R#   R!   RÎ   t
   IndexErrort   KeyErrorR;   R   R&   RÖ   R‚   (   RÍ   RÏ   RÑ   RÔ   (    (   RÕ   s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   test_exceptsä  s@    				(I   R´   R¯   t   toolz.functoolzR    R   R   R   R   R   R   R   R   R	   R
   R   R   t   toolz.compatibilityR   t   operatorR   R   R   t   toolz.utilsR   t	   functoolsR   R   R   R   R   R‚   R   R"   R'   R(   R+   R2   R3   R6   R7   R<   R=   R@   RD   RI   RS   RV   RW   RZ   R\   R`   Rg   Rj   Ru   Rw   Rƒ   R†   Rˆ   RŠ   R   RŽ   R   R”   R˜   Rº   R½   R¿   RÀ   RÂ   RÅ   RÊ   RË   RÙ   (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_functoolz.pyt   <module>   sh   X				

								,															 		*	-							*		Z								