ó
¦–Õ\c           @   s

  d  d l  Z  d  d l Z d  d l Z d  d l Z d  d l j j Z	 d  d l
 Z
 d  d l Z d  d l j Z d  d l m Z m Z m Z m Z d d d d d d d	 d
 d d d d g Z e
 j d e ƒ d „  ƒ Z d „  Z d „  Z d „  Z d „  Z d „  Z e
 j j d d „  d „  d „  d „  e
 j d „  d e
 j j d d ƒ ƒg ƒ e
 j j d e  e! g ƒ d  „  ƒ ƒ Z" d! „  Z# e
 j j d" d# d$ g ƒ d% „  ƒ Z$ e
 j j d d& „  d' „  d( „  d) „  d* „  d+ „  d, „  g ƒ d- „  ƒ Z% d. „  Z& d/ „  Z' d0 „  Z( d1 „  Z) d2 „  Z* d3 „  Z+ d4 „  Z, d5 „  Z- d6 „  Z. e
 j j d7 e  e! g ƒ d8 „  ƒ Z/ e
 j j d9 d: d; g ƒ d< „  ƒ Z0 d= „  Z1 e
 j j d d> „  d? „  d@ „  dA „  dB „  e
 j dC „  d e
 j j dD ƒ ƒg ƒ dE „  ƒ Z2 dF „  Z3 dG „  Z4 dH „  Z5 dI „  Z6 e
 j j dJ i i d dK 6dL 6i d dM 6d dL 6dK 6i d dL 6d d g dK 6i e j7 dL 6d e j8 e j9 e j: g dK 6d d d d d d d	 d
 d d d g d
 i d dL 6d dK 6d dN 6d d g dM 6i i d dK 6dL 6i d dM 6d dL 6dK 6g ƒ e
 j j d: e! d g ƒ e
 j j d dO „  dP „  dQ „  dR „  dS „  g ƒ dT „  ƒ ƒ ƒ Z< e
 j j dJ i d dL 6d dK 6d dN 6d g d d d d d d d	 d
 d d g
 d d g ƒ e
 j j d: e! d g ƒ e
 j j d dU „  dV „  dW „  g ƒ dX „  ƒ ƒ ƒ Z= dY „  Z> dZ „  Z? d[ „  Z@ e
 j j d d\ „  d] „  d^ „  d_ „  d` „  g ƒ da „  ƒ ZA e
 j j d db „  dc „  dd „  g ƒ de „  ƒ ZB e
 j j d df „  dg „  dh „  di „  e
 j dj „  d e
 j j d dk ƒ ƒg ƒ e
 j j dl dm „  dn „  do „  g ƒ dp „  ƒ ƒ ZC dq „  ZD dr „  ZE e
 j j ds dt du dv g ƒ e
 j j d: dw dx g ƒ e
 j j d; d dt dx dv g ƒ dy „  ƒ ƒ ƒ ZF dz „  ZG d{ „  ZH d| „  ZI d} „  ZJ e
 j j d~ dK dN dK dN g g ƒ e
 j j d dM dM dL g g ƒ e
 j j d€ d d‚ dƒ g ƒ d„ „  ƒ ƒ ƒ ZK e
 j j d€ d d‚ g ƒ d… „  ƒ ZL d† „  ZM d‡ „  ZN dˆ „  ZO d‰ „  ZP dŠ „  ZQ e
 j j d‹ dM dM g dM dL g dL g g ƒ dŒ „  ƒ ZR e
 j j d d‚ dƒ d d
 d d d d d	 d d d d d g ƒ dŽ „  ƒ ZS e
 j j d d dM g dM d g d g d g ƒ e
 j j d‘ e jT e jU d’ „  g ƒ d“ „  ƒ ƒ ZV e jW d d” „  d• „  d– „  ƒ ZX e jW d d— „  d˜ „  ƒ ZY e
 j j d™ i d dL 6i eX dL 6e! f i d dL 6i eY dL 6e  f d d g eX eY g e! f i d d g dL 6i eX eY g dL 6e! f g ƒ dš „  ƒ ZZ e
 j j d› d eX f d g eX g f d d g eX eY g f g ƒ dœ „  ƒ Z[ d „  Z\ dž „  Z] dŸ „  Z^ d  „  Z_ e
 j j d€ d¡ „  d¢ „  d£ „  d¤ „  d¥ „  d¦ „  g ƒ d§ „  ƒ Z` d¨ „  Za e
 j jb e d© k  d dª ƒe
 j j d« d¬ dt dw d­ g ƒ d® „  ƒ ƒ Zc d¯ „  Zd d S(°   iÿÿÿÿN(   t	   assert_eqt   assert_dask_grapht   assert_max_depst   PANDAS_VERSIONt   sumt   meant   mint   maxt   countt   sizet   stdt   vart   nuniquet   firstt   lastt   prodt   paramsc         C   s   |  j  S(   s+   
    Aggregations supported for groups
    (   t   param(   t   request(    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   agg_func   s    c          C   s4  t  j i d d d d d d d d d	 g	 d
 6t d ƒ d 6ƒ }  t j |  d ƒ } |  j d ƒ } | j d ƒ } t | t j j ƒ s‰ t ‚ t | j	 t  j
 j j ƒ sª t ‚ t | j t j ƒ sÅ t ‚ t | j | j ƒ |  j d ƒ d
 } | j d ƒ d
 } t | t j j ƒ st ‚ t | j	 t  j
 j j ƒ s:t ‚ t | j t j ƒ sUt ‚ t | j | j ƒ |  j d ƒ d
 g } | j d ƒ d
 g } t | t j j ƒ s¯t ‚ t | j	 t  j
 j j ƒ sÐt ‚ t | j t j ƒ sët ‚ t | j | j ƒ |  j |  j ƒ d
 } | j | j ƒ d
 } t | t j j ƒ sEt ‚ t | j	 t  j
 j j ƒ sft ‚ t | j t j ƒ st ‚ t | j | j ƒ |  j |  j ƒ d
 g } | j | j ƒ d
 g } t | t j j ƒ sát ‚ t | j	 t  j
 j j ƒ st ‚ t | j t j ƒ st ‚ t | j | j ƒ d  S(   Ni   i   i   i   i   i   i   i	   i
   t   xt
   abcbabbcdat   y(   t   pdt	   DataFramet   listt   ddt   from_pandast   groupbyt
   isinstancet   DataFrameGroupByt   AssertionErrort   _metat   coret   objR    t   SeriesGroupByt   SeriesR   (   t   pdft   ddft   gpt   dp(    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   groupby_internal_repr   sB    +!!!!!c          C   s1  t  j i d d d d d d d d d	 g	 d
 6t d ƒ d 6ƒ }  t j |  d ƒ } t j t ƒ  | j d ƒ Wd  QXt j t ƒ  | j d
 d g ƒ Wd  QX| j d ƒ } d } t j t ƒ  } | d Wd  QX| t	 | j
 ƒ k sì t ‚ t j t ƒ  } | d
 d g Wd  QX| t	 | j
 ƒ k s-t ‚ d  S(   Ni   i   i   i   i   i   i   i	   i
   R   R   R   t   As   Column not found: (   R   R   R   R   R   t   pytestt   raisest   KeyErrorR   t   strt   valueR   (   R%   R&   R(   t   msgt   err(    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   groupby_errorH   s    +c          C   s  t  j i d d g d d 6t j j d ƒ d 6t j j d ƒ d 6ƒ }  t j |  d ƒ } t | j d ƒ j	 ƒ  j
 ƒ  |  j ƒ  j d ƒ j
 ƒ  ƒ t | j | d ƒ j	 ƒ  j
 ƒ  |  j ƒ  j |  d ƒ j
 ƒ  ƒ t | j | d d ƒ j	 ƒ  j
 ƒ  |  j ƒ  j |  d d ƒ j
 ƒ  ƒ d  S(	   Ni   i   i
   R*   i   t   Bt   Ci   (   R   R   t   npt   randomt   randnR   R   R    R   t   _headR   t   head(   R%   R&   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   groupby_internal_head_   s     #c             sd  t  j i d d d d d d d d d	 g	 d
 6d d d d d d d d d g	 d 6d d d d d d d d	 d	 d	 g	 ƒ}  t j |  d d ƒ‰  t j t ‡  f d †  ƒ t j t ‡  f d †  ƒ d t ˆ  j	 d
 ƒ ƒ k sÜ t
 ‚ d „  } t j ƒ  m t j d ƒ ˆ  j	 d
 ƒ j | ƒ j j d ƒ s)t
 ‚ t |  j	 d
 ƒ j | ƒ ˆ  j	 d
 ƒ j | ƒ ƒ Wd  QXd  S(   Ni   i   i   i   i   i   i   i   i	   t   ai    t   bt   indext   npartitionsc              s   ˆ  j  d ƒ S(   Nt   does_not_exist(   R   (    (   R&   (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   <lambda>u   t    c              s   ˆ  j  d ƒ j S(   NR;   (   R   R?   (    (   R&   (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   v   RA   c         S   s    |  j  d |  j |  j j ƒ  ƒ S(   NR<   (   t   assignR<   R   (   t   df(    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   funcy   s    t   ignoreRD   (   R   R   R   R   R+   R,   R-   t   AttributeErrort   dirR   R   t   warningst   catch_warningst   simplefiltert   applyt   _namet
   startswithR    (   RC   RD   (    (   R&   s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_full_groupbyo   s    +%$!	*c    	         s  t  j i d d d d d d d d d	 g	 d
 6d d d d d d d d d g	 d 6d d d d d d d d	 d	 d	 g	 ƒ}  t j |  d d ƒ} d d „ } |  j j ƒ  ‰  |  j j ƒ  ‰ | j j ƒ  } | j j ƒ  } t j	 ‡  f d †  ƒ ƒ  } t j	 ‡ f d †  ƒ ƒ  } |  j
 d
 ƒ j | ˆ  ƒ } t j ƒ  ’t j d ƒ t |  j
 d
 ƒ j | ˆ  d ˆ ƒ| j
 d
 ƒ j | ˆ  d | ƒƒ t |  j
 d
 ƒ j | ˆ  ƒ | j
 d
 ƒ j | ˆ  ƒ ƒ t |  j
 d
 ƒ j | ˆ  d ˆ ƒ| j
 d
 ƒ j | ˆ  d ˆ ƒƒ t |  j
 d
 ƒ j | ˆ  ƒ | j
 d
 ƒ j | | ƒ d t ƒt |  j
 d
 ƒ j | ˆ  ƒ | j
 d
 ƒ j | | d | ƒƒ t |  j
 d
 ƒ j | ˆ  d ˆ ƒ| j
 d
 ƒ j | ˆ  d | d | ƒƒ Wd  QXt j t ƒ & } | j
 d
 ƒ j | ˆ  d | ƒWd  QXd t | j ƒ k r#d t | j ƒ k s)t ‚ t j t ƒ & } | j
 d
 ƒ j | | d ˆ ƒWd  QXd t | j ƒ k rŠd t | j ƒ k st ‚ t |  j
 d
 ƒ j | ˆ  ƒ | j
 d
 ƒ j | | d | ƒƒ t |  j
 d
 ƒ j | ˆ  d ˆ ƒ| j
 d
 ƒ j | ˆ  d | d | ƒƒ d  S(   Ni   i   i   i   i   i   i   i   i	   R;   i    R<   R=   R>   c         S   s(   |  j  d |  j |  j j ƒ  | | ƒ S(   NR<   (   RB   R<   R   (   RC   t   ct   d(    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyRD   Š   s    c              s   ˆ  S(   N(    (    (   RO   (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ’   RA   c              s   ˆ  S(   N(    (    (   RP   (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   “   RA   RE   RP   t   check_dtypet   metas   dask.delayed(   R   R   R   R   R;   R   R<   R   t   daskt   delayedR   RK   RH   RI   RJ   R    t   FalseR+   R,   t
   ValueErrorR.   R/   R   (	   RC   R&   RD   t   c_scalart   d_scalart	   c_delayedt	   d_delayedRR   t   exc(    (   RO   RP   s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt    test_full_groupby_apply_multiarg„   sH    +%$!"!"""!.%0%0"!t   grouperc         C   s   d g S(   NR;   (    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ¼   RA   c         C   s
   d d g S(   NR;   R<   (    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ½   RA   c         C   s   |  d S(   NR;   (    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ¾   RA   c         C   s   |  d |  d g S(   NR;   R<   (    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ¿   RA   c         C   s   |  d d k |  d d k g S(   NR;   i   R<   i   (    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   À   RA   t   markst   reasons   not yet supportedt   reversec         C   s7  d d d d d d d d d g	 } | r= | d  d  d … } n  t  j i d d	 d d
 d d d d d g	 d 6d d	 d d
 d d d d d g	 d 6d
 d d d d	 d d d d g	 d 6d | ƒ} t j | d d ƒ} d „  } t j ƒ  O t j d ƒ t | j |  | ƒ ƒ j	 | ƒ | j |  | ƒ ƒ j	 | ƒ ƒ Wd  QXd  S(   Ni    i   i   i   i   i   i	   iÿÿÿÿi   i   i   R;   RP   R<   R=   R>   c         S   s    |  j  d |  j |  j j ƒ  ƒ S(   NR<   (   RB   R<   R   (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyRD   Î   s    RE   (
   R   R   R   R   RH   RI   RJ   R    R   RK   (   R]   R`   R=   RC   R&   RD   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_full_groupby_multilevel»   s    
!+"%		c          C   s   t  j i t d ƒ d 6t d ƒ d 6ƒ }  t j |  d d ƒ} | j d ƒ } d t | ƒ k se t ‚ d t | ƒ k s} t ‚ d  S(   Ni
   R;   s   b c d eR>   i   (   R   R   t   rangeR   R   R   RG   R   (   RC   R&   t   g(    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_groupby_dirÙ   s
    )t	   schedulert   synct   threadsc         C   sK  t  j i d d d d d d d d d	 g	 d
 6d d d d d d d d d g	 d 6d d d d d d d d	 d	 d	 g	 ƒ} t j | d d ƒ} | j d
 ƒ } | j d
 ƒ } t | j d
 ƒ j j ƒ  | j | j	 ƒ j j ƒ  ƒ d „  } d „  } d „  } t
 j j d |  ƒ :t j d  ƒ $t | j d
 ƒ j | ƒ | j d
 ƒ j | ƒ ƒ t | j d
 ƒ j | ƒ j d
 ƒ | j d
 ƒ j | ƒ j d
 ƒ ƒ t | j | j	 ƒ j | ƒ | j | j	 ƒ j | ƒ ƒ t | j j d
 ƒ j | ƒ | j j d
 ƒ j | ƒ ƒ t | j j | j	 ƒ j | ƒ | j j | j	 ƒ j | ƒ ƒ Wd  QXWd  QXd  S(   Ni   i   i   i   i   i   i   i   i	   R;   i    R<   R=   R>   c         S   s    |  j  d |  j |  j j ƒ  ƒ S(   NR<   (   RB   R<   R   (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyRD   ì   s    c         S   s   |  d g |  d g j  ƒ  S(   NR<   (   R   (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   func2ï   s    c         S   s
   |  j  ƒ  S(   N(   R   (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   func3ò   s    Re   (   R   R   R   R   t	   set_indexR    R   R<   R   R=   RS   t   configt   setR+   t   warnst   NoneRK   (   Re   R%   R&   t   ddf2t   pdf2RD   Rh   Ri   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_groupby_on_indexá   s,    +%$4			!"c         C   s   |  j  d ƒ d S(   NR;   R<   (   R   (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@     RA   c         C   s   |  j  d d g ƒ S(   NR;   R<   (   R   (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   	  RA   c         C   s   |  j  d d g ƒ d S(   NR;   R<   RO   (   R   (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   
  RA   c         C   s   |  j  |  d ƒ d d g S(   NR;   R<   RO   (   R   (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@     RA   c         C   s   |  j  d ƒ d d g S(   NR;   R<   RO   (   R   (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@     RA   c         C   s   |  j  d ƒ d g S(   NR;   R<   (   R   (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@     RA   c         C   s   |  j  d d d g ƒ S(   NR;   R<   RO   (   R   (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@     RA   c         C   sF  | d k r d  St  j i d d d d d d g d 6d d d d d d g d 6d d d d d d g d 6d d d d d d g d	 6ƒ } t j | d ƒ } |  | ƒ } |  | ƒ } t | | ƒ } t | | ƒ } t | t j j ƒ sæ t ‚ t | t  j	 j j
 ƒ st ‚ | d
 k r/t | ƒ  | ƒ  j t ƒ ƒ n t | ƒ  | ƒ  ƒ d  S(   NR   i   i   i   R;   i   R<   RO   RP   R   (   R   R   R   R   t   getattrR   R   t   _GroupByR   R!   t   GroupByR    t   astypet   float(   R]   R   RC   R&   t
   dask_groupt   pandas_groupt   dask_aggt
   pandas_agg(    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_groupby_multilevel_getitem  s     
"c          C   s\  t  j i d d d d d d g d 6d d d d d d g d 6d d d d d d g d 6d d d d d d g d 6ƒ }  t j |  d ƒ } |  j d g ƒ j ƒ  } | j d g ƒ j ƒ  } t | | ƒ |  j d d g ƒ j ƒ  } | j d d g ƒ j ƒ  } t | | ƒ |  j |  d |  d g ƒ j ƒ  } | j | d | d g ƒ j ƒ  } t | | ƒ d  S(	   Ni   i   i   R;   i   R<   RO   RP   (   R   R   R   R   R   R   R    (   RC   R&   t   solt   res(    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_groupby_multilevel_agg)  s    "##c          C   sç  i t  j i d d d g d 6d d d g d 6d d	 d d
 g ƒd 6t  j i d d d g d 6d
 d
 d g d 6d d d d g ƒd 6t  j i d d
 d g d 6d d d
 g d 6d d d d g ƒd 6}  |  d } t j |  d | d	 d d d g ƒ } | j ƒ  } xã d | j | j f | j d | j d f g D]² \ } } | j | ƒ } | j | ƒ } t | j d ƒ | j d ƒ ƒ t | j d
 ƒ | j d
 ƒ ƒ t | j j d
 ƒ | j j d
 ƒ ƒ t | j j d ƒ | j j d ƒ ƒ q-Wd  S(   Ni   i   i   R;   i   i   R<   R=   i    i   R   i   i   i	   (   R   i    (   R   i   (   R   i   (   R   i    (   R<   R<   (	   R   R   R   t   computeR<   R   R    t	   get_groupR;   (   t   dskRR   RP   t   fullt   ddkeyt   pdkeyt	   ddgroupedt	   pdgrouped(    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_groupby_get_group=  s"    /,,
$'%c          C   s”   t  d ƒ }  t j j t |  ƒ ƒ } t j t d |  d | ƒ ƒ } t j	 | d d ƒ} | j
 d ƒ d j ƒ  } t | j
 d ƒ d j ƒ  | ƒ d  S(   Nt   aaabbccccdddeeet   stringst   dataR>   i   (   R   R5   R6   R7   t   lenR   R   t   dictR   R   R   R   R    (   R‰   RŠ   t   pst   st   expected(    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_dataframe_groupby_nuniqueT  s    c          C   s‘   t  d ƒ }  t  t t d ƒ ƒ } t j t d |  d | ƒ ƒ } t j | d d ƒ} | j d ƒ d j	 ƒ  } t
 | j d ƒ d j	 ƒ  | ƒ d  S(   NRˆ   t   123111223323412R‰   RŠ   R>   i   (   R   t   mapt   intR   R   RŒ   R   R   R   R   R    (   R‰   RŠ   R   RŽ   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt6   test_dataframe_groupby_nunique_across_group_same_value]  s    c          C   s¡   t  j i d d d g d 6d d d g d 6ƒ }  t j |  d ƒ } d	 „  } t j t ƒ  | j d ƒ j | ƒ } Wd  QX|  j d ƒ j | ƒ } t	 | | ƒ d  S(
   Ni   i   i   R   i   i   i   R   c         S   s   |  d j  ƒ  S(   NR   (   R   (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   i  RA   (
   R   R   R   R   R+   Rm   t   UserWarningR   RK   R    (   RC   R&   RD   t   resultR   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt$   test_series_groupby_propagates_namesf  s    /	c          C   sl  t  j d d d d d g ƒ }  |  j |  ƒ } t j |  d d ƒ} | j | ƒ } |  j |  d ƒ } | j | d ƒ } xî | | f | | f g D]Ô \ } } t | j ƒ  | j ƒ  ƒ t | j ƒ  | j ƒ  ƒ t | j ƒ  | j ƒ  ƒ t | j	 ƒ  | j	 ƒ  ƒ t | j
 ƒ  | j
 ƒ  ƒ t | j ƒ  | j ƒ  ƒ t | j ƒ  | j ƒ  ƒ t | j ƒ  | j ƒ  ƒ q Wd  S(   Ni   i   R>   (   R   R$   R   R   R   R    R   R   R   R   R	   R   R   R   (   RŽ   t   pd_groupt   ssRw   t	   pd_group2t   dask_group2t   dgt   pdg(    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_series_groupbyp  s    %c       
   C   s;  t  j d d d d d g ƒ }  t j |  d d ƒ} d } t j t ƒ  } |  j g  ƒ Wd  QX| t | j	 ƒ k sy t
 ‚ t j t ƒ  } | j g  ƒ Wd  QX| t | j	 ƒ k s¹ t
 ‚ t j |  d d ƒ} t j t ƒ  | j | ƒ Wd  QXt j t ƒ  |  j d ƒ Wd  QXt j t ƒ  | j d ƒ Wd  QXd  S(   Ni   i   R>   s   No group keys passed!i   R   (   R   R$   R   R   R+   R,   RV   R   R.   R/   R   t   NotImplementedErrorR-   (   RŽ   R™   R0   R1   t   sss(    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_series_groupby_errors…  s     c          C   s«   t  j ƒ  }  t j |  d d ƒ} t |  j j |  j j ƒ j	 ƒ  | j j | j j ƒ j	 ƒ  d t
 ƒt |  j |  j j ƒ j j	 ƒ  | j | j j ƒ j j	 ƒ  d t
 ƒd  S(   NR>   i   t   check_names(   t   tmt   makeTimeDataFrameR   R   R    R*   R   R=   t   monthR   RU   (   RC   R&   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_groupby_index_arrayœ  s    %c              sA   t  j ƒ  ‰ t j ˆ d d ƒ‰  t j t ‡  ‡ f d †  ƒ d  S(   NR>   i   c              s   ˆ  j  ˆ j j d t ƒS(   Nt   as_index(   R   R=   R¥   RU   (    (   R&   RC   (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ­  RA   (   R£   R¤   R   R   R+   R,   t	   TypeError(    (    (   R&   RC   s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_groupby_set_index©  s    	t   emptyc            sG  |  rB t  j i d g d 6d g d 6d d g ƒj d  } g  } nƒ d d d g } t  j i d d d d	 d	 d d	 d
 d g	 d 6d	 d d d
 d
 d d d d g	 d 6d d d d
 d d d d d d g	 ƒ} t j | d d
 ƒ‰  xFd) ˆ  j | j f ˆ  j d | j d f g D]\ } } t ˆ  j | ƒ j j	 ƒ  | j | ƒ j j	 ƒ  ƒ t ˆ  j | ƒ j j
 ƒ  | j | ƒ j j
 ƒ  ƒ t ˆ  j | ƒ j j ƒ  | j | ƒ j j ƒ  ƒ t ˆ  j | ƒ j j ƒ  | j | ƒ j j ƒ  ƒ t ˆ  j | ƒ j j ƒ  | j | ƒ j j ƒ  ƒ t ˆ  j | ƒ j j ƒ  | j | ƒ j j ƒ  ƒ t ˆ  j | ƒ j j ƒ  | j | ƒ j j ƒ  ƒ t ˆ  j | ƒ j j ƒ  | j | ƒ j j ƒ  ƒ x| | D]t } t ˆ  j | ƒ j j | ƒ | j | ƒ j j | ƒ ƒ t ˆ  j | ƒ j j | ƒ | j | ƒ j j | ƒ ƒ q¥Wt ˆ  j | ƒ j ƒ  | j | ƒ j ƒ  ƒ t ˆ  j | ƒ j	 ƒ  | j | ƒ j	 ƒ  ƒ t ˆ  j | ƒ j
 ƒ  | j | ƒ j
 ƒ  ƒ t ˆ  j | ƒ j ƒ  | j | ƒ j ƒ  ƒ t ˆ  j | ƒ j ƒ  | j | ƒ j ƒ  ƒ t ˆ  j | ƒ j ƒ  | j | ƒ j ƒ  ƒ t ˆ  j | ƒ j ƒ  | j | ƒ j ƒ  ƒ t ˆ  j | ƒ j ƒ  | j | ƒ j ƒ  ƒ t ˆ  j | ƒ j ƒ  | j | ƒ j ƒ  ƒ x| | D]t } t ˆ  j | ƒ j | ƒ | j | ƒ j | ƒ d t ƒt ˆ  j | ƒ j | ƒ | j | ƒ j | ƒ d t ƒq§Wq
Wxqˆ  j | j f ˆ  j d | j d f g D]C\ } } t ˆ  j j | ƒ j ƒ  | j j | ƒ j ƒ  d t ƒt ˆ  j j | ƒ j
 ƒ  | j j | ƒ j
 ƒ  d t ƒt ˆ  j j | ƒ j ƒ  | j j | ƒ j ƒ  d t ƒt ˆ  j j | ƒ j ƒ  | j j | ƒ j ƒ  d t ƒt ˆ  j j | ƒ j ƒ  | j j | ƒ j ƒ  d t ƒt ˆ  j j | ƒ j ƒ  | j j | ƒ j ƒ  d t ƒt ˆ  j j | ƒ j ƒ  | j j | ƒ j ƒ  d t ƒt ˆ  j j | ƒ j ƒ  | j j | ƒ j ƒ  d t ƒx| | D]t } t ˆ  j j | ƒ j | ƒ | j j | ƒ j | ƒ ƒ t ˆ  j j | ƒ j | ƒ | j j | ƒ j | ƒ ƒ qWqPWxñ	d d	 d g D]à	} t ˆ  j ˆ  j | k ƒ j j ƒ  | j | j | k ƒ j j ƒ  ƒ t ˆ  j ˆ  j | k ƒ j j	 ƒ  | j | j | k ƒ j j	 ƒ  ƒ t ˆ  j ˆ  j | k ƒ j j
 ƒ  | j | j | k ƒ j j
 ƒ  ƒ t ˆ  j ˆ  j | k ƒ j j ƒ  | j | j | k ƒ j j ƒ  ƒ t ˆ  j ˆ  j | k ƒ j j ƒ  | j | j | k ƒ j j ƒ  ƒ t ˆ  j ˆ  j | k ƒ j j ƒ  | j | j | k ƒ j j ƒ  ƒ t ˆ  j ˆ  j | k ƒ j j ƒ  | j | j | k ƒ j j ƒ  ƒ t ˆ  j ˆ  j | k ƒ j j ƒ  | j | j | k ƒ j j ƒ  ƒ t ˆ  j ˆ  j | k ƒ j j ƒ  | j | j | k ƒ j j ƒ  ƒ t ˆ  j ˆ  j | k ƒ j j ƒ  | j | j | k ƒ j j ƒ  ƒ t ˆ  j ˆ  j | k ƒ j j ƒ  | j | j | k ƒ j j ƒ  ƒ t ˆ  j ˆ  j | k ƒ j j	 ƒ  | j | j | k ƒ j j	 ƒ  ƒ t ˆ  j ˆ  j | k ƒ j j
 ƒ  | j | j | k ƒ j j
 ƒ  ƒ t ˆ  j ˆ  j | k ƒ j j ƒ  | j | j | k ƒ j j ƒ  ƒ t ˆ  j ˆ  j | k ƒ j j ƒ  | j | j | k ƒ j j ƒ  ƒ t ˆ  j ˆ  j | k ƒ j j ƒ  | j | j | k ƒ j j ƒ  ƒ t ˆ  j ˆ  j | k ƒ j j ƒ  | j | j | k ƒ j j ƒ  ƒ t ˆ  j ˆ  j | k ƒ j j ƒ  | j | j | k ƒ j j ƒ  ƒ t ˆ  j ˆ  j | k ƒ j j ƒ  | j | j | k ƒ j j ƒ  ƒ t ˆ  j ˆ  j | k ƒ j j ƒ  | j | j | k ƒ j j ƒ  ƒ t ˆ  j ˆ  j | k ƒ j ƒ  | j | j | k ƒ j ƒ  ƒ t ˆ  j ˆ  j | k ƒ j	 ƒ  | j | j | k ƒ j	 ƒ  ƒ t ˆ  j ˆ  j | k ƒ j
 ƒ  | j | j | k ƒ j
 ƒ  ƒ t ˆ  j ˆ  j | k ƒ j ƒ  | j | j | k ƒ j ƒ  ƒ t ˆ  j ˆ  j | k ƒ j ƒ  | j | j | k ƒ j ƒ  ƒ t ˆ  j ˆ  j | k ƒ j ƒ  | j | j | k ƒ j ƒ  ƒ t ˆ  j ˆ  j | k ƒ j ƒ  | j | j | k ƒ j ƒ  ƒ t ˆ  j ˆ  j | k ƒ j ƒ  | j | j | k ƒ j ƒ  ƒ t ˆ  j ˆ  j | k ƒ j ƒ  | j | j | k ƒ j ƒ  ƒ t ˆ  j ˆ  j | k ƒ j ƒ  | j | j | k ƒ j ƒ  ƒ t ˆ  j ˆ  j | k ƒ j	 ƒ  | j | j | k ƒ j	 ƒ  ƒ t ˆ  j ˆ  j | k ƒ j
 ƒ  | j | j | k ƒ j
 ƒ  ƒ t ˆ  j ˆ  j | k ƒ j ƒ  | j | j | k ƒ j ƒ  ƒ t ˆ  j ˆ  j | k ƒ j ƒ  | j | j | k ƒ j ƒ  ƒ t ˆ  j ˆ  j | k ƒ j ƒ  | j | j | k ƒ j ƒ  ƒ t ˆ  j ˆ  j | k ƒ j ƒ  | j | j | k ƒ j ƒ  ƒ t ˆ  j ˆ  j | k ƒ j ƒ  | j | j | k ƒ j ƒ  ƒ t ˆ  j ˆ  j | k ƒ j ƒ  | j | j | k ƒ j ƒ  ƒ xQ | D]I } t ˆ  j ˆ  j | k ƒ j | ƒ | j | j | k ƒ j | ƒ ƒ q:Wq§Wx
d* ˆ  j | j f ˆ  j d | j d f ˆ  j d
 k | j d
 k f g D]¾\ } } t ˆ  j | ƒ j j ƒ  | j | ƒ j j ƒ  ƒ t ˆ  j | ƒ j j	 ƒ  | j | ƒ j j	 ƒ  ƒ t ˆ  j | ƒ j j
 ƒ  | j | ƒ j j
 ƒ  ƒ t ˆ  j | ƒ j j ƒ  | j | ƒ j j ƒ  ƒ t ˆ  j | ƒ j j ƒ  | j | ƒ j j ƒ  ƒ t ˆ  j | ƒ j j ƒ  | j | ƒ j j ƒ  ƒ t ˆ  j | ƒ j j ƒ  | j | ƒ j j ƒ  ƒ t ˆ  j | ƒ j j ƒ  | j | ƒ j j ƒ  ƒ t ˆ  j | ƒ j ƒ  | j | ƒ j ƒ  ƒ t ˆ  j | ƒ j ƒ  | j | ƒ j ƒ  ƒ t ˆ  j | ƒ j ƒ  | j | ƒ j ƒ  ƒ t ˆ  j | ƒ j	 ƒ  | j | ƒ j	 ƒ  ƒ t ˆ  j | ƒ j
 ƒ  | j | ƒ j
 ƒ  ƒ t ˆ  j | ƒ j ƒ  | j | ƒ j ƒ  ƒ t ˆ  j | ƒ j ƒ  | j | ƒ j ƒ  j t ƒ ƒ t ˆ  j | ƒ j ƒ  | j | ƒ j ƒ  ƒ t ˆ  j | ƒ j ƒ  | j | ƒ j ƒ  ƒ t ˆ  j | ƒ j ƒ  | j | ƒ j ƒ  ƒ t ˆ  j | ƒ j ƒ  | j | ƒ j ƒ  ƒ xE | D]= } t ˆ  j | ƒ j j | ƒ | j | ƒ j j | ƒ ƒ qSWqÖWt ˆ  j d ƒ j j ƒ  j ƒ t ˆ  j d ƒ j j ƒ  j ƒ k sàt ‚ t ˆ  j ˆ  j d
 k ƒ j j ƒ  j ƒ t ˆ  j ˆ  j d
 k ƒ j j ƒ  j ƒ k s:t ‚ t j t ‡  f d †  ƒ t j t ‡  f d †  ƒ t j t ‡  f d †  ƒ t j t ‡  f d †  ƒ t j t ‡  f d †  ƒ t ˆ  j d ƒ j j ƒ  d ƒ t ˆ  j d ƒ j j	 ƒ  d ƒ t ˆ  j d ƒ j j
 ƒ  d ƒ t ˆ  j d ƒ j j ƒ  d ƒ t ˆ  j d ƒ j j ƒ  d ƒ t ˆ  j d ƒ j j ƒ  d ƒ t ˆ  j d ƒ j j ƒ  d ƒ t ˆ  j d ƒ j j ƒ  d ƒ t ˆ  j d ƒ j j ƒ  d ƒ t ˆ  j d ƒ j j ƒ  d ƒ t ˆ  j d ƒ j j ƒ  d ƒ t ˆ  j d ƒ j j ƒ  d  ƒ t ˆ  j d ƒ j ƒ  d! ƒ t ˆ  j d ƒ j	 ƒ  d" ƒ t ˆ  j d ƒ j
 ƒ  d# ƒ t ˆ  j d ƒ j ƒ  d$ ƒ t ˆ  j d ƒ j ƒ  d% ƒ t ˆ  j d ƒ j ƒ  d& ƒ t ˆ  j d ƒ j ƒ  d' ƒ t ˆ  j d ƒ j ƒ  d! ƒ t ˆ  j d ƒ j ƒ  d$ ƒ t ˆ  j d ƒ j ƒ  d( ƒ d  S(+   Ng      ð?R;   R<   R=   i    i   i   i   i   i   i   i   i   i	   R>   RQ   R¢   c              s   ˆ  j  d ƒ S(   NR   (   R   (    (   R&   (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   =  RA   c              s   ˆ  j  d d g ƒ S(   NR;   R   (   R   (    (   R&   (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   >  RA   c              s   ˆ  j  d ƒ d S(   NR;   R   (   R   (    (   R&   (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ?  RA   c              s   ˆ  j  d ƒ d S(   NR;   R<   R   (   R<   R   (   R   (    (   R&   (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   @  RA   c              s   ˆ  j  d ƒ d d g S(   NR;   R<   R   (   R   (    (   R&   (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   A  RA   s   series-groupby-sums   series-groupby-mins   series-groupby-maxs   series-groupby-counts   series-groupby-vars   series-groupby-firsts   series-groupby-lasts   series-groupby-prods   series-groupby-nuniques   series-groupby-sizes   dataframe-groupby-sums   dataframe-groupby-mins   dataframe-groupby-maxs   dataframe-groupby-counts   dataframe-groupby-firsts   dataframe-groupby-lasts   dataframe-groupby-prods   dataframe-groupby-size(   R<   R<   (   R;   R;   (   R   R   t   ilocR   R   R<   R    R   R;   R   R   R   R   R   R	   R   R   R   R
   R   R   RU   Ru   Rv   t   sortedRS   R   R+   R,   R-   R   (   Rª   R%   t   ddofsRƒ   R„   t   ddoft   i(    (   R&   s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt"   test_split_apply_combine_on_series°  s&   3	+%$<11111111 +++++++++'977777777$CCCCCCCCCCCCCCCCCCCC==================!*B11111111++++++4++++$*'3t   keywordt   split_everyt	   split_outc         C   sÚ  t  j i d d d d d d d d d g	 d d 6d d d d d d d d d g	 d d	 6ƒ } t j | d
 d ƒ} d „  } x‘ t D]‰ } | d k r˜ q€ n  | | j d	 ƒ | i d |  6 } | | j d	 ƒ | ƒ } t | | ƒ | | j d	 ƒ | ƒ j | j k s€ t ‚ q€ W| | j d	 ƒ d d d i d |  6} | | j d	 ƒ d d d ƒ} t | | ƒ | | j d	 ƒ d d d ƒj | j k st ‚ xˆ t D]€ } | | j d	 ƒ j	 | i d |  6 } | | j d	 ƒ j	 | ƒ } t | | ƒ | | j d	 ƒ j	 | ƒ j | j k s—t ‚ q—W| | j d	 ƒ j	 d d d i d |  6} | | j d	 ƒ j	 d d d ƒ} t | | ƒ | | j d	 ƒ j	 d d d ƒj | j k s§t ‚ x— t D] } | | j	 j | j
 ƒ | i d |  6 } | | j	 j | j
 ƒ | ƒ } t | | d t ƒ| | j	 j | j
 ƒ | ƒ j | j k s®t ‚ q®W| | j	 j | j
 ƒ d d d i d |  6} | | j	 j | j
 ƒ d d d ƒ} t | | ƒ | | j	 j | j
 ƒ d d d ƒj | j k sÖt ‚ d  S(   Ni   i   i   i   i   i   id   R;   R<   R>   i   c         [   s   t  |  | ƒ |   S(   N(   Rr   (   Rc   t   mt   kwargs(    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   calle  s    R   R   R®   R¢   (   R   R   R   R   t	   AGG_FUNCSR   R    RL   R   R;   R<   RU   (   R±   R%   R&   R¶   R´   R}   R|   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_groupby_reduction_split_  sB    /,	".(0%1+!3(4.$c       	   C   s¨  t  j i d d d d g d d 6t j j d ƒ d 6t j j d ƒ d	 6t j j d ƒ d
 6ƒ }  t j |  d ƒ } t j t	 ƒ "t
 | j d ƒ j d „  ƒ |  j d ƒ j d „  ƒ ƒ t
 | j | d ƒ j d „  ƒ |  j |  d ƒ j d „  ƒ ƒ t
 | j | d d ƒ j d „  ƒ |  j |  d d ƒ j d „  ƒ ƒ t
 | j d ƒ d j d „  ƒ |  j d ƒ d j d „  ƒ ƒ t
 | j | d ƒ d j d „  ƒ |  j |  d ƒ d j d „  ƒ ƒ t
 | j | d d ƒ d j d „  ƒ |  j |  d d ƒ d j d „  ƒ ƒ t
 | j j | d ƒ j d „  ƒ |  j j |  d ƒ j d „  ƒ ƒ t
 | j j | d d ƒ j d „  ƒ |  j j |  d d ƒ j d „  ƒ ƒ t
 | j d ƒ d d	 g j d „  ƒ |  j d ƒ d d	 g j d „  ƒ ƒ t
 | j | d ƒ d d	 g j d „  ƒ |  j |  d ƒ d d	 g j d „  ƒ ƒ t
 | j | d d ƒ d d	 g j d „  ƒ |  j |  d d ƒ d d	 g j d  „  ƒ ƒ Wd  QXd  S(!   Ni   i   i   i   i   R*   i   R3   R4   t   Dc         S   s
   |  j  ƒ  S(   N(   R   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   š  RA   c         S   s
   |  j  ƒ  S(   N(   R   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ›  RA   c         S   s
   |  j  ƒ  S(   N(   R   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@     RA   c         S   s
   |  j  ƒ  S(   N(   R   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ž  RA   c         S   s
   |  j  ƒ  S(   N(   R   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@      RA   c         S   s
   |  j  ƒ  S(   N(   R   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ¡  RA   c         S   s
   |  j  ƒ  S(   N(   R   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ¤  RA   c         S   s
   |  j  ƒ  S(   N(   R   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ¥  RA   c         S   s
   |  j  ƒ  S(   N(   R   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   §  RA   c         S   s
   |  j  ƒ  S(   N(   R   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ¨  RA   c         S   s
   |  j  ƒ  S(   N(   R   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ª  RA   c         S   s
   |  j  ƒ  S(   N(   R   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   «  RA   c         S   s
   |  j  ƒ  S(   N(   R   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ®  RA   c         S   s
   |  j  ƒ  S(   N(   R   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ¯  RA   c         S   s
   |  j  ƒ  S(   N(   R   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ±  RA   c         S   s
   |  j  ƒ  S(   N(   R   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ²  RA   c         S   s
   |  j  ƒ  S(   N(   R   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   µ  RA   c         S   s
   |  j  ƒ  S(   N(   R   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ¶  RA   c         S   s
   |  j  ƒ  S(   N(   R   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ¸  RA   c         S   s
   |  j  ƒ  S(   N(   R   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ¹  RA   c         S   s
   |  j  ƒ  S(   N(   R   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   »  RA   c         S   s
   |  j  ƒ  S(   N(   R   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ¼  RA   (   R   R   R5   R6   R7   R   R   R+   Rm   R•   R    R   RK   R3   (   R%   R&   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_apply_shuffle’  s8      #$ #$'("#&'%&)*-c         C   s   d S(   Nt   AA(    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   À  RA   c         C   s
   d d g S(   NR»   t   AB(    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   Á  RA   c         C   s   |  d S(   NR»   (    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   Â  RA   c         C   s   |  d |  d g S(   NR»   R¼   (    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   Ã  RA   c         C   s   |  d d S(   NR»   i   (    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   Ä  RA   c         C   s   |  d d |  d d g S(   NR»   i   R¼   (    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   Å  RA   t   NotImplementedc      	   C   s‡  t  j i d d d d g d d 6d d d d g d d 6t j j d ƒ d	 6t j j d ƒ d
 6t j j d ƒ d 6ƒ } t j | d ƒ } t j t	 ƒ ê t
 | j |  | ƒ ƒ j d „  ƒ | j |  | ƒ ƒ j d „  ƒ ƒ t
 | j |  | ƒ ƒ d	 j d „  ƒ | j |  | ƒ ƒ d	 j d „  ƒ ƒ t
 | j |  | ƒ ƒ d	 d
 g j d „  ƒ | j |  | ƒ ƒ d	 d
 g j d „  ƒ ƒ Wd  QXd  S(   Ni   i   i   i   i   R¼   R»   i   R3   R4   R¹   c         S   s
   |  j  ƒ  S(   N(   R   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   Ñ  RA   c         S   s
   |  j  ƒ  S(   N(   R   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   Ò  RA   c         S   s
   |  j  ƒ  S(   N(   R   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   Õ  RA   c         S   s
   |  j  ƒ  S(   N(   R   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   Ö  RA   c         S   s
   |  j  ƒ  S(   N(   R   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   Ù  RA   c         S   s
   |  j  ƒ  S(   N(   R   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   Ú  RA   (   R   R   R5   R6   R7   R   R   R+   Rm   R•   R    R   RK   (   R]   R%   R&   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_apply_shuffle_multilevel¿  s    	 !"%&+c          C   s  t  j i d d d d g d 6d d d d g d 6d d d d g d 6ƒ }  t j |  d d ƒ} t | j d ƒ j ƒ  |  j d ƒ j ƒ  ƒ t | j d d g ƒ j ƒ  |  j d d g ƒ j ƒ  ƒ t | j d ƒ j d „  d i t d 6t d 6t d 6ƒ|  j d ƒ j d	 „  ƒ ƒ d  S(
   Ni    i   i   i   i   R>   c         S   s   |  S(   N(    (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   æ  RA   RR   c         S   s   |  S(   N(    (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ç  RA   (	   R   R   R   R   R    R   R   RK   R“   (   RC   R&   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_numeric_column_namesÝ  s    +76c          C   s–  t  j j j ƒ  }  |  j d |  d <|  j d |  d <t j |  d d ƒ} t j	 j
 d d ƒ 2x*d „  d	 „  g D]} |  j | |  ƒ ƒ j t ƒ } t j t ƒ # | j | | ƒ ƒ j t ƒ } Wd  QXt | | j ƒ  ƒ t d
 „  | j Dƒ ƒ sý t ‚ |  j | |  ƒ ƒ j j t ƒ } t j t ƒ & | j | | ƒ ƒ j j t ƒ } Wd  QXt | | j ƒ  ƒ t d „  | j Dƒ ƒ sr t ‚ qr WWd  QXd  S(   Ngš™™™™™¹?R*   R3   R>   i
   t   shufflet   tasksc         S   s   d S(   NR*   (    (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ñ  RA   c         S   s   |  j  S(   N(   R*   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ñ  RA   c         s   s   |  ] } d  | d k Vq d S(   t   partdi    N(    (   t   .0t   k(    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pys	   <genexpr>ö  s    c         s   s   |  ] } d  | d k Vq d S(   RÂ   i    N(    (   RÃ   RÄ   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pys	   <genexpr>ü  s    (   R   t   utilt   testingR¤   R*   R3   R   R   RS   Rk   Rl   R   RK   R‹   R+   Rm   R•   R    R   t   anyR   (   RC   R&   t   indR;   R<   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_groupby_apply_tasksê  s     $ !'c          C   s»   t  j i d d d d d g d 6d d d d d g d	 6ƒ }  t j |  d
 d ƒ} t j j d d ƒ P t | j d	 ƒ j	 d „  d i t
 d 6t d	 6ƒ|  j d	 ƒ j	 d „  ƒ ƒ Wd  QXd  S(   Ni   i   i   i   i   R*   t   1R;   R3   R>   Re   t	   processesc         S   s   |  S(   N(    (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@     RA   RR   c         S   s   |  S(   N(    (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@     RA   (   R   R   R   R   RS   Rk   Rl   R    R   RK   R“   t   object(   RC   R&   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_groupby_multiprocessingÿ  s    %
c          C   s  t  j i d d d d d d d d d	 g	 d
 6d d d d d d d d d g	 d 6d d d d d d d d	 d	 d	 g	 ƒ}  t j |  d d ƒ} | j d
 ƒ j d
 k s§ t ‚ | j | d
 ƒ j d
 k sÉ t ‚ | j | d
 d k ƒ j j | d
 d k j k st ‚ | j d
 d g ƒ j d
 d g k s+t ‚ | j | d
 | d g ƒ j d
 d g k s]t ‚ | j | d
 d g ƒ j d
 d g k s‹t ‚ d  S(   Ni   i   i   i   i   i   i   i   i	   R;   i    R<   R=   R>   (   R   R   R   R   R   R=   R   RL   (   R‚   RP   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_groupby_normalize_index	  s    +%$"8*2t   specRO   R<   R;   RP   c         C   s   d S(   NR;   (    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   #  RA   c         C   s
   d d g S(   NR;   RP   (    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   $  RA   c         C   s   |  d |  d g S(   NR;   RP   (    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   %  RA   c         C   s   |  d S(   NR;   (    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   &  RA   c         C   s   |  d d k S(   NR;   i   (    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   '  RA   c         C   s+  t  j i d d d d d d d d d g	 d d 6d d d d d d d d d g	 d d 6d	 d d d d d
 d d d g	 d d 6d d d d d d d d d g	 d d 6d d d d d g ƒ} t j | d d ƒ} t j d  ƒ H t | j | | ƒ ƒ j	 |  ƒ | j | | ƒ ƒ j	 |  d | ƒƒ Wd  QXd  S(   Ni   i   i   i   i   i
   R;   R<   i    i   i   i   RO   RP   t   columnsR>   R²   (
   R   R   R   R   R+   Rm   Rn   R    R   t   agg(   RÏ   R²   R]   R%   R&   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_aggregate__examples  s    /&&)c         C   s   |  d |  d g S(   NR;   RP   (    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   A  RA   c         C   s   |  d S(   NR;   (    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   B  RA   c         C   s   |  d d k S(   NR;   i   (    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   C  RA   c         C   s?  t  j i d d d d d d d d d g	 d d 6d d d d d d d d d g	 d d 6d	 d d d d d
 d d d g	 d d 6d d d d d d d d d g	 d d 6d d d d d g ƒ} | d } t j | d d ƒ} | d } t j d  ƒ H t | j | | ƒ ƒ j	 |  ƒ | j | | ƒ ƒ j	 |  d | ƒƒ Wd  QXd  S(   Ni   i   i   i   i   i
   R;   R<   i    i   i   i   RO   RP   RÐ   R>   R²   (
   R   R   R   R   R+   Rm   Rn   R    R   RÑ   (   RÏ   R²   R]   R%   R   R&   t   ds(    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_series_aggregate__examples9  s    /&&)

c         C   s  |  } | d k r d  St  j i d d d d g d 6d d d d g d 6d d d d g d 6d d d d g d	 6d
 d d d d	 g ƒ} t j | d d ƒ} | j d d	 g ƒ j | ƒ } | d d h k rÚ | j t ƒ } n  t | | j d d	 g ƒ j | ƒ ƒ d  S(   NR   i   i   R;   i   i   R<   RO   RP   RÐ   R>   R   R   (	   R   R   R   R   R   RÑ   Ru   Rv   R    (   R   RÏ   R%   R&   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt%   test_aggregate__single_element_groupsW  s    c    	      C   sÑ   d d l  m }  d d g } d d d g } |  | ƒ \ } } } |  | ƒ \ } } } t | ƒ t | ƒ k ss t ‚ t | ƒ t | ƒ k s‘ t ‚ t | ƒ t | ƒ k s¯ t ‚ t | ƒ t | ƒ k sÍ t ‚ d
 S(   s²   Aggregate reuses intermediates. For example, with sum, count, and mean
    the sums and counts are only calculated once accross the graph and reused to
    compute the mean.
    iÿÿÿÿ(   t   _build_agg_argst   fooR   t   inputt   barR   t   bazR   N(   R×   R   RØ   (   RÙ   R   RØ   (   R×   R   RØ   (   RÙ   R   RØ   (   RÚ   R   RØ   (   t   dask.dataframe.groupbyRÖ   R‹   R   (	   RÖ   t   no_mean_spect   with_mean_spect   no_mean_chunkst   no_mean_aggst   no_mean_finalizerst   with_mean_chunkst   with_mean_aggst   with_mean_finalizers(    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt5   test_aggregate_build_agg_args__reuse_of_intermediateso  s    		c             s•  t  j d d g ƒ ‰  ‡  f d †  }  i i d d 6d 6i d d 6d	 d 6d 6i d d 6d	 d g d 6d
 d d	 d d d d d d d d g d
 d d	 d d d d d d d g } t j i d d d d d d d d d g	 d d 6d d d d d d d d d g	 d d 6d d d d d d d d d g	 d d 6d d d d d d d d d g	 d d 6d d d d d g ƒ} t j | d d ƒ} x| D]} | j d d g ƒ j | d d ƒ} | j d d g ƒ j | d d ƒ} |  | ƒ } |  | ƒ } t | d ƒ t | d ƒ | | k st	 ‚ xz | D]r }	 | j d d g ƒ j |	 d d ƒ}
 t
 |
 j ƒ t
 | j ƒ k set	 ‚ t
 |
 j ƒ t
 | j ƒ k st	 ‚ qWq~Wd  S(    Nt   dask_holderRS   c            s   ˆ  d „  |  j  j ƒ  Dƒ ƒ S(   Nc         S   s2   i  |  ]( \ } } | d  j  d ƒ r | | “ q S(   i    t	   aggregate(   RM   (   RÃ   RÄ   t   v(    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pys
   <dictcomp>Ž  s   	 (   RS   t   items(   R"   (   Rå   (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@     s   R   RO   R<   R   R;   R   R   R   R	   R
   R   R   R   R   i   i   i   i   i   id   i    i   i   i   RP   RÐ   R>   R²   (   t   collectionst
   namedtupleR   R   R   R   R   RÑ   R   R   R‹   RS   (   t   get_agg_daskt   specsR%   R&   RÏ   t   result1t   result2t	   agg_dask1t	   agg_dask2t
   other_spect   other(    (   Rå   s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_aggregate__dask‹  s0    &$$/&&)$$$$c         C   s   d g S(   NR;   (    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ¸  RA   c         C   s
   d d g S(   NR;   R<   (    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ¹  RA   c         C   s   |  d S(   NR;   (    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   º  RA   c         C   s   |  d |  d g S(   NR;   R<   (    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   »  RA   c         C   s   |  d d k |  d d k g S(   NR;   i   R<   i   (    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ¼  RA   c         C   sÏ  d „  } t  j i d d d d d d d d d g	 d d	 6d d d d d d d d d g	 d d
 6d d d d d d d d d g	 d d 6d d d d d d d d d g	 d d 6d d d
 d	 d g ƒ} t j | d d ƒ} t | | j |  | ƒ ƒ d | ƒ | | j |  | ƒ ƒ d | d d ƒƒ | d k rËt | | j |  | ƒ ƒ d d g | ƒ | | j |  | ƒ ƒ d d g | d d ƒƒ t | | j |  | ƒ ƒ | ƒ | | j |  | ƒ ƒ | d d ƒƒ n  d  S(   Nc         [   s   t  |  | ƒ |   S(   N(   Rr   (   Rc   R´   Rµ   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR¶   ¿  s    i   i   i   i   i   i   i
   R;   R<   i    i   i   RP   RO   RÐ   R>   R²   R   (   R   R   R   R   R    R   (   R]   R   R¶   R%   R&   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt&   test_dataframe_aggregations_multilevel·  s    	/&&)")(/c         C   s   |  d S(   NR;   (    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ×  RA   c         C   s   |  d |  d g S(   NR;   R<   (    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   Ø  RA   c         C   s   |  d d k |  d d k g S(   NR;   i   R<   i   (    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   Ù  RA   c         C   s  d „  } t  j i d d d d d d d d d g	 d d	 6d d d d d d d d d g	 d d
 6d d d d d d d d d g	 d d 6d d d
 d	 g ƒ} t j | d d ƒ} t | | d j |  | ƒ ƒ | ƒ | | d j |  | ƒ ƒ | d d ƒd | d d h k ƒd S(   sp   
    similar to ``test_dataframe_aggregations_multilevel``, but series do not
    support all groupby args.
    c         [   s   t  |  | ƒ |   S(   N(   Rr   (   Rc   R´   Rµ   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR¶   á  s    i   i   i   i   i   i   i
   R;   R<   i    i   i   RO   RÐ   R>   R²   R¢   R   R   N(   R   R   R   R   R    R   (   R]   R   R¶   R%   R&   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt#   test_series_aggregations_multilevelÖ  s    	/&)"(c         C   s   |  d S(   NR;   (    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ó  RA   c         C   s   |  d d k S(   NR;   i   (    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ô  RA   c         C   s   |  d |  d g S(   NR;   R<   (    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   õ  RA   c         C   s   |  d d k g S(   NR;   i   (    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ö  RA   c         C   s   |  d d k |  d d k g S(   NR;   i   R<   i   (    (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ÷  RA   s/   index dtype does not coincide: boolean != emptyt   group_and_slicec         C   s   |  j  | |  ƒ ƒ S(   N(   R   (   RC   R]   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   û  RA   c         C   s   |  d j  | |  ƒ ƒ S(   NRO   (   R   (   RC   R]   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ü  RA   c         C   s   |  j  | |  ƒ ƒ d S(   NRO   (   R   (   RC   R]   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ý  RA   c         C   s  t  j i d d d d d d d d d g	 d d 6d d d d d d d d d g	 d d	 6d
 d d d d d d d d g	 d d 6d d d	 d g ƒ} t j | d d ƒ} |  | | ƒ j ƒ  j d
 ƒ } |  | | ƒ j j ƒ  } |  | | ƒ j j ƒ  j d
 ƒ } t | | ƒ t | | ƒ d  S(   Ni   i   i   i   i   i   i
   R;   R<   i    i   i   RO   RÐ   R>   (	   R   R   R   R   R   R9   R    t   _meta_nonemptyR    (   Rö   R]   R%   R&   R   RR   t   meta_nonempty(    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_groupby_meta_contentò  s    /&)!c          C   sÓ  t  j i d d d d d d d d d g	 d d 6d d d d d d d d d g	 d d	 6d
 d d d d d d d d g	 d d 6d d d	 d g ƒ}  t j |  d d ƒ} t j |  d d ƒ} | j d d	 g ƒ | j | d | d	 g ƒ t j t ƒ  | j | d ƒ Wd  QXt j t ƒ   | j | d | d	 g ƒ Wd  QXt j t ƒ   | j | d | d	 g ƒ Wd  QXt j t ƒ   | j | d | d	 g ƒ Wd  QXt j t ƒ  | j | d d	 g ƒ Wd  QXd  S(   Ni   i   i   i   i   i   i
   R;   R<   i    i   i   RO   RÐ   R>   (   R   R   R   R   R   R+   R,   RŸ   (   R%   t   ddf3t   ddf7(    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_groupy_non_aligned_index  s$    /&)!!!c          C   sk  t  j i d d d d d d d d d g	 d d 6d d d d d d d d d g	 d d	 6d
 d d d d d d d d g	 d d 6d d d	 d g ƒ}  t j |  d d ƒ}  |  d } | j | ƒ | j | | g ƒ t j t ƒ  | j d ƒ Wd  QXt j t ƒ  | j | d g ƒ Wd  QXt j t ƒ  | j |  ƒ Wd  QXt j t ƒ  | j | |  g ƒ Wd  QXd  S(   Ni   i   i   i   i   i   i
   R;   R<   i    i   i   RO   RÐ   R>   R×   (	   R   R   R   R   R   R+   R,   R-   RV   (   RC   RŽ   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt    test_groupy_series_wrong_grouper-  s     /&)
R>   i   i   i   i   i   c         C   s!  t  j i t j d ƒ d d 6t j d ƒ d 6ƒ } t j | |  ƒ } | j d ƒ j j	 d | d | ƒ } | j
 | j | j ƒ  ƒ } d d l m } | | ƒ \ } }	 | j | pµ d	 k sÁ t ‚ t g  | j ƒ  D] \ }
 } | sÑ |
 ^ qÑ ƒ |  k sþ t ‚ t | | j d ƒ j j	 ƒ  ƒ d  S(
   Nid   i
   R   R   R²   R³   iÿÿÿÿ(   t   get_depsi   (   R   R   R5   t   aranget   onesR   R   R   R   R   t   __dask_optimize__RS   t   __dask_keys__t	   dask.coreRþ   R>   R   R‹   Rè   R    (   R>   R²   R³   RC   R&   R–   R   Rþ   t   dependenciest
   dependentsRÄ   Rç   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_hash_groupby_aggregateH  s    	=c          C   s»   t  j i t j d ƒ d d 6t j d ƒ d 6d d d d d	 g d
 d 6ƒ }  t j |  d d ƒ} | j d d g ƒ j j	 d d ƒ } |  j d d g ƒ j j	 ƒ  } t
 | | d t ƒd  S(   Nid   i
   R   R   i   i   i   i   i   i   t   zR>   R³   RQ   (   R   R   R5   Rÿ   R   R   R   R   R  R   R    RU   (   RC   R&   R–   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt#   test_split_out_multi_column_groupby]  s     $c          C   sé   t  j t j i d d d d g d 6d d d d g d 6ƒ d d ƒ}  |  j d ƒ j ƒ  j d k sh t ‚ |  j d ƒ j d d ƒ j d k s’ t ‚ |  j d ƒ j d d ƒ j d k s¼ t ‚ t j	 t
 ƒ  |  j d d d ƒWd  QXd  S(	   Ni   i   R*   i   i   R3   R>   R³   (   R   R   R   R   R   R   R>   R   R+   R,   R¨   (   R&   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_groupby_split_out_numj  s    "	$**c          C   s  t  j t j i d d d d g d 6d d d d g d 6ƒ d d ƒ}  t j t ƒ  |  j d d d ƒWd  QXt j t ƒ  |  j d d	 d ƒWd  QXt j t ƒ  |  j d d
 t ƒWd  QXt j t ƒ  |  j d d t ƒWd  QXt j t ƒ  |  j d d t	 ƒWd  QXd  S(   Ni   i   R*   i   i   R3   R>   t   axist   levelR§   t   sortt   squeeze(
   R   R   R   R   R+   R,   R¨   R   RU   t   True(   R&   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_groupby_not_supportedx  s    "	c          C   s   t  j i d d d g d 6d d d g d 6ƒ }  t j |  d d ƒ} t | j | j ƒ d j ƒ  |  j |  j ƒ d j ƒ  ƒ d  S(	   NR×   RÙ   R*   i   i   i   i    R>   (   R   R   R   R   R    R   R*   R   (   RC   R&   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_groupby_numeric_columnˆ  s    /t   selt   keyRD   t   cumsumt   cumprodt   cumcountc         C   s"  t  j i d d d d d d d d d g	 d d 6d d d d d d d d d g	 d d 6t j j d	 ƒ d
 6t j j d	 ƒ d 6d d d d
 d g ƒ} t j | j d d d g d f <t j | d d ƒ} g  | | f D] } | j	 | ƒ | ^ qÔ \ } } t
 t | |  ƒ ƒ  t | |  ƒ ƒ  ƒ d  S(   Ni   i   i   i   i   i   R;   R<   i6   RO   RP   RÐ   iîÿÿÿiôÿÿÿiúÿÿÿiÿÿÿÿR>   i
   (   R   R   R5   R6   R7   t   nanR«   R   R   R   R    Rr   (   RD   R  R  RC   R&   RP   Rc   Rœ   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_cumulative  s    /&2c         C   sÇ   t  j i d d d d d d d d d g	 d d 6t j j d ƒ d	 6t j j d ƒ d
 6ƒ } t j | j d <t j | d d ƒ} t	 t
 | j d ƒ |  ƒ d d ƒ t
 | j d ƒ |  ƒ d d ƒ ƒ d  S(   Ni   i   i   i   i   i   R;   i   R<   RO   iúÿÿÿiÿÿÿÿR>   R
  (   iúÿÿÿiÿÿÿÿ(   R   R   R5   R6   R7   R  R«   R   R   R    Rr   R   (   RD   RC   R&   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_cumulative_axis1   s    /!c       	   C   sÌ  t  j i t j j d d d ƒ d 6t j j d ƒ d 6t j j d ƒ d 6ƒ }  t j |  d d ƒ} |  |  j d	 k  } | | j d	 k  } | j	 | j
 ƒ } | j j	 | j
 ƒ } | j ƒ  | j ƒ  | j j ƒ  | j d ƒ | j ƒ  | j ƒ  | j ƒ  | j d ƒ g } x. | D]& } t j t ƒ  | j ƒ  Wd  QXqWd
 „  } | j	 |  j
 ƒ }	 | j | d | ƒ|	 j | ƒ f | j j | d | j ƒ|	 j j | ƒ f g }
 x! |
 D] \ } } t | | ƒ q«Wd  S(   Ni    i
   i2   R;   R<   RO   R>   i   g      à?c         S   s   |  d S(   Ni   (    (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   add1Ã  s    RR   (   R   R   R5   R6   t   randintR7   R   R   R<   R   R;   R   R   R   R€   R+   R,   RV   R   RK   R    (   RC   R&   t   filteredt	   dfilteredt	   ddf_groupt   ds_groupt   badR"   R  t   df_groupt   goodR}   R|   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_groupby_unaligned_index«  s2    "						!0c    
      C   s7  t  j t d t d ƒ ƒ d t  j d d d d ƒ ƒ}  d |  d	 <d
 |  d <t j |  d d ƒ} d d g } xÅ | D]½ } t | j d g ƒ | ƒ ƒ  } | j	 d i d d	 6d d 6ƒ } t | j d g ƒ | ƒ ƒ  } t
 j | | ƒ \ } } | j ƒ  | j ƒ  } }	 | j | ƒ st ‚ | j |	 ƒ sr t ‚ qr Wd S(   sa   Test caching behavior of cumulative operations on grouped dataframes.

    Relates to #3756.
    R;   t   aabbccR=   t   startt   20100101t   periodsi   i   R   i   t   twosR>   i   R  R  RÐ   R×   RÙ   N(   R   R   RŒ   R   t
   date_rangeR   R   Rr   R   t   renameRS   R   t   equalsR   (
   RC   R&   t   opst   opt   ddf0t   ddf1t   res0_at   res1_at   res0_bt   res1_b(    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt"   test_groupby_dataframe_cum_cachingÎ  s    

 c    
      C   s3  t  j t d t d ƒ ƒ d t  j d d d d ƒ ƒ}  d |  d	 <d
 |  d <d d g } xÖ | D]Î } t j |  d d ƒ} | j d g ƒ } t j	 t
 | d	 | ƒ ƒ  t
 | d | ƒ ƒ  ƒ \ } } |  j d g ƒ } t
 | d	 | ƒ ƒ  t
 | d | ƒ ƒ  } }	 | j | ƒ st ‚ | j |	 ƒ s] t ‚ q] Wd S(   s[   Test caching behavior of cumulative operations on grouped Series

    Relates to #3755
    R;   R#  R=   R$  R%  R&  i   i   R   i   R'  R  R  R>   i   N(   R   R   RŒ   R   R(  R   R   R   RS   R   Rr   R*  R   (
   RC   R+  R,  R&   t   dcumR/  R0  t   cumR1  R2  (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_groupby_series_cum_cachingé  s    

c          C   sŸ   t  j i d d d d g d 6d d d d g d 6ƒ }  t j |  d d ƒ} | j d ƒ d j d	 d
 g ƒ } |  j d ƒ d j d	 d
 g ƒ } t | | ƒ d  S(   Ni   i   i   i   R;   i   R<   R>   R   R   (   R   R   R   R   R   RÑ   R    (   RP   R;   R–   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_groupby_slice_agg_reduces  s
    5""c          C   sŒ   t  j i d d d d g d 6ƒ }  t j |  d d ƒ} | j d ƒ d j d d g ƒ } |  j d ƒ d j d d g ƒ } t | | ƒ d  S(	   Ni   i   i   i   R;   R>   R   R   (   R   R   R   R   R   RÑ   R    (   RP   R;   R–   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_groupby_agg_grouper_single	  s
    """t   slice_c         C   sŸ   t  j i d d d d g d 6d d d d g d 6ƒ } t j | d d ƒ} | j d ƒ |  j d d	 g ƒ } | j d ƒ |  j d d	 g ƒ } t | | ƒ d  S(
   Ni   i   i   i   R;   R<   R>   R   R   (   R   R   R   R   R   RÑ   R    (   R9  RP   R;   R–   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt!   test_groupby_agg_grouper_multiple  s
    5""R   c      	   C   sA  d „  } t  j i d d d d d d g d 6d d d d d d g d 6t j d ƒ d 6d d d d d d g d 6ƒ j d ƒ } t j | d	 | j j ƒ  ƒ} t j | d	 | j j ƒ  d
 t	 ƒ} | | j
 d d g ƒ |  ƒ } |  d d h k r | j t ƒ } n  | | j
 d d g ƒ |  ƒ } t | | ƒ | | j
 d d g ƒ |  ƒ } t | | ƒ d d d d d d d d d h	 } |  | k r±| j
 d d g ƒ j |  ƒ } t | | ƒ n  | | j
 d d g ƒ |  ƒ } |  d d h k ró| j t ƒ } n  | | j
 d d g ƒ |  ƒ } t | | ƒ | | j
 d d g ƒ |  ƒ } t | | ƒ |  | k rƒ| j
 d d g ƒ j |  ƒ } t | | ƒ n  | | j
 d ƒ |  ƒ } |  d d h k r¿| j t ƒ } n  | | j
 d ƒ |  ƒ } t | | ƒ | | j
 d ƒ |  ƒ } t | | ƒ |  | k r=| j
 d ƒ j |  ƒ } t | | ƒ n  d  S(   Nc         [   s   t  |  | ƒ |   S(   N(   Rr   (   Rc   R´   Rµ   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR¶   %  s    i   i   t   idxR;   i   R<   RO   R>   R  R   R   R   R	   R
   R   R   R   R   (   R   R   R5   Rÿ   Rj   R   R   R=   R   RU   R   Ru   Rv   R    RÑ   (   R   R¶   RC   R&   t   ddf_no_divsR   R–   t   aca_agg(    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt'   test_groupby_column_and_index_agg_funcs   sN    	"	$!t
   group_argsR;  t
   apply_funcc         C   s   t  j |  ƒ t  j |  ƒ S(   N(   R5   R   R   (   RŽ   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   n  RA   c      	   C   s´  t  j i d d d d d d g d 6d d d d d d g d 6t j d ƒ d 6ƒ j d ƒ } t j | d | j j ƒ  ƒ} t j | d | j j ƒ  d t	 ƒ} | j
 |  ƒ j | ƒ } t j ƒ  î t j d	 ƒ | j
 |  ƒ j | ƒ } t | | d
 t	 ƒ| j | j k st ‚ t | j ƒ t | j ƒ | j k s<t ‚ | j
 |  ƒ j | ƒ } t | | d
 t	 ƒ| j | j k st ‚ t | j ƒ t | j ƒ | j k sªt ‚ Wd  QXd  S(   Ni   i   R;  R;   i   R<   R>   R  RE   t   check_divisions(   R   R   R5   Rÿ   Rj   R   R   R=   R   RU   R   RK   RH   RI   RJ   R    t	   divisionsR   R‹   RS   R>   (   R?  R@  RC   R&   R<  R   R–   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt#   test_groupby_column_and_index_applyk  s"    "	$+c         C   s   |  j  ƒ  |  j ƒ  f S(   N(   R   R   (   RŽ   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   —  RA   c         C   s   |  j  ƒ  | j  ƒ  f S(   N(   R   (   t   s0t   s1(    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ˜  RA   c         C   s   | |  S(   N(    (   RD  RE  (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ™  RA   c         C   s
   |  j  ƒ  S(   N(   R   (   RŽ   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   œ  RA   c         C   s
   |  j  ƒ  S(   N(   R   (   RD  (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   œ  RA   s#   pandas_spec, dask_spec, check_dtypec         C   s“   t  j i d d d g d d 6d d d g d d 6ƒ } t j | d d ƒ} | j d ƒ j |  ƒ } | j d ƒ j | ƒ } t | | d | ƒd  S(	   Ni    i   i   Rc   i   R<   R>   RQ   (   R   R   R   R   R   Ræ   R    (   t   pandas_spect	   dask_specRQ   RC   R&   R   R–   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt%   test_dataframe_groupby_agg_custom_sumŸ  s
    7s   pandas_spec, dask_specc         C   s£   t  j i d d d g d d 6d d d g d d 6ƒ } t j | d d ƒ} | d j | d ƒ j |  ƒ } | d j | d ƒ j | ƒ } t | | d t ƒd  S(	   Ni    i   i   Rc   i   R<   R>   RQ   (   R   R   R   R   R   Ræ   R    RU   (   RF  RG  RP   R;   R   R–   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt#   test_series_groupby_agg_custom_mean¯  s
    7  c          C   s¤   t  j i d d d g d d 6d d d g d d 6ƒ }  t j |  d d ƒ} t j d d	 „  d
 „  ƒ } t j t ƒ ( | j d ƒ j	 i | d g d 6ƒ Wd QXd S(   s7   for a single input column only unique names are allowedi    i   i   Rc   i   R<   R>   R   c         S   s
   |  j  ƒ  S(   N(   R   (   RŽ   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   Ã  RA   c         S   s
   |  j  ƒ  S(   N(   R   (   RD  (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   Ã  RA   N(
   R   R   R   R   t   AggregationR+   R,   RV   R   Ræ   (   RP   R;   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt=   test_groupby_agg_custom__name_clash_with_internal_same_column¾  s
    7c          C   sä   t  j i d d d g d d 6d d d g d d 6d d d	 g d d
 6ƒ }  t j |  d d ƒ} t j d d „  d „  d „  ƒ } | j d ƒ j i | d 6d d
 6ƒ } |  j d ƒ j i d d 6d d
 6ƒ } t | | d t ƒd S(   sE   custom aggregation functions can share the name of a builtin functioni    i   i   Rc   i   R<   i   i   i   RO   R>   R   c         S   s   |  j  ƒ  |  j ƒ  f S(   N(   R   R   (   RŽ   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   Ñ  RA   c         S   s   |  j  ƒ  | j  ƒ  f S(   N(   R   (   RD  RE  (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   Ò  RA   c         S   s   | |  S(   N(    (   RD  RE  (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   Ó  RA   R   RQ   N(	   R   R   R   R   RJ  R   Ræ   R    RU   (   RP   R;   R   R–   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pytB   test_groupby_agg_custom__name_clash_with_internal_different_columnÉ  s    K&&c          C   s4  d „  }  t  j d d „  |  d „  ƒ } t j i d d d d d g d d 6d d d d d g d d	 6d
 d d
 d d g d d 6ƒ } t  j | d d ƒ} | d j | d | d	 g ƒ j | ƒ } t j i d d g d 6d d g d	 6d
 d g d 6ƒ } | d j | d | d	 g ƒ j d ƒ } t | | ƒ d  S(   Nc         S   s   d „  } |  j  | ƒ S(   Nc         S   sG   |  j  d \ } x- |  j  d D] \ } | j | d d ƒ} q W| g S(   Ni    i   t
   fill_value(   R«   t   add(   RŽ   R}   R¯   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   implâ  s    (   RK   (   RŽ   RO  (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   agg_modeá  s    	t   custom_modec         S   s   |  j  d „  ƒ S(   Nc         S   s   |  j  ƒ  g S(   N(   t   value_counts(   RŽ   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   î  RA   (   RK   (   RŽ   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   î  RA   c         S   s   |  j  d „  ƒ S(   Nc         S   s   |  d j  ƒ  S(   Ni    (   t   idxmax(   R¯   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ð  RA   (   R’   (   RŽ   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   ð  RA   i    i   i   t   g0t   g1i   i   i   t   ccR>   R   (   R   RJ  R   R   R   R   RÑ   R    (   RP  R   RP   R;   t   actualR   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_groupby_agg_custom__modeÞ  s    		 *6*c          C   s±   t  j i d d d d d d d d d g	 d 6d d d d	 d
 d d d d g	 d 6ƒ }  t j |  d d ƒ} | j d ƒ d j d ƒ } |  j d ƒ d j d ƒ } t | | ƒ d  S(   Ni   i   i   i   R*   g¢E¶óýÔè¿gš™™™™™Ù¿gV-²ïë¿gÙÎ÷Sã¥«?gNbX9´ö?g¼t“Vî¿g‹lçû©ñî¿g•C‹lû¿gZd;ßOå¿R3   R>   R   (   R   R   R   R   R   RÑ   R    (   R%   R&   RW  R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_groupby_select_column_agg  s    +c         C   s
   |  j  ƒ  S(   N(   R
   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@     RA   c         C   s   |  j  d ƒ j ƒ  S(   NR   (   R   R
   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@     RA   c         C   s   |  j  d ƒ j ƒ  S(   NR   (   R   R   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@     RA   c         C   s   |  j  d ƒ j ƒ  S(   NR   (   R   R   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@     RA   c         C   s   |  j  d ƒ j ƒ  S(   NR   (   R   R   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@     RA   c         C   s   |  j  d ƒ j j ƒ  S(   NR   (   R   R  R
   (   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@     RA   c         C   sq   t  j i d d d g d 6d d d g d 6d d	 d
 g d 6ƒ } t j | d d ƒ} t |  | ƒ |  | ƒ ƒ d  S(   Ni   i   R   R;   R<   RO   R   g      &@g      6@g     €@@R  R>   (   R   R   R   R   R    (   RD   RC   R&   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_std_object_dtype  s    		c          C   sE   t  j j ƒ  j d  }  t |  j d ƒ j ƒ  |  j d ƒ j ƒ  ƒ d  S(   Ni   t   name(   RS   t   datasetst
   timeseriest
   partitionsR    R   R
   (   RC   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_timeseries   s    s   0.22.0s_   Parameter min_count not implemented in DataFrame.groupby().sum() and DataFrame.groupby().prod()t	   min_counti    i   c         C   sg  t  j i d d d g d 6t j d d g d 6t j d d g d	 6d d
 d g d 6ƒ t  j i d d d g d 6d t j t j g d 6t j d d g d	 6d d
 d g d 6ƒ g } g  | D] } t j | d d
 ƒ^ q´ } x‹ t | | ƒ D]z \ } } t | j d ƒ j	 d |  ƒ | j d ƒ j	 d |  ƒ ƒ t | j d ƒ j
 d |  ƒ | j d ƒ j
 d |  ƒ ƒ qå Wd  S(   NR*   R3   t   groupi   i   t   val1i   i   t   val2i   i	   t   val3R>   R`  (   R   R   R5   R  R   R   t   zipR    R   R   R   (   R`  t   dfsRC   t   ddfsR&   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_with_min_count&  s     		(c          C   sõ   t  j i d d d d g d 6d d d d g d 6ƒ }  t j |  d d ƒj d ƒ } |  j d ƒ } d	 „  } | j d ƒ j | ƒ } t | | j d ƒ j | d
 | ƒƒ | j d d t ƒj | ƒ } t | | j d d t ƒj | d
 | ƒƒ d  S(   Ni   i   i   R;   i   i   R<   R>   c         S   s
   |  j  ƒ  S(   N(   t   copy(   Rc   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyR@   H  RA   RR   t
   group_keys(	   R   R   R   R   Rj   R   RK   R    RU   (   RC   R&   R%   RD   R   (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   test_groupby_group_keys@  s    		%(e   Ré   RH   t   numpyR5   t   pandasR   t   pandas.util.testingRÅ   RÆ   R£   R+   RS   t   dask.dataframet	   dataframeR   t   dask.dataframe.utilsR    R   R   R   R·   t   fixtureR   R)   R2   R:   RN   R\   t   markt   parametrizeR   t   xfailR  RU   Ra   Rd   Rq   R{   R~   R‡   R   R”   R—   Rž   R¡   R¦   R©   R°   R¸   Rº   R¾   R¿   RÉ   RÍ   RÎ   R   R   R
   R   Rn   RÒ   RÔ   RÕ   Rä   Ró   Rô   Rõ   Rù   Rü   Rý   R  R  R	  R  R  R  R  R"  R3  R6  R7  R8  R:  R>  R   R   RC  RJ  t   custom_meant
   custom_sumRH  RI  RK  RL  RX  RY  RZ  R_  t   skipifRh  Rk  (    (    (    s@   lib/python2.7/site-packages/dask/dataframe/tests/test_groupby.pyt   <module>   sF  "*	-				7'	$&							
				$¯$3	-3			
	&)$%,!			,		0				!-$	#				
*$I	$	*'8	'			%	
	-