ó
Ë£,]c           @   s+  d  d l  m 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 d  d l m Z d  d l m Z d  d l m Z d „  Z d „  Z d	 e f d
 „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d „  Z d S(   iÿÿÿÿ(   t   defaultdictN(   t   merget
   merge_witht   valmapt   keymapt	   update_int   assoct   dissoct	   keyfiltert	   valfiltert   itemmapt
   itemfiltert   assoc_in(   t   identity(   t   raises(   t   PY3c         C   s   |  d S(   Ni   (    (   t   x(    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyt   inc   s    c         C   s   |  d d k S(   Ni   i    (    (   t   i(    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyt   iseven   s    t   TestDictc           B   s¡   e  Z d  Z e Z i  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 „  Z RS(   sä   Test typical usage: dict inputs, no factory keyword.

    Class attributes:
        D: callable that inputs a dict and creates or returns a MutableMapping
        kw: kwargs dict to specify "factory" keyword (if applicable)
    c         C   sq   |  j  |  j } } t | i d d 6d d 6ƒ | i d d 6ƒ |  | i d d 6d d 6d d 6ƒ k sm t ‚ d  S(   Ni   i   i   i   (   t   Dt   kwR   t   AssertionError(   t   selfR   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyt
   test_merge   s    c         C   st   |  j  |  j } } t | i d d 6d d 6ƒ | i d d 6ƒ g |  | i d d 6d d 6d d 6ƒ k sp t ‚ d  S(   Ni   i   i   i   (   R   R   R   R   (   R   R   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyt   test_merge_iterable_arg!   s    c         C   so  |  j  |  j } } | i d d 6d d 6ƒ | i d d 6d d 6ƒ f } t t | | Ž | i d d 6d d 6ƒ k sy t ‚ t t | | Ž | i d d 6d	 d 6ƒ k s« t ‚ | i d d 6d d 6d d 6ƒ | i d d 6d d 6ƒ f } t t | | Ž | i d d 6d d 6d d 6ƒ k st ‚ t t | | Ž | i d
 d 6d d 6d d 6ƒ k sXt ‚ t t ƒ skt ‚ d  S(   Ni   i   i
   i   i   i   i   (   i   i
   (   i   i   (   i   i
   (   i   i   (   i   (   R   R   R   t   sumR   t   tuple(   R   R   R   t   dicts(    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyt   test_merge_with%   s    422;99c         C   sç   |  j  |  j } } | i d d 6d d 6ƒ | i d d 6d d 6ƒ f } t t | | Ž | i d d 6d d 6ƒ k sy t ‚ t t | |  | i d d 6d d 6ƒ k s« t ‚ t t t | ƒ |  | i d d 6d d 6ƒ k sã t ‚ d  S(   Ni   i   i
   i   i   i   (   R   R   R   R   R   t   iter(   R   R   R   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyt   test_merge_with_iterable_arg1   s
    422c         C   s]   |  j  |  j } } t t | i d d 6d d 6ƒ |  | i d d 6d d 6ƒ k sY t ‚ d  S(   Ni   i   i   (   R   R   R   R   R   (   R   R   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyt   test_valmap8   s    c         C   s]   |  j  |  j } } t t | i d d 6d d 6ƒ |  | i d d 6d d 6ƒ k sY t ‚ d  S(   Ni   i   i   (   R   R   R   R   R   (   R   R   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyt   test_keymap<   s    c         C   s]   |  j  |  j } } t t | i d d 6d d 6ƒ |  | i d d 6d d 6ƒ k sY t ‚ d  S(   Ni   i   i   (   R   R   R
   t   reversedR   (   R   R   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyt   test_itemmap@   s    c         C   sV   |  j  |  j } } t t | i d d 6d d 6ƒ |  | i d d 6ƒ k sR t ‚ d  S(   Ni   i   i   (   R   R   R	   R   R   (   R   R   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyt   test_valfilterD   s    c         C   sV   |  j  |  j } } t t | i d d 6d d 6ƒ |  | i d d 6ƒ k sR t ‚ d  S(   Ni   i   i   (   R   R   R   R   R   (   R   R   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyt   test_keyfilterH   s    c         C   s›   |  j  |  j } } t d „  | i d d 6d d 6ƒ |  | i d d 6ƒ k sU t ‚ t d „  | i d d 6d d 6ƒ |  | i d d 6ƒ k s— t ‚ d  S(   Nc         S   s   t  |  d ƒ S(   Ni    (   R   (   t   item(    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyt   <lambda>N   t    i   i   i   c         S   s   t  |  d ƒ S(   Ni   (   R   (   R'   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyR(   O   R)   (   R   R   R   R   (   R   R   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyt   test_itemfilterL   s    Bc         C   s  |  j  |  j } } t | i  ƒ d d |  | i d d 6ƒ k sG t ‚ t | i d d 6ƒ d d |  | i d d 6ƒ k s‚ t ‚ t | i d d 6ƒ d d |  | i d d 6d d 6ƒ k sÄ t ‚ | i d d 6ƒ } | } t | d d |  | | k st ‚ d  S(   Nt   ai   i   t   bR   i   (   R   R   R   R   (   R   R   R   t   dt   oldd(    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyt
   test_assocQ   s    4;Bc         C   s   |  j  |  j } } t | i d d 6ƒ d |  | i  ƒ k sD t ‚ t | i d d 6d d 6ƒ d |  | i d d 6ƒ k sƒ t ‚ t | i d d 6d d 6ƒ d |  | i d d 6ƒ k sÂ t ‚ t | i d d 6d d 6ƒ d d |  | i  ƒ k sý t ‚ t | i d d 6ƒ d |  t t | i d d 6ƒ d |  d |  k sMt ‚ | i d d 6ƒ } | } t | d |  } | | k sŠt ‚ | | k	 sœt ‚ d  S(   Ni   R+   i   R,   R   (   R   R   R   R   (   R   R   R   R-   R.   t   d2(    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyt   test_dissoc]   s    1??;Pc         C   sL  |  j  |  j } } t | i d d 6ƒ d g d |  | i d d 6ƒ k sQ t ‚ t | i | i d d 6ƒ d 6ƒ d d g d |  | i | i d d 6ƒ d 6ƒ k s¬ t ‚ t | i  ƒ d d g d |  | i | i d d 6ƒ d 6ƒ k só t ‚ | i d d 6ƒ } | } t | d g d |  } | | k s6t ‚ | | k	 sHt ‚ d  S(   Ni   R+   i   R,   R   (   R   R   R   R   (   R   R   R   R-   R.   R0   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyt   test_assoc_inl   s    >2)Gc      	   C   s  |  j  |  j } } t | i d d 6ƒ d g t |  | i d d 6ƒ k sQ t ‚ t | i d d 6d d 6ƒ d g t |  | i d d 6d d 6ƒ k s t ‚ t | i d d 6| i d d 6ƒ d 6ƒ d d g t |  | i d d 6| i d d 6ƒ d 6ƒ k st ‚ t | i  ƒ d g t d  |  | i d	 d 6ƒ k s@t ‚ t | i  ƒ d g t d |  | i d d 6ƒ k szt ‚ t | i  ƒ d g d
 „  d d | | i d d 6ƒ k sºt ‚ t | i  ƒ d d g t d d | | i | i d d 6ƒ d 6ƒ k st ‚ t | i  ƒ d d g t d d | | i | i d d 6ƒ d 6ƒ k sTt ‚ t | i d d 6d d 6ƒ d d d g t d |  | i d d 6d d 6| i | i d d 6ƒ d 6ƒ d 6ƒ k sÊt ‚ | i d d 6ƒ } | } t | d g t |  | | k st ‚ d  S(   Ni    R+   i   R,   t   1t   tt   vt   zt   Nonec         S   s   |  d S(   Nt   ar(    (   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyR(   ƒ   R)   t   defaultt   bariÿÿÿÿid   t   100t   fooi2   R-   i   t   20R   (   R   R   R   R   R   t   strR7   (   R   R   R   R-   R.   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyt   test_update_inz   s     >L90::@MM2Dc            s;  |  j  |  j ‰  } t t t ˆ  i d d 6ƒ ƒ ˆ  i d d 6ƒ ƒ i d d 6d d 6k s_ t ‚ t t t ˆ  i d d 6ƒ ƒ ˆ  i d d 6ƒ d d „  ƒt t ˆ  i d d 6d d 6ƒ ƒ k sÃ t ‚ t t t ˆ  i d d 6ƒ ƒ ˆ  i d d 6ƒ d d „  ƒi d d 6d d 6k st ‚ t t ‡  f d †  ƒ s7t ‚ d  S(   Ni   i   i   t   factoryc           S   s
   t  t ƒ S(   N(   R    t   int(    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyR(   •   R)   c           S   s
   t  t ƒ S(   N(   R    RA   (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyR(   ˜   R)   c              s-   t  ˆ  i d d 6ƒ ˆ  i d d 6ƒ d t ƒS(   Ni   i   i   t   factoryy(   R   t   dict(    (   R   (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyR(   ™   R)   (   R   R   R   R    RA   R   R   t	   TypeError(   R   R   (    (   R   s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyt   test_factory‘   s    L/	,/'(   t   __name__t
   __module__t   __doc__RC   R   R   R   R   R   R    R!   R"   R$   R%   R&   R*   R/   R1   R2   R?   RE   (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyR      s$   														R    c           B   s   e  Z d  „  Z RS(   c         C   s7   t  t |  ƒ j | ƒ o6 t | t ƒ o6 |  j | j k S(   N(   t   superR    t   __eq__t
   isinstancet   _defaultdictt   default_factory(   R   t   other(    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyRJ      s    (   RF   RG   RJ   (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyR    œ   s   t   TestDefaultDictc           B   s-   e  Z d  Z e d „  ƒ Z i d „  d 6Z RS(   sÕ   Test defaultdict as input and factory

    Class attributes:
        D: callable that inputs a dict and creates or returns a MutableMapping
        kw: kwargs dict to specify "factory" keyword (if applicable)
    c         C   s   t  t |  ƒ S(   N(   R    RA   (   t   dict_(    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyR   ª   s    c           C   s
   t  t ƒ S(   N(   R    RA   (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyR(   ®   R)   R@   (   RF   RG   RH   t   staticmethodR   R   (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyRO   £   s   t   CustomMappingc           B   s§   e  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 e s¥ d „  Z d „  Z d „  Z n  RS(   sC   Define methods of the MutableMapping protocol required by dicttoolzc         O   s   t  | | Ž  |  _ d  S(   N(   RC   t   _d(   R   t   argst   kwargs(    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyt   __init__³   s    c         C   s   |  j  | S(   N(   RS   (   R   t   key(    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyt   __getitem__¶   s    c         C   s   | |  j  | <d  S(   N(   RS   (   R   RW   t   val(    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyt   __setitem__¹   s    c         C   s   |  j  | =d  S(   N(   RS   (   R   RW   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyt   __delitem__¼   s    c         C   s   t  |  j ƒ S(   N(   R   RS   (   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyt   __iter__¿   s    c         C   s   t  |  j ƒ S(   N(   t   lenRS   (   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyt   __len__Â   s    c         C   s   | |  j  k S(   N(   RS   (   R   RW   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyt   __contains__Å   s    c         C   s   t  | t ƒ o |  j | j k S(   N(   RK   RR   RS   (   R   RN   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyRJ   È   s    c         C   s    t  | t ƒ p |  j | j k S(   N(   RK   RR   RS   (   R   RN   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyt   __ne__Ë   s    c         C   s   |  j  j ƒ  S(   N(   RS   t   keys(   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyRa   Î   s    c         C   s   |  j  j ƒ  S(   N(   RS   t   values(   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyRb   Ñ   s    c         C   s   |  j  j ƒ  S(   N(   RS   t   items(   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyRc   Ô   s    c         O   s   |  j  j | | Ž  d  S(   N(   RS   t   update(   R   RT   RU   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyRd   ×   s    c         C   s   |  j  j ƒ  S(   N(   RS   t   iterkeys(   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyRe   Ü   s    c         C   s   |  j  j ƒ  S(   N(   RS   t
   itervalues(   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyRf   ß   s    c         C   s   |  j  j ƒ  S(   N(   RS   t	   iteritems(   R   (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyRg   â   s    (   RF   RG   RH   RV   RX   RZ   R[   R\   R^   R_   RJ   R`   Ra   Rb   Rc   Rd   R   Re   Rf   Rg   (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyRR   ±   s$   															t   TestCustomMappingc           B   s$   e  Z d  Z e Z i d „  d 6Z RS(   s×   Test CustomMapping as input and factory

    Class attributes:
        D: callable that inputs a dict and creates or returns a MutableMapping
        kw: kwargs dict to specify "factory" keyword (if applicable)
    c           C   s   t  ƒ  S(   N(   RR   (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyR(   þ   R)   R@   (   RF   RG   RH   RR   R   R   (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyRh   ö   s   c           C   sg   t  t t j ƒ t j k s! t ‚ t t t j ƒ t j k sB t ‚ t t t j ƒ t j k sc t ‚ d  S(   N(   R   R   t   ost   environR   R   R
   (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyt   test_environ  s    !!(   t   collectionsR    RL   Ri   t   toolz.dicttoolzR   R   R   R   R   R   R   R   R	   R
   R   R   t   toolz.functoolzR   t   toolz.utilsR   t   toolz.compatibilityR   R   R   t   objectR   RO   RR   Rh   Rk   (    (    (    s9   lib/python2.7/site-packages/toolz/tests/test_dicttoolz.pyt   <module>   s   R		‰E