ó
šxŠ\c           @  sœ   d  d l  m Z d  d l Z d  d l Z d  d l m Z m Z d  d l	 m
 Z
 m Z m Z m Z m Z m Z d  d l m Z m Z d e f d „  ƒ  YZ d S(   iÿÿÿÿ(   t   print_functionN(   t   productt   range(   t	   DataFramet
   MultiIndext   Periodt   Seriest	   Timedeltat	   Timestamp(   t   assert_frame_equalt   assert_series_equalt   TestCountingc           B  sy  e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z e j j d g  e d d ƒ D] Z e d e ƒ ^ q» g  e d d ƒ D] Z e d e ƒ ^ qä g  e d d ƒ D] Z e e d d ƒ^ qg  e d d ƒ D]! Z e d d d d d e ƒ ^ q8g ƒ d „  ƒ Z d „  Z RS(   c         C  s   t  d g d g d g d g d g g d d g ƒ} | j d ƒ } | j } t d d d d d g ƒ } t | | j ƒ  ƒ t | | j ƒ  ƒ d  S(	   Nt   at   bt   columnst   Ai    i   i   i   (   R   t   groupbyR   R   R
   t   cumcount(   t   selft   dft   gt   sgt   expected(    (    sA   lib/python2.7/site-packages/pandas/tests/groupby/test_counting.pyt   test_cumcount   s    3	c         C  sc   t  ƒ  j d d ƒ } t ƒ  j d d ƒ } t d d ƒ } t | | j ƒ  ƒ t | | j ƒ  ƒ d  S(   Nt   leveli    t   dtypet   int64(   R   R   R   R
   R   (   R   t   get   set   e(    (    sA   lib/python2.7/site-packages/pandas/tests/groupby/test_counting.pyt   test_cumcount_empty   s
    c         C  sª   t  d g d g d g d g d g g d d g d d g d ƒ} | j d ƒ } | j } t d d d	 d d
 g d d g d ƒ} t | | j ƒ  ƒ t | | j ƒ  ƒ d  S(   NR   R   R   R   t   indexi    i   i   i   i   (   R   R   R   R   R
   R   (   R   R   R   R   R   (    (    sA   lib/python2.7/site-packages/pandas/tests/groupby/test_counting.pyt   test_cumcount_dupe_index#   s    0	(c         C  sØ   t  j d d g d d g d d g d d g d d g g ƒ } t d g d g d g d g d g g d d g d | ƒ} | j d ƒ } | j } t d d d d d	 g d | ƒ} t | | j ƒ  ƒ t | | j ƒ  ƒ d  S(
   Ni    i   i   R   R   R   R   R   i   (   R   t   from_tuplesR   R   R   R   R
   R   (   R   t   miR   R   R   R   (    (    sA   lib/python2.7/site-packages/pandas/tests/groupby/test_counting.pyt   test_cumcount_mi.   s    <0		!c         C  s¹   t  d g d g d g d g d g g d d g d d g d ƒ} | j d d d d d g ƒ } | j } t d d d	 d d
 g d d g d ƒ} t | | j ƒ  ƒ t | | j ƒ  ƒ d  S(   NR   R   R   R   R   i    i   i   i   i   (   R   R   R   R   R
   R   (   R   R   R   R   R   (    (    sA   lib/python2.7/site-packages/pandas/tests/groupby/test_counting.pyt   test_cumcount_groupby_not_col:   s    0	(c         C  sv   t  i t d ƒ d 6ƒ } | j d ƒ } | j } t d d d d d g ƒ } t | | j ƒ  ƒ t | | j ƒ  ƒ d  S(   Nt   aaabaR   i    i   (   R   t   listR   R   R   R
   t   ngroup(   R   R   R   R   R   (    (    sA   lib/python2.7/site-packages/pandas/tests/groupby/test_counting.pyt   test_ngroupE   s    	c         C  ss   t  i t d ƒ d 6ƒ } | j d ƒ } | j } t t d ƒ d d ƒ} t | | j ƒ  ƒ t | | j ƒ  ƒ d  S(   Nt   abcdeR   i   R   R   (   R   R&   R   R   R   R   R
   R'   (   R   R   R   R   R   (    (    sA   lib/python2.7/site-packages/pandas/tests/groupby/test_counting.pyt   test_ngroup_distinctO   s    	c         C  so   t  i d g d d 6ƒ } | j d ƒ } | j } t d g d ƒ } t | | j ƒ  ƒ t | | j ƒ  ƒ d  S(   Ni    i   R   (   R   R   R   R   R
   R'   (   R   R   R   R   R   (    (    sA   lib/python2.7/site-packages/pandas/tests/groupby/test_counting.pyt   test_ngroup_one_groupY   s    	c         C  sc   t  ƒ  j d d ƒ } t ƒ  j d d ƒ } t d d ƒ } t | | j ƒ  ƒ t | | j ƒ  ƒ d  S(   NR   i    R   R   (   R   R   R   R
   R'   (   R   R   R   R   (    (    sA   lib/python2.7/site-packages/pandas/tests/groupby/test_counting.pyt   test_ngroup_emptyc   s
    c         C  sZ   t  i t d ƒ d 6ƒ } t t d ƒ ƒ } t | j | ƒ j ƒ  | j | ƒ j ƒ  ƒ d  S(   NR%   R   (   R   R&   R   R
   R   R'   (   R   R   t   s(    (    sA   lib/python2.7/site-packages/pandas/tests/groupby/test_counting.pyt    test_ngroup_series_matches_framem   s    c         C  s   t  i t d ƒ d 6d d g d ƒ} | j d ƒ } | j } t d d d d d g d d g d ƒ} t | | j ƒ  ƒ t | | j ƒ  ƒ d  S(   NR%   R   R   i    i   i   (   R   R&   R   R   R   R
   R'   (   R   R   R   R   R   (    (    sA   lib/python2.7/site-packages/pandas/tests/groupby/test_counting.pyt   test_ngroup_dupe_indext   s    &	(c         C  s¾   t  j d d g d d g d d g d d g d d g g ƒ } t i t d ƒ d 6d | ƒ} | j d ƒ } | j } t d d d d d g d | ƒ} t | | j ƒ  ƒ t | | j ƒ  ƒ d  S(   Ni    i   i   R%   R   R   (	   R   R!   R   R&   R   R   R   R
   R'   (   R   R"   R   R   R   R   (    (    sA   lib/python2.7/site-packages/pandas/tests/groupby/test_counting.pyt   test_ngroup_mi~   s    <	!c         C  sŸ   t  i t d ƒ d 6d d g d ƒ} | j d d d d d g ƒ } | j } t d d d d d g d d g d ƒ} t | | j ƒ  ƒ t | | j ƒ  ƒ d  S(   NR%   R   R   i    i   i   (   R   R&   R   R   R   R
   R'   (   R   R   R   R   R   (    (    sA   lib/python2.7/site-packages/pandas/tests/groupby/test_counting.pyt   test_ngroup_groupby_not_colˆ   s    &	(c         C  sº   t  d d d d d g d d g ƒ} | j d g ƒ } t d d d d d g ƒ } t d d d d d g ƒ } t | | j d | ƒ t | | j d t ƒ ƒ t | | j d t ƒ ƒ d  S(   NR   R   R   R   i    i   t	   ascending(   R   R   R   R
   t   ngroupsR'   t   Truet   False(   R   R   R   R2   t
   descending(    (    sA   lib/python2.7/site-packages/pandas/tests/groupby/test_counting.pyt   test_ngroup_descending’   s    $c         C  sÆ   t  d d g d d g d d g d d g d d g g d d d g ƒ} | j d d g ƒ } | j ƒ  } | j ƒ  } t d d	 d
 d d g ƒ } t d d d d	 d g ƒ } t | | ƒ t | | ƒ d  S(   NR   t   xt   yR   R   R   t   Xi    i   i   i   (   R   R   R'   R   R   R
   (   R   R   R   t   g_ngroupt
   g_cumcountt   expected_ngroupt   expected_cumcount(    (    sA   lib/python2.7/site-packages/pandas/tests/groupby/test_counting.pyt   test_ngroup_matches_cumcount   s    'c   	      C  sä   xÝ t  t d ƒ d d ƒD]Ã } t i | d 6ƒ } | j d g ƒ } t t | ƒ ƒ } g  | D] } | j | ƒ ^ q] } g  t | ƒ D] \ } } | |  j | ƒ ^ q… } t	 | j
 ƒ  t | ƒ ƒ t	 | j ƒ  t | ƒ ƒ q Wd  S(   Ni   t   repeati   R   (   t   cart_productR   R   R   t   sortedt   setR   t	   enumeratet   countR
   R'   R   R   (	   R   t   pR   R   t   ordert   valt   ngroupdt   it
   cumcounted(    (    sA   lib/python2.7/site-packages/pandas/tests/groupby/test_counting.pyt   test_ngroup_cumcount_pairª   s    "2c   	      C  s+  t  j j d ƒ t i t  j j t d ƒ d ƒ d 6ƒ } xì t t f D]Þ } | j d g d | ƒ} d | d <d | d <xi t	 | ƒ D][ \ } \ } } | | j
 | j d f <x0 t	 | j ƒ D] \ } } | | j
 | d f <q¼ Wq„ Wt t | d j ƒ | j ƒ  ƒ t t | d j ƒ | j ƒ  ƒ qE Wd  S(	   Ni    t   abcdefid   R   t   sortiÿÿÿÿt   group_idt   group_index(   t   npt   randomt   seedR   t   choiceR&   R5   R4   R   RD   t   locR   R
   R   t   valuesR'   R   (	   R   R   t	   sort_flagR   RJ   t   _t   groupt   jt   ind(    (    sA   lib/python2.7/site-packages/pandas/tests/groupby/test_counting.pyt"   test_ngroup_respects_groupby_order·   s    (

t   datetimelikei   i   s   2016-05-%02d 20:09:25+00:00s   2016-05-%02d 20:09:25t   unitt   ht   freqt   2Wt   yeariá  t   monthc         C  sz   t  i d d d g d 6| d 6ƒ } | j d ƒ j ƒ  } t  i d d g d 6d d d g ƒ} d | j _ t | | ƒ d  S(   NR   R   R8   R9   i   i   R   (   R   R   RE   R   t   nameR	   (   R   R]   R   t   resR   (    (    sA   lib/python2.7/site-packages/pandas/tests/groupby/test_counting.pyt   test_count_with_datetimelikeÉ   s
    	#%c         C  sÂ   t  i t j t j g d 6d d g d 6d d g d 6ƒ } | j d d g ƒ j j ƒ  } t d g  d d g g d	 g  g  g d
 d d g ƒ } t g  d | d t j d d ƒ} t	 | | d t
 ƒd  S(   NR   R   R   t   Bi   i   t   Ct   levelst   codest   namesR   R   Rd   t   check_index_type(   R   RQ   t   nanR   Rh   RE   R   R   R   R
   R5   (   R   R   t   resultR"   R   (    (    sA   lib/python2.7/site-packages/pandas/tests/groupby/test_counting.pyt(   test_count_with_only_nans_in_first_groupØ   s    9!(   t   __name__t
   __module__R   R   R    R#   R$   R(   R*   R+   R,   R.   R/   R0   R1   R7   R?   RL   R\   t   pytestt   markt   parametrizeR   RJ   R   R8   R   R   Rf   Ro   (    (    (    sA   lib/python2.7/site-packages/pandas/tests/groupby/test_counting.pyR      s.   	
	
				
	
	
	
		
	
	
				))+F(   t
   __future__R    t   numpyRQ   Rr   t   pandas.compatR   RA   R   t   pandasR   R   R   R   R   R   t   pandas.util.testingR	   R
   t   objectR   (    (    (    sA   lib/python2.7/site-packages/pandas/tests/groupby/test_counting.pyt   <module>   s   .