
    Mh&                        S r SSKJrJr  SSKrSSKrSSKrSSKJ	r	J
r
JrJrJrJrJrJrJr  SSKJr  SSKJr   " S S5      r " S S	5      r " S
 S5      r " S S5      rS rS r\R:                  R=                  S/ SQ5      S 5       rg)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                       \ rS rSrS rS rS rS rS rS r	S r
\R                  R                  S	S
 S /5      S 5       rS rSrg)TestSelection   c                 *   [        SS//SS/S9nUR                  S5      n[        R                  " [        SS9   US/     S S S 5        [        R                  " [        S	S9   USS/     S S S 5        g ! , (       d  f       N8= f! , (       d  f       g = f)
N      ABcolumnsz"Columns not found: 'C'"matchCz^[^A]+$)r   groupbypytestraisesKeyError)selfdfgs      T/var/www/html/env/lib/python3.13/site-packages/pandas/tests/groupby/test_grouping.pytest_select_bad_cols"TestSelection.test_select_bad_cols    s{    Ax#s4JJsO]]8+GHseH I ]]895 sCjM 65 IH 65s   A3"B3
B
Bc           
      (   [        / SQ[        S5      [        SS5      [        SSS5      /S9nSn[        R                  " [        US	9   UR                  S
5        S S S 5        [        R                  " [        US	9   UR                  S
S/5        S S S 5        UR                  S5      nUR                  5       nUR                  R                  S:X  d   eUR                  R                  S:X  d   eg ! , (       d  f       N= f! , (       d  f       Ny= f)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_errormsg5TestSelection.test_groupby_duplicated_column_errormsg+   s    (a%1+uQPQST~/V
 2]]:S1JJsO 2]]:S1JJSz" 2 **S/MMOyy  A%%%yy~~""" 2111s   	C2<D2
D 
Dc                    UR                  S5      R                  R                  5       nUR                  S5      S   R                  5       n[        R                  " X#5        SUS'   UR                  S5      R                  SS9nUR                  S5      / SQ   R                  S5      n[        R                  " X#5        g )Nr   r   g      ?meanTnumeric_only)r   Dr7   )r   r   sumtmassert_series_equalr7   aggassert_frame_equalr    r!   resultexpecteds       r#   test_column_select_via_attr)TestSelection.test_column_select_via_attr<   s    C""&&(::c?3'++-
v06
C%%4%8::c?#56::6B
f/    c           	         [        / SQ/ SQ[        R                  R                  S5      R	                  S5      [        R                  R                  S5      R	                  S5      [        R                  R                  S5      R	                  S5      S.5      nUR                  S5      SS/   R                  5       nUR                  S5      UR                  SS	    R                  5       nUR                  S S 2/ S
Q4   R                  S5      R                  5       n[        R                  " X$5        [        R                  " X45        g )NfoobarrH   rI   rH   rI   rH   rH   onerK   twothreerL   rL   rK   rM   r   r)   r   r   r   r:   Er   r   r:   r'   )r   r   r:   )r   nprandomdefault_rngstandard_normalr   r7   r   locr<   r?   r    r!   rA   result2rB   s        r#   test_getitem_list_of_columns*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
f/
g0rE   c                 P   [        [        S5      S-  [        R                  R	                  S5      R                  S5      [        R                  R	                  S5      R                  S5      [        R                  R	                  S5      R                  S5      S.5      nUR                  S5      UR                  SS    R                  5       nUR                  S5      SS/   R                  5       nUR                  S S 2/ S	Q4   R                  S5      R                  5       n[        R                  " X$5        [        R                  " X45        [        R                  " [        S
S9   UR                  S5      S   R                  5         S S S 5        g ! , (       d  f       g = f)Nabcdr   r)   )r   r   r'   r(   r   r   r+   r'   r   r   r'   "Cannot subset columns with a tupler   )r   r'   )r   listrP   rQ   rR   rS   r   r   r7   rT   r<   r?   r   r   r-   rU   s        r#   !test_getitem_numeric_column_names/TestSelection.test_getitem_numeric_column_namesY   s3   <!#99((+;;A>99((+;;A>99((+;;A>	
 Arzz!A/446**Q-A',,.66!Y,'//2779
f/
g0 ]]:-QRJJqM$$$& SRRs   +#F
F%c                     [         R                  " [        SS9   UR                  S5      S   R	                  5         S S S 5        g ! , (       d  f       g = f)Nr\   r   r   )r   r:   )r   r   r-   r   r7   r    r!   s     r#   +test_getitem_single_tuple_of_columns_raises9TestSelection.test_getitem_single_tuple_of_columns_raiseso   s7    ]]:-QRJJsOH%**, SRRs   #A
Ac           	      4   [        / SQ/ SQ[        R                  R                  S5      R	                  S5      [        R                  R                  S5      R	                  S5      [        R                  R                  S5      R	                  S5      S.5      nUR                  S5      S   R                  5       nUR                  S S 2SS/4   R                  S5      R                  5       nUR                  S S 2S4   nUn[        R                  " X%5        g )	NrG   rJ   r   r)   rN   r   r   r   )r   rP   rQ   rR   rS   r   r7   rT   ilocr<   r=   )r    r!   rA   as_frame	as_seriesrB   s         r#   test_getitem_single_column(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$'	
v0rE   funcc                 "    U R                  5       $ Nr;   xs    r#   <lambda>TestSelection.<lambda>   s
    1557rE   c                 &    U R                  S 5      $ )Nc                 "    U R                  5       $ rl   rm   )ys    r#   rp   (TestSelection.<lambda>.<locals>.<lambda>   s
    aeegrE   )r>   rn   s    r#   rp   rq      s    aee4E.FrE   c                     [        / SQSSSS.5      nUR                  SS/5      SS/   n[        R                  " S	S
/SS/S9n[        SS/SS/S.US9nU" U5      n[        R
                  " Xe5        g )Nr   r   r   r+   r'      abr3   drz   r{   r3   )r   r+   )r   r+   namesr   r)   )rz   r3   index)r   r   r	   from_tuplesr<   r?   )r    rj   r!   gbidxrB   rA   s          r#   test_getitem_from_grouper'TestSelection.test_getitem_from_grouper   s}    
 YQQQ?@ZZc
#S#J/$$ff%5c3ZHAq6A7sCb
f/rE   c                    ^ [        SS S 5       05      mTR                  S5      nTR                  U4S j5      nUR                  nUR                  n[        R                  " XC5        g )NTuplesc              3      #    U  H@  n[         R                  R                  S 5      R                  SSS5        H  nX4v   M
     MB     g7fr   r+   rx   NrP   rQ   rR   integers.0ro   rt   s      r#   	<genexpr>JTestSelection.test_indices_grouped_by_tuple_with_lambda.<locals>.<genexpr>   D      #YY2215>>q!QG FG #   AA
r   r   c                 &   > TR                   U S4   $ Nr   re   ro   r!   s    r#   rp   ITestSelection.test_indices_grouped_by_tuple_with_lambda.<locals>.<lambda>       ArE   )r   r   indicesr<   assert_dict_equalr    r   	gb_lambdarB   rA   r!   s        @r#   )test_indices_grouped_by_tuple_with_lambda7TestSelection.test_indices_grouped_by_tuple_with_lambda   sc     #
 ZZ!JJ67	::""
V.rE    N)__name__
__module____qualname____firstlineno__r$   r4   rC   rW   r^   rb   rh   r   markparametrizer   r   __static_attributes__r   rE   r#   r   r      sY    	#"01&',-
1& [["$FG	0	0/rE   r   c                   b   \ rS rSr\R
                  R                  S\" \" S5      5      \" \	R                  " S5      5      \" \	R                  " S\S95      \" SSS9\" SSS9/5      S 5       rS	 rS
 rS rS r\R
                  R                  SSS/5      S 5       rS rS rS rS rS rS rS rS r\R
                  R                  S/ SQ/ SQ\" S5       V VVs/ s H  n[;        SSSU-   5      PM     snnn /5      S 5       rS  rS! r S" r!S# r"S$ r#S% r$S& r%S' r&S( r'\R
                  R                  S)SS/5      S* 5       r(S+ r)\R
                  R                  S)SS/5      S, 5       r*S- r+\R
                  R                  S.S/ S/Q/S/ S0Q//5      S1 5       r,S2 r-S3 r.\R
                  R                  S4S5\/" S6\	R`                  S794S8\/" S6\	R`                  \" / \	R`                  S9S:9S;94S<\/" S6\	R`                  \" / \	R`                  S9S:9S;94/5      S= 5       r1S> r2S? r3S@ r4SAr5gBs  snnn f )CTestGrouping   r   abcderx   dtypez
2020-01-01periodsc                 F   [        [        R                  " S5      R                  SS5      [	        S5      US9nUR                  [	        S5      SS9R                  S	 5        UR                  S S S
2   Ul        UR                  [	        S5      SS9R                  S 5        g )N
   rx   r   AB)r   r   r   F
group_keysc                     U $ rl   r   rn   s    r#   rp   7TestGrouping.test_grouper_index_types.<locals>.<lambda>       ArE   c                     U $ rl   r   rn   s    r#   rp   r      r   rE   )r   rP   arangereshaper]   r   applyr   )r    r   r!   s      r#   test_grouper_index_types%TestGrouping.test_grouper_index_types   s|     ryy},,Q2DJeT


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


4=U
399+FrE   c                    [         R                  " 5       [        SS9-
  n[        U[         R                  " 5       5      n[        R
                  " X"/SS/S9n[        [        R                  R                  S5      R                  SSS	5      US
9nUR                  5       R                  [        SSS9[        SSS9/5      R                  5       n[        S/SS9Ul        UR                  [        SSS9[        SSS9/5      R                  5       n["        R$                  " Xe5        UR                  [        SSS9[        SSS9/5      R                  5       n["        R$                  " Xe5        g )N   )daysrH   rI   r}   r   r   d      r   Wkeyfreqint64r   levelr   r   )r   todayr   r   r	   from_productr   rP   rQ   rR   r   reset_indexr   r   r;   r   r   r<   r?   )r    d0dates
date_indexr!   rB   rA   s          r#   test_grouper_multilevel_freq)TestGrouping.test_grouper_multilevel_freq   s3    ZZ\I2..2tzz|,,,e^E5>R
ryy,,Q/88CEZX NNWg%c2GC4PQRSU 	 !!G45s+W5s-KL

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

#% 	 	f/rE   c                    [        / SQ/ SQS.5      nUR                  S5      nUR                  5       nUR                  [        SS95      nUR                  5       n[        R
                  " XC5        Sn[        R                  " [        US9   [        SSS	9nS S S 5        UR                  W5      nUR                  5       n[        R
                  " XC5        S
n[        R                  " [        US9   UR                  S 5      nS S S 5        / SQUS'   UR                  S S 2SS/4   n[        R
                  " XC5        g ! , (       d  f       N= f! , (       d  f       NR= f)N)r   r   r   r   r   r   r   r   r+   r'   rx   r(   r   r   r   r   z6Grouper axis keyword is deprecated and will be removedr   r   )r   axisz7DataFrameGroupBy.apply operated on the grouping columnsc                 "    U R                  5       $ rl   rm   rn   s    r#   rp   8TestGrouping.test_grouper_creation_bug.<locals>.<lambda>   s
    quuwrE   r[   r   )r   r   r;   r   r<   r?   assert_produces_warningFutureWarningDeprecationWarningr   rT   )r    r!   r"   rB   rA   r1   gprs          r#   test_grouper_creation_bug&TestGrouping.test_grouper_creation_bug   s   /6HIJJJsO557JJw3'(
f/F''SAc*C BJJsO
f/G''(:#FWW./F G!<<C:.
f/ BA GFs   E 2E 
E
Ec                    [        / SQ/ SQ/ SQS.5      nUR                  S5      R                  5       nUR                  [        SS9/5      nUR                  5       n[        R
                  " XB5        UR                  SS/5      R                  5       nUR                  [        SS9[        SS9/5      nUR                  5       n[        R
                  " XB5        UR                  S[        SS9/5      nUR                  5       n[        R
                  " XB5        UR                  [        SS9S/5      nUR                  5       n[        R
                  " XB5        g )N)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!   rB   r"   rA   s        r#   test_grouper_creation_bug2'TestGrouping.test_grouper_creation_bug2   s    $+=DVW
 ::c?&&(JJC()*
f/ ::sCj)--/ JJC('c*:;<
f/ JJW-./
f/ JJC(#./
f/rE   c                 L   [        SSUS9n[        R                  " [        S5      [	        S5      U// SQS9n[        [        R                  " SSS	9US
9nUR                  [        SSS95      R                  5       n[        R                  " [        S5      /SSS9R                  U5      n[        S/US
9n[        R                   " XW5        UR                  [        SS95      R                  5       nUR                  SS9R                  5       n[        R                   " XW5        g )N20130101r   )r   unitab)rK   rL   rM   r}   r)   r   r   r   rM   MEr   z
2013-01-31)r   name   rK   r   )r   r	   r   r]   r,   r
   rP   r   r   r   r;   pdDatetimeIndexr   as_unitr<   r=   )r    r   dtimiserrA   exp_dtirB   s           r#   test_grouper_creation_bug3'TestGrouping.test_grouper_creation_bug3  s   QT:$$$Zq3')
 IIaw'
 W7>?CCE""|$%Dw

'$- 	 D
 	v0 W512668;;U;+//1
v0rE   rj   FTc                 R  ^ [        / SQ/ SQS.5      n[        [        [        S5      SS/S-  5      5      mU(       a  UR	                  U4S jS	S
9nOUR	                  TS	S
9n[        [        U5      5      u  pEUS:X  d   eUR                  U5      n[        R                  " Xe5        g )Nr   r   r   r   )r   r'   r+   r   )XYr'   )r   rx   )r:   r(   r   c                    > TU    $ rl   r   )r   mappings    r#   rp   <TestGrouping.test_grouper_returning_tuples.<locals>.<lambda>7  s	    73<rE   F)bysort)
r   dictzipr,   r   nextiter	get_groupr<   r?   )r    rj   r!   r   r   rB   rA   r   s          @r#   test_grouper_returning_tuples*TestGrouping.test_grouper_returning_tuples0  s     1EFs58h%9A%=>?7eDBwU3Bd2hxd#
f/rE   c                    [         R                  " / SQ5      nSS/Ul        [        [        R
                  " S5      / SQS.US9nUR                  S[        SS	9/5      R                  S
S9nUR                  5       R                  SS/5      R                  S
S9n[        R                  " X45        UR                  [        SS	9S/5      R                  S
S9nUR                  5       R                  SS/5      R                  S
S9n[        R                  " X45        UR                  S5      nUR                  S[        SS	9/5      R                  S
S9nUR                  5       R                  SS/5      R                  S
S9n[        R                  " X45        UR                  [        SS	9S/5      R                  S
S9nUR                  5       R                  SS/5      R                  S
S9n[        R                  " X45        g )N)rz   r   )rz   r   )rz   r+   r{   r   r{   r   )r{   r+   outerinnerr(   )rK   rK   rL   rL   rK   rK   r   r   r   r   Tr8   )r	   r   r~   r   rP   r   r   r   r7   r   r<   r?   )r    r   df_multirA   rB   	df_singles         r#   test_grouper_column_and_index*TestGrouping.test_grouper_column_and_indexA  s   
 $$H
 g&	))A,%OP
 !!3g(>"?@EESWEX  "**C>:??T?R 	 	f/ !!7#93"?@EESWEX  "**GS>:??T?R 	 	f/ ((1	""Cw)?#@AFF G 
 !!#++S'N;@@d@S 	 	f/ ""G'$:C#@AFF G 
 !!#++WcN;@@d@S 	 	f/rE   c                    SS/n[         R                  " / SQUS9n[        [        R                  " S5      R                  SS5      US9nUR                  US	9R                  5       nUR                  5       R                  U5      R                  5       nUR                  R                  [        R                  5      Ul	        [        R                  " XE5        g )
Nro   rt   )r   r   r   r   )r+   r'   )rx   r(   r}      r   r+   r   r   )r	   r   r   rP   r   r   r   r7   r   r   astyper   r<   r?   )r    	idx_namesr   r!   	by_levels
by_columnss         r#   test_groupby_levels_and_columns,TestGrouping.test_groupby_levels_and_columnso  s    #J	$$%EYWryy},,R33?JJYJ/446	^^%--i8==?
 (//66rxx@

i4rE   c                    / SQnSS/n[         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/[        5      n[        X#SS9n[	        XES9nSn[
        R                  " [        US	9   UR                  S
SUS9R                  5       nS S S 5        [         R                  " SS/SS/SS/SS/SS//[        5      n	[        X3SS9n
[	        XS9n[
        R                  " WU5        [	        UR                  US9nSn[
        R                  " [        US	9   UR                  SSUS9R                  5       nS S S 5        [	        U	R                  U
S9n[
        R                  " X5        g ! , (       d  f       N= f! , (       d  f       NJ= f)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   r   5The 'axis' keyword in DataFrame.groupby is deprecated)r*   r   )rP   arrayintr   r   r<   r   r   r   r;   r?   T)r    r  r   r  r*   cat_columnsr!   depr_msgrA   expected_dataexpected_columnsrB   r1   s                r#   *test_groupby_categorical_index_and_columns7TestGrouping.test_groupby_categorical_index_and_columns}  sW   &3Z
xx<|\RTW
 'wtTD6@''XFZZQa(ZCGGIF G1a&1a&1a&1a&1a&!I3O+t
 -J
fh/ tvv[1E''SAZZQa(ZCGGIF B-//9IJ
f/ GF BAs   ! E E0
E-0
E>c                 f   [        SS0[        R                  " [        S5      [	        SSS9/SS/S	9S
9nUR                  [        SS9[        SSS9/5      R                  5       n[        S/ SQ0[        R                  " [        S5      [	        SSSS9/SS/S	9S
9n[        R                  " X#5        g )Nr   r   r   r   P   r   rK   rL   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       r#   #test_grouper_getting_correct_binner0TestGrouping.test_grouper_getting_correct_binner  s     !H))dZ
B?@PU
 5!7T#BC

#% 	 *+))dZ
qIJen
 	f/rE   c                     UR                  S5      nSn[        R                  " [        US9   UR                  nS S S 5        [        W5      nSS/nXV:X  d   eg ! , (       d  f       N%= f)Nr   &DataFrameGroupBy.grouper is deprecatedr   rI   rH   )r   r<   r   r   groupersorted)r    r!   r   r1   r.  rA   rB   s          r#   test_grouper_iterTestGrouping.test_grouper_iter  s[    ZZ_6''SAjjG B5>!!!	 BAs   A
A'c                     [         R                  " [        SS9   UR                  / 5        S S S 5        g ! , (       d  f       g = f)NzNo group keys passed!r   )r   r   r-   r   ra   s     r#   test_empty_groupsTestGrouping.test_empty_groups  s)    ]]:-DEJJrN FEEs	   5
Ac                 .   UR                  S5      nSn[        R                  " [        US9   UR                  nS S S 5        UR                  W5      R                  SS9nUR                  SS9n[        R                  " XV5        g ! , (       d  f       NR= f)Nr   r-  r   Tr8   )r   r<   r   r   r.  r7   r?   )r    r!   r2   r1   r.  rA   rB   s          r#   test_groupby_grouper!TestGrouping.test_groupby_grouper  sw    **S/6''SAooG BG$))t)<<<T<2
f/	 BAs   B
Bc                    [        SS05      nUR                  SS05      R                  S5      nUR                  S/5      R                  S5      n[        R                  " X#5        [        / SQ[        S5      S9nSSS	S	S
.nUR                  U5      R                  5       nUR                  U5      R                  S5      n[        R                  " / SQ[        R                  S9nUR                  U5      R                  5       nUR                  U5      R                  5       n[        R                  " X#5        [        R                  " X%5        [        R                  " X'5        g )NT1rx   T2r;   )      ?       @g      @g      @rZ   r   r   r   ry   r7   )r   r   r   r   r   )
r
   r   r>   r<   r=   r]   r7   rP   r  r   )r    srA   rB   r   rV   exp_key	expected2s           r#   test_groupby_dict_mapping&TestGrouping.test_groupby_dict_mapping  s   D!9D$<(,,U399dV$((/
v0'tF|<27#((*))G$((0((<rxx899W%**,IIg&++-	
v0
v/
v1rE   r   r   r   r+   ry   r'   i     r   c                     U" / SQUS9n[        / SQUSS9nUR                  U5      R                  5       nU" SS/5      nSUR                  l        [
        R                  " XV5        g )Nr   r   r+   r'   r   )r   r   r   r   )rz   rz   )r   r   r'   r+   )r
   r   lastr   r   r<   assert_equal)r    frame_or_seriesr   objgroupsrA   rB   s          r#   $test_groupby_series_named_with_tuple1TestGrouping.test_groupby_series_named_with_tuple  s[     l%8E
CV$))+"Aq6*(
)rE   c                    [        SSSS9n[        [        R                  R	                  S5      R                  S5      US9nSn[        R                  " [        US9   UR                  S	 5        S S S 5        UR                  S
 5      R                  5       nUR                  UR                  5      R                  5       nS UR                  l        [        R                  " XE5        g ! , (       d  f       N= f)Nz01-Jan-2013r  MSr   r   r   r   z''Timestamp' object is not subscriptabler   c                     U SS $ )Nr   r(   r   r   s    r#   rp   DTestGrouping.test_groupby_grouper_f_sanity_checked.<locals>.<lambda>  s
    3q8rE   c                     U $ rl   r   rn   s    r#   rp   rQ    s    arE   )r   r
   rP   rQ   rR   rS   r   r   	TypeErrorr   r;   r   r   r<   r=   )r    r   tsr1   rA   rB   s         r#   %test_groupby_grouper_f_sanity_checked2TestGrouping.test_groupby_grouper_f_sanity_checked  s    ="4@BII))!,<<R@N 8]]9C0JJ+, 1 K(,,.::bhh'++-"
v0 10s   C))
C7c           	         [        SS/S-  [        SSSS9S.5      n[        SS	S
9nUR                  US/5      n[	        S5      S4SS/[	        S5      S4S/[	        S5      S4S/[	        S5      S4SS/0n[
        R                  " UR                  U5        [        UR                  R                  5       5      S:X  d   eg )Nrz   r{   r+   z
2000-01-01z
2000-01-039hr   )idr{   r:   r   rZ  r   r   r   z
2000-01-02r'   rx   )
r   r   r   r   r   r<   r   rJ  lenkeys)r    r!   r.  r   rB   s        r#   test_groupby_with_datetime_key+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>>#$)))rE   c                     Sn[         R                  " [        US9   [        UR                  USS/   5        S S S 5        g ! , (       d  f       g = f)NzEGrouper for '<class 'pandas.core.frame.DataFrame'>' not 1-dimensionalr   r   )r   r   r-   r   r   r    r!   r1   s      r#   %test_grouping_error_on_multidim_input2TestGrouping.test_grouping_error_on_multidim_input  s7    U]]:S1RXXr3*~. 211s   A
Ac                 @   [        / SQ/ SQ/ SQ/5      n[        R                  " / SQ5      Ul        Sn[        R
                  " [        US9   UR                  SSS/S	9nS S S 5        WR                  5       n[        R                  " XA5        g ! , (       d  f       N5= f)
Nr   r   r+   )r'   rx   r(   )rC  r)   	   )r   r  )r   r   r  r   r   r   r   r   )
r   r	   r   r   r<   r   r   r   firstr?   )r    r!   r"  r   rA   s        r#   test_multiindex_passthru%TestGrouping.test_multiindex_passthru  s|     	9i89++,DE
@''XF1a&1B G
f) GFs   B
Bc                 v   UR                  SS9R                  5       nUR                  SS9R                  5       n[        R                  " X#5        UR                  SS9R                  5       nUR                  SS9R                  5       n[        R                  " X#5        UR                  SS/S9R                  5       nUR	                  5       n[        R                  " X#5        UR                  SS/S9R                  5       nUR                  SS/S9R                  5       n[        R                  " X#5        g )Nr   r   secondrg  )r   r;   r<   r?   
sort_index)r     multiindex_dataframe_random_datarA   rB   s       r#   test_multiindex_negative_level+TestGrouping.test_multiindex_negative_level   s!   1999CGGI3;;(;KOOQ
f/1999CGGI3;;';JNNP
f/199R9IMMO3>>@
f/199W9NRRT3;;W% < 

#% 	 	f/rE   c                 .   [         R                  " [        UR                  5      5      Ul        Sn[        R
                  " [        US9   UR                  SSS9S   R                  S[         R                  05        S S S 5        g ! , (       d  f       g = f)Nz7Passing a dictionary to SeriesGroupBy.agg is deprecatedr   r   Fas_indexr   Q)
rP   r   r[  r   r<   r   r   r   r>   r7   r`  s      r#   &test_multifunc_select_col_integer_cols3TestGrouping.test_multifunc_select_col_integer_cols4  sg    YYs2::/
 H''SAJJq5J)!,00#rww@ BAAs   
3B
Bc                 N   SS/SS//n[         R                  " U5      n[        SS//US9nUR                  S5      R                  nUS   S/:X  d   eUR                  S	/5      R                  nUS   S/:X  d   e[        SS/S
S//US9nUR                  S5      R                  nUR                  S	/5      R                  nXe:X  d   e[        SS/S
S//US9nUR                  S5      R                  nUR                  S	/5      R                  n[
        R                  " Xe5        g )Nr.   values	to filter r   r   r   r   )ry  rz  r   r   )r	   r   r   r   rJ  r<   r   )r    lstmidxr!   r2   rB   rA   s          r#   #test_multiindex_columns_empty_level0TestGrouping.test_multiindex_columns_empty_level<  s0   "["$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
V.rE   c                    [        / SQ/ SQ/ SQ/[        R                  " / SQ/ SQ/5      S9nUR                  S/5      R                  nUR                  S5      R                  n[
        R                  " X#5        [        UR                  [        R                  " / SQ/ SQ/5      S9nUR                  S	/5      R                  nUR                  S5      R                  n[
        R                  " X#5        [        UR                  / S
QS9nUR                  S	/5      R                  nUR                  S5      R                  n[
        R                  " X#5        g )NrE  r+   r'   rx   r(   r   r'   r   r+   rz   r{   r{   r3   r   r   r   r   r   r  )r|   r|   er  r{   r|   ))rz   r|   r  )r{   r  r3   )r   r	   from_arraysr   rJ  r<   r   rx  )r    r!   rB   rA   df2df3s         r#   test_groupby_multiindex_tuple*TestGrouping.test_groupby_multiindex_tupleT  s   <6**,@,+OP
 ::xj)00H%,,
X.II**%';<
 ;;
|,33H%,,
X.		+TU;;
|,33H%,,
X.rE   c                    [        / SQ/ SQ/ SQ/[        R                  " / SQ/ SQ/5      S9nUR                  S/5      SS	/   R	                  5       nUR                  S/5      S
   R	                  5       n[
        R                  " X#5        UR                  S/5      SS	/   R                  5       nUR                  S/5      S
   R                  5       n[
        R                  " XE5        UR                  S/5      SS	/   R                  5       nUR                  S/5      S
   R                  5       n[
        R                  " Xg5        UR                  S/5      SS	/   R                  5       nUR                  S/5      S
   R                  5       n	[
        R                  " X5        UR                  S/5      SS	/   R                  5       n
UR                  S/5      S
   R                  5       n[
        R                  " X5        UR                  S/5      SS	/   R                  nUR                  S/5      S
   R                  n[
        R                  " X5        g )NrE  r  r  r  r  r   r  r  r  r{   )r   r	   r  r   r7   r<   r?   r;   r.   minmaxrJ  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_equivalenceATestGrouping.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

l7XJ/80DEKKMzz8*-c288:
n;zz8*-x.BCGGIZZ
+C0446

l7zz8*-x.BCGGIZZ
+C0446

l7**hZ0(H1EFMM

H:.s3::
_<rE   r   c                 
   UnUR                  5       nUR                  SUS9R                  5       nUR                  SUS9R                  5       nUR                  US   R                  US9R                  5       nUR                  US   R                  US9R                  5       n	SUR                  l        SU	R                  l        UR                  R
                  S:X  d   eUR                  R
                  S:X  d   e[        R                  " Xh5        [        R                  " Xy5        UR                  R
                  UR                  R                  S   :X  d   eUR                  R
                  UR                  R                  S   :X  d   eUR                  SUS9R                  5       nUR                  SUS9R                  5       n[        R                  " Xh5        [        R                  " Xy5        Sn
[        R                  " [        U
S9   UR                  R                  SSUS	9R                  5       nUR                  R                  SSUS	9R                  5       nS S S 5        [        R                  " XhR                  5        [        R                  " XyR                  5        S
n
[        R                  " [        U
S9   UR                  SS9  S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nr   r   r   r   rg  )r   rk  r  r   )r   r   r   z2level > 0 or level < -1 only valid with MultiIndexr   )r   r   r;   rx  r   r   r<   r?   r~   r   r   r   r   r   r-   )r    r   rn  r!   frame	deleveledresult0result1	expected0	expected1r1   s              r#   test_groupby_levelTestGrouping.test_groupby_level  sc    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---
g1
g1}}!!U[[%6%6q%9999}}!!U[[%6%6q%9999 --gD-9==?--hT-:>>@
g1
g1 <''SAggooAADoAEEGGggooAADoAEEGG B 	g{{3
g{{3 C]]:S1JJQJ 21 BA 21s   AK#
K4#
K14
Lc                 .   [        S/S-  S/S-  -   [        S5      S.5      R                  S5      nUS;   a  UR                  nSnOS	n[        R
                  " [        US
9   UR                  SUS9  S S S 5        SUR                  U5       3n[        R                  " [        US
9   [        R
                  " [        US
9   UR                  SUS9  S S S 5        S S S 5        g ! , (       d  f       Nw= f! , (       d  f       N(= f! , (       d  f       g = f)Nr   r+   r   r(   )expvar1r  )r   r   r  r  r   )r   r   z&level name foo is not the name of the rH   )r   r,   	set_indexr   r<   r   r   r   _get_axis_namer   r   r-   )r    r   r!   r"  r1   s        r#   test_groupby_level_index_names+TestGrouping.test_groupby_level_index_names  s    uqyC5194eAhGHRR
 >!BDHNH''XFJJUJ. G6r7H7H7N6OP]]:S1++MJ

T
2 K 21 GF KJ 21s0   "C$(DC5D$
C25
D	?D
Dc                    [        SS// SQ// SQ/ SQ/S9n[        [        R                  " S5      US9nUR	                  SUS	9R                  5       n[        S
S/SS/S9n[        R                  " XE5        [        SS// SQ// SQ/ SQ/S9n[        [        R                  " S5      US9nUR	                  SUS	9R                  5       n[        S
S/SS/S9n[        R                  " XE5        g )Nr   r   rB  )r   r   r   r   r   r   r   r   )r   r   r   r+   r   r   r   r+   )levelscodesg       @r   r  g      @g      6@)r   r   r   r   r   r   r   r   g      2@g        r;  )r	   r
   rP   r   r   r;   r<   r=   )r    r   r   r=  rA   rB   s         r#   test_groupby_level_with_nas(TestGrouping.test_groupby_level_with_nas  s     FL)+-EF
 299S>/.2243+aV4
v0FL),.FG
 299S>/.2243+c3Z8
v0rE   c                    UnSn[         R                  " [        US9   UR                  5         S S S 5        Sn[         R                  " [        US9   UR                  S S S9  S S S 5        g ! , (       d  f       NC= f! , (       d  f       g = f)Nz*You have to supply one of 'by' and 'level'r   )r   r   )r   r   rS  r   )r    rn  r  r1   s       r#   test_groupby_argsTestGrouping.test_groupby_args  sg    0:]]9C0MMO 1 ;]]9C0MMTM. 10	 10 10s   A,A=,
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                     UR                  SUS9n[        R                  " U[        R                  5      n[        R
                  " UR                  R                  S   U5        g )Nr   r  )r   rP   r  intpr<   assert_almost_equal_grouperr  )r    r   labelsrn  r2   
exp_labelss         r#   test_level_preserve_order&TestGrouping.test_level_preserve_order  sN     3:::NXXfbgg.

w//55a8*ErE   c                     UR                  UR                  R                  S5      5      n[        R                  " / SQ[        R
                  S9n[        R                  " UR                  R                  S   U5        g )Nr   r  r   )
r   r   get_level_valuesrP   r  r  r<   r  r  r  )r    rn  r2   r  s       r#   test_grouping_labels!TestGrouping.test_grouping_labels  s^    2::,22CCAF
 XX<BGGL

w//55a8*ErE   c           	         [        S[        SSSS905      n[        R                  UR                  S'   [        SSS9nUR                  U/5      n[        S	5      [        [        [        S
5      5      5      0n[        R                  " UR                  U5        UR                  U5      n[        S	5      S0n[        R                  " UR                  U5        g )Nr   z1/1/2011im  r:   rO  r   YSr   z
2011-01-01il  )r   r   r   NaTre   r   r   r   r   r]   r,   r<   r   rJ  )r    r!   r.  rA   rB   s        r#   test_list_grouper_with_nat'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5rE   zfunc,expected	transformr   r   r   r>   r   r   r   )r   r   r   r   c                     [        / / S.5      nUR                  SSS9n[        US   U5      " S 5      n[        R                  " XR5        g )Nr  r   Fr   r   c                     U $ rl   r   rn   s    r#   rp   >TestGrouping.test_evaluate_with_empty_groups.<locals>.<lambda>,  s    qrE   )r   r   getattrr<   r=   )r    rj   rB   r!   r"   rA   s         r#   test_evaluate_with_empty_groups,TestGrouping.test_evaluate_with_empty_groups  sG    4 2"~&JJqUJ+1t$[1
v0rE   c           	         [        / SSS9nUR                  / 5      nUR                  5       nUR                  [	        / [
        R                  S95      n[        R                  " X45        [        UR                  R                  5      S:X  d   e[        R                  " UR                  R                  S   [
        R                  " / [
        R                  " [
        R                  5      S95        [        R                  " UR                  R                  S   [
        R                  " / [
        R                  " [
        R                  5      S95        UR                  R                  S   S:X  d   eUR                  U5      nSn[        R                   " ["        US	9   UR$                  nS S S 5        WR&                  nS/nX4:X  d   eg ! , (       d  f       N%= f)
Nr   float64r  r   r   r   r   z#SeriesGroupBy.grouper is deprecatedr   )r
   r   r7   set_axisr   rP   r  r<   r=   r[  r  	groupingsassert_numpy_array_equal
group_infor  r   r   r   r.  r~   )r    r=  grrA   rB   r   r1   r.  s           r#   test_groupby_emptyTestGrouping.test_groupby_empty/  s\   2F)4YYr]::eBbgg67
v0 2;;(()Q...
##KK""1%rxx"((277:K'L	
 	##KK""1%rxx"((277:K'L	
 {{%%a(A--- YYq\3''SAjjG B8!!!	 BAs    G
Gc                 J   [        S[        R                  S/S [        R                  S/// SQS9R                  SS/5      nUR	                  SS/S9R                  5       n[        / [        [        S/S	S
9[        / SS
9// / /SS/S9S/SS9n[        R                  " X#5        g )Nro   r      r   r   r   r   r   objectr   r  )r  r  r~   r   r   )r*   r   r   r   )
r   rP   nanr  r   r;   r	   r   r<   r?   r@   s       r#   %test_groupby_level_index_value_all_na2TestGrouping.test_groupby_level_index_value_all_naM  s    2662rvvr 23_

)S#J
 	 3*-113se84eBi6PQ2hCj
 E	
 	f/rE   c           
          [        / SQ/ SQ// SQS9nUR                  SS/5      nXR                  S:     nUR                  S5      R	                  5       n[        SS	/[        / [        R                  SS
9S9n[        R                  " X45        g )N){   rz   r;  )r  r{   r<  )rZ  categoryvaluer   rZ  r  r   r  r  r  )r   r   r   )
r   r  r  r   r;   r   rP   r   r<   r?   )r    r!   emptyrA   rB   s        r#   #test_groupby_multiindex_level_empty0TestGrouping.test_groupby_multiindex_level_empty_  s    o.8S
 \\4,-88a< t$((*I"((6

 	f/rE   r   N)6r   r   r   r   r   r   r   r   r]   rP   r   floatr   r   r   r   r   r   r   r  r  r  r%  r*  r0  r3  r6  r@  r,   r   rK  rU  r]  ra  rh  ro  ru  r}  r  r  r  r  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                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)TestGetGroupis  c                    [        [        R                  " / SQ5      / SQ/ SQS.5      nUR                  S5      n[	        [        UR                  5      5      nUR                  U5      nUR                  [        U5      R                  5       5      nUR                  [        [        U5      5      5      n[        R                  " XE5        [        R                  " XF5        UR                  SS/5      n[	        [        UR                  5      5      nUR                  U5      nUR                  [        US   5      R                  5       US   45      nUR                  [        [        US   5      5      US   45      n[        R                  " XE5        [        R                  " XF5        S	n[        R                  " [        US
9   UR                  S5        S S S 5        [        R                  " [        US
9   UR                  S5        S S S 5        Sn[        R                  " [        US
9   UR                  S5        S S S 5        g ! , (       d  f       Nw= f! , (       d  f       NU= f! , (       d  f       g = f)N)10-Oct-2013r  r  11-Oct-2013r  r  )rH   rH   rI   rH   rH   rI   r   )DATElabelVALr  r  r   r   z<must supply a tuple to get_group with multiple grouping keysr   rH   zHmust supply a same-length tuple to get_group with multiple grouping keys)rH   rI   baz)r   r   to_datetimer   r   r   rJ  r  r   to_pydatetimestrr<   r?   r   r   r-   )r    r!   r"   r   r  rV   result3r1   s           r#   test_get_groupTestGetGroup.test_get_groupt  s    	 D)
" JJv4>"++c"++in::<=++c)C.12
g/
g/JJ()4>"++c"++yQ0>>@#a&IJ++s9SV#45s1v>?
g/
g/ M]]:S1KK 2]]:S1KK 2X]]:S1KK-. 21 2111 21s$   I8I-I*
I
I'*
I8c                    [        / SQ5      n/ SQnUR                  [        R                  " US   U5      US9nUR	                  [        R
                  " SS5      5      n[        SS/SS/S9n[        R                  " XV5        S	n[        R                  " [        US
9   UR	                  [        R
                  " SS5      5        S S S 5        g ! , (       d  f       g = f)N)r+   r   rC  r(   )r   rx   r      r   )r  rx   r+   r   r   z"Interval\(10, 15, closed='right'\)r   r   r  )r   r   r   cutr  Intervalr<   r?   r   r   r   )r    r  r|   binsr"   rA   rB   r1   s           r#   test_get_group_empty_bins&TestGetGroup.test_get_group_empty_bins  s    l#IIbffQqT4(8I< R[[A./aVAq62
f/3]]83/KKB+, 0//s   'C
Cc                    [        / SQ/S/S9R                  nUR                  S5      n[        SSS/0SS/S9nUR                  S5      n[        R
                  " XC5        [        R                  " / SQ5      n[        SU Vs/ s H  of4PM     sn05      nUR                  S5      nUR                  S5      n[        SUS   4US   4/0SS/S9n[        R
                  " XC5        g s  snf )	N)r   r  r  r  idsr   r  r   r   )
2010-01-01
2010-01-02r  r  )r  )r   r   r   r  r<   r?   r   r  )r    r!   r  rB   rA   dtro   s          r#   test_get_group_grouped_by_tuple,TestGetGroup.test_get_group_grouped_by_tuple  s    45eWEGGZZedD\21a&Ad#
f/^^TUb1bb123ZZo.er!uhA%9:1a&I
f/	  2s   C(
c                   ^ [        SS S 5       05      mTR                  S5      nTR                  U4S j5      nUR                  [        [	        UR
                  R                  5       5      5      5      nUR                  [        [	        UR
                  R                  5       5      5      5      n[        R                  " XC5        g )Nr   c              3      #    U  H@  n[         R                  R                  S 5      R                  SSS5        H  nX4v   M
     MB     g7fr   r   r   s      r#   r   KTestGetGroup.test_get_group_grouped_by_tuple_with_lambda.<locals>.<genexpr>  r   r   r   c                 &   > TR                   U S4   $ r   r   r   s    r#   rp   JTestGetGroup.test_get_group_grouped_by_tuple_with_lambda.<locals>.<lambda>  r   rE   )	r   r   r  r   r   rJ  r\  r<   r?   r   s        @r#   +test_get_group_grouped_by_tuple_with_lambda8TestGetGroup.test_get_group_grouped_by_tuple_with_lambda  s     #
 ZZ!JJ67	<<T"))..*:%; <=$$T$y/?/?/D/D/F*G%HI
f/rE   c                     [         R                  " S5      nSn[        X![        S9n[	        SS9nUR                  U5      n[        [        U5      S 5      b   eg )Nr   r   r:   rY  )r   r   r
   r  r   r   r   r   )r    r   r*   seriesr.  r2   s         r#   test_groupby_with_empty$TestGetGroup.test_groupby_with_empty  sR      $62s#..)DM4(000rE   c                 <   [        S[        S5      05      n[        R                  " UR	                  S5      R                  S5      UR                  SS/   5        [        [        / SQSS9/ S9n[        R                  " UR	                  S5      R                  5       U5        [        R                  " UR	                  S5      R                  5       U5        UR                  / SQ   n[        R                  " UR	                  S5      R                  S	5      U5        g )
Nrz   abssbabr   rx   )rz   r{   r=  )r   )r   r   r+   r'   rx   r   )r   r]   r<   r?   r   r  re   r   r.   r;   nth)r    r!   r  s      r#   test_groupby_with_single_column,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:rE   c                     [        / SQ/ SQ/ SQ// SQS9nUR                  SS/5      nUR                  / SQ5      R                  5       nUR                  S	   S
:X  d   eUR                  S   S:X  d   eg )N)rH   rI   r   r   )rH   rI   r   r   )rH   r  r   r+   )rg  rk  thirdrK   r   rg  rk  )rg  rk  r  )rH   rI   r   r   )rH   r  r   r   )r   r  r   r0   rT   ra   s     r#   test_gb_key_len_equal_axis_len+TestGetGroup.test_gb_key_len_equal_axis_len  sz     #%;=ST7
 \\7H-.ZZ45::<vv)*a///vv)*a///rE   r   N)r   r   r   r   r  r  r  r  r  r  r  r   r   rE   r#   r  r  s  s&    -/^-00(1	;0rE   r  c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)TestIterationi  c                 R   UR                  S/5      nUR                  nX2R                  L d   eUR                  R                  5        H/  u  pEUR                  U   S   U:H  R	                  5       (       a  M/   e   UR                  SS/5      nUR                  nX2R                  L d   eUR                  R                  5        H_  u  pEUR                  U   S   US   :H  R	                  5       (       d   eUR                  U   S   US   :H  R	                  5       (       a  M_   e   g )Nr   r   r   r   )r   rJ  itemsrT   all)r    r!   r2   rJ  kvs         r#   test_groupsTestIteration.test_groups  s   **cU#'''NN((*DAFF1IcNa',,.... + **c3Z('''NN((*DAFF1IcNad*//1111FF1IcNad*//1111 +rE   c                 n    UR                  S S /5      nUR                  R                  S    H  nM     g )Nc                 "    U R                  5       $ rl   )weekdayrn   s    r#   rp   9TestIteration.test_grouping_is_iterable.<locals>.<lambda>  s
    QYY[rE   c                     U R                   $ rl   )yearrn   s    r#   rp   r'    s    AFFrE   r   )r   r  r  )r    tsframer2   r"   s       r#   test_grouping_is_iterable'TestIteration.test_grouping_is_iterable  s9     //#8:J"KL !!++A.A /rE   c                    [        [        R                  " S5      5      n[        R                  " / SQ5      n[        R                  " / SQ5      nUR	                  X#/5      n[        U5      nSSUSS/   4SSUS	/   4S
SUS/   4S
SUSS/   4/n[        U5       H6  u  nu  u  pn
Xg   u  pnX:X  d   eX:X  d   e[        R                  " X5        M8     g )Nr(   )rz   rz   rz   r{   r{   r{   12r/  r0  r/  r0  rz   r/  r   r   r0  r   r{   r'   r+   rx   )	r
   rP   r   r  r   r]   	enumerater<   r=   )r    r=  k1k2r2   iteratedrB   r  rK   rL   rM   e1e2e3s                 r#   test_multi_iterTestIteration.test_multi_iter  s    299Q< XX45XX45))RH%=#q!Qy!#q!v#q!v#q!Qy!	
 '0&9"A"
E!JBB9999""5-	 ':rE   c                    [         R                  " / SQ5      n[         R                  " / SQ5      n[        [         R                  R	                  S5      R                  S5      [         R                  R	                  S5      R                  S5      UUS./ SQS9nUR                  SS	/5      n[        U5      nUR                  nS
SUR                  US/      4S
SUR                  USS/      4SSUR                  USS/      4SSUR                  US/      4/n[        U5       H6  u  n	u  u  pnX   u  pnX:X  d   eX:X  d   e[        R                  " X5        M8     [         R                  " / SQ5      US'   [         R                  " / SQ5      US	'   UR                  SS	/5      nU VVs0 s H	  u  nnUU_M     nnn[        U5      S:X  d   eUR                  / SQ5      R                  5       nSn[        R                  " [         US9   UR"                  R                  SSS9nS S S 5        U H  u  nnM     g s  snnf ! , (       d  f       N!= f)N)r{   r{   r{   rz   rz   rz   r.  r   r(   )v1v2r2  r3  )rK   rL   rM   fourfivesixr   r2  r3  rz   r/  r'   r0  r+   rx   r{   r   r   )r/  r/  r/  r0  r0  r0  r   r  r   r  rf  )rP   r  r   rQ   rR   rS   r   r]   r   rT   r1  r<   r?   r[  r7   r   r   r   )r    three_groupr2  r3  r!   r2   r4  r   rB   r  rK   rL   rM   r5  r6  r7  r   gprJ  three_levelsr"  groups                         r#   test_multi_iter_frame#TestIteration.test_multi_iter_frame(  s/   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"
E!JBB9999!!%,	 ': 88:;488:;4**dD\* *11gc2#r'16{a #**?;@@B@''XF"nn,,!6,BG G!JC " 2 GFs   /H?I
Ic           	         [        [        UR                  S5      5      5        [        [        UR                  SS/5      5      5        [        [        US   R                  US   5      5      5        [        [        US   R                  US   US   /5      5      5        [        [        UR                  S5      S   5      5        [        [        UR                  SS/5      S   5      5        g )Nr   r   r   )r   r   r   ra   s     r#   test_dictifyTestIteration.test_dictifyX  s    T"**S/"#T"**c3Z()*T"S'//"S'*+,T"S'//2c7BsG"4567T"**S/#&'(T"**c3Z(-./rE   c                    [        SS/SS/S.[        R                  " SS/5      S9nUR                  [	        SS	9S
/5      n[        UR                  5      S:X  d   eUR                  S:X  d   e[        S5      S4UR                  ;   d   e[        S5      S4UR                  ;   d   eUR                  [        S5      S45      n[        R                  " X1R                  S/S S 24   5        UR                  [        S5      S45      n[        R                  " X1R                  S/S S 24   5        [        / SQ/ SQS.[        R                  " / SQ5      S9nUR                  [	        SS	9S
/5      n[        UR                  5      S:X  d   eUR                  S:X  d   e[        S5      S4UR                  ;   d   e[        S5      S4UR                  ;   d   eUR                  [        S5      S45      n[        R                  " X1R                  SS/S S 24   5        UR                  [        S5      S45      n[        R                  " X1R                  S/S S 24   5        [        / SQ/ SQS.[        R                  " / SQ5      S9nUR                  [	        SS	9S
/5      n[        UR                  5      S:X  d   eUR                  S:X  d   e[        S5      S4UR                  ;   d   e[        S5      S4UR                  ;   d   e[        S5      S4UR                  ;   d   eUR                  [        S5      S45      n[        R                  " X1R                  S/S S 24   5        UR                  [        S5      S45      n[        R                  " X1R                  S/S S 24   5        UR                  [        S5      S45      n[        R                  " X1R                  S/S S 24   5        g )Nstart  .  )eventchange
2014-09-10
2013-10-10r   r   rY  rM  r   z
2014-09-30z
2013-10-31r   r   )rJ  rJ  rJ  )rK  rL  i#  )rO  rP  z
2014-09-15)rO  rP  z
2014-08-05r+   z
2014-08-31)r   r   r   r   r   r[  rJ  ngroupsr   r  r<   r?   re   )r    r!   r2   ress       r#   test_groupby_with_small_elem*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
c77A36?3<!8' BC
c77A36?31=OP""#MN
 **g40':;7>>"a'''!###,'1W^^CCC,'1W^^CCC<!8' BC
c77Aq619#56<!8' BC
c77A3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
c77A36?3<!8' BC
c77A36?3<!8' BC
c77A36?3rE   c                     [         R                  " [        S5      [        S5      /5      n[        / SQ/US9nUR	                  US   5      nUR
                  R                  S   R                  5       nSnXE:X  d   eg )NAABabard  r   )r   rz   r   zGrouping(('A', 'a')))r	   r  r]   r   r   r  r  __repr__)r    r   r!   r  rA   rB   s         r#   test_grouping_string_repr'TestIteration.test_grouping_string_repr  sm    ##T%[$u+$>?	{B/ZZ:'&&q)224)!!!rE   r   N)r   r   r   r   r"  r+  r8  rD  rG  rS  rY  r   r   rE   r#   r  r    s'    2 .(.`024h"rE   r  c                     [        / SQ/ SQ/ SQS.5      R                  S5      n U R                  [        SS9[        SS9/SS	9nUR                  R
                  S
   R                  (       a   eUR                  R
                  S   R                  (       d   eSn[        R                  " [        US9   UR                  5       nS S S 5        [        SS/SS/S.5      n[        R                  " WU5        g ! , (       d  f       N8= f)Nrw   r  )rz   r{   r3   rz   r   r{   r   Frr  r   r   z*A grouping .* was excluded from the resultr   r   rC  rx   )r{   r3   )r   r  r   r   r  r  in_axisr<   r   r   r;   r?   )r!   r   r1   rA   rB   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   4C77
Dc                  F   [        / SQSS.5      n [        SS9nU R                  U5      nSn[        R                  " [
        US9   UR                  nS S S 5        WUR                  L d   eSn[        R                  " [
        US9   UR                  nS S S 5        XBR                  L d   eS	n[        R                  " [
        US9   UR                  nS S S 5        XBR                  L d   eS
n[        R                  " [
        US9   UR                    S S S 5        Sn[        R                  " [
        US9   UR                    S S S 5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Ns= f! , (       d  f       g = f)Nrd  r   rz   r{   rz   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   r<   r   r   rJ  r.  r  rI  axindexer)r!   grperr   r1   rR  s        r#   test_grouper_groupsrc    s6   	+	,BE	E	B
&C		#	#M	=ll 
>"))
'C		#	#M	=mm 
>++
9C		#	#M	=ii 
>&&==
$C		#	#M	= 
> *C		#	#M	= 
>	=' 
>	=
 
>	=
 
>	=
 
>	= 
>	=s<   EEE0F7F
E
E-0
E>
F
F attr)group_indexresult_indexgroup_arraylikec                     [        / SQ/ SQS.5      nUR                  S5      nU  S3n[        R                  " [        US9   [        UR                  R                  S   U 5        S S S 5        g ! , (       d  f       g = f)Nrw   r  r_  rz   z is deprecatedr   r   )r   r   r<   r   r   r  r  r  )rd  r!   r   r1   s       r#   test_depr_grouping_attrsri    sa     
3	4B	CBF.
!C		#	#M	=%%a($/ 
>	=	=s   $A//
A=) __doc__datetimer   r   numpyrP   r   pandasr   r   r   r   r   r	   r
   r   r   r   pandas._testing_testingr<   pandas.core.groupby.grouperr   r   r   r  r  r]  rc  r   r   ri  r   rE   r#   <module>rq     s   
   
 
 
  0H/ H/^~
0 ~
0J@0 @0Nb" b"J, < !ST0 U0rE   