
    Mh                    D   S SK J r   S SKrS SKJr  S SKrS SKrS SKrS SKJrJ	r	  S SK
Js  Jr  S SK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JrJrJr  S SKJr   S SK!J"r"  S SK#J$s  J%r&  \RN                  RQ                  S5      r)S	 r*S
 r+\RN                  RY                  S/ SQ5      S 5       r-S r.S r/S r0S r1\RN                  RY                  SSS/5      S 5       r2S r3S r4S r5\RN                  RY                  S/ SQ5      S 5       r6S r7S r8S r9S r:S r;S  r<S! r=S" r>S# r?\RN                  RY                  S$S% S& /5      S' 5       r@S( rAS) rBS* rCS+ rDS, rES- rFS. rGS/ rHS0 rIS1 rJS2 rKS3 rLS4 rM\RN                  RY                  S5S6S7/5      S8 5       rN\RN                  RY                  S5/ S9Q5      \RN                  RY                  S:SS/5      S; 5       5       rOS< rPS= rQS> rRS? rSS@ rTSA rUSB rVSC rWSD rXSE rYSF rZSG r[SH r\SI r]SJ r^SK r_SL r`SM raSN rbSO rcSP rdSQ reSR rfSS rgST rhSU riSV rjSW rkSX rlSY rmSZ rnS[ roS\ rpS] rqS^ rrS_ rsS` rtSa ruSb rv\RN                  RY                  ScSdSdSe//5      Sf 5       rwSg rxSh rySi rzSj r{Sk r|Sl r}Sm r~Sn r\RN                  RY                  SoSpSqSrSpSq/SpSr//5      \RN                  RY                  SsStSuStSu//5      Sv 5       5       rSw r\RN                  RY                  SxSySy//5      \RN                  RY                  SzSd/SdSe//5      \RN                  RY                  S{S/S /S|/S}/\" S /5      \" S 5      /\" S S~S~SS9\GR                  " SSSS9\GR                  " S /SS9\GR                  " S /SS9\GR                  " S/SS9// SQS9\RN                  RY                  S/ SQ5      \RN                  RY                  S$/ SQ5      S 5       5       5       5       5       rS rS rS rS rS rS rS rS r\RN                  RY                  SSS//5      S 5       r\RN                  RY                  SSSSS\" S5      \" S5      SS/04SS\" S5      \" S5      \" S5      \" S5      \" S5      \" S5      /04SS\" S5      \" S5      \" S5      \" S5      \" S5      \" S5      /04/5      S 5       rS rS rS rS rS r\RN                  RY                  S/ SQ5      S 5       rS r\RN                  RY                  S\SS}4\SS4\SS4\SS4\SS4\SS4\SS}4\SS4\SS4\SS4\SS4\SS4/5      S 5       rS r\RN                  RY                  S/ SQ5      S 5       r\RN                  RY                  SS\GR2                  " S\GR4                  " S5      S9/5      S 5       rS r\RN                  RY                  SSSS/4SSS/4/5      S 5       rS rS rS rS rS r\RN                  RY                  S:SS/5      S 5       rS rS rS rS rS rS r\RN                  RY                  S\\GR2                  " S\GR4                  " S5      S9/5      S 5       rS rS r\RN                  RY                  SSS}S}//5      S 5       rS r\RN                  RY                  SS /S4SS /S4S/5      S 5       r\RN                  RY                  S/ SQ5      S 5       r\RN                  RY                  SSS/5      S 5       r\RN                  RY                  SSS/5      S 5       r\RN                  RY                  SSS\GRh                  4/5      S 5       r\RN                  RY                  S/ SQ/ SQ/ SQ4/ SQ/ SQ/ SQ4/5      S 5       r\RN                  RY                  S/ SQ5      S 5       r\RN                  RQ                  S5      \RN                  RY                  S/ SQ5      S 5       5       rS rS r\RN                  RY                  S:SS/5      S 5       rS r\RN                  RY                  SS~S}/5      S 5       r\RN                  RY                  S/ SQ5      S 5       rS rGS  rGS r\RN                  RY                  GSSS/5      \RN                  RY                  GSGSGSS}/S~\4GSS}/GSS4GSSS /S~\4SS /GSS4/5      GS 5       5       rGS	 rGS
 rGS r\RN                  RY                  GSSS/5      GS 5       rg(      )datetimeN)Decimal)PerformanceWarningSpecificationError)is_string_dtype)Categorical	DataFrameGrouperIndexInterval
MultiIndex
RangeIndexSeries	Timedelta	Timestamp
date_rangeto_datetime)BooleanArrayz)ignore:Mean of empty slice:RuntimeWarningc                  <    [        [        SSS95      n SnX:X  d   eg )NAB)keylevelz<Grouper(key='A', level='B', axis=0, sort=False, dropna=True))reprr
   )resultexpecteds     S/var/www/html/env/lib/python3.13/site-packages/pandas/tests/groupby/test_groupby.py	test_reprr   '   s$    'c-.FMH    c                 F   [         R                  " SSS9n[        U5      nUS S S2==   S-  ss'   UR                  S5      R	                  5       nU[        S5      -   US'   U[        SS	S
9-   US'   [         R                  UR                  S'   UR                  [        [        S5      5      S-  5      nUR                  5       n[        S5      n[        S5      n[        US-  XfXg/[        R                  " S5      S9n[        XUS.5      n	[         R"                  " XY5        g )Nz1 Day'  periods      r   r   r   UTCtzCi  z2887 days 11:21:02.326710176z2886 days 00:42:34.664668096indexr   r   r)   )pdtimedelta_ranger   to_framecopyr   NaTilocgroupbylistrangestdr   nparanger	   tmassert_frame_equal)
warn_copy_on_writetdiserdfgbr   td1td4exp_serr   s
             r   test_groupby_std_datetimelikerD   .   s    


We
4C
+C!HMH	c				!BIaL BsGIaE**BsG&&BGGBK	DqNT)	*BVVXF 2
3C
2
3CcAgs2"))A,GGw7CDH&+r   dtype)int64int32float64float32c                   ^ [        [        R                  " S5      S-  [        R                  " S5      U S9n[        R                  " S5      n[        R                  R	                  S5      R                  U5        UR                  U5      nUR                  S SS9nU H  u  pE[        U5      S:X  a  M   e   Sn[        R                  " [        US	9   UR                  [        R                  5      nS S S 5        WS
   S
:X  d   eSn[        R                  " [        US	9   UR                  [        R                  5      nS S S 5        [        R                  " UW5        [        R                  " XsR                  5       5        UR!                  5       n	Sn[        R                  " [        US	9   UR                  [        R                   5      nS S S 5        [        R                  " X5        UR#                  S 5      nUR%                  S 5      n
U
S   S:X  d   e[        R                  " X5        UR                  U5      nSn[        R                  " [        US	9   UR                  [        R                  5      n	S S S 5        [        R                  " XSS9  Sn[        R                  " [        US	9   UR                  [        R                  [        R&                  /5      nS S S 5        Sn[(        R*                  " [,        US	9   UR                  [        R                  [        R&                  S.5        S S S 5        SSSS.mSn[        R                  " [        US	9   UR                  U4S j5      nS S S 5        US
   S:X  d   eSn[(        R*                  " [.        US	9   UR                  S 5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN,= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)N	      r,   rE   r%   c                     U S-  $ NrL    xs    r   <lambda>)test_basic_aggregations.<locals>.<lambda>Q   s    Q!Vr   F
group_keyszusing SeriesGroupBy.meanmatch   zusing SeriesGroupBy.sumc                 &    X R                  5       -  $ NsumrQ   s    r   rS   rT   f   s    q557{r   c                 &    X R                  5       -  $ r[   r\   rQ   s    r   rS   rT   g   s    a%%'kr         check_index_typezusing SeriesGroupBy.[mean|std]nested renamer is not supported)onetwo
         r   rY   r%   zPinning the groupby key to each group in SeriesGroupBy.agg is deprecated, and cases that relied on it will raise in a future versionc                 D   > TU R                      U R                  5       -   $ r[   )namemean)rR   group_constantss    r   rS   rT      s    oaff&=&Hr      zMust produce aggregated valuec                     U S-  $ Nr%   rP   rQ   s    r   rS   rT      s    AEr   )r   r8   r9   randomdefault_rngshufflereindexr4   lenr:   assert_produces_warningFutureWarning	aggregaterl   aggassert_series_equalr]   apply	transformr7   pytestraisesr   	Exception)rE   datar,   groupedkvmsgaggedr   r   transformedvalue_groupedrm   s               @r   test_basic_aggregationsr   I   s"   "))A,!#299Q<uEDIIaLEII!$$U+<<Dll+l>G1v{{  %C		#	#M	=!!"''* 
>8q==
$C		#	#M	=;;rww' 
>5(+5,,.1[[]F
#C		#	#M	=;;rvv& 
>6,}}23H##$9:Kq>R;1LL&M
$C		#	#M	=((1 
>65A +C		#	#M	=!!277BFF"34 
> -C	)	5"''"&&9: 
6 +O	E  
	#	#M	=HI 
> 8r>> *C	y	,/* 
-	,a 
>	=
 
>	= 
>	= 
>	= 
>	= 
6	5 
>	= 
-	,s`    O# O1 O)  O;80P1P%P0)Q
O
O&)
O8;
P

P
P-0
P>
Qc                    U R                   R                  S   nU R                  U5      nUR                  5       nU R                  UR	                  S5      5      R                  5       nUR                   R
                  [        R                  :X  d   eUR                   R
                  [        R                  :X  d   e[        R                  " X4SS9  g )Nr   OFra   )r,   codesr4   r]   astyperE   r8   int8rF   r:   r;   ) multiindex_dataframe_random_datar   r   r   r   s        r   test_groupby_nonobject_dtyper      s    
*
0
0
6
6q
9C.66s;G[[]F/77

3HLLNH<<(((>>288+++&UCr   c            
      <   [        / SQ/ SQ[        R                  R                  S5      R	                  S5      [        R
                  " [        R                  R                  S5      R	                  S5      SS9S.5      n [        [        U 5      5      U S'   S	 nS
n[        R                  " [        US9   U R                  S5      R                  U5      nS S S 5        WR                  nU R                  n[        R                  " XE5        g ! , (       d  f       N== f)Nfoobarr   r   r   r   r   r   )rd   rd   re   threere   re   rd   r   r%      rI   rE   r   r   r)   Dvaluec                 B    U R                   U S   R                  5          $ )Nr   )locidxmaxgroups    r   	max_value5test_groupby_nonobject_dtype_mixed.<locals>.max_value   s    yyw..011r   7DataFrameGroupBy.apply operated on the grouping columnsrW   r   )r	   r8   rq   rr   standard_normalarrayr6   ru   r:   rv   DeprecationWarningr4   r{   dtypesrz   )r?   r   r   appliedr   r   s         r   "test_groupby_nonobject_dtype_mixedr      s    	IM&&q)99!<"))//2BB1EYW		

B B.BwK2 DC		#	#$6c	B**S/''	2 
C^^FyyH6,	 
C	Bs   5!D
Dc            	         [        / SQ[        [        R                  " S5      SS9[	        SSS9S.5      n S nU R                  S	5      R                  5       S
/   nSn[        R                  " [        US9   U R                  S	5      R                  U5      S
/   nS S S 5        [        R                  " WU5        S nSn[        R                  " [        US9   U R                  S	5      R                  U5      S
/   nS S S 5        UR                  5       n[        R                  UR                  S'   [        R                  " XF5        S nSn[        R                  " [        US9   U R                  S	5      R                  U5      S
/   nS S S 5        UR                  5       n[        R                  UR                  S'   [        R                  " XF5        S nSn[        R                  " [        US9   U R                  S	5      R                  U5      S/   nS S S 5        U R                  S	5      R                  5       S/   n[        R                   UR                  S'   [        R                  " XF5        S n	Sn[        R                  " [        US9   U R                  S	5      R                  U	5      nS S S 5        U R                  S	5      R                  5       S   R                  5       n[        R                  UR                  S'   S Ul        [        R$                  " XF5        g ! , (       d  f       GN= f! , (       d  f       GNE= f! , (       d  f       GN= f! , (       d  f       GNM= f! , (       d  f       N= f)N)Tigerr   r   Lambr   Ponyr   r_   rF   r   20130101r"   r-   c                      U R                   S   $ Nr   )r3   grps    r   f_0*test_inconsistent_return_type.<locals>.f_0   s    xx{r   r   r   r   rW   c                 B    U R                   S:X  a  g U R                  S   $ )Nr   r   rk   r3   r   s    r   f_1*test_inconsistent_return_type.<locals>.f_1   s    88wxx{r   r   c                 B    U R                   S:X  a  g U R                  S   $ Nr   r   r   r   s    r   f_2*test_inconsistent_return_type.<locals>.f_2       88vxx{r   r   c                 B    U R                   S:X  a  g U R                  S   $ r   r   r   s    r   f_3*test_inconsistent_return_type.<locals>.f_3   r   r   r)   c                 \    U R                   S:X  a  g U R                  S   R                  S   $ )Nr   r   r)   )rk   r3   r   r   s    r   f_4*test_inconsistent_return_type.<locals>.f_4   s(    88vxx{s##r   )r	   r   r8   r9   r   r4   firstr:   rv   r   r{   r;   r1   nanr   r.   r2   rk   rz   )
r?   r   r   r   r   r   er   r   r   s
             r   test_inconsistent_return_typer      s    
L		!G4J2	

B zz#$$&u-H
CC		#	#$6c	BC&&s+SE2 
C&(+
 DC		#	#$6c	BC&&s+SE2 
CAVVAEE'N&$
 DC		#	#$6c	BC&&s+SE2 
CAFFAEE&M&$
 DC		#	#$6c	BC&&s+SE2 
C


3&AFFAEE&M&$$
 DC		#	#$6c	BC&&s+ 
C


3$))+AFFAEE&MAF6%k 
C	B 
C	B 
C	B 
C	B 
C	Bs<   7%L*%L<'%M5%M !M2*
L9<
M
M 
M/2
N c                 f   SS jnS nU R                  S 5      nUR                  [        R                  SSS9nUR	                  [        R                  SSS9nUR                  [        R                  SSS9nUR                  S5      nUR                  U5      n	[        R                  " Xh5        [        R                  " XX5        [        R                  " Xy5        UR                  USS9nUR	                  USS9nUR                  USS9n[        R                  " XX5        [        R                  " Xh5        [        R                  " Xy5        S	 GH  n
UR                  S
 U
S9nU
(       a  S O[        nSn[        R                  " XS9   UR                  [        R                  SSS9nS S S 5        [        R                  " XS9   UR	                  [        R                  S5      nS S S 5        [        R                  " XS9   UR                  S5      nS S S 5        [        R                  " UWSS9  [        R                  " X^5        UR	                  [        R                  SS/5      n[        R                  " XS9   UR                  SS/5      nS S S 5        [        R                  " UWSS9  [        R                  " XS9   UR                  USS9nS S S 5        [        R                  " XS9   UR	                  [        R                  SS9nS S S 5        [        R                  " X^5        [        R                  " XnSS9  GM     g ! , (       d  f       GN= f! , (       d  f       GN|= f! , (       d  f       GN`= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f)Nr   c                 ,    [         R                  " XUS9$ )Naxisr8   
percentile)rR   qr   s      r   f test_pass_args_kwargs.<locals>.f   s    }}Q--r   c                 .    [         R                  " U SSS9$ )NP   r   r   r   rQ   s    r   rS   'test_pass_args_kwargs.<locals>.<lambda>   s    "--2A.r   c                     U R                   $ r[   monthrQ   s    r   rS   r      s    aggr   r   r   皙?r   )TFc                     U R                   $ r[   r   rQ   s    r   rS   r     s    qwwr   as_index*A grouping .* was excluded from the resultrW   Fcheck_namesg?r   )r4   ry   r8   r   r{   r|   quantiler:   rz   rw   rv   r	   r;   )tstsframer   g
ts_grouped
agg_resultapply_resulttrans_resultagg_expectedtrans_expectedr   
df_groupedwarnr   r   expected_seqs                   r   test_pass_args_kwargsr      s   . 	/A -.Jr:J##BMM2A#>L''r'BL&&s+L))!,N<6:4<8R(J##A#,L''R'0L:4<6<8 "__%6_J
t]:''8#rBJ 9''8%++I,>,>DL 9''8!**3/H 9
lH%H
j3!''	(:(:S#JG''8%..Sz:L 9
lLeL''8#R0J 9''8%++I,>,>#+FL 9
j3
l%H/ " 988888 98 9888sH   
 M
!MM.?N N2N"

M	
M+	.
M=	 
N	
N	"
N0	r   TFc                 6   / SQU l         U R                  S US9nU(       a  S O[        nSn[        R                  " X4S9   UR                  [        R                  SSS9nS S S 5        X R                  R                  S	:H     R                  S
5      X R                  R                  S:H     R                  S
5      S.n[        U5      R                  nU(       d  [        [        S5      5      Ul        [        R                  " WU5        g ! , (       d  f       N= f)N)r   r   r   r)   c                     U R                   $ r[   r   rQ   s    r   rS   9test_pass_args_kwargs_duplicate_columns.<locals>.<lambda>.  s    177r   r   r   rW   r   r   r   rY   r   r%   rY   r%   )columnsr4   rw   r:   rv   ry   r8   r   r,   r   r   r	   Tr   r6   r;   )r   r   r@   r   r   resex_datar   s           r   'test_pass_args_kwargs_duplicate_columnsr   *  s     +GO	*X	>B4D
6C		#	#D	4ffR]]BQf/ 
5 ==&&!+,55c:==&&!+,55c:G !##HuQx#x( 
5	4s     D


Dc            
         [        [        R                  R                  S5      R	                  S5      [        [        S5      [        S9[        SSSS9S	9n U R                  S
 S S /5      n[        U5      [        U 5      :X  d   eU R                  S S /5      n[        U R                   Vs1 s H  o"R                  UR                  4iM     sn5      n[        U5      U:X  d   eg s  snf )Nr%   rf      ABCDr   
2000-01-01rf   r   r#   freqr   r,   c                     U R                   $ r[   yearrQ   s    r   rS   test_len.<locals>.<lambda>G      AFFr   c                     U R                   $ r[   r   rQ   s    r   rS   r   G      aggr   c                     U R                   $ r[   dayrQ   s    r   rS   r   G      r   c                     U R                   $ r[   r   rQ   s    r   rS   r   J  r   r   c                     U R                   $ r[   r   rQ   s    r   rS   r   J  r  r   )r	   r8   rq   rr   r   r   r5   objectr   r4   ru   r,   r   r   )r?   r   rR   r   s       r   test_lenr
  A  s    	
		a 009d6l&1r<
B
 jj*,=OPGw<3r7"""jj*,=>?Grxx8x!VVQWW%x89Hw<8### 9s   /!C)c                     [        [        R                  /S-  / SQS.5      n [        U R	                  S5      5      S:X  d   e[        U R	                  S5      5      S:X  d   e[        U R	                  SS/5      5      S:X  d   eg )NrL   rY   r%   rL   abr  r   r  )r	   r8   r   ru   r4   r?   s    r   test_len_nan_groupr  O  sq    	"&&AI6	7Brzz#1$$$rzz#1$$$rzz3*%&!+++r   c                  2   [        [        [        SS5      5      S-   V s/ s H  n SU -  PM
     sn 5      n[        R                  R                  S5      R	                  S5      S-  n[        U5      nUR                  U5      nUR                  5         g s  sn f )NrY   rf         ?r%   iL  g      $@)r   r5   r6   r8   rq   rr   r4   rl   )rR   r   r   	groupingsr   s        r   test_basic_regressionr  W  sz    d5B<&82&=>&=S1W&=>?F99  #**4047DtInnY'GLLN ?s   B)rH   rI   rF   rG   int16r   c                    [        [        R                  " S5      5      n[        [        R                  " S5      XS9n[        [        R
                  SSS[        R
                  [        R
                  SS[        R
                  S/
US9nUR                  U5      nUR                  [        5      n[        SS/SS/S9n[        R                  " XVSS	9  S
 nUR                  U5      n[        SS/SS/S9n[        R                  " XV5        g )Nrf   r   r   r   r+   r   r%   Fcheck_dtypec                 *    [        [        U 5      5      $ r[   )floatru   rQ   s    r   r   test_with_na_groups.<locals>.fw  s    SV}r         @       @)r   r8   r9   r   onesr   r4   ry   ru   r:   rz   )rE   r,   valueslabelsr   r   r   r   s           r   test_with_na_groupsr"  b  s     "))B- EBGGBK4F	ubffbffeUBFFERF nnV$GKKEq!fUEN3H5>
 KKNEsCj7H5+r   c                  0   S n S nS n[        / SQ[        S5      [        SS5      S.5      n[        / S	Q[        S5      [        SS5      S.5      nS
nSn[        R                  " [        US9   UR                  S5      R                  U 5      nS S S 5        [        R                  " [        US9   UR                  S5      R                  U 5      nS S S 5        [        R                  " WW5        Sn[        R                  " [        US9   UR                  S5      R                  U5        S S S 5        [        R                  " [        US9   UR                  S5      R                  U5        S S S 5        [        R                  " [        US9   UR                  S5      R                  U5        S S S 5        [        R                  " [        US9   [        R                  " [        US9   UR                  S5      R                  U5        S S S 5        S S S 5        g ! , (       d  f       GN= f! , (       d  f       GNe= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       No= f! , (       d  f       g = f)Nc                     X R                   S-  S:H     S-  nUR                  (       a"  [        / /S-  / /S-  SS/S9n[        S/US9nU$ UR	                  SS/5      nU$ )Nr%   rY   r  clevelsr   namesr  r   )r  emptyr   r	   	set_indexrR   y
multiindexr   s       r   f1,test_indices_concatenation_order.<locals>.f1  sk    ssQw1n"77#B4!8B4!8CQT:VJSE<CJS#J'AHr   c                     X R                   S-  S:H     S-  nUR                  (       a
  [        5       $ UR                  SS/5      nU$ )Nr%   rY   r  r%  )r  r)  r	   r*  )rR   r,  s     r   f2,test_indices_concatenation_order.<locals>.f2  sA    ssQw1n"77;S#J'AHr   c                     X R                   S-  S:H     S-  nUR                  (       a#  [        / /S-  / /S-  SS/S9n[        SS/US9nU$ U$ )	Nr%   rY   r   r   r&  r  r  r   )r  r)  r   r	   r+  s       r   f3,test_indices_concatenation_order.<locals>.f3  s_    ssQw1n"77#taxtaxu~J S#JjACJHr   )rY   r%   r%   r%   r   r$   rK   r  r  r%  )rL   r%   r%   r%   zDThe behavior of array concatenation with empty entries is deprecatedr   rW   r  z@Cannot concat indices that do not have the same number of levels)r	   r6   r:   rv   r   r4   r{   r;   r}   r~   AssertionErrorrw   )	r.  r1  r4  r?   df2depr_msgr   result1result2s	            r    test_indices_concatenation_orderr<    s   	 
E!H5A;G	HB
,U1XE!QKH
ICUH DC		#	#$6c	B**S/''+ 
C		#	#$6c	B++c"((, 
C'7+ MC	~S	1


3b! 
2	~S	1Cr" 
2 
~S	1


3b! 
2	~S	1''XFKK""2& G 
2	1! 
C	B	B	B 
2	1	1	1 
2	1 GF 
2	1s`   /!H1!H0!I!I!I%J,!I6J
H-0
H?
I
I"%
I36
J	 J
Jc                 L   U R                  S 5      nUR                  5       nUR                  S 5      n[        R                  " X#5        UR                  5       nU VVs0 s H  u  pEXER                  5       _M     nnn[        U5      R                  n[        R                  " X#5        UR                  nUR                  S 5      n[        R                  " X#5        Sn[        R                  " [        US9   [        US5        S S S 5        g s  snnf ! , (       d  f       g = f)Nc                 "    U R                  5       $ r[   weekdayrQ   s    r   rS   #test_attr_wrapper.<locals>.<lambda>  s
    199;r   c                 ,    [         R                  " U SS9$ )NrY   )ddof)r8   r7   rQ   s    r   rS   rA    s    RVVAA%6r   c                     U R                   $ r[   r   rQ   s    r   rS   rA    s    QWWr   z-'SeriesGroupBy' object has no attribute 'foo'rW   r   )r4   r7   ry   r:   rz   describer	   r   r;   rE   r}   r~   AttributeErrorgetattr)r   r   r   r   rk   gpr   s          r   test_attr_wrapperrI    s    jj./G[[]F{{67H6, F4;<Gkkm#GH<"$$H&+ ]]F{{,-H6, :C	~S	1 
2	1 = 
2	1s    D9D
D#c                 D   U R                  S 5      nUR                  S5      n[        U5      S:X  d   e[        UR                  5      S:X  d   eU R	                  5       nUR
                   Vs/ s H  oDR                  5       PM     snUS'   UR                  S5      R                  S5      n[        R                  " XRSS9  U R                  S5      R                  S	 5      nUR                  S
 5      n[        U5      S:X  d   e[        UR                  5      S:X  d   eUR                  S 5      nU HM  u  pxUR                  5       n	UR
                   H(  n
[        R                  " UR                  U
5      U	SS9  M*     MO     U H(  u  pUR
                  S   R                  5       U:X  a  M(   e   UR                  nUR                  nUR!                  5        H<  u  pU R
                  R#                  X   5      nUU:H  R%                  5       (       a  M<   e   g s  snf )Nc                 "    U R                  5       $ r[   r?  rQ   s    r   rS   $test_frame_groupby.<locals>.<lambda>  s
    		r   rl   r$   r   r@  Fr   rh   c                 "    U R                  5       $ r[   r?  rQ   s    r   rS   rL    s
    r   c                 &    X R                  5       -
  $ r[   rl   rQ   s    r   rS   rL    s    a&&(lr   c                 "    U R                  5       $ r[   rO  rQ   s    r   rS   rL    s
    affhr   r   )r4   rx   ru   r   r1   r,   r@  r:   r;   headr|   rl   rz   xsgroupsindicesitemstakeall)r   r   
aggregatedtscopyrR   straggedr   rk   r   rl   idxr@  rS  rT  r   r   	samethings                    r   test_frame_groupbyr]    s   oo34G ""6*Jz?az!!"a''' \\^F.4ll;ll;F9~~i(226:H(EB ll2&&'<=G##$:;K{r!!!{""#q((( ##$67Kzz|;;C"";>>##6%P   "{{1~%%'7222 " ^^FooGMM&&wz2	Q##%%%% 3 <s   .Hc                    SSSSS.nSn[         R                  " [        US9   U R                  USS9nS S S 5        WR	                  S5      n[        U5      [        U 5      :X  d   e[        UR                  5      S:X  d   eS	 nS
n[         R                  " [        US9   U R                  R                  USS9nS S S 5        [         R                  " WR                  U5      R                  UR                  U5      5        U H   u  px[        UR                  5      S:X  a  M    e   g ! , (       d  f       N= f! , (       d  f       N= f)Nr   rY   r   +DataFrame.groupby with axis=1 is deprecatedrW   r   rl   r%   c                 &    X R                  5       -
  $ r[   rO  rQ   s    r   rS   ,test_frame_groupby_columns.<locals>.<lambda>	  s    1vvx<r   5The 'axis' keyword in DataFrame.groupby is deprecated)
r:   rv   rw   r4   rx   ru   r   r   r;   r|   )	r   mappingr   r   rX  tfgroupedTr   r   s	            r   test_frame_groupby_columnsrf    s   AAA.G
7C		#	#M	=//'/2 
> ""6*Jz?c'l***z!!"a''' 
 B
AC		#	#M	=99$$W1$5 
>(,,R022G4E4Eb4IJ 199~""" ! 
>	= 
>	=s   D) D:)
D7:
Ec                 l   U R                  S5      nUR                  SS9nUR                  R                  S:X  d   eU R                  SSS9R                  SS9nUR                  R                  S:w  d   eUSS/   R	                  S5      nUR                  R                  S:X  d   eUR	                  SS	S
.5      nUR                  R                  S:X  d   eUS   R                  5       nUR                  R                  S:X  d   eUS   R	                  S5      nUR                  R                  S:X  d   eUS   R	                  SS	/5      nUR                  R                  S:X  d   eSn[
        R                  " [        US9   US   R	                  SS	S.5        S S S 5        g ! , (       d  f       g = f)Nr   Tnumeric_onlyFr   r)   r   rl   r7   r)   r   rc   rW   r   r   )r4   rl   r,   rk   ry   r}   r~   r   )r?   r   r   r   s       r   test_frame_set_name_singlerl    s   jjoG\\t\,F<<###ZZeZ,11t1DF<<###c3Z $$V,F<<###[[vE23F<<###S\ F<<###S\f%F<<###S\vuo.F<<###
,C	)	567 
6	5	5s   F%%
F3c           	         U S   nU S   nU R                  UR                  UR                  /5      nUR                  SS9nU R                  SS/5      R                  5       n[        R                  " UR
                  S S 2SS/4   UR
                  S S 2SS/4   SS9  [        [        R                  R                  S	5      R                  S
5      [        R                  R                  S	5      R                  S
5      [        R                  " / SQ5      [        R                  " / SQ5      S./ SQS9n U R                  SS/5      nUR                  S5        g )Nr   r   Trh  r)   r   Fr   r%      r  r  r  r  r  r  1rq  rq  2rr  rr  )v1v2k1k2)rd   re   r   fourfivesixr+   ru  rv  r]   )r4   getrl   r:   r;   r   r	   r8   rq   rr   r   r   ry   )r?   col1col2r   r   r   s         r   test_multi_funcr}  /  s   c7Dc7Djj$((DHH-.GLLdL+Ezz3*%**,H 		!c3Z- (,,q3*}"=5
 
))''*::1=))''*::1=((9:((9:		
 =
B jj$&GKKr   c                     U R                  SS/5      S   nUR                  SS/5      n[        UR                  S5      UR                  S5      S.5      n[        R                  " X#5        g )Nr   r   r)   rl   r7   )rl   r7   )r4   ry   r	   r:   r;   )r?   r   r   r   s       r   !test_multi_key_multiple_functionsr  K  sZ    jj#s$S)GKK(E'++f"5gkk%>PQRH%*r   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S/5      nSS	/nUR                  U5      n[        R                  " US
   R                  U5      US   R                  U5      US   R                  U5      // SQSS9n[        UR                  [        5      (       d   e[        UR                  [        5      (       d   e[        R                  " X45        g )Nr   r   r   r   r   r   r   r   r   r   r   rd   rd   rd   re   rd   rd   rd   re   re   re   rd   r%      )r   r   r   EFr   r   rl   r7   r   r  r  )r   r  r  rY   )keysr   )r	   r8   rq   rr   r   r4   ry   r.   concat
isinstancer,   r   r:   r;   )r   r   funcsr   r   s        r   "test_frame_multi_key_function_listr  S  s)    &&q)99"=&&q)99"=&&q)99"=;	
 DD llC:&GUOEKKEyy			%	 '#,"2"25"973<;K;KE;RSH
 ekk:....hnnj1111%*r   c            
         [        / SQ/ 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S/5      nS	S
/n[        R                  " S5      n[        R                  " [        US9   UR                  U5        S S S 5        g ! , (       d  f       g = f)Nr  r  )dullr  shinyr  r  r  r  r  r  r  r  r%   r  )r   r   r)   r   r  r  r   r   rl   r7   &agg function failed [how->mean,dtype->rW   )r	   r8   rq   rr   r   r4   reescaper}   r~   	TypeErrorry   )r   r   r  r   s       r   2test_frame_multi_key_function_list_partial_failurer    s     &&q)99"=&&q)99"=&&q)99"=U+	
-D^ llC:&GUOE
))<
=C	y	,E 
-	,	,s   #C>>
Dopc                 "    U R                  5       $ r[   r\   rQ   s    r   rS   rS     s
    !%%'r   c                 "    U R                  5       $ r[   rO  rQ   s    r   rS   rS     s
    QVVXr   c           
         U nUR                  SS/5      nU" U5      n/ n/ nUR                  S5       H[  u  pxUR                  S5       HA  u  pUR                  Xy45        UR                  U" U
R                  S S 2SS/4   5      5        MC     M]     [        R                  " USS/S9n[
        R                  " USS9R                  nXl        S HC  nU" X=   5      nXM   nX   n[        R                  " UU5        [        R                  " UU5        ME     US   R                  US   US   /5      R                  5       nUR                  SS/5      R                  5       S   n[        R                  " UU5        g )	Nr   r   r)   r   r(  rY   r   rj  )r4   appendr   r   from_tuplesr.   r  r   r,   r:   rz   rl   )r?   r  r   r   r:  r  r   n1gp1n2gp2mir   col
result_colpivotedexpr   s                     r   test_groupby_multiple_columnsr    s[   DllC:&GkGDF<<${{3'GBKK!MM"SWWQc
]345 ( %
 
		S#J	7Byya(**HN %
,m
z3/
w,  #YS	4956;;=F||S#J',,.s3H68,r   c                  p   [        SS/SS/SS//SS/S9n U R                  SS	S
9S   R                  S5      n[        SS/SS9n[        R
                  " X5        U R                  SS	SS9S   R                  S 5      n[        / SQS[        R                  " / SQ5      S9n[        R
                  " X5        g )NrY   r%   r   r$   rn  r   r   r   Fr   rk   T)r   rV   c                 "    U R                  5       $ r[   )cumsumrQ   s    r   rS   -test_as_index_select_column.<locals>.<lambda>  s
    !((*r   )r%   rn  rn  ))r   r   )r   rY   r   rk   r,   )	r	   r4   	get_groupr   r:   rz   r{   r   r  r?   r   r   s      r   test_as_index_select_columnr    s    	QFQFQF+c3Z	@BZZeZ,S1;;A>Fq!f3'H6,ZZeZ=cBHHF :#9#9:R#SH 6,r   c                  j   Sn [        / SQ/ SQS.5      nUR                  UR                  S5      R                  R	                  S5         n[
        R                  " [        U S9   UR                  S5      R                  SUS9n[
        R                  " X25        S S S 5        g ! , (       d  f       g = f)	Nzobj is deprecatedrY   rY   r%   rL   r   r$   r  r  r   rW   )obj)
r	   r3   r4   rT  rz  r:   rv   rw   r  r;   )r9  r?   r   r   s       r   !test_obj_arg_get_group_deprecatedr    s    "H	3	4Bwwrzz#..22156H		#	#M	BC**1"*5
f/ 
C	B	Bs   %6B$$
B2c                      [        [        / SQSS9S9n U R                  SSS9S   R                  SS	9n[        U R                  S S
 [        S5      S9nS /UR                  l        [        R                  " X5        g )Nr-   alphar  r  r   F)byr   r   rh  r%   r   r   )	r	   r   r4   r]   r   r6   r(  r:   r;   )r?   leftr   s      r   0test_groupby_as_index_select_column_sum_empty_dfr    sp    	5w?	@B::u:-c266E6JDBQuQx@H"VH$)r   c                    U R                  SSS9nUSS/   R                  S5      nUR                  SS9n[        R                  " X#5        UR                  SS	S
.5      nUR                  SS9nUR                  5       S   US'   [        R                  " XE5        U R                  SSS9nSn[        R                  " [        US9   US   R                  SS	05        S S S 5        U R                  SS/SS9nUR                  S5      nUR                  5       n[        R                  " X#5        UR                  SS	S
.5      nUR                  5       nUR                  5       S   US'   [        R                  " XE5        US   R                  5       n[        U5      R                  SS0S9nSn[        R                  " [        US9   US   R                  SS	05      nS S S 5        [        R                  " WU5        [        [        R                  R                  S5      R!                  SSS5      / SQS9n [#        [        R                  R                  S5      R!                  SSS5      SS9n	U R                  U	5      n
U
R%                  S5        Sn[        R                  " [        USS9   U
R'                  [
        5      nS S S 5        [        R                  " [        USS9   U R                  U	5      R'                  [
        5      nS S S 5        [        R                  " WW5        S Hp  nU R                  U	SS9n
[)        X5      " 5       nU R                  U	R*                  SS9n
[)        X5      " 5       R-                  SS9n[        R                  " X5        Mr     g ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       N= f)Nr   Fr   r)   r   rl   Trh  r]   rj  rc   rW   Qr   r  z7Passing a dictionary to SeriesGroupBy.agg is deprecatedr%   r   d   )2   rL   )jimjoejolier$   rf   r  r  r  z:The behavior of DataFrame.sum with axis=None is deprecated)rX   check_stacklevel)rl   maxcountr   r  rW  drop)r4   ry   rl   r:   r;   r]   r}   r~   r   r	   renamerv   rw   r8   rq   rr   integersr   nthr{   rG  r   reset_index)r?   r   r   r   r;  	expected2r   	expected3result3r   grr   altattrr  rights                   r   test_groupby_as_index_aggr     s-   jjuj-G c3Z $$V,F|||.H&+kkU34G$/I[[]3'IcN'-jjtj,G
,C	)	5#u& 
6
 jj#sej4G[[ F||~H&+kkU34GI[[]3'IcN'-  "I)$++S#J+?I
CC		#	#M	=#,""C<0 
>'9- 

		a ))!S':'
B 
		%%a(11!R<5	IB	BBFF1I
FC		#	#Mu	Uhhsm 
V		#	#Mu	Ujjn""3' 
V#s#CZZUZ+r "ZZ		DZ1!#//T/:
d* DQ 
6	5& 
>	= 
V	U	U	Us0   NN1,O$%O
N.1
O 
O
O#c                    U S;   a  [         R                  " SU  35        [        [        R                  R                  S5      R                  SSSS9SS	/S
9n[        UR                  S5      U 5      " 5       nU S:X  a  UR                  S5      nUR                  5       nU S:w  a$  US   R                  US   R                  5      US'   UR                  SSS9n[        X05      " 5       n[        R                  " XB5        UR                  U 5      n[        R                  " XB5        [        US	   U 5      " 5       n[        R                  " XB5        US	   R                  U 5      n[        R                  " XB5        g )N)corrwithr  ngroupz!GH 5755: Test not applicable for r%   r   r$   )r  r%   )sizer  r  r  r  Fr   )r}   skipr	   r8   rq   rr   r  rG  r4   r  r  r   rE   r:   r;   ry   )reduction_funcr?   r   r   r   s        r   test_ops_not_as_indexr  C  sE    6677GHI	
		a ))!QX)>c

B rzz#79H??6*##%H ,,RW]];


3
'AQ')F&+UU>"F&+QsV^,.F&+sVZZ'F&+r   c                 h   U R                  SSS9nU R                  SS/SS9nUS   R                  S5      nUR                  S5      R                  S S 2SS/4   n[        U[        5      (       d   e[
        R                  " X45        US   R                  S5      nUR                  S5      R                  S S 2/ SQ4   n[        U[        5      (       d   e[
        R                  " XV5        US   R                  5       nUR                  5       R                  S S 2SS/4   n[        U[        5      (       d   e[
        R                  " X45        US   R                  5       nUR                  5       R                  S S 2/ SQ4   n[        U[        5      (       d   e[
        R                  " XV5        g )Nr   Fr   r   r)   r]   r-   )r4   ry   r   r  r	   r:   r;   r]   )r?   r   grouped2r   r   r;  r  s          r   !test_as_index_series_return_framer  e  sr   jjuj-Gzz3*uz5HS\e$F{{5!%%a#sm4Hfi((((&+sm&GU#''?(:;Igy))))'-S\F{{}  S#J/Hfi((((&+sm!G""1o#56Igy))))'-r   c                     U R                  SSS9nSn[        R                  " [        US9   US   R	                  S5        S S S 5        g ! , (       d  f       g = f)Nr   Fr   zColumn\(s\) C already selectedrW   r)   r   )r4   r}   r~   
IndexError__getitem__)r?   r   r   s      r   (test_as_index_series_column_slice_raisesr  ~  sE    jjuj-G
+C	z	-  % 
.	-	-s   A


Ac                    U nUR                  SSS9nUR                  SS9nUR                  S/5      R                  SS9nUR                  SSUR                  5        [	        [        U5      5      Ul        [        R                  " X45        UR                  SS/SS9nUR                  5       nUR                  SS/5      R                  5       n[        [        UR                  R                  6 5      nUR                  SSUS   5        UR                  SSUS   5        [	        [        U5      5      Ul        [        R                  " X45        g )	Nr   Fr   Trh  r   r   rY   )r4   rl   insertr,   r   ru   r:   r;   r5   zipr   )r?   r   r   r   r   arrayss         r   test_groupby_as_index_cythonr    s   D ll3l/G\\t\,F||SE"''T':HOOAsHNN+H.HN&+ llC:l6G\\^F||S#J',,.H#x~~,,-.FOOAsF1I&OOAsF1I&H.HN&+r   c                     U R                  SS/SS9nUS   R                  [        5      nUR                  [        5      R                  S S 2/ SQ4   n[        R
                  " X#5        g )Nr   r   Fr   r)   r-   )r4   ry   ru   r   r:   r;   r?   r   r   r   s       r   #test_groupby_as_index_series_scalarr    sZ    jj#sej4G S\c"F{{3##A$67H&+r   c                    Sn[         R                  " [        US9   UR                  S SS9  S S S 5        SnSn[         R                  " [        US9   [
        R                  " [        US9   U R                  S SS	S
9  S S S 5        S S S 5        g ! , (       d  f       Ni= f! , (       d  f       N(= f! , (       d  f       g = f)Nz(as_index=False only valid with DataFramerW   c                 "    U R                  5       $ r[   r?  rQ   s    r   rS   .test_groupby_as_index_corner.<locals>.<lambda>  s
    QYY[r   Fr   z$as_index=False only valid for axis=0r_  c                 "    U R                  5       $ r[   )lowerrQ   s    r   rS   r    s
    r   rY   )r   r   )r}   r~   r  r4   
ValueErrorr:   rv   rw   )r?   r   r   r9  s       r   test_groupby_as_index_cornerr    s    
4C	y	,


(5
9 
- 1C<H	z	-''XFJJ*UJC G 
.	- 
-	, GF 
.	-s/   BB3-B" B3
B"
B0	,B33
Cc            
      n   [        [        R                  R                  S5      R	                  S5      [        [        S5      [        S9[        SSSS9S	9n U R                  S
 S S /5      nUR                  5       n[        R                  " U R                  UR                  5        Sn[        R                  " [        US9   U R                   R                  S S S /SS9nS S S 5        UR#                  S 5      n[        R$                  " UR&                  U R(                  5        [        R                  " U R                   R                  UR                  5        UR#                  S 5      n[        R                  " U R                   R                  UR                  5        g ! , (       d  f       N= f)Nr%   r   r   r   r   rf   r   r   r   c                     U R                   $ r[   r   rQ   s    r   rS   +test_groupby_multiple_key.<locals>.<lambda>  r   r   c                     U R                   $ r[   r   rQ   s    r   rS   r    r  r   c                     U R                   $ r[   r  rQ   s    r   rS   r    r  r   r_  rW   c                     U R                   $ r[   r   rQ   s    r   rS   r    s    qvvr   c                     U R                   $ r[   r   rQ   s    r   rS   r        r   c                     U R                   $ r[   r  rQ   s    r   rS   r    s    AEEr   rY   r   c                 "    U R                  5       $ r[   r\   rQ   s    r   rS   r    
    !%%'r   c                 "    U R                  5       $ r[   r\   rQ   s    r   rS   r    r  r   )r	   r8   rq   rr   r   r   r5   r	  r   r4   r]   r:   assert_almost_equalr   rv   rw   r   ry   assert_index_equalr,   r   )r?   r   r   r9  s       r   test_groupby_multiple_keyr    s8   	
		a 009d6l&1r<
B
 jj*,=OPGKKME299ell3<H		#	#M	B$$,,0/B  
 
C
 KK)*E%++rzz2244;;5KK)*E244;;5 
C	Bs   !F&&
F4c                     U R                  5       n [        R                  U S'   U R                  SS/5      R	                  5       nU R                  SS/5      R	                  5       n[        R                  US'   [
        R                  " X5        g )Nbadr   r   )r1   r8   r   r4   rl   r:   r;   )r?   r   r   s      r   test_groupby_multi_cornerr    sk    	BBuIJJSz"'')Ezz3*%**,HffHUO%*r   c                    U R                  S5      n[        R                  " S5      n[        R                  " [
        US9   UR                  S5        S S S 5        [        R                  " [
        US9   UR                  5         S S S 5        U R                  S S 2/ SQ4   n [        R                  " 5       U S'   U R                  S5      nSn[        R                  " [
        US9   UR                  S5        S S S 5        [        R                  " [
        US9   UR                  5         S S S 5        S	n[        R                  " [        US9   U R                  S
S
SSS.SS9nS S S 5        Sn[        R                  " [
        US9   UR                  S 5        S S S 5        g ! , (       d  f       GNV= f! , (       d  f       GN6= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nr   r  rW   rl   r   r)   r   r  z/datetime64 type does not support sum operationsr]   r_  r   rY   )r   r)   r   r  r   z does not support reduction 'sum'c                 "    U R                  SSS9$ )Nr   Frh  r\   rQ   s    r   rS   )test_raises_on_nuisance.<locals>.<lambda>  s    aeeAEe:r   )r4   r  r  r}   r~   r  ry   rl   r   r   nowr]   r:   rv   rw   )r?   r   r   r9  s       r   test_raises_on_nuisancer    s]   jjoG
))<
=C	y	,F 
-	y	, 
- 
?"	#BllnBsGjjoG
;C	y	,E 
-	y	, 
- =H		#	#M	B**1111=A*F 
C
,C	y	,:; 
-	,' 
-	,	,	, 
-	,	,	,
 
C	B 
-	,sH   F"4F4&GGG(G9"
F14
G
G
G%(
G69
Hagg_functionr  minc                 ^   U R                  S5      n[        X!5      " 5       nUR                  5       n[        U R                  U S   S:H  S4   U5      " 5       UR                  S'   [        U R                  U S   S:H  S4   U5      " 5       UR                  S'   [        R
                  " X45        g )Nr   r   r   )r   r   r   )r   r   )r4   rG  r1   r   r:   r;   )r?   r  r   r   r   s        r   test_keep_nuisance_aggr    s     jjoGW+-F{{}H&rvvbg.>.C'DlSUHLL&rvvbg.>.C'DlSUHLL&+r   )r]   rl   prodr7   varsemmedianri  c                    U R                  S5      nSnX;   ac  U(       d\  US;   a	  [        nSnO [        n[        R                  " SU S35      n[
        R                  " XVS9   [        X15      " US9  S S S 5        g [        X15      " US9nU(       d  US	:X  a  / S
QnO/ SQn[        U R                  S S 2U4   R                  S5      U5      " US9n	[        R                  " Xy5        g ! , (       d  f       g = f)Nr   )r
  r7   r  rl   r	  r  )r7   r  z(could not convert string to float: 'one'zagg function failed [how->z,dtype->rW   rh  r]   r   r   )r4   r  r  r  r  r}   r~   rG  r   r:   r;   )
r?   r  ri  r   no_drop_nuisanceklassr   r   r   r   s
             r   test_omit_nuisance_aggr     s     jjoGF' >)E<CE))8hOPC]]5,G*E -, /\J 5*G%G266!W*-55c:LI%
 	f/ -,s   #C((
C6c                     U R                  S5      n[        R                  " [        SS9   UR	                  5         S S S 5        g ! , (       d  f       g = f)Nr   zcould not convertrW   )r4   r}   r~   r  skew)r?   r   s     r   $test_raise_on_nuisance_python_singler  "  s3    jjoG	z)<	= 
>	=	=s   A
Ac                 d   U R                  SS/5      n[        R                  " S5      n[        R                  " [
        US9   UR                  S5        S S S 5        [        R                  " [
        US9   UR                  5         S S S 5        g ! , (       d  f       NA= f! , (       d  f       g = f)Nr   r   r  rW   rl   )r4   r  r  r}   r~   r  ry   rl   )three_groupr   r   s      r   &test_raise_on_nuisance_python_multipler  )  ss    !!3*-G
))<
=C	y	,F 
-	y	, 
-	, 
-	,	,	,s   B6B!
B!
B/c           	         [        [        R                  " / SQ5      [        R                  " / SQ5      SS/S-  [        R                  R	                  S5      R                  S5      [        R                  R	                  S5      R                  S5      S.5      nUR                  S	S
/5      nUSS/   R                  S5      nUR                  SS9n[        R                  " X45        U SS R                  SS9nUR                  S 5      nUS   R                  S5      n[        R                  " US   U5        UR                  R                  S:X  d   eg )Nro  rp  r   r   rL   r%   rn  )ru  rv  k3rs  rt  ru  rv  rs  rt  rl   Trh  r$   r   r   c                 "    U R                  5       $ r[   rO  rQ   s    r   rS   *test_empty_groups_corner.<locals>.<lambda>D  s
    AFFHr   r   r   )r	   r8   r   rq   rr   r   r4   ry   rl   r:   r;   r{   rz   r,   rk   )r   r?   r   r   r   r   agged_As          r   test_empty_groups_cornerr  2  s%   	((9:((9:%.1$))''*::1=))''*::1=	

B jj$&GdD\"&&v.F|||.H&+.q3;;!;DGMM,-Ecl  (G5:w/;;w&&&r   c                      [        S/5      n Sn[        R                  " [        US9   U R	                  S 5        S S S 5        g ! , (       d  f       g = f)Nr   z5unsupported operand type\(s\) for \+: 'int' and 'str'rW   c                     U S-   $ )Nr   rP   rQ   s    r   rS   $test_nonsense_func.<locals>.<lambda>N  s    QYr   )r	   r}   r~   r  r4   )r?   r   s     r   test_nonsense_funcr!  J  s9    	A3B
BC	y	,


&' 
-	,	,s   A
Ac                    U R                   nSUS'   [        R                  " / SQ5      [        R                  " / SQ5      /n[        R                  " S5      n[
        R                  " [        US9   UR                  U5      R                  S5        S S S 5        UR                  SS9R                  U5      R                  S5      n[        UR                  [        5      (       d   eS n[
        R                  " [        S	S9   UR                  U5      R                  U5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)
Npeekaboo)bazre   r   r   rY   r  rW   rl   r  c                 X    U R                   S:X  a  [        S5      eU R                  5       $ )N)r   rd   Test error message)rk   r  r]   )r>   s    r   aggfun5test_wrap_aggregated_output_multindex.<locals>.aggfun\  s&    88~%011wwyr   r'  )r   r8   r   r  r  r}   r~   r  r4   ry   r  r  r   r   rx   )r   r?   r  r   r   r(  s         r   %test_wrap_aggregated_output_multindexr*  Q  s    	)	+	+B!B|HHY)!45D
))<
=C	y	,


4V$ 
-GGNG+33D9==fEEemmZ0000
 
y(<	=


4""6* 
>	= 
-	, 
>	=s   1!D.!D?.
D<?
Ec                 `   U R                  SS9R                  5       nUR                  R                  S:X  d   eU R                  SS9R                  5       nUR                  R                  S:X  d   eU S   R                  SS9R                  5       nUR                  R                  S:X  d   eg )Nr   r  r   rY   secondr   )r4   r  r,   rk   )r   r   s     r   test_groupby_level_applyr-  e  s    -55A5>DDFF<<'''-55A5>DDFF<<(((-c2:::CIIKF<<'''r   c                    U R                  5       nSSSSS.nSSSS.nU R                  USS9R                  5       nU R                  USS9R                  5       n[        R                  " US    Vs/ s H  obR                  U5      PM     sn[        R                  S9n[        R                  " US    Vs/ s H  ocR                  U5      PM     sn[        R                  S9nU R                  U5      R                  5       n	U R                  U5      R                  5       n
S	u  U	R                  l        U
R                  l        [        R                  " XI5        [        R                  " XZ5        g s  snf s  snf )
Nr   rY   )r   r   r$  qux)rd   re   r   r  r   r   r,  )r   r,  )r  r4   r]   r8   r   rz  rF   r,   rk   r:   r;   )r   	deleveledmapper0mapper1result0r:  rR   mapped_level0mapped_level1	expected0	expected1s              r   test_groupby_level_mapperr8  o  s@   0<<>I!A6GA.G.66wa6HLLNG.66wa6HLLNGHH!*7!34!3AQ!34BHHM HH!*8!45!4AQ!45RXXM 188GKKMI088GKKMI1B.IOO)//.'-'- 	5 	6s   1E26E7c            	      D   [        / SQ[        / SQSS95      n [        / SQ[        [        SS5      SS95      nU R                  SS	9R	                  5       n[
        R                  " X!5        U R                  S/S	9R	                  5       n[
        R                  " X!5        U R                  S
S	9R	                  5       n[
        R                  " X!5        U R                  S
/S	9R	                  5       n[
        R                  " X!5        Sn[        R                  " [        US9   U R                  SS	9  S S S 5        [        R                  " [        US9   U R                  SS	9  S S S 5        Sn[        R                  " [        US9   U R                  / S	9  S S S 5        Sn[        R                  " [        US9   U R                  SS/S	9  S S S 5        [        R                  " [        US9   U R                  SS/S	9  S S S 5        Sn[        R                  " [        US9   U R                  S/S	9  S S S 5        g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)N)rY   r%   rL   rf   r   r$   rg   rn  )rY   r%   rL   rY   r   r$   r%   rn  r   r  )r     rL   r   r$   rn  rY   r_   r   r  r*   z2level > 0 or level < -1 only valid with MultiIndexrW   zNo group keys passed!z*multiple levels only valid with MultiIndex)
r   r   r6   r4   r]   r:   rz   r}   r~   r  )sr   r   r   s       r   test_groupby_level_nonmultir=    s   )51IPU+VWA*E%1+E,JKHYYQY##%F6,YYaSY!%%'F6,YYRY $$&F6,YYbTY"&&(F6,
>C	z	-				 
.	z	-				 
.
!C	z	-				 
.
6C	z	-			A	 
.	z	-			A	 
.
>C	z	-				 
.	- 
.	-	-	- 
.	- 
.	-	-	- 
.	-sH   "H;II9I/,J !J;
I

I
I,/
I= 
J
Jc                      [        [        R                  " S5      S-  / SQS9n [        S5      nU R                  SS9R	                  5       n[
        R                  " X!5        g )Nr         ?       @)r   r   rY   rY   r   r,   )r?  y      @      $@r   r  )r   r8   r9   r4   r]   r:   rz   )r  r   r   s      r   test_groupby_complexrA    sM    BIIaLF+<@A'(HYYQY##%F6,r   c                      [        SSS.SSS.SSS./5      n U R                  S5      R                  5       n[        S/S//[        SS/SS	9[        S
/5      S9n[        R
                  " X5        g )Nr%   r?  r  rY         ?      ?r  r        ?r  r  r,   r   )r	   r4   rl   r   r:   r;   r  s      r   test_groupby_complex_meanrF    s~    	&!&!&!	

B ZZ_!!#F
f(s3seH
 &+r   c           	         [        SSS.SSS.SSS./5      nU (       a  SO[        n[        [        R                  " / SQ[        R                  S9[        / S	QS
S9[        S/US9S9nUR                  S
SS9R                  5       n[        R                  " XC5        [        / SQS
S9Ul
        UR                  S
SS9R                  5       n[        R                  " XC5        g )NrY   rC  r  r?  r   string[pyarrow_numpy])rY   rY   rY   r   )rC  r?        ?        r  r  r  rE  Fsort)rI  rC  r?  T)r	   r	  r8   r   rF   r   r4   r  r:   r;   r,   )using_infer_stringr?   rE   r   r   s        r   test_groupby_complex_numbersrM    s    	&!&!!	

B (:#vE
"((+2=se5)H
 ZZ%Z(..0F&+ 9DHNZZ$Z'--/F&+r   c                  R   [        / SQ[        / SQ5      S9n [        / SQ[        / SQ5      S9nU R                  U5      nUR                  5       nU R                  UR	                  U R
                  5      R                  5      R                  5       n[        R                  " X45        g )N)      @g      "r  g      Y@g      g     K@g@)r  r  r%  dr   r   r   r+   )r  r  r  rO  rO  g      @)r  r  rP  r   r   h)	r   r   r4   rl   rt   r,   rz  r:   rz   )s1s2r   r   r  s        r   'test_groupby_series_indexed_differentlyrT    s    	078
B 
&e4R.S
B jjnGLLNE
**RZZ)--
.
3
3
5C5&r   c                     [        [        / SQ/ SQ/6 5      n [        R                  " U 5      n[        R                  " / SQ5      n[	        [
        R                  R                  S5      R                  S5      XS9nUR                  SS9R                  5       n[        R                  " UR                  U5        S	n[        R                  " [        US
9   UR                  SSS9nS S S 5        WR                  5       n[        R                  " UR                   UR                   5        UR                  SS9R#                  S5      n[        R                  " UR                  U5        UR                  SS9R%                  S 5      n[        R                  " UR                  U5        [        R                  " [        US
9   UR                  SSS9nS S S 5        UR#                  S 5      n[        R                  " UR                  ['        SS/5      5        [        R                  " UR                   UR                   5        UR)                  S5      u  pxSUS'   UR                  SS9R                  SS9n[        R                  " UR                  UR                  S S 5        g ! , (       d  f       GN= f! , (       d  f       N= f)N)r   r   r$  r$  r   r   r/  r/  )rd   re   rd   re   rd   re   rd   re   ))r   cat)r   dog)r   rV  )r   rW  r%   )r   r   rE  r   r  r_  rW   rY   )r   r   rl   c                 "    U R                  5       $ r[   rO  rQ   s    r   rS   0test_groupby_with_hier_columns.<locals>.<lambda>  s
    r   c                 $    U R                  S5      $ )NrY   rO  rQ   s    r   rS   rY  
  s    affQir   r   r   r   )r   r   Trh  r*   )r5   r  r   r  r	   r8   rq   rr   r   r4   rl   r:   r  r   rv   rw   r,   ry   r{   r   	sortlevel)	tuplesr,   r   r?   r   r9  r@   sorted_columns_s	            r   test_groupby_with_hier_columnsr_    s'   HH	
F ""6*E$$@G 

		a 008
B ZZaZ %%'F&..'2<H		#	#M	BZZaaZ( 
CWWYF&,,1ZZaZ $$V,F&..'2ZZaZ &&'9:F&..'2		#	#M	BZZaaZ( 
CVV'(F&..%c
*;<&,,1  ))!,NBzNZZaZ %%4%8F&.."**Sb/:+ 
C	B 
C	Bs   J&J8&
J58
Kc                     U R                  U S   R                  5      nUR                  5       nU R                  U S   R                  S 5      5      R                  5       n[        R
                  " X#5        g )Nr   )r4   r   r]   r  r:   r;   r  s       r   test_grouping_ndarrayra    sU    jjC(G[[]Fzz"S'.../335H&+r   c                      [        / SQSS9n [        / SQ/ SQ/ SQ/ SQ/ SQS	.U S
9nUR                  / SQ5      nUR                  S5      nUR	                  5       n[
        R                  " X45        g )Nr   rY   r%   rL   r   r,   r  )foo1rd  foo2rd  foo3)bar1bar2rh  rg  rg  )baz1ri  ri  baz2rj  )spam2spam3rk  spam1rm  )rg   rh   (   r  <   )r   r   r$  spamr   r+   )r   r   r$  rp  rl   )r   r	   r4   ry   rl   r:   r;   )r,   r   r   r   r   s        r   test_groupby_wrong_multi_labelsrq    si    /0E;;;A(	
 	D ll89G[[ F||~H&+r   c                    U R                  U S   5      R                  SS9nU R                  U S   SS9R                  SS9nUR                  R                  S:X  d   eSU;   d   eU R                  U S   U S   /5      R                  5       nU R                  U S   U S   /SS9R                  5       nUR                  R                  S:X  d   eSU;   d   eSU;   d   eg )Nr   Trh  Fr   r   r   r   )r4   rl   r,   rk   r(  )r?   r   r;  s      r   test_groupby_series_with_namert  0  s    ZZ3 %%4%8FjjC5j166D6IG<<###'>>ZZC"S'*+002Fjj"S'2c7+ej<AACG<<+++'>>'>>r   c                     U R                  S5      S   nUR                  5       R                  S:X  d   eUR                  5       R                  S:X  d   eS nUR	                  U5      R                  S:X  d   eg )Nr   r)   c                 4    [         R                  " U 5      S-  $ rp   )r8   r]   rQ   s    r   rS   .test_seriesgroupby_name_attr.<locals>.<lambda>C  s    Qr   )r4   r  rk   rl   ry   )r?   r   testFuncs      r   test_seriesgroupby_name_attrry  =  sj    ZZ_S!F<<>#%%%;;=$$$&H::h$$+++r   c                     [        / SQ/ SQ[        R                  R                  S5      R	                  S5      S-   [        R
                  " S5      S.5      n U R                  S/5      R                  R                  5       nU R                  R                  U R                  5      R                  5       n[        R                  " X!5        g )Nr   )rd   rd   re   re   re   re   rd   re   r%   r   r  r   r   )r	   r8   rq   rr   r   r9   r4   r   r  r   r:   rz   r?   r   r   s      r   test_consistency_namer|  G  s     
II&&q)99!<sB1		

B zz3% ""((*HTT\\"$$%%'F6,r   c                    SS jnS nSn[         R                  " [        US9   U R                  S5      R	                  U5      nS S S 5        WR
                  R                  b   e[         R                  " [        US9   U R                  S5      R	                  US5      nS S S 5        UR
                  R                  S:X  d   e[         R                  " [        US9   U R                  S5      R	                  U5      nS S S 5        UR
                  R                  b   eg ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       NJ= f)Nc                     [        SSSS.US9$ )NrY   r%   rL   r  rl   	omissionsr  )r   )r?   rk   s     r   	summarize0test_groupby_name_propagation.<locals>.summarizeZ  s    11=DIIr   c                 >    [        SSSS.U R                  S   S   S9$ )NrY   r%   rL   r  r   r   r  )r   r3   r  s    r   summarize_random_name<test_groupby_name_propagation.<locals>.summarize_random_name]  s$     11=BGGAJsOTTr   r   rW   r   metricsr[   )r:   rv   r   r4   r{   r   rk   )r?   r  r  r   r  s        r   test_groupby_name_propagationr  X  s   JU DC		#	#$6c	B**S/''	2 
C??'''		#	#$6c	B**S/''	9= 
C??9,,,		#	#$6c	B**S/''(=> 
C??''' 
C	B 
C	B 
C	Bs#   !D!?"D2!E!
D/2
E 
Ec                  2   [        [        S5       V s/ s H  n [        R                  " S5      PM     sn 5      nUR	                  S5      nUR                  5       nUR	                  US   5      R                  5       n[        R                  " X45        g s  sn f )Nrf   r   )r	   r6   r8   r9   r4   rl   r:   r;   )rR   r?   r   r   r   s        r   test_groupby_nonstring_columnsr  o  sm    	5959aBIIbM95	6BjjmG\\^Fzz"Q% %%'H&+	 6s    Bc            	      (   [        / SQ// SQS9n [        SS//SS/[        S/SS	9S
9nU R                  S5      R                  5       n[        R
                  " X!5        U R                  S5      R                  5       n[        R
                  " X!5        g )Nri   )r   r   r   r  rY   r%   r   r   r   r  r   )r	   r   r4   r   r:   r;   r]   r{  s      r   test_groupby_mixed_type_columnsr  w  sy    	I;	6B1a&C85!3;OPHZZ_""$F&+ZZ_  "F&+r   c                  x   [         R                  " S5      n U R                  [         R                  5        [	        U S S 2S4   5      n[         R
                  " [        S5      S5      nUR                  U5      R                  [        R                  5      nUR                  5       R                  5       (       d   eg )N)r  r  r   rf   )r8   r)  fillr   r   tiler6   r4   ry   r  isnarW  )arrr  indsr   s       r   (test_cython_grouper_series_bug_noncontigr    s~    
((:
CHHRVV
QT
C7759b!D[[""6==1F;;=r   c                  D   [        S/S-  5      n [        [        R                  R	                  S5      R                  S5      U S S S2   S9n[        R                  R	                  S5      R                  SSS5      nUR                  U5      nS nUR                  U5        g )	N
aaaaaaaaaar  r%   r  r+   r   r$   c                 Z    [        [        [        [        U R                  5      5      5      $ r[   )ru   setmapidr,   rQ   s    r   rS   5test_series_grouper_noncontig_index.<locals>.<lambda>  s    #c#b!''*+,r   )	r   r   r8   rq   rr   r   r  r4   ry   )r,   r   r!  r   r   s        r   #test_series_grouper_noncontig_indexr    s    8*s"#EBII))!,<<R@cPQc
SFYY""1%..q!R8F nnV$G 	-AKKNr   c                     [        [        S5      5      n [        R                  " / SQSS9nS nS nU R	                  U5      nUR                  U5      nUR                  [        R                  :X  d   e[        UR                  S   [        5      (       d   eUR                  U5      nUR                  [        R                  :X  d   e[        UR                  S   [        5      (       d   eg )Nr$   )r  r  r%  rP  r   r   r   c                 F    [        [        U R                  5       5      5      $ r[   )r   strrl   rQ   s    r   convert_fast>test_convert_objects_leave_decimal_alone.<locals>.convert_fast  s    s1668}%%r   c                     [        U R                  R                  5      S:  d   e[        [	        U R                  5       5      5      $ r   )ru   r   baser   r  rl   rQ   s    r   convert_force_pureDtest_convert_objects_leave_decimal_alone.<locals>.convert_force_pure  s2    188==!A%%%s1668}%%r   r   )r   r6   r8   r   r4   ry   rE   object_r  r3   r   )r<  r!  r  r  r   r   s         r   (test_convert_objects_leave_decimal_aloner    s    uQxAXX/s;F&&
 iiG[[&F<<2::%%%fkk!ng....[[+,F<<2::%%%fkk!ng....r   c            	      R   [        / [        R                  " SSS9S.5      n U S   R                  [        R                  :X  d   eU R                  S5      R                  5       n[        / S[        R                  S9n[        S[        / USS905      n[        R                  " XS	S
9  g )Nr   rF   r   )rR   r6   rR   rk   rE   r6   rM   T)	by_blocks)r	   r8   r9   rE   rH   r4   r   r   r   r:   r;   )r?   r   	exp_indexr   s       r   "test_groupby_dtype_inference_emptyr    s    	bii&AB	CBc7==BJJ&&&ZZ_""$Fbs"**5I'6"IW#MNOH&d;r   c                      [        S/S/S/S.5      n U R                  SS/5      S   R                  5       n[        S/[        R
                  " S/S//SS/S9SS9n[        R                  " X5        g )	NrY   l    4;PU  )r   r,  r   r   r,  r   r  r  )r	   r4   r  r   r   from_productr:   rz   r  s      r   $test_groupby_unit64_float_conversionr    s|    	aSQC;O:PQ	RBZZ(+,W599;F	!qc
7H2EFH
 6,r   c                    U R                  [        U S   5      5      R                  SS9nU R                  U S   5      R                  SS9n[        R                  " XSS9  [
        R                  " [        SS9   U R                  [        U S   S S 5      5        S S S 5        [        S	S
/SS/[        R                  R                  S5      R                  S5      S.5      n U R                  SS/5      R                  5       nU R                  U S   U S   /5      R                  5       S/   ng ! , (       d  f       N= f)Nr   Trh  Fr   z^'foo'$rW   r*   r   rY   rL   r   r%   )r   r   valr   r   r  )r4   r5   rl   r:   r;   r}   r~   KeyErrorr	   r8   rq   rr   r   r  s      r   "test_groupby_list_infer_array_liker    s   ZZRW&+++>Fzz"S'"''T':H&>	xz	2


43%& 
3 
q6q699((+;;A>	

B ZZ',,.Fzz2e9bi01668%AH 
3	2s   :!D//
D=c                  4   Sn [        [        S5      SU S9n[        SS/SS//S	S
/US9nUR                  [	        SU S9S	/5      R                  5       nUR                  UR                  S	/5      R                  [        5      n[        R                  " X45        g )Nr<  z2015-09-29T11:34:44-0700r%   )startr#   r   r   rf   r      metricr   r   r   )r   r   )r   r   r	   r4   r
   rl   r*  r,   r   r  r:   r;   )r   r,   r?   r   r   s        r   $test_groupby_keys_same_size_as_indexr    s    D23QTE 
S"IRy)Hh3Gu	UBZZqt4h?@EEGF||RXXx0188?H&+r   c                     Sn [        [        R                  R                  S5      R	                  S5      [        S5      S9n[        R                  " [        U S9   UR                  S5        S S S 5        [        [        R                  R                  S5      R	                  S5      [        S5      S9n[        R                  " [        U S9   UR                  S5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)	Nz^'Z'$r%   )rY   r   r   r  rW   Z)r%   r   )
r	   r8   rq   rr   r   r5   r}   r~   r  r4   )r   df1r8  s      r   test_groupby_one_rowr    s    
C

		a 008$v,C 
xs	+C 
,

		a 008$v,C 
xs	+C 
,	+ 
,	+
 
,	+s   C(C9(
C69
Dc                  `	   [        [        R                  R                  S5      R	                  S5      [        R
                  [        S5      [        R
                  [        S5      [        R
                  [        S5      [        R
                  [        S5      /[        R
                  S[        R
                  S[        R
                  S[        R
                  S/S.5      n U R                  S5      n[        S	S
/5      [        SS/5      /n[        UR                  R                  5       5      n[        U5      S:X  d   e[        X25       H)  u  pE[        R                  " UR                  U   U5        M+     [        R                   " UR"                  R$                  S   R&                  U 5        UR(                  S:X  d   e[        S5      [        R*                  " S	S
/[        R,                  S9[        S5      [        R*                  " SS/[        R,                  S90nUR.                   H)  n[        R0                  " UR.                  U   X$   5        M+     [        R                   " UR3                  [        S5      5      U R4                  S	S
/   5        [        R                   " UR3                  [        S5      5      U R4                  SS/   5        [6        R8                  " [:        SS9   UR3                  [<        R>                  5        S S S 5        [        [        R
                  [        R
                  [        R
                  /[<        R>                  [<        R>                  [<        R>                  /S.5      nUS   R@                  S:X  d   eUS   R@                  S:X  d   eS H  nUR                  U5      nUR                  0 :X  d   eUR(                  S:X  d   eUR.                  0 :X  d   e[6        R8                  " [:        SS9   UR3                  [        R
                  5        S S S 5        [6        R8                  " [:        SS9   UR3                  [<        R>                  5        S S S 5        M     g ! , (       d  f       GNt= f! , (       d  f       Nf= f! , (       d  f       GM  = f)Nr%   r   z
2013-01-01z
2013-02-01r  r  )r   dtr  r  rY   r_   rL   r$   r   z2013-01-01 00:00:00r   z2013-02-01 00:00:00z^NaT$rW   )r   natr   rH   r  zdatetime64[ns]z^nan$)!r	   r8   rq   rr   r   r   r   r4   r   sortedrS  r  ru   r  r:   r  r;   _grouperr  r  ngroupsr   intprT  assert_numpy_array_equalr  r3   r}   r~   r  r.   r2   rE   )r?   r   r   r  r   r   nan_dfr   s           r   test_groupby_nat_excluder    s_   	ii++A.>>qA,',',','	 FFCbffc2663G	

B  jjGq!fuaV}-H'..%%'(Dt9>>D# 	gnnQ/3 $ '**44Q7;;R@??a 	'("((Aq6*I'("((Aq6*IH
 __
##GOOA$6D  '++Il,CDbggqRSfoV'++Il,CDbggqRSfoV	xx	0"&&! 
1 ("&&"&&"&&1IJF %=)+++%="2222..%~~###!###"$$$]]884bff% 5]]884bff% 54  
1	0 5444s$   - Q: R R:
R	
R	
R-	c                      [        [        R                  [        R                  /[        R                  [        R                  /SS/S.5      n U R                  SS/5      R                  nU0 :X  d   eg )NrY   r%   r6  r  r  )r	   r8   r   r4   rT  r?   r   s     r   #test_groupby_two_group_keys_all_nanr  9  sU    	"&&"&&)0@1vN	OBZZc
#++FR<<r   c                  p   [        [        S5      S9n SS/U S'   SS/U S'   SS/U S	'   S
S/U S'   U R                  S/5      R                  SS9n[        R
                  " SS/SS//5      n[        R                  " UR                  [        SS	/5      5        [        R                  " UR                  U5        g )Nr%   r+   g1g2r   r   zerosrY   r  l1l2labelTrh          r  )r	   r6   r4   rl   r8   r   r:   r  r   r   r  r   )rP  tmp
res_valuess      r   test_groupby_2d_malformedr  @  s    a!AAgJQAgJAAfIAgJ
))WI

#
#
#
6CC:Sz23J#++ugv->'?@

J7r   c            	         [         R                  " [         R                  " S5      [         R                  " S5      [         R                  " S5      45      n [         R                  " S5      n[        UU UU [         R                  R                  S5      R                  S5      S.5      nUR                  / SQ5      R                  5       nUR                  / SQ5      R                  5       n[        U5      [        U5      :X  d   eg )Nr!   i  ia  r%   )r   r   r)   r   r  r   )r   r)   r   r   )
r8   concatenater9   r	   rq   rr   r   r4   r]   ru   )r   r   r?   r  r  s        r   test_int32_overflowr  L  s    
		%("))E*:BIIdOLMA
		%A	&&q)99%@	

B ::*+//1DJJ+,002Et9E
"""r   c                     [        / SQ/ SQ/ SQ[        R                  R                  S5      R	                  S5      S.5      n U / SQ   R
                   Vs/ s H  n[        U5      PM     nn[        R                  " U5      nU R                  / SQSS	9R                  5       n[        R                  " UR                  R
                  U/ S
Q   5        U / SQ   R
                   Vs/ s H  n[        U5      PM     nn[        R                  " U5      nU R                  / SQSS	9R                  5       n[        R                  " UR                  R
                  U5        U / SQ   R
                   Vs/ s H  n[        U5      PM     nn[        R                  " U5      nU R                  / SQSS	9R                  5       n[        R                  " UR                  R
                  U/ SQ   5        [        / SQ/ SQ[        R                  R                  S5      R	                  S5      S.5      n U R                  SS/5      S   nUR                  5       nS 4S jnU" XSS/S5        g s  snf s  snf s  snf )Nr   r   r$  )rL   r%   rY   ri   r%   rL   r  r  r%  rP  r6  TrJ  )rY   r%   r   )r%  r  r  )r  r%  r  )r%   rY   r   r   rY   r%   r   rY   r%   )r   r   r   rY   rY   rY   rn  )r  r  rP  r  r  rP  c                 "    U R                  5       $ r[   r\   rQ   s    r   rS   )test_groupby_sort_multi.<locals>.<lambda>  s
    AEEGr   c                    X   R                    Vs/ s H  n[        U5      PM     nn[        R                  " U5      nU" U R	                  U5      U   5      nUR                  5        H  u  pX   U	:X  a  M   e   g s  snf r[   )r   tuplecomasarray_tuplesafer4   rU  )
r?   r   r  fieldr   rowtupsr   r   r   s
             r   _check_groupby/test_groupby_sort_multi.<locals>._check_groupby  sn    &(hoo6osc
o6$$T*RZZ%e,-NN$DA9>!> % 7s   A<)r	   r8   rq   rr   r   r   r  r  r  r4   r]   r:   r  r,   )r?   r  r  r   rR   r   r  s          r   test_groupby_sort_multir  ^  s   	&&&q)99!<		

B #%_"5"<"<="<3E#J"<D=  &DZZdZ3779F 3 3T)_E"$_"5"<"<="<3E#J"<D=  &DZZdZ3779F 3 3T: 18898E!H8D9  &DZZdZ3779F 3 3T)_E	##&&q)99!<	

B jj#s$S)G[[]F2C " 2Sz3/A >
 >
 :s   I'&I,1I1c                     [        / SQ/ SQS-  S.5      n Sn[        R                  " [        US9   U R	                  SSS	9R                  S
 5      nS S S 5        [        R                  " WU 5        g ! , (       d  f       N&= f)N)r  r  r  r  r  r  r  r%   )r   rk   r   rW   r   FrU   c                     U $ r[   rP   rQ   s    r   rS   /test_dont_clobber_name_column.<locals>.<lambda>  s    Qr   )r	   r:   rv   r   r4   r{   r;   )r?   r   r   s      r   test_dont_clobber_name_columnr    sq    	.8MPQ8QR
B DC		#	#$6c	BEe4::;G 
C&"% 
C	Bs   !A22
B c            
         [        [        R                  R                  S5      R	                  S5      [        [        S5      [        S9[        SSSS9S	9n U R                  S
 SS9nUR                  S 5      nU VVs/ s H  u  p4UR                  SS9S S PM     nnn[        R                  " U5      n[        R                  " X&5        U S   R                  S SS9nUR                  S 5      nU VVs/ s H  u  p4UR                  5       S S PM     nnn[        R                  " U5      n[        R                   " X&5        g s  snnf s  snnf )Nr%   r   r   r   r   rf   r   r   r   c                     U R                   $ r[   r   rQ   s    r   rS   &test_skip_group_keys.<locals>.<lambda>  s    AGGr   FrU   c                 &    U R                  SS9S S $ )Nr   r  rL   sort_valuesrQ   s    r   rS   r    s    Q]]c]%:2A%>r   r   r  rL   c                     U R                   $ r[   r   rQ   s    r   rS   r    r  r   c                 (    U R                  5       S S $ rO   r  rQ   s    r   rS   r    s    Q]]_Ra%8r   )r	   r8   rq   rr   r   r   r5   r	  r   r4   r{   r  r.   r  r:   r;   rz   )tsfr   r   r   r   piecesr   s          r   test_skip_group_keysr    s%   

		a 009d6l&1r<C kk+k>G]]>?F>EFg
e3'+gFFyy H&+#h0UCG]]89F8?@*#e!"1%F@yy H6, G As   >E6Ec                     U S   R                  5       nS Ul        UR                  U S   5      R                  S5      nUR                  b   eg )Nr)   r   r]   )r1   rk   r4   ry   )float_framer<  r   s      r   test_no_nonsense_namer    sJ    CAAFYY{3'(,,U3F;;r   c                  
   [        [        R                  " S5      R                  SS5      5      n SU S'   / SQU S'   U R	                  S5      nUR                  SSS	.5      nUS   R                  [        R                  :X  d   eg )
NrK   rL   r   test)g?rD  g?flr]   r  )r  r%   )r	   r8   r9   reshaper4   ry   rE   rH   )rR   r   r   s      r   test_multifunc_sum_bugr    sp    "))A,&&q!,-AAfIAdGiiG[[&12F$<+++r   c                     S nS nU R                  S5      S   R                  U5      nU R                  S5      S   R                  U5      n[        U[        5      (       d   e[        R
                  " X45        g )Nc                 D    U R                  5       U R                  5       S.$ Nr  r  r  r   s    r   r   (test_handle_dict_return_value.<locals>.f  s    yy{599;77r   c                 V    [        U R                  5       U R                  5       S.5      $ r   )r   r  r  r   s    r   r   (test_handle_dict_return_value.<locals>.g  s    eiik%))+>??r   r   r)   )r4   r{   r  r   r:   rz   )r?   r   r   r   r   s        r   test_handle_dict_return_valuer    sj    8@ ZZ_S!''*Fzz#s#))!,Hff%%%%6,r   grouperr   r   c                   ^^^ S nUU4S jmU4S jnU R                  TSS9nSn[        R                  " [        US9   UR	                  U5        S S S 5        UR                  T5        UR                  TTS.5        UR                  U5        US	   R	                  U5        US	   R                  T5        US	   R                  TU/5        US	   R                  U5        g ! , (       d  f       N= f)
Nc                 $    U R                   c   eU $ r[   r  r   s    r   r   test_set_group_name.<locals>.f  s    zz%%%r   c                   > U R                   c   eT(       aS  TS:X  aM  [        U R                  5      (       a3  [        R                  " [
        SS9   U R                  5         S S S 5        g U R                  5       $ ! , (       d  f       g = f)Nr   zdoes not supportrW   )rk   r   rE   r}   r~   r  r]   )r   r  rL  s    r   freduce$test_set_group_name.<locals>.freduce  sc    zz%%%'S._U[[5Q5Qy0BC		 DC 99; DCs   A;;
B	c                    > T" U 5      $ r[   rP   )rR   r  s    r   freducex%test_set_group_name.<locals>.freducex  s    qzr   FrU   r   rW   rj  r)   )r4   r:   rv   r   r{   rx   r|   )r?   r  rL  r   r  r   r   r  s    ``    @r   test_set_group_namer    s     jjUj3G DC		#	#$6c	Ba 
CgG'23aCLqCL7#CLGX./CL1 
C	Bs   C""
C0c                     ^ [        / SQ[        R                  " S5      S.5      n / mU4S jnSn[        R                  " [
        US9   U R                  SSSS	9R                  U5        S S S 5        / S
QnTU:X  d   eg ! , (       d  f       N= f)N)r   r   rY   rY   r%   r%   rn  r  c                 Z   > TR                  U R                  5        U R                  5       $ r[   )r  rk   r1   )r   r(  s    r   r   6test_group_name_available_in_inference_pass.<locals>.f  s    UZZ zz|r   r   rW   r  F)rK  rV   ri   )r	   r8   r9   r:   rv   r   r4   r{   )r?   r   r   expected_namesr(  s       @r   +test_group_name_available_in_inference_passr    s    	+"))A,?	@BE DC		#	#$6c	B


3Uu
5;;A> 
C NN"""	 
C	Bs   	!A??
Bc                 <   U R                  U S   R                  5      R                  5       nUR                  R                  b   eU R                  U S   R                  U S   R                  /5      R                  5       nUR                  R
                  S:X  d   eg )Nr   r   )NN)r4   r   r]   r,   rk   r(  r  s     r   test_no_dummy_key_namesr    s{    ZZ3'++-F<<$$$ZZCC89==?F<<---r   c                     [        SS/SS/// SQ/ SQ/SS/S9n [        / SQU S	9n[        SS/SS/// S
Q/ SQ/SS/S9n [        / SQU S	9nUR                  SS/SS9R                  5       n[        R
                  " X25        UR                  SS/SS9R                  5       n[        R
                  " X2R                  5       5        g )NrY   r%   )r   r   r   r   rY   rY   )rY   rY   r   r   r   r   r  r  r&  )r   rY   r%   rL   r   r$   r+   r%  )rY   r   r   r   r%   r   Fr   rK  T)r   r   r4   r   r:   rz   
sort_index)r,   mseriesmseries_resultr   s       r   #test_groupby_sort_multiindex_seriesr    s     AA!#56CjE
 'u5GAA	9'=c3ZE IU3N__C:E_:@@BF62__C:D_9??AF6#<#<#>?r   c                     Sn [        SSU S9n[        [        R                  " U 5      [        R                  " U 5      S.US9nSS jnUR	                  S 5      nUR                  S	U" [        R                  5      05      nUR                  S	U" [        R                  S
5      05      n[        R                  " XV5        g )N  z2012/1/15min)r  r   r#   )highlowr+   c                    ^ ^ UU 4S jnU$ )z.
Run an aggregate func on the subset of data.
c                    > U R                   U R                  R                  S 5         R                  5       nT(       a  X R                  S        [	        U5      S:X  a  g T" U5      $ )Nc                      U R                   S:  $ )Nr  )hourrQ   s    r   rS   Ytest_groupby_reindex_inside_function.<locals>.agg_before.<locals>._func.<locals>.<lambda>,  s    !&&2+r   r   )r   r,   r  dropnaru   )r   rP  fixfuncs     r   _funcGtest_groupby_reindex_inside_function.<locals>.agg_before.<locals>._func+  sP    (=>?FFHAZZ]#1v{7Nr   rP   )r+  r*  r,  s   `` r   
agg_before8test_groupby_reindex_inside_function.<locals>.agg_before&  s    
	 r   c                 X    [        U R                  U R                  U R                  5      $ r[   )r   r   r   r  rQ   s    r   rS   6test_groupby_reindex_inside_function.<locals>.<lambda>5  s    8AFFAGGQUU#Cr   r"  T)F)	r   r	   r8   r9   r4   ry   r  r:   r;   )r#   indr?   r.  r   closure_badclosure_goods          r   $test_groupby_reindex_inside_functionr5  !  s    G
:FG
DC	BIIg.ryy7IJRU	VB jjCDG++vz"&&'9:;K;;
2664(@ABL+4r   c                     [        / SQ/ SQ/ SQS.5      n U R                  SS/5      n U R                  SS/SS9nUR                  S	5      n[        R
                  " / S
QSS/S9n[        S/S/S//US/S9n[        R                  " X$5        g )N)r  r  r  r  )r%  r%  rP  r%  )rY   rY   rY   r$   )group1group2r   r7  r8  Tr  r]   ))r  r%  )r  rP  r  r%  r  r%   rY   r$   r   rE  )r	   r*  r4   ry   r   r  r:   r;   )r?   r   r   r[  r  s        r   $test_groupby_multiindex_missing_pairr:  <  s    	**!	

B 
x*	+B8X"6TBJ
..
C

 
 ,Xx4HC aS1#sO3	
BC##r   c                  Z   [         R                  " / SQSS/S9n [        / SQ/U S9nUR                  R	                  5       (       d   e[        / SQ/ SQ/ S	Q/S
9nUR                  SSS/SS9nUR                  5       nUR                  R	                  5       (       a   eUR                  S5      R                  5       n[        R                  " [        5         UR                  S5      R                  5       nS S S 5        [        R                  " UW5        [        / SQ/ SQ/ SQS.5      R                  SS/5      nUR                  R	                  5       (       a   eSSSS/4 H  nS H  nUR                  XgSS9R                  [        R                   5      nUn[        R                  " X45        UR#                  5       R                  XgSS9R                  [        R                   5      nUR#                  5       n[        R                  " X45        M     M     g ! , (       d  f       GN+= f)N))r   )b1c1)b2c2r  r%  r  rY   rL   r   r  r  )rY   r=  r>  rL   )rY   r?  r@  r   )r   r   r  rP  )r,   r   r   )r  r  r  r  rY   rY   r%   r%   rY   r%   rL   r   rR   r,  zrR   r,  r   rY   )FTF)r   rK  rV   )r   r  r	   r   _is_lexsortedpivot_tabler  r4   rl   r:   rv   r   r;   r*  r,   r{   drop_duplicatesr  )lexsorted_milexsorted_dfnot_lexsorted_dfr   r   r?   r   rK  s           r   %test_groupby_multiindex_not_lexsortedrL  Q  s    ))/SzL i[,?L--//// !$,>@R+S (33C:c 4  (335''557777##C(--/H		#	#$6	7!))#.335 
8(F+ 
"LI
ic
  xx%%''''QA!DZZe5ZIOO))F H!!(3 uEBy001 
 }}H!!(3 "   
8	7s    H
H*c                  *   [        [        S5      / SQS9n U R                  [        S5      5      nUR                  S 5      nU R                  / SQ   n[
        R                  " X#5        U S   nUR                  [        S5      5      nUR                  S 5      nUR                  / SQ5      n[
        R                  " X#5        U R                  R                  [        5      U l	        U R                  [        S5      5      nUR                  S	 5      nU R                  / SQ   n[
        R                  " X#5        U S   nUR                  [        S5      5      nUR                  S
 5      nUR                  / SQ5      n[
        R                  " X#5        g )NABCDE)r%   r   r%   rY   rY   r+   ababbc                     [        U 5      S:  $ rp   ru   rQ   s    r   rS   4test_index_label_overlaps_location.<locals>.<lambda>      A
r   rA  r   c                     [        U 5      S:  $ rp   rQ  rQ   s    r   rS   rR    rS  r   c                     [        U 5      S:  $ rp   rQ  rQ   s    r   rS   rR    rS  r   c                     [        U 5      S:  $ rp   rQ  rQ   s    r   rS   rR    rS  r   )r	   r5   r4   filterr3   r:   r;   rV  rz   r,   r   r  )r?   r   actualr   r>   s        r   "test_index_label_overlaps_locationrY    s0    
4=	8B


4=!AXX*+Fwwy!H&+
Q%CDM"AXX*+Fxx	"H6, xxu%BH


4=!AXX*+Fwwy!H&+
Q%CDM"AXX*+Fxx	"H6,r   c                  N   Sn [         R                  " U 5      n[        US-  SU-  SU-  S.5      n[        US-  S-  SU-  SU-  S.5      nUR                  S5      nUR	                  S5      nUR                  S5      nUR	                  S5      n[
        R                  " XW5        g )	Nrn  r%   r        @r6  r  r  rl   )r8   r9   r	   r4   r|   r:   r;   )nrR   r?   r8  r@   r   gb2r   s           r   "test_transform_doesnt_clobber_intsr^    s    	A
		!A	acAgC!G<	=B
!q&3,S1W37C
DC	CB\\&!F
++c
C}}V$H&+r   sort_columnintsfloatsstringsgroup_column
int_groupsstring_groupsc                   ^  [        / SQ/ SQ/ SQ/ SQ/ SQS.5      nUR                  T S9nUR                  U5      nU 4S jnS	n[        R                  " [
        US
9   UR                  U5        S S S 5        g ! , (       d  f       g = f)N)rL   rY   r   rY   r   rL   rL   rL   )rE  r  rE  r  r  r   r   r   )r   r_   r   r$   r%   rK   rY   rY   )gffffff@g333333@g@g333333g@皙?rg  r$   )rE  rP  r  r   wordword24247)rd  re  r`  ra  rb  r  c                 L   > [         R                  " X R                  TS95        g )Nr  )r:   r;   r  )rR   r_  s    r   	test_sort.test_groupby_preserves_sort.<locals>.test_sort  s    
a+!>?r   r   rW   )r	   r  r4   r:   rv   r   r{   )r_  rc  r?   r   rm  r   s   `     r   test_groupby_preserves_sortro    s{     
2E,=H	

B 
;	'B


< A@ DC		#	#$6c	B		 
C	B	Bs   A99
Bc                     [        [        [        R                  " 5       SSS9R	                  5       [        S5      S.5      n U R                  S5      R                  R                  U S'   U R                  S5      R                  R                  U S'   [        R                  " [        SS	9   U R                  5       R                  SSS
SS9  S S S 5        g ! , (       d  f       g = f)Nrg   MEr   )	eventDatethenamerr  r   r   z	'badname'rW   badnamer  )r,   r   r   aggfunc)r	   r   r   todaytolistr6   r*  r,   r   r   r}   r~   r  r  rG  r  s    r   !test_pivot_table_values_key_errorrx    s    	#HNN$4btLSSURy	

B k*0055BvJ,,{+1177BwK	x{	3
$$')W 	% 	
 
4	3	3s   +!C
C#r   r)   r  r   r  r  rY   z
US/Easternr'   
2016-01-01rL   r   r   Int64r   Float64boolean)boolintr  r  rV  dt64dt64tzperiodrz  r{  r|  )idsmethod)r  ry   r{   )r   idxminr  r  r]   r	  r  c                   ^^^^^^ S n[        T[        5      (       a  TS;   a  Sn[        TS   [        5      (       a  TS;   a  Sn[        TTTS.[	        S5      S9n	[        TS	5      (       a.  U	R                  TR                  :H  R                  5       (       d   eU	R                  S S n	U	R                  TS
US
S9U    mUUU4S jn
UUU4S jn[        U	R                  R                  S   [        R                  5      nU	R                  R                  S   R                  S:H  n[        T[        5      n[        T[        5      (       a  TR                  (       d  TS;   a  TS;   a  ST S3n[         nOST S3n["        n[$        R&                  " UUS9   U
" 5         S S S 5        TS;   a9  [        U [        5      (       a$  U
" SS9nU" 5       n[(        R*                  " UU5        g TS;   a  U(       d  U(       d  U(       a  U(       a  SnOU(       a  SnOSnTS:X  a  SR-                  US/5      n[$        R&                  " [         US9   U
" 5         S S S 5        [        U [        5      (       d  g TS:X  a  g U
" SS9nU	R/                  T5      /    nU(       a  U" 5       n[(        R*                  " UU5        g U
" 5       nU	R/                  T5      U    nTS;   a%  UR1                  U	R2                  R                  5      nUb  UR1                  U5      n[5        T5      S :X  a  TS   UR2                  l        [(        R*                  " UU5        g ! , (       d  f       GN= f! , (       d  f       GN= f)!N)r]   r	  rz  r   )r	  r]   rF   r-   ABCr  rE   F)rV   r)  observedc                  Z   > TS:X  a  [        TT5      " S0 U D6$ [        TT5      " T40 U D6$ )Nr  rP   )rG  )kwargsr@   r  r  s    r   
get_result&test_empty_groupby.<locals>.get_result  s6    V2r?,V,,2v&r4V44r   c                     > [        S/TR                  S9n [        T5      S:w  a  [        R                  " X /TS9nO[        U TS   S9nT(       a  [        / SS9nO/ n[        / X!S9nU$ )Nr   r   rY   r  r  rH  r   )r   rE   ru   r   r  r   r	   )levr[  r   r   r  rL  r   s       r    get_categorical_invalid_expected<test_empty_groupby.<locals>.get_categorical_invalid_expected#  sn    
 1#V\\2t9>))3*DAC $q'*CB&=>GGR<r   M)r  r  r  r   )r  r  zCannot perform z with non-ordered Categoricalz
Can't get z/ of an empty group due to unobserved categoriesrW   Trh  )r	  r]   r  z datetime64 type does not supportzPeriod type does not supportzcategory type does not supportr  |z!does not support reduction 'skew')r   r  rY   )r  r   r}  r	   r5   hasattrr   rE   rW  r3   r4   r.   PeriodDtypekindr   orderedr  r  r}   r~   r:   assert_equaljoinr*  r   r,   ru   rk   )r   r  r   r  r  using_array_managerr)  rL  override_dtyper?   r  r  is_peris_dt64is_catr   r  r   r   r@   s    ````  `           @r   test_empty_groupbyr    s   N N&,''B/,A &)T""r_'< 	f6:DK	PBvw		V\\)..0000	!B	DU6E	J7	SB5( 		q)2>>:FiinnQ$$+G,F 	6;''44#B4'DECErd"QRCE]]5,L - 33
7D8Q8QT2F79HOOFH-	$$f 846V|hh%HIJy4 5 gt,,v $6 <<-b1?AH1\F||D!'*H	!!??288>>2!??>2
4yA~"1gOOFH%o -,. 54s   M
M
M
M-c                     [        [        R                  R                  S5      R	                  S5      5      n U S   R                  [        R                  5      U S'   / SQU l        U R                  U S   SS9nSn[        R                  " [        US	9   UR                  S
 5      nS S S 5        WR                  U R                  :H  R                  5       (       d   eg ! , (       d  f       N== f)Nr%   )r   r   rL   r   rY   r%   r   rY   FrU   r   rW   c                     U $ r[   rP   rQ   s    r   rS   <test_empty_groupby_apply_nonunique_columns.<locals>.<lambda>  s    r   )r	   r8   rq   rr   r   r   rF   r   r4   r:   rv   r   r{   r   rW  )r?   r@   r   r   s       r   *test_empty_groupby_apply_nonunique_columnsr    s    	299((+;;FC	DBqELL"BqEBJ	BqEe	,B
CC		#	#$6c	Bhh{# 
CJJ"))#((**** 
C	Bs   C
C,c            	      `   [        / SQ/ SQ/ SQ/ SQS.5      n [        R                  " [        SS9   U / SQ   R	                  S5        S S S 5        U R	                  S5      S   R                  5       n[        S	/S[        S
/SS9S9n[        R                  " X5        g ! , (       d  f       N\= f)N)rY   rY   rY   rY   )r%   r%   r%   r%   )r  r  r  r%  z
('a', 'b')rW   r6  r  r%  r   rY   r  r  )
r	   r}   r~   r  r4   r]   r   r   r:   rz   r  s      r   test_tuple_as_groupingr    s    	$		

B 
x}	5
?##J/ 
6 ZZ
#C(,,.Fqc5!:+FGH6, 
6	5s   B
B-c            	         [        S[        S5      [        R                  " SS/SS//5      S9n [        R
                  " [        SS9   U R                  S5      R                  5         S S S 5        g ! , (       d  f       g = f)	NrY   rL   r%   r   rE  z
^\(7, 8\)$rW   )r_   r   )	r	   r6   r   r  r}   r~   r  r4   rl   r  s    r   test_tuple_correct_keyerrorr    s]    	1E!Hj.E.E1vPQSTvFV.W	XB	x}	5


6! 
6	5	5s    A11
A?c                  &   [        S/S//[        S/SS9[        SSSSS	9S
9n [        / SQ/ SQ/[        R                  " S/ SQS9[        SSSSS	9S
9nU R                  [        SS95      R                  SS/5      n[        R                  " X!5        g )NrY   r   mycolsr  
2018-01-01r%   r   dti)r#   r   rk   r   )rY   rY   rY   rY   rY   ))r   r]   r   )r   ohlcopen)r   r  r"  )r   r  r#  )r   r  close)r  NNr  )r   r]   r  )
r	   r   r   r   r  r4   r
   ry   r:   r;   r{  s      r   test_groupby_agg_ohlc_non_firstr    s    	
qc
ugH-qsG
B 	/*&& )	
 qsGH ZZS)*..v?F&+r   c                  F   [         R                  S4[        SSS5      S4[        SSS5      S4[        SSS5      S4/n [        R                  " U SS /S9n[        / S	QUS
9nUR                  SS9R                  5       n[        SS/SS/S
9n[        R                  " X45        g )Nr  i  rY   r%   r  rL   dater  )rL   r%         @r   r+   r  r[  r  )
r.   r2   r   r   r  r   r4   rl   r:   rz   )r   r  r>   r   r   s        r   test_groupby_multiindex_natr    s     
	$1	s#	$1	s#	$1	s#	F 
		vtn	=B
r
*C[[q[!&&(FsCjc
3H6,r   c                      [        [        S5      [        S5      5      n [        U SS/S9nSn[        R                  " [
        US9   UR                  / /5        S S S 5        g ! , (       d  f       g = f)Nrf   appler  r  z$Grouper and axis must be same lengthrW   )r  r6   r	   r}   r~   r  r4   )r   r?   r   s      r   test_groupby_empty_list_raisesr    sS    rE"I&F	6GS>	2B
0C	z	-


B4 
.	-	-s   A""
A0c                  "   SS/SS/SS//n / SQn[         R                  " XS9n[        SS/US	9nUR                  S
S/5      R	                  5       nS/S//n S
S/n[         R                  " XS9n[        S/US9n[
        R                  " XF5        g )NrR   r  r  r   )r   r,  thirdr  rY   r%   r@  r   r  rL   r+   )r   from_arraysr   r4   r]   r:   rz   )index_arrayindex_namesrir<  r   eir   s          r   8test_groupby_multiindex_series_keys_len_equal_group_axisr    s    :SzC:6K.K				?BQF"%AYY)*..0F53%.KG$K				?Bqc$H6,r   c                     [         R                  " SS/SS//SS/S9n [        / SQ/ S	QS
.U S9nUR                  [	        SS9S/5      nUR                  SS/5      nUR
                  UR
                  :X  d   eUR                  S[	        SS9/5      nUR                  SS/5      nUR
                  UR
                  :X  d   eg )Nr   r   r)   r   r  betar  )rY   r%   rY   r%   rC  rk  r+   r  )r   r  r	   r4   r
   rS  )r  r?   r   r   s       r   "test_groupby_groups_in_BaseGrouperr    s     
	 	 3*sCj!9'6AR	SB	<=R	HBZZw/89Fzz7F+,H==HOO+++ZZw!789Fzz67+,H==HOO+++r   
group_namerR   c                    [        [        R                  " S5      R                  SS5      / SQ/ SQS9nSUR                  l        SUR                  l        S	n[        R                  " [        US
9   UR                  U SS9nS S S 5        WR                  5       nUR                  R                  U 5      R                  5       R                  n[        R                  " XE5        / SQSS//n[        R                  " USS/S9n[        [        R                  " S5      R                  SS5      / SQUS9n[        R                  " [        US
9   UR                  U SS9nS S S 5        UR                  5       nUR                  R                  U 5      R                  5       R                  n[        R                  " XE5        g ! , (       d  f       GND= f! , (       d  f       Nz= f)Nr`   rL   r   r   rY   r   )rf   rg   rf   rg   rE  r,  rR   r_  rW   rY   r   )r   r$  r   rd   re   x1)	iterablesr(     rn  )r	   r8   r9   r  r,   rk   r   r:   rv   rw   r4   r]   r   r;   r   r  )r  r?   r9  r@   resultsr   r  r  s           r   test_groupby_axis_1r    sk    

		"a#9>N
B BHHMBJJO<H		#	#M	BZZ
Z+ 
C ffhGtt||J'++-//H', '7I		 	 9S$K	HB	299R=((A.i	LB		#	#M	BZZ
Z+ 
CffhGtt||J'++-//H', 
C	B 
C	Bs   1F?G?
G
Gzop, expectedshifttime2019-01-01 12:00:002019-01-01 12:30:00bfill2019-01-01 14:00:002019-01-01 14:30:00ffillc           	      J  ^ U m/ SQ[        S5      [        S5      S S [        S5      [        S5      /S.n[        U5      R                  U4S jS9nUR                  S	5      n[	        XQ5      " 5       n[        U5      R                  U4S
 jS9n[
        R                  " Xb5        g )N)r   r   r   r   r   r   r  r  r  r  )r  r  c                 N   > U R                   R                  R                  T5      $ r[   r  r  tz_localizerR   r(   s    r   rS   +test_shift_bfill_ffill_tz.<locals>.<lambda>O	  s    qvvyy/D/DR/Hr   )r  r  c                 N   > U R                   R                  R                  T5      $ r[   r  r  s    r   rS   r  S	  s    9N9Nr9Rr   )r   r	   assignr4   rG  r:   r;   )tz_naive_fixturer  r   r   r?   r   r   r(   s          @r   test_shift_bfill_ffill_tzr  	  s    \ 
B,+,+,+,+,

D 
4		%H		IBjjGW!#F"))/R)SH&+r   c                      [        S /SS.5      n U R                  S5      S   R                  S5      n[        [        R
                  /SS9n[        R                  " X5        g )NrY   )r   rR   r   rR   r]   r  )r	   r4   r|   r   r8   r   r:   rz   )r?   rX  r   s      r   test_groupby_only_none_groupr  W	  sR     
$a(	)BZZ_S!++E2FrvvhS)H6,r   c                      [        / SQ/ SQS9n U R                  SS9nUR                  5       n[        / SQ/ SQS9n[        R                  " X#5        g )N)r%   r$   rn  r   )r  r  r  rO  r+   r   r  )r%   g      @r   )r  r  rO  )r   r4   rl   r:   rz   )r>   r@   r   r   s       r   test_groupby_duplicate_indexr  a	  sD    
%9
:C	1	BWWYFk9H6,r   c                    [        S[        S5      SS/// SQS9nUS   R                  [        5      US'   US   R                  [        5      US'   UR	                  S	S
/5      nU S:X  a  SnOSnU S:X  a  [
        OS nSn[        R                  " XES9   UR                  S S R                  S	/5      R                  " U /UQ76 nS S S 5        [        R                  " XES9   UR                  S	/5      R                  " U /UQ76 R                  S S nS S S 5        U S;   a  WR                  [        5      n[        R                  " WW5        Sn[        R                  " XES9   US   R                  S S R                  S	/5      R                  " U /UQ76 nS S S 5        Sn[        R                  " XES9   US   R                  S	/5      R                  " U /UQ76 R                  S S nS S S 5        U S;   a  UR                  [        5      n[        R                  " Xg5        g ! , (       d  f       GNd= f! , (       d  f       GN)= f! , (       d  f       N= f! , (       d  f       Nu= f)NrY   rv  rL   r   )col_1col_2col_3col_4r   r   r  r  r  r  fillna)r  rP   %DataFrameGroupBy.fillna is deprecatedrW   r   )diffr  z"SeriesGroupBy.fillna is deprecated)r	   r   r   r~  r*  rw   r:   rv   r3   r4   r|   r  )transformation_funcrequestr?   argsr   warn_msgr   r   s           r   test_group_on_empty_multiindexr  k	  s7    
)G$a+,4
B W+$$S)BwKW+$$S)BwK	w(	)Bh&/8;=D6H		#	#D	9!$$gY/99:MUPTU 
:		#	#D	9::wi(223FNNSSTVUVW 
://??3'OOFH%3H		#	#D	9wKT"1WgYY +3 .23 	 
: 4H		#	#D	9wKWgYY*3-13 T"1 	 
: //??3'OOF%5 
:	9	9	9 
:	9 
:	9s0   1H! 1H3!4I34I!
H03
I
I
I$c                    [        SSSS9n[        SS/SS/SS/S.5      nS	UR                  l        Xl        UR                  U 5      nU(       d  UR                  nS
nOSn[        R                  " [        US9   UR                  USS9nS S S 5        WR                  5       n[        SS/SS/S.US9nSUR                  l        U(       d  UR                  n[        R                  " Xg5        US:X  a;  [        R                  " [        US9   U/    R                  USS9nS S S 5        U/    n	Ok[        R                  " [        US9   UR                  /    R                  USS9nS S S 5        UR                  /    R                  [         R"                  5      n	WR                  5       n
[        R                  " X5        g ! , (       d  f       GN== f! , (       d  f       N= f! , (       d  f       N= f)Nry  r%   r   )r#   rk   rY   rL   r   )rs  )r   r)   )r   r   )r   r$  rb  r_  rW   )r   r   )r   r   r+   r   )r   r	   r   r(  r,   _get_axis_numberr   r:   rv   rw   r4   nuniquerk   r;   r   r   r8   rH   )r   r  r?   axis_numberr   r@   r   r   r]  r  r   s              r   test_groupby_crash_on_nuniquer  	  s   
\15
9C	AQFAO	PB%BJJH%%d+KTTE;		#	#M	=ZZ[Z2 
>ZZ\F1vQF33?H!H::&+a''SAR&..k.;C Brl ''SA&&*$$+Q$?C B ll2%%bjj1
++-C##1 
>	= BA
 BAs$   :GGG$
G
G!$
G2c                      [        [        R                  " SS5      R                  SS5      [        S9n U R                  S/S9R                  5       n[        R                  " X5        g )Nr   rK   rL   r   r  )	r	   r8   r9   r  r  r4   rl   r:   r;   )r   r   s     r   test_groupby_list_levelr  	  sQ    1a00A6eDHQC(--/F&+r   zmax_seq_items, expected))r$   z({0: [0], 1: [1], 2: [2], 3: [3], 4: [4]})r   z%{0: [0], 1: [1], 2: [2], 3: [3], ...})rY   z{0: [0], ...}c                    [        [        R                  R                  S5      R	                  S5      5      nUR
                  US'   [        R                  " SU 5         UR                  S5      R                  R                  5       nX1:X  d   eUR                  [        R                  " UR                  5      5      R                  R                  5       nX1:X  d   e S S S 5        g ! , (       d  f       g = f)Nr%   )r$   rY   r  zdisplay.max_seq_items)r	   r8   rq   rr   r   r,   r.   option_contextr4   rS  __repr__r   r  )max_seq_itemsr   r?   r   s       r   test_groups_repr_truncatesr  	  s     
299((+;;FC	DBhhBsG			2M	BC''002!!!BHHRTTN+22;;=!!! 
C	B	Bs   A?C''
C5c                  B   [        SSSS.SSSS./5      n U R                  SS/5      n U R                  SS/5      nUR                  nS[        R
                  " S	S/[        R                  S
90n[        U5      S:X  d   eSnX$   X4   :H  R                  5       (       d   eg )NrY   r%   c   r6  X   r  r  r   r   r   )	r	   r*  r4   rT  r8   r   rF   ru   rW  )r?   r   r   r   r   s        r   6test_group_on_two_row_multiindex_returns_one_tuple_keyr  	  s    	!!"-QQR/HI	JB	sCj	!B
**c3Z
 C[[F!Qrxx89Hv;!
CK8=(--////r   zklass, attr, valuer   rK  rV   r  r)  c                     [        S/S/S/S.5      nUS:w  a  UR                  S5      nUR                  " S0 X0D6nU [         L a  US/   OUS   n[        XQ5      [        XA5      :X  d   eg )	NrY   r%   rL   r6  r   r  r  )r  )r	   r*  r4   rG  )r  r  r   r?   r   r   s         r   #test_subsetting_columns_keeps_attrsr  	  ss    & 
!A3aS1	2Bv~\\#zz/$/H % 2Xse_F6 GH$;;;;r   c                  J   [        S/S/S/S.5      n Sn[        R                  " [        US9   U R	                  / SQSS9nS S S 5        S	n[
        R                  " [        US9   WS
S/   R                  5         S S S 5        g ! , (       d  f       NH= f! , (       d  f       g = f)NrY   r%   rL   r-   r_  rW   r%  r   z'Cannot subset columns when using axis=1r   r   )	r	   r:   rv   rw   r4   r}   r~   r  r]   )r?   r   r   rX   s       r   test_subsetting_columns_axis_1r   
  s    	!A3aS1	2B
7C		#	#M	=JJyqJ) 
>5E	z	/	3* 
0	/ 
>	= 
0	/s   B$B
B
B"r+  )r]   anyr  c                     [        S/SS9n[        S//US9nUR                  S/5      n[        X05      " 5       R                  n[
        R                  " XA5        g )Nr  r[  r  rY   r  )r   r	   r4   rG  r   r:   r  )r+  r   r?   r   r   s        r   #test_groupby_column_index_name_lostr  
  sR     cU'H	QC5(	+BQCJZ&(00F&+r   infer_stringpyarrow)marksc                    U (       a  [         R                  " S5        [        / SQ/ SQ/ SQS.5      R                  [        5      n/ SQUl        [        R                  " SU 5         UR                  / SQ5      R                  5       nS S S 5        [        / S	Q/[        R                  " S
/5      / SQ[        S9n[        R                  " WU5        g ! , (       d  f       NP= f)Nr  )r   r   r   rQ  r  rC  r-   )r   r   r   zfuture.infer_string)r   r   r   r   )r   r  rY   r   )r,   r   rE   )r}   importorskipr	   r   r	  r   r.   r  r4   r  r8   r   r:   r;   )r  r?   r   r   s       r   test_groupby_duplicate_columnsr	  
  s     I&	")=LQ
fVn  !BJ			0,	?L)--/ 
@	rxx}oVH &(+ 
@	?s   &"C
C c                      [        / SQ/ SQSS9n SU R                  l        U R                  SS9R	                  5       n[        SS	/S
S/SS9nSUR                  l        [
        R                  " X5        g )NrC  rB  )r  r  r,   rk   )r  r  r   r  r%   r   rY   )r   r,   rk   r4   lastr:   rz   )r>   r   r   s      r   #test_groupby_series_with_tuple_namer  3
  sd    
\

CCCIIN[[q[!&&(Fq!fQF<H$HNN6,r   zfunc, valuesr]        @X@     X@rl   g     @8@g     8@c                     / SQn[        SS/S-  X"S.5      n[        UR                  S5      U 5      " 5       n[        XS.[        SS/SS9S	9n[        R
                  " XE5        g )
N 7yACr  a   b    7y1r  r  r  rY   r%   r   r   r  r  r   r  r  r+   )r	   rG  r4   r   r:   r;   )r+  r   r   r?   r   r   s         r   )test_groupby_numerical_stability_sum_meanr  =
  s`    
 <D	aVaZd>	?BRZZ($/1Fv35!Qg;VWH&+r   c                      / SQn [        SS/S-  X S.5      nUR                  S5      R                  5       nS/S-  SS	/-   S
S/-   SS/-   n[        X3S.5      n[        R                  " X$SS9  g )Nr  rY   r%   r   r  r   r  g07yACg17yACga7y1Cgb7y1Cr  r  r  T)check_exact)r	   r4   r  r:   r;   )r   r?   r   exp_datar   s        r   'test_groupby_numerical_stability_cumsumr  I
  s    ;D	aVaZd>	?BZZ '')F	
i++y).DDd|S  x78H&=r   c                  t   [         R                  R                  S5      R                  S5      n [	        U 5      n[        S5       H!  n[         R                  UR                  X"4'   M#     SUS'   UR                  S5      nUR                  SS9nU/ SQ   R                  SS9n[        R                  " XE5        g )	Nr%   )r$   r$   r$   rY   r   Fskipnarc  )r8   rq   rr   r   r	   r6   r   r3   r4   r  r:   r;   )r  r?   ir@   r   r   s         r    test_groupby_cumsum_skipna_falser   U
  s    
))


"
2
26
:C	3B1X  BsG	CB
))5)
!C/")))7H#(r   c            	         [        SSS9n [        U 5      U S   -
  n[        R                  US'   [	        SUS.5      nUR                  S5      nUR                  S	S
S9n[	        SUS   US   [        R                  US   US   S-  /05      n[        R                  " XE5        UR                  S	S	S9n[	        SUS   US   [        R                  [        R                  [        R                  /05      n[        R                  " XE5        g )Nry  r$   r"   r   r%   rY   rs  r   FT)ri  r  r   r   )	r   r   r.   r2   r	   r4   r  r:   r;   )r  r>   r?   r@   r   r  s         r   test_groupby_cumsum_timedelta64r"  e
  s    
\1
-C
+A
CVVCF	%	&B	CB
))t)
4C
S3q63q62663q63q6A:FG
HC##
))u)
5C
S3q63q6266266266BC
DC##r   c                     U nUR                  SS9R                  5       nUR                  UR                  5      R                  5       n[        R                  " X#5        g )Nr   r  )r4   rl   r,   r:   rz   )(rand_series_with_duplicate_datetimeindexdupsr   r   s       r   !test_groupby_mean_duplicate_indexr&  w
  sI    3D\\\"'')F||DJJ',,.H6,r   c                  V   [        / SQ[        R                  [        R                  [        R                  /5      n U R                  U R                  5      R                  5       n[        / [        / [        R                  S9[        R                  S9n[        R                  " X5        g )Nr  r   rM   )r   r8   r   r4   r,   r]   r   rH   rF   r:   rz   r<  r   r   s      r    test_groupby_all_nan_groups_dropr)  ~
  sg    y26626626623AYYqww##%Fbb

 ;288LH6,r   c                    [        / / SQS9nUR                  SS/U S9nUR                  US9nU (       a  [        / / // / /SS/S9nU(       d  S/O/ nO[	        S	5      nU(       d  / SQOSS/n[        / XeS
9n[
        R                  " XG5        g )Nr-   r  r   r   r   rh  r  r)   r   r   )r	   r4   r]   r   r   r:   r;   )r   ri  r?   r@   r   r,   r   r   s           r   test_groupby_empty_multi_columnr+  
  s     
O	4B	S#J	2BVVV.FB8b"Xc3Z@+3%1)5/C:W:H&+r   c            	          [        SS//SS//SS//SS///SS/S9n [        SSS/SS//0[        SS/S	SS
9S9nU R                  S/S9nUR                  5       n[        R
                  " X15        g )Nr  rY   Wrf   rg   MWr   r  r	  rE   rk   r+   r  )r	   r   r4   r]   r:   r;   )r?   r   r@   r   s       r   *test_groupby_aggregation_non_numeric_dtyper0  
  s    	
scA3Z#tsRDk:T3K
B 1a&2r(#	
 S#JhT:	H 
v	BVVXF&+r   c                     [        / SQ[        SS5       V s/ s H  n [        U S5      PM     sn [        SS5       V s/ s H  n [        U S-  S5      PM     sn S.5      n[        [        SS5       V s/ s H  n [        U S5      PM     sn [        SS5       V s/ s H  n [        U S-  S5      PM     sn S	.[        S
S/SSS9S9nUR	                  S/S9nUR                  5       n[        R                  " XB5        g s  sn f s  sn f s  sn f s  sn f )NrY   r   rY   rY   r   rY   rn  daysrf   rD  r_   rK   r,  rE  r   rF   rR   r/  r+   r  )r	   r6   r   r   r4   r]   r:   r;   r  r?   r   r@   r   s        r   0test_groupby_aggregation_multi_non_numeric_dtyper6  
  s    	 05a<1)Av&<5:1a[A[)AFF+[A	

B 05a<1)Av&<5:1a[A[)AFF+[A	
 QF'4H 
u	BVVXF&+ =A =As   C;
D 2DD

c            
      l   [        / SQ[        SS5       V s/ s H  n [        U S5      PM     sn [        [        SS5      5      S.5      n[        [        SS5      [        SS5      /SS/S.[	        S	S/S
SS9S9nUR                  S/S9nUR                  5       n[        R                  " XB5        g s  sn f )Nr2  rY   rn  r3  rD  r_   r   r4  r   rF   rR   r/  r+   r  )	r	   r6   r   r5   r   r4   r]   r:   r;   r5  s        r   7test_groupby_aggregation_numeric_with_non_numeric_dtyper8  
  s    	 05a<1)Av&<eAqk"	

B F#Yq&%9:!QHQF'4H
 
u	BVVXF&+ =s   B1
c            	          SSSSS.SSSSS.SSSSS./n [        U 5      nXS   S:H     nUR                  S5      nUR                  5       n[        / S	Q// S
Q[        S/SS9S9n[        R
                  " XE5        g )NFTg      %@)
filter_colgroupby_colbool_col	float_colg     4@g     >@r:  r;  )r  r  g$+H@)r:  r<  r=  r  r   )r	   r4   r7   r   r:   r;   )dictsr?   	df_filterdfgbr   r   s         r   test_groupby_filtered_df_stdrA  
  s     TtRVWDdQUVDdQUVE
 
5	Bl#t+,I]+DXXZF	7TF/H
 &+r   c            	         [        [        [        S5      5      [        [        / SQ5      SS9[        R
                  " / SQSS/S9S	.5      n U R                  S
S/SS9R                  nS
[        S5      4[        R                  " S/5      S[        S5      4[        R                  " S/5      S[        S5      4[        R                  " S/5      0nX:X  d   eg )Nabc)r  z
2018-02-01z
2018-03-01categoryr   )r*   r   rY   r   rY   )
categoriesr6  r  r  Fr  z2018-01-01 00:00:00z2018-02-01 00:00:00r%  z2018-03-01 00:00:00r%   )r	   r   r5   r   r   
from_codesr4   rT  r   r8   r   r  s      r   2test_datetime_categorical_multikey_groupby_indicesrH  
  s    	U$FG  ''
1vF	
	
B ZZc
UZ3;;F	i-./1#	i-./1#	i-./1#H
 r   c                     S/S-  S/S-  -   n [         R                  [         R                  SSS/[         R                  SSSS/-   n[        X/5      R                  nSS	/Ul        S
n[
        R                  " [        US9   UR                  S5      S	   R                  SSS9R                  5         S S S 5        g ! , (       d  f       g = f)NAlicer$   BobrY   r%   rL   r   rk   r  z@^[a-zA-Z._]*\(\) got an unexpected keyword argument 'min_period'rW   )window
min_period)r8   r   r	   r   r   r}   r~   r  r4   rollingr]   )name_lval_ltest_dfresult_error_msgs       r   #test_rolling_wrong_param_min_periodrS  
  s    Y]eWq[(FVVRVVQ1%Aq!(<<E(**GuoGO 	L  
y(8	9&..aA.FJJL 
:	9	9s   1B;;
C	rH  c           	         [        / SQ/ SQ[        / SQU S9S.5      n[        R                  SS.nUR                  S/5      R	                  U5      n[        S	S
/S	/SS/SS/S.5      R                  S5      n[        R                  " X45        g )N)ThomasrU  Thomas John)i  i    )sadhappyrY  r   )NameCreditMoodr]   )r\  r[  rZ  rY  rX  i	  rW  rU  rV  )r\  r[  rZ  )r	   r   moder4   ry   r*  r:   r;   )rE   r?   aggregate_detailsr   expected_results        r   .test_by_column_values_with_same_starting_valuer`  
  s     
7'4EB	

B "(>ZZ!%%&78Fu%w/Sk}-	
 i  &2r   c                     / SQ/ SQ/n [        S[        R                  " U SS/S9S9nUR                  SS/S	9R	                  5       n[        SS
/[        R
                  " SS/SS/S95      n[        R                  " X#5        g )N)NrY   r   rY   )r%   rL   r%   rL   rY   r  r  r  r+   r   r  r%   )r  r%   )r  rL   )r   r   r  r4   r]   r  r:   rz   )r  r>   r   r   s       r   #test_groupby_none_in_first_mi_levelrb  (  s    L
)C
*00S#JG
HC[[1v[&**,F	
A
&&(';C:NH 6,r   c                      [        / SQ/ SQ/ SQS.5      n U R                  S /S9R                  5       n[        SS/SS	/S
.[        SS/S S9S9n[        R
                  " X5        g )NrB  )rY   rY   r%   rL   )r   r$   rn  r_   )Nr  r%  r  r%   r$   rK      r9  rY   r  r+   )r	   r4   r]   r   r:   r;   r  s      r   test_groupby_none_column_namere  3  s`    	,\M	NBZZD6Z"&&(F1vQG4E1a&t<TUH&+r   	selectionc                 
   [        SS/[        R                  S/[        R                  S/S.SS/S9nU c  UR                  S/5      OUR                  S/5      U    nU VVs/ s H  u  p4UPM	     nnnS	S
/nXV:X  d   eg s  snnf )NrY   r%   r$   r6  rR   r,  r+   r  rY   )r%   )r	   r8   r   r4   )rf  r?   r   r   r^  r   r   s          r   !test_single_element_list_groupingri  ;  s     
!QrvvqkDSRUJ	WB#,#4bjj#"**cU:KI:VG '(fccF(d|H )s   "A?c                     [        / SQ/ SQS.5      n U S   R                  S5      U S'   [        / SQ/ SQS.5      nUS   R                  S5      US'   U R                  SSS	9nUR                  5       n[        R
                  " X15        g )
N)r  r  r%  r  )rY   r%   rL   r%   )str_colnum_colrk  stringr6  )rD  r  r[  Fr   )r	   r   r4   rl   r:   r;   )r?   r   r   r   s       r   test_groupby_string_dtypern  F  s    	3M	NByM((2ByM
 '	
	H #9-44X>HYjjUj3G\\^F&+r   zlevel_arg, multiindex)r   F)ro  Tc                     [        SS/SS/SS/S.SS	/S
9nU(       a  UR                  SS/5      nSn[        R                  " [        US9   UR                  U S9 VVs/ s H  u  pEUPM	       nnS S S 5        g s  snnf ! , (       d  f       g = f)NrY   r%   rL   r   r$   rn  r6  rR   r,  r+   r  r  zCreating a Groupby object with a length-1 list-like level parameter will yield indexes as tuples in a future version. To keep indexes as scalars, create Groupby objects with a scalar level parameter instead.rW   r  )r	   r*  r:   rv   rw   r4   )	level_argr-  r?   r9  r   r^  s         r   7test_single_element_listlike_level_grouping_deprecationrr  Z  s    
 
!Qq!fAq6:3*	MB\\3*%	,  
	#	#M	B::I:67667 
C	B7 
C	Bs   A?A9-A?9A??
B)r]   r  cumprodr	  c                     Sn[        SU/S.5      n[        UR                  S5      U 5      " 5       U-
  n[        SS/0[        S/SS9S9nU S	;   a  UR	                  S
S9n[
        R                  " X45        g )Nl   L33ffrY   r  r  r  r   r  r+   )r  rs  Tr  )r	   rG  r4   r   r  r:   r;   )r+  r  r?   r   r   s        r   #test_groupby_avoid_casting_to_floatru  l  s{     C	#'	(BRZZ_d+-3F#s5!3+?@H$$''T'2&+r   z	func, val)r]   rL   )r	  r%   c           	          [        SSS[        R                  /S.U S9n[        UR	                  S5      U5      " 5       n[        SU/0[        S/SU S9U S9n[        R                  " XE5        g )	NrY   r%   r  r   r  r  r  rM   )r	   r.   NArG  r4   r   r:   r;   )any_numeric_ea_dtyper+  r  r?   r   r   s         r   test_groupby_sum_support_maskry  x  sl     
!Q/7K	LBRZZ_d+-F	seQCc)=>"H
 &+r   z
val, dtype)o   r~  )   uintc           	         [        SX /S.U S3S9nUR                  S5      R                  5       n[        SU S-  /0[        S/SU S3S9U S	3S
9n[        R
                  " X45        UR                  S5      R                  5       n[        SX S-  /0U S	3S9n[        R
                  " X45        UR                  S5      R                  5       n[        SX -  /0[        S/SU S3S9U S	3S
9n[        R
                  " X45        g )NrY   r  8r   r  r  r%   r  64rM   )r	   r4   r]   r   r:   r;   r  r	  )r  rE   r?   r   r   s        r   test_groupby_overflowr    s    
#,ugQK	@BZZ_  "F	sQwiQCcE7!5rlH
 &+ZZ_##%F#1W~.rlCH&+ZZ_!!#F	sykQCcE7!5rlH
 &+r   zskipna, val)TrL   c                     [        SS[        R                  S/S.U S9nUR                  S5      R	                  US9n[        SS[        R                  U/0U S9n[
        R                  " XE5        g )NrY   r%   r  r   r  r  r  )r	   r.   rw  r4   r  r:   r;   )rx  r  r  r?   r   r   s         r   test_groupby_cumsum_maskr    sj     
!RUUA/7K	LBZZ_##6#2F	q"%%o"H &+r   zval_in, index, val_out)r  r  r[  r  rO  )r   r   r   r$  blah)r[  r  rO  r[  )r  r  r[  r  rO  g      @)r   r   r   r$  r  r  )r[  r  g      &@r[  c           	      d   [        U S[        USS9S9nUR                  S5      R                  5       n[        US[        / SQSS9S9n[        R
                  " XE5        UR                  5       R                  S5      R                  5       nUR                  5       n[        R                  " XE5        g )Nr   r  r  )r   rk   r,   )r   r$  r  r   )r   r   r4   r]   r:   rz   r0   r;   )val_inr,   val_outseriesr   r   s         r   (test_groupby_index_name_in_index_contentr    s    " heE6OPF^^F#'')F1?H
 6,__&&v.224F  "H&+r   r\  )rY   rf       r  r   c                     [        SS/U -  S.5      nUS   R                  S5      US'   UR                  S5      R                  5       n[        SU /0[	        S/SS9S9n[
        R                  " X#5        g )NrY   T)r;  r}  r}  r;  r  r+   )r	   eqr4   r]   r   r:   r;   )r\  r?   r   r   s       r   test_sum_of_booleansr    so     
1tfqj9	:BFt$BvJZZ&**,F&1#eQCm.LMH&+r   z<ignore:invalid value encountered in remainder:RuntimeWarning)rQ  tailr  r   r  c                    [        S[        R                  S[        R                  S/[        S5      S.5      nU S:X  a   [	        UR                  S5      U 5      " SS	9nO [	        UR                  S5      U 5      " 5       nU S
;   a)  [        S/ SQ05      R                  [        / SQSS95      nO[        / SQ/ SQS./ SQS9n[        R                  " X#5        g )Nr  r  r%  r$   rs  r  r   r   )r\  )r   r  r   r  r6  r  r+   )
r	   r8   r   r6   rG  r4   r*  r   r:   r;   )r  r?   r   r   s       r   test_groupby_method_drop_nar    s     
#rvvsBFFC8uQxH	IBC&1A6C&13""c9-.88?-
 ?C9U&+r   c                     [         R                  " SSSS9n [        [        S5      5      S-  nU R	                  5       nUR                  U5      n[        R                  " [        SS9   UR                  5         S S S 5        [        R                  " [        SS9   UR                  5         S S S 5        [        R                  " [        S	S9   UR                  5         S S S 5        [        R                  " [        S
S9   UR                  5         S S S 5        UR                  5       nUSS  n[        [        S5      [        S9Ul        ["        R$                  " XE5        UR'                  5       nUS S n[        [        S5      [        S9Ul        ["        R$                  " XE5        g ! , (       d  f       GN4= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f)Nry  r  r   r   rf   z+Period type does not support sum operationsrW   z.Period type does not support cumsum operationsz,Period type does not support prod operationsz/Period type does not support cumprod operationsir   )r.   period_ranger5   r6   	to_seriesr4   r}   r~   r  r]   r  r	  rs  r  r   r~  r,   r:   rz   r  )pigrpsr>   r@   r   r   s         r   test_groupby_reduce_periodr    sY   	s	=Bb	?RD
,,.C	T	B	y(U	V
 
W	I
 			
 
y(V	W
	 
X	J
 	



 &&(C34yH59C0HN3)
&&(C3BxH59C0HN3)+ 
W	V
 
 
X	W
 
s0   (F&F8G
>G&
F58
G

G
G)c                      [        / SQ/5      n / SQU l        U R                  U S   5      nUR                  nU R	                  / SQSS9n[
        R                  " X#5        g )N)r   rY   r%   rL   r  rY   )r   r%   rL   r   )r	   r   r4   _obj_with_exclusionsrV  r:   r;   )r?   r@   r   r   s       r   *test_obj_with_exclusions_duplicate_columnsr    sR    	L>	"BBJ	BqE	B$$Fwwyqw)H&+r   c                 H   SSS.SSS./n[        U5      nUR                  SSSS9nU (       a3  UR                  S	S
9n[        SS/S/S9n[        R                  " XE5        g [
        R                  " [        SS9   UR                  U S
9  S S S 5        g ! , (       d  f       g = f)Nr   r   r  cardarr  F)r   rK  Trh  r  z(could not convert string to float: 'bar'rW   )r	   r4   r7   r:   r;   r}   r~   r  )ri  dicts_non_numericr?   r@  r   expected_dfs         r   'test_groupby_numeric_only_std_no_resultr    s      %51U3KL	$	%B::cE:6Dt,>
f2]]H
 HH,H/
 
 
s   :B
B!c                     [        / SQ/ SQS.5      n [        R                  " U S   [        R                  " SSS5      S9nU R                  US	/S
S9S   R                  S5      n[        [        SSSS9[        SSSS9[        SSSS9[        SSSS9/SS9n/ SQn[        R                  " X4/SS	/S9n[        [        R                  " S[        R                  S[        R                  S[        R                  S[        R                  [        R                  S[        R                  [        R                  /5      USS9n[        R                  " X&5        g )N)皙?皙?333333?皙ٿ      ?)r  r  r  r%  r  )rR   wrR   r   rY   r$   r   r  FrF  rl   gDlٿr  r  )closedr  r  r  T)r  r6  r  r  r  )r	   r.   qcutr8   linspacer4   ry   r   r   r   r  r   r   r   r:   rz   )r?   qqr   categorical_index_level_1index_level_2r  r   s          r   /test_grouping_with_categorical_interval_columnsr  $  s7   	3:ST	UB	CBKK1a0	1BZZS	EZ237;;FCF +VS1S#g.S#g.S#g.		
 ! $M		 	 	"23*
B 
	
  %H( 6,r   bug_varc                     [        SX U [        R                  /05      nUR                  S 5      nUR	                  SS9n[        X U S /S/S9n[
        R                  " X45        g )Nr   c                     U $ r[   rP   rQ   s    r   rS   ;test_groupby_sum_on_nan_should_return_nan.<locals>.<lambda>Q  s    r   rY   )	min_countr  )r	   r8   r   r4   r]   r:   r;   )r  r?   r@  r   r  s        r   )test_groupby_sum_on_nan_should_return_nanr  M  s_     
C'GRVV<=	>B::k"DXXX"FWw=uMK&.r   )r  corrcummaxcumminrs  rE  rankr   r  r  rW  r  r  r   r  r  
pct_changec                     [        S[        U 5      S9nX l        U R                  S/5      S/   nU S/   R                  U S   5      n[	        X15      " 5       n[	        XA5      " 5       n[
        R                  " XV5        g )N2014r"   r   r)   )r   ru   r,   r4   rG  r:   r;   )r?   r  rngr   g_expr   r  s          r   #test_groupby_selection_with_methodsr  X  sv    0 VSW
-CH


C53% AuIbg&E !

C
%
 
"C ##r   c                 l   [        S[        U 5      S9nSU R                  l        Xl        U R                  S/5      S/   nU S/   R                  U S   5      nSn[        R                  " [        US9   [        R                  " UR                  S5      UR                  S5      5        S S S 5        S	n[        R                  " [        US9   [        R                  " UR                  UR                  5        S S S 5        [        R                  " UR                  S
 5      UR                  S 5      5        [        R                  " UR                  S5      R                  5       UR                  S5      R                  5       5        [        R                  " UR                  S5      R                  5       UR                  S5      R                  5       5        [        R                  " UR!                  S 5      UR!                  S 5      5        g ! , (       d  f       GNo= f! , (       d  f       GN2= f)Nr  r"   r   r   r)   r  rW   r   z%DataFrameGroupBy.dtypes is deprecatedc                 "    U R                  5       $ r[   r\   rQ   s    r   rS   6test_groupby_selection_other_methods.<locals>.<lambda>  s
    AEEGr   c                 "    U R                  5       $ r[   r\   rQ   s    r   rS   r    s
    AEEGr   r   c                     [        U 5      S:H  $ rO   rQ  rQ   s    r   rS   r    s    3q6Q;r   c                     [        U 5      S:H  $ rO   rQ  rQ   s    r   rS   r    s    A!r   )r   ru   r   rk   r,   r4   r:   rv   rw   r;   r  r   r{   resamplerl   r  rW  )r?   r  r   r  r  r   s         r   $test_groupby_selection_other_methodsr  ~  s   
VSW
-CBJJOH


C53% AuIbg&E 7H		#	#M	B
ahhqk5<<?; 
C
1C		#	#M	=
ahh5 
>!''"34ekkBS6TU!**S/..0%..2E2J2J2LM!**S/..0%..2E2J2J2LM	&'6K)L 
C	B 
>	=s   46H,H$
H!$
H3c                 :   [        / SQ5      R                  U 5      n[        / SQ/ SQUS.5      n[        SSSU S9n[        U/ SQ/ SQS	.5      nUR	                  [        S
SS95      nUR                  5       R                  5       n[        R                  " Xd5        g )N)z2016-08-31 22:08:12.000z2016-08-31 22:09:12.200z2016-08-31 22:20:12.400)r  r  r[  )quantquant2time2z2016-08-31 22:08:00rd  1min)r#   r   unit)rY   rY   r   r   r   r   r   r   r   r   r   r   rY   )r  r  r  r  )r   r   )
r   as_unitr	   r   r4   r
   r  r  r:   r;   )r  idx2	test_datar  expected_outputr@   r   s          r   test_groupby_with_Time_Grouperr    s    	
 gdm 	 !_tLI ,bvDQE<=	
O 
		7wV<	=BXXZ##%F&2r   c                      [        / SQ[        SSS9SS9n U R                  U 5      R                  5       n[        SS/SS	9nSUR                  l        [        R                  " X5        g )
Nr  z
2022-01-01rL   r"   janr  r%   rY   r  )r   r   r4   r  r,   rk   r:   rz   r(  s      r   1test_groupby_series_with_datetimeindex_month_namer    sW    y
< C%PAYYq\!Fq!f5)HHNN6,r   test_serieszkwarg, value, name, warn)r  r  rY   Nr  rh  )r   r   rY   Nc                    [        S/ SQ0[        / SQSS9S9nU (       a  US   nUR                  " S0 X0D6nSn[        R                  " XGS9   UR                  U5      nS S S 5        U (       a  [        S	S
/[        SS/SS9SS9n	O[        SS	S
/0[        SS/SS9S9n	[        R                  " WU	5        g ! , (       d  f       N]= f)Nr  r  r  r  r  r+   z&you will need to pass a length-1 tuplerW   rL   r   rY   r  rP   )r	   r   r4   r:   rv   r  r   r  )
r  kwargr   rk   r   r  r@   r   r   r   s
             r   $test_depr_get_group_len_1_list_likesr    s     S)$E)#,F
GC#h		&~	&B
2C		#	#D	4d# 
51a&q!f3(?cJcAq6]%AS2IJOOFH% 
5	4s   B77
Cc                      [        [        [        R                  /5      S/S.5      n U R	                  SS/SSS9R                  5       n[        S/5      n[        R                  " X5        g )NrY   r  r  r  F)r)  r  r   )	r	   r   r8   r   r4   r  r   r:   rz   r  s      r   test_groupby_ngroup_with_nanr    sX    	bffX.aS9	:BZZc
55ZAHHJFqc{H6,r   c                  6   [        / SQ/ SQ/ SQ/ SQ/ SQS.5      n [        R                  " [        SS9   U R	                  S	/ S
QS9nS S S 5        WR                  S	5      n[        / SQ/ SQS.5      n[        R                  " X#5        g ! , (       d  f       NH= f)N)r   rL   r%   rL   )r   rY   rn  r_   )rL   r   r%   rf   )rY   rd  rn  r  )r$   rn  i)r{  r|  col3col4col5
deprecatedrW   rY   )rY   r%   rL   r%   rY   )r   r  )r{  r  )r	   r:   rv   rw   r4   r  r;   r  s       r   test_get_group_axis_1r    s    	  !""	

B 
	#	#M	F**!*8 
Gq!F "	
H &+ 
G	Fs   B


Bc            	          [        SSSSS[        R                  [        R                  /0/ SQS9n U R                  SS	9R	                  5       n[        S/ S
Q0/ SQS9n[
        R                  " XSS9  g )Nr  rY   r%   rL   r   r  r+   r   r  )rY   r%   rL   r   r%   rL   Fr  )r	   r8   r   r4   r  r:   r;   r  s      r   (test_groupby_ffill_with_duplicated_indexr    se    	C!Q1bffbff56>P	QBZZaZ &&(F#12:LMH&>r   c           	         [        [        R                  [        5      (       a   e[	        [        S5      [        S5      S S /[        S5      [        S5      [        S5      [        S5      /S.5      nUR                  SSS	9nU (       a  US
   nUR                  R                  n[        [        S5      S /SS9n[        R                  " X45        g )NrY   r%   rL   r   r$   )r   r   r   F)r)  r   r  )r  decimalInvalidOperationr  r	   r   r4   r  result_indexr   r:   r  )r  r?   r@   r   r   s        r   test_decimal_na_sortr    s    
 '22I>>>>	AJ
D$7aj'!*gaj'!*E	

B 
E%	(B[[[%%Fgaj$'e4H&+r   )r   r  r   r  numpyr8   r}   pandas.errorsr   r   pandas.util._test_decoratorsutil_test_decoratorstdpandas.core.dtypes.commonr   pandasr.   r   r	   r
   r   r   r   r   r   r   r   r   r   pandas._testing_testingr:   pandas.core.arraysr   pandas.core.commoncorecommonr  markfilterwarnings
pytestmarkr   rD   parametrizer   r   r   r   r   r   r
  r  r  r"  r<  rI  r]  rf  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!  r*  r-  r8  r=  rA  rF  rM  rT  r_  ra  rq  rt  ry  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  r5  r:  rL  rY  r^  ro  rx  r  r   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  param
skip_if_nor	  r  r  r  r   r"  r&  r)  r+  r0  r6  r8  rA  rH  rS  r	  r`  rb  re  ri  rn  rr  ru  ry  r  rw  r  r  r  r  r  r  r  r  r  r  r  r  r  rw   r  r  r  r  r  rP   r   r   <module>r     s      	   * ) 5      +    [[''(ST
,6 "JK>+ L>+BD-.E&P2Ij dE]3) 4),$, F,,6:'z 0%&P#.868+-+`4n  13EFG- H-@- 0*@+F,D.2&,.,	D60	+<4 
EN,	, : $70 8	
0:'0(+((..@-,$,0'*;Z,,(
,-"(.,	,/.<	-B*
,<&~	8#$*0Z&-0,- S3*$56 7@#$.@*56$*.4b-:, Xy68"4vy6IJ \?\?4ST	6
$ S3%L13%#s!45		
		QC	Q1a|,
ac:
!G$
!I&
%	*	  : #;<
Cx& =; 6 2Fx&v	+-&",8- - , cU|4- 5-6  3434		
 343434343434		
 343434343434		
7(+X,Y+X,,--*&Z&$R, 
"
"0 	GS!	J&	FE"	L%(	J%	He$	#	U#		u%	T"	5!"<#"< !89, :, Ty!9:,, - edD\*VeT],CD,,	>) $$-- $7, 8,,$,.,(,(*M ,BMM)4LM33.-, tS3%&89 :,( sElMQC;U88 !EF, G, z;&?@	, A	, m'DE, F,0 UBEEN(CD, E,  &0 	
 +8!	
,,  45, 6, B #KL, M,$*>, $70 80"&-R QH-/ ./ ,$-,$ 438- u6	ua'	udD!	1#q-(	1#tT"
&
 7& -,.? u6, 7,r   