ó
šxŠ\c           @  s:  d  d l  m Z d  d l m Z d  d l m Z d  d l m Z d  d l Z d  d l	 Z	 d  d l
 m Z m Z m Z m Z m Z m Z m Z m Z 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 d  d l  j! j" Z# d  d l$ j% j& Z' d  d	 l$ m( Z( m) Z) m* Z* d
 „  Z+ e	 j, j- d d d d d g ƒ d „  ƒ Z. d „  Z/ d „  Z0 d „  Z1 d „  Z2 d „  Z3 e	 j, j- d d d d d d d g ƒ d „  ƒ Z4 d „  Z5 d „  Z6 d „  Z7 d „  Z8 d „  Z9 d „  Z: d „  Z; d  „  Z< e	 j, j- d! d" „  d# „  g ƒ e	 j, j= d$ ƒ d% „  ƒ ƒ Z> d& „  Z? d' „  Z@ d( „  ZA d) „  ZB d* „  ZC d+ „  ZD d, „  ZE d- „  ZF d. „  ZG d/ „  ZH d0 „  ZI d1 „  ZJ d2 „  ZK d3 „  ZL d4 „  ZM d5 „  ZN d6 „  ZO d7 „  ZP d8 „  ZQ d9 „  ZR d: „  ZS d; „  ZT d< „  ZU d= „  ZV d> „  ZW d? „  ZX d@ „  ZY dA „  ZZ dB „  Z[ e	 j, j= dC ƒ dD „  ƒ Z\ dE „  Z] dF „  Z^ dG „  Z_ dH „  Z` dI „  Za dJ „  Zb dK „  Zc e	 j, j= d$ ƒ dL „  ƒ Zd e	 j, j= d$ ƒ dM „  ƒ Ze dN „  Zf dO „  Zg dP „  Zh dQ „  Zi dR „  Zj dS „  Zk dT „  Zl dU „  Zm e	 j, j- dV dW dW dX g g ƒ dY „  ƒ Zn dZ „  Zo d[ „  Zp d\ „  Zq d] „  Zr d^ „  Zs d_ „  Zt d` „  Zu da „  Zv e	 j, j- db dc dd de dc dd g dc de g g ƒ e	 j, j- df dg dh dg dh g g ƒ di „  ƒ ƒ Zw dj „  Zx dk „  Zy dl „  Zz dm „  Z{ dn „  Z| do „  Z} dp „  Z~ dq „  Z d S(r   iÿÿÿÿ(   t   print_function(   t   defaultdict(   t   datetime(   t   DecimalN(   t   OrderedDictt   StringIOt   lmapt   lranget   lzipt   mapt   ranget   zip(   t   PerformanceWarning(	   t	   DataFramet   Indext
   MultiIndext   Panelt   Seriest	   Timestampt   compatt
   date_ranget   read_csv(   t   assert_almost_equalt   assert_frame_equalt   assert_series_equalc          C  s:   t  t j d d d d ƒ ƒ }  d } |  | k s6 t ‚ d  S(   Nt   keyt   At   levelt   Bs/   Grouper(key='A', level='B', axis=0, sort=False)(   t   reprt   pdt   Groupert   AssertionError(   t   resultt   expected(    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt	   test_repr   s    t   dtypet   int64t   int32t   float64t   float32c           s^  t  t j d ƒ d d t j d ƒ d |  ƒ} t j d ƒ } t j j | ƒ | j | ƒ } | j d „  ƒ } x, | D]$ \ } } t | ƒ d k su t ‚ qu W| j	 t j
 ƒ } | d d k sÅ t ‚ t | | j t j
 ƒ ƒ t | | j
 ƒ  ƒ t | j t j ƒ | j ƒ  ƒ | j d „  ƒ } | j d „  ƒ } | d	 d
 k sJt ‚ t | | ƒ | j | ƒ }	 t |	 j	 t j
 ƒ | d t ƒ| j	 t j
 t j g ƒ } t j t d t ƒ( | j	 i t j
 d 6t j d 6ƒ } Wd  QXi d d 6d d 6d d 6‰  | j ‡  f d †  ƒ } | d d k s(t ‚ d }
 t j t d |
 ƒ | j	 d „  ƒ Wd  QXd  S(   Ni	   i   t   indexR$   c         S  s   |  d S(   Ni   (    (   t   x(    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   <lambda>)   s    i   c         S  s   |  |  j  ƒ  S(   N(   t   sum(   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   5   s    c         S  s   |  |  j  ƒ  S(   N(   R,   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   6   s    i   i   t   check_index_typet   check_stacklevelt   onet   twoi
   i    i   i   i   c           s   ˆ  |  j  |  j ƒ  S(   N(   t   namet   mean(   R*   (   t   group_constants(    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   F   s    i   s   Must produce aggregated valuet   matchc         S  s   |  d S(   Ni   (    (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   M   s    (   R   t   npt   aranget   randomt   shufflet   reindext   groupbyt   lenR    t	   aggregateR2   R   t   aggR,   t   applyt	   transformt   Falset   stdt   tmt   assert_produces_warningt   FutureWarningt   pytestt   raisest	   Exception(   R$   t   dataR)   t   groupedt   kt   vt   aggedR"   t   transformedt   value_groupedt   msg(    (   R3   s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt
   test_basic    s:    .
)c   	      C  sã   |  j  j d } |  j | ƒ } | j ƒ  } |  j | j d ƒ ƒ j ƒ  } t | | ƒ | j ƒ  } t t | ƒ ƒ | d <d „  } | j d ƒ j	 | ƒ } | j
 ƒ  j ƒ  } t i d d 6d d	 6d d
 6ƒ j ƒ  } t | | ƒ d  S(   Ni    t   Ot   valuec         S  s   |  j  |  d j ƒ  S(   NRR   (   t   loct   idxmax(   t   group(    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt	   max_value\   s    R   i   R'   i   R%   t   object(   R)   t   codesR:   R,   t   astypeR   t   copyR   R;   R>   t   get_dtype_countst   sort_valuesR   R   (	   t   mframet   df_mixed_floatsR   RI   R!   R"   t   dfRV   t   applied(    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_groupby_nonobject_dtypeP   s    	c          C  s‡  t  i d d 6d d 6i d d 6d d 6i d d 6d d 6i d d 6d d 6g ƒ }  d	 „  } |  j d d
 t ƒj | ƒ } t | t ƒ sŒ t ‚ t  i d d 6d d 6i d d 6d d 6i d d 6d d 6i d d 6d d 6g ƒ } d „  } | j d d
 t ƒj | ƒ } t | t ƒ st ‚ t  d d g d d g g d d d g ƒ} | j d d
 t ƒj ƒ  } t | t  ƒ srt ‚ t  t	 d d d d d d d d g d t t
 j d ƒ d d ƒd t d d d ƒƒ ƒ } d „  } | j d ƒ j ƒ  d g } | j d ƒ j | ƒ d g } t | | ƒ d „  } | j d ƒ j | ƒ d g } | j ƒ  } t
 j | j d <t | | ƒ d „  } | j d ƒ j | ƒ d g } | j ƒ  } t
 j | j d <t | | ƒ d „  } | j d ƒ j | ƒ d g } | j d ƒ j ƒ  d g } t j | j d <t | | ƒ d „  } | j d ƒ j | ƒ } | j d ƒ j ƒ  d j ƒ  } t
 j | j d <d  | _ t | | ƒ d  S(   Ni   t   val1i   t   val2i   i   i   i   c         S  s   |  d |  d j  ƒ  S(   NRc   (   R2   (   t   dataf(    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   funcq   s    t   squeezec         S  s   |  d |  d j  ƒ  S(   NRc   (   R2   (   Rd   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyRe   ~   s    t   columnst   Xt   YR   t   Tigert   Lambt   PonyR   i   R$   R%   t   Ct   20130101t   periodsc         S  s   |  j  d S(   Ni    (   t   iloc(   t   grp(    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   f   s    c         S  s   |  j  d k r d  S|  j d S(   NRj   i    (   R1   t   NoneRp   (   Rq   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyRr   —   s    c         S  s   |  j  d k r d  S|  j d S(   NRl   i    (   R1   Rs   Rp   (   Rq   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyRr   ¡   s    c         S  s   |  j  d k r d  S|  j d S(   NRl   i    (   R1   Rs   Rp   (   Rq   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyRr   ¬   s    c         S  s%   |  j  d k r d  S|  j d j d S(   NRl   i    Rm   (   R1   Rs   Rp   RS   (   Rq   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyRr   ·   s    (   R   R:   t   TrueR>   t
   isinstanceR   R    R@   t   countt   dictR5   R6   R   t   firstR   RZ   t   nanRS   R   t   NaTRs   R1   R   (   t   df1Re   R!   t   df2R_   Rr   R"   t   e(    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_groupby_return_typeg   s`    		*						c         C  sî  d  d d „ } d „  } |  j d „  ƒ } | j t j d d d ƒ} | j t j d d d ƒ} | j t j d d d ƒ} | j d ƒ } | j | ƒ }	 t | | ƒ t | | d t	 ƒt | |	 ƒ | j | d	 d ƒ} | j | d	 d ƒ} | j | d	 d ƒ} t | | ƒ t | | ƒ t | |	 ƒ | j d
 „  ƒ }
 |
 j t j d d d ƒ} |
 j t
 j d ƒ } |
 j d ƒ } t | | ƒ t | | d t	 ƒ|
 j | d	 d ƒ} |
 j t
 j d	 d ƒ} t | | d t	 ƒt | | ƒ d  S(   Ni    c         S  s   t  j |  | d | ƒS(   Nt   axis(   R5   t
   percentile(   R*   t   qR   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyRr   Å   s    c         S  s   t  j |  d d d ƒS(   NiP   R   i    (   R5   R€   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   È   s    c         S  s   |  j  S(   N(   t   month(   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   Ë   s    iP   R   gš™™™™™é?t   check_namesR   c         S  s   |  j  S(   N(   R‚   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   ß   s    (   Rs   R:   R=   R5   R€   R>   R?   t   quantileR   R@   R   R   (   t   tst   tsframeRr   t   gt
   ts_groupedt
   agg_resultt   apply_resultt   trans_resultt   agg_expectedt   trans_expectedt
   df_groupedR"   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_pass_args_kwargsÃ   s6    	c          C  s5  t  j ƒ  }  |  j d „  d „  d „  g ƒ } t | ƒ t |  ƒ k sK t ‚ |  j d „  d „  g ƒ } t d „  |  j Dƒ ƒ } t | ƒ | k s— t ‚ t j t d t	 j
 g d d	 d
 d d g ƒ ƒ }  t |  j d ƒ ƒ d k sé t ‚ t |  j d	 ƒ ƒ d k s
t ‚ t |  j d d	 g ƒ ƒ d k s1t ‚ d  S(   Nc         S  s   |  j  S(   N(   t   year(   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   î   s    c         S  s   |  j  S(   N(   R‚   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   î   s    c         S  s   |  j  S(   N(   t   day(   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   ï   s    c         S  s   |  j  S(   N(   R   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   ò   s    c         S  s   |  j  S(   N(   R‚   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   ò   s    c         S  s"   h  |  ] } | j  | j f ’ q S(    (   R   R‚   (   t   .0R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pys	   <setcomp>ó   s   	 t   ai   t   bi   i   i    (   RB   t   makeTimeDataFrameR:   R;   R    R)   R   R   Rw   R5   Ry   (   R_   RI   R"   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_lenì   s    1!!c          C  s   g  t  d d ƒ d D] }  d |  ^ q d  } t | t  d t | ƒ ƒ ƒ } t j j d ƒ } t | t  d t | ƒ ƒ ƒ d } | j | ƒ } | j ƒ  d  S(	   Ni   i
   g      ð?iG  i    iL  g      $@(   iL  (   R   R   R;   R5   R7   R:   R2   (   R*   t   TR!   t	   groupingsRI   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_basic_regressioný   s    ."t   int16t   int8c         C  s2  t  t j d ƒ ƒ } t t j d ƒ | d |  ƒ} t t j d d d t j t j d d t j d g
 d | ƒ} | j | ƒ } | j t ƒ } t d d g d d d g ƒ} t	 | | d t
 ƒd	 „  } | j | ƒ } t d d g d d d g ƒ} t	 | | d t
 ƒt | j j t j |  ƒ j ƒ s.t ‚ d  S(
   Ni
   R$   t   foot   barR)   i   i   t   check_dtypec         S  s   t  t |  ƒ ƒ S(   N(   t   floatR;   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyRr     s    (   R   R5   R6   R   t   onesRy   R:   R=   R;   R   R@   t
   issubclassR$   t   typeR    (   R$   R)   t   valuest   labelsRI   RL   R"   Rr   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_with_na_groups	  s    	c       	   C  s¢  d „  }  d „  } d „  } t  i d d d d g d 6t d ƒ d 6t d	 d
 ƒ d 6ƒ } t  i d d d d g d 6t d ƒ d 6t d	 d
 ƒ d 6ƒ } | j d ƒ j |  ƒ } | j d ƒ j |  ƒ } t | | ƒ d } t j t d | ƒ | j d ƒ j | ƒ Wd  QXt j t d | ƒ | j d ƒ j | ƒ Wd  QXt j t d | ƒ | j d ƒ j | ƒ Wd  QXt j t d | ƒ | j d ƒ j | ƒ Wd  QXd  S(   Nc         S  s   |  |  j  d d k d } | j rr t d g  g d d g  g d d d d g ƒ } t d  d d	 g d
 | ƒ} | S| j d d g ƒ } | Sd  S(   Ni   i   t   levelsRX   t   namesR”   t   cRg   R“   R)   (   R”   t   emptyR   R   Rs   t	   set_index(   R*   t   yt
   multiindext   res(    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   f1)  s    	 c         S  sH   |  |  j  d d k d } | j r+ t ƒ  S| j d d g ƒ } | Sd  S(   Ni   i   R”   R¨   (   R”   R©   R   Rª   (   R*   R«   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   f24  s
    	c         S  s}   |  |  j  d d k d } | j ru t d g  g d d g  g d d d d g ƒ } t d  d d	 d
 g d | ƒ} | S| Sd  S(   Ni   i   R¦   RX   R§   Rœ   R   Rg   R“   R”   R)   (   R”   R©   R   R   Rs   (   R*   R«   R¬   R­   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   f3<  s    	 i   i   R“   i   R”   i   i	   R¨   i   s@   Cannot concat indices that do not have the same number of levelsR4   (   R   R   R:   R>   R   RE   RF   R    (   R®   R¯   R°   R_   R|   t   result1t   result2RO   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt    test_indices_concatenation_order%  s"    			
<<c         C  sÃ   |  j  d „  ƒ } | j ƒ  } | j d „  ƒ } t | | ƒ | j ƒ  } d „  | Dƒ } t | ƒ j } t | | ƒ | j } | j d „  ƒ } d } t	 j
 t d | ƒ t | d ƒ Wd  QXd  S(   Nc         S  s
   |  j  ƒ  S(   N(   t   weekday(   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   ^  s    c         S  s   t  j |  d d ƒS(   Nt   ddofi   (   R5   RA   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   a  s    c         S  s%   i  |  ] \ } } | j  ƒ  | “ q S(    (   t   describe(   R’   R1   t   gp(    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pys
   <dictcomp>f  s   	 c         S  s   |  j  S(   N(   R$   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   l  s    s-   'SeriesGroupBy' object has no attribute 'foo'R4   Rœ   (   R:   RA   R=   R   R¶   R   R—   R   R$   RE   RF   t   AttributeErrort   getattr(   R…   RI   R!   R"   RO   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_attr_wrapper]  s    	c         C  s  |  j  d „  ƒ } | j t j ƒ } t | ƒ d k s< t ‚ t | j ƒ d k sW t ‚ |  j ƒ  } g  | j D] } | j	 ƒ  ^ qm | d <| j  d ƒ j t j ƒ } t
 | | d t ƒ|  j d ƒ j  d „  ƒ } | j d „  ƒ } t | ƒ d k sü t ‚ t | j ƒ d k st ‚ | j d	 „  ƒ } xS | D]K \ } } | j ƒ  }	 x0 | j D]% }
 t j | j |
 ƒ |	 d t ƒqRWq0Wx3 | D]+ \ } } | j d
 j	 ƒ  | k s†t ‚ q†W| j } | j } xK t j | ƒ D]: \ } } |  j j | | ƒ } | | k j ƒ  s×t ‚ q×Wd  S(   Nc         S  s
   |  j  ƒ  S(   N(   R´   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   u  s    i   i   R´   Rƒ   i   c         S  s
   |  j  ƒ  S(   N(   R´   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   ƒ  s    c         S  s   |  |  j  ƒ  S(   N(   R2   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   „  s    c         S  s
   |  j  ƒ  S(   N(   R2   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   ‰  s    i    (   R:   R<   R5   R2   R;   R    Rg   RZ   R)   R´   R   R@   t   headR?   RB   R   t   xst   groupst   indicesR   t	   iteritemst   taket   all(   R†   RI   t
   aggregatedt   tscopyR*   t   straggedRM   R1   RU   R2   t   idxR´   R½   R¾   RJ   RK   t	   samething(    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_frame_groupbyt  s2    &#		c         C  sû   i d d 6d d 6d d 6d d 6} |  j  | d d ƒ} | j t j ƒ } t | ƒ t |  ƒ k sg t ‚ t | j ƒ d k s‚ t ‚ d	 „  } |  j j  | d d ƒ} t | j	 | ƒ j | j	 | ƒ ƒ x/ | D]' \ } } t | j ƒ d k sÌ t ‚ qÌ Wd  S(
   Ni    R   R   i   Rm   t   DR   i   c         S  s   |  |  j  ƒ  S(   N(   R2   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   §  s    (
   R:   R<   R5   R2   R;   R    Rg   R—   R   R?   (   R†   t   mappingRI   RÂ   t   tft   groupedTRJ   RK   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_frame_groupby_columns  s    "	"c         C  s·  |  j  d ƒ } | j ƒ  } | j j d k s3 t ‚ |  j  d d t ƒj ƒ  } | j j d k sf t ‚ | j t j ƒ } | j j d k s t ‚ | j i t j d 6t j d 6ƒ } | j j d k sË t ‚ | d j ƒ  } | j j d k só t ‚ | d j t j ƒ } | j j d k s!t ‚ | d j t j t j g ƒ } | j j d k sXt ‚ t	 j
 t d t ƒ, | d j i t j d 6t j d 6ƒ } Wd  QX| j j d k s³t ‚ d  S(   NR   t   as_indexRm   RÈ   R.   Rœ   R   (   R:   R2   R)   R1   R    R@   R=   R5   RA   RB   RC   RD   (   R_   RI   R!   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_frame_set_name_single°  s&    #
-c      	   C  sR  |  d } |  d } |  j  | j | j g ƒ } | j ƒ  } |  j  d d g ƒ j ƒ  } t | j d  d  … d d g f | j d  d  … d d g f d t ƒt i t j j	 d ƒ d 6t j j	 d ƒ d 6t j
 d	 d	 d	 d
 d
 d
 g ƒ d 6t j
 d d d d d d g ƒ d 6d d d d d d d g ƒ}  |  j  d d g ƒ } | j t j ƒ d  S(   NR   R   Rm   RÈ   Rƒ   i   t   v1t   v2R”   R“   t   k1t   1t   2t   k2R)   R/   R0   t   threet   fourt   fivet   six(   R:   t   getR2   R   RS   R@   R   R5   R7   t   randnt   arrayR=   R,   (   R_   t   col1t   col2RI   RL   R"   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_multi_funcÌ  s    

"%c         C  sw   |  j  d d g ƒ d } | j t j t j g ƒ } t i | j t j ƒ d 6| j t j ƒ d 6ƒ } t | | ƒ d  S(   NR   R   Rm   R2   RA   (   R:   R=   R5   R2   RA   R   R   (   R_   RI   RL   R"   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt!   test_multi_key_multiple_functionsä  s
    c          C  sˆ  t  i d d d d d d d d d d d g d 6d d d d d d d d d d d g d 6d d d d d d d d d d d g d	 6t j j d
 ƒ d 6t j j d
 ƒ d 6t j j d
 ƒ d 6ƒ }  |  j d d g ƒ } t j t j g } | j | ƒ } t j	 | d j | ƒ | d j | ƒ | d j | ƒ g d d d d g d d ƒ} t
 | j t ƒ s_t ‚ t
 | j t ƒ swt ‚ t | | ƒ d  S(   NRœ   R   R   R/   R0   R   t   dullt   shinyRm   i   RÈ   t   Et   Ft   keysR   i   (   R   R5   R7   RÚ   R:   R2   RA   R=   R   t   concatRu   R)   R   R    R   (   RH   RI   t   funcsRL   R"   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt"   test_frame_multi_key_function_listí  s&    &t   opc         C  s
   |  j  ƒ  S(   N(   R,   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+     s    c         C  s
   |  j  ƒ  S(   N(   R2   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+     s    s   ignore:\nPanel:FutureWarningc         C  s¼  |  } | j  d d g ƒ } | | ƒ } t t ƒ } xj | j  d ƒ D]Y \ } } xJ | j  d ƒ D]9 \ } }	 | |	 j d  d  … d d g f ƒ | | | <q_ WqC Wd „  t j | ƒ Dƒ } t j | ƒ j d d ƒ } d \ | j	 _
 | j _
 xv d d g D]h }
 | | |
 ƒ } | |
 } | |
 j ƒ  } | j ƒ  } t | j | ƒ | ƒ t | j | ƒ | ƒ qù W| d j  | d | d g ƒ j ƒ  } | j  d d g ƒ j ƒ  d } t | | ƒ d  S(	   NR   R   Rm   RÈ   c         S  s%   i  |  ] \ } } t  | ƒ | “ q S(    (   R   (   R’   RJ   RK   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pys
   <dictcomp>  s   	i    i   (   R   R   (   R:   R   Rw   RS   R   R¿   R   t   fromDictt   swapaxest
   major_axisR1   t
   minor_axist   unstackR   t   reindex_likeR2   R   (   R_   Rè   RH   RI   R±   R"   t   n1t   gp1t   n2t   gp2t   colt
   result_colt   expt   pivotedt   pivoted2R!   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_groupby_multiple_columns  s*    5
'c         C  sC  |  j  d d t ƒ} | j t j ƒ } | j ƒ  } t | | ƒ | j t d t j g d t j g g ƒ ƒ } | j ƒ  } | j ƒ  d | d <t | | ƒ |  j  d d t ƒ} | d j ƒ  } t	 | ƒ j
 d i d d 6ƒ } t j t d t ƒ" | d j i t j d 6ƒ } Wd  QXt | | ƒ |  j  d d g d t ƒ} | j t j ƒ } | j ƒ  } t | | ƒ | j t d t j g d t j g g ƒ ƒ } | j ƒ  } | j ƒ  d | d <t | | ƒ | d j ƒ  } t	 | ƒ j
 d i d d 6ƒ } | d j i t j d 6ƒ } t | | ƒ t	 t j j d	 d
 d ƒ d d d d g ƒ}  t t j j d d d ƒ d d ƒ} |  j  | ƒ }	 |	 j d	 ƒ t |	 j t ƒ |  j  | ƒ j t ƒ ƒ xŠ d d d d d d g D]p }
 |  j  | d t ƒ}	 t |	 |
 ƒ ƒ  } |  j  | j d t ƒ}	 t |	 |
 ƒ ƒ  j d t ƒ } t | | ƒ qËWd  S(   NR   RÍ   Rm   RÈ   Rg   t   QR.   R   i    id   i2   i   t   jimt   joet   joliei   i
   R1   R2   t   maxRv   RT   t   cumsumRÁ   t   drop(   i2   i   (   R:   R@   R=   R5   R2   R   R   R,   Rt   R   t   renameRB   RC   RD   R7   t   randintR   t   nthR>   R¹   R£   t   reset_index(   R_   RI   R!   R"   R²   t	   expected2t	   expected3t   result3R…   t   grt   attrt   leftt   right(    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_groupby_as_index_agg%  sN    -
#-$(c         C  s®  |  j  d d t ƒ} |  j  d d g d t ƒ} | d j t j ƒ } | j t j ƒ j d  d  … d d g f } t | t ƒ s† t ‚ t	 | | ƒ | d j t j ƒ } | j t j ƒ j d  d  … d d d g f } t | t ƒ sì t ‚ t	 | | ƒ | d j ƒ  } | j ƒ  j d  d  … d d g f } t | t ƒ sCt ‚ t	 | | ƒ | d j ƒ  } | j ƒ  j d  d  … d d d g f } t | t ƒ st ‚ t	 | | ƒ d  S(   NR   RÍ   R   Rm   (
   R:   R@   R=   R5   R,   RS   Ru   R   R    R   (   R_   RI   t   grouped2R!   R"   R²   R  (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt!   test_as_index_series_return_framea  s$    +.%(c         C  sL   |  j  d d t ƒ} d } t j t d | ƒ | d j d ƒ Wd  QXd  S(   NR   RÍ   s   Column\(s\) C already selectedR4   Rm   RÈ   (   R:   R@   RE   RF   t
   IndexErrort   __getitem__(   R_   RI   RO   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt(   test_as_index_series_column_slice_raisesz  s    c         C  s%  |  } | j  d d t ƒ} | j ƒ  } | j  d g ƒ j ƒ  } | j d d | j ƒ t j t | ƒ ƒ | _ t | | ƒ | j  d d g d t ƒ} | j ƒ  } | j  d d g ƒ j ƒ  } t	 | j j
 Œ  } | j d d | d ƒ | j d d | d ƒ t j t | ƒ ƒ | _ t | | ƒ d  S(   NR   RÍ   i    R   i   (   R:   R@   R2   t   insertR)   R5   R6   R;   R   R   R£   (   R_   RH   RI   R!   R"   t   arrays(    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_groupby_as_index_cythonƒ  s    c         C  sj   |  j  d d g d t ƒ} | d j t ƒ } | j t ƒ j d  d  … d d d g f } t | | ƒ d  S(   NR   R   RÍ   Rm   (   R:   R@   R=   R;   RS   R   (   R_   RI   R!   R"   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt#   test_groupby_as_index_series_scalarš  s    +c         C  sz   d } t  j t d | ƒ | j d „  d t ƒWd  QXd } t  j t d | ƒ! |  j d „  d t d d ƒWd  QXd  S(	   Ns(   as_index=False only valid with DataFrameR4   c         S  s
   |  j  ƒ  S(   N(   R´   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   §  s    RÍ   s$   as_index=False only valid for axis=0c         S  s
   |  j  ƒ  S(   N(   t   lower(   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   «  s    R   i   (   RE   RF   t	   TypeErrorR:   R@   t
   ValueError(   R_   R…   RO   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_groupby_as_index_corner¤  s    c         C  sà   t  j ƒ  }  |  j d „  d „  d „  g ƒ } | j ƒ  } t |  j | j ƒ |  j j d „  d „  d „  g d d ƒ} | j d	 „  ƒ } t  j | j	 |  j
 ƒ t |  j j | j ƒ | j d
 „  ƒ } t |  j j | j ƒ d  S(   Nc         S  s   |  j  S(   N(   R   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   °  s    c         S  s   |  j  S(   N(   R‚   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   °  s    c         S  s   |  j  S(   N(   R‘   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   ±  s    c         S  s   |  j  S(   N(   R   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   µ  s    c         S  s   |  j  S(   N(   R‚   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   ¶  s    c         S  s   |  j  S(   N(   R‘   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   ·  s    R   i   c         S  s
   |  j  ƒ  S(   N(   R,   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   ¹  s    c         S  s
   |  j  ƒ  S(   N(   R,   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   ½  s    (   RB   R•   R:   R,   R   R£   R—   R=   t   assert_index_equalR)   Rg   (   R_   RI   RL   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_groupby_multiple_key®  s    c         C  sm   |  j  ƒ  }  t j |  d <|  j d d g ƒ j ƒ  } |  j d d g ƒ j ƒ  } t j | d <t | | ƒ d  S(   Nt   badR   R   (   RZ   R5   Ry   R:   R2   R   (   R_   RL   R"   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_groupby_multi_cornerÁ  s    c         C  sW  |  j  d ƒ } | j ƒ  } |  j d  d  … d d d g f j  d ƒ j ƒ  } t | | ƒ | j t j ƒ } | j ƒ  } t | | ƒ |  j d  d  … d d d g f }  t j ƒ  |  d <|  j  d ƒ } | j t j ƒ } | j ƒ  } t | | ƒ |  j  i d d 6d d 6d d 6d d 6d d ƒ} d } t	 j
 t d	 | ƒ | j d
 „  ƒ Wd  QXd  S(   NR   Rm   RÈ   Râ   i    i   R   s\   \("unsupported operand type\(s\) for \+: 'Timestamp' and 'float'", u?'occurred at index 0'\)R4   c         S  s   |  j  d d t ƒS(   Ni    t   numeric_only(   R,   R@   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   å  s    (   R:   R2   RS   R   R=   R5   R   t   nowR,   RE   RF   R  (   R_   RI   R!   R"   RL   Rõ   RO   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_omit_nuisanceÍ  s"    1"1c         C  sD   |  j  d d g ƒ } | j t j ƒ } | j ƒ  } t | | ƒ d  S(   NR   R   (   R:   R=   R5   R2   R   (   t   three_groupRI   RL   Rõ   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt"   test_omit_nuisance_python_multipleè  s    c      	   C  s5  t  i t j d d d d d d g ƒ d 6t j d d d d d d g ƒ d 6d d g d	 d
 6t j j d ƒ d 6t j j d ƒ d 6ƒ } | j d d g ƒ } | j t j ƒ } | j ƒ  } t | | ƒ |  d	 d !j d d ƒ } | j	 d „  ƒ } | d j	 t j ƒ } t
 | d | ƒ | j j d k s1t ‚ d  S(   NR”   R“   RÑ   RÒ   RÓ   RÔ   Rœ   R   i   t   k3i   RÏ   RÐ   i   R   i    c         S  s
   |  j  ƒ  S(   N(   R2   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   þ  s    R   Rx   (   R   R5   RÛ   R7   RÚ   R:   R=   R2   R   R>   R   R)   R1   R    (   R]   R_   RI   R!   R"   RL   t   agged_A(    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_empty_groups_cornerð  s    ("c          C  sE   t  d g ƒ }  d } t j t d | ƒ |  j d „  ƒ Wd  QXd  S(   Ni    s<   unsupported operand type\(s\) for \+: '(int|long)' and 'str'R4   c         S  s   |  d S(   NRœ   (    (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+     s    (   R   RE   RF   R  R:   (   R_   RO   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_nonsense_func  s    c         C  sÃ   |  j  } d | d <t j d d d g ƒ t j d d d g ƒ g } | j | ƒ j t j ƒ } t | j t ƒ sv t	 ‚ d „  } | j | ƒ j
 | ƒ } t | j ƒ d t | j ƒ k s¿ t	 ‚ d  S(   Nt   peekaboot   bazR0   i    i   c         S  s&   |  j  d k r t ‚ n
 |  j ƒ  Sd  S(   NRœ   R/   (   Rœ   R/   (   R1   R  R,   (   t   ser(    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   aggfun  s    	(   R'  R0   (   R—   R5   RÛ   R:   R=   R2   Ru   Rg   R   R    R<   R;   (   R]   R_   Rä   RL   R)  t   agged2(    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt%   test_wrap_aggregated_output_multindex  s    	
0	c         C  s˜   |  j  d d ƒ j ƒ  } | j j d k s0 t ‚ |  j  d d ƒ j ƒ  } | j j d k s` t ‚ |  d j  d d ƒ j ƒ  } | j j d k s” t ‚ d  S(   NR   i    Rx   i   t   secondR   (   R:   Rv   R)   R1   R    (   R]   R!   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_groupby_level_apply  s    c         C  s=  |  j  ƒ  } i d d 6d d 6d d 6d d 6} i d d 6d d 6d d	 6} |  j | d
 d ƒj ƒ  } |  j | d
 d ƒj ƒ  } t j g  | d D] } | j | ƒ ^ q ƒ } t j g  | d D] } | j | ƒ ^ q¿ ƒ } |  j | ƒ j ƒ  }	 |  j | ƒ j ƒ  }
 d \ |	 j _ |
 j _ t | |	 ƒ t | |
 ƒ d  S(   Ni    Rœ   R   i   R'  t   quxR/   R0   RÕ   R   Rx   R,  (   Rx   R,  (	   R  R:   R,   R5   RÛ   RÙ   R)   R1   R   (   R]   t	   deleveledt   mapper0t   mapper1t   result0R±   R*   t   mapped_level0t   mapped_level1t	   expected0t	   expected1(    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_groupby_level_mapper(  s    "//c          C  sZ  t  d d d d d d d d g t d d d d d d d d g d	 d
 ƒƒ }  t  d d d d d d g t t d d ƒ d	 d
 ƒƒ } |  j d d ƒ j ƒ  } t j | | ƒ |  j d d g ƒ j ƒ  } t j | | ƒ |  j d d ƒ j ƒ  } t j | | ƒ |  j d d g ƒ j ƒ  } t j | | ƒ d } t j t	 d | ƒ |  j d d ƒ Wd  QXt j t	 d | ƒ |  j d d ƒ Wd  QXd } t j t	 d | ƒ |  j d g  ƒ Wd  QXd } t j t	 d | ƒ |  j d d d g ƒ Wd  QXt j t	 d | ƒ |  j d d d g ƒ Wd  QXd } t j t	 d | ƒ |  j d d g ƒ Wd  QXd  S(   Ni   i   i   i
   i   i   i   i   R1   Rœ   i   i   i   R   i    iÿÿÿÿs2   level > 0 or level < -1 only valid with MultiIndexR4   iþÿÿÿs   No group keys passed!s*   multiple levels only valid with MultiIndex(
   R   R   R
   R:   R,   RB   R   RE   RF   R  (   t   sR"   R!   RO   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_groupby_level_nonmulti;  s8    -c          C  sˆ   t  d t j d ƒ d
 d d d d d g ƒ }  t  d d f ƒ } |  j d	 d ƒ j ƒ  } t | | ƒ |  j d	 d ƒ } t | | ƒ d  S(   NRH   i   i   y               @R)   i    i   y              $@R   y      ð?       @y      ð?       @y      @      $@(   R   R5   R6   R:   R,   R   (   R“   R"   R!   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_groupby_complex]  s    .c          C  sý   t  i d g d d g d d 6d g d d g d d	 g d d
 g d d g d d g d d	 g d d 6t d „  t d d ƒ ƒ d 6t j j d d d ƒd 6ƒ }  d „  } d „  } |  j d ƒ j | ƒ } |  j d ƒ j | ƒ } t | | ƒ d  S(   NR“   i   R”   i   t   cat1R¨   i   t   dR}   Rr   t   cat2c         S  s   d |  S(   Ns   g%s(    (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   q  s    i   i   t   cat3id   t   sizei   t   valc         S  s<   |  j  ƒ  }  |  j j d d ƒ |  d <|  j d ƒ d j ƒ  S(   Nt   methodt   mint   rankR=  (   RZ   R@  RC  R:   RB  (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   f_copyu  s    c         S  s0   |  j  j d d ƒ |  d <|  j d ƒ d j ƒ  S(   NRA  RB  RC  R=  (   R@  RC  R:   RB  (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt	   f_no_copyz  s    (	   R   R   R   R5   R7   R  R:   R>   R   (   R_   RD  RE  t
   grpby_copyt   grpby_no_copy(    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_mutate_groupsi  s    P		c          C  sŽ   t  i d d d d d d d d d g	 d 6t d ƒ d 6ƒ }  |  j d d t ƒj d „  ƒ } |  j d d t ƒj d	 „  ƒ } t | | ƒ d  S(
   Ni   i   i   R   i	   RR   t
   group_keysc         S  s   |  j  S(   N(   R   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   Š  s    c         S  s   |  j  S(   N(   R   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   ‹  s    (   R   R
   R:   Rt   R>   R   (   R_   R±   R²   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_no_mutate_but_looks_likeƒ  s    ;!!c          C  sÎ   t  d d d d d d d g d t d	 d
 d d d d d g ƒ ƒ}  t  d d d d d d g d t d	 d
 d d d d g ƒ ƒ} |  j | ƒ } | j ƒ  } |  j | j |  j ƒ j ƒ j ƒ  } t | | ƒ d  S(   Ng      @g      "Àg      @g      Y@g      Àg     €K@gÍÌÌÌÌÌ@R)   R“   R”   R¨   R<  R}   Rr   R‡   g      ð?g      @t   h(   R   R   R:   R2   R9   R)   RÙ   R   (   t   s1t   s2RI   RL   Rõ   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt'   test_groupby_series_indexed_differently  s    $!$c          C  s  t  t d d d d d d d d g d d d d d d d d g g Œ  ƒ }  t j |  ƒ } t j d d d d g ƒ } t t j j d d ƒ d | d | ƒ} | j d d ƒ j	 ƒ  } t
 j | j | ƒ | j d d d d ƒ j	 ƒ  } t
 j | j | j ƒ | j d d ƒ j t j	 ƒ } t
 j | j | ƒ | j d d ƒ j d „  ƒ } t
 j | j | ƒ | j d d d d ƒ j d „  ƒ } t
 j | j t d d	 g ƒ ƒ t
 j | j | j ƒ | j d ƒ \ } } d | d <| j d d ƒ j	 ƒ  } t
 j | j | j d  ƒ d  S(   NR   R'  Rœ   R.  R/   R0   R   t   catR   t   dogi   i   R)   Rg   R   i    R   i   c         S  s
   |  j  ƒ  S(   N(   R2   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   ­  s    c         S  s   |  j  d ƒ S(   Ni   (   R2   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   °  s    iÿÿÿÿ(   R   RO  (   R   RP  (   R   RO  (   R   RP  (   R   Rœ   (   t   listR   R   t   from_tuplesR   R5   R7   RÚ   R:   R2   RB   R  Rg   R)   R=   R>   R   t	   sortlevel(   t   tuplesR)   Rg   R_   R!   t   sorted_columnst   _(    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_groupby_with_hier_columns›  s,    '$
c         C  sN   |  j  |  d j ƒ } | j ƒ  } |  j  d ƒ j ƒ  } t | | d t ƒd  S(   NR   Rƒ   (   R:   R£   R,   R   R@   (   R_   RI   R!   R"   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_grouping_ndarray»  s    c          C  sh   d }  t  t |  ƒ d d ƒ}  |  j d d d d g ƒ } | j t j ƒ } | j ƒ  } t | | ƒ d  S(   Ns   index,foo,bar,baz,spam,data
0,foo1,bar1,baz1,spam2,20
1,foo1,bar2,baz1,spam3,30
2,foo2,bar2,baz1,spam2,40
3,foo1,bar1,baz2,spam1,50
4,foo3,bar1,baz2,spam1,60t	   index_coli    Rœ   R   R'  t   spam(   R   R   R:   R=   R5   R2   R   (   RH   RI   R!   R"   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_groupby_wrong_multi_labelsÄ  s    c         C  sî   |  j  |  d ƒ j ƒ  } |  j  |  d d t ƒj ƒ  } | j j d k sP t ‚ d | k sb t ‚ |  j  |  d |  d g ƒ j ƒ  } |  j  |  d |  d g d t ƒj ƒ  } | j j d k sÆ t ‚ d | k sØ t ‚ d | k sê t ‚ d  S(   NR   RÍ   R   (   R   R   (   R:   R2   R@   R)   R1   R    R§   (   R_   R!   R²   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_groupby_series_with_nameÕ  s    #c         C  st   |  j  d ƒ d } | j ƒ  j d k s. t ‚ | j ƒ  j d k sI t ‚ d „  } | j | ƒ j d k sp t ‚ d  S(   NR   Rm   c         S  s   t  j |  ƒ d S(   Ni   (   R5   R,   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   é  s    (   R:   Rv   R1   R    R2   R=   (   R_   R!   t   testFunc(    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_seriesgroupby_name_attrã  s
    	c       
   C  s¸   t  i d d d d d d d d g d 6d d d d d d d d g d 6t j j d ƒ d d	 6t j d ƒ d
 6ƒ }  |  j d g ƒ j j ƒ  } |  j j |  j ƒ j ƒ  } t	 | | ƒ d  S(   NRœ   R   R   R/   R0   R   i   g      ð?Rm   RÈ   (
   R   R5   R7   RÚ   R6   R:   R   Rv   R   R   (   R_   R"   R!   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_consistency_nameí  s    c         C  s¬   d  d „ } d „  } |  j d ƒ j | ƒ } | j j d  k sE t ‚ |  j d ƒ j | d ƒ } | j j d k sx t ‚ |  j d ƒ j | ƒ } | j j d  k s¨ t ‚ d  S(   Nc         S  s%   t  i d d 6d d 6d d 6d | ƒS(   Ni   Rv   i   R2   i   t	   omissionsR1   (   R   (   R_   R1   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt	   summarizeþ  s    c         S  s0   t  i d d 6d d 6d d 6d |  j d d	 ƒS(
   Ni   Rv   i   R2   i   R`  R1   i    R   (   R   Rp   (   R_   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   summarize_random_name  s
    
R   t   metrics(   Rs   R:   R>   Rg   R1   R    (   R_   Ra  Rb  Rc  (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_groupby_name_propagationü  s    	
c          C  ss   t  g  t d ƒ D] }  t j d ƒ ^ q ƒ } | j d ƒ } | j ƒ  } | j | d ƒ j ƒ  } t | | ƒ d  S(   Ni
   i    (   R   R
   R5   R6   R:   R2   R   (   R*   R_   RI   R!   R"   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_groupby_nonstring_columns  s
    .c       	   C  s«   t  d d d g g d d d d g ƒ}  t  d d g g d d d g d t d g d d ƒƒ} |  j d ƒ j ƒ  } t j | | ƒ |  j d ƒ j ƒ  } t j | | ƒ d  S(	   Ni    i   i   Rg   R   R   R)   R1   (   R   R   R:   Rx   RB   R   R,   (   R_   R"   R!   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_groupby_mixed_type_columns  s    's   ignore:Mean of:RuntimeWarningc          C  s–   t  j d ƒ }  |  j t  j ƒ t |  d  d  … d f d t d ƒ ƒ} t  j t d ƒ d ƒ } | j | ƒ j t j	 ƒ } | j
 ƒ  j ƒ  s’ t ‚ d  S(   Nid   i    R)   i
   (   id   id   (   R5   R©   t   fillRy   R   R   t   tileR:   R=   t   mediant   isnaRÁ   R    (   t   arrt   objt   indsR!   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt(   test_cython_grouper_series_bug_noncontig)  s    (c          C  s„   t  t j d d ƒ ƒ }  t t j j d ƒ d |  d  d  d … ƒ} t j j d d d ƒ } | j | ƒ } d „  } | j	 | ƒ d  S(	   Ni
   id   i2   R)   i   i    i   c         S  s   t  t t t |  j ƒ ƒ ƒ S(   N(   R;   t   setR	   t   idR)   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   >  s    (
   R   RB   t   rands_arrayR   R5   R7   RÚ   R  R:   R=   (   R)   R£   R¤   RI   Rr   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt#   test_series_grouper_noncontig_index4  s    +	c          C  sÛ   t  t d ƒ ƒ }  t j d d d d d g d d ƒ} d	 „  } d
 „  } |  j | ƒ } | j | ƒ } | j t j k s~ t ‚ t	 | d t
 ƒ s— t ‚ | j | ƒ } | j t j k s¾ t ‚ t	 | d t
 ƒ s× t ‚ d  S(   Ni   R“   R”   R¨   R<  R}   R$   RQ   c         S  s   t  t |  j ƒ  ƒ ƒ S(   N(   R   t   strR2   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   convert_fastG  s    c         S  s4   t  |  j j ƒ d k s t ‚ t t |  j ƒ  ƒ ƒ S(   Ni    (   R;   R£   t   baseR    R   Rs  R2   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   convert_force_pureJ  s    i    (   R   R   R5   RÛ   R:   R=   R$   t   object_R    Ru   R   (   R8  R¤   Rt  Rv  RI   R!   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt(   test_convert_objects_leave_decimal_aloneB  s    $		c          C  s±   t  i g  d 6t j d d d ƒd 6ƒ }  |  d j t j k sE t ‚ |  j d ƒ j ƒ  } t g  d d d t j ƒ} t  i t	 g  d | d d ƒd 6ƒ } t
 | | d t ƒd  S(	   NR*   i    R$   R%   R
   R1   R)   t	   by_blocks(   R   R5   R6   R$   R'   R    R:   Rx   R   R   R   Rt   (   R_   R!   t	   exp_indexR"   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt"   test_groupby_dtype_inference_emptyZ  s    )	c         C  s  |  j  t |  d ƒ ƒ j ƒ  } |  j  |  d ƒ j ƒ  } t | | d t ƒt j t d d ƒ  |  j  t |  d d  ƒ ƒ Wd  QXt i d d g d 6d	 d
 g d 6t	 j
 j d ƒ d 6ƒ }  |  j  d d g ƒ j ƒ  } |  j  |  d |  d g ƒ j ƒ  d g } d  S(   NR   Rƒ   R4   s   ^'foo'$iÿÿÿÿi    i   Rœ   i   i   R   i   R@  (   R:   RQ  R2   R   R@   RE   RF   t   KeyErrorR   R5   R7   RÚ   (   R_   R!   R"   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt"   test_groupby_list_infer_array_likef  s    !c          C  s¶   d }  t  j d t  j d ƒ d d d |  ƒ } t  j d d g d	 d
 g g d d d g d | ƒ} | j t  j d d d |  ƒ d g ƒ j ƒ  } | j | j d g ƒ } t	 | | ƒ d  S(   NR8  t   starts   2015-09-29T11:34:44-0700Ro   i   t   freqR   i
   R   i   Rg   t   metricR£   R)   R   i    (
   R   R   R   R   R:   R   R2   Rª   R)   R   (   R  R)   R_   R!   R"   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt$   test_groupby_keys_same_size_as_indexw  s    	-c          C  s°   d }  t  j t j j d d ƒ d t d ƒ ƒ} t j t d |  ƒ | j	 d ƒ Wd  QXt  j t j j d d ƒ d t d ƒ ƒ} t j t d |  ƒ | j	 d ƒ Wd  QXd  S(	   Ns   ^'Z'$i   i   Rg   t   ABCDR4   t   Zi   (
   R   R   R5   R7   RÚ   RQ  RE   RF   R|  R:   (   RO   R{   R|   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_groupby_one_row…  s    **c          C  sŸ  t  j i t j j d ƒ d 6t j t  j d ƒ t j t  j d ƒ t j t  j d ƒ t j t  j d ƒ g d 6t j d t j d t j d t j d g d 6ƒ }  |  j d ƒ } t  j d	 d
 g ƒ t  j d d g ƒ g } t	 | j
 j ƒ  ƒ } t | ƒ d k st ‚ x4 t | | ƒ D]# \ } } t j | j
 | | ƒ qWt j | j j d j |  ƒ | j d k skt ‚ i t j d	 d
 g d t j ƒt d ƒ 6t j d d g d t j ƒt d ƒ 6} x, | j D]! } t j | j | | | ƒ qÅWt j | j t d ƒ ƒ |  j d	 d
 g ƒ t j | j t d ƒ ƒ |  j d d g ƒ t j t d d ƒ | j t  j ƒ Wd  QXt i t j t j t j g d 6t  j t  j t  j g d 6ƒ } | d j  d k sÅt ‚ | d j  d k sÞt ‚ xº d d g D]¬ } | j | ƒ } | j
 i  k st ‚ | j d k s*t ‚ | j i  k s?t ‚ t j t d d ƒ | j t j ƒ Wd  QXt j t d d ƒ | j t  j ƒ Wd  QXqëWd  S(   Ni   R£   s
   2013-01-01s
   2013-02-01t   dtR“   R”   Rs  i   i   i   i   i   i    R$   s   2013-01-01 00:00:00s   2013-02-01 00:00:00R4   s   ^NaT$Ry   t   natR'   s   datetime64[ns]s   ^nan$(!   R   R   R5   R7   RÚ   Ry   R   R:   R   t   sortedR½   Rä   R;   R    R   RB   R  R   t   grouperR˜   Rl  t   ngroupsRÛ   R%   R¾   t   assert_numpy_array_equalt	   get_groupRp   RE   RF   R|  Rz   R$   (   R_   RI   R"   Rä   RJ   R}   t   nan_dfR   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_groupby_nat_exclude  sL    1*%(&&c         C  sƒ   |  d d g j  ƒ  } t j ƒ  } t j | ƒ d „  } | | j d „  ƒ ƒ | | d j d „  ƒ ƒ | | j |  d ƒ ƒ d  S(   NRm   RÈ   c         S  s.   |  j  ƒ  |  j t j  ƒ t t |  ƒ ƒ d  S(   N(   R2   R=   R5   Rw   t   iter(   R·   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   _check_workÌ  s    
c         S  s   |  d S(   Ni   (    (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   Ò  s    c         S  s   |  d S(   Ni   (    (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   Ó  s    R   (   t	   to_sparseRB   t	   makePanelt   add_nansR:   (   R_   t   sdft   panelR  (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_sparse_friendlyÆ  s    	c          C  sK  t  j ƒ  }  t  j |  ƒ |  j i d d 6d d 6d d 6d d ƒ} | j ƒ  } | j d „  ƒ } t  j | | ƒ t  j | j t	 d d g ƒ ƒ |  j d	 „  d d
 ƒ} | j ƒ  } t	 t
 t t |  j j ƒ ƒ ƒ ƒ } t  j | j | ƒ |  j i d d 6d d 6d d 6d d 6d d ƒ} | j ƒ  } t  j | j t	 d d g ƒ ƒ d  S(   Ni    t   ItemAt   ItemBi   t   ItemCR   t   itemsc         S  s   |  j  d ƒ S(   NR™  (   R2   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   á  s    c         S  s   |  j  S(   N(   R‚   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   ç  s    t   majorR   R   Rm   RÈ   t   minor(   RB   R‘  R’  R:   R2   R=   t   assert_panel_equalR  R™  R   R‡  RQ  Ro  Rë   R‚   Rì   (   R”  RI   RL   R*  Rõ   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_panel_groupbyÚ  s     !	$(	c          C  sÍ   t  d t d ƒ ƒ }  d d g |  d <d d g |  d <d d g |  d	 <d
 d g |  d <|  j d g ƒ j ƒ  } t j d d g d d g g d t j ƒ} t j | j	 t
 d d	 g ƒ ƒ t j | j | ƒ d  S(   NR)   i   t   g1t   g2RU   i    t   zerosi   R    t   l1t   l2t   labelR$   (   R   R   R:   R2   R5   RÛ   R%   RB   R  Rg   R   RŠ  R£   (   R<  t   tmpt
   res_values(    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_groupby_2d_malformedó  s    *c          C  sá   t  j t  j d ƒ t  j d ƒ t  j d ƒ f ƒ }  t  j d ƒ } t i | d 6|  d 6| d 6|  d 6t  j j d ƒ d 6ƒ } | j d d d d g ƒ j ƒ  } | j d d d d g ƒ j ƒ  } t | ƒ t | ƒ k sÝ t	 ‚ d  S(	   Ni'  iˆ  i¨a  R   R   Rm   RÈ   Râ   (
   R5   t   concatenateR6   R   R7   RÚ   R:   R,   R;   R    (   R   R   R_   R	  R
  (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_int32_overflowÿ  s    3!!c          C  sC  t  i d d d g d 6d d d g d 6d	 d d g d
 6t j j d ƒ d 6ƒ }  t t |  d d d
 g j ƒ } t j | ƒ } |  j	 d d d
 g d t
 ƒj ƒ  } t j | j j | d d d	 g ƒ t t |  d
 d d g j ƒ } t j | ƒ } |  j	 d
 d d g d t
 ƒj ƒ  } t j | j j | ƒ t t |  d d
 d g j ƒ } t j | ƒ } |  j	 d d
 d g d t
 ƒj ƒ  } t j | j j | d d d	 g ƒ t  i d	 d d d	 d d g d 6d	 d	 d	 d d d g d 6t j j d ƒ d 6ƒ }  |  j	 d d g ƒ d } | j ƒ  } d „  d „ } | |  | d d g d ƒ d  S(   NRœ   R   R'  R“   i   i   i   R”   i    R¨   R<  t   sorti   c         S  s
   |  j  ƒ  S(   N(   R,   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   )  s    c   	      S  sx   t  t |  | j ƒ } t j | ƒ } | |  j | ƒ | ƒ } x3 t j | ƒ D]" \ } } | | | k sN t ‚ qN Wd  S(   N(	   R   t   tupleR£   t   comt   asarray_tuplesafeR:   R   R¿   R    (	   R_   R!   Rä   t   fieldRr   t   tupsR"   RJ   RK   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   _check_groupby)  s
    (   R   R5   R7   RÚ   R   Rª  R£   R«  R¬  R:   Rt   R,   RB   RŠ  R)   (   R_   R®  R!   RI   R¯  (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_groupby_sort_multi  s.    $#$$#c          C  se   t  i d d d d d d g d 6d d d g d d 6ƒ }  |  j d ƒ j d	 „  ƒ } t | |  ƒ d  S(
   NR“   R”   R   Rœ   R   R'  i   R1   c         S  s   |  S(   N(    (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   7  s    (   R   R:   R>   R   (   R_   R!   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_dont_clobber_name_column3  s    c          C  sø   t  j ƒ  }  |  j d „  d t ƒ} | j d „  ƒ } g  | D]" \ } } | j d d ƒ d  ^ q= } t j | ƒ } t | | ƒ |  d j d „  d t ƒ} | j d „  ƒ } g  | D] \ } } | j ƒ  d  ^ q¶ } t j | ƒ } t	 | | ƒ d  S(	   Nc         S  s   |  j  S(   N(   R‚   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   ?  s    RI  c         S  s   |  j  d d ƒ d  S(   Nt   byR   i   (   R\   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   @  s    R²  R   i   c         S  s   |  j  S(   N(   R‚   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   G  s    c         S  s   |  j  ƒ  d  S(   Ni   (   R\   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   H  s    (
   RB   R•   R:   R@   R>   R\   R   Rå   R   R   (   t   tsfRI   R!   R   RU   t   piecesR"   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_skip_group_keys;  s    /)c         C  sQ   |  d j  ƒ  } d  | _ | j |  d ƒ j t j ƒ } | j d  k sM t ‚ d  S(   NRm   R   (   RZ   Rs   R1   R:   R=   R5   R,   R    (   t   frameR8  R!   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_no_nonsense_nameP  s    	c          C  sŠ   t  t j d ƒ j d d ƒ ƒ }  d |  d <d d d g |  d <|  j d ƒ } | j i d	 d 6d
 d 6ƒ } | d j t j k s† t ‚ d  S(   Ni	   i   i    t   testgÍÌÌÌÌÌô?g      ø?gš™™™™™ù?t   flR,   R?  i   (	   R   R5   R6   t   reshapeR:   R=   R$   R'   R    (   R*   RI   R!   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_multifunc_sum_bugY  s    !
c         C  sp   d „  } d „  } |  j  d ƒ d j | ƒ } |  j  d ƒ d j | ƒ } t | t ƒ s_ t ‚ t | | ƒ d  S(   Nc         S  s   i |  j  ƒ  d 6|  j ƒ  d 6S(   NRý   RB  (   Rý   RB  (   RU   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyRr   e  s    c         S  s$   t  i |  j ƒ  d 6|  j ƒ  d 6ƒ S(   NRý   RB  (   R   Rý   RB  (   RU   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR‡   h  s    R   Rm   (   R:   R>   Ru   R   R    R   (   R_   Rr   R‡   R!   R"   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_handle_dict_return_valued  s    		Rˆ  R   R   c           sÀ   d „  } d „  ‰  ‡  f d †  } |  j  | ƒ } | j | ƒ | j ˆ  ƒ | j i ˆ  d 6ˆ  d 6ƒ | j | ƒ | d j | ƒ | d j ˆ  ƒ | d j ˆ  | g ƒ | d j | ƒ d  S(   Nc         S  s   |  j  d  k	 s t ‚ |  S(   N(   R1   Rs   R    (   RU   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyRr   t  s    c         S  s   |  j  d  k	 s t ‚ |  j ƒ  S(   N(   R1   Rs   R    R,   (   RU   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   freducex  s    c           s
   ˆ  |  ƒ S(   N(    (   R*   (   R½  (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyRœ   |  s    Rm   RÈ   (   R:   R>   R<   R?   (   R_   Rˆ  Rr   Rœ   RI   (    (   R½  s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_set_group_namer  s    		c            s—   t  j i d d d d d d g d 6t j d ƒ d 6ƒ }  g  ‰  ‡  f d †  } |  j d d t d	 t ƒj | ƒ d d d d g } ˆ  | k s“ t ‚ d  S(
   Ni    i   i   R“   i   R”   c           s   ˆ  j  |  j ƒ |  j ƒ  S(   N(   t   appendR1   RZ   (   RU   (   R§   (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyRr   “  s    R©  RI  (   R   R   R5   R6   R:   R@   R>   R    (   R_   Rr   t   expected_names(    (   R§   s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt+   test_group_name_available_in_inference_pass  s    8"c         C  sy   |  j  |  d j ƒ j ƒ  } | j j d  k s4 t ‚ |  j  |  d j |  d j g ƒ j ƒ  } | j j d k su t ‚ d  S(   NR   R   (   NN(   R:   R£   R,   R)   R1   Rs   R    R§   (   R_   R!   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_no_dummy_key_namesž  s    )c          C  sS  t  d d d g d d g g d d d d d d d g d d d d d d g g d d d g ƒ }  t d d d d	 d
 d g d |  ƒ} t  d d d g d d g g d d d d g d d d g g d d d g ƒ }  t d d d
 g d |  ƒ} | j d d d g d t ƒ j ƒ  } t | | ƒ | j d d d g d t ƒ j ƒ  } t | | j ƒ  ƒ d  S(   NR¦   i   i   RX   i    R§   R“   R”   i   i   i   R)   R   R©  (   R   R   R:   R@   Rx   R   Rt   t
   sort_index(   R)   t   mseriest   mseries_resultR!   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt#   test_groupby_sort_multiindex_series§  s    0$-$$c          C  sÒ   d }  t  d d d d d |  ƒ } t i t j |  ƒ d 6t j |  ƒ d 6d	 | ƒ} t d
 „ } d „  } | j d „  ƒ } | j i | d t j ƒ d 6ƒ } | j i | d t j t ƒ d 6ƒ } t	 | | ƒ d  S(   Niè  R~  s   2012/1/1R  t   5minRo   t   hight   lowR)   c           s   ‡  ‡ f d †  } | S(   sB   
            Run an aggregate func on the subset of data.
        c           sZ   |  j  |  j j d „  ƒ j ƒ  } ˆ  r: |  |  j d n  t | ƒ d k rP d  Sˆ | ƒ S(   Nc         S  s   |  j  d k  S(   Ni   (   t   hour(   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   Ç  s    i    (   RS   R)   R	   t   dropnaR;   Rs   (   RH   R<  (   t   fixRe   (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   _funcÅ  s    (    (   RÊ  Re   RÌ  RÍ  (    (   RÌ  Re   s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt
   agg_beforeÀ  s    	c         S  s%   |  j  d „  ƒ j ƒ  } t j | ƒ S(   Nc         S  s   |  j  d k  S(   Ni   (   RÊ  (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   Ñ  s    (   t   selectRË  R5   Rý   (   RH   R<  (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   afuncÐ  s    c         S  s   t  |  j |  j |  j ƒ S(   N(   R   R   R‚   R‘   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   Ô  s    i   (
   R   R   R5   R6   R@   R:   R=   Rý   Rt   R   (   Ro   t   indR_   RÎ  RÐ  RI   t   closure_badt   closure_good(    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt$   test_groupby_reindex_inside_function¹  s    &	"%c          C  sì   t  i d d d d g d 6d d d d g d 6d d d d g d	 6ƒ }  |  j d d g ƒ }  |  j d
 d d g d t ƒ } | j d ƒ } t j d d d g d d d g ƒ} t  d g d g d g g d | d d	 g ƒ} t j | | ƒ d  S(   NR“   R”   t   group1R¨   R<  t   group2i   i   RR   R   R©  R,   R§   i   R)   Rg   (   R“   R¨   (   R“   R<  (   R”   R¨   (	   R   Rª   R:   Rt   R=   R   RR  RB   R   (   R_   RŽ   R­   RÅ   Rõ   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt$   test_groupby_multiindex_missing_pairÛ  s    -c       	   C  sa  t  j d d d g d d d	 g ƒ}  t d
 d d g g d |  ƒ} | j j ƒ  sW t ‚ t d d d d	 d g d d
 d d d g d
 d d d g g ƒ } | j d d d d d	 g d d ƒ } | j ƒ  } | j j ƒ  sÜ t ‚ t j	 | | ƒ | j
 d ƒ j ƒ  } t j t ƒ  | j
 d ƒ j ƒ  } Wd  QXt j	 | | ƒ t i d d d d g d 6d
 d
 d d g d 6d
 d d d g d 6ƒ j d d g ƒ } | j j ƒ  s¦t ‚ x´ d d
 d d
 g g D] } x” t t g D]† } | j
 d | d | ƒ j t j ƒ } | } t j	 | | ƒ | j ƒ  j
 d | d | ƒ j t j ƒ } | j ƒ  } t j	 | | ƒ qÏWq¼Wd  S(   NR“   t    t   b1t   c1t   b2t   c2R§   R”   R¨   i   i   i   Rg   R<  RH   R)   R£   R*   i   R«   t   zi    R   R©  (   R“   RØ  (   RÙ  RÚ  (   RÛ  RÜ  (   R   RR  R   Rg   t   is_lexsortedR    t   pivot_tableR  RB   R   R:   R2   RC   R   Rª   R)   R@   Rt   R>   t   drop_duplicatesRÃ  (   t   lexsorted_mit   lexsorted_dft   not_lexsorted_dfR"   R!   R_   R   R©  (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt%   test_groupby_multiindex_not_lexsortedë  s<    	(c          C  s€  t  t d ƒ d d d d d d g ƒ}  |  j t d ƒ ƒ } | j d „  ƒ } |  j d d d	 g } t | | ƒ |  d } | j t d ƒ ƒ } | j d
 „  ƒ } | j d d d	 g ƒ } t | | ƒ |  j j	 t
 ƒ |  _ |  j t d ƒ ƒ } | j d „  ƒ } |  j d d d	 g } t | | ƒ |  d } | j t d ƒ ƒ } | j d „  ƒ } | j d d d	 g ƒ } t | | ƒ d  S(   Nt   ABCDER)   i   i    i   t   ababbc         S  s   t  |  ƒ d k S(   Ni   (   R;   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+     s    i   i   c         S  s   t  |  ƒ d k S(   Ni   (   R;   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   $  s    c         S  s   t  |  ƒ d k S(   Ni   (   R;   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   +  s    c         S  s   t  |  ƒ d k S(   Ni   (   R;   (   R*   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyR+   1  s    (   R   RQ  R:   t   filterRp   R   RÀ   R   R)   RY   RŸ   (   R_   R‡   t   actualR"   R(  (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt"   test_index_label_overlaps_location  s(    '

c          C  sÃ   d }  t  j |  ƒ } t i | d d 6d | d 6d | d 6ƒ } t i | d d d 6d | d 6d | d 6ƒ } | j d ƒ } | j d	 ƒ } | j d ƒ } | j d	 ƒ } t j | | ƒ d  S(
   Ni   i   R“   g       @R”   g      @R¨   g      ð?R2   (   R5   R6   R   R:   R?   RB   R   (   t   nR*   R_   R|   t   gbR!   t   gb2R"   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt"   test_transform_doesnt_clobber_ints6  s    -1t   sort_columnt   intst   floatst   stringst   group_columnt
   int_groupst   string_groupsc      
     sè   t  i d d d d d d d d g d 6d d d d d d d d g d 6d	 d
 d d d d d d g d 6d d d d d d d d g d 6d d d d d d d d g d 6ƒ } | j d ˆ  ƒ } | j | ƒ } ‡  f d †  } | j | ƒ d  S(    Ni   i   i    Ró  RÝ  R“   R‡   Rô  i   i   i   i   i   i	   Rï  gffffff@g333333@gÍÌÌÌÌÌ@g333333Àgš™™™™™@gš™™™™™ñ?Rð  R<  R}   t   wordt   word2t   42t   47Rñ  R²  c           s   t  |  |  j d ˆ  ƒ ƒ d  S(   NR²  (   R   R\   (   R*   (   Rî  (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt	   test_sortZ  s    (   R   R\   R:   R>   (   Rî  Rò  R_   R‡   Rù  (    (   Rî  s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_groupby_preserves_sortE  s    	"%c          C  s   d }  t  g  t |  ƒ D]0 } | d | d r7 | d n t j | f ^ q d t d d d d g d	 d  ƒ} | j d d g ƒ } t  g  t |  ƒ D]3 } | d r¹ | |  d k  r¹ | d n t j ^ q d t d d g d	 d  ƒ} | j d
 ƒ } t | | ƒ d  S(   Ni°  i   i   R$   Rg   R   R   Rƒ  R)   iÿÿÿÿ(	   R   R
   R5   Ry   RŸ   Rs   R:   t   shiftR   (   t   n_rowst   iR_   R‡   R"   R!   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_group_shift_with_null_key_  s    FIc          C  sí   d }  t  g  t |  ƒ D] } | d | d | f ^ q d t d d d d g d	 d  ƒ} | j d d g ƒ } t  g  t |  ƒ D]& } | |  d k  rœ | d n d
 ^ q| d t d d g d	 d  ƒ} | j d d d
 ƒd g } t | | ƒ d  S(   Ni   i   i   R$   Rg   R   R   Rƒ  R)   i    iÿÿÿÿt
   fill_value(   R   R
   RŸ   Rs   R:   Rû  R   (   Rü  Rý  R_   R‡   R"   R!   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt    test_group_shift_with_fill_valueu  s    3<c          C  sÄ   t  j i t  j t  j j ƒ  d d d d ƒj ƒ  d 6t d d ƒ d 6ƒ }  |  j d ƒ j j	 |  d <|  j d ƒ j j
 |  d	 <t j t d
 d ƒ- |  j ƒ  j d d d d	 d d d d ƒ Wd  QXd  S(   NRo   i   R  t   Mt	   eventDatei    t   thenameR   R‚   R4   s	   'badname'R)   Rg   R£   t   badnamet   aggfuncRv   (   R   R   R   R   t   todayt   tolistR
   Rª   R)   R   R‚   RE   RF   R|  R  Rß  (   R_   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt!   test_pivot_table_values_key_error†  s    	c          C  sh   t  d d d d g ƒ }  |  j d ƒ j ƒ  } t  d d d g d t j ƒ } d | j _ t | | ƒ d  S(   NRg   R   R   Rm   R$   (   R   R:   R,   R5   R'   R)   R1   R   (   R_   R!   R"   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_empty_dataframe_groupby•  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 6d d d d g d 6ƒ }  t j t ƒ * } |  d d d g j d	 ƒ j j ƒ  Wd  QXd t | d j	 ƒ k sµ t
 ‚ t j d  ƒ  |  j d
 ƒ j j ƒ  Wd  QXd  S(   Ni   i   R“   R”   R¨   s!   Interpreting tuple 'by' as a listi    (   R“   R”   (   R“   R”   (   R“   R”   (   R   R   RB   RC   RD   R:   R¨   R2   Rs  t   messageR    Rs   (   R_   t   w(    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_tuple_warns   s    /,)c          C  s¥   t  d d d d d d ƒ }  t d d |  d	 d
 d g ƒ} t j t ƒ 8 } | j | j j | j j f ƒ j	 d d d g ƒ Wd  QXd t
 | d j ƒ k s¡ t ‚ d  S(   NR~  s   4/1/2014t   ends	   6/30/2014R  R   i   R)   Rg   R“   R”   i    i   iÿÿÿÿs!   Interpreting tuple 'by' as a list(   R   R   RB   RC   RD   R:   R)   R   R‚   R  Rs  R
  R    (   t   business_datesR_   R  (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_tuple_warns_unhashable­  s    	7c       	   C  sr   t  j d d t d ƒ d t  j j d d g d d g g ƒ ƒ}  t j t d d ƒ |  j d ƒ j	 ƒ  Wd  QXd  S(   Ni   R)   i   Rg   i   i   R4   s
   ^\(7, 8\)$i   i   (   i   i   (
   R   R   R
   R   t   from_productRE   RF   R|  R:   R2   (   R_   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_tuple_correct_keyerror¹  s
    c          C  sì   t  j d g d g g d d g d t  j d d d d d	 ƒƒ}  t  j d d d d d g d d d d d g g d t  j j d d d d d f ƒ d t  j d d d d d	 ƒƒ} |  j t  j d d	 ƒ ƒ j d d
 g ƒ } t j	 | | ƒ d  S(   Ni   Rg   Rœ   R)   s
   2018-01-01Ro   i   R  RÈ   t   ohlct   openRÈ  RÉ  t   closeR,   (   Rœ   R  R  (   Rœ   R  RÈ  (   Rœ   R  RÉ  (   Rœ   R  R  (   Rœ   R,   Rœ   (
   R   R   R   R   RR  R:   R   R=   RB   R   (   R_   R"   R!   (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   test_groupby_agg_ohlc_non_firstÂ  s    !	*(€   t
   __future__R    t   collectionsR   R   t   decimalR   t   numpyR5   RE   t   pandas.compatR   R   R   R   R   R	   R
   R   t   pandas.errorsR   t   pandasR   R   R   R   R   R   R   R   R   R   t   pandas.core.commont   coret   commonR«  t   pandas.util.testingt   utilt   testingRB   R   R   R   R#   t   markt   parametrizeRP   Ra   R~   R   R–   R™   R¥   R³   Rº   RÇ   RÌ   RÎ   RÞ   Rß   Rç   t   filterwarningsRø   R  R  R  R  R  R  R  R  R  R!  R$  R%  R+  R-  R7  R9  R:  RH  RJ  RN  RW  RX  R[  R\  R^  R_  Rd  Re  Rf  Rn  Rr  Rx  R{  R}  R  R„  R  R•  R  R¦  R¨  R°  R±  Rµ  R·  R»  R¼  R¾  RÁ  RÂ  RÆ  RÔ  R×  Rä  Ré  Rí  Rú  Rþ  R   R  R	  R  R  R  R  (    (    (    s@   lib/python2.7/site-packages/pandas/tests/groupby/test_groupby.pyt   <module>   sÈ   :@	*0		\	)			8		)						 	<					
	
										"					 					
											6			%						*					"		.											