
    A>iJ                         S r SSKJrJr  SSKrSSKrSSKJrJ	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g)zG
test where we are determining what we are grouping, or getting groups
    )date	timedeltaN)Pandas4WarningSpecificationError)	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      a/var/www/html/land-tabula/venv/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_errormsg1   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   Dr9   )r   r   sumtmassert_series_equalr9   aggassert_frame_equalr"   r#   resultexpecteds       r%   test_column_select_via_attr)TestSelection.test_column_select_via_attrB   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barrJ   rK   rJ   rK   rJ   rJ   onerM   twothreerN   rN   rM   rO   r   r+   r   r   r   r<   Er   r   r<   r)   )r   r   r<   )r   nprandomdefault_rngstandard_normalr   r9   r   locr>   rA   r"   r#   rC   result2rD   s        r%   test_getitem_list_of_columns*TestSelection.test_getitem_list_of_columnsL   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0rG   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   listrR   rS   rT   rU   r   r   r9   rV   r>   rA   r   r    r/   rW   s        r%   !test_getitem_numeric_column_names/TestSelection.test_getitem_numeric_column_names_   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   r9   r"   r#   s     r%   +test_getitem_single_tuple_of_columns_raises9TestSelection.test_getitem_single_tuple_of_columns_raisesu   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 )	NrI   rL   r   r+   rP   r   r   r   )r   rR   rS   rT   rU   r   r9   rV   ilocr>   r?   )r"   r#   rC   as_frame	as_seriesrD   s         r%   test_getitem_single_column(TestSelection.test_getitem_single_columnz   s    MQYY**1-==a@YY**1-==a@YY**1-==a@
 C%**,66!c3Z-(005::<MM!Q$'	
v0rG   funcc                 "    U R                  5       $ Nr=   xs    r%   <lambda>TestSelection.<lambda>   s
    1557rG   c                 &    U R                  S 5      $ )Nc                 "    U R                  5       $ rm   rn   )ys    r%   rq   (TestSelection.<lambda>.<locals>.<lambda>   s
    aeegrG   )r@   ro   s    r%   rq   rr      s    aee4E.FrG   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br5   dr{   r|   r5   )r   r-   r   r-   namesr   r+   )r{   r5   index)r   r   r   from_tuplesr>   rA   )r"   rk   r#   gbidxrD   rC   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/rG   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-   ry   NrR   rS   rT   integers.0rp   ru   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   rf   rp   r#   s    r%   rq   ITestSelection.test_indices_grouped_by_tuple_with_lambda.<locals>.<lambda>       ArG   )r   r   indicesr>   assert_dict_equalr"   r   	gb_lambdarD   rC   r#   s        @r%   )test_indices_grouped_by_tuple_with_lambda7TestSelection.test_indices_grouped_by_tuple_with_lambda   sc     #
 ZZ!JJ67	::""
V.rG    N)__name__
__module____qualname____firstlineno__r&   r6   rE   rY   r_   rc   ri   r   markparametrizer   r   __static_attributes__r   rG   r%   r   r   %   sY    	#"01&',-
1& [["$FG	0	0/rG   r   c                      \ 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'S) r(S* r)S+ r*\R
                  R                  S,S/ S-Q/S/ S.Q//5      S/ 5       r+S0 r,S1 r-\R
                  R                  S2S3\." S4\	R^                  S594S6\." S4\	R^                  \" / \	R^                  S7S89S994S:\." S4\	R^                  \" / \	R^                  S7S89S994/5      S; 5       r0S< r1S= r2S> r3S? r4S@ r5SA r6SBr7gCs  snnn f )DTestGrouping   r   abcdery   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
   ry   r   AB)r   r   r   F
group_keysc                     U $ rm   r   ro   s    r%   rq   7TestGrouping.test_grouper_index_types.<locals>.<lambda>       ArG   c                     U $ rm   r   ro   s    r%   rq   r      r   rG   )r   rR   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+FrG   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   )daysrJ   rK   r   r   r   d      r   Wkeyfreqint64r   levelr   r   )r   todayr   r   r   from_productr   rR   rS   rT   r   reset_indexr   r	   r=   r
   r   r>   rA   )r"   d0dates
date_indexr#   rD   rC   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/rG   c                 6   [        / 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        UR                  S 5      n[        R
                  " XC5        g )N)r   r   r   r   r   r   r   r   r-   r)   ry   r*   r   r   r   r   c                 "    U R                  5       $ rm   rn   ro   s    r%   rq   8TestGrouping.test_grouper_creation_bug.<locals>.<lambda>   s
    1557rG   )r   r   r=   r	   r>   rA   r   )r"   r#   r$   rD   rC   s        r%   test_grouper_creation_bug&TestGrouping.test_grouper_creation_bug   st    /6HIJJJsO557JJw3'(
f/*+
f/rG   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>   rA   )r"   r#   rD   r$   rC   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/rG   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)rM   rN   rO   r   r+   r   r   r   rO   MEr   z
2013-01-31)r   name   rM   r   )r   r   r   r^   r.   r   rR   r   r   r	   r=   pdDatetimeIndexr   as_unitr>   r?   )r"   r   dtimiserrC   exp_dtirD   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0rG   rk   FTc                 P  ^ [        / SQ/ SQS.5      n[        [        [        S5      SS/S-  SS	9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   ry   )r<   r*   r   T)strictc                    > TU    $ rm   r   )r   mappings    r%   rq   <TestGrouping.test_grouper_returning_tuples.<locals>.<lambda>2  s	    73<rG   F)bysort)
r   dictzipr.   r   nextiter	get_groupr>   rA   )r"   rk   r#   r   r   rD   rC   r   s          @r%   test_grouper_returning_tuples*TestGrouping.test_grouper_returning_tuples+  s     1EFs58h%9A%=dKL7eDBwU3Bd2hxd#
f/rG   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)r{   r   )r{   r   )r{   r-   r|   r   r|   r   )r|   r-   outerinnerr*   )rM   rM   rN   rN   rM   rM   r   r   r   r   Tr:   )r   r   r   r   rR   r   r   r	   r9   r   r>   rA   )r"   r   df_multirC   rD   	df_singles         r%   test_grouper_column_and_index*TestGrouping.test_grouper_column_and_index<  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/rG   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 )
Nrp   ru   ))r   r   r   r   )r-   r)   )ry   r*   r      r   r-   r   r   )r   r   r   rR   r   r   r   r9   r   r   astyper   r>   rA   )r"   	idx_namesr   r#   	by_levels
by_columnss         r%   test_groupby_levels_and_columns,TestGrouping.test_groupby_levels_and_columnsj  s    #J	$$%EYWryy},,R33?JJYJ/446	^^%--i8==?
 (//66rxx@

i4rG   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[         R                  " SS/SS/SS/SS/SS//[        5      n[        X3SS9n[	        UR
                  US	9nUR                  S
US9R                  5       n	[	        UR
                  US9n
[        R                  " X5        g )Nr   r   r   )r   r   r   r   T)
categoriesorderedr)   r   r   r   )r   observed)r,   r   )
rR   arrayintr   r   Tr   r=   r>   rA   )r"   r  r   r  r,   cat_columnsexpected_dataexpected_columnsr#   rC   rD   s              r%   *test_groupby_categorical_index_and_columns7TestGrouping.test_groupby_categorical_index_and_columnsx  s    &3Z
xx<|\RTW
 'wtT1a&1a&1a&1a&1a&!I3O+t

 tvv[1!h7;;=-//9IJ
f/rG   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   rM   rN   r   r   r   r   r   )   r      r#  r   r$  r-   )r   r   )
r   r   r   r^   r   r   r	   r=   r>   rA   rB   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/rG   c                 j    UR                  S5      nUR                  n[        U5      nSS/nXE:X  d   eg )Nr   rK   rJ   )r   _groupersorted)r"   r#   r   grouperrC   rD   s         r%   test_grouper_iterTestGrouping.test_grouper_iter  s6    ZZ_++5>!!!rG   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   rb   s     r%   test_empty_groupsTestGrouping.test_empty_groups  s)    ]]:-DEJJrN FEEs	   5
Ac                     UR                  S5      nUR                  nUR                  U5      R                  SS9nUR                  SS9n[        R                  " XE5        g )Nr   Tr:   )r   r(  r9   r>   rA   )r"   r#   r4   r*  rC   rD   s         r%   test_groupby_grouper!TestGrouping.test_groupby_grouper  sT    **S/""G$))t)<<<T<2
f/rG   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T1ry   T2r=   )      ?       @g      @g      @r\   r   r   r   rz   r9   )r   r   r   r   r   )
r   r   r@   r>   r?   r^   r9   rR   r  r   )r"   srC   rD   r   rX   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1rG   r   r   r   r-   rz   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   )r{   r{   )r   r   r)   r-   )r   r   lastr   r   r>   assert_equal)r"   frame_or_seriesr   objgroupsrC   rD   s          r%   $test_groupby_series_named_with_tuple1TestGrouping.test_groupby_series_named_with_tuple  s[     l%8E
CV$))+"Aq6*(
)rG   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%   rq   DTestGrouping.test_groupby_grouper_f_sanity_checked.<locals>.<lambda>  s
    3q8rG   c                     U $ rm   r   ro   s    r%   rq   rL    s    arG   )r   r   rR   rS   rT   rU   r   r    	TypeErrorr   r=   r   r   r>   r?   )r"   r   tsr3   rC   rD   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 )Nr{   r|   r-   z
2000-01-01z
2000-01-039hr   )idr|   r<   r   rU  r   r   r   z
2000-01-02r)   ry   )
r   r   r	   r   r   r>   r   rE  lenkeys)r"   r#   r*  r   rD   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>>#$)))rG   c                     Sn[         R                  " [        US9   [        UR                  USS/   5        S S S 5        g ! , (       d  f       g = f)Nz:Grouper for '<class 'pandas.DataFrame'>' not 1-dimensionalr   r   )r   r    r/   r   r   r"   r#   r3   s      r%   %test_grouping_error_on_multidim_input2TestGrouping.test_grouping_error_on_multidim_input  s7    J]]:S1RXXr3*~. 211s   A
A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   secondfirst)r   r=   r>   rA   
sort_index)r"    multiindex_dataframe_random_datarC   rD   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/rG   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)Nznested renamer is not supportedr   r   Fas_indexr   Q)
rR   r   rV  r   r   r    r   r   r@   r9   r[  s      r%   test_agg_with_dict_raises&TestGrouping.test_agg_with_dict_raises  sb    YYs2::/
/]]-S9JJq5J)!,00#rww@ :99s   
3B
Bc                    SS/SS//n[         R                  " U5      n[        SS//US9nSnUR                  S5      R                  nUS   S	/:X  d   e[
        R                  " [        US
9   UR                  S/5      R                  nS S S 5        US   S	/:X  d   e[        SS/SS//US9nUR                  S5      R                  n[
        R                  " [        US
9   UR                  S/5      R                  nS S S 5        WU:X  d   e[        SS/SS//US9nUR                  S5      R                  n[
        R                  " [        US
9   UR                  S/5      R                  nS S S 5        [
        R                  " Xv5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       NH= f)Nr0   values	to filter r   r   r   In a future version, the keysr   r   )rn  ro  r   r   )	r   r   r   r   rE  r>   assert_produces_warningr   r   )r"   lstmidxr#   r3   r4   rD   rC   s           r%   #test_multiindex_columns_empty_level0TestGrouping.test_multiindex_columns_empty_level  s   "["$56%%c*Cz40-**[)00s|s"""''cBjj"3!45<<G Cs|s"""C1c(+T:::k*11''cBZZ!2 34;;F C!!!C1c(+T:::k*11''cBZZ!2 34;;F C
V.! CB CB CBs$   .F#F"F3
F"
F03
Gc                    [        / SQ/ SQ/ SQ/[        R                  " / SQ/ SQ/5      S9nSn[        R                  " [
        US9   UR                  S	/5      R                  nS S S 5        UR                  S	5      R                  n[        R                  " WU5        [        UR                  [        R                  " / SQ/ S
Q/5      S9n[        R                  " [
        US9   UR                  S/5      R                  nS S S 5        UR                  S	5      R                  n[        R                  " X45        [        UR                  / SQS9n[        R                  " [
        US9   UR                  S/5      R                  nS S S 5        UR                  S	5      R                  n[        R                  " X45        g ! , (       d  f       GNd= f! , (       d  f       N= f! , (       d  f       Nc= f)Nr@  r-   r)   ry   r*   r   r)   r   r-   r{   r|   r|   r5   r   r   r   r   r   rp  r   r  )r}   r}   er{  r|   r}   ))r{   r}   r|  )r|   r{  r5   )
r   r   from_arraysr>   rq  r   r   rE  r   rm  )r"   r#   r3   rD   rC   df2df3s          r%   test_groupby_multiindex_tuple*TestGrouping.test_groupby_multiindex_tuple9  sv   <6**,@,+OP

 .''cBzz8*-44H CH%,,
Xv.II**%';<
 ''cB{{J<077H CH%,,
X.		+TU''cB{{J<077H CH%,,
X.- CB CB CBs$   	G'G,G&
G
G#&
G4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        Sn[
        R                  " [        US9   UR                  S/5      SS	/   R                  nUR                  S/5      S
   R                  nS S S 5        [
        R                  " WW5        g ! , (       d  f       N&= f)Nr@  rw  rx  ry  rz  r   r  r  r  r|   rp  r   )r   r   r}  r   r9   r>   rA   r=   r0   minmaxrq  r   rE  r   )r"   r#   expected_meanresult_meanexpected_sum
result_sumexpected_countresult_countexpected_min
result_minexpected_max
result_maxr3   expected_groupsresult_groupss                  r%   4test_groupby_multiindex_partial_indexing_equivalenceATestGrouping.test_groupby_multiindex_partial_indexing_equivalenceY  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-''cB jj(4h5IJQQOJJz237>>M C 	_m< CBs   AJ  
J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                  SS	9  S S S 5        g ! , (       d  f       g = f)
Nr   r   r   r   ra  )r   r_  z2level > 0 or level < -1 only valid with MultiIndexr   r   )r   r   r=   rm  r   r   r>   rA   r   r   r    r/   )r"   r   rc  r#   frame	deleveledresult0result1	expected0	expected1r3   s              r%   test_groupby_levelTestGrouping.test_groupby_levelz  s   0%%'	--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 C]]:S1JJQJ 211s   H--
H;c                    [        S/S-  S/S-  -   [        S5      S.5      R                  S5      nUR                  SS9  Sn[        R
                  " [        US	9   UR                  S
S9  S S S 5        g ! , (       d  f       g = f)Nr   r-   r   r*   )expvar1r  r   z+level name foo is not the name of the indexr   rJ   )r   r.   	set_indexr   r   r    r/   r[  s      r%   test_groupby_level_index_names+TestGrouping.test_groupby_level_index_names  sq    uqyC5194eAhGHRR
 	


;]]:S1JJUJ# 211s   A55
B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   r=  )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        r6  )r   r   rR   r   r   r=   r>   r?   )r"   r   r   r8  rC   rD   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0rG   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    rN  r   )r"   rc  r  r3   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                  U5        g )Nr   r  )r   rR   r  intpr>   assert_almost_equalr(  ids)r"   r   labelsrc  r4   
exp_labelss         r%   test_level_preserve_order&TestGrouping.test_level_preserve_order  sI     3:::NXXfbgg.

w//33Z@rG   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_valuesrR   r  r  r>   r  r(  r  )r"   rc  r4   r  s       r%   test_grouping_labels!TestGrouping.test_grouping_labels  s^    2::,22CCAF
 XX<BGGL

w//55a8*ErG   c           	          [        S[        SSSS905      n[        R                  UR                  S'   [        SSS9nS	nUR                  U/5      n[        S
5      [        [        [        S5      5      5      0n[        R                  " [        US9   UR                  nS S S 5        [        R                  " WU5        UR                  U5      n[        S
5      S0n[        R                  " UR                  U5        g ! , (       d  f       Ne= f)Nr   z1/1/2011im  r<   rJ  r   YSr   rp  z
2011-01-01il  r   )r   r   r   NaTrf   r	   r   r   r
   r^   r.   r>   rq  r   rE  r   )r"   r#   r*  r3   r   rD   rC   s          r%   test_list_grouper_with_nat'TestGrouping.test_list_grouper_with_nat  s    
:s MNOfff40- ZZ	"l+U4c
3C-DE''cBYYF C
VX. G$l+S1
V]]H5 CBs   C??
D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   Tr   r   c                     U $ rm   r   ro   s    r%   rq   >TestGrouping.test_evaluate_with_empty_groups.<locals>.<lambda>  s    qrG   )r   r   getattrr>   r?   )r"   rk   rD   r#   r$   rC   s         r%   test_evaluate_with_empty_groups,TestGrouping.test_evaluate_with_empty_groups  sG    4 2"~&JJqTJ*1t$[1
v0rG   c                     [        / / / S.5      nUR                  SSS9nUR                  S 5      n[        / / S.S S9n[        R                  " X45        g )Nr   r   Fr   c                 &    X R                  5       -  $ rm   rn   ro   s    r%   rq   MTestGrouping.test_groupby_apply_empty_with_group_keys_false.<locals>.<lambda>  s    1uuw;rG   )r   r   r   )r   r   r   r>   rA   )r"   r#   r$   rC   rD   s        r%   .test_groupby_apply_empty_with_group_keys_false;TestGrouping.test_groupby_apply_empty_with_group_keys_false  sU    
 Rbr23JJsuJ-./2B/t<
f/rG   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                  [
        R                  " / [
        R                  " [
        R                  5      S95        UR                  R                   S:X  d   eUR                  U5      nUR                  nUR"                  nS/nX4:X  d   eg )Nr   float64r  r   r   r   )r   r   r9   set_axisr
   rR   r  r>   r?   rV  r(  	groupingsassert_numpy_array_equalr  r  r   ngroupsr   )r"   r8  grrC   rD   r   r*  s          r%   test_groupby_emptyTestGrouping.test_groupby_empty  s    2F)4YYr]::eBbgg67
v0 2;;(()Q...
##KKOORXXb0AB	
 {{""a''' YYq\++8!!!rG   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 )Nrp   r      r   r   r   r   r   strr   r  )r  r  r   r   r   )r,   r   r   r   )
r   rR   nanr  r   r=   r   r
   r>   rA   rB   s       r%   %test_groupby_level_index_value_all_na2TestGrouping.test_groupby_level_index_value_all_na2  s    2662rvvr 23_

)S#J
 	 3*-113se51593MN2hCj
 E	
 	f/rG   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){   r{   r6  )r  r|   r7  )rU  categoryvaluer   rU  r  r   r  r  r  )r   r   r   )
r   r  r  r   r=   r
   rR   r   r>   rA   )r"   r#   emptyrC   rD   s        r%   #test_groupby_multiindex_level_empty0TestGrouping.test_groupby_multiindex_level_emptyD  s    o.8S
 \\4,-88a< t$((*I"((6

 	f/rG   c           	         [        / SQ/ SQ/ SQ/ SQ[        S5      S.5      nUR                  SS/S	9nUR                  S5      R	                  S
 5      nX#R
                     n[        R                  " UR                  SS9U5        g )N)
r   r+   	   r)   r-   r-   ry   r  r-   r*   )
r-   r+   r*   r)   r  r   r   r>  r   r  )
r*   ry   r>  r+   ry   r   r   r   r>  r+   )
r   r   r   )r   r)   r~   r~   r~   r~   )ry   )r*   
aaabbbbcde)num1num2num3category_tuplecategory_stringr  r  r   c                      U R                  SS9$ )Nr  r  )sort_valuesro   s    r%   rq   HTestGrouping.test_groupby_tuple_keys_handle_multiindex.<locals>.<lambda>j  s    ammvm>VrG   T)drop)	r   r^   r  r   r   r   r>   rA   r   )r"   r#   rD   rC   s       r%   )test_groupby_tuple_keys_handle_multiindex6TestGrouping.test_groupby_tuple_keys_handle_multiindexS  s    667# $(#5!
( >>&6%?>@,-334VWNN+
f00d0;XFrG   c                     [        S/S//S/S9R                  S S9n[        S/S9R                  S S9n[        SSS	9/nUR                  U5      R	                  5         UR                  U5      R	                  5         g )
Nz
05/29/2019z
05/28/2019r   r   c                 4    [         R                  " U S   5      $ Nr   r   to_datetimer#   s    r%   rq   GTestGrouping.test_groupby_grouper_immutable_list_item.<locals>.<lambda>r      BNN2f:6rG   )r   c                 4    [         R                  " U S   5      $ r  r  r  s    r%   rq   r  u  r  rG   1Dr   )r   assignr	   r   head)r"   df1r~  grouperss       r%   (test_groupby_grouper_immutable_list_item5TestGrouping.test_groupby_grouper_immutable_list_itemn  s     ,,86(KRR6 S 
 )006 1 
 T23H""$H""$rG   r   N)8r   r   r   r   r   r   r   r
   r^   rR   r   floatr   r   r   r   r   r   r   r   r
  r  r  r%  r+  r.  r1  r;  r.   r   rF  rP  rX  r\  rd  rj  rt  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r   )r   ir   s   000r%   r   r      sr   [[$w- "))A,"))AU+,|Q/q1	
	G	G0800>14 [[VeT]30 40 ,0\50&0,"
02& [[ 16q:AYtQQ':	
**1*./
0(A/8/@=B B$10
/ [[1223	
AAF6& [[ ARZZ0
 "**E"BJJUV4W "**E"BJJUV4W	
*1+*1	0"00$0G6%E ;s   G.r   c                   >    \ rS rSrS rS rS rS rS rS r	S r
S	rg
)TestGetGroupi  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  )rJ   rJ   rK   rJ   rJ   rK   r   )DATElabelVALr  r  r   r   z<must supply a tuple to get_group with multiple grouping keysr   rJ   zHmust supply a same-length tuple to get_group with multiple grouping keys)rJ   rK   baz)r   r   r  r   r   r   rE  r   r   to_pydatetimer  r>   rA   r   r    r/   )r"   r#   r$   r   r  rX   result3r3   s           r%   test_get_groupTestGetGroup.test_get_group  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   r>  r*   )r   ry   r      r   )r  ry   r-   r   r   z"Interval\(10, 15, closed='right'\)r   r   r  )r   r   r   cutr   Intervalr>   rA   r   r    r!   )r"   r  r}   binsr$   rC   rD   r3   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  r  r   r  r   r   )
2010-01-01
2010-01-02r  r  )r  )r   r  r   r   r>   rA   r   r  )r"   r#   r  rD   rC   dtrp   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%   rq   JTestGetGroup.test_get_group_grouped_by_tuple_with_lambda.<locals>.<lambda>  r   rG   )	r   r   r   r   r   rE  rW  r>   rA   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/rG   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<   rT  )r   r   r   objectr	   r   r   r   )r"   r   r,   seriesr*  r4   s         r%   test_groupby_with_empty$TestGetGroup.test_groupby_with_empty  sR      $62s#..)DM4(000rG   c                 L   [        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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 )Nr{   abssbabr   ry   )r{   r|   r8  )r   r  r   )r   r   r-   r)   ry   r   )r   r^   r>   rA   r   r   rf   r
   r0   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c2E"E<R
 	bjjo335s;
bjjo113S9ggi 
bjjo11!4c:rG   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)rJ   rK   r   r   )rJ   rK   r   r   )rJ   r
  r   r-   )ra  r_  thirdrM   r   ra  r_  )ra  r_  r0  )rJ   rK   r   r   )rJ   r
  r   r   )r   r  r   r2   rV   rb   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///rG   r   N)r   r   r   r   r  r  r  r"  r'  r-  r1  r   r   rG   r%   r  r    s&    -/^-00(1;0rG   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                    UR                  S/5      nSn[        R                  " [        US9   UR                  nXBR                  L d   e S S S 5        WR                  5        H/  u  pVUR                  U   S   U:H  R                  5       (       a  M/   e   UR                  SS/5      nUR                  nXBR                  L d   eUR                  5        H_  u  pVUR                  U   S   US   :H  R                  5       (       d   eUR                  U   S   US   :H  R                  5       (       a  M_   e   g ! , (       d  f       N= f)Nr   rp  r   r   r   r   )r   r>   rq  r   rE  itemsrV   all)r"   r#   r4   r3   rE  kvs          r%   test_groupsTestIteration.test_groups  s   **cU#-''cB^^F^^+++ C LLNDAFF1IcNa',,.... # **c3Z('''LLNDAFF1IcNad*//1111FF1IcNad*//1111 # CBs   D::
Ec                 n    UR                  S S /5      nUR                  R                  S    H  nM     g )Nc                 "    U R                  5       $ rm   )weekdayro   s    r%   rq   9TestIteration.test_grouping_is_iterable.<locals>.<lambda>#  s
    QYY[rG   c                     U R                   $ rm   )yearro   s    r%   rq   r?  #  s    AFFrG   r   )r   r(  r  )r"   tsframer4   r$   s       r%   test_grouping_is_iterable'TestIteration.test_grouping_is_iterable   s9     //#8:J"KL !!++A.A /rG   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*   )r{   r{   r{   r|   r|   r|   12rG  rH  rG  rH  r{   rG  r   r   rH  r   r|   r)   r-   ry   )	r   rR   r   r  r   r^   	enumerater>   r?   )r"   r8  k1k2r4   iteratedrD   r  rM   rN   rO   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-	 ':rG   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g s  snnf )N)r|   r|   r|   r{   r{   r{   rF  r   r*   )v1v2rJ  rK  )rM   rN   rO   fourfivesixr   rJ  rK  r{   rG  r)   rH  r-   ry   r|   r   r   )rG  rG  rG  rH  rH  rH  )rR   r  r   rS   rT   rU   r   r^   r   rV   rI  r>   rA   rV  )r"   three_grouprJ  rK  r#   r4   rL  r   rD   r  rM   rN   rO   rM  rN  rO  r   gprE  s                      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 2s   /G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   rb   s     r%   test_dictifyTestIteration.test_dictifyd  s    T"**S/"#T"**c3Z()*T"S'//"S'*+,T"S'//2c7BsG"4567T"**S/#&'(T"**c3Z(-./rG   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   rT  rc  r   z
2014-09-30z
2013-10-31r   r   )r`  r`  r`  )ra  rb  i#  )re  rf  z
2014-09-15)re  rf  z
2014-08-05r-   z
2014-08-31)r   r   r   r   r	   rV  rE  r  r   r   r>   rA   rf   )r"   r#   r4   ress       r%   test_groupby_with_small_elem*TestIteration.test_groupby_with_small_eleml  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?3rG   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aba)r   r   r-   r   )r   r{   r   zGrouping(('A', 'a')))r   r}  r^   r   r   r(  r  __repr__)r"   r   r#   r  rC   rD   s         r%   test_grouping_string_repr'TestIteration.test_grouping_string_repr  sm    ##T%[$u+$>?	{B/ZZ:'&&q)224)!!!rG   r   N)r   r   r   r   r:  rC  rP  rZ  r]  rh  rn  r   r   rG   r%   r4  r4    s'    2&.(% N024h"rG   r4  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UR                  5       n[        SS/SS/SS/S.5      n[        R                  " X#5        g )Nrx   r+  )r{   r|   r5   r{   r   r|   r   Frg  r   r   r   r>  ry   )
r   r  r   r	   r(  r  in_axisr=   r>   rA   )r#   r   rC   rD   s       r%   test_grouping_by_key_is_in_axisrr    s    	C	D	N	Ns	SB	W3'S)9:U	KB{{$$Q'////;;  #++++VVXF1vQF!Q@AH&+rG   c                     [        S[        R                  " S5      [        R                  /05      n U R	                  [
        R                  " SS/[
        R                  S95      S   R                  5       n[        SSS.S[        S9nUR                  R                  [
        R                  5      Ul        [        R                  " X5        g )	Nr  r   r   r   TFr   r  )r   r   	Timedeltar  r   rR   r  r   anyr   boolr   r  r>   r?   )r#   rC   rD   s      r%   test_groupby_any_with_timedeltarw    s    	Gbll1orvv67	8BZZ!Qrxx89'BFFHF$5)tDH^^**2884HN6,rG   ) __doc__datetimer   r   numpyrR   r   pandas.errorsr   r   pandasr   r   r   r	   r
   r   r   r   r   r   pandas._testing_testingr>   pandas.core.groupby.grouperr   r   r   r  r4  rr  rw  r   rG   r%   <module>r     sv   
  
 
 
 
  0H/ H/^H% H%^B0 B0R\" \"~	,	-rG   