ó
hŸ']c           @   sz   d  Z  d d l Z d d l Td d l m Z d d l m Z d e f d „  ƒ  YZ d „  Z d	 „  Z	 d
 „  Z
 d „  Z d S(   s   Test that functions are reasonably behaved with None as input.

Typed Cython objects (like dict) may also be None.  Using functions from
Python's C API that expect a specific type but receive None instead can cause
problems such as throwing an uncatchable SystemError (and some systems may
segfault instead).  We obviously don't what that to happen!  As the tests
below discovered, this turned out to be a rare occurence.  The only changes
required were to use `d.copy()` instead of `PyDict_Copy(d)`, and to always
return Python objects from functions instead of int or bint (so exceptions
can propagate).

The vast majority of functions throw TypeError.  The vast majority of
functions also behave the same in `toolz` and `cytoolz`.  However, there
are a few minor exceptions.  Since passing None to functions are edge cases
that don't have well-established behavior yet (other than raising TypeError),
the tests in this file serve to verify that the behavior is at least
reasonably well-behaved and don't cause SystemErrors.

iÿÿÿÿN(   t   *(   t   raises(   t   addt   GenExceptionc           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   s   | |  _  d  S(   N(   t   exc(   t   selfR   (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyt   __init__   s    c         C   s   |  S(   N(    (   R   (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyt   __iter__   s    c         C   s   |  j  ‚ d  S(   N(   R   (   R   (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyt   __next__"   s    c         C   s   |  j  ‚ d  S(   N(   R   (   R   (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyt   next%   s    (   t   __name__t
   __module__R   R   R   R	   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR      s   			c          C   si  g  }  t  t t f d „  ƒ s$ t ‚ |  j d ƒ t  t t f d „  ƒ sO t ‚ |  j d ƒ t  t d „  ƒ s‰ t d  i  ƒ d  k s‰ t ‚ t  t d „  ƒ s¡ t ‚ t d d g d  ƒ d  k sÂ t ‚ t  t d	 „  ƒ sÚ t ‚ |  j d
 ƒ t  t d „  ƒ sÿ t ‚ t  t t f d „  ƒ st ‚ |  j d ƒ t  t d „  ƒ set d  i d d 6ƒ i d d. 6k set ‚ t  t t f d „  ƒ sƒt ‚ |  j d ƒ t  t d „  ƒ s¨t ‚ t  t t f d „  ƒ sÆt ‚ |  j d ƒ t  t d „  ƒ sët ‚ t  t d „  ƒ st ‚ t  t t f d „  ƒ s!t ‚ |  j d ƒ t  t d „  ƒ sFt ‚ t  t d „  ƒ s^t ‚ t  t t f d „  ƒ s|t ‚ |  j d ƒ t  t d „  ƒ s¡t ‚ t  t t f d „  ƒ s¿t ‚ |  j d ƒ t  t d  „  ƒ st d  i d d 6ƒ i d/ d 6k st ‚ t  t t f d! „  ƒ s%t ‚ |  j d" ƒ t  t d# „  ƒ smt	 d  i d d 6ƒ i d0 d 6k smt ‚ t  t t f d$ „  ƒ s‹t ‚ |  j d% ƒ t  t d& „  ƒ s°t ‚ t  t t f d' „  ƒ sÎt ‚ |  j d( ƒ t  t t f d) „  ƒ sùt ‚ t  t d* „  ƒ st ‚ |  j d+ ƒ t
 |  ƒ } t
 t j j ƒ } | | k set d, d- j | | ƒ ƒ ‚ d  S(1   Nc           S   s   t  d  d d ƒ S(   Ni   i   (   t   assoct   None(    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyt   <lambda>+   t    R   c           S   s   t  d  d ƒ S(   Ni   (   t   dissocR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   .   R   R   c           S   s   t  d  i  ƒ S(   N(   t   get_inR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   2   R   c           S   s   t  d  i  d t ƒS(   Nt
   no_default(   R   R   t   True(    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   5   R   i    i   c           S   s   t  d d g d  d t ƒS(   Ni    i   R   (   R   R   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   7   R   R   c           S   s   t  d  i d d 6ƒ S(   Ni   i   (   t	   keyfilterR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   :   R   c           S   s   t  t d  ƒ S(   N(   R   t   identityR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   ;   R   R   c           S   s   t  d  i d d 6ƒ S(   Ni   i   (   t   keymapR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   ?   R   i   c           S   s   t  t d  ƒ S(   N(   R   R   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   A   R   R   c           S   s
   t  d  ƒ S(   N(   t   mergeR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   D   R   c           S   s   t  d  d  ƒ S(   N(   R   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   E   R   R   c           S   s   t  d  i d d 6i d d 6ƒ S(   Ni   i   i   i   (   t
   merge_withR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   H   R   c           S   s   t  t d  ƒ S(   N(   R   R   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   I   R   c           S   s   t  t d  d  ƒ S(   N(   R   R   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   K   R   R   c           S   s$   t  i i d d 6d 6d d g d  ƒ S(   Ni   i   i   (   t	   update_inR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   N   R   c           S   s   t  i i d d 6d 6d  t ƒ S(   Ni   i   i   (   R   R   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   O   R   c           S   s   t  d  d d g t ƒ S(   Ni   i   (   R   R   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   Q   R   R   c           S   s   t  d  i d d 6ƒ S(   Ni   i   (   t	   valfilterR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   T   R   c           S   s   t  t d  ƒ S(   N(   R   R   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   U   R   R   c           S   s   t  d  i d d 6ƒ S(   Ni   i   (   t   valmapR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   Y   R   c           S   s   t  t d  ƒ S(   N(   R   R   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   [   R   R   c           S   s   t  d  i d d 6ƒ S(   Ni   i   (   t   itemmapR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   ^   R   c           S   s   t  t d  ƒ S(   N(   R   R   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   `   R   R   c           S   s   t  d  i d d 6ƒ S(   Ni   i   (   t
   itemfilterR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   c   R   c           S   s   t  t d  ƒ S(   N(   R   R   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   d   R   R   c           S   s   t  d  d d g d ƒ S(   Ni   i   (   t   assoc_inR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   g   R   c           S   s   t  i  d  d ƒ S(   Ni   (   R   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   h   R   R   s!   %s not tested for being None-safes   , (   i   (   i   (   i   (   R   t	   TypeErrort   AttributeErrort   AssertionErrort   appendR   R   R   R   R   t   sett   cytoolzt	   dicttoolzt   __all__t   join(   t   testedt   s1t   s2(    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyt   test_dicttoolz)   sf    !)))c          C   s  g  }  t  t d „  ƒ s t ‚ |  j d ƒ t d  ƒ d  k sC t ‚ t  t d „  ƒ s[ t ‚ |  j d ƒ t d  ƒ d  k s€ t ‚ t  t d „  ƒ s˜ t ‚ |  j d ƒ t  t d „  ƒ s½ t ‚ |  j d ƒ t  t d	 „  ƒ sâ t ‚ |  j d
 ƒ t d  ƒ d  k st ‚ |  j d ƒ t  t d „  ƒ s,t ‚ t  t d „  ƒ sDt ‚ |  j d ƒ t t d d  ƒd ƒ d k sut ‚ t t d d  ƒd ƒ d k s™t ‚ |  j d ƒ t  t d „  ƒ s¾t ‚ |  j d ƒ t	 d d  ƒ d  k sæt ‚ |  j d ƒ t
 d d  ƒ d  k st ‚ |  j d ƒ t d „  ƒ d  ƒ d  ƒ d k sBt ‚ |  j d ƒ t t d  ƒ d  k sjt ‚ t  t d „  ƒ s‚t ‚ |  j d ƒ t d  d „  ƒ t t d  ƒ |  j d ƒ t |  ƒ } t t j j ƒ } | | k s t d d j | | ƒ ƒ ‚ d  S(    Nc           S   s   t  d  ƒ ƒ  S(   N(   t
   complementR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   r   R   R,   c           S   s   t  d  d  ƒ ƒ  S(   N(   t   composeR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   v   R   R-   c           S   s   t  d  d  ƒ ƒ  S(   N(   t   compose_leftR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   z   R   R.   c           S   s
   t  d  ƒ S(   N(   t   curryR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   }   R   R/   c           S   s   t  d  d ƒ S(   Ni   (   t   doR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   €   R   R0   R   c           S   s
   t  d  ƒ S(   N(   t   juxtR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   †   R   c           S   s   t  t d  d  ƒ ƒ  ƒ S(   N(   t   listR1   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   ‡   R   R1   t   keyi   t   cachet   memoizec           S   s   t  d d  ƒ S(   Ni   (   t   pipeR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   Ž   R   R6   t   thread_firstt   thread_lastc         S   s
   |  | f S(   N(    (   t   at   b(    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   —   R   t   flipc           S   s
   t  d  ƒ S(   N(   t   applyR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   ›   R   R<   c         S   s   |  S(   N(    (   t   x(    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   ž   R   t   exceptss!   %s not tested for being None-safes   , (   NN(   R   R   R!   R"   R-   R   R.   R   R5   R7   R8   R;   R<   R>   R#   R$   t	   functoolzR&   R'   (   R(   R)   R*   (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyt   test_functoolzp   sL    $$'c          C   sK	  g  }  t  t d „  ƒ s t ‚ t  t d „  ƒ s6 t ‚ |  j d ƒ t  t d „  ƒ s[ t ‚ t  t d „  ƒ ss t ‚ |  j d ƒ t  t d „  ƒ s˜ t ‚ |  j d ƒ t  t d	 „  ƒ s½ t ‚ |  j d
 ƒ t  t d „  ƒ sâ t ‚ |  j d ƒ t  t d „  ƒ s.t t d  d d g ƒ ƒ d d g k s.t ‚ t  t d „  ƒ sFt ‚ |  j d ƒ t  t d „  ƒ skt ‚ |  j d ƒ t  t d „  ƒ st ‚ |  j d ƒ t  t d „  ƒ sµt ‚ t  t d „  ƒ sÍt ‚ |  j d ƒ t  t d „  ƒ sòt ‚ t  t d „  ƒ s
t ‚ |  j d ƒ t  t d „  ƒ s/t ‚ t  t d „  ƒ sGt ‚ t  t d „  ƒ s_t ‚ |  j d ƒ t  t d  „  ƒ s„t ‚ |  j d! ƒ t  t d" „  ƒ s©t ‚ |  j d# ƒ t d  ƒ t k sÎt ‚ |  j d$ ƒ t  t d% „  ƒ sót ‚ |  j d& ƒ t  t d' „  ƒ st ‚ |  j d( ƒ t  t d) „  ƒ spt t	 d  d g d g g ƒ ƒ d g d g g k spt ‚ t  t d* „  ƒ sˆt ‚ t  t d+ „  ƒ s t ‚ |  j d, ƒ t  t d- „  ƒ sÅt ‚ |  j d. ƒ t  t d/ „  ƒ sêt ‚ t  t d0 „  ƒ st ‚ |  j d1 ƒ t  t d2 „  ƒ s't ‚ t  t d3 „  ƒ s?t ‚ |  j d4 ƒ t  t d5 „  ƒ sdt ‚ t  t d6 „  ƒ s|t ‚ |  j d7 ƒ t  t d8 „  ƒ s¡t ‚ t  t d9 „  ƒ s¹t ‚ t  t d: „  ƒ sÑt ‚ |  j d; ƒ t  t d< „  ƒ söt ‚ t  t d= „  ƒ st ‚ t  t d> „  ƒ s&t ‚ |  j d? ƒ t  t d@ „  ƒ sKt ‚ t  t dA „  ƒ sct ‚ |  j dB ƒ t  t dC „  ƒ sˆt ‚ |  j dD ƒ t  t dE „  ƒ sÑt t
 d  d d dF g ƒ ƒ g  k sÑt ‚ t  t dG „  ƒ sét ‚ |  j dH ƒ t  t dI „  ƒ s5t t d  d d g ƒ ƒ d d g k s5t ‚ t  t dJ „  ƒ sMt ‚ |  j dK ƒ t  t dL „  ƒ s™t t d  d d g ƒ ƒ d d g k s™t ‚ t  t dM „  ƒ s±t ‚ |  j dN ƒ t  t dO „  ƒ sýt t d  d d g ƒ ƒ d d g k sýt ‚ t  t dP „  ƒ st ‚ |  j dQ ƒ t  t dR „  ƒ s:t ‚ t t d d d g dS d  ƒƒ d d g k smt ‚ |  j dT ƒ t  t dU „  ƒ s’t ‚ t  t dV „  ƒ sªt ‚ |  j dW ƒ t  t dX „  ƒ sÏt ‚ t  t dY „  ƒ sçt ‚ |  j dZ ƒ t  t d[ „  ƒ st ‚ t  t d\ „  ƒ s$t ‚ t  t d] „  ƒ s<t ‚ t  t d^ „  ƒ sTt ‚ |  j d_ ƒ t  t d` „  ƒ syt ‚ |  j da ƒ t  t db „  ƒ sžt ‚ t  t dc „  ƒ s¶t ‚ |  j dd ƒ t  t de „  ƒ sÛt ‚ t  t df „  ƒ sót ‚ |  j dg ƒ t |  ƒ } t t j j ƒ } | | k sG	t dh di j | | ƒ ƒ ‚ d  S(j   Nc           S   s   t  t d  d d g ƒ ƒ S(   Ni   i   (   R2   t
   accumulateR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   ©   R   c           S   s   t  t t d  ƒ ƒ S(   N(   R2   RA   R   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   ª   R   RA   c           S   s
   t  d  ƒ S(   N(   t   concatR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   ­   R   c           S   s   t  t d  g ƒ ƒ S(   N(   R2   RB   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   ®   R   RB   c           S   s   t  t d  ƒ ƒ S(   N(   R2   t   concatvR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   ±   R   RC   c           S   s   t  t d d  ƒ ƒ S(   Ni   (   R2   t   consR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   ´   R   RD   c           S   s
   t  d  ƒ S(   N(   t   countR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   ·   R   RE   c           S   s   t  t d  d d g ƒ ƒ S(   Ni   i   (   R2   t   dropR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   »   R   i   i   c           S   s   t  t d d  ƒ ƒ S(   Ni   (   R2   RF   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   ¾   R   RF   c           S   s
   t  d  ƒ S(   N(   t   firstR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   Á   R   RG   c           S   s
   t  d  ƒ S(   N(   t   frequenciesR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   Ä   R   RH   c           S   s   t  d d  ƒ S(   Ni   (   t   getR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   Ç   R   c           S   s   t  d d g d  ƒ S(   Ni   i   (   RI   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   È   R   RI   c           S   s   t  d  d d g ƒ S(   Ni   i   (   t   groupbyR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   Ë   R   c           S   s   t  t d  ƒ S(   N(   RJ   R   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   Ì   R   RJ   c           S   s   t  t d  ƒ ƒ S(   N(   R2   t
   interleaveR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   Ï   R   c           S   s   t  t d  d  g ƒ ƒ S(   N(   R2   RK   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   Ð   R   c           S   s(   t  t d d g t t ƒ g d d  ƒƒ S(   Ni   i   t   pass_exceptions(   R2   RK   R   t
   ValueErrorR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   Ò   s   RK   c           S   s   t  t d d  ƒ ƒ S(   Ni   (   R2   t	   interposeR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   Ö   R   RN   c           S   s
   t  d  ƒ S(   N(   t
   isdistinctR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   Ù   R   RO   t
   isiterablec           S   s   t  t d  d ƒ ƒ S(   Ni   (   R2   t   iterateR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   ß   R   RQ   c           S   s
   t  d  ƒ S(   N(   t   lastR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   â   R   RR   c           S   s   t  t d  d g d g g ƒ ƒ S(   Ni   i   (   R2   t   mapcatR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   æ   R   c           S   s   t  t t d  d g g ƒ ƒ S(   Ni   (   R2   RS   R   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   è   R   c           S   s   t  t t d  ƒ ƒ S(   N(   R2   RS   R   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   é   R   RS   c           S   s   t  t d  d d g ƒ ƒ S(   Ni   i   (   R2   t   merge_sortedR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   ì   R   RT   c           S   s   t  d  d d g ƒ S(   Ni   i   (   t   nthR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   ï   R   c           S   s   t  d d  ƒ S(   Ni    (   RU   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   ð   R   RU   c           S   s   t  d  d d d g ƒ S(   Ni   i   i   (   t	   partitionR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   ó   R   c           S   s   t  d d  ƒ S(   Ni   (   RV   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   ô   R   RV   c           S   s   t  t d  d d d g ƒ ƒ S(   Ni   i   i   (   R2   t   partition_allR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   ÷   R   c           S   s   t  t d d  ƒ ƒ S(   Ni   (   R2   RW   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   ø   R   RW   c           S   s   t  t d  d g d g g ƒ ƒ S(   Ni   i   (   R2   t   pluckR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   û   R   c           S   s   t  t d d  d g g ƒ ƒ S(   Ni    i   (   R2   RX   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   ü   R   c           S   s   t  t d d  ƒ ƒ S(   Ni    (   R2   RX   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   ý   R   RX   c           S   s   t  d  t d d d g d ƒ S(   Ni   i   i   i    (   t   reducebyR   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR      R   c           S   s   t  t d  d d d g d ƒ S(   Ni   i   i   i    (   RY   R   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR     R   c           S   s   t  t t d  d ƒ S(   Ni    (   RY   R   R   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR     R   RY   c           S   s   t  t d  d d g ƒ ƒ S(   Ni   i   (   R2   t   removeR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR     R   c           S   s   t  t t d  ƒ ƒ S(   N(   R2   RZ   R   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR     R   RZ   c           S   s
   t  d  ƒ S(   N(   t   secondR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   	  R   R[   c           S   s   t  t d  d d d g ƒ ƒ S(   Ni   i   i   (   R2   t   sliding_windowR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR     R   i   c           S   s   t  t d d  ƒ ƒ S(   Ni   (   R2   R\   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR     R   R\   c           S   s%   t  t d  d d g ƒ ƒ d d g k S(   Ni   i   (   R2   t   takeR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR     R   c           S   s   t  t d d  ƒ ƒ S(   Ni   (   R2   R]   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR     R   R]   c           S   s%   t  t d  d d g ƒ ƒ d d g k S(   Ni   i   (   R2   t   tailR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR     R   c           S   s   t  t d d  ƒ ƒ S(   Ni   (   R2   R^   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR     R   R^   c           S   s   t  t d  d d g ƒ ƒ S(   Ni   i   (   R2   t   take_nthR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR     R   c           S   s   t  t d d  ƒ ƒ S(   Ni   (   R2   R_   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   !  R   R_   c           S   s   t  t d  ƒ ƒ S(   N(   R2   t   uniqueR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   $  R   R3   R`   c           S   s   t  t d  t d ƒ S(   Ni   i   i   (   i   i   i   (   R'   RG   R   R[   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   (  R   c           S   s   t  t d t d  ƒ S(   Ni   i   i   (   i   i   i   (   R'   RG   R[   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   )  R   R'   c           S   s   t  d  d d d g ƒ S(   Ni   i   i   (   t   topkR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   ,  R   c           S   s   t  d d  ƒ S(   Ni   (   Ra   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   -  R   Ra   c           S   s   t  t d  d d d g ƒ ƒ S(   Ni   i   i   (   R2   t   diffR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   0  R   c           S   s   t  t d  ƒ ƒ S(   N(   R2   Rb   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   1  R   c           S   s   t  t d  g ƒ ƒ S(   N(   R2   Rb   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   2  R   c           S   s   t  t d  d  g ƒ ƒ S(   N(   R2   Rb   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   3  R   Rb   c           S   s
   t  d  ƒ S(   N(   t   peekR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   6  R   Rc   c           S   s   t  d  d d d g ƒ S(   Ni   i   i   (   t   peeknR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   9  R   c           S   s   t  d d  ƒ S(   Ni   (   Rd   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   :  R   Rd   c           S   s   t  t d  d g ƒ ƒ S(   Ni   (   R2   t   random_sampleR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   =  R   c           S   s   t  t d d  ƒ ƒ S(   Ngš™™™™™¹?(   R2   Re   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   >  R   Re   s!   %s not tested for being None-safes   , (   R   R   R!   R"   R2   RF   R   RP   t   FalseRS   R\   R]   R^   R_   R`   R#   R$   t	   itertoolzR&   R'   (   R(   R)   R*   (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyt   test_itertoolz§   sà    -9*---3c          C   s  g  }  t  t d „  ƒ sG t d  d d g ƒ i d d 6d d 6k sG t ‚ t  t d „  ƒ s_ t ‚ |  j d ƒ t  t d „  ƒ s« t t d  d d g ƒ ƒ d d g k s« t ‚ t  t d „  ƒ sÃ t ‚ |  j d ƒ t |  ƒ } t t	 j
 j ƒ } | | k st d	 d
 j | | ƒ ƒ ‚ d  S(   Nc           S   s   t  d  d d g ƒ S(   Ni   i   (   t   countbyR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   I  R   i   i   c           S   s   t  t d  ƒ S(   N(   Ri   R   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   K  R   Ri   c           S   s   t  t d  d d g ƒ ƒ S(   Ni   i   (   R2   t   partitionbyR   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   O  R   c           S   s   t  t t d  ƒ ƒ S(   N(   R2   Rj   R   R   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyR   Q  R   Rj   s!   %s not tested for being None-safes   , (   i   (   i   (   i   (   i   (   R   R   Ri   R   R!   R"   R2   Rj   R#   R$   t   recipesR&   R'   (   R(   R)   R*   (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyt   test_recipesF  s    /-(   t   __doc__R$   t   cytoolz.utilsR   t   operatorR   t   objectR   R+   R@   Rh   Rl   (    (    (    s;   lib/python2.7/site-packages/cytoolz/tests/test_none_safe.pyt   <module>   s   
	G	7	Ÿ