
    Owg&                        d Z ddlmZmZ ddl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mZ ddlmZ ddlmZ  G d d      Z G d d	      Z G d
 d      Z G d d      Zd Zd Zej:                  j=                  dg d      d        Zy)zG
test where we are determining what we are grouping, or getting groups
    )date	timedeltaN)	CategoricalIndex	DataFrameGrouperIndex
MultiIndexSeries	Timestamp
date_rangeperiod_range)Groupingc                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	e
j                  j                  dd	 d
 g      d        Zd Zy)TestSelectionc                 $   t        ddggddg      }|j                  d      }t        j                  t        d      5  |dg    d d d        t        j                  t        d	      5  |ddg    d d d        y # 1 sw Y   5xY w# 1 sw Y   y xY w)
N      ABcolumnsz"Columns not found: 'C'"matchCz^[^A]+$)r   groupbypytestraisesKeyError)selfdfgs      Y/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/groupby/test_grouping.pytest_select_bad_colsz"TestSelection.test_select_bad_cols    s    Ax#s4JJsO]]8+GH 	seH	 ]]895 	 sCjM	 		 		 	s   A:)B:BBc           
         t        g dt        d      t        dd      t        ddd      g      }d}t        j                  t        |	      5  |j                  d
       d d d        t        j                  t        |	      5  |j                  d
dg       d d d        |j                  d      }|j                         }|j                  j                  dk(  sJ |j                  j                  dk(  sJ y # 1 sw Y   xY w# 1 sw Y   mxY w)N)r   r   r   r      r      r      )r   dataz!Grouper for 'A' not 1-dimensionalr   r   r   r      )
r   ranger   r   
ValueErrorr   countr   nlevelssize)r   r    msggroupedcs        r"   'test_groupby_duplicated_column_errormsgz5TestSelection.test_groupby_duplicated_column_errormsg+   s    (a%1+uQPQST~/V
 2]]:S1 	JJsO	]]:S1 	#JJSz"	# **S/MMOyy  A%%%yy~~"""	 		# 	#s   C7D7D Dc                    |j                  d      j                  j                         }|j                  d      d   j                         }t        j                  ||       d|d<   |j                  d      j                  d      }|j                  d      g d   j                  d      }t        j                  ||       y )Nr   r   g      ?meanTnumeric_only)r   Dr4   )r   r   sumtmassert_series_equalr4   aggassert_frame_equalr   r    resultexpecteds       r"   test_column_select_via_attrz)TestSelection.test_column_select_via_attr<   s    C""&&(::c?3'++-
vx06
C%%4%8::c?#56::6B
fh/    c           	         t        g dg dt        j                  j                  d      j	                  d      t        j                  j                  d      j	                  d      t        j                  j                  d      j	                  d      d      }|j                  d      ddg   j                         }|j                  d      |j                  dd	    j                         }|j                  d d g d
f   j                  d      j                         }t        j                  ||       t        j                  ||       y )NfoobarrD   rE   rD   rE   rD   rD   onerG   twothreerH   rH   rG   rI   r   r'   r   r   r   r7   Er   r   r7   r%   )r   r   r7   )r   nprandomdefault_rngstandard_normalr   r4   r   locr9   r<   r   r    r>   result2r?   s        r"   test_getitem_list_of_columnsz*TestSelection.test_getitem_list_of_columnsF   s    MQYY**1-==a@YY**1-==a@YY**1-==a@
 C#s,113**S/"**Qq/277966!_,-55c:??A
fh/
gx0rA   c                 J   t        t        d      dz  t        j                  j	                  d      j                  d      t        j                  j	                  d      j                  d      t        j                  j	                  d      j                  d      d      }|j                  d      |j                  dd    j                         }|j                  d      ddg   j                         }|j                  d d g d	f   j                  d      j                         }t        j                  ||       t        j                  ||       t        j                  t        d
      5  |j                  d      d   j                          d d d        y # 1 sw Y   y xY w)Nabcdr   r'   )r   r   r%   r&   r   r   r)   r%   r   r   r%   "Cannot subset columns with a tupler   )r   r%   )r   listrL   rM   rN   rO   r   r   r4   rP   r9   r<   r   r   r+   rQ   s        r"   !test_getitem_numeric_column_namesz/TestSelection.test_getitem_numeric_column_namesY   s?   <!#99((+;;A>99((+;;A>99((+;;A>	
 Arzz!A/446**Q-A',,.66!Y,'//2779
fh/
gx0 ]]:-QR 	'JJqM$$$&	' 	' 	's   -#FF"c                     t        j                  t        d      5  |j                  d      d   j	                          d d d        y # 1 sw Y   y xY w)NrW   r   r   )r   r7   )r   r   r+   r   r4   r   r    s     r"   +test_getitem_single_tuple_of_columns_raisesz9TestSelection.test_getitem_single_tuple_of_columns_raiseso   s?    ]]:-QR 	-JJsOH%**,	- 	- 	-s   #AAc           	      4   t        g dg dt        j                  j                  d      j	                  d      t        j                  j                  d      j	                  d      t        j                  j                  d      j	                  d      d      }|j                  d      d   j                         }|j                  d d ddgf   j                  d      j                         }|j                  d d df   }|}t        j                  ||       y )	NrC   rF   r   r'   rJ   r   r   r   )r   rL   rM   rN   rO   r   r4   rP   ilocr9   r:   )r   r    r>   as_frame	as_seriesr?   s         r"   test_getitem_single_columnz(TestSelection.test_getitem_single_columnt   s    MQYY**1-==a@YY**1-==a@YY**1-==a@
 C%**,66!c3Z-(005::<MM!Q$'	
vx0rA   funcc                 "    | j                         S Nr8   xs    r"   <lambda>zTestSelection.<lambda>   s    1557 rA   c                 &    | j                  d       S )Nc                 "    | j                         S rd   re   )ys    r"   rh   z(TestSelection.<lambda>.<locals>.<lambda>   s    aeeg rA   )r;   rf   s    r"   rh   zTestSelection.<lambda>   s    aee4E.F rA   c                     t        g ddddd      }|j                  ddg      ddg   }t        j                  d	d
gddg      }t        ddgddgd|      } ||      }t	        j
                  ||       y )Nr   r   r   r)   r%      abr1   drp   rq   r1   )r   r)   )r   r)   namesr   r'   )rp   r1   index)r   r   r	   from_tuplesr9   r<   )r   rb   r    gbidxr?   r>   s          r"   test_getitem_from_grouperz'TestSelection.test_getitem_from_grouper   s    
 YQQQ?@ZZc
#S#J/$$ff%5c3ZHAq6A7sCb
fh/rA   c                     t        dd dD        i      j                  d      }j                  fd      }|j                  }|j                  }t        j                  ||       y )NTuplesc              3      K   | ]=  }t         j                  j                  d       j                  ddd      D ]  }||f 
 ? ywr   r)   rn   NrL   rM   rN   integers.0rg   rk   s      r"   	<genexpr>zJTestSelection.test_indices_grouped_by_tuple_with_lambda.<locals>.<genexpr>   O      YY2215>>q!QG  F   AAr   r   c                 &    j                   | df   S Nr   r^   rg   r    s    r"   rh   zITestSelection.test_indices_grouped_by_tuple_with_lambda.<locals>.<lambda>       A rA   )r   r   indicesr9   assert_dict_equalr   rx   	gb_lambdar?   r>   r    s        @r"   )test_indices_grouped_by_tuple_with_lambdaz7TestSelection.test_indices_grouped_by_tuple_with_lambda   se     #
 ZZ!JJ67	::""
VX.rA   N)__name__
__module____qualname__r#   r2   r@   rS   rY   r\   ra   r   markparametrizerz   r    rA   r"   r   r      sY    	#"01&',-
1& [["$FG	0	0/rA   r   c                      e Zd Zej                  j                  d e ed             e ej                  d             e ej                  de
             edd       edd      g      d        Zd Zd	 Zd
 Zd Zej                  j                  dddg      d        Zd Zd Zd Zd Zd Zd Zd Zd Zej                  j                  dg dg d ed      D  cg c]  }t9        ddd|z          c}}} g      d        Zd Zd  Zd! Z d" Z!d# Z"d$ Z#d% Z$d& Z%d' Z&ej                  j                  d(ddg      d)        Z'd* Z(ej                  j                  d(ddg      d+        Z)d, Z*ej                  j                  d-dg d.gdg d/gg      d0        Z+d1 Z,d2 Z-ej                  j                  d3d4 e.d5ej^                  6      fd7 e.d5ej^                   eg ej^                  d89      :      fd; e.d5ej^                   eg ej^                  d89      :      fg      d<        Z0d= Z1d> Z2d? Z3y@c c}}} w )ATestGroupingrv   abcdern   dtypez
2020-01-01periodsc                 V   t        t        j                  d      j                  dd      t	        d      |      }|j                  t	        d      d      j                  d	        |j                  d d d
   |_        |j                  t	        d      d      j                  d        y )N
   rn   r   AB)r   rv   r   F
group_keysc                     | S rd   r   rf   s    r"   rh   z7TestGrouping.test_grouper_index_types.<locals>.<lambda>       A rA   c                     | S rd   r   rf   s    r"   rh   z7TestGrouping.test_grouper_index_types.<locals>.<lambda>   r   rA   )r   rL   arangereshaperX   r   applyrv   )r   rv   r    s      r"   test_grouper_index_typesz%TestGrouping.test_grouper_index_types   s|     ryy},,Q2DJeT


4=U
399+F88DbD>


4=U
399+FrA   c                    t        j                         t        d      z
  }t        |t        j                               }t	        j
                  ||gddg      }t        t        j                  j                  d      j                  ddd	      |
      }|j                         j                  t        dd      t        dd      g      j                         }t        dgd      |_        |j                  t        dd      t        dd      g      j                         }t#        j$                  ||       |j                  t        dd      t        dd      g      j                         }t#        j$                  ||       y )N   )daysrD   rE   rs   r   r   d      ru   Wkeyfreqint64r   levelr   r   )r   todayr   r   r	   from_productr   rL   rM   rN   r   reset_indexr   r   r8   r   r   r9   r<   )r   d0dates
date_indexr    r?   r>   s          r"   test_grouper_multilevel_freqz)TestGrouping.test_grouper_multilevel_freq   s9    ZZ\I2..2tzz|,,,eU^E5>R
ryy,,Q/88CEZX NNWg%c2GC4PQRSU 	 !!G45s+W5s-KL

#% 	 	fh/ 13'qs)CD

#% 	 	fh/rA   c                    t        g dg dd      }|j                  d      }|j                         }|j                  t        d            }|j                         }t	        j
                  ||       d}t	        j                  t        |      5  t        dd	      }d d d        |j                        }|j                         }t	        j
                  ||       d
}t	        j                  t        |      5  |j                  d       }d d d        g d|d<   |j                  d d ddgf   }t	        j
                  ||       y # 1 sw Y   xY w# 1 sw Y   HxY w)N)r   r   r   r   r   r   r   r   r)   r%   rn   r&   r   r   r   r   z6Grouper axis keyword is deprecated and will be removedr   r   )r   axisz7DataFrameGroupBy.apply operated on the grouping columnsc                 "    | j                         S rd   re   rf   s    r"   rh   z8TestGrouping.test_grouper_creation_bug.<locals>.<lambda>   s    quuw rA   rV   r   )r   r   r8   r   r9   r<   assert_produces_warningFutureWarningDeprecationWarningr   rP   )r   r    r!   r?   r>   r/   gprs          r"   test_grouper_creation_bugz&TestGrouping.test_grouper_creation_bug   s    /6HIJJJsO557JJw3'(
fh/F''SA 	+c*C	+JJsO
fh/G''(:#F 	0WW./F	0!<<C:.
fh/	+ 	+	0 	0s   E
<E
EEc                    t        g dg dg dd      }|j                  d      j                         }|j                  t        d      g      }|j                         }t	        j
                  ||       |j                  ddg      j                         }|j                  t        d      t        d      g      }|j                         }t	        j
                  ||       |j                  dt        d      g      }|j                         }t	        j
                  ||       |j                  t        d      dg      }|j                         }t	        j
                  ||       y )N)r   r   r   r   r   r   )r   r   r   r   r)   r)   r   r   r   r   r   r   r   )r   r   r8   r   r9   r<   )r   r    r?   r!   r>   s        r"   test_grouper_creation_bug2z'TestGrouping.test_grouper_creation_bug2   s$    $+=DVW
 ::c?&&(JJC()*
fh/ ::sCj)--/ JJC('c*:;<
fh/ JJW-./
fh/ JJC(#./
fh/rA   c                 |   t        dd|      }t        j                  t        d      t	        d      |gg d      }t        t        j                  dd	      |
      }|j                  t        dd            j                         }t        j                  t        d      gdd      j                  |      }t        dg|
      }t        j                   ||       |j                  t        d            j                         }|j                  d      j                         }t        j                   ||       y )N20130101r   )r   unitab)rG   rH   rI   rs   r'   r   r   ru   rI   MEr   z
2013-01-31)r   name   rG   r   )r   r	   r   rX   r*   r
   rL   r   r   r   r8   pdDatetimeIndexr   as_unitr9   r:   )r   r   dtimiserr>   exp_dtir?   s           r"   test_grouper_creation_bug3z'TestGrouping.test_grouper_creation_bug3  s
   QT:$$$Zq3')
 IIaw'
 W7>?CCE""|$%Dw

'$- 	 D
 	vx0 W512668;;U;+//1
vx0rA   rb   FTc                 R   t        g dg dd      }t        t        t        d      ddgdz              |r|j	                  fdd	
      }n|j	                  d	
      }t        t        |            \  }}|dk(  sJ |j                  |      }t        j                  ||       y )Nr   r   r   r   )r   r%   r)   r   )XYr%   )r   rn   )r7   r&   r   c                     |    S rd   r   )ry   mappings    r"   rh   z<TestGrouping.test_grouper_returning_tuples.<locals>.<lambda>7  s    73< rA   F)bysort)
r   dictzipr*   r   nextiter	get_groupr9   r<   )r   rb   r    rx   r   r?   r>   r   s          @r"   test_grouper_returning_tuplesz*TestGrouping.test_grouper_returning_tuples0  s     1EFs58h%9A%=>?7eDBwU3Bd2hhxd#
fh/rA   c                 P   t        j                  g d      }ddg|_        t        t	        j
                  d      g dd|      }|j                  dt        d	      g      j                  d
      }|j                         j                  ddg      j                  d
      }t        j                  ||       |j                  t        d	      dg      j                  d
      }|j                         j                  ddg      j                  d
      }t        j                  ||       |j                  d      }|j                  dt        d	      g      j                  d
      }|j                         j                  ddg      j                  d
      }t        j                  ||       |j                  t        d	      dg      j                  d
      }|j                         j                  ddg      j                  d
      }t        j                  ||       y )N)rp   r   )rp   r   )rp   r)   rq   r   rq   r   )rq   r)   outerinnerr&   )rG   rG   rH   rH   rG   rG   r   ru   r   r   Tr5   )r	   rw   rt   r   rL   r   r   r   r4   r   r9   r<   )r   ry   df_multir>   r?   	df_singles         r"   test_grouper_column_and_indexz*TestGrouping.test_grouper_column_and_indexA  s   
 $$H
 g&	))A,%OP
 !!3g(>"?@EESWEX  "**C>:??T?R 	 	fh/ !!7#93"?@EESWEX  "**GS>:??T?R 	 	fh/ ((1	""Cw)?#@AFF G 
 !!#++S'N;@@d@S 	 	fh/ ""G'$:C#@AFF G 
 !!#++WcN;@@d@S 	 	fh/rA   c                    ddg}t        j                  g d|      }t        t        j                  d      j                  dd      |      }|j                  |	      j                         }|j                         j                  |      j                         }|j                  j                  t        j                        |_	        t        j                  ||       y )
Nrg   rk   )r   r   r   r   )r)   r%   )rn   r&   rs      r   r)   ru   r   )r	   rw   r   rL   r   r   r   r4   r   r   astyper   r9   r<   )r   	idx_namesry   r    	by_levels
by_columnss         r"   test_groupby_levels_and_columnsz,TestGrouping.test_groupby_levels_and_columnso  s    #J	$$%EYWryy},,R33?JJYJ/446	^^%--i8==?
 (//66rxx@

i4rA   c                 (   g d}ddg}t        j                  g dg dg dg dg dgt              }t        ||d      }t	        ||      }d}t        j                  t        |	      5  |j                  d
d|      j                         }d d d        t        j                  ddgddgddgddgddggt              }	t        ||d      }
t	        |	|
      }t        j                  |       t	        |j                  |      }d}t        j                  t        |	      5  |j                  dd|      j                         }d d d        t	        |	j                  |
      }t        j                  ||       y # 1 sw Y   xY w# 1 sw Y   CxY w)Nr   r   r   )r   r   r   r   T)
categoriesordered)r(   r   +DataFrame.groupby with axis=1 is deprecatedr   r   r   )r   r   observedr%   r   ru   5The 'axis' keyword in DataFrame.groupby is deprecated)r(   rv   )rL   arrayintr   r   r9   r   r   r   r8   r<   T)r   r   r   r   r(   cat_columnsr    depr_msgr>   expected_dataexpected_columnsr?   r/   s                r"   *test_groupby_categorical_index_and_columnsz7TestGrouping.test_groupby_categorical_index_and_columns}  st   &3Z
xx<|\RTW
 'w:tTD+6@''XF 	JZZQa(ZCGGIF	J1a&1a&1a&1a&1a&!I3O+:t
 -9IJ
fh/ tvv[1E''SA 	JZZQa(ZCGGIF	J-//9IJ
fh/	J 	J	J 	Js   *#E<##F<FFc                    t        ddit        j                  t        d      t	        dd      gddg	      
      }|j                  t        d      t        dd      g      j                         }t        dg dit        j                  t        d      t	        ddd      gddg	      
      }t        j                  ||       y )Nr   r   r   r   P   r   rG   rH   rs   ru   r   r   r   )   r      r  r   r  r)   )r   r   )
r   r	   r   rX   r   r   r   r8   r9   r<   r=   s       r"   #test_grouper_getting_correct_binnerz0TestGrouping.test_grouper_getting_correct_binner  s     !H))dZ
B?@PU
 5!7T#BC

#% 	 *+))dZ
qIJen
 	fh/rA   c                     |j                  d      }d}t        j                  t        |      5  |j                  }d d d        t              }ddg}||k(  sJ y # 1 sw Y    xY w)Nr   &DataFrameGroupBy.grouper is deprecatedr   rE   rD   )r   r9   r   r   groupersorted)r   r    rx   r/   r  r>   r?   s          r"   test_grouper_iterzTestGrouping.test_grouper_iter  sb    ZZ_6''SA 	!jjG	!5>!!!		! 	!s   AA$c                     t        j                  t        d      5  |j                  g        d d d        y # 1 sw Y   y xY w)NzNo group keys passed!r   )r   r   r+   r   r[   s     r"   test_empty_groupszTestGrouping.test_empty_groups  s1    ]]:-DE 	JJrN	 	 	s	   7A c                 4   |j                  d      }d}t        j                  t        |      5  |j                  }d d d        |j                        j                  d      }|j                  d      }t        j                  ||       y # 1 sw Y   SxY w)Nr   r  r   Tr5   )r   r9   r   r   r  r4   r<   )r   r    r0   r/   r  r>   r?   s          r"   test_groupby_grouperz!TestGrouping.test_groupby_grouper  s~    **S/6''SA 	&ooG	&G$))t)<<<T<2
fh/		& 	&s   BBc                    t        ddi      }|j                  ddi      j                  d      }|j                  dg      j                  d      }t        j                  ||       t        g dt        d            }ddd	d	d
}|j                  |      j                         }|j                  |      j                  d      }t        j                  g dt        j                        }|j                  |      j                         }|j                  |      j                         }t        j                  ||       t        j                  ||       t        j                  ||       y )NT1rn   T2r8   )      ?       @g      @g      @rU   ru   r   r   ro   r4   )r   r   r   r   r   )
r
   r   r;   r9   r:   rX   r4   rL   r  r   )r   sr>   r?   r   rR   exp_key	expected2s           r"   test_groupby_dict_mappingz&TestGrouping.test_groupby_dict_mapping  s   D!9D$<(,,U399dV$((/
vx0'tF|<27#((*))G$((0((<rxx899W%**,IIg&++-	
vx0
vw/
vy1rA   r   r   r   r)   ro   r%   i     r   c                      |g d|      }t        g d|d      }|j                  |      j                         } |ddg      }d|j                  _        t        j                  ||       y )Nr   r   r)   r%   ru   )r   r   r   r   )rp   rp   )rv   r   r%   r)   )r
   r   lastrv   r   r9   assert_equal)r   frame_or_seriesrv   objgroupsr>   r?   s          r"   $test_groupby_series_named_with_tuplez1TestGrouping.test_groupby_series_named_with_tuple  s]     l%8E
CV$))+"Aq6*(
)rA   c                    t        ddd      }t        t        j                  j	                  d      j                  d      |      }d}t        j                  t        |      5  |j                  d	        d d d        |j                  d
       j                         }|j                  |j                        j                         }d |j                  _        t        j                  ||       y # 1 sw Y   zxY w)Nz01-Jan-2013r   MSr   r   r   ru   z''Timestamp' object is not subscriptabler   c                     | dd S )Nr   r&   r   r   s    r"   rh   zDTestGrouping.test_groupby_grouper_f_sanity_checked.<locals>.<lambda>  s    3q8 rA   c                     | S rd   r   rf   s    r"   rh   zDTestGrouping.test_groupby_grouper_f_sanity_checked.<locals>.<lambda>  s    a rA   )r   r
   rL   rM   rN   rO   r   r   	TypeErrorr   r8   rv   r   r9   r:   )r   r   tsr/   r>   r?   s         r"   %test_groupby_grouper_f_sanity_checkedz2TestGrouping.test_groupby_grouper_f_sanity_checked  s    ="4@BII))!,<<R@N 8]]9C0 	-JJ+,	- K(,,.::bhh'++-"
vx0	- 	-s   %C11C:c           	         t        ddgdz  t        ddd      d      }t        dd	
      }|j                  |dg      }t	        d      dfddgt	        d      dfdgt	        d      dfdgt	        d      dfddgi}t        j                  |j                  |       t        |j                  j                               dk(  sJ y )Nrp   rq   r)   z
2000-01-01z
2000-01-039hr   )idrq   r7   r   r6  r   r   r   z
2000-01-02r%   rn   )
r   r   r   r   r   r9   r   r)  lenkeys)r   r    r  rx   r?   s        r"   test_groupby_with_datetime_keyz+TestGrouping.test_groupby_with_datetime_key  s    Cj1nlF
 c,ZZ$( |$c*QF|$c*QC|$c*QC|$c*QF	
 	RYY1 299>>#$)))rA   c                     d}t        j                  t        |      5  t        |j                  |ddg          d d d        y # 1 sw Y   y xY w)NzEGrouper for '<class 'pandas.core.frame.DataFrame'>' not 1-dimensionalr   r   )r   r   r+   r   rv   r   r    r/   s      r"   %test_grouping_error_on_multidim_inputz2TestGrouping.test_grouping_error_on_multidim_input  s@    U]]:S1 	/RXXr3*~.	/ 	/ 	/s   AAc                 >   t        g dg dg dg      }t        j                  g d      |_        d}t	        j
                  t        |      5  |j                  dddg	      }d d d        j                         }t	        j                  ||       y # 1 sw Y   0xY w)
Nr   r   r)   )r%   rn   r&   )r"  r'   	   )r   r   )r   r   r   r   r   r   r   r   )
r   r	   rw   r   r9   r   r   r   firstr<   )r   r    r  rx   r>   s        r"   test_multiindex_passthruz%TestGrouping.test_multiindex_passthru  s     	9i89++,DE
@''XF 	21a&1B	2
fb)	2 	2s   BBc                    |j                  d      j                         }|j                  d      j                         }t        j                  ||       |j                  d      j                         }|j                  d      j                         }t        j                  ||       |j                  ddg      j                         }|j	                         }t        j                  ||       |j                  ddg      j                         }|j                  ddg      j                         }t        j                  ||       y )Nr   r   secondrA  )r   r8   r9   r<   
sort_index)r    multiindex_dataframe_random_datar>   r?   s       r"   test_multiindex_negative_levelz+TestGrouping.test_multiindex_negative_level   s)   1999CGGI3;;(;KOOQ
fh/1999CGGI3;;';JNNP
fh/199R9IMMO3>>@
fh/199W9NRRT3;;W% < 

#% 	 	fh/rA   c                 ,   t        j                  t        |j                              |_        d}t	        j
                  t        |      5  |j                  dd      d   j                  dt         j                  i       d d d        y # 1 sw Y   y xY w)Nz7Passing a dictionary to SeriesGroupBy.agg is deprecatedr   r   Fas_indexr   Q)
rL   r   r7  r   r9   r   r   r   r;   r4   r;  s      r"   &test_multifunc_select_col_integer_colsz3TestGrouping.test_multifunc_select_col_integer_cols4  ss    YYs2::/
 H''SA 	AJJq5J)!,00#rww@	A 	A 	As   6B

Bc                 Z   ddgddgg}t        j                  |      }t        ddgg|      }|j                  d      j                  }|d   dgk(  sJ |j                  d	g      j                  }|d   dgk(  sJ t        ddgd
dgg|      }|j                  d      j                  }|j                  d	g      j                  }||k(  sJ t        ddgd
dgg|      }|j                  d      j                  }|j                  d	g      j                  }t        j                  ||       y )Nr,   values	to filter r   r   r   r   )rP  rQ  r   r   )r	   rw   r   r   r)  r9   r   )r   lstmidxr    r0   r?   r>   s          r"   #test_multiindex_columns_empty_levelz0TestGrouping.test_multiindex_columns_empty_level<  s4   "["$56%%c*Cz40**[)00s|s"""**/0188s|s"""C1c(+T:::k*11./077!!!C1c(+T:::k*11./077
VX.rA   c                    t        g dg dg dgt        j                  g dg dg            }|j                  dg      j                  }|j                  d      j                  }t        j                  ||       t        |j                  t        j                  g dg dg            }|j                  d	g      j                  }|j                  d      j                  }t        j                  ||       t        |j                  g d
      }|j                  d	g      j                  }|j                  d      j                  }t        j                  ||       y )Nr$  r)   r%   rn   r&   r   r%   r   r)   rp   rq   rq   r1   r   r   r   r   r   r   )rr   rr   erZ  rq   rr   ))rp   rr   r[  )rq   rZ  r1   )r   r	   from_arraysr   r)  r9   r   rO  )r   r    r?   r>   df2df3s         r"   test_groupby_multiindex_tuplez*TestGrouping.test_groupby_multiindex_tupleT  s   <6**,@,+OP
 ::xj)00H%,,
Xv.II**%';<
 ;;
|,33H%,,
Xv.		+TU;;
|,33H%,,
Xv.rA   c                    t        g dg dg dgt        j                  g dg dg            }|j                  dg      dd	g   j	                         }|j                  dg      d
   j	                         }t        j                  ||       |j                  dg      dd	g   j                         }|j                  dg      d
   j                         }t        j                  ||       |j                  dg      dd	g   j                         }|j                  dg      d
   j                         }t        j                  ||       |j                  dg      dd	g   j                         }|j                  dg      d
   j                         }	t        j                  ||	       |j                  dg      dd	g   j                         }
|j                  dg      d
   j                         }t        j                  |
|       |j                  dg      dd	g   j                  }|j                  dg      d
   j                  }t        j                  ||       y )Nr$  rV  rW  rX  rY  r   r   r   r   rq   )r   r	   r\  r   r4   r9   r<   r8   r,   minmaxr)  r   )r   r    expected_meanresult_meanexpected_sum
result_sumexpected_countresult_countexpected_min
result_minexpected_max
result_maxexpected_groupsresult_groupss                 r"   4test_groupby_multiindex_partial_indexing_equivalencezATestGrouping.test_groupby_multiindex_partial_indexing_equivalencem  s   <6**,@,+OP

 

H:.(/CDIIKjj(,S1668
m[9zz8*-x.BCGGIZZ
+C0446

lJ7XJ/80DEKKMzz8*-c288:
nl;zz8*-x.BCGGIZZ
+C0446

lJ7zz8*-x.BCGGIZZ
+C0446

lJ7**hZ0(H1EFMM

H:.s3::
_m<rA   r   c                 ,   |}|j                         }|j                  d|      j                         }|j                  d|      j                         }|j                  |d   j                  |      j                         }|j                  |d   j                  |      j                         }	d|j                  _        d|	j                  _        |j                  j
                  dk(  sJ |j                  j
                  dk(  sJ t        j                  ||       t        j                  ||	       |j                  j
                  |j                  j                  d   k(  sJ |j                  j
                  |j                  j                  d   k(  sJ |j                  d|      j                         }|j                  d|      j                         }t        j                  ||       t        j                  ||	       d}
t        j                  t        |
      5  |j                  j                  dd|	      j                         }|j                  j                  dd|	      j                         }d d d        t        j                  ||j                         t        j                  ||	j                         d
}
t        j                  t        |
      5  |j                  d       d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr   r   r   r   rA  )r   rD  r   r   )r   r   r   z2level > 0 or level < -1 only valid with MultiIndexr   )r   r   r8   rO  rv   r   r9   r<   rt   r   r   r  r   r   r+   )r   r   rG  r    frame	deleveledresult0result1	expected0	expected1r/   s              r"   test_groupby_levelzTestGrouping.test_groupby_level  s    1%%'	--ad-3779--ad-3779MM)G"4";";$MGKKM	MM)H"5"<"<4MHLLN	&	'	}}!!W,,,}}!!X---
gy1
gy1}}!!U[[%6%6q%9999}}!!U[[%6%6q%9999 --gD-9==?--hT-:>>@
gy1
gy1 <''SA 	HggooAADoAEEGGggooAADoAEEGG	H 	gy{{3
gy{{3 C]]:S1 	 JJQJ	  	 	H 	H	  	 s   $AK>"L
>L
Lc                 $   t        dgdz  dgdz  z   t        d      d      j                  d      }|dv r|j                  }d}nd	}t	        j
                  t        |
      5  |j                  d|       d d d        d|j                  |       }t        j                  t        |
      5  t	        j
                  t        |
      5  |j                  d|       d d d        d d d        y # 1 sw Y   yxY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nr   r)   r   r&   )expvar1rz  )r   r   r   r  r   )r   r   z&level name foo is not the name of the rD   )r   r*   	set_indexr  r9   r   r   r   _get_axis_namer   r   r+   )r   r   r    r  r/   s        r"   test_groupby_level_index_namesz+TestGrouping.test_groupby_level_index_names  s    uqyC5194eAhGHRR
 >!BDHNH''XF 	/JJUJ.	/6r7H7H7N6OP]]:S1 	3++MJ 3

T
23	3 	3	/ 	/3 3	3 	3s0   "C.-D	C:D.C7:D	?DDc                    t        ddgg dgg dg dg      }t        t        j                  d      |      }|j	                  d|	      j                         }t        d
dgddg      }t        j                  ||       t        ddgg dgg dg dg      }t        t        j                  d      |      }|j	                  d|	      j                         }t        d
dgddg      }t        j                  ||       y )Nr   r   r!  )r   r   r   r   r   r   r   r   )r   r   r   r)   r   r   r   r)   )levelscodesg       @ru   rq  g      @g      6@)r   r   r   r   r   r   r   r   g      2@g        r  )r	   r
   rL   r   r   r8   r9   r:   )r   r   rv   r  r>   r?   s         r"   test_groupby_level_with_nasz(TestGrouping.test_groupby_level_with_nas  s     FL)+-EF
 299S>/.2243+aV4
vx0FL),.FG
 299S>/.2243+c3Z8
vx0rA   c                    |}d}t        j                  t        |      5  |j                          d d d        d}t        j                  t        |      5  |j                  d d        d d d        y # 1 sw Y   CxY w# 1 sw Y   y xY w)Nz*You have to supply one of 'by' and 'level'r   )r   r   )r   r   r0  r   )r   rG  rr  r/   s       r"   test_groupby_argszTestGrouping.test_groupby_args  sw    0:]]9C0 	MMO	 ;]]9C0 	/MMTM.	/ 	/		 		/ 	/s   A3A?3A<?Bzsort,labels
r   r   r   r   r   r   r   r)   r)   r)   )
r   r   r   r   r   r   r   r)   r)   r)   c                     |j                  d|      }t        j                  |t        j                        }t	        j
                  |j                  j                  d   |       y )Nr   rq  )r   rL   r  intpr9   assert_almost_equal_grouperr  )r   r   labelsrG  r0   
exp_labelss         r"   test_level_preserve_orderz&TestGrouping.test_level_preserve_order  sN     3:::NXXfbgg.

w//55a8*ErA   c                     |j                  |j                  j                  d            }t        j                  g dt        j
                        }t        j                  |j                  j                  d   |       y )Nr   r  r   )
r   rv   get_level_valuesrL   r  r  r9   r  r  r  )r   rG  r0   r  s       r"   test_grouping_labelsz!TestGrouping.test_grouping_labels  s^    2::,22CCAF
 XX<BGGL

w//55a8*ErA   c                    t        dt        ddd      i      }t        j                  |j                  d<   t        dd      }|j                  |g      }t        d	      t        t        t        d
                  i}t        j                  |j                  |       |j                  |      }t        d	      di}t        j                  |j                  |       y )Nr   z1/1/2011im  r7   r-  r   YSr   z
2011-01-01il  )r   r   r   NaTr^   r   r   r   r   rX   r*   r9   r   r)  )r   r    r  r>   r?   s        r"   test_list_grouper_with_natz'TestGrouping.test_list_grouper_with_nat   s    
:s MNOfff40 WI&l+U4c
3C-DE
V]]H5 G$l+S1
V]]H5rA   zfunc,expected	transformr   r   r   r;   r   r   r   )r   r   rv   r   c                     t        g g d      }|j                  dd      } t        |d   |      d       }t        j                  ||       y )Nr   r   Fr   r   c                     | S rd   r   rf   s    r"   rh   z>TestGrouping.test_evaluate_with_empty_groups.<locals>.<lambda>,  s    q rA   )r   r   getattrr9   r:   )r   rb   r?   r    r!   r>   s         r"   test_evaluate_with_empty_groupsz,TestGrouping.test_evaluate_with_empty_groups  sK    4 2"~&JJqUJ+$1t$[1
vx0rA   c           	         t        g dd      }|j                  g       }|j                         }|j                  t	        g t
        j                              }t        j                  ||       t        |j                  j                        dk(  sJ t        j                  |j                  j                  d   t        j                  g t        j                  t
        j                                     t        j                  |j                  j                  d   t        j                  g t        j                  t
        j                                     |j                  j                  d   dk(  sJ |j                  |      }d}t        j                   t"        |	      5  |j$                  }d d d        j&                  }dg}||k(  sJ y # 1 sw Y    xY w)
Nr   float64r  r   r   r   r   z#SeriesGroupBy.grouper is deprecatedr   )r
   r   r4   set_axisr   rL   r  r9   r:   r7  r  	groupingsassert_numpy_array_equal
group_infor  r   r   r   r  rt   )r   r  grr>   r?   rx   r/   r  s           r"   test_groupby_emptyzTestGrouping.test_groupby_empty/  se   2F)4YYr]::eBbgg67
vx0 2;;(()Q...
##KK""1%rxx"((277:K'L	
 	##KK""1%rxx"((277:K'L	
 {{%%a(A--- YYq\3''SA 	!jjG	!8!!!		! 	!s   &GGc           
      n   t        dt        j                  dgd t        j                  dggg d      j                  ddg      }|j	                  ddg      j                         }t        g t        t        dgd	
      t        g d
      gg g gddg      dgd      }t        j                  ||       y )Nrg   r      r   r   r   r   r   objectr   r  )r  r  rt   r   r   )r(   rv   r   r   )
r   rL   nanr|  r   r8   r	   r   r9   r<   r=   s       r"   %test_groupby_level_index_value_all_naz2TestGrouping.test_groupby_level_index_value_all_naM  s    2662rvvr 23_

)S#J
 	 3*-113se84eBi6PQ2hCj
 E	
 	fh/rA   c           	      4   t        g dg dgg d      }|j                  ddg      }||j                  dk     }|j                  d      j	                         }t        dd	gt        g t        j                  d
            }t        j                  ||       y )N){   rp   r  )r  rq   r  )r6  categoryvaluer   r6  r  r   r  r  r  )r   r   rv   )
r   r|  r  r   r8   r   rL   r   r9   r<   )r   r    emptyr>   r?   s        r"   #test_groupby_multiindex_level_emptyz0TestGrouping.test_groupby_multiindex_level_empty_  s    o.8S
 \\4,-288a< t$((*I"((6

 	fh/rA   N)4r   r   r   r   r   r   r   rX   rL   r   floatr   r   r   r   r   r   r   r   r   r   r	  r  r  r  r  r   r*   r   r*  r2  r9  r<  rB  rH  rM  rT  r_  ro  rx  r~  r  r  r  r  r  r
   r  r  r  r  r  )r   ir   s   000r"   r   r      s   [[$w- )"))A,)"))AU+,|Q/q1	
	G	G08000>14 [[VeT]30 40 ,0\5060,"
02& [[ 16q::AYtQQ':	
**1*./

*0(A/0/2=> [[VdE]3'  4' R3" [[VdE]31 410
/ [[1223	
FFF6  [[ ARZZ0
 "**E"BJJUV4W "**E"BJJUV4W	
*1+*1"<0$0E ;s   &H;r   c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	TestGetGroupc                    t        t        j                  g d      g dg dd      }|j                  d      }t	        t        |j                              }|j                  |      }|j                  t        |      j                               }|j                  t        t        |                  }t        j                  ||       t        j                  ||       |j                  ddg      }t	        t        |j                              }|j                  |      }|j                  t        |d         j                         |d   f      }|j                  t        t        |d               |d   f      }t        j                  ||       t        j                  ||       d	}t        j                  t        |
      5  |j                  d       d d d        t        j                  t        |
      5  |j                  d       d d d        d}t        j                  t        |
      5  |j                  d       d d d        y # 1 sw Y   vxY w# 1 sw Y   MxY w# 1 sw Y   y xY w)N)10-Oct-2013r  r  11-Oct-2013r  r  )rD   rD   rE   rD   rD   rE   r   )DATElabelVALr  r  r   r   z<must supply a tuple to get_group with multiple grouping keysr   rD   zHmust supply a same-length tuple to get_group with multiple grouping keys)rD   rE   baz)r   r   to_datetimer   r   r   r)  r   r   to_pydatetimestrr9   r<   r   r   r+   )r   r    r!   r   ru  rR   result3r/   s           r"   test_get_groupzTestGetGroup.test_get_groupt  s    	 D)
" JJv4>"++c"++in::<=++c)C.12
gw/
gw/JJ()4>"++c"++yQ0>>@#a&IJ++s9SV#45s1v>?
gw/
gw/ M]]:S1 	KK	]]:S1 	KK	X]]:S1 	/KK-.	/ 	/	 		 		/ 	/s$   I;I2I%II"%I.c                    t        g d      }g d}|j                  t        j                  |d   |      |      }|j	                  t        j
                  dd            }t        ddgddg      }t        j                  ||       d	}t        j                  t        |
      5  |j	                  t        j
                  dd             d d d        y # 1 sw Y   y xY w)N)r)   r   r"  r&   )r   rn   r      r   )r   rn   r)   r   ru   z"Interval\(10, 15, closed='right'\)r   r   r  )r   r   r   cutr   Intervalr9   r<   r   r   r   )r   r   rr   binsr!   r>   r?   r/   s           r"   test_get_group_empty_binsz&TestGetGroup.test_get_group_empty_bins  s    l#IIbffQqT4(8I< R[[A./aVAq62
fh/3]]83/ 	-KKB+,	- 	- 	-s   %&CCc                    t        g dgdg      j                  }|j                  d      }t        dddgiddg      }|j                  d      }t	        j
                  ||       t        j                  g d      }t        d|D cg c]  }|f c}i      }|j                  d      }|j                  d      }t        d|d   f|d   fgiddg      }t	        j
                  ||       y c c}w )	N)r   r   r  r   idsru   r  r   r   )
2010-01-01
2010-01-02r  r  )r  )r   r  r   r   r9   r<   r   r  )r   r    r  r?   r>   dtrg   s          r"   test_get_group_grouped_by_tuplez,TestGetGroup.test_get_group_grouped_by_tuple  s    45eWEGGZZedD\21a&Ad#
fh/^^TUb1123ZZo.er!uhA%9:1a&I
fh/	  2s   
C.
c                    t        dd dD        i      j                  d      }j                  fd      }|j                  t        t	        |j
                  j                                           }|j                  t        t	        |j
                  j                                           }t        j                  ||       y )Nr|   c              3      K   | ]=  }t         j                  j                  d       j                  ddd      D ]  }||f 
 ? ywr~   r   r   s      r"   r   zKTestGetGroup.test_get_group_grouped_by_tuple_with_lambda.<locals>.<genexpr>  r   r   r   c                 &    j                   | df   S r   r   r   s    r"   rh   zJTestGetGroup.test_get_group_grouped_by_tuple_with_lambda.<locals>.<lambda>  r   rA   )	r   r   r   r   r   r)  r8  r9   r<   r   s        @r"   +test_get_group_grouped_by_tuple_with_lambdaz8TestGetGroup.test_get_group_grouped_by_tuple_with_lambda  s     #
 ZZ!JJ67	<<T"))..*:%; <=$$T$y/?/?/D/D/F*G%HI
fh/rA   c                     t        j                  d      }d}t        ||t              }t	        d      }|j                  |      }t        t        |      d       J y )Nr   r   r7   r5  )r   r   r
   r  r   r   r   r   )r   rv   r(   seriesr  r0   s         r"   test_groupby_with_emptyz$TestGetGroup.test_groupby_with_empty  sT      $e62s#..)DM4(000rA   c                 @   t        dt        d      i      }t        j                  |j	                  d      j                  d      |j                  ddg          t        t        g dd      g       }t        j                  |j	                  d      j                         |       t        j                  |j	                  d      j                         |       |j                  g d   }t        j                  |j	                  d      j                  d	      |       y )
Nrp   abssbabr   rn   )rp   rq   r  )r   )rv   r   r)   r%   rn   r   )r   rX   r9   r<   r   r   r^   r   r,   r8   nth)r   r    rz  s      r"   test_groupby_with_single_columnz,TestGetGroup.test_groupby_with_single_column  s    T)_-.
bjjo77<bggq!foNeO#>K
bjjo335s;
bjjo113S9ggi 
bjjo11!4c:rA   c                     t        g dg dg dgg d      }|j                  ddg      }|j                  g d      j                         }|j                  d	   d
k(  sJ |j                  d   dk(  sJ y )N)rD   rE   r   r   )rD   rE   r   r   )rD   r  r   r)   )rA  rD  thirdrG   r   rA  rD  )rA  rD  r  )rD   rE   r   r   )rD   r  r   r   )r   r|  r   r.   rP   r[   s     r"   test_gb_key_len_equal_axis_lenz+TestGetGroup.test_gb_key_len_equal_axis_len  sz     #%;=ST7
 \\7H-.ZZ45::<vv)*a///vv)*a///rA   N)
r   r   r   r  r  r  r  r  r  r  r   rA   r"   r  r  s  s&    -/^-00(1	;0rA   r  c                   6    e Zd Zd Zd Zd Zd Zd Zd Zd Z	y)	TestIterationc                 0   |j                  dg      }|j                  }||j                  u sJ |j                  j                         D ]*  \  }}|j                  |   d   |k(  j	                         r*J  |j                  ddg      }|j                  }||j                  u sJ |j                  j                         D ]U  \  }}|j                  |   d   |d   k(  j	                         sJ |j                  |   d   |d   k(  j	                         rUJ  y )Nr   r   r   r   )r   r)  itemsrP   all)r   r    r0   r)  kvs         r"   test_groupszTestIteration.test_groups  s   **cU#'''NN((* 	/DAqFF1IcNa',,...	/ **c3Z('''NN((* 	2DAqFF1IcNad*//111FF1IcNad*//111	2rA   c                 j    |j                  d d g      }|j                  j                  d   D ]  } y )Nc                 "    | j                         S rd   )weekdayrf   s    r"   rh   z9TestIteration.test_grouping_is_iterable.<locals>.<lambda>  s    QYY[ rA   c                     | j                   S rd   )yearrf   s    r"   rh   z9TestIteration.test_grouping_is_iterable.<locals>.<lambda>  s
    AFF rA   r   )r   r  r  )r   tsframer0   r!   s       r"   test_grouping_is_iterablez'TestIteration.test_grouping_is_iterable  s>     //#8:J"KL !!++A. 	A	rA   c                    t        t        j                  d            }t        j                  g d      }t        j                  g d      }|j	                  ||g      }t        |      }dd|ddg   fdd|d	g   fd
d|dg   fd
d|ddg   fg}t        |      D ]8  \  }\  \  }}	}
||   \  }}}||k(  sJ ||	k(  sJ t        j                  |
|       : y )Nr&   )rp   rp   rp   rq   rq   rq   12r  r  r  r  rp   r  r   r   r  r   rq   r%   r)   rn   )	r
   rL   r   r  r   rX   	enumerater9   r:   )r   r  k1k2r0   iteratedr?   r  rG   rH   rI   e1e2e3s                 r"   test_multi_iterzTestIteration.test_multi_iter  s    299Q< XX45XX45))RH%=#q!Qy!#q!v#q!v#q!Qy!	
 '0&9 	."A"
cE!!JBB9999""5"-		.rA   c                    t        j                  g d      }t        j                  g d      }t        t         j                  j	                  d      j                  d      t         j                  j	                  d      j                  d      ||dg d      }|j                  dd	g      }t        |      }|j                  }d
d|j                  |dg      fd
d|j                  |ddg      fdd|j                  |ddg      fdd|j                  |dg      fg}t        |      D ]8  \  }	\  \  }
}}||	   \  }}}||
k(  sJ ||k(  sJ t        j                  ||       : t        j                  g d      |d<   t        j                  g d      |d	<   |j                  dd	g      }|D ci c]  \  }}||
 }}}t        |      dk(  sJ |j                  g d      j                         }d}t        j                  t         |      5  |j"                  j                  dd      }d d d        |D ]  \  }} y c c}}w # 1 sw Y   xY w)N)rq   rq   rq   rp   rp   rp   r  r   r&   )v1v2r  r  )rG   rH   rI   fourfivesixru   r  r  rp   r  r%   r  r)   rn   rq   r   r   )r  r  r  r  r  r  r   r   r   r   r@  )rL   r  r   rM   rN   rO   r   rX   rv   rP   r  r9   r<   r7  r4   r   r   r  )r   three_groupr  r  r    r0   r  ry   r?   r  rG   rH   rI   r  r  r  r   gpr)  three_levelsr  groups                         r"   test_multi_iter_framez#TestIteration.test_multi_iter_frame(  sM   XX45XX45ii++A.>>qAii++A.>>qA	 A
 **dD\* =hh#rvvc1#h'(#rvvc1a&k*+#rvvc1a&k*+#rvvc1#h'(	
 '0&9 	-"A"
cE!!JBB9999!!%,		- 88:;488:;4**dD\* *11gc2#r'116{a #**?;@@B@''XF 	C"nn,,!6,BG	C! 	JC	 2	C 	Cs   /H>IIc           	         t        t        |j                  d                   t        t        |j                  ddg                   t        t        |d   j                  |d                      t        t        |d   j                  |d   |d   g                   t        t        |j                  d      d                t        t        |j                  ddg      d                y )Nr   r   r   )r   r   r   r[   s     r"   test_dictifyzTestIteration.test_dictifyX  s    T"**S/"#T"**c3Z()*T"S'//"S'*+,T"S'//2c7BsG"4567T"**S/#&'(T"**c3Z(-./rA   c                    t        ddgddgdt        j                  ddg            }|j                  t	        d	      d
g      }t        |j                        dk(  sJ |j                  dk(  sJ t        d      df|j                  v sJ t        d      df|j                  v sJ |j                  t        d      df      }t        j                  ||j                  dgd d f          |j                  t        d      df      }t        j                  ||j                  dgd d f          t        g dg ddt        j                  g d            }|j                  t	        d	      d
g      }t        |j                        dk(  sJ |j                  dk(  sJ t        d      df|j                  v sJ t        d      df|j                  v sJ |j                  t        d      df      }t        j                  ||j                  ddgd d f          |j                  t        d      df      }t        j                  ||j                  dgd d f          t        g dg ddt        j                  g d            }|j                  t	        d	      d
g      }t        |j                        dk(  sJ |j                  dk(  sJ t        d      df|j                  v sJ t        d      df|j                  v sJ t        d      df|j                  v sJ |j                  t        d      df      }t        j                  ||j                  dgd d f          |j                  t        d      df      }t        j                  ||j                  dgd d f          |j                  t        d      df      }t        j                  ||j                  dgd d f          y )Nstart  .  )eventchange
2014-09-10
2013-10-10ru   r   r5  r  r   z
2014-09-30z
2013-10-31r   r   )r  r  r  )r  r  i#  )r  r	  z
2014-09-15)r  r	  z
2014-08-05r)   z
2014-08-31)r   r   r   r   r   r7  r)  ngroupsr   r   r9   r<   r^   )r   r    r0   ress       r"   test_groupby_with_small_elemz*TestIteration.test_groupby_with_small_elem`  s    (T4LA""L,#?@
 **g40':;7>>"a'''!###,'1W^^CCC,'1W^^CCC<!8' BC
c277A36?3<!8' BC
c277A36?31=OP""#MN
 **g40':;7>>"a'''!###,'1W^^CCC,'1W^^CCC<!8' BC
c277Aq619#56<!8' BC
c277A36?3 1=OP""#MN
 **g40':;7>>"a'''!###,'1W^^CCC,'1W^^CCC,'1W^^CCC<!8' BC
c277A36?3<!8' BC
c277A36?3<!8' BC
c277A36?3rA   c                     t        j                  t        d      t        d      g      }t        g dg|      }|j	                  |d         }|j
                  j                  d   j                         }d}||k(  sJ y )NAABabar>  r   )r   rp   r   zGrouping(('A', 'a')))r	   r\  rX   r   r   r  r  __repr__)r   r   r    r  r>   r?   s         r"   test_grouping_string_reprz'TestIteration.test_grouping_string_repr  so    ##T%[$u+$>?	{B/ZZ:'&&q)224)!!!rA   N)
r   r   r   r  r  r  r  r  r  r  r   rA   r"   r  r    s'    2 .(.`024h"rA   r  c                     t        g dg dg dd      j                  d      } | j                  t        d      t        d      gd	      }|j                  j
                  d
   j                  rJ |j                  j
                  d   j                  sJ d}t        j                  t        |      5  |j                         }d d d        t        ddgddgd      }t        j                  |       y # 1 sw Y   2xY w)Nrm   r  )rp   rq   r1   rp   r   rq   r   FrJ  r   r   z*A grouping .* was excluded from the resultr   r   r"  rn   )rq   r1   )r   r|  r   r   r  r  in_axisr9   r   r   r8   r<   )r    rx   r/   r>   r?   s        r"   test_grouping_by_key_is_in_axisr    s    	C	D	N	Ns	SB	W3'S)9:U	KB{{$$Q'////;;  #++++ 7C		#	#M	= 1vQF34H&(+ s   5C77D c                  ,   t        g ddd      } t        d      }| j                  |      }d}t        j                  t
        |      5  |j                  }d d d        |j                  u sJ d}t        j                  t
        |      5  |j                  }d d d        ||j                  u sJ d	}t        j                  t
        |      5  |j                  }d d d        ||j                  u sJ d
}t        j                  t
        |      5  |j                   d d d        d}t        j                  t
        |      5  |j                   d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   axY w# 1 sw Y   y xY w)Nr>  r   rp   rq   rp   r   zUse GroupBy.groups insteadr   zUse GroupBy.grouper insteadz-Grouper.obj is deprecated and will be removedzUse Resampler.ax insteadzGrouper.indexer is deprecated)r   r   r   r9   r   r   r)  r  r  r(  axindexer)r    grperrx   r/   r  s        r"   test_grouper_groupsr    s_   	+	,BE	E	B
&C		#	#M	= ll"))
'C		#	#M	= mm"++
9C		#	#M	= ii"&&==
$C		#	#M	=  *C		#	#M	=  ' 
 
 
  s<   EE&E2E>F
E#&E/2E;>F
Fattr)group_indexresult_indexgroup_arraylikec                     t        g dg dd      }|j                  d      }|  d}t        j                  t        |      5  t        |j                  j                  d   |        d d d        y # 1 sw Y   y xY w)Nrm   r  r  rp   z is deprecatedr   r   )r   r   r9   r   r   r  r  r  )r  r    rx   r/   s       r"   test_depr_grouping_attrsr     sj     
3	4B	CBF.
!C		#	#M	= 0%%a($/0 0 0s   $A11A:) __doc__datetimer   r   numpyrL   r   pandasr   r   r   r   r   r	   r
   r   r   r   pandas._testing_testingr9   pandas.core.groupby.grouperr   r   r   r  r  r  r  r   r   r   r   rA   r"   <module>r(     s   
   
 
 
  0H/ H/^~
0 ~
0J@0 @0Nb" b"J, < !ST0 U0rA   