
    o[we)                       d dl m Z  d dlmZ d dlZd dlZd dlZd dlmZm	Z	 d dl
mc mZ d dlZd dlmZmZmZmZmZmZmZmZmZmZmZmZ d dlmZ d dlm Z  d dl!m"c m#Z$ d dl%m&Z& ej'        (                    d          Z)d	 Z*d
 Z+ej'        ,                    dg d          d             Z-d Z.d Z/d Z0ej'        ,                    dddg          d             Z1d Z2d Z3ej'        ,                    dg d          d             Z4d Z5d Z6d Z7d Z8d Z9d Z:d Z;d  Z<d! Z=ej'        ,                    d"d# d$ g          d%             Z>d& Z?d' Z@d( ZAd) ZBd* ZCd+ ZDd, ZEd- ZFd. ZGd/ ZHd0 ZId1 ZJd2 ZKej'        ,                    d3d4d5g          d6             ZLej'        ,                    d3g d7          ej'        ,                    d8ddg          d9                         ZMd: ZNd; ZOd< ZPd= ZQd> ZRd? ZSd@ ZTdA ZUdB ZVdC ZWdD ZXdE ZYdF ZZdG Z[dH Z\dI Z]dJ Z^dK Z_dL Z`dM ZadN ZbdO ZcdP ZddQ ZedR ZfdS ZgdT ZhdU ZidV ZjdW ZkdX ZldY ZmdZ Znd[ Zod\ Zpd] Zqd^ Zrd_ Zsej'        ,                    d`dadadbgg          dc             Ztdd Zude Zvdf Zwdg Zxdh Zydi Zzdj Z{dk Z|ej'        ,                    dldmdndodmdngdmdogg          ej'        ,                    dpdqdrdqdrgg          ds                         Z}dt Z~ej'        ,                    dudvdvgg          ej'        ,                    dwdagdadbgg          ej'        ,                    dxdgd gdygdzg ed g           ed           g ed d{d{d|}           ej        d~dd           ej        d gd           ej        d gd           ej        dgd          gg d          ej'        ,                    dg d          ej'        ,                    d"g d          d                                                             Zd Zd Zd Zd Zd Zd Zd Zd Zej'        ,                    dddgg          d             Zej'        ,                    ddddd ed           ed          ddgifdd ed           ed           ed           ed           ed           ed          gifdd ed           ed           ed           ed           ed           ed          gifg          d             Zd Zd Zd Zej'        ,                    d edzdzgd           ej        dddg          g          d             Zd Zd Zej'        ,                    dg d          d             Zd Zej'        ,                    deddzfeddfeddfeddfeddfeddfeddzfeddfeddfeddfeddfeddfg          d             Zd Zej'        ,                    dg d          d             Zej'        ,                    dd ej        d ej        d                    g          d             Zd Zej'        ,                    ddddgfdddgfg          dȄ             ZdɄ Zdʄ Zd˄ Zd̄ Zd̈́ Zej'        ,                    d8ddg          d΄             Zdτ ZdЄ Zdф Zd҄ Zdӄ ZdԄ Zej'        ,                    de ej        d ej        d                    g          dք             Zdׄ Zd؄ Zej'        ,                    dddzdzgg          dڄ             Zdۄ Zej'        ,                    dd gdfdd gdfdg          d߄             Zej'        ,                    dg d          d             Zej'        ,                    dddg          d             Zej'        ,                    dddg          d             Zej'        ,                    dddej        fg          d             Zej'        ,                    dg dg dg dfg dg dg dfg          d             Zej'        ,                    dg d          d             Zej'        (                    d          ej'        ,                    dg d          d                         Zd Zd Zej'        ,                    d8ddg          d             Zd Zej'        ,                    dd{dzg          d              Zej'        ,                    dg d          d             Zd Zd Zd Zd ZdS (      )datetime)DecimalN)PerformanceWarningSpecificationError)Categorical	DataFrameGrouperIndexInterval
MultiIndex
RangeIndexSeries	Timedelta	Timestamp
date_rangeto_datetime)BooleanArray)get_groupby_method_argsz)ignore:Mean of empty slice:RuntimeWarningc                  V    t          t          dd                    } d}| |k    sJ d S )NAB)keylevelz<Grouper(key='A', level='B', axis=0, sort=False, dropna=True))reprr	   )resultexpecteds     Alib/python3.11/site-packages/pandas/tests/groupby/test_groupby.py	test_reprr   %   s8    'c---..FMHX    c                     t          j        dd          } t          |           }|d d dxx         dz  cc<   |                    d          }|t	          d          z   |d<   |t	          dd	
          z   |d<   t           j        |j        d<   |                    t          t          d                    dz            }|
                                }t          d          }t          d          }t          |dz  ||||gt          j        d                    }t          |||d          }t          j        ||           d S )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_framer   NaTilocgroupbylistrangestdr   nparanger   tmassert_frame_equal)	tdiserdfgbr   td1td4exp_serr   s	            r   test_groupby_std_datetimelikerB   ,   s0   

We
4
4
4C
++C!HHHMHHH	c		BIaLL BsGIaE****BsG&BGBK	DqNNT)	*	*BVVXXF 2
3
3C
2
3
3CcAgsCc2")A,,GGGGwW7CCDDH&(+++++r   dtype)int64int32float64float32c                    t          t          j        d          dz  t          j        d          |           }t          j        d          }t          j                            d                              |           |                    |          }|                    d d          }|D ]\  }}t          |          dk    sJ d}t          j
        t          |	          5  |                    t          j                  }d d d            n# 1 swxY w Y   |d
         d
k    sJ d}t          j
        t          |	          5  |                    t          j                  }d d d            n# 1 swxY w Y   t          j        ||           t          j        ||                                           |                                }	d}t          j
        t          |	          5  |                    t          j                  }d d d            n# 1 swxY w Y   t          j        |	|           |                    d           }|                    d           }
|
d         dk    sJ t          j        |
|           |                    |          }d}t          j
        t          |	          5  |                    t          j                  }	d d d            n# 1 swxY w Y   t          j        |	|d           d}t          j
        t          |	          5  |                    t          j        t          j        g          }d d d            n# 1 swxY w Y   d}t)          j        t,          |	          5  |                    t          j        t          j        d           d d d            n# 1 swxY w Y   ddddd}t          j
        t          |	          5  |                    fd          }d d d            n# 1 swxY w Y   |d
         dk    sJ d}t)          j        t.          |	          5  |                    d            d d d            d S # 1 swxY w Y   d S )N	      r,   rC   r%   c                     | dz  S NrJ    xs    r   <lambda>z)test_basic_aggregations.<locals>.<lambda>O   s
    Q!V r   F
group_keyszusing SeriesGroupBy.meanmatch   zusing SeriesGroupBy.sumc                 0    | |                                  z  S NsumrO   s    r   rQ   z)test_basic_aggregations.<locals>.<lambda>d   s    q15577{ r   c                 0    | |                                  z  S rX   rY   rO   s    r   rQ   z)test_basic_aggregations.<locals>.<lambda>e   s    a!%%''k r         check_index_typezusing SeriesGroupBy.[mean|std]nested renamer is not supported)onetwo
         r   rV   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                 H    | j                  |                                 z   S rX   )namemean)rP   group_constantss    r   rQ   z)test_basic_aggregations.<locals>.<lambda>   s    oaf&=&H r      zMust produce aggregated valuec                     | dz  S Nr%   rN   rO   s    r   rQ   z)test_basic_aggregations.<locals>.<lambda>   s
    AE r   )r   r7   r8   randomdefault_rngshufflereindexr3   lenr9   assert_produces_warningFutureWarning	aggregateri   aggassert_series_equalrZ   apply	transformr6   pytestraisesr   	Exception)rC   datar,   groupedkvmsgaggedr   r   transformedvalue_groupedrj   s               @r   test_basic_aggregationsr   G   s   ")A,,!#29Q<<uEEEDIaLLEI!$$U+++<<Dll++l>>G  11vv{{{{{
$C		#M	=	=	= + +!!"'**+ + + + + + + + + + + + + + +8q====
$C		#M	=	=	= ( (;;rw''( ( ( ( ( ( ( ( ( ( ( ( ( ( (5(+++5',,..111[[]]F
#C		#M	=	=	= ' ';;rv&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '68,,,}}2233H##$9$9::Kq>R;111LL&&M
$C		#M	=	=	= 2 2((112 2 2 2 2 2 2 2 2 2 2 2 2 2 2655AAAA +C		#M	=	=	= 5 5!!27BF"3445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 -C	)	5	5	5 ; ;"'"&99:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ++O	E  
	#M	=	=	= J JHHHHIIJ J J J J J J J J J J J J J J 8r>>>> *C	y	,	,	, + +//***+ + + + + + + + + + + + + + + + + +s   ( DDD
 E66E:=E:. HH!H; K''K+.K+&,MM"%M"-N??OO-PPPQ,,Q03Q0c                    | j         j        d         }|                     |          }|                                }|                     |                    d                                                    }|j         j        t          j        k    sJ |j         j        t          j        k    sJ t          j
        ||d           |                                }t          t          |                    |d<   d }|                    d                              |          }|j        }|j        }t          j        ||           d S )Nr   OFr^   valuec                 L    | j         | d                                                  S )Nr   )locidxmaxgroups    r   	max_valuez/test_groupby_nonobject_dtype.<locals>.max_value   s    yw..0011r   r   )r,   codesr3   rZ   astyperC   r7   int8rD   r9   r:   copyr5   rr   rx   dtypesrw   )	mframedf_mixed_floatsr   r~   r   r   r=   r   applieds	            r   test_groupby_nonobject_dtyper      s   
,
Q
CnnS!!G[[]]F~~cjjoo..2244H<((((>28++++&(UCCCC 
				BB..BwK2 2 2 jjoo##I..G^FyH68,,,,,r   c                     t          g dt          t          j        d          d          t	          dd          d          } d }|                     d	                                          d
g         }|                     d	                              |          d
g         }t          j	        ||           d }|                     d	                              |          d
g         }|
                                                    d          }t          j        |j        d<   t          j	        ||           d }|                     d	                              |          d
g         }|
                                                    d
di          }t          j        |j        d<   t          j	        ||           d }|                     d	                              |          dg         }|                     d	                                          dg         }t          j        |j        d<   t          j	        ||           d }|                     d	                              |          }|                     d	                                          d         
                                }t          j        |j        d<   d |_        t          j        ||           d S )N)Tigerr   r   Lambr   Ponyr   r\   rD   rC   20130101r"   r-   c                     | j         d         S Nr   )r2   grps    r   f_0z*test_inconsistent_return_type.<locals>.f_0   s    x{r   r   r   c                 6    | j         dk    rd S | j        d         S )Nr   r   rh   r2   r   s    r   f_1z*test_inconsistent_return_type.<locals>.f_1   s     8w4x{r   rF   r   c                 6    | j         dk    rd S | j        d         S Nr   r   r   r   s    r   f_2z*test_inconsistent_return_type.<locals>.f_2        8v4x{r   floatr   c                 6    | j         dk    rd S | j        d         S r   r   r   s    r   f_3z*test_inconsistent_return_type.<locals>.f_3   r   r   r)   c                 L    | j         dk    rd S | j        d         j        d         S )Nr   r   r)   )rh   r2   r   r   s    r   f_4z*test_inconsistent_return_type.<locals>.f_4   s'    8v4x{s##r   )r   r   r7   r8   r   r3   firstrx   r9   r:   r   r   nanr   r.   r1   rh   rw   )	r=   r   r   r   r   er   r   r   s	            r   test_inconsistent_return_typer      s    
LLL	!G444J222	
 	

 
B   zz#$$&&u-HZZ__""3''.F&(+++  
 ZZ__""3''.Fy))AVAE'N&!$$$  
 ZZ__""3''.FW~..AFAE&M&!$$$  
 ZZ__""3''.F


3&AFAE&M&!$$$$ $ $
 ZZ__""3''F


3$))++AFAE&MAF61%%%%%r   c                    dd}d }|                      d           }|                    t          j        dd          }|                    t          j        dd          }|                    t          j        dd          }|                    d          }|                    |          }	t          j        ||           t          j        ||           t          j        ||	           |                    |d          }|                    |d          }|                    |d          }t          j        ||           t          j        ||           t          j        ||	           d	D ]s}
|                     d
 |
          }|
rd nt          }d}t          j
        ||          5  |                    t          j        dd          }d d d            n# 1 swxY w Y   t          j
        ||          5  |                    t          j        d          }d d d            n# 1 swxY w Y   t          j
        ||          5  |                    d          }d d d            n# 1 swxY w Y   t          j        ||d           t          j        ||           |                    t          j        ddg          }t          j
        ||          5  |                    ddg          }d d d            n# 1 swxY w Y   t          j        ||d           t          j
        ||          5  |                    |d          }d d d            n# 1 swxY w Y   t          j
        ||          5  |                    t          j        d          }d d d            n# 1 swxY w Y   t          j        ||           t          j        ||d           ud S )Nr   c                 0    t          j        | ||          S )Naxisr7   
percentile)rP   qr   s      r   fz test_pass_args_kwargs.<locals>.f   s    }Q----r   c                 0    t          j        | dd          S )NP   r   r   r   rO   s    r   rQ   z'test_pass_args_kwargs.<locals>.<lambda>   s    "-2A... r   c                     | j         S rX   monthrO   s    r   rQ   z'test_pass_args_kwargs.<locals>.<lambda>   s    ag r   r   r   皙?r   )TFc                     | j         S rX   r   rO   s    r   rQ   z'test_pass_args_kwargs.<locals>.<lambda>   s    qw r   as_index*A grouping .* was excluded from the resultrT   Fcheck_namesg?r   )r3   rv   r7   r   rx   ry   quantiler9   rw   rt   rs   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##BM2A#>>L''r'BBL&&s++L))!,,N<666:|444<888R((J##A#,,L''R'00L:|444<666<888 " I I__%6%6_JJ
2tt]:'C888 	C 	C#rBBJ	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C 	C'C888 	E 	E%++I,>DDL	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E'C888 	0 	0!**3//H	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0
lH%HHHH
j(333!''	(:S#JGG'C888 	; 	;%..Sz::L	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;
lLeLLLL'C888 	1 	1#R00J	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1'C888 	G 	G%++I,>#+FFL	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G 	G
j(333
lH%HHHHH/I Isl   1#G  G$	'G$	!H..H2	5H2	I11I5	8I5	 LL	L	<M  M$	'M$	"N//N3	6N3	r   TFc                 @   g d| _         |                     d |          }|rd nt          }d}t          j        ||          5  |                    t          j        dd          }d d d            n# 1 swxY w Y   | | j        j	        d	k             
                    d
          | | j        j	        dk             
                    d
          d}t          |          j        }|s!t          t          d                    |_        t          j        ||           d S )N)r   r   r   r)   c                     | j         S rX   r   rO   s    r   rQ   z9test_pass_args_kwargs_duplicate_columns.<locals>.<lambda>  s    17 r   r   r   rT   r   r   r   rV   r   r%   rV   r%   )columnsr3   rt   r9   rs   rv   r7   r   r,   r   r   r   Tr
   r5   r:   )r   r   r>   r   r   resex_datar   s           r   'test_pass_args_kwargs_duplicate_columnsr     sU    +**GO	**X	>	>B.44D
6C		#D	4	4	4 0 0ffR]BQf//0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7=&!+,55c::7=&!+,55c:: G !!#H )uQxx#x(((((s   #A44A8;A8c                  v   t          j                    } |                     d d d g          }t          |          t          |           k    sJ |                     d d g          }t          d | j        D                       }t          |          |k    sJ t          t          j        gdz  g dd	          } t          |                     d
                    dk    sJ t          |                     d                    dk    sJ t          |                     d
dg                    dk    sJ d S )Nc                     | j         S rX   yearrO   s    r   rQ   ztest_len.<locals>.<lambda>.      AF r   c                     | j         S rX   r   rO   s    r   rQ   ztest_len.<locals>.<lambda>.      ag r   c                     | j         S rX   dayrO   s    r   rQ   ztest_len.<locals>.<lambda>.       r   c                     | j         S rX   r   rO   s    r   rQ   ztest_len.<locals>.<lambda>1  r   r   c                     | j         S rX   r   rO   s    r   rQ   ztest_len.<locals>.<lambda>1  r   r   c                 *    h | ]}|j         |j        fS rN   )r   r   .0rP   s     r   	<setcomp>ztest_len.<locals>.<setcomp>2  s!    888!QVQW%888r   rJ   rV   r%   rJ   abr   r   r   )r9   makeTimeDataFramer3   rr   r,   r   r7   r   )r=   r~   r   s      r   test_lenr   ,  s:   				Bjj**,=,=OPPGw<<3r77""""jj**,=,=>??G88rx88899Hw<<8#### 
"&AIII66	7	7Brzz#1$$$$rzz#1$$$$rzz3*%%&&!++++++r   c            	      N   t          d t          t          dd                    dz  D                       } t          j                            d                              d          dz  }t          |          }|                     |          }|                                 d S )Nc                     g | ]}d |z  S )      ?rN   r   s     r   
<listcomp>z)test_basic_regression.<locals>.<listcomp>>  s    >>>S1W>>>r   rV   rc   r%   iL  g      $@)r   r4   r5   r7   rn   ro   r3   ri   )r   r}   	groupingsr~   s       r   test_basic_regressionr   <  s    >>d5B<<&8&82&=>>>??F9  ##**40047DtInnY''GLLNNNNNr   )rF   rG   rD   rE   int16r   c                 P   t          t          j        d                    }t          t          j        d          ||           }t          t          j        dddt          j        t          j        ddt          j        dg
|          }|                    |          }|                    t                    }t          ddgddg          }t          j
        ||d	           d
 }|                    |          }t          ddgddg          }t          j
        ||           d S )Nrc   r   foobarr+      r%   F)check_dtypec                 :    t          t          |                     S rX   )r   rr   rO   s    r   r   ztest_with_na_groups.<locals>.f\  s    SVV}}r         @       @)r
   r7   r8   r   onesr   r3   rv   rr   r9   rw   )rC   r,   valueslabelsr~   r   r   r   s           r   test_with_na_groupsr  G  s    ")B--  EBGBKKe444F	ubfbfeUBFER  F nnV$$GKKEq!fUEN333H5(>>>>
   KKNNEsCj777H5(+++++r   c                     d } d }d }t          g dt          d          t          dd          d          }t          g d	t          d          t          dd          d          }d
}|                    d                              |           }|                    d                              |           }t	          j        ||           d}t          j        t          |          5  |                    d                              |           d d d            n# 1 swxY w Y   t          j        t          |          5  |                    d                              |           d d d            n# 1 swxY w Y   t          j        t          |          5  |                    d                              |           d d d            n# 1 swxY w Y   t          j        t          |          5  t	          j	        t          |          5  |                    d                              |           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nc                     | | j         dz  dk             dz  }|j        r0t          g gdz  g gdz  ddg          }t          dg|          }|S |                    ddg          }|S )Nr%   rV   r   clevelsr   namesr   r   r,   )r   emptyr   r   	set_indexrP   y
multiindexr   s       r   f1z,test_indices_concatenation_order.<locals>.f1h  s}    qsQw1n"7 	#B4!8B4!8CQT:VVVJSE<<<CJS#J''AHr   c                     | | j         dz  dk             dz  }|j        rt                      S |                    ddg          }|S )Nr%   rV   r   r
  )r   r  r   r  )rP   r  s     r   f2z,test_indices_concatenation_order.<locals>.f2r  sI    qsQw1n"7 	;;S#J''AHr   c                     | | j         dz  dk             dz  }|j        r1t          g gdz  g gdz  ddg          }t          ddg|          }|S |S )	Nr%   rV   r   r   r  r   r   r  )r   r  r   r   r  s       r   f3z,test_indices_concatenation_order.<locals>.f3z  sr    qsQw1n"7 	#taxtaxu~  J S#JjAAACJHr   )rV   r%   r%   r%   r   r$   rI   r   r   r
  )rJ   r%   r%   r%   zDThe behavior of array concatenation with empty entries is deprecatedr   z@Cannot concat indices that do not have the same number of levelsrT   )r   r5   r3   rx   r9   r:   rz   r{   AssertionErrorrs   rt   )	r  r  r  r=   df2depr_msgresult1result2r   s	            r    test_indices_concatenation_orderr  e  s       	 	 	 
E!HH5A;;GG	H	HB
,,,U1XXE!QKKHH
I
ICUH jjoo##B''Gkk#$$R((G'7+++ MC	~S	1	1	1 " "


3b!!!" " " " " " " " " " " " " " "	~S	1	1	1 # #Cr"""# # # # # # # # # # # # # # # 
~S	1	1	1 " "


3b!!!" " " " " " " " " " " " " " "	~S	1	1	1 ' ''XFFF 	' 	'KK""2&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'sl   .)D##D'*D'	)E>>FF$)GG G?I()II(I	I(I	I((I,/I,c                 2   |                      d           }|                                }|                    d           }t          j        ||           |                                }d |D             }t          |          j        }t          j        ||           |j	        }|                    d           }t          j        ||           d}t          j        t          |          5  t          |d           d d d            d S # 1 swxY w Y   d S )Nc                 *    |                                  S rX   weekdayrO   s    r   rQ   z#test_attr_wrapper.<locals>.<lambda>  s    199;; r   c                 .    t          j        | d          S )NrV   )ddof)r7   r6   rO   s    r   rQ   z#test_attr_wrapper.<locals>.<lambda>  s    RVAA%6%6%6 r   c                 >    i | ]\  }}||                                 S rN   )describe)r   rh   gps      r   
<dictcomp>z%test_attr_wrapper.<locals>.<dictcomp>  s&    <<<bbkkmm<<<r   c                     | j         S rX   r   rO   s    r   rQ   z#test_attr_wrapper.<locals>.<lambda>  s    QW r   z-'SeriesGroupBy' object has no attribute 'foo'rT   r   )r3   r6   rv   r9   rw   r'  r   r   r:   rC   rz   r{   AttributeErrorgetattr)r   r~   r   r   r   s        r   test_attr_wrapperr-    sV   jj..//G[[]]F{{6677H68,,, F<<G<<<H""$H&(+++ ]F{{,,--H68,,, :C	~S	1	1	1                                       s   .DDDc                 N   |                      d           }|                    d          }t          |          dk    sJ t          |j                  dk    sJ |                                 }d |j        D             |d<   |                     d                              d          }t          j        ||d           |                     d	                               d
           }|	                    d           }t          |          d	k    sJ t          |j                  dk    sJ |	                    d           }|D ]M\  }}|
                                }|j        D ],}	t          j        |                    |	          |d           -N|D ]*\  }
}|j        d                                         |
k    sJ +|j        }|j        }|                                D ]?\  }}| j                            ||                   }||k                                    sJ @d S )Nc                 *    |                                  S rX   r"  rO   s    r   rQ   z$test_frame_groupby.<locals>.<lambda>  s    		 r   ri   r$   r   c                 6    g | ]}|                                 S rN   r"  r   s     r   r   z&test_frame_groupby.<locals>.<listcomp>  s     ;;;;;;r   r#  Fr   re   c                 *    |                                  S rX   r"  rO   s    r   rQ   z$test_frame_groupby.<locals>.<lambda>  s     r   c                 0    | |                                  z
  S rX   ri   rO   s    r   rQ   z$test_frame_groupby.<locals>.<lambda>  s    a!&&((l r   c                 *    |                                  S rX   r3  rO   s    r   rQ   z$test_frame_groupby.<locals>.<lambda>  s    affhh r   r   )r3   ru   rr   r   r   r,   r9   r:   headry   ri   rw   xsr#  groupsindicesitemstakeall)r   r~   
aggregatedtscopystraggedr   rh   r   ri   idxr#  r7  r8  r   r   	samethings                   r   test_frame_groupbyrA    sS   oo3344G ""6**Jz??az!""a'''' \\^^F;;fl;;;F9~~i((226::H(JEBBBB ll2&&'<'<==G##$:$:;;K{r!!!!{"##q(((( ##$6$677K Q Qezz||; 	Q 	QC";>>##6#6%PPPPP	Q " 3 3{1~%%''722222 ^FoG & &1M&&wqz22	Q##%%%%%%& &r   c                    ddddd}d}t          j        t          |          5  |                     |d          }d d d            n# 1 swxY w Y   |                    d          }t          |          t          |           k    sJ t          |j                  dk    sJ d	 }d
}t          j        t          |          5  | j                            |d          }d d d            n# 1 swxY w Y   t          j        |	                    |          j        |	                    |                     |D ]\  }}t          |j                  dk    sJ  d S )Nr   rV   r   r   r)   D+DataFrame.groupby with axis=1 is deprecatedrT   r   ri   r%   c                 0    | |                                  z
  S rX   r3  rO   s    r   rQ   z,test_frame_groupby_columns.<locals>.<lambda>  s    1qvvxx< r   5The 'axis' keyword in DataFrame.groupby is deprecated)
r9   rs   rt   r3   ru   rr   r   r   r:   ry   )	r   mappingr   r~   r<  tfgroupedTr   r   s	            r   test_frame_groupby_columnsrK    s   AAA..G
7C		#M	=	=	= 3 3//'/223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 ""6**Jz??c'll****z!""a'''' 
 	B
AC		#M	=	=	= 6 69$$W1$556 6 6 6 6 6 6 6 6 6 6 6 6 6 6(,,R002G4E4Eb4I4IJJJ  # #119~~"""""# #s#   A		AAC..C25C2c                 d   |                      d          }|                    d          }|j        j        dk    sJ |                      dd                              d          }|j        j        dk    sJ |ddg                             d          }|j        j        dk    sJ |                    dd	d
          }|j        j        dk    sJ |d                                         }|j        j        dk    sJ |d                             d          }|j        j        dk    sJ |d                             dd	g          }|j        j        dk    sJ d}t          j        t          |          5  |d                             dd	d           d d d            d S # 1 swxY w Y   d S )Nr   Tnumeric_onlyFr   r)   rD  ri   r6   r)   rD  r`   rT   r   r   )r3   ri   r,   rh   rv   rz   r{   r   )r=   r~   r   r   s       r   test_frame_set_name_singlerQ    s   jjooG\\t\,,F<####ZZeZ,,11t1DDF<####c3Z $$V,,F<####[[vE2233F<####S\  F<####S\f%%F<####S\vuo..F<####
,C	)	5	5	5 8 8667778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8s   9F%%F),F)c           	         | d         }| d         }|                      |j        |j        g          }|                    d          }|                      ddg                                          }t          j        |j        d d ddgf         |j        d d ddgf         d           t          t          j        	                    d	          
                    d
          t          j        	                    d	          
                    d
          t          j        g d          t          j        g d          dg d          } |                      ddg          }|                    d           d S )Nr   r   TrM  r)   rD  Fr   r%      r   r   r   r   r   r   1rV  rV  2rW  rW  )v1v2k1k2)ra   rb   threefourfivesixr+   rZ  r[  rZ   )r3   getri   r9   r:   r   r   r7   rn   ro   standard_normalarrayrv   )r=   col1col2r~   r   r   s         r   test_multi_funcre    so   c7Dc7Djj$(DH-..GLLdL++Ezz3*%%**,,H 	!!!c3Z- (,qqq3*}"=5   
 
)''**::1==)''**::1==(999::(999::		
 	
 =<<
 
 
B jj$&&GKKr   c                    |                      ddg          d         }|                    ddg          }t          |                    d          |                    d          d          }t          j        ||           d S )Nr   r   r)   ri   r6   )ri   r6   )r3   rv   r   r9   r:   )r=   r~   r   r   s       r   !test_multi_key_multiple_functionsrg  -  sw    jj#s$$S)GKK((E'++f"5"5gkk%>P>PQQRRH%*****r   c            	          t          g dg dt          j                            d                              d          t          j                            d                              d          t          j                            d                              d          d          } |                     ddg          }dd	g}|                    |          }t          j        |d
                             |          |d                             |          |d                             |          gg dd          }t          |j
        t                    sJ t          |j
        t                    sJ t          j        ||           d S )Nr   r   r   r   r   r   r   r   r   r   r   ra   ra   ra   rb   ra   ra   ra   rb   rb   rb   ra   r%      )r   r   rD  EFr   r   ri   r6   rD  rl  rm  )rD  rl  rm  rV   )keysr   )r   r7   rn   ro   ra  r3   rv   r.   concat
isinstancer,   r   r9   r:   )r}   r~   funcsr   r   s        r   "test_frame_multi_key_function_listrr  5  s{        &&q))99"==&&q))99"==&&q))99"==;	
 	
   DD llC:&&GUOEKKEy			%	 	 '#,"2"25"9"973<;K;KE;R;RS__  H
 ek:.....hnj11111%*****r   c            
      N   t          g dg dg dt          j                            d                              d          t          j                            d                              d          t          j                            d                              d          d          } |                     ddg          }d	d
g}t          j        d          }t          j	        t          |          5  |                    |           d d d            d S # 1 swxY w Y   d S )Nri  rj  )dullrt  shinyrt  rt  ru  ru  rt  ru  ru  ru  r%   rk  )r   r   r)   rD  rl  rm  r   r   ri   r6   -agg function failed [how->mean,dtype->object]rT   )r   r7   rn   ro   ra  r3   reescaperz   r{   	TypeErrorrv   )r}   r~   rq  r   s       r   2test_frame_multi_key_function_list_partial_failurerz  e  sj          &&q))99"==&&q))99"==&&q))99"==U+	
 +	
- -D^ llC:&&GUOE
)C
D
DC	y	,	,	,  E                 s   7DD!Dopc                 *    |                                  S rX   rY   rO   s    r   rQ   rQ     s    !%%'' r   c                 *    |                                  S rX   r3  rO   s    r   rQ   rQ     s    QVVXX r   c           
      `   | }|                     ddg          } ||          }g }g }|                     d          D ]f\  }}|                     d          D ]K\  }	}
|                    ||	f           |                     ||
j        d d ddgf                              Lgt          j        |ddg          }t          j        |d          j        }||_        dD ]M} |||                   }||         }||         }t          j
        ||           t          j
        ||           N|d                              |d         |d         g                                          }|                     ddg                                          d         }t          j
        ||           d S )	Nr   r   r)   rD  r  rV   r   rO  )r3   appendr   r   from_tuplesr.   ro  r   r,   r9   rw   ri   )r=   r{  r}   r~   r  rn  r  n1gp1n2gp2mir   col
result_colpivotedexpr   s                     r   test_groupby_multiple_columnsr    s   DllC:&&GbkkGDF<<$$ 6 6C{{3'' 	6 	6GBKKR!!!MM""SWQQQc
]3445555	6 
	S#J	7	7	7Bya(((*HHN  - -R%%
#,sm
z3///
w,,,, #YS	49566;;==F||S#J'',,..s3H68,,,,,r   c                     t          ddgddgddggddg          } |                     dd	
          d                             d          }t          ddgd          }t	          j        ||           |                     dd	d          d                             d           }t          g ddt          j        g d                    }t	          j        ||           d S )NrV   r%   r   r$   rS  r   r   r   Fr   rh   T)r   rS   c                 *    |                                  S rX   )cumsumrO   s    r   rQ   z-test_as_index_select_column.<locals>.<lambda>  s    !((** r   )r%   rS  rS  ))r   r   )r   rV   r   rh   r,   )	r   r3   	get_groupr   r9   rw   rx   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68,,,ZZeZ==cBHH F 		:#9:R:R:R#S#S  H 68,,,,,r   c                     d} t          g dg dd          }|j        |                    d          j                            d                   }t          j        t          |           5  |                    d                              d|          }t          j	        ||           d d d            d S # 1 swxY w Y   d S )	Nzobj is deprecated)rV   rV   r%   )rJ   r   r$   r   r   r   rT   )obj)
r   r2   r3   r8  r`  r9   rs   rt   r  r:   )r  r=   r   r   s       r   !test_obj_arg_get_group_deprecatedr    s    "H	33	4	4Bwrzz#.221556H		#M	B	B	B 0 0C**1"*55
fh///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   ,A B99B= B=c                  D   t          t          g dd                    } |                     dd          d                             d	          }t          | j        d d
         t          d                    }d g|j        _        t          j        ||           d S )Nr-   alphar  r  r   F)byr   r   rM  r%   r   r  )	r   r
   r3   rZ   r   r5   r  r9   r:   )r=   leftr   s      r   0test_groupby_as_index_select_column_sum_empty_dfr    s    	5w???	@	@	@B::u:--c266E6JJDBQBuQxx@@@H"VH$)))))r   c                 	   |                      dd          }|ddg                             d          }|                    d          }t          j        ||           |                    dd	d
          }|                    d          }|                                d         |d<   t          j        ||           |                      dd          }d}t          j        t          |          5  |d                             dd	i           d d d            n# 1 swxY w Y   |                      ddgd          }|                    d          }|                                }t          j        ||           |                    dd	d
          }|                                }|                                d         |d<   t          j        ||           |d                                         }t          |          
                    ddi          }d}t          j        t          |          5  |d                             dd	i          }d d d            n# 1 swxY w Y   t          j        ||           t          t          j                            d                              ddd          g d          } t#          t          j                            d                              ddd          d          }	|                      |	          }
|
                    d           d}t          j        t          |d          5  |
                    t
                    }d d d            n# 1 swxY w Y   t          j        t          |d          5  |                      |	                              t
                    }d d d            n# 1 swxY w Y   t          j        ||           dD ]}|                      |	d          }
 t)          |
|                      }|                      |	j        d          }
 t)          |
|                                          d          }t          j        ||           d S )Nr   Fr   r)   rD  ri   TrM  rZ   rO  r`   rT   Qr   r  z7Passing a dictionary to SeriesGroupBy.agg is deprecatedr%   r   d   )2   rJ   )jimjoejolier$   rc   r  r  r  z:The behavior of DataFrame.sum with axis=None is deprecated)rU   check_stacklevel)ri   maxcountr   r  r;  drop)r3   rv   ri   r9   r:   rZ   rz   r{   r   r   renamers   rt   r7   rn   ro   integersr   nthrx   r,  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344G$//I[[]]3'IcN'9---jjtj,,G
,C	)	5	5	5 ' '#u&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '
 jj#sej44G[[  F||~~H&(+++kkU3344GI[[]]3'IcN'9---  ""I)$$++S#J+??I
CC		#M	=	=	= 1 1#,""C<001 1 1 1 1 1 1 1 1 1 1 1 1 1 1'9--- 

	a  ))!S'::'''
 
 
B 
	%%a((11!R<<5	I	I	IB	BBFF1III
FC		#Mu	U	U	U  hhsmm              		#Mu	U	U	U ( (jjnn""3''( ( ( ( ( ( ( ( ( ( ( ( ( ( (#s###C + +ZZUZ++ wr4  ""ZZ	DZ11!D!!##//T/::
dE****+ +sH   4DD"%D":I$$I(+I(M;;M?M?".OO #O c                 |   | dv rt          j        d|             t          t          j                            d                              ddd          dd	g
          } t          |                    d          |                       }| dk    r|	                    d          }|
                                }| dk    r)|d                             |d         j                  |d<   |                    dd          } t          ||                       }t          j        ||           |                    |           }t          j        ||            t          |d	         |                       }t          j        ||           |d	                             |           }t          j        ||           d S )N)corrwithr  ngroupz!GH 5755: Test not applicable for r%   r   r$   )r  r%   )sizer   r   r  r  Fr   )rz   skipr   r7   rn   ro   r  r,  r3   r  r  r   rC   r9   r:   rv   )reduction_funcr=   r   r   r   s        r   test_ops_not_as_indexr  %  s    666HHHIII	
	a  ))!QX)>>c

 
 
B 8wrzz#7799H??6**##%%H ,,RW];;


3
''A'WQ''))F&(+++UU>""F&(+++,WQsV^,,..F&(+++sVZZ''F&(+++++r   c                    |                      dd          }|                      ddgd          }|d                             d          }|                    d          j        d d ddgf         }t          |t                    sJ t          j        ||           |d                             d          }|                    d          j        d d g df         }t          |t                    sJ t          j        ||           |d                                         }|                                j        d d ddgf         }t          |t                    sJ t          j        ||           |d                                         }|                                j        d d g df         }t          |t                    sJ t          j        ||           d S )Nr   Fr   r   r)   rZ   r-   )r3   rv   r   rp  r   r9   r:   rZ   )r=   r~   grouped2r   r   r  r  s          r   !test_as_index_series_return_framer  G  s   jjuj--Gzz3*uz55HS\e$$F{{5!!%aaa#sm4Hfi(((((&(+++sm&&GU##'???(:;Igy)))))'9---S\F{{}} S#J/Hfi(((((&(+++sm!!G"111ooo#56Igy)))))'9-----r   c                     |                      dd          }d}t          j        t          |          5  |d                             d           d d d            d S # 1 swxY w Y   d S )Nr   Fr   zColumn\(s\) C already selectedrT   r)   rD  )r3   rz   r{   
IndexError__getitem__)r=   r~   r   s      r   (test_as_index_series_column_slice_raisesr  `  s    jjuj--G
+C	z	-	-	- & &  %%%& & & & & & & & & & & & & & & & & &s   AA"%A"c                 (   | }|                     dd          }|                    d          }|                     dg                              d          }|                    dd|j                   t	          t          |                    |_        t          j        ||           |                     ddgd          }|                                }|                     ddg                                          }t          t          |j        j
                   }|                    dd|d                    |                    dd|d                    t	          t          |                    |_        t          j        ||           d S )	Nr   Fr   TrM  r   r   rV   )r3   ri   insertr,   r   rr   r9   r:   r4   zipr  )r=   r}   r~   r   r   arrayss         r   test_groupby_as_index_cythonr  i  sW   D ll3l//G\\t\,,F||SE""''T'::HOOAsHN+++H..HN&(+++ llC:l66G\\^^F||S#J'',,..H#x~,-..FOOAsF1I&&&OOAsF1I&&&H..HN&(+++++r   c                     |                      ddgd          }|d                             t                    }|                    t                    j        d d g df         }t	          j        ||           d S )Nr   r   Fr   r)   r-   )r3   rv   rr   r   r9   r:   r=   r~   r   r   s       r   #test_groupby_as_index_series_scalarr    ss    jj#sej44G S\c""F{{3#AAA$67H&(+++++r   c                    d}t          j        t          |          5  |                    d d           d d d            n# 1 swxY w Y   d}d}t          j        t          |          5  t          j        t          |          5  |                     d dd	
           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nz(as_index=False only valid with DataFramerT   c                 *    |                                  S rX   r"  rO   s    r   rQ   z.test_groupby_as_index_corner.<locals>.<lambda>  s    QYY[[ r   Fr   z$as_index=False only valid for axis=0rE  c                 *    |                                  S rX   )lowerrO   s    r   rQ   z.test_groupby_as_index_corner.<locals>.<lambda>  s     r   rV   )r   r   )rz   r{   ry  r3   
ValueErrorr9   rs   rt   )r=   r   r   r  s       r   test_groupby_as_index_cornerr    s   
4C	y	,	,	, : :


((5
999: : : : : : : : : : : : : : : 1C<H	z	-	-	- D D'XFFF 	D 	DJJ**UJCCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	DD D D D D D D D D D D D D D D D D DsG   AA
A-C	B/#C/B3	3C6B3	7CCCc                     t          j                    } |                     d d d g          }|                                }t          j        | j        |j                   d}t          j        t          |          5  | j                            d d d gd	
          }d d d            n# 1 swxY w Y   |	                    d           }t          j
        |j        | j                   t          j        | j        j        |j                   |	                    d           }t          j        | j        j        |j                   d S )Nc                     | j         S rX   r   rO   s    r   rQ   z+test_groupby_multiple_key.<locals>.<lambda>  r   r   c                     | j         S rX   r   rO   s    r   rQ   z+test_groupby_multiple_key.<locals>.<lambda>  r   r   c                     | j         S rX   r   rO   s    r   rQ   z+test_groupby_multiple_key.<locals>.<lambda>  r   r   rE  rT   c                     | j         S rX   r   rO   s    r   rQ   z+test_groupby_multiple_key.<locals>.<lambda>  s    qv r   c                     | j         S rX   r   rO   s    r   rQ   z+test_groupby_multiple_key.<locals>.<lambda>       r   c                     | j         S rX   r   rO   s    r   rQ   z+test_groupby_multiple_key.<locals>.<lambda>  s    AE r   rV   r   c                 *    |                                  S rX   rY   rO   s    r   rQ   z+test_groupby_multiple_key.<locals>.<lambda>      !%%'' r   c                 *    |                                  S rX   rY   rO   s    r   rQ   z+test_groupby_multiple_key.<locals>.<lambda>  r  r   )r9   r   r3   rZ   assert_almost_equalr  rs   rt   r   rv   assert_index_equalr,   r   )r=   r~   r   r  s       r   test_groupby_multiple_keyr    sp   				Bjj**,=,=OPPGKKMME29el333<H		#M	B	B	B 
 
$,,00//B  
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 

 KK))**E%+rz22224;555KK))**E24;55555s   ?#B..B25B2c                 8   |                                  } t          j        | d<   |                     ddg                                          }|                     ddg                                          }t          j        |d<   t          j        ||           d S )Nbadr   r   )r   r7   r   r3   ri   r9   r:   )r=   r   r   s      r   test_groupby_multi_cornerr    s    	BBuIJJSz""''))Ezz3*%%**,,HfHUO%*****r   c                 N   |                      d          }t          j        d          }t          j        t
          |          5  |                    d           d d d            n# 1 swxY w Y   t          j        t
          |          5  |                                 d d d            n# 1 swxY w Y   | j        d d g df         } t          j
                    | d<   |                      d          }d}t          j        t
          |          5  |                    d           d d d            n# 1 swxY w Y   t          j        t
          |          5  |                                 d d d            n# 1 swxY w Y   d	}t          j        t          |          5  |                      d
d
dddd          }d d d            n# 1 swxY w Y   d}t          j        t
          |          5  |                    d            d d d            d S # 1 swxY w Y   d S )Nr   rv  rT   ri   r   r)   rD  rl  z/datetime64 type does not support sum operationsrZ   rE  r   rV   )r   r)   rD  rl  r   z does not support reduction 'sum'c                 0    |                      dd          S )Nr   FrM  rY   rO   s    r   rQ   z)test_raises_on_nuisance.<locals>.<lambda>  s    aeeAEe:: r   )r3   rw  rx  rz   r{   ry  rv   ri   r   r   nowrZ   r9   rs   rt   )r=   r~   r   r  s       r   test_raises_on_nuisancer    s}   jjooG
)C
D
DC	y	,	,	,  F              	y	,	,	,                 
???"	#BlnnBsGjjooG
;C	y	,	,	,  E              	y	,	,	,                 =H		#M	B	B	B G G**1111==A*FFG G G G G G G G G G G G G G G
,C	y	,	,	, < <::;;;< < < < < < < < < < < < < < < < < <sl   A''A+.A+B..B25B2D66D:=D:E==FF%GGG6HH!Hagg_functionr  minc                    |                      d          } t          ||                      }|                                } t          | j        | d         dk    df         |                      |j        d<    t          | j        | d         dk    df         |                      |j        d<   t	          j        ||           d S )Nr   r   r   )r   r   r   )r   r   )r3   r,  r   r   r9   r:   )r=   r  r~   r   r   s        r   test_keep_nuisance_aggr    s     jjooG+WWl++--F{{}}HSwrvbg.>.C'DlSSUUHLSwrvbg.>.C'DlSSUUHL&(+++++r   )rZ   ri   prodr6   varsemmedianrN  c                 (   |                      d          }d}||v rz|sx|dv r
t          }d}nt          }t          j        d| d          }t          j        ||          5   t          ||          |           d d d            d S # 1 swxY w Y   d S  t          ||          |          }|s|d	k    rg d
}ng d} t          | j        d d |f                              d          |          |          }	t          j
        ||	           d S )Nr   )r  r6   r  ri   r  r  )r6   r  z(could not convert string to float: 'one'zagg function failed [how->z,dtype->object]rT   rM  rZ   rC  r  )r3   r  ry  rw  rx  rz   r{   r,  r   r9   r:   )
r=   r  rN  r~   no_drop_nuisanceklassr   r   r   r   s
             r   test_omit_nuisance_aggr    s    jjooGF'''' >))E<CCE)VVVVWWC]5,,, 	F 	F*GG\**EEEE	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 	F 0,//\JJJ 	& 5 5***GG%ooGI726!!!W*-55c::LII%
 
 
 	fh/////s   !B		BBc                     |                      d          }t          j        t          d          5  |                                 d d d            d S # 1 swxY w Y   d S )Nr   zcould not convertrT   )r3   rz   r{   r  skew)r=   r~   s     r   $test_raise_on_nuisance_python_singler     s    jjooG	z)<	=	=	=                   s   AAAc                 |   |                      ddg          }t          j        d          }t          j        t
          |          5  |                    d           d d d            n# 1 swxY w Y   t          j        t
          |          5  |                                 d d d            d S # 1 swxY w Y   d S )Nr   r   rv  rT   ri   )r3   rw  rx  rz   r{   ry  rv   ri   )three_groupr~   r   s      r   &test_raise_on_nuisance_python_multipler    s+   !!3*--G
)C
D
DC	y	,	,	,  F              	y	,	,	,                   s$   A))A-0A-B11B58B5c           	          t          t          j        g d          t          j        g d          ddgdz  t          j                            d                              d          t          j                            d                              d          d          }|                    d	d
g          }|ddg                             d          }|                    d          }t          j
        ||           | dd                             d          }|                    d           }|d                             d          }t          j        |d         |           |j        j        dk    sJ d S )NrT  rU  r   r   rJ   r%   rS  )rZ  r[  k3rX  rY  rZ  r[  rX  rY  ri   TrM  r$   r   r   c                 *    |                                  S rX   r3  rO   s    r   rQ   z*test_empty_groups_corner.<locals>.<lambda>"  s    AFFHH r   r   r   )r   r7   rb  rn   ro   ra  r3   rv   ri   r9   r:   rx   rw   r,   rh   )r   r=   r~   r   r   r   agged_As          r   test_empty_groups_cornerr    sg   	(999::(999::%.1$)''**::1==)''**::1==	
 	

 
B jj$&&GdD\"&&v..F|||..H&(+++QqSk!!!**GMM,,--Ecl  ((G5:w///;w&&&&&&r   c                      t          dg          } d}t          j        t          |          5  |                     d            d d d            d S # 1 swxY w Y   d S )Nr   z5unsupported operand type\(s\) for \+: 'int' and 'str'rT   c                     | dz   S )Nr   rN   rO   s    r   rQ   z$test_nonsense_func.<locals>.<lambda>,  s
    QY r   )r   rz   r{   ry  r3   )r=   r   s     r   test_nonsense_funcr  (  s    	A3B
BC	y	,	,	, ( (


&&'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s   AAAc                    | j         }d|d<   t          j        g d          t          j        g d          g}t          j        d          }t          j        t          |          5  |                    |          	                    d           d d d            n# 1 swxY w Y   |
                    d                              |          	                    d          }t          |j        t                    sJ d }t          j        t          d	          5  |                    |                              |           d d d            d S # 1 swxY w Y   d S )
Npeekaboo)bazrb   r   r   rV   rv  rT   ri   r  c                 ^    | j         dk    rt          d          |                                 S )N)r   ra   Test error message)rh   ry  rZ   )r<   s    r   aggfunz5test_wrap_aggregated_output_multindex.<locals>.aggfun:  s,    8~%%0111wwyyr   r  )r   r7   rb  rw  rx  rz   r{   ry  r3   rv   r  rp  r   r   ru   )r   r=   rn  r   r   r  s         r   %test_wrap_aggregated_output_multindexr	  /  s   	B!B|HYYY)))!4!45D
)C
D
DC	y	,	,	, % %


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


4""6***+ + + + + + + + + + + + + + + + + +s$   ()BB!$B!)EEEc                 n   |                      d                                          }|j        j        dk    sJ |                      d                                          }|j        j        dk    sJ | d                              d                                          }|j        j        dk    sJ d S )Nr   r  r   rV   secondr   )r3   r  r,   rh   )r   r   s     r   test_groupby_level_applyr  C  s    ^^!^$$**,,F<''''^^!^$$**,,F<((((C[  q ))//11F<''''''r   c                   	 |                                  }ddddddddd	|                     d                                          }|                     	d                                          }t          j        fd|d         D             t          j                  }t          j        	fd	|d
         D             t          j                  }|                     |                                          }|                     |                                          }d\  |j        _        |j        _        t          j	        ||           t          j	        ||           d S )Nr   rV   )r   r   r  qux)ra   rb   r\  r  c                 :    g | ]}                     |          S rN   r`  )r   rP   mapper0s     r   r   z-test_groupby_level_mapper.<locals>.<listcomp>W  s#    444AQ444r   r   r   c                 :    g | ]}                     |          S rN   r  )r   rP   mapper1s     r   r   z-test_groupby_level_mapper.<locals>.<listcomp>Z  s#    555AQ555r   r  )r   r  )
r  r3   rZ   r7   rb  rD   r,   rh   r9   r:   )
r   	deleveledresult0r  mapped_level0mapped_level1	expected0	expected1r  r  s
           @@r   test_groupby_level_mapperr  M  sa   ""$$I!A66GA..GnnWAn..2244GnnWAn..2244GH44447!3444BH  M H55558!4555RX  M }--1133I}--1133I1B.IO)/.'9---'9-----r   c            	         t          g dt          g dd                    } t          g dt          t          dd          d                    }|                     d	                                          }t          j        ||           |                     dg	                                          }t          j        ||           |                     d
	                                          }t          j        ||           |                     d
g	                                          }t          j        ||           d}t          j        t          |          5  |                     d	           d d d            n# 1 swxY w Y   t          j        t          |          5  |                     d	           d d d            n# 1 swxY w Y   d}t          j        t          |          5  |                     g 	           d d d            n# 1 swxY w Y   d}t          j        t          |          5  |                     ddg	           d d d            n# 1 swxY w Y   t          j        t          |          5  |                     ddg	           d d d            n# 1 swxY w Y   d}t          j        t          |          5  |                     dg	           d d d            d S # 1 swxY w Y   d S )N)rV   r%   rJ   rc   r   r$   rd   rS  )rV   r%   rJ   rV   r   r$   r%   rS  r   r  )rk     rJ   r   r$   rS  rV   r\   r   r  r*   z2level > 0 or level < -1 only valid with MultiIndexrT   zNo group keys passed!z*multiple levels only valid with MultiIndex)
r   r
   r5   r3   rZ   r9   rw   rz   r{   r  )sr   r   r   s       r   test_groupby_level_nonmultir  d  sE   )))51I1I1IPU+V+V+VWWA***E%1++E,J,J,JKKHYYQY##%%F68,,,YYaSY!!%%''F68,,,YYRY  $$&&F68,,,YYbTY""&&((F68,,,
>C	z	-	-	-  				              	z	-	-	-  				              
!C	z	-	-	-  				              
6C	z	-	-	-    			A	                             	z	-	-	-    			A	                             
>C	z	-	-	-  				                 sl   &F		FF/GGG:HH!$H!I**I.1I.J55J9<J9LL	Lc                      t          t          j        d          dz  g d          } t          d          }|                     d                                          }t          j        ||           d S )Nr         ?       @)r   r   rV   rV   r}   r,   )r!  y      @      $@r   r  )r   r7   r8   r3   rZ   r9   rw   )r   r   r   s      r   test_groupby_complexr#    sk    BIaLLF+<<<@@@A'((HYYQY##%%F68,,,,,r   c                  
   t          dddddddddg          } t          t          j        g dt          j                  t	          g dd	
          t	          dgd                    }|                     d	d                                          }t          j        ||           t	          g dd	
          |_	        |                     d	d                                          }t          j        ||           d S )NrV         ?      ?r   r!  r   )rV   rV   rV   r   )r%  r!        ?        r   r  r   objectr,   r   Fsort)r&  r%  r!  T)
r   r7   rb  rD   r
   r3   r  r9   r:   r,   r=   r   r   s      r   test_groupby_complex_numbersr,    s   	&!!&!!!	

 
B 
"(+++222===se8,,,  H
 ZZ%Z((..00F&(+++ 999DDDHNZZ$Z''--//F&(+++++r   c                     t          g dt          g d                    } t          g dt          g d                    }|                     |          }|                                }|                     |                    | j                  j                                                  }t          j        ||           d S )N)      @g      "r  g      Y@g      g     K@g@)r   r   r
  dr   r   r   r+   )r   r   r  r.  r.  g      @)r   r   r/  r   r   h)	r   r
   r3   ri   rq   r,   r`  r9   rw   )s1s2r~   r   r  s        r   'test_groupby_series_indexed_differentlyr3    s    	00077788
 
 
B 
&&&e4R4R4R.S.S
 
 
B jjnnGLLNNE
**RZZ))-
.
.
3
3
5
5C5#&&&&&r   c                     t          t          g dg dg           } t          j        |           }t          j        g d          }t	          t
          j                            d                              d          ||          }|	                    d          
                                }t          j        |j        |           d	}t          j        t          |
          5  |	                    dd          }d d d            n# 1 swxY w Y   |
                                }t          j        |j        |j                   |	                    d                              d          }t          j        |j        |           |	                    d                              d           }t          j        |j        |           t          j        t          |
          5  |	                    dd          }d d d            n# 1 swxY w Y   |                    d           }t          j        |j        t'          ddg                     t          j        |j        |j                   |                    d          \  }}d|d<   |	                    d          
                    d          }t          j        |j        |j        d d                    d S )N)r   r   r  r  r   r   r  r  )ra   rb   ra   rb   ra   rb   ra   rb   ))r   cat)r   dog)r   r5  )r   r6  r%   )   r   r(  r   r  rE  rT   rV   )r   r   ri   c                 *    |                                  S rX   r3  rO   s    r   rQ   z0test_groupby_with_hier_columns.<locals>.<lambda>  s     r   c                 ,    |                      d          S )NrV   r3  rO   s    r   rQ   z0test_groupby_with_hier_columns.<locals>.<lambda>  s    affQii r   r   r   r   )r   r   TrM  r*   )r4   r  r   r  r   r7   rn   ro   ra  r3   ri   r9   r  r   rs   rt   r,   rv   rx   r
   	sortlevel)	tuplesr,   r   r=   r   r  r>   sorted_columns_s	            r   test_groupby_with_hier_columnsr>    s    HHHHHH	
 F "6**E$@@@ G 

	a  0088w
 
 
B ZZaZ  %%''F&.'222<H		#M	B	B	B ) )ZZaaZ(() ) ) ) ) ) ) ) ) ) ) ) ) ) )WWYYF&,111ZZaZ  $$V,,F&.'222ZZaZ  &&'9'9::F&.'222		#M	B	B	B ) )ZZaaZ(() ) ) ) ) ) ) ) ) ) ) ) ) ) )VV''((F&.%c
*;*;<<<&,111  ))!,,NABzNZZaZ  %%4%88F&."*SbS/:::::s$   (DDD,HHHc                    |                      | d         j                  }|                                }|                      | d                             d                                                     }t	          j        ||           d S )Nr   )r3   r  rZ   r  r9   r:   r  s       r   test_grouping_ndarrayr@    sl    jjC((G[[]]Fzz"S'....//3355H&(+++++r   c                     t          g dd          } t          g dg dg dg dg dd	| 
          }|                    g d          }|                    d          }|                                }t          j        ||           d S )Nr   rV   r%   rJ   r   r,   r  )foo1rC  foo2rC  foo3)bar1bar2rG  rF  rF  )baz1rH  rH  baz2rI  )spam2spam3rJ  spam1rL  )rd   re   (   r  <   )r   r   r  spamr}   r+   )r   r   r  rO  ri   )r
   r   r3   rv   ri   r9   r:   )r,   r}   r~   r   r   s        r   test_groupby_wrong_multi_labelsrP    s    ///000E;;;;;;;;;AAA(((	
 	
 	 	 	D ll88899G[[  F||~~H&(+++++r   c                 
   |                      | d                                       d          }|                      | d         d                              d          }|j        j        dk    sJ d|v sJ |                      | d         | d         g                                          }|                      | d         | d         gd                                          }|j        j        dk    sJ d|v sJ d|v sJ d S )Nr   TrM  Fr   r   r   r   )r3   ri   r,   rh   r  )r=   r   r  s      r   test_groupby_series_with_namerS    s   ZZ3  %%4%88FjjC5j1166D6IIG<####'>>>>ZZC"S'*++0022Fjj"S'2c7+ej<<AACCG<++++'>>>>'>>>>>>r   c                     |                      d          d         }|                                j        dk    sJ |                                j        dk    sJ d }|                    |          j        dk    sJ d S )Nr   r)   c                 0    t          j        |           dz  S rm   )r7   rZ   rO   s    r   rQ   z.test_seriesgroupby_name_attr.<locals>.<lambda>  s    Q r   )r3   r  rh   ri   rv   )r=   r   testFuncs      r   test_seriesgroupby_name_attrrW    s|    ZZ__S!F<<>>#%%%%;;==$$$$&&H::h$++++++r   c                     t          g dg dt          j                            d                              d          dz   t          j        d          d          } |                     dg          j                                        }| j                            | j	                                                  }t          j        ||           d S )N)r   r   r   r   r   r   r   r   )ra   ra   rb   rb   rb   rb   ra   rb   r%   r7  r   rC  r   )r   r7   rn   ro   ra  r8   r3   r   r  r   r9   rw   r+  s      r   test_consistency_namerY    s     
IIIIII&&q))99!<<sB1		
 	

 
B zz3%  "((**HT\\"$%%''F68,,,,,r   c                 b   dd}d }|                      d                              |          }|j        j        J |                      d                              |d          }|j        j        dk    sJ |                      d                              |          }|j        j        J d S )Nc                 ,    t          dddd|          S )NrV   r%   rJ   r  ri   	omissionsr  )r   )r=   rh   s     r   	summarizez0test_groupby_name_propagation.<locals>.summarize%  s    11==DIIIIr   c                 N    t          dddd| j        d         d                   S )NrV   r%   rJ   r\  r   r   r  )r   r2   r=   s    r   summarize_random_namez<test_groupby_name_propagation.<locals>.summarize_random_name(  s+     11==BGAJsOTTTTr   r   metricsrX   )r3   rx   r   rh   )r=   r^  ra  rb  s       r   test_groupby_name_propagationrc  #  s    J J J JU U U jjoo##I..G?'''jjoo##Iy99G?9,,,,jjoo##$9::G?'''''r   c                  (   t          d t          d          D                       } |                     d          }|                                }|                     | d                                                   }t	          j        ||           d S )Nc                 6    g | ]}t          j        d           S )rc   )r7   r8   r   s     r   r   z2test_groupby_nonstring_columns.<locals>.<listcomp>7  s     555aBIbMM555r   rc   r   )r   r5   r3   ri   r9   r:   r  s       r   test_groupby_nonstring_columnsrf  6  sz    	55599555	6	6BjjmmG\\^^Fzz"Q%  %%''H&(+++++r   c                  p   t          g dgg d          } t          ddggddgt          dgd	          
          }|                     d                                          }t	          j        ||           |                     d                                          }t	          j        ||           d S )Nrf   )r   r   r   r  rV   r%   r   r   r   r  r  )r   r
   r3   r   r9   r:   rZ   r+  s      r   test_groupby_mixed_type_columnsrh  >  s    	III;	6	6	6B1a&C85!3;O;O;OPPPHZZ__""$$F&(+++ZZ__  ""F&(+++++r   c                     t          j        d          } |                     t           j                   t	          | d d df                   }t          j        t          d          d          }|                    |                              t          j	                  }|
                                                                sJ d S )N)r  r  r   rc   )r7   r  fillr   r   tiler5   r3   rv   r  isnar;  )arrr  indsr   s       r   (test_cython_grouper_series_bug_noncontigro  J  s    
(:

CHHRV
QQQT

C7599b!!D[[""6=11F;;==r   c                     t          dgdz            } t          t          j                            d                              d          | d d d                   }t          j                            d                              ddd          }|                    |          }d }|                    |           d S )	N
aaaaaaaaaar  r%   r  r+   r   r$   c                 j    t          t          t          t          | j                                      S rX   )rr   setmapidr,   rO   s    r   rQ   z5test_series_grouper_noncontig_index.<locals>.<lambda>^  s"    #c#b!'**++,, r   )	r
   r   r7   rn   ro   ra  r  r3   rv   )r,   r  r  r~   r   s        r   #test_series_grouper_noncontig_indexrv  T  s    8*s"##EBI))!,,<<R@@ccPQc
SSSFY""1%%..q!R88F nnV$$G 	-,AKKNNNNNr   c                     t          t          d                    } t          j        g dd          }d }d }|                     |          }|                    |          }|j        t          j        k    sJ t          |j	        d         t                    sJ |                    |          }|j        t          j        k    sJ t          |j	        d         t                    sJ d S )Nr$   )r   r   r
  r/  r   r   r   c                 ^    t          t          |                                                     S rX   )r   strri   rO   s    r   convert_fastz>test_convert_objects_leave_decimal_alone.<locals>.convert_fastf  s    s16688}}%%%r   c                     t          | j        j                  dk    sJ t          t	          |                                                     S r   )rr   r  baser   ry  ri   rO   s    r   convert_force_purezDtest_convert_objects_leave_decimal_alone.<locals>.convert_force_purei  s;    18=!!A%%%%s16688}}%%%r   r   )r   r5   r7   rb  r3   rv   rC   object_rp  r2   r   )r  r  rz  r}  r~   r   s         r   (test_convert_objects_leave_decimal_aloner  b  s    uQxxAX///s;;;F& & && & &
 iiG[[&&F<2:%%%%fk!ng.....[[+,,F<2:%%%%fk!ng.......r   c                     t          g t          j        dd          d          } | d         j        t          j        k    sJ |                     d                                          }t          g dt          j                  }t          dt          g |d          i          }t          j
        ||d	
           d S )Nr   rD   r   )rP   r5   rP   rh   rC   r5   rK   T)	by_blocks)r   r7   r8   rC   rF   r3   r   r
   r   r9   r:   )r=   r   	exp_indexr   s       r   "test_groupby_dtype_inference_emptyr  y  s    	bi&A&A&ABB	C	CBc7=BJ&&&&ZZ__""$$Fbs"*555I'6"IW#M#M#MNOOH&(d;;;;;;r   c                     t          dgdgdgd          } |                     ddg          d                                         }t          dgt	          j        dgdggddg          d          }t          j        ||           d S )	NrV   l    4;PU  )r   r  r   r   r  r   r  r  )r   r3   r  r   r   from_productr9   rw   r  s      r   $test_groupby_unit64_float_conversionr    s    	aSQC;O:PQQ	R	RBZZ(+,,W599;;F	!qc
7H2EFFF  H
 68,,,,,r   c                 (   |                      t          | d                                                 d          }|                      | d                                       d          }t          j        ||d           t          j        t          d          5  |                      t          | d         d d                              d d d            n# 1 swxY w Y   t          d	d
gddgt          j
                            d                              d          d          } |                      ddg                                          }|                      | d         | d         g                                          dg         }d S )Nr   TrM  Fr   z^'foo'$rT   r*   r   rV   rJ   r   r%   )r   r   valr   r   r  )r3   r4   ri   r9   r:   rz   r{   KeyErrorr   r7   rn   ro   ra  r  s      r   "test_groupby_list_infer_array_liker    s   ZZRW&&+++>>Fzz"S'""''T'::H&(>>>>	xz	2	2	2 ' '


43%%&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 
q6q69((++;;A>>	
 	

 
B ZZ'',,..Fzz2e9bi0116688%AHHHs   1CC"Cc                  ~   d} t          t          d          d|           }t          ddgddggd	d
g|          }|                    t	          d|           d	g                                          }|                    |j        d	g                              t                    }t          j        ||           d S )Nr  z2015-09-29T11:34:44-0700r%   )startr#   freqr   rc   r      metricr  r  r   )r   r  )r   r   r   r3   r	   ri   r  r,   r   r   r9   r:   )r  r,   r=   r   r   s        r   $test_groupby_keys_same_size_as_indexr    s    D233QT  E 
S"IRy)Hh3Gu	U	U	UBZZqt444h?@@EEGGF||RXx01188??H&(+++++r   c                  d   d} t          t          j                            d                              d          t          d                    }t          j        t          |           5  |	                    d           d d d            n# 1 swxY w Y   t          t          j                            d                              d          t          d                    }t          j        t          |           5  |	                    d           d d d            d S # 1 swxY w Y   d S )	Nz^'Z'$r%   )rV   r   ABCDr  rT   Z)r%   r   )
r   r7   rn   ro   ra  r4   rz   r{   r  r3   )r   df1r  s      r   test_groupby_one_rowr    s   
C

	a  0088$v,,  C 
xs	+	+	+  C              

	a  0088$v,,  C 
xs	+	+	+  C                 s$   ,BBBD%%D),D)c                     t          t          j                            d                              d          t          j        t          d          t          j        t          d          t          j        t          d          t          j        t          d          gt          j        dt          j        dt          j        dt          j        dgd          } |                     d          }t          d	d
g          t          ddg          g}t          |j
                                                  }t          |          dk    sJ t          ||          D ]%\  }}t          j        |j
        |         |           &t          j        |j        j        d         j        |            |j        dk    sJ t          d          t          j        d	d
gt          j                  t          d          t          j        ddgt          j                  i}|j        D ](}t          j        |j        |         ||                    )t          j        |                    t          d                    | j        d	d
g                    t          j        |                    t          d                    | j        ddg                    t7          j        t:          d          5  |                    t<          j                   d d d            n# 1 swxY w Y   t          t          j        t          j        t          j        gt<          j        t<          j        t<          j        gd          }|d         j         dk    sJ |d         j         dk    sJ dD ]}|                    |          }|j
        i k    sJ |j        dk    sJ |j        i k    sJ t7          j        t:          d          5  |                    t          j                   d d d            n# 1 swxY w Y   t7          j        t:          d          5  |                    t<          j                   d d d            n# 1 swxY w Y   d S )Nr%   r7  z
2013-01-01z
2013-02-01r   r   )r  dtry  r  rV   r\   rJ   r$   r   z2013-01-01 00:00:00r   z2013-02-01 00:00:00z^NaT$rT   )r   natr   rF   r  zdatetime64[ns]z^nan$)!r   r7   rn   ro   ra  r   r   r3   r
   sortedr7  rn  rr   r  r9   r  r:   grouperr   r  ngroupsrb  intpr8  assert_numpy_array_equalr  r2   rz   r{   r  r.   r1   rC   )r=   r~   r   rn  r   r   nan_dfr   s           r   test_groupby_nat_excluder    s   	i++A..>>qAA,'','','',''	 FCbfc263G	
 	

 
B  jjGq!fuaV}}-H'.%%''((Dt99>>>>D(## 4 41 	gnQ/3333 '/3A6:B????a 	'(("(Aq6*I*I*I'(("(Aq6*I*I*IH
 _ E E
#GOA$6DDDD'++Il,C,CDDbgqRSfoVVV'++Il,C,CDDbgqRSfoVVV	xx	0	0	0 " ""&!!!" " " " " " " " " " " " " " " ("&"&"&1IJJ F %=)++++%="22222 & &..%%~####!####"$$$$]88444 	& 	&bf%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&]88444 	& 	&bf%%%	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	& 	&& &s6   & LLL2 PP"	%P"	 Q00Q4	7Q4	c                      t          t          j        t          j        gt          j        t          j        gddgd          } |                     ddg          j        }|i k    sJ d S )NrV   r%   r  r   r   )r   r7   r   r3   r8  r=   r   s     r   #test_groupby_two_group_keys_all_nanr     sX    	"&"&)0@1vNN	O	OBZZc
##+FR<<<<<<r   c                     t          t          d                    } ddg| d<   ddg| d<   ddg| d	<   d
dg| d<   |                     dg                              d          }t	          j        ddgddgg          }t          j        |j        t          dd	g                     t          j
        |j        |           d S )Nr%   r+   g1g2r   r   zerosrV   r  l1l2labelTrM          r   )r   r5   r3   ri   r7   rb  r9   r  r   r
   r  r  )r/  tmp
res_valuess      r   test_groupby_2d_malformedr    s    a!!!AAgJQAgJAAfIAgJ
))WI


#
#
#
6
6CC:Sz233J#+ugv->'?'?@@@
J77777r   c            	      :   t          j        t          j        d          t          j        d          t          j        d          f          } t          j        d          }t          || || t           j                            d                              d          d          }|                    g d                                          }|                    g d                                          }t          |          t          |          k    sJ d S )Nr!   i  ia  r%   )r   r   r)   rD  rl  rC  )rD  r)   r   r   )
r7   concatenater8   r   rn   ro   ra  r3   rZ   rr   )r   r   r=   r  r  s        r   test_int32_overflowr    s    
	%((")E*:*:BIdOOLMMA
	%A	&&q))99%@@	
 	

 
B ::***++//11DJJ+++,,0022Et99E

""""""r   c                     t          g dg dg dt          j                            d                              d          d          } d | g d         j        D             }t          j        |          }|                     g dd	
          	                                }t          j        |j        j        |g d                    d | g d         j        D             }t          j        |          }|                     g dd	
          	                                }t          j        |j        j        |           d | g d         j        D             }t          j        |          }|                     g dd	
          	                                }t          j        |j        j        |g d                    t          g dg dt          j                            d                              d          d          } |                     ddg          d         }|	                                }d fd} || |ddgd           d S )Nr   r   r  )rJ   r%   rV   rf   r%   rJ   r   r   r
  r/  c                 ,    g | ]}t          |          S rN   tupler   rows     r   r   z+test_groupby_sort_multi.<locals>.<listcomp>/      ===3E#JJ===r   r  Tr)  )rV   r%   r   c                 ,    g | ]}t          |          S rN   r  r  s     r   r   z+test_groupby_sort_multi.<locals>.<listcomp>4  r  r   )r
  r   r   c                 ,    g | ]}t          |          S rN   r  r   s     r   r   z+test_groupby_sort_multi.<locals>.<listcomp>9  s    999E!HH999r   )r   r
  r   )r%   rV   r   )r   rV   r%   r   rV   r%   )r   r   r   rV   rV   rV   rS  )r   r   r/  r   r   r/  c                 *    |                                  S rX   rY   rO   s    r   rQ   z)test_groupby_sort_multi.<locals>.<lambda>H  s    AEEGG r   c                     d | |         j         D             }t          j        |          } ||                     |          |                   }|                                D ]\  }}||         |k    sJ d S )Nc                 ,    g | ]}t          |          S rN   r  r  s     r   r   zCtest_groupby_sort_multi.<locals>._check_groupby.<locals>.<listcomp>I  s    666sc

666r   )r  comasarray_tuplesafer3   r9  )	r=   r   rn  fieldr   tupsr   r   r   s	            r   _check_groupbyz/test_groupby_sort_multi.<locals>._check_groupbyH  s    66bho666$T**1RZZ%%e,--NN$$ 	" 	"DAq!9>>>>>	" 	"r   )r   r7   rn   ro   ra  r  r  r  r3   rZ   r9   r  r,   )r=   r  r   r~   r  s        r   test_groupby_sort_multir  %  sZ   	&&&&&q))99!<<		
 	

 
B >="___"5"<===D &&DZZdZ337799F 3T)))_EEE=="___"5"<===D &&DZZdZ337799F 3T:::99b18999D &&DZZdZ337799F 3T)))_EEE	######&&q))99!<<	
 	

 
B jj#s$$S)G[[]]F2C2C " " " " N2vSz3/////r   c                      t          g dg ddz  d          } |                     dd                              d           }t          j        ||            d S )	N)r   r   r   r   r   r   r  r%   )r   rh   r   FrR   c                     | S rX   rN   rO   s    r   rQ   z/test_dont_clobber_name_column.<locals>.<lambda>W  s     r   )r   r3   rx   r9   r:   r  s     r   test_dont_clobber_name_columnr  R  so    	...8M8M8MPQ8QRR
 
B ZZ%Z0066{{CCF&"%%%%%r   c                     t          j                    } |                     d d          }|                    d           }d |D             }t	          j        |          }t          j        ||           | d                             d d          }|                    d           }d	 |D             }t	          j        |          }t          j        ||           d S )
Nc                     | j         S rX   r   rO   s    r   rQ   z&test_skip_group_keys.<locals>.<lambda>^  s    AG r   FrR   c                 >    |                      d          d d         S )Nr   r  rJ   sort_valuesrO   s    r   rQ   z&test_skip_group_keys.<locals>.<lambda>_  s    Q]]c]%:%:2A2%> r   c                 P    g | ]#\  }}|                     d           dd         $S )r   r  NrJ   r  r   r   r   s      r   r   z(test_skip_group_keys.<locals>.<listcomp>a  s6    FFF
Ue3''+FFFr   r   c                     | j         S rX   r   rO   s    r   rQ   z&test_skip_group_keys.<locals>.<lambda>f  r  r   c                 :    |                                  d d         S rM   r  rO   s    r   rQ   z&test_skip_group_keys.<locals>.<lambda>g  s    Q]]__RaR%8 r   c                 L    g | ]!\  }}|                                 d d         "S rM   r  r  s      r   r   z(test_skip_group_keys.<locals>.<listcomp>i  s1    @@@*#ue!!"1"%@@@r   )r9   r   r3   rx   r.   ro  r:   rw   )tsfr~   r   piecesr   s        r   test_skip_group_keysr  [  s    


 
 Ckk++k>>G]]>>??FFFgFFFFy  H&(+++#h00UCCG]]8899F@@@@@Fy  H68,,,,,r   c                     | d                                          }d |_        |                    | d                                       d          }|j        J d S )Nr)   r   rZ   )r   rh   r3   rv   )float_framer  r   s      r   test_no_nonsense_namer  o  sW    CAAFYY{3'((,,U33F;r   c                     t          t          j        d                              dd                    } d| d<   g d| d<   |                     d          }|                    ddd	          }|d         j        t          j        k    sJ d S )
NrI   rJ   r   test)g?      ?g?flrZ   r  )r  r%   )r   r7   r8   reshaper3   rv   rC   rF   )rP   r~   r   s      r   test_multifunc_sum_bugr  x  s    ")A,,&&q!,,--AAfIooAdGiiG[[&1122F$<++++++r   c                 "   d }d }|                      d          d                             |          }|                      d          d                             |          }t          |t                    sJ t	          j        ||           d S )Nc                 T    |                                  |                                 dS Nr  r  r  r   s    r   r   z(test_handle_dict_return_value.<locals>.f  s     yy{{599;;777r   c                 n    t          |                                 |                                 d          S r  )r   r  r  r   s    r   r   z(test_handle_dict_return_value.<locals>.g  s(    eiikk%))++>>???r   r   r)   )r3   rx   rp  r   r9   rw   )r=   r   r   r   r   s        r   test_handle_dict_return_valuer    s    8 8 8@ @ @ ZZ__S!''**Fzz#s#))!,,Hff%%%%%68,,,,,r   r  r   r   c                    d }d fd}|                      |d          }|                    |           |                               |                    d           |                    |           |d                             |           |d                                        |d                             |g           |d                             |           d S )Nc                     | j         J | S rX   r  r   s    r   r   ztest_set_group_name.<locals>.f  s    z%%%r   c                 <    | j         J |                                 S rX   )rh   rZ   r   s    r   freducez$test_set_group_name.<locals>.freduce  s    z%%%yy{{r   c                      |           S rX   rN   )rP   r  s    r   freducexz%test_set_group_name.<locals>.freducex  s    wqzzr   FrR   rO  r)   )r3   rx   ru   ry   )r=   r  r   r  r~   r  s        @r   test_set_group_namer    s            jjUj33G MM!gG'22333aCLqCL7###CLGX.///CL1r   c                      t          g dt          j        d          d          } g fd}|                     ddd                              |           g d}|k    sJ d S )	N)r   r   rV   rV   r%   r%   rS  r   c                 `                         | j                   |                                 S rX   )r  rh   r   )r   r  s    r   r   z6test_group_name_available_in_inference_pass.<locals>.f  s%    UZ   zz||r   r   F)r*  rS   rf   )r   r7   r8   r3   rx   )r=   r   expected_namesr  s      @r   +test_group_name_available_in_inference_passr    s    	+++")A,,??	@	@BE     JJs5J1177:::YYNN""""""r   c                 (   |                      | d         j                                                  }|j        j        J |                      | d         j        | d         j        g                                          }|j        j        dk    sJ d S )Nr   r   )NN)r3   r  rZ   r,   rh   r  r  s     r   test_no_dummy_key_namesr    s    ZZ3''++--F<$$$ZZCC899==??F<------r   c                     t          ddgddggg dg dgddg          } t          g d| 	          }t          ddgddggg d
g dgddg          } t          g d| 	          }|                    ddgd                                          }t	          j        ||           |                    ddgd                                          }t	          j        ||                                           d S )NrV   r%   )r   r   r   r   rV   rV   )rV   rV   r   r   r   r   r   r   r  )r   rV   r%   rJ   r   r$   r+   r  )rV   r   r   r   r%   r   Fr   r*  T)r   r   r3   r   r9   rw   
sort_index)r,   mseriesmseries_resultr   s       r   #test_groupby_sort_multiindex_seriesr    s2    AA!!!#5#5#56Cj  E
 '''u555GAA			999'=c3Z  E IIIU333N__C:E_::@@BBF6>222__C:D_99??AAF6>#<#<#>#>?????r   c                     d} t          dd|           }t          t          j        |           t          j        |           d|          }dd}|                    d	           }|                    d
 |t          j                  i          }|                    d
 |t          j        d          i          }t          j        ||           d S )N  z2012/1/15min)r  r  r#   )highlowr+   Fc                       fd}|S )z>
        Run an aggregate func on the subset of data.
        c                     | j         | j                            d                                                    }r| | j        d                   t	          |          dk    rd S  |          S )Nc                     | j         dk     S )Nrk  )hourrO   s    r   rQ   zYtest_groupby_reindex_inside_function.<locals>.agg_before.<locals>._func.<locals>.<lambda>  s    !&2+ r   r   )r   r,   rt  dropnarr   )r}   r/  fixfuncs     r   _funczGtest_groupby_reindex_inside_function.<locals>.agg_before.<locals>._func  sg    (=(=>>?FFHHA $TZ]##1vv{{t477Nr   rN   )r  r  r  s   `` r   
agg_beforez8test_groupby_reindex_inside_function.<locals>.agg_before  s)    
	 	 	 	 	 	 r   c                 B    t          | j        | j        | j                  S rX   )r   r   r   r   rO   s    r   rQ   z6test_groupby_reindex_inside_function.<locals>.<lambda>  s    8AFAGQU#C#C r   r  T)F)	r   r   r7   r8   r3   rv   r  r9   r:   )r#   indr=   r  r~   closure_badclosure_goods          r   $test_groupby_reindex_inside_functionr    s    G
:FG
D
D
DC	BIg..ry7I7IJJRU	V	V	VB    jjCCDDG++vzz"&'9'9:;;K;;

264(@(@ABBL+|44444r   c                  R   t          g dg dg dd          } |                     ddg          } |                     ddgd          }|                    d	          }t	          j        g d
ddg          }t          dgdgdgg|dg          }t          j        ||           d S )N)r   r   r   r   )r
  r
  r/  r
  )rV   rV   rV   r$   )group1group2r   r  r  Tr  rZ   ))r   r
  )r   r/  r   r
  r  r%   rV   r$   r   r(  )r   r  r3   rv   r   r  r9   r:   )r=   r   r   r?  r  s        r   $test_groupby_multiindex_missing_pairr    s    	******!\\	
 	

 
B 
x*	+	+B8X"6TBBJ
..

C

 ,,,Xx4H  C aS1#sO3	
B
B
BC#s#####r   c                     t          j        g dddg          } t          g dg|           }|j                                        sJ t          g dg dg d	g
          }|                    dddgd          }|                                }|j                                        rJ |                    d                                          }t          j
        t                    5  |                    d                                          }d d d            n# 1 swxY w Y   t          j        ||           t          g dg dg dd                              ddg          }|j                                        rJ ddddgfD ]}dD ]}|                    ||d                              t          j                  }|}t          j        ||           |                                                    ||d                              t          j                  }|                                }t          j        ||           d S )N))r    )b1c1)b2c2r   r
  r  rV   rJ   r   r  r  )rV   r  r  rJ   )rV   r  r  r   )r   r}   r   r/  )r,   r   r  )r   r   r   r   rV   rV   r%   r%   rV   r%   rJ   r   rP   r  zrP   r  r   rV   )FTF)r   r*  rS   )r   r  r   r   _is_lexsortedpivot_tabler  r3   ri   r9   rs   r   r:   r  r,   rx   drop_duplicatesr  )lexsorted_milexsorted_dfnot_lexsorted_dfr   r   r=   r   r*  s           r   %test_groupby_multiindex_not_lexsortedr#  
  s    )///Sz  L iii[,???L--///// !$$$,>,>,>@R@R@R+S   (33C:c 4   (3355'5577777##C((--//H		#$6	7	7 6 6!))#..33556 6 6 6 6 6 6 6 6 6 6 6 6 6 6(F+++ 
"""LLLII
 
ic
  x%%'''''QA 4 4! 	4 	4DZZe$5ZIIOO) F H!(F333 u4EBBy011 
 }}H!(F3333	44 4s   ,(D  D$'D$c                     t          t          d          g d          } |                     t          d                    }|                    d           }| j        g d         }t          j        ||           | d         }|                    t          d                    }|                    d           }|                    g d          }t          j        ||           | j	        
                    t                    | _	        |                     t          d                    }|                    d	           }| j        g d         }t          j        ||           | d         }|                    t          d                    }|                    d
           }|                    g d          }t          j        ||           d S )NABCDE)r%   r   r%   rV   rV   r+   ababbc                 (    t          |           dk    S rm   rr   rO   s    r   rQ   z4test_index_label_overlaps_location.<locals>.<lambda>@      A
 r   r  r   c                 (    t          |           dk    S rm   r(  rO   s    r   rQ   z4test_index_label_overlaps_location.<locals>.<lambda>F  r)  r   c                 (    t          |           dk    S rm   r(  rO   s    r   rQ   z4test_index_label_overlaps_location.<locals>.<lambda>M  r)  r   c                 (    t          |           dk    S rm   r(  rO   s    r   rQ   z4test_index_label_overlaps_location.<locals>.<lambda>S  r)  r   )r   r4   r3   filterr2   r9   r:   r:  rw   r,   r   r   )r=   r   actualr   r<   s        r   "test_index_label_overlaps_locationr/  ;  s    
4==	8	8	8B


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


4==!!AXX**++Fwyyy!H&(+++
Q%CDMM""AXX**++Fxx			""H68,,,,,r   c                  z   d} t          j        |           }t          |dz  d|z  d|z  d          }t          |dz  dz  d|z  d|z  d          }|                    d          }|                    d          }|                    d          }|                    d          }t          j        ||           d S )	NrS  r%   r        @r  r   r   ri   )r7   r8   r   r3   ry   r9   r:   )nrP   r=   r  r>   r   gb2r   s           r   "test_transform_doesnt_clobber_intsr4  X  s    	A
	!A	acAgC!G<<	=	=B
!q&3,S1W37CC
D
DC	CB\\&!!F
++c

C}}V$$H&(+++++r   sort_columnintsfloatsstringsgroup_column
int_groupsstring_groupsc                      t          g dg dg dg dg dd          }|                               }|                    |          } fd}|                    |           d S )	N)rJ   rV   r   rV   r   rJ   rJ   rJ   )r  r   r  r   r   r   r   r   )r7  r\   r   r$   r%   rI   rV   rV   )gffffff@g333333@g@g333333g@皙?r=  r$   )r  r/  r   r   wordword24247)r:  r;  r6  r7  r8  r  c                 Z    t          j        | |                                          d S )Nr  )r9   r:   r  )rP   r5  s    r   	test_sortz.test_groupby_preserves_sort.<locals>.test_sort  s*    
a+!>!>?????r   )r   r  r3   rx   )r5  r9  r=   r   rC  s   `    r   test_groupby_preserves_sortrD  g  s     
222EEE,,,===HHH	
 	

 
B 
;	'	'B


<  A@ @ @ @ @ GGIr   c                     t          t          t          j                    dd                                          t          dd          d          } |                     d          j        j        | d<   |                     d          j        j	        | d<   t          j        t          d	
          5  |                                                     dddd           d d d            d S # 1 swxY w Y   d S )Nrd   Mr#   r  r   )	eventDatethenamerH  r   r   z	'badname'rT   badnamer  )r,   r   r  aggfunc)r   r   r   todaytolistr5   r  r,   r   r   rz   r{   r  r  r  r`  s    r   !test_pivot_table_values_key_errorrN    s-   	#HN$4$4bsKKKRRTTQ||	
 	

 
B k**05BvJ,,{++17BwK	x{	3	3	3 
 

$$')W 	% 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s   3,C,,C03C0r   r)   rn  r  r  r   rV   z
US/Easternr'   
2016-01-01rJ   rD  rG  Int64r   Float64boolean)boolintr   ry  r5  dt64dt64tzperiodrP  rQ  rR  )idsmethod)r  rv   rx   )r   idxminr  r  rZ   r  r  c                 h   d }t          t                    rWt                    dk    rDdv r@t          j                            t          d          }	|j                            |	           t          t                    rdv rd}t          d         t                    rdv rd	}t          d
t          d                    }
t          d          r$|
j        j        k                                    sJ |
j        d d         }
|
                    d|d          |          fd}fd}t          |
j        j        d         t&          j                  }|
j        j        d         j        dk    }t          t                    }t          t                    rj        sdv rd d}t          j        t0          |          5   |             d d d            n# 1 swxY w Y   t          | t                    r+ |d          } |            }t3          j        ||           d S dv r|s|s|r|rd}n|rd}nd}dk    rd                    |dg          }t          j        t0          |          5   |             d d d            n# 1 swxY w Y   t          | t                    sd S dk    rd S  |d          }|
                              g          }|r
 |            }t3          j        ||           d S  |            }|
                              |          }dv r|                    |
j        j                  }||                    |          }t                    dk    rd         |j        _        t3          j        ||           d S ) NrV   )r   rZ  z0attempt to get arg(min|max) of an empty sequence)r{   rU   )rZ   r  rP  r   )r  rZ   rD   r-   ABCr  rC   F)rS   r  observedc                  j    dk    r t                    di | S  t                    fi | S )Nr  rN   )r,  )kwargsr>   rY  r{  s    r   
get_resultz&test_empty_groupby.<locals>.get_result  sN    V"72r??,,V,,,&72v&&r44V444r   c                      t          dgj                  } t                    dk    rt          j        | | g          }nt          | d                   }t          g g |          }|S )Nr   r   rV   r  r  r  )r   rC   rr   r   r  r
   r   )levr?  r   rn  r  s      r    get_categorical_invalid_expectedz<test_empty_groupby.<locals>.get_categorical_invalid_expected  sv    
 1#V\222t99>>)3*DAAACC $q'***CR3777r   rF  )r  r  zCannot perform z with non-ordered CategoricalrT   TrM  )r  rZ   r  z datetime64 type does not supportzPeriod type does not supportzcategory type does not supportr  |z!does not support reduction 'skew') rp  r   rr   rz   markxfailr  node
add_markerr   rS  r   r4   hasattrr   rC   r;  r2   r3   r.   PeriodDtypekindorderedr{   ry  r9   assert_equaljoinr  r   r,   rh   )r   rn  r  rY  r{  requestusing_array_managerr  override_dtypere  r=   r`  rc  is_peris_dt64is_catr   r   r   r>   s    ````              @r   test_empty_groupbyru    s   N N 	6;''&IINN&&&{  %W ! 
 
 	%%%&,'' !B/,A,A &)T"" !r_'<'< 	f6::DKK	P	P	PBvw 1	V\)..00000	!B	DU6E	J	J7	SB5 5 5 5 5 5 5       	q)2>::FinQ$+G,,F&+&& 
v~ 
"BVBVAAAA]9C000 	 	JLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 gt$$ 	.ZT222F7799HOFH---	$$$ !	f !	 !	  78 746V||hh%HIJJy444  
               gt,, v $666 <<--b1 B??AAH111Z\\F||D!!'*H	!!!??28>22!??>22
4yyA~~"1gOFH%%%%%s$   G33G7:G7J%%J),J)c                     t          t          j                            d                              d                    } | d                             t          j                  | d<   g d| _        |                     | d         d          }|	                    d           }|j
        | j
        k                                    sJ d S )	Nr%   )r   r   rJ   r   rV   r%   r   rV   FrR   c                     | S rX   rN   rO   s    r   rQ   z<test_empty_groupby_apply_nonunique_columns.<locals>.<lambda>:  s    Q r   )r   r7   rn   ro   ra  r   rD   r   r3   rx   r   r;  )r=   r>   r   s      r   *test_empty_groupby_apply_nonunique_columnsry  4  s    	29((++;;FCC	D	DBqELL""BqEBJ	BqEe	,	,B
((;;

CJ")#((*******r   c                     t          g dg dg dg dd          } t          j        t          d          5  | g d                             d           d d d            n# 1 swxY w Y   |                     d          d                                         }t          d	gdt          d
gd                    }t          j	        ||           d S )N)rV   rV   rV   rV   )r%   r%   r%   r%   )r   r   r   r
  z
('a', 'b')rT   r  r   r
  r   rV   r  r  )
r   rz   r{   r  r3   rZ   r   r
   r9   rw   r  s      r   test_tuple_as_groupingr{  >  s"   	$		
 	

 
B 
x}	5	5	5 0 0
???##J///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ZZ
##C(,,..Fqc5!:+F+F+FGGGH68,,,,,s   A""A&)A&c            	      *   t          dt          d          t          j        ddgddgg                    } t	          j        t          d          5  |                     d                                           d d d            d S # 1 swxY w Y   d S )	NrV   rJ   r%   r   r(  z
^\(7, 8\)$rT   )r\   r7  )	r   r5   r   r  rz   r{   r  r3   ri   r`  s    r   test_tuple_correct_keyerrorr}  Q  s    	1E!HHj.E1vPQSTvFV.W.W	X	X	XB	x}	5	5	5 " "


6!!!" " " " " " " " " " " " " " " " " "s   (BBBc            
         t          dgdggt          dgd          t          dddd	          
          } t          g dg dgt          j        dg d          t          dddd	          
          }|                     t          d                                        ddg          }t          j	        ||           d S )NrV   r   mycolsr  
2018-01-01r%   rD  dti)r#   r  rh   r  )rV   rV   rV   rV   rV   ))r   rZ   r   )r   ohlcopen)r   r  r  )r   r  r  )r   r  close)r  NNr  )r  rZ   r  )
r   r
   r   r   r  r3   r	   rv   r9   r:   r+  s      r   test_groupby_agg_ohlc_non_firstr  X  s    	
qc
ugH---qsGGG
 
 
B 	///*& )((	
 	
 	
 qsGGG  H ZZS)))**..v??F&(+++++r   c                     t           j        dft          ddd          dft          ddd          dft          ddd          dfg} t          j        | dd g          }t          g d	|
          }|                    d                                          }t          ddgddg
          }t          j	        ||           d S )Nr   i  rV   r%   r   rJ   dater  )rJ   r%         @r   r+   r  r1  r  )
r.   r1   r   r   r  r   r3   ri   r9   rw   )r  r  r<   r   r   s        r   test_groupby_multiindex_natr  t  s     
	$1		s#	$1		s#	$1		s#	F 
	vtn	=	=	=B
r
*
*
*C[[q[!!&&((FsCjc
333H68,,,,,r   c                     t          t          d          t          d                    } t          | ddg          }d}t          j        t
          |          5  |                    g g           d d d            d S # 1 swxY w Y   d S )Nrc   appler   r  z$Grouper and axis must be same lengthrT   )r  r5   r   rz   r{   r  r3   )r  r=   r   s      r   test_groupby_empty_list_raisesr    s    rE"II&&F	6GS>	2	2	2B
0C	z	-	-	-  


B4                 s   A??BBc                  V   ddgddgddgg} g d}t          j        | |          }t          ddg|	          }|                    d
dg                                          }dgdgg} d
dg}t          j        | |          }t          dg|          }t          j        ||           d S )NrP   r   r   r   )r   r  thirdr  rV   r%   r"  r   r  rJ   r+   )r   from_arraysr   r3   rZ   r9   rw   )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)**..00F53%.KG$K		;	?	?	?Bqc$$$H68,,,,,r   c                     t          j        ddgddggddg          } t          g dg d	d
|           }|                    t	          d          dg          }|                    ddg          }|j        |j        k    sJ |                    dt	          d          g          }|                    ddg          }|j        |j        k    sJ d S )Nr   r   r)   rD  r  betar  )rV   r%   rV   r%   r  rP  r+   r  )r   r  r   r3   r	   r7  )r  r=   r   r   s       r   "test_groupby_groups_in_BaseGrouperr    s     
	 3*sCj!9'6AR	S	S	SB	<<<==R	H	H	HBZZw///899Fzz7F+,,H=HO++++ZZw!7!7!7899Fzz67+,,H=HO++++++r   
group_namerP   c                    t          t          j        d                              dd          g dg d          }d|j        _        d|j        _        d	}t          j        t          |
          5  |
                    | d          }d d d            n# 1 swxY w Y   |                                }|j        
                    |                                           j        }t          j        ||           g dddgg}t          j        |ddg          }t          t          j        d                              dd          g d|          }t          j        t          |
          5  |
                    | d          }d d d            n# 1 swxY w Y   |                                }|j        
                    |                                           j        }t          j        ||           d S )Nr]   rJ   r   r   rV   r   )rc   rd   rc   rd   r(  r  rP   rE  rT   rV   r   )r   r  r   ra   rb   x1)	iterablesr     rS  )r   r7   r8   r  r,   rh   r   r9   rs   rt   r3   rZ   r   r:   r   r  )r  r=   r  r>   resultsr   r  r  s           r   test_groupby_axis_1r    sF    

	"a##999>N>N>N
 
 
B BHMBJO<H		#M	B	B	B , ,ZZ
Z++, , , , , , , , , , , , , , , ffhhGt||J''++--/H'8,,, '&&7I		 9S$K	H	H	HB	29R==((A..iii	L	L	LB		#M	B	B	B , ,ZZ
Z++, , , , , , , , , , , , , , ,ffhhGt||J''++--/H'8,,,,,s$   2BBB0FFF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           	         | g dt          d          t          d          d d t          d          t          d          gd}t          |                              fd          }|                    d	          } t	          ||                      }t          |                              fd
          }t          j        ||           d S )N)r   r   r   r   r   r   r  r  r  r  )ru  r  c                 B    | j         j                                      S rX   r  r  tz_localizerP   r(   s    r   rQ   z+test_shift_bfill_ffill_tz.<locals>.<lambda>	  s    qvy/D/DR/H/H r   )r  ru  c                 B    | j         j                                      S rX   r  r  s    r   rQ   z+test_shift_bfill_ffill_tz.<locals>.<lambda>	  s    9N9Nr9R9R r   )r   r   assignr3   r,  r9   r:   )tz_naive_fixturer{  r   r}   r=   r~   r   r(   s          @r   test_shift_bfill_ffill_tzr    s    \ 
B,,,+,,+,,+,,+,,

 
D 
4		%H%H%H%H		I	IBjjG!WWb!!##F""))/R/R/R/R)SSH&(+++++r   c                      t          d gdd          } |                     d          d                             d          }t          t          j        gd          }t          j        ||           d S )NrV   )r   rP   r   rP   rZ   r  )r   r3   ry   r   r7   r   r9   rw   )r=   r.  r   s      r   test_groupby_only_none_groupr  		  sl     
$a((	)	)BZZ__S!++E22FrvhS)))H68,,,,,r   c                      t          g dg d          } |                     d          }|                                }t          g dg d          }t          j        ||           d S )N)r%   r$   rS  r7  )r  r  r  r.  r+   r   r  )r%   g      @r7  )r  r  r.  )r   r3   ri   r9   rw   )r<   r>   r   r   s       r   test_groupby_duplicate_indexr  	  sr    
%9%9%9
:
:
:C	1		BWWYYFkkk999H68,,,,,r   c                 |   t          dt          d          ddggg d          }|d                             t                    |d<   |d                             t                    |d<   |                    d	d
g          }| dk    rd}nd} |j        d d                             d	g          j        | g|R  } |                    d	g          j        | g|R  j        d d         }| dv r|                    t                    }t          j	        ||            |d         j        d d                             d	g          j        | g|R  } |d                             d	g          j        | g|R  j        d d         }| dv r|                    t                    }t          j	        ||           d S )NrV   rL  rJ   r   )col_1col_2col_3col_4r}   r   r  r  r  r  fillna)r  rN   r   )diffr  )
r   r   r   rT  r  r2   r3   ry   r9   rm  )transformation_funcro  r=   argsr   r   s         r   test_group_on_empty_multiindexr  	  s    
)G$$a+,444
 
 
B W+$$S))BwKW+$$S))BwK	w(	)	)Bh&&5RWRaR[  '++56IQDQQQF.rzz7)$$./BJTJJJOPRQRPRSH///??3''OFH%%% 	:7!$$gY//9:MUPTUUU  	17WI&&01DLtLLLQRTSTRTU  ///??3''OFH%%%%%r   r?  r   r  )r   r   r  r   r  c                 $   | dv rt          j        d|             t          ddgg|          }|                    dg          }t	          | |          } t          ||           | }|j        dk    sJ t          j        |j	        |           d S )N>   r  r  cumcountzNot applicable for rV   r  r   r   )
rz   r  r   r3   r   r,  shaper9   r  r   )groupby_funcr?  r=   grp_byr  r   s         r   test_dup_labels_output_shaper  <	  s     5558,88999	QF8S	)	)	)BZZ__F"<44D*WV\**D1F<6!!!!&.#.....r   c                    t          ddd          }t          ddgddgddgd          }d	|j        _        ||_        |                    |           }|s
|j        }d
}nd}t          j        t          |          5  |
                    |d          }d d d            n# 1 swxY w Y   |                                }t          ddgddgd|          }d|j        _        |s|j        }t          j        ||           |dk    rYt          j        t          |          5  |g          
                    |d          }d d d            n# 1 swxY w Y   |g          }	nt          j        t          |          5  |j        g          
                    |d          }d d d            n# 1 swxY w Y   |j        g                              t           j                  }	|                                }
t          j        |
|	           d S )NrO  r%   r   )r#   rh   rV   rJ   r   )rR  )r   r)   )rD  r   )r   r  rG  rE  rT   )r   r   )r   rD  r+   r   )r   r   r   r  r,   _get_axis_numberr   r9   rs   rt   r3   nuniquerh   r:   r   r   r7   rF   )r   r  r=   axis_numberr   r>   r   r   r3  r  r   s              r   test_groupby_crash_on_nuniquer  Q	  s   
\15
9
9
9C	AQFAOO	P	PB%BJBH%%d++K <TE;		#M	=	=	= 3 3ZZ[Z223 3 3 3 3 3 3 3 3 3 3 3 3 3 3ZZ\\F1vQF333???H!H :&(+++a'SAAA 	< 	<R&..k.;;C	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<rl 'SAAA 	@ 	@&*$$+Q$??C	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ 	@ l2%%bj11
++--C#s#####s6   =B!!B%(B%#EEE<#F++F/2F/c                      t          t          j        dd                              dd          t                    } |                     dg                                          }t          j        ||            d S )Nr   rI   rJ   r   r  )	r   r7   r8   r  r   r3   ri   r9   r:   )r   r   s     r   test_groupby_list_levelr  z	  sk    1a00A66eDD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], ...})rV   z{0: [0], ...}c                    t          t          j                            d                              d                    }|j        |d<   t          j        d|           5  |                    d          j	        
                                }||k    sJ |                    t          j        |j                            j	        
                                }||k    sJ 	 d d d            d S # 1 swxY w Y   d S )Nr%   )r$   rV   r   zdisplay.max_seq_items)r   r7   rn   ro   ra  r,   r.   option_contextr3   r7  __repr__rb  r   )max_seq_itemsr   r=   r   s       r   test_groups_repr_truncatesr  	  s    
29((++;;FCC	D	DBhBsG		2M	B	B " "C'0022!!!!BHRTNN++2;;==!!!!!" " " " " " " " " " " " " " " " " "s   B C--C14C1c                  d   t          ddddddddg          } |                     ddg          } |                     ddg          }|j        }dt	          j        d	dgt          j        
          i}t          |          dk    sJ d}||         ||         k                                    sJ d S )NrV   r%   c   r  X   r   r   r   r   r   )	r   r  r3   r8  r7   rb  rD   rr   r;  )r=   r   r   r   r   s        r   6test_group_on_two_row_multiindex_returns_one_tuple_keyr  	  s    	!!"--QQR/H/HI	J	JB	sCj	!	!B
**c3Z
 
 C[F!Qrx8889Hv;;!
C3K8C=(--///////r   zklass, attr, valuer   r*  rS   r]  r  c                    t          dgdgdgd          }|dk    r|                    d          } |j        di ||i}| t           u r	|dg         n|d         }t          ||          t          ||          k    sJ d S )	NrV   r%   rJ   r  r   r   r   )r   )r   r  r3   r,  )r  r  r   r=   r   r   s         r   #test_subsetting_columns_keeps_attrsr  	  s    & 
!A3aS11	2	2Bv~~\\#rz//$//H % 2 2Xse__F64  GHd$;$;;;;;;;r   c                  r   t          dgdgdgd          } d}t          j        t          |          5  |                     g dd          }d d d            n# 1 swxY w Y   d	}t          j        t          |          5  |d
dg                                          d d d            d S # 1 swxY w Y   d S )NrV   r%   rJ   r-   rE  rT   r  r   z'Cannot subset columns when using axis=1r   r   )	r   r9   rs   rt   r3   rz   r{   r  rZ   )r=   r   r   rU   s       r   test_subsetting_columns_axis_1r  	  s@   	!A3aS11	2	2B
7C		#M	=	=	= * *JJyyyqJ))* * * * * * * * * * * * * * *5E	z	/	/	/  	3*                 s#   AA!AB,,B03B0r  )rZ   anyr  c                     t          dgd          }t          dgg|          }|                    dg          } t          ||                       j        }t          j        ||           d S )Nr   r?  r  rV   r  )r
   r   r3   r,  r   r9   r  )r  r   r=   r   r   s        r   #test_groupby_column_index_name_lostr  	  sr     cU'''H	QC5(	+	+	+BQCJ&WZ&&((0F&(+++++r   infer_stringpyarrow)marksc                    t          g dg dg dd                              t                    }g d|_        t	          j        d|           5  |                    g d                                          }d d d            n# 1 swxY w Y   t          g dgt          j	        d	g          g dt          
          }t          j        ||           d S )N)r   r   r   r0  r  r  r-   )r   r   r   zfuture.infer_string)r   r   r   r   )r   r   rV   r   )r,   r   rC   )r   r   r'  r   r.   r  r3   r  r7   rb  r9   r:   )r  r=   r   r   s       r   test_groupby_duplicate_columnsr  	  s"    
""")=)=)=LLLQQ
 
fVnn  !BJ		0,	?	? 0 0LLL))--//0 0 0 0 0 0 0 0 0 0 0 0 0 0 0	rx}}oooV  H &(+++++s   *BB
B
c                     t          g dg dd          } d| j        _        |                     d                                          }t          dd	gd
dgd          }d|j        _        t          j        ||           d S )Nr  r  r  r,   rh   )r   r   r   r  r%   r   rV   )r   r,   rh   r3   lastr9   rw   )r<   r   r   s      r   #test_groupby_series_with_tuple_namer  	  s    
\\\

C
C
CCCIN[[q[!!&&((Fq!fQF<<<H$HN68,,,,,r   zfunc, valuesrZ        @X@     X@ri   g     @8@g     8@c                    g d}t          ddgdz  ||d          } t          |                    d          |                       }t          ||dt          ddgd          	          }t	          j        ||           d S )
N 7yACr  a   b    7y1r  r  r  rV   r%   r   r   r   r   r   r   r  r+   )r   r,  r3   r
   r9   r:   )r  r  r}   r=   r   r   s         r   )test_groupby_numerical_stability_sum_meanr  	  s    
 <;;D	aVaZd>>	?	?B/WRZZ(($//11FvF335!Qg;V;V;VWWWH&(+++++r   c                     g d} t          ddgdz  | | d          }|                    d                                          }dgdz  dd	gz   d
dgz   ddgz   }t          ||d          }t          j        ||d           d S )Nr  rV   r%   r   r  r   r  g07yACg17yACga7y1Cgb7y1Cr  r  r   T)check_exact)r   r3   r  r9   r:   )r}   r=   r   exp_datar   s        r   'test_groupby_numerical_stability_cumsumr   
  s    ;;;D	aVaZd>>	?	?BZZ  ''))F	
i++y).DDd|S  xh7788H&(======r   c                     t           j                            d                              d          } t	          |           }t          d          D ]}t           j        |j        ||f<   d|d<   |                    d          }|	                    d          }|g d         	                    d          }t          j        ||           d S )	Nr%   )r$   r$   r$   rV   r   FskipnarB  )r7   rn   ro   ra  r   r5   r   r2   r3   r  r9   r:   )rm  r=   ir>   r   r   s         r    test_groupby_cumsum_skipna_falser  
  s    
)


"
"
2
26
:
:C	3B1XX  1BsG	CB
))5)
!
!C///")))77H#x(((((r   c            	      j   t          dd          } t          |           | d         z
  }t          j        |d<   t	          d|d          }|                    d          }|                    d	d
          }t	          d|d         |d         t          j        |d         |d         dz  gi          }t          j        ||           |                    d	d	          }t	          d|d         |d         t          j        t          j        t          j        gi          }t          j        ||           d S )NrO  r$   r"   r   r%   rV   rR  r   FT)rN  r  r   r   )	r   r   r.   r1   r   r3   r  r9   r:   )r  r<   r=   r>   r   r  s         r   test_groupby_cumsum_timedelta64r  
  s   
\1
-
-
-C
++A
CVCF	%%	&	&B	CB
))t)
4
4C
S3q63q6263q63q6A:FG
H
HC#s###
))u)
5
5C
S3q63q6262626BC
D
DC#s#####r   c                     | }|                     d                                          }|                     |j                                                  }t          j        ||           d S )Nr   r  )r3   ri   r,   r9   rw   )(rand_series_with_duplicate_datetimeindexdupsr   r   s       r   !test_groupby_mean_duplicate_indexr  .
  s^    3D\\\""''))F||DJ'',,..H68,,,,,r   c                  X   t          g dt          j        t          j        t          j        g          } |                     | j                                                  }t          g t          g t          j                  t          j                  }t          j
        ||           d S )Nr   r   rK   )r   r7   r   r3   r,   rZ   r
   rF   rD   r9   rw   r  r   r   s      r    test_groupby_all_nan_groups_dropr  5
  s    yyy262626233AYYqw##%%Fbb
 ; ; ;28LLLH68,,,,,r   c                 N   t          g g d          }|                    ddg|           }|                    |          }| r t          g g gg g gddg          }|sdgng }nt	          d	          }|sg dnddg}t          g ||
          }t          j        ||           d S )Nr-   r  r   r   r   rM  r  r)   r   r  )r   r3   rZ   r   r   r9   r:   )r   rN  r=   r>   r   r,   r   r   s           r   test_groupby_empty_multi_columnr  =
  s     
OOO	4	4	4B	S#J	2	2BVVV..F FB8b"Xc3Z@@@+33%%1)5E////C:WE:::H&(+++++r   c                  "   t          ddggddggddggddgggddg          } t          dddgddggit          ddgd	d
                    }|                     dg          }|                                }t	          j        ||           d S )NrF  rV   Wrc   rd   MWr   r  r'  rC   rh   r+   r  )r   r
   r3   rZ   r9   r:   r=   r   r>   r   s       r   *test_groupby_aggregation_non_numeric_dtyper
  M
  s    	
scA3Z#tsRDk:T3K
 
 
B 1a&2r(#	
 S#JhT:::	  H 
v		BVVXXF&(+++++r   c            	         t          g dd t          dd          D             d t          dd          D             d          } t          d t          dd	          D             d
 t          dd	          D             dt          ddgdd                    }|                     dg          }|                                }t          j        ||           d S )NrV   r   rV   rV   r   c                 .    g | ]}t          |d           S daysr   r   r  s     r   r   zDtest_groupby_aggregation_multi_non_numeric_dtype.<locals>.<listcomp>d
  "    <<<1)Av&&<<<r   rV   rS  c                 4    g | ]}t          |d z  d          S rc   r  r  r  s     r   r   zDtest_groupby_aggregation_multi_non_numeric_dtype.<locals>.<listcomp>e
  &    AAA)AFF++AAAr   r  c                 .    g | ]}t          |d           S r  r  r  s     r   r   zDtest_groupby_aggregation_multi_non_numeric_dtype.<locals>.<listcomp>k
  r  r   r\   rI   c                 4    g | ]}t          |d z  d          S r  r  r  s     r   r   zDtest_groupby_aggregation_multi_non_numeric_dtype.<locals>.<listcomp>l
  r  r   r  r  r   rD   rP   r  r+   r  )r   r5   r
   r3   rZ   r9   r:   r	  s       r   0test_groupby_aggregation_multi_non_numeric_dtyper  _
  s    	 <<a<<<AAU1a[[AAA	
 	

 
B <<a<<<AAU1a[[AAA	
 	
 QF'444  H 
u		BVVXXF&(+++++r   c            
         t          g dd t          dd          D             t          t          dd                    d          } t          t          dd          t          dd          gddgd	t	          d
dgdd                    }|                     dg          }|                                }t          j        ||           d S )Nr  c                 .    g | ]}t          |d           S r  r  r  s     r   r   zKtest_groupby_aggregation_numeric_with_non_numeric_dtype.<locals>.<listcomp>{
  r  r   rV   rS  r  r\   r  r7  r  r   rD   rP   r  r+   r  )	r   r5   r4   r   r
   r3   rZ   r9   r:   r	  s       r   7test_groupby_aggregation_numeric_with_non_numeric_dtyper  v
  s    	 <<a<<<eAqkk""	
 	

 
B F##Yq&%9%9:!QHHQF'444  H
 
u		BVVXXF&(+++++r   c                  :   dddddddddddddddg} t          |           }||d         dk             }|                    d          }|                                }t          g d	gg d
t          dgd                    }t	          j        ||           d S )NFTg      %@)
filter_colgroupby_colbool_col	float_colg     4@g     >@r  r  )r  r  g$+H@)r  r   r!  r  r  )r   r3   r6   r
   r9   r:   )dictsr=   	df_filterdfgbr   r   s         r   test_groupby_filtered_df_stdr%  
  s     TtRVWWDdQUVVDdQUVVE
 
5		B2l#t+,I]++DXXZZF			777TF///  H
 &(+++++r   c            	         t          t          t          d                    t          t          g d          d          t	          j        g dddg          d	          } |                     d
dgd          j        }d
t          d          ft          j
        dg          dt          d          ft          j
        dg          dt          d          ft          j
        dg          i}||k    sJ d S )Nabc)r  z
2018-02-01z
2018-03-01categoryr   )r*   r   rV   r   rV   )
categoriesr  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   r4   r   r   
from_codesr3   r8  r   r7   rb  r  s      r   2test_datetime_categorical_multikey_groupby_indicesr,  
  s   	U$$FFFGG    '


1vFFF	
 	
	
 	
B ZZc
UZ33;F	i-../1#	i-../1#	i-../1#H
 Xr   c                     dgdz  dgdz  z   } t           j        t           j        dddgt           j        ddddgz   }t          | |g          j        }dd	g|_        d
}t          j        t          |          5  |                    d          d	         	                    dd          
                                 d d d            d S # 1 swxY w Y   d S )NAlicer$   BobrV   r%   rJ   r   rh   r  z<__init__\(\) got an unexpected keyword argument 'min_period'rT   )window
min_period)r7   r   r   r   r   rz   r{   ry  r3   rollingrZ   )name_lval_ltest_dfresult_error_msgs       r   #test_rolling_wrong_param_min_periodr7  
  s'   Y]eWq[(FVRVQ1%Aq!(<<E((*GuoGOV	y(8	9	9	9 M M&..aA.FFJJLLLM M M M M M M M M M M M M M M M M Ms   7ACCCzstring[pyarrow_numpy]c                 L   t          g dg dt          g d|           d          }t          j        dd}|                    dg                              |          }t          d	d
gd	gddgddgd                              d          }t          j        ||           d S )N)Thomasr9  Thomas John)i  i    )sadhappyr=  r   )NameCreditMoodrZ   )r@  r?  r>  r=  r<  i	  r;  r9  r:  )r@  r?  r>  )r   r   moder3   rv   r  r9   r:   )rC   r=   aggregate_detailsr   expected_results        r   .test_by_column_values_with_same_starting_valuerD  
  s     
777'''444EBBB	
 	

 
B "(>>ZZ!!%%&788Fu%w/Sk}-	
 	
  i  &/22222r   c                  6   g dg dg} t          dt          j        | ddg                    }|                    ddg	                                          }t          dd
gt          j        ddgddg                    }t          j        ||           d S )N)NrV   r   rV   )r%   rJ   r%   rJ   rV   r   r   r  r+   r   r  r%   )r  r%   )r   rJ   )r   r   r  r3   rZ   r  r9   rw   )rm  r<   r   r   s       r   #test_groupby_none_in_first_mi_levelrF  
  s    ??LLL
)C
*0S#JGGG
H
H
HC[[1v[&&**,,F	
A
&(';C:NNN H 68,,,,,r   c                     t          g dg dg dd          } |                     d g                                          }t          ddgdd	gd
t          ddgd                     }t	          j        ||           d S )Nr  )rV   rV   r%   rJ   )r   r$   rS  r\   )Nr   r
  r  r%   r$   rI      r  rV   r  r+   )r   r3   rZ   r
   r9   r:   r  s      r   test_groupby_none_column_namerI  
  s    	,,,\\\MM	N	NBZZD6Z""&&((F1vQG44E1a&t<T<T<TUUUH&(+++++r   	selectionc                     t          ddgt          j        dgt          j        dgdddg          }| |                    dg          n|                    dg          |          }d	 |D             }d
dg}||k    sJ d S )NrV   r%   r$   r  rP   r  r+   r   c                     g | ]\  }}|S rN   rN   r   r   r=  s      r   r   z5test_single_element_list_grouping.<locals>.<listcomp>
  s    (((fc1c(((r   )rV   )r%   )r   r7   r   r3   )rJ  r=   r~   r   r   s        r   !test_single_element_list_groupingrN  
  s     
!QrvqkDDSRUJ	W	W	WB#,#4bjj#"**cU:K:KI:VG(((((Fd|HXr   c                  V   t          g dg dd          } | d                             d          | d<   t          g dg dd          }|d                             d          |d<   |                     dd	          }|                                }t	          j        ||           d S )
N)r   r   r
  r   )rV   r%   rJ   r%   )str_colnum_colrP  stringr  )r  r  r1  Fr   )r   r   r3   ri   r9   r:   )r=   r   r~   r   s       r   test_groupby_string_dtyperS  
  s    	333MM	N	NByM((22ByM  
 '	
 	
	 	H #9-44X>>HYjjUj33G\\^^F&(+++++r   zlevel_arg, multiindex)r   F)rT  Tc                    t          ddgddgddgddd	g
          }|r|                    ddg          }d}t          j        t          |          5  d |                    |           D              d d d            d S # 1 swxY w Y   d S )NrV   r%   rJ   r   r$   rS  r  rP   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.rT   c                     g | ]\  }}|S rN   rN   rM  s      r   r   zKtest_single_element_listlike_level_grouping_deprecation.<locals>.<listcomp>  s    777a777r   r  )r   r  r9   rs   rt   r3   )	level_argr  r=   r  s       r   7test_single_element_listlike_level_grouping_deprecationrX    s    
 
!Qq!fAq6::3*	M	M	MB &\\3*%%	,  
	#M	B	B	B 8 8772::I:6677778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8s   !BB	B)rZ   r  cumprodr  c                 2   d}t          d|gd          } t          |                    d          |                       |z
  }t          ddgit          dgd                    }| d	v r|                    d
          }t          j        ||           d S )Nl   L33ffrV   r   r   r   r   r  r+   )r  rY  Tr  )r   r,  r3   r
   r  r9   r:   )r  r  r=   r   r   s        r   #test_groupby_avoid_casting_to_floatr[  !  s     C	#''	(	(B+WRZZ__d++--3F#s5!3+?+?+?@@@H$$$''T'22&(+++++r   z	func, val)rZ   rJ   )r  r%   c                    t          dddt          j        gd|           } t          |                    d          |                      }t          d|git          dgd|           |           }t          j        ||           d S )	NrV   r%   r   r   r   r   r  rK   )r   r.   NAr,  r3   r
   r9   r:   )any_numeric_ea_dtyper  r  r=   r   r   s         r   test_groupby_sum_support_maskr_  -  s     
!Q//7K	L	L	LB+WRZZ__d++--F	seQCc)=>>>"  H
 &(+++++r   z
val, dtype)o   rT  )   uintc           	         t          d| | gd| d          }|                    d                                          }t          d| dz  git          dgd| d          | d	
          }t	          j        ||           |                    d                                          }t          d| | dz  gi| d	          }t	          j        ||           |                    d                                          }t          d| | z  git          dgd| d          | d	
          }t	          j        ||           d S )NrV   r   8r   r   r   r%   r  64rK   )r   r3   rZ   r
   r9   r:   r  r  )r  rC   r=   r   r   s        r   test_groupby_overflowrf  :  sk    
#s,,uKKK	@	@	@BZZ__  ""F	sQwiQCcE555lll  H
 &(+++ZZ__##%%F#S1W~.lllCCCH&(+++ZZ__!!##F	sSykQCcE555lll  H
 &(+++++r   zskipna, val)TrJ   c                    t          ddt          j        dgd|           }|                    d                              |          }t          ddt          j        |gi|           }t          j        ||           d S )NrV   r%   r   r   r   r  r   )r   r.   r]  r3   r  r9   r:   )r^  r  r  r=   r   r   s         r   test_groupby_cumsum_maskrh  S  s     
!RUA//7K	L	L	LBZZ__##6#22F	q"%o"  H &(+++++r   zval_in, index, val_out)r   r  r1  r  r.  )r   r   r   r  blah)r1  r  r.  r1  )r   r  r1  r  r.  g      @)r   r   r   r  ri  ri  )r1  r  g      &@r1  c                    t          | dt          |d                    }|                    d                                          }t          |dt          g dd                    }t	          j        ||           |                                                    d                                          }|                                }t	          j        ||           d S )Nr  ri  r  )r}   rh   r,   )r   r  ri  r   )r   r
   r3   rZ   r9   rw   r0   r:   )val_inr,   val_outseriesr   r   s         r   (test_groupby_index_name_in_index_contentrn  _  s    " heE6O6O6OPPPF^^F##''))F111???  H
 68,,,__&&v..2244F  ""H&(+++++r   r2  )rV   rc       r  r  c                 .   t          ddg| z  d          }|d                             d          |d<   |                    d                                          }t          d| git	          dgd                    }t          j        ||           d S )NrV   T)r  rS  rS  r  r  r+   )r   eqr3   rZ   r
   r9   r:   )r2  r=   r   r   s       r   test_sum_of_booleansrr  ~  s     
1tfqj99	:	:BFt$$BvJZZ&&**,,F&1#eQCm.L.L.LMMMH&(+++++r   z<ignore:invalid value encountered in remainder:RuntimeWarning)r5  tailr  r   r  c                 
   t          dt          j        dt          j        dgt          d          d          }| dk    r. t	          |                    d          |           d	          }n+ t	          |                    d          |                       }| d
v r8t          dg di                              t          g dd                    }nt          g dg ddg d          }t          j	        ||           d S )Nr   r   r
  r$   rR  r  r   r   )r2  )r   r  r   r  r  r  r+   )
r   r7   r   r5   r,  r3   r  r   r9   r:   )rY  r=   r   r   s       r   test_groupby_method_drop_naru    s	    
#rvsBFC8uQxxHH	I	IB1C&11A6661C&1133"""c999-..88???---
 
 ???CC999UUU&(+++++r   c                  h   t          j        ddd          } t          t          d                    dz  }|                                 }|                    |          }t          j        t          d          5  |	                                 d d d            n# 1 swxY w Y   t          j        t          d          5  |
                                 d d d            n# 1 swxY w Y   t          j        t          d	          5  |                                 d d d            n# 1 swxY w Y   t          j        t          d
          5  |                                 d d d            n# 1 swxY w Y   |                                }|dd          }t          t          d          t                    |_        t#          j        ||           |                                }|d d         }t          t          d          t                    |_        t#          j        ||           d S )NrO  r  rD  rG  rc   z+Period type does not support sum operationsrT   z.Period type does not support cumsum operationsz,Period type does not support prod operationsz/Period type does not support cumprod operationsir   )r.   period_ranger4   r5   	to_seriesr3   rz   r{   ry  rZ   r  r  rY  r  r
   rT  r,   r9   rw   r  )pigrpsr<   r>   r   r   s         r   test_groupby_reduce_periodr{    s   	s	=	=	=Bb		??RD
,,..C	T		B	y(U	V	V	V  
              	I
 
 
   			               
y(V	W	W	W  
			              	J
 
 
   	

              
 &&((C344yH599C000HN3)))
&&((C3B3xH599C000HN3)))))sH   ;BB #B C##C'*C'	D**D.1D.E11E58E5c                      t          g dg          } g d| _        |                     | d                   }|j        }|                     g dd          }t          j        ||           d S )N)r   rV   r%   rJ   rw  rV   )r   r%   rJ   r   )r   r   r3   _obj_with_exclusionsr:  r9   r:   )r=   r>   r   r   s       r   *test_obj_with_exclusions_duplicate_columnsr~    so    	LLL>	"	"BBJ	BqE		B$Fwwyyyqw))H&(+++++r   c                    ddddddg}t          |          }|                    ddd          }| rA|                    d	
          }t          ddgdg          }t          j        ||           d S t          j        t          d          5  |                    | 
           d d d            d S # 1 swxY w Y   d S )Nr   r   r   cardarr   F)r   r*  TrM  r  z(could not convert string to float: 'bar'rT   )r   r3   r6   r9   r:   rz   r{   r  )rN  dicts_non_numericr=   r$  r   expected_dfs         r   'test_groupby_numeric_only_std_no_resultr    s'     %511U3K3KL	$	%	%B::cE:66D 0t,,>>>
fk22222]H
 
 
 	0 	0 HH,H///	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0s   B44B8;B8c                     t          g dg dd          } t          j        | d         t          j        ddd                    }|                     |d	gd
          d                             d          }t          t          ddd          t          ddd          t          ddd          t          ddd          gd          }g d}t          j
        ||gdd	g          }t          t          j        dt          j        dt          j        dt          j        dt          j        t          j        dt          j        t          j        g          |d          }t          j        ||           d S )N)皙?皙?333333?皙ٿ      ?)r   r   r   r
  r   )rP   wrP   r   rV   r$   r   r  Fr*  ri   gDlٿr  r  )closedr  r  r  T)rl  r  r  r  r  )r   r.   qcutr7   linspacer3   rv   r   r   r   r  r   rb  r   r9   rw   )r=   qqr   categorical_index_level_1index_level_2r  r   s          r   /test_grouping_with_categorical_interval_columnsr    s   	333:S:S:STT	U	UB	CBK1a00	1	1	1BZZS	EZ2237;;FCCF +VS111S#g...S#g...S#g...		
 ! ! ! $OOM		 	"M23*
 
 
B 
	
 	
  %  H( 68,,,,,r   bug_varc                     t          d| | | t          j        gi          }|                    d           }|                    d          }t          | | | d gdg          }t          j        ||           d S )Nr   c                     | S rX   rN   rO   s    r   rQ   z;test_groupby_sum_on_nan_should_return_nan.<locals>.<lambda>  s     r   rV   )	min_countr  )r   r7   r   r3   rZ   r9   r:   )r  r=   r$  r   r  s        r   )test_groupby_sum_on_nan_should_return_nanr    s}     
C'7GRV<=	>	>B::kk""DXXX""FWgw=uMMMK&+.....r   )r  corrcummaxcumminrY  r'  rankr   r  r  r;  r  rZ  r   r  r  
pct_changec                 X   t          dt          |                     }|| _        |                     dg          dg         }| dg                             | d                   } t	          ||                      } t	          ||                      }t          j        ||           d S )N2014r"   r   r)   )r   rr   r,   r3   r,  r9   r:   )r=   rY  rngr   g_expr   r  s          r   #test_groupby_selection_with_methodsr    s    0 VSWW
-
-
-CBH


C53% AuIbg&&E '!V



C
 '%
 
 
"
"C #s#####r   c                 t   t          dt          |                     }d| j        _        || _        |                     dg          dg         }| dg                             | d                   }t          j        |                    d          |                    d                     d}t          j	        t          |          5  t          j        |j        |j                   d d d            n# 1 swxY w Y   t          j        |                    d	           |                    d
                      t          j        |                    d                                          |                    d                                                     t          j        |                    d                                          |                    d                                                     t          j        |                    d           |                    d                      d S )Nr  r"   r   r   r)   r   z%DataFrameGroupBy.dtypes is deprecatedrT   c                 *    |                                  S rX   rY   rO   s    r   rQ   z6test_groupby_selection_other_methods.<locals>.<lambda>A  s    AEEGG r   c                 *    |                                  S rX   rY   rO   s    r   rQ   z6test_groupby_selection_other_methods.<locals>.<lambda>A  s    AEEGG r   rD  c                 (    t          |           dk    S rM   r(  rO   s    r   rQ   z6test_groupby_selection_other_methods.<locals>.<lambda>G  s    3q66Q; r   c                 (    t          |           dk    S rM   r(  rO   s    r   rQ   z6test_groupby_selection_other_methods.<locals>.<lambda>G  s    A! r   )r   rr   r   rh   r,   r3   r9   r:   r  rs   rt   r   rx   resampleri   r  r-  )r=   r  r   r  r   s        r   $test_groupby_selection_other_methodsr  3  s
   
VSWW
-
-
-CBJOBH


C53% AuIbg&&E !((1++u||A777
1C		#M	=	=	= 6 6
ah5556 6 6 6 6 6 6 6 6 6 6 6 6 6 6!''"3"344ekkBSBS6T6TUUU!**S//..00%..2E2E2J2J2L2LMMM!**S//..00%..2E2E2J2J2L2LMMM	&&''6K6K)L)L    s   	 C55C9<C9c                     t          d          t          d          t          d          g} t          g dg d| d          }t          t          ddd	          g d
g d
d          }|                    t	          dd                                                                                    }t          j        ||           d S )Nz2016-08-31 22:08:12.000z2016-08-31 22:09:12.200z2016-08-31 22:20:12.400)r   r   r1  )quantquant2time2z2016-08-31 22:08:00rH  1TrG  )rV   rV   r   r   r   r   r   r   r   r   r   r   rV   )r  r  r  r  )r   r  )	r   r   r   r3   r	   r  r  r9   r:   )idx2	test_dataexpected_outputr=   s       r   test_groupby_with_Time_Grouperr  K  s    -..-..-..D !//___tLL I   5rMMM<<<===	
 	
 O 
		7wT:::	;	;	A	A	C	C	O	O	Q	QB"o.....r   c                     t          g dt          dd          d          } |                     |                                           }t          ddgd	          }d|j        _        t          j        ||           d S )
Nr  z
2022-01-01rJ   r"   janr  r%   rV   r  )r   r   r3   r  r,   rh   r9   rw   r  s      r   1test_groupby_series_with_datetimeindex_month_namer  c  s{    yyy
< C C C%PPPAYYq\\!!Fq!f5)))HHN68,,,,,r   c                  \   t          g dg dg dg dg dd          } t          j        t          d          5  |                     d	g d
          }d d d            n# 1 swxY w Y   |                    d	          }t          g dg dd          }t          j        ||           d S )N)r   rJ   r%   rJ   )r   rV   rS  r\   )rJ   r7  r%   rc   )rV   rH  rS  r  )r$   rS  i)rc  rd  col3col4col5
deprecatedrT   rV   )rV   r%   rJ   r%   rV   )r   r  )rc  r  )r   r9   rs   rt   r3   r  r:   r  s       r   test_get_group_axis_1r  l  s   	 LL LL!MM"NN"NN	
 	

 
B 
	#M	F	F	F 9 9**!*889 9 9 9 9 9 9 9 9 9 9 9 9 9 9q!!F LL"NN	
 	
 H &(+++++s   A!!A%(A%)r   decimalr   rw  numpyr7   rz   pandas.errorsr   r   pandas.util._test_decoratorsutil_test_decoratorstdpandasr.   r   r   r	   r
   r   r   r   r   r   r   r   r   pandas._testing_testingr9   pandas.core.arraysr   pandas.core.commoncorecommonr  pandas.tests.groupbyr   re  filterwarnings
pytestmarkr   rB   parametrizer   r   r   r   r   r   r   r  r  r-  rA  rK  rQ  re  rg  rr  rz  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,  r3  r>  r@  rP  rS  rW  rY  rc  rf  rh  ro  rv  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r#  r/  r4  rD  rN  rw  rb  ru  ry  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  r
  r  r  r%  r,  r7  r'  rD  rF  rI  rN  rS  rX  r[  r_  rf  r]  rh  rn  rr  ru  r{  r~  r  r  r  r  r  r  r  r  rN   r   r   <module>r     sd               				             * ) ) ) ) ) ) ) )                                      + + + + + +                   8 8 8 8 8 8[''(STT
  , , ,6 "J"J"JKK>+ >+ LK>+B- - -.=& =& =&@2I 2I 2Ij dE]33) ) 43),, , ,    FFF , , ,67' 7' 7't     0%& %& %&P# # #.8 8 86  8+ + +-+ -+ -+`4 4 4n  1 13E3EFGG- - HG-@- - - 0 0 0* * *@+ @+ @+F, , ,D. . .2& & &, , ,., , ,	D 	D 	D6 6 6(	+ 	+ 	+< < <4 
EN , ,	 , :::  $770 0 87	 
0:    ' ' '0( ( (+ + +(( ( (. . ..  @- - -, , ,.' ' '*; *; *;Z, , ,, , ,(
 
 
, , ,- - -"( ( (&, , ,	, 	, 	,    / / /.< < <	- 	- 	-B B B*
, 
, 
,  <& <& <&~  	8 	8 	8# # #$*0 *0 *0Z& & &- - -(  , , ,- - - S3*$566  764# # # . . .@ @ @*5 5 56$ $ $*.4 .4 .4b- - -:, , , Xy68"4vy6IJ  \?\?4ST   	 2
 
 
$ S3%L113%#s!455		
		QC	Q
1a|,,,ac:::!G$$$!I&&&%	***	 	 	   : #;#;#;<<
C
C
C u& u&  =<;  65 21Fu&p+ + +- - -&" " ", , ,8- - -   - - - , , , cU|44- - 54-6  I344I344		
 I344I344I344I344I344I344		
 I344I344I344I344I344I344		
7(+ +X, ,Y+ +X,,- - -- - -& & &> 	sCju%%%
7u~NNN / / /&$ &$ &$R, , ,    
" 
" 
"0 0 0 	GS!	J&	FE"	L%(	J%	He$	#	U#		u%	T"	5! "< <# "<   !8!8!899, , :9, Ty!9!9::: , , ,- - - edD\*VeT],CD , , ,	> 	> 	>) ) ) $ $ $$- - -- - - $77, , 87,, , ,$, , ,., , ,(, , ,(  *	M 	M 	M ,MBM)4L4LMMM 3 3 3.- - -, , , tS3%&899  :9, , ,( sElMQC;U 8 8 8 !E!E!EFF, , GF, z;&?@@	, 	, A@	, m'DEE, , FE,0 UBEN(CDD, , ED,  &%%000   	
 +**888!!!	
 , , ,  44455, , 65, B  #K#K#KLL, , ML ,$* * *>, , , $770 0 870"&- &- &-R QH--/ / .-/    ,$ $- ,$   0/ / /0- - -, , , , ,r   