
    g                    >   d dl m Z  d dl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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& ej'        (                    d          Z)d	 Z*d
 Z+ej'        ,                    dg d          d             Z-d Z.d Z/d Z0d Z1ej'        ,                    dddg          d             Z2d Z3d Z4d Z5ej'        ,                    dg d          d             Z6d Z7d Z8d Z9d Z:d Z;d  Z<d! Z=d" Z>d# Z?ej'        ,                    d$d% d& g          d'             Z@d( ZAd) ZBd* ZCd+ ZDd, ZEd- ZFd. ZGd/ ZHd0 ZId1 ZJd2 ZKd3 ZLd4 ZMej'        ,                    d5d6d7g          d8             ZNej'        ,                    d5g d9          ej'        ,                    d:ddg          d;                         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_ Zsd` Ztda Zudb Zvej'        ,                    dcdddddegg          df             Zwdg Zxdh Zydi Zzdj Z{dk Z|dl Z}dm Z~dn Zej'        ,                    dodpdqdrdpdqgdpdrgg          ej'        ,                    dsdtdudtdugg          dv                         Zdw Zej'        ,                    dxdydygg          ej'        ,                    dzddgdddegg          ej'        ,                    d{dgd gd|gd}g ed g           ed           g ed d~d~d           ej        ddd           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 Zd Zd Zej'        ,                    dg d          d             Zd Zej'        ,                    dedd}feddfeddfeddfeddfeddfedd}f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'        ,                    d:d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d}d}g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'        ,                    d:ddg          d             Zd Zej'        ,                    dd~d}g          d             Zej'        ,                    dg d          d             Zd Zd  Zd Zej'        ,                    dddg          ej'        ,                    dddd}gd~efdd}gddfddd gd~efdd gddfg          d                         ZÐd	 ZĐd
 ZŐd Zej'        ,                    dddg          d             ZdS (      )datetimeN)Decimal)PerformanceWarningSpecificationError)is_string_dtype)Categorical	DataFrameGrouperIndexInterval
MultiIndex
RangeIndexSeries	Timedelta	Timestamp
date_rangeto_datetime)BooleanArrayz)ignore:Mean of empty slice:RuntimeWarningc                  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     m/var/www/html/nodeJS/PythonScripts/venv3.11/lib/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_framecopyr   NaTilocgroupbylistrangestdr   nparanger	   tmassert_frame_equal)
warn_copy_on_writetdiserdfgbr   td1td4exp_serr   s
             r   test_groupby_std_datetimelikerD   .   s<   

We
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,   rE   r%   c                     | dz  S NrL    xs    r   <lambda>z)test_basic_aggregations.<locals>.<lambda>Q   s
    Q!V r   F
group_keyszusing SeriesGroupBy.meanmatch   zusing SeriesGroupBy.sumc                 0    | |                                  z  S NsumrQ   s    r   rS   z)test_basic_aggregations.<locals>.<lambda>f   s    q15577{ r   c                 0    | |                                  z  S rZ   r[   rQ   s    r   rS   z)test_basic_aggregations.<locals>.<lambda>g   s    a!%%''k r         check_index_typezusing SeriesGroupBy.[mean|std]nested renamer is not supported)onetwo
         r   rX   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 rZ   )namemean)rR   group_constantss    r   rS   z)test_basic_aggregations.<locals>.<lambda>   s    oaf&=&H r      zMust produce aggregated valuec                     | dz  S Nr%   rP   rQ   s    r   rS   z)test_basic_aggregations.<locals>.<lambda>   s
    AE r   )r   r8   r9   randomdefault_rngshufflereindexr4   lenr:   assert_produces_warningFutureWarning	aggregaterk   aggassert_series_equalr\   apply	transformr7   pytestraisesr   	Exception)rE   datar,   groupedkvmsgaggedr   r   transformedvalue_groupedrl   s               @r   test_basic_aggregationsr   I   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           d S )Nr   OFr`   )r,   codesr4   r\   astyperE   r8   int8rF   r:   r;   ) multiindex_dataframe_random_datar   r   r   r   s        r   test_groupby_nonobject_dtyper      s    
*
0
6q
9C.66s;;G[[]]F/77

3HHLLNNH<((((>28++++&(UCCCCCCr   c            
      b   t          g dg dt          j                            d                              d          t          j        t          j                            d                              d          d          d          } t          t          |                     | d<   d	 }d
}t          j	        t          |          5  |                     d                              |          }d d d            n# 1 swxY w Y   |j        }| j        }t          j        ||           d S )Nfoobarr   r   r   r   r   r   )rc   rc   rd   threerd   rd   rc   r   r%      rI   rE   r   r   r)   Dvaluec                 L    | j         | d                                                  S )Nr   )locidxmaxgroups    r   	max_valuez5test_groupby_nonobject_dtype_mixed.<locals>.max_value   s    yw..0011r   7DataFrameGroupBy.apply operated on the grouping columnsrV   r   )r	   r8   rp   rq   standard_normalarrayr6   rt   r:   ru   DeprecationWarningr4   rz   dtypesry   )r?   r   r   appliedr   r   s         r   "test_groupby_nonobject_dtype_mixedr      s\   	IIIMMM&&q))99!<<")//22BB1EEYWWW		
 	

 
B B..BwK2 2 2 DC		#$6c	B	B	B 3 3**S//''	223 3 3 3 3 3 3 3 3 3 3 3 3 3 3^FyH68,,,,,s   )DDDc                     t          g dt          t          j        d          d          t	          dd          d          } d }|                     d	                                          d
g         }d}t          j        t          |          5  |                     d	          
                    |          d
g         }d d d            n# 1 swxY w Y   t          j        ||           d }d}t          j        t          |          5  |                     d	          
                    |          d
g         }d d d            n# 1 swxY w Y   |                                }t          j        |j        d<   t          j        ||           d }d}t          j        t          |          5  |                     d	          
                    |          d
g         }d d d            n# 1 swxY w Y   |                                }t          j        |j        d<   t          j        ||           d }d}t          j        t          |          5  |                     d	          
                    |          dg         }d d d            n# 1 swxY w Y   |                     d	                                          dg         }t          j        |j        d<   t          j        ||           d }	d}t          j        t          |          5  |                     d	          
                    |	          }d d d            n# 1 swxY w Y   |                     d	                                          d                                         }t          j        |j        d<   d |_        t          j        ||           d S )N)Tigerr   r   Lambr   Ponyr   r^   rF   r   20130101r"   r-   c                     | j         d         S Nr   )r3   grps    r   f_0z*test_inconsistent_return_type.<locals>.f_0   s    x{r   r   r   r   rV   c                 6    | j         dk    rd S | j        d         S )Nr   r   rj   r3   r   s    r   f_1z*test_inconsistent_return_type.<locals>.f_1   s     8w4x{r   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   r   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)   )rj   r3   r   r   s    r   f_4z*test_inconsistent_return_type.<locals>.f_4   s'    8v4x{s##r   )r	   r   r8   r9   r   r4   firstr:   ru   r   rz   r;   r1   nanr   r.   r2   rj   ry   )
r?   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
CC		#$6c	B	B	B 3 3C&&s++SE23 3 3 3 3 3 3 3 3 3 3 3 3 3 3&(+++  
 DC		#$6c	B	B	B 3 3C&&s++SE23 3 3 3 3 3 3 3 3 3 3 3 3 3 3AVAE'N&!$$$  
 DC		#$6c	B	B	B 3 3C&&s++SE23 3 3 3 3 3 3 3 3 3 3 3 3 3 3AFAE&M&!$$$  
 DC		#$6c	B	B	B 3 3C&&s++SE23 3 3 3 3 3 3 3 3 3 3 3 3 3 3


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


3$))++AFAE&MAF61%%%%%sZ   0CCC0EEE40G00G47G40JJJ)MMM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r8   
percentile)rR   qr   s      r   fz test_pass_args_kwargs.<locals>.f   s    }Q----r   c                 0    t          j        | dd          S )NP   r   r   r   rQ   s    r   rS   z'test_pass_args_kwargs.<locals>.<lambda>   s    "-2A... r   c                     | j         S rZ   monthrQ   s    r   rS   z'test_pass_args_kwargs.<locals>.<lambda>   s    ag r   r   r   皙?r   )TFc                     | j         S rZ   r   rQ   s    r   rS   z'test_pass_args_kwargs.<locals>.<lambda>  s    qw r   as_index*A grouping .* was excluded from the resultrV   Fcheck_namesg?r   )r4   rx   r8   r   rz   r{   quantiler:   ry   rv   ru   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 rZ   r   rQ   s    r   rS   z9test_pass_args_kwargs_duplicate_columns.<locals>.<lambda>.  s    17 r   r   r   rV   r   r   r   rX   r   r%   rX   r%   )columnsr4   rv   r:   ru   rx   r8   r   r,   r   r   r	   Tr   r6   r;   )r   r   r@   r   r   resex_datar   s           r   'test_pass_args_kwargs_duplicate_columnsr   *  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            	         t          t          j                            d                              d          t          t          d          t                    t          ddd          	          } | 	                    d
 d d g          }t          |          t          |           k    sJ | 	                    d d g          }t          d | j        D                       }t          |          |k    sJ d S )Nr%   re      ABCDr   
2000-01-01re   r   r#   freqr   r,   c                     | j         S rZ   yearrQ   s    r   rS   ztest_len.<locals>.<lambda>G      AF r   c                     | j         S rZ   r   rQ   s    r   rS   ztest_len.<locals>.<lambda>G      ag r   c                     | j         S rZ   dayrQ   s    r   rS   ztest_len.<locals>.<lambda>G       r   c                     | j         S rZ   r   rQ   s    r   rS   ztest_len.<locals>.<lambda>J  r   r   c                     | j         S rZ   r   rQ   s    r   rS   ztest_len.<locals>.<lambda>J  r   r   c                 *    h | ]}|j         |j        fS rP   )r   r   .0rR   s     r   	<setcomp>ztest_len.<locals>.<setcomp>K  s!    888!QVQW%888r   )r	   r8   rp   rq   r   r   r5   objectr   r4   rt   r,   )r?   r   r   s      r   test_lenr  A  s    	
	a  0099d6ll&111r<<<
 
 
B
 jj**,=,=OPPGw<<3r77""""jj**,=,=>??G88rx88899Hw<<8######r   c                  >   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 )NrL   rX   r%   rL   abr  r   r  )r	   r8   r   rt   r4   r?   s    r   test_len_nan_groupr
  O  s    	"&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 )      ?rP   r   s     r   
<listcomp>z)test_basic_regression.<locals>.<listcomp>Y  s    >>>S1W>>>r   rX   re   r%   iL  g      $@)r   r5   r6   r8   rp   rq   r4   rk   )r   r   	groupingsr   s       r   test_basic_regressionr  W  s    >>d5B<<&8&82&=>>>??F9  ##**40047DtInnY''GLLNNNNNr   )rH   rI   rF   rG   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 )Nre   r   r   r   r+   r   r%   Fcheck_dtypec                 :    t          t          |                     S rZ   )floatrt   rQ   s    r   r   ztest_with_na_groups.<locals>.fw  s    SVV}}r         @       @)r   r8   r9   r   onesr   r4   rx   rt   r:   ry   )rE   r,   valueslabelsr   r   r   r   s           r   test_with_na_groupsr  b  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}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        ||           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%   rX   r  clevelsr   namesr  r   )r  emptyr   r	   	set_indexrR   y
multiindexr   s       r   f1z,test_indices_concatenation_order.<locals>.f1  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%   rX   r  r  )r  r#  r	   r$  )rR   r&  s     r   f2z,test_indices_concatenation_order.<locals>.f2  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%   rX   r   r   r   r  r  r   )r  r#  r   r	   r%  s       r   f3z,test_indices_concatenation_order.<locals>.f3  sr    qsQw1n"7 	#taxtaxu~  J S#JjAAACJHr   )rX   r%   r%   r%   r   r$   rK   r  r  r  )rL   r%   r%   r%   zDThe behavior of array concatenation with empty entries is deprecatedr   rV   r  z@Cannot concat indices that do not have the same number of levels)r	   r6   r:   ru   r   r4   rz   r;   r|   r}   AssertionErrorrv   )	r(  r*  r,  r?   df2depr_msgr   result1result2s	            r    test_indices_concatenation_orderr3    s_       	 	 	 
E!HH5A;;GG	H	HB
,,,U1XXE!QKKHH
I
ICUH DC		#$6c	B	B	B , ,**S//''++, , , , , , , , , , , , , , ,		#$6c	B	B	B - -++c""((,,- - - - - - - - - - - - - - -'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&&&	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's   	)B>>CC$)DD D)FFF1)G&&G*-G*)III'K)J8,K8J<	<K?J<	 KKK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 rZ   weekdayrQ   s    r   rS   z#test_attr_wrapper.<locals>.<lambda>  s    199;; r   c                 .    t          j        | d          S )NrX   )ddof)r8   r7   rQ   s    r   rS   z#test_attr_wrapper.<locals>.<lambda>  s    RVAA%6%6%6 r   c                 >    i | ]\  }}||                                 S rP   )describe)r   rj   gps      r   
<dictcomp>z%test_attr_wrapper.<locals>.<dictcomp>  s&    <<<bbkkmm<<<r   c                     | j         S rZ   r   rQ   s    r   rS   z#test_attr_wrapper.<locals>.<lambda>  s    QW r   z-'SeriesGroupBy' object has no attribute 'foo'rV   r   )r4   r7   rx   r:   ry   r;  r	   r   r;   rE   r|   r}   AttributeErrorgetattr)r   r   r   r   r   s        r   test_attr_wrapperrA    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 rZ   r6  rQ   s    r   rS   z$test_frame_groupby.<locals>.<lambda>  s    		 r   rk   r$   r   c                 6    g | ]}|                                 S rP   r6  r   s     r   r  z&test_frame_groupby.<locals>.<listcomp>  s     ;;;;;;r   r7  Fr   rg   c                 *    |                                  S rZ   r6  rQ   s    r   rS   z$test_frame_groupby.<locals>.<lambda>  s     r   c                 0    | |                                  z
  S rZ   rk   rQ   s    r   rS   z$test_frame_groupby.<locals>.<lambda>  s    a!&&((l r   c                 *    |                                  S rZ   rG  rQ   s    r   rS   z$test_frame_groupby.<locals>.<lambda>  s    affhh r   r   )r4   rw   rt   r   r1   r,   r:   r;   headr{   rk   ry   xsr7  groupsindicesitemstakeall)r   r   
aggregatedtscopystraggedr   rj   r   rk   idxr7  rK  rL  r   r   	samethings                   r   test_frame_groupbyrU    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   rX   r   +DataFrame.groupby with axis=1 is deprecatedrV   r   rk   r%   c                 0    | |                                  z
  S rZ   rG  rQ   s    r   rS   z,test_frame_groupby_columns.<locals>.<lambda>	  s    1qvvxx< r   5The 'axis' keyword in DataFrame.groupby is deprecated)
r:   ru   rv   r4   rw   rt   r   r   r;   r{   )	r   mappingr   r   rP  tfgroupedTr   r   s	            r   test_frame_groupby_columnsr]    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)   r   rk   r7   r)   r   rb   rV   r   r   )r4   rk   r,   rj   rx   r|   r}   r   )r?   r   r   r   s       r   test_frame_set_name_singlerc    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   Tr_  r)   r   Fr   r%      r  r  r  r  r  r  1rh  rh  2ri  ri  )v1v2k1k2)rc   rd   r   fourfivesixr+   rl  rm  r\   )r4   getrk   r:   r;   r   r	   r8   rp   rq   r   r   rx   )r?   col1col2r   r   r   s         r   test_multi_funcrt  /  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)   rk   r7   )rk   r7   )r4   rx   r	   r:   r;   )r?   r   r   r   s       r   !test_multi_key_multiple_functionsrv  K  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   rc   rc   rc   rd   rc   rc   rc   rd   rd   rd   rc   r%      )r   r   r   EFr   r   rk   r7   r   r{  r|  )r   r{  r|  rX   )keysr   )r	   r8   rp   rq   r   r4   rx   r.   concat
isinstancer,   r   r:   r;   )r   r   funcsr   r   s        r   "test_frame_multi_key_function_listr  S  s{        &&q))99"==&&q))99"==&&q))99"==;	
 	
   DD llC:&&GUOEKKE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 )Nrx  ry  )dullr  shinyr  r  r  r  r  r  r  r  r%   rz  )r   r   r)   r   r{  r|  r   r   rk   r7   &agg function failed [how->mean,dtype->rV   )r	   r8   rp   rq   r   r4   reescaper|   r}   	TypeErrorrx   )r   r   r  r   s       r   2test_frame_multi_key_function_list_partial_failurer    sj          &&q))99"==&&q))99"==&&q))99"==U+	
 +	
- -D^ llC:&&GUOE
)<
=
=C	y	,	,	,  E                 s   7DD!Dopc                 *    |                                  S rZ   r[   rQ   s    r   rS   rS     s    !%%'' r   c                 *    |                                  S rZ   rG  rQ   s    r   rS   rS     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)   r   r"  rX   r   ra  )r4   appendr   r   from_tuplesr.   r~  r   r,   r:   ry   rk   )r?   r  r   r   r1  r}  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 )NrX   r%   r   r$   re  r   r   r   Fr   rj   T)r   rU   c                 *    |                                  S rZ   )cumsumrQ   s    r   rS   z-test_as_index_select_column.<locals>.<lambda>  s    !((** r   )r%   re  re  ))r   r   )r   rX   r   rj   r,   )	r	   r4   	get_groupr   r:   ry   rz   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rX   rX   r%   rL   r   r$   r  r  r   rV   )obj)
r	   r3   r4   rL  rq  r:   ru   rv   r  r;   )r0  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   r_  r%   r   r   )	r	   r   r4   r\   r   r6   r"  r:   r;   )r?   leftr   s      r   0test_groupby_as_index_select_column_sum_empty_dfr    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)   r   rk   Tr_  r\   ra  rb   rV   Qr   r  z7Passing a dictionary to SeriesGroupBy.agg is deprecatedr%   r   d   )2   rL   )jimjoejolier$   re   r  r  r  z:The behavior of DataFrame.sum with axis=None is deprecated)rW   check_stacklevel)rk   maxcountr   r  rO  drop)r4   rx   rk   r:   r;   r\   r|   r}   r   r	   renameru   rv   r8   rp   rq   integersr   nthrz   r@  r  reset_index)r?   r   r   r   r2  	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   )r|   skipr	   r8   rp   rq   r  r@  r4   r  r  r   rE   r:   r;   rx   )reduction_funcr?   r   r   r   s        r   test_ops_not_as_indexr  C  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)   r\   r-   )r4   rx   r   r  r	   r:   r;   r\   )r?   r   grouped2r   r   r2  r  s          r   !test_as_index_series_return_framer  e  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 selectedrV   r)   r   )r4   r|   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   Tr_  r   r   rX   )r4   rk   insertr,   r   rt   r:   r;   r5   zipr  )r?   r   r   r   r   arrayss         r   test_groupby_as_index_cythonr    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-   )r4   rx   rt   r   r:   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 DataFramerV   c                 *    |                                  S rZ   r6  rQ   s    r   rS   z.test_groupby_as_index_corner.<locals>.<lambda>  s    QYY[[ r   Fr   z$as_index=False only valid for axis=0rW  c                 *    |                                  S rZ   )lowerrQ   s    r   rS   z.test_groupby_as_index_corner.<locals>.<lambda>  s     r   rX   )r   r   )r|   r}   r  r4   
ValueErrorr:   ru   rv   )r?   r   r   r0  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          t          j                            d                              d          t          t          d          t                    t          ddd          	          } | 	                    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 )Nr%   r   r   r   r   re   r   r   r   c                     | j         S rZ   r   rQ   s    r   rS   z+test_groupby_multiple_key.<locals>.<lambda>  r   r   c                     | j         S rZ   r   rQ   s    r   rS   z+test_groupby_multiple_key.<locals>.<lambda>  r   r   c                     | j         S rZ   r   rQ   s    r   rS   z+test_groupby_multiple_key.<locals>.<lambda>  r   r   rW  rV   c                     | j         S rZ   r   rQ   s    r   rS   z+test_groupby_multiple_key.<locals>.<lambda>  s    qv r   c                     | j         S rZ   r   rQ   s    r   rS   z+test_groupby_multiple_key.<locals>.<lambda>       r   c                     | j         S rZ   r   rQ   s    r   rS   z+test_groupby_multiple_key.<locals>.<lambda>  s    AE r   rX   r   c                 *    |                                  S rZ   r[   rQ   s    r   rS   z+test_groupby_multiple_key.<locals>.<lambda>      !%%'' r   c                 *    |                                  S rZ   r[   rQ   s    r   rS   z+test_groupby_multiple_key.<locals>.<lambda>  r  r   )r	   r8   rp   rq   r   r   r5   r  r   r4   r\   r:   assert_almost_equalr  ru   rv   r   rx   assert_index_equalr,   r   )r?   r   r   r0  s       r   test_groupby_multiple_keyr    s   	
	a  0099d6ll&111r<<<
 
 
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   #DDDc                 8   |                                  } t          j        | d<   |                     ddg                                          }|                     ddg                                          }t          j        |d<   t          j        ||           d S )Nbadr   r   )r1   r8   r   r4   rk   r:   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   r  rV   rk   r   r)   r   r{  z/datetime64 type does not support sum operationsr\   rW  r   rX   )r   r)   r   r{  r   z does not support reduction 'sum'c                 0    |                      dd          S )Nr   Fr_  r[   rQ   s    r   rS   z)test_raises_on_nuisance.<locals>.<lambda>  s    aeeAEe:: r   )r4   r  r  r|   r}   r  rx   rk   r   r   nowr\   r:   ru   rv   )r?   r   r   r0  s       r   test_raises_on_nuisancer    s}   jjooG
)<
=
=C	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   )r4   r@  r1   r   r:   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   )r\   rk   prodr7   varsemmedianr`  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  r7   r  rk   r  r  )r7   r  z(could not convert string to float: 'one'zagg function failed [how->z,dtype->rV   r_  r\   r   r  )r4   r  r  r  r  r|   r}   r@  r   r:   r;   )
r?   r  r`  r   no_drop_nuisanceklassr   r   r   r   s
             r   test_omit_nuisance_aggr     s    jjooGF'''' >))E<CCE)OOOOPPC]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 convertrV   )r4   r|   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   r  rV   rk   )r4   r  r  r|   r}   r  rx   rk   )three_groupr   r   s      r   &test_raise_on_nuisance_python_multipler	  )  s+   !!3*--G
)<
=
=C	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 )Nrf  rg  r   r   rL   r%   re  )rl  rm  k3rj  rk  rl  rm  rj  rk  rk   Tr_  r$   r   r   c                 *    |                                  S rZ   rG  rQ   s    r   rS   z*test_empty_groups_corner.<locals>.<lambda>D  s    AFFHH r   r   r   )r	   r8   r   rp   rq   r   r4   rx   rk   r:   r;   rz   ry   r,   rj   )r   r?   r   r   r   r   agged_As          r   test_empty_groups_cornerr  2  sh   	(999::(999::%.1$)''**::1==)''**::1==	
 	

 
B jj$&&GdD\"&&v..F|||..H&(+++.qs3;;!;DDG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'rV   c                     | dz   S )Nr   rP   rQ   s    r   rS   z$test_nonsense_func.<locals>.<lambda>N  s
    QY r   )r	   r|   r}   r  r4   )r?   r   s     r   test_nonsense_funcr  J  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)bazrd   r   r   rX   r  rV   rk   r  c                 ^    | j         dk    rt          d          |                                 S )N)r   rc   Test error message)rj   r  r\   )r>   s    r   aggfunz5test_wrap_aggregated_output_multindex.<locals>.aggfun\  s,    8~%%0111wwyyr   r  )r   r8   r   r  r  r|   r}   r  r4   rx   r  r  r   r   rw   )r   r?   r}  r   r   r  s         r   %test_wrap_aggregated_output_multindexr  Q  s   	)	+B!B|HYYY)))!4!45D
)<
=
=C	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   rX   secondr   )r4   r  r,   rj   )r   r   s     r   test_groupby_level_applyr  e  s    -55A5>>DDFFF<''''-55A5>>DDFFF<((((-c2:::CCIIKKF<''''''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   rX   )r   r   r  qux)rc   rd   r   r  c                 :    g | ]}                     |          S rP   rq  )r   rR   mapper0s     r   r  z-test_groupby_level_mapper.<locals>.<listcomp>y  s#    444AQ444r   r   r   c                 :    g | ]}                     |          S rP   r!  )r   rR   mapper1s     r   r  z-test_groupby_level_mapper.<locals>.<listcomp>|  s#    555AQ555r   r  )r   r  )
r  r4   r\   r8   r   rF   r,   rj   r:   r;   )
r   	deleveledresult0r1  mapped_level0mapped_level1	expected0	expected1r"  r$  s
           @@r   test_groupby_level_mapperr+  o  sk   0<<>>I!A66GA..G.66wa6HHLLNNG.66wa6HHLLNNGH44447!3444BH  M H55558!4555RX  M 188GGKKMMI088GGKKMMI1B.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)rX   r%   rL   re   r   r$   rf   re  )rX   r%   rL   rX   r   r$   r%   re  r   r  )rz     rL   r   r$   re  rX   r^   r   r  r*   z2level > 0 or level < -1 only valid with MultiIndexrV   zNo group keys passed!z*multiple levels only valid with MultiIndex)
r   r   r6   r4   r\   r:   ry   r|   r}   r  )sr   r   r   s       r   test_groupby_level_nonmultir0    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   rX   rX   r   r,   )r2  y      @      $@r   r  )r   r8   r9   r4   r\   r:   ry   )r  r   r   s      r   test_groupby_complexr4    sk    BIaLLF+<<<@@@A'((HYYQY##%%F68,,,,,r   c                     t          dddddddddg          } |                     d                                          }t          dgdggt          ddgd	          t          d
g                    }t	          j        ||           d S )Nr%   r2  r  rX         ?      ?r  r        ?r  r  r,   r   )r	   r4   rk   r   r:   r;   r  s      r   test_groupby_complex_meanr9    s    	&!!&!!&!!	

 
B ZZ__!!##F
f(s333se  H
 &(+++++r   c                     t          dddddddddg          }| rdnt          }t          t          j        g dt          j                  t          g d	d
          t          dg|                    }|                    d
d                                          }t          j	        ||           t          g dd
          |_
        |                    d
d                                          }t          j	        ||           d S )NrX   r6  r  r2  r   string[pyarrow_numpy])rX   rX   rX   r   )r6  r2        ?        r  r  r  r8  Fsort)r<  r6  r2  T)r	   r  r8   r   rF   r   r4   r  r:   r;   r,   )using_infer_stringr?   rE   r   r   s        r   test_groupby_complex_numbersr@    s+   	&!!&!!!	

 
B (:E##vE
"(+++222===se5)))  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  rB  rB  g      @)r  r  rC  r   r   h)	r   r   r4   rk   rs   r,   rq  r:   ry   )s1s2r   r   r  s        r   'test_groupby_series_indexed_differentlyrG    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  )rc   rd   rc   rd   rc   rd   rc   rd   ))r   cat)r   dog)r   rI  )r   rJ  r%   )r   r   r8  r   r  rW  rV   rX   )r   r   rk   c                 *    |                                  S rZ   rG  rQ   s    r   rS   z0test_groupby_with_hier_columns.<locals>.<lambda>  s     r   c                 ,    |                      d          S )NrX   rG  rQ   s    r   rS   z0test_groupby_with_hier_columns.<locals>.<lambda>
  s    affQii r   r   r   r   )r   r   Tr_  r*   )r5   r  r   r  r	   r8   rp   rq   r   r4   rk   r:   r  r   ru   rv   r,   rx   rz   r   	sortlevel)	tuplesr,   r   r?   r   r0  r@   sorted_columns_s	            r   test_groupby_with_hier_columnsrQ    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   )r4   r  r\   r  r:   r;   r  s       r   test_grouping_ndarrayrS    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   rX   r%   rL   r   r,   r  )foo1rV  foo2rV  foo3)bar1bar2rZ  rY  rY  )baz1r[  r[  baz2r\  )spam2spam3r]  spam1r_  )rf   rg   (   r  <   )r   r   r  spamr   r+   )r   r   r  rb  rk   )r   r	   r4   rx   rk   r:   r;   )r,   r   r   r   r   s        r   test_groupby_wrong_multi_labelsrc    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   Tr_  Fr   r   r   r   )r4   rk   r,   rj   r"  )r?   r   r2  s      r   test_groupby_series_with_namerf  0  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 ro   )r8   r\   rQ   s    r   rS   z.test_seriesgroupby_name_attr.<locals>.<lambda>C  s    Q r   )r4   r  rj   rk   rx   )r?   r   testFuncs      r   test_seriesgroupby_name_attrrj  =  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 )Nr   )rc   rc   rd   rd   rd   rd   rc   rd   r%   r   r  r   r   )r	   r8   rp   rq   r   r9   r4   r   r  r   r:   ry   r?   r   r   s      r   test_consistency_namerm  G  s     
IIIIII&&q))99!<<sB1		
 	

 
B zz3%  "((**HT\\"$%%''F68,,,,,r   c                    dd}d }d}t          j        t          |          5  |                     d                              |          }d d d            n# 1 swxY w Y   |j        j        J t          j        t          |          5  |                     d                              |d          }d d d            n# 1 swxY w Y   |j        j        dk    sJ t          j        t          |          5  |                     d                              |          }d d d            n# 1 swxY w Y   |j        j        J d S )Nc                 ,    t          dddd|          S )NrX   r%   rL   r  rk   	omissionsr  )r   )r?   rj   s     r   	summarizez0test_groupby_name_propagation.<locals>.summarizeZ  s    11==DIIIIr   c                 N    t          dddd| j        d         d                   S )NrX   r%   rL   rp  r   r   r  )r   r3   r	  s    r   summarize_random_namez<test_groupby_name_propagation.<locals>.summarize_random_name]  s+     11==BGAJsOTTTTr   r   rV   r   metricsrZ   )r:   ru   r   r4   rz   r   rj   )r?   rr  rt  r   ru  s        r   test_groupby_name_propagationrv  X  s   J J J JU U U DC		#$6c	B	B	B 3 3**S//''	223 3 3 3 3 3 3 3 3 3 3 3 3 3 3?'''		#$6c	B	B	B > >**S//''	9==> > > > > > > > > > > > > > >?9,,,,		#$6c	B	B	B ? ?**S//''(=>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ??'''''s5   )AA!A*CCC<)D11D58D5c                  (   t          d t          d          D                       } |                     d          }|                                }|                     | d                                                   }t	          j        ||           d S )Nc                 6    g | ]}t          j        d           S )re   )r8   r9   r   s     r   r  z2test_groupby_nonstring_columns.<locals>.<listcomp>p  s     555aBIbMM555r   re   r   )r	   r6   r4   rk   r:   r;   r  s       r   test_groupby_nonstring_columnsry  o  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 )Nrh   )r   r   r   r  rX   r%   r   r   r   r  r   )r	   r   r4   r   r:   r;   r\   rl  s      r   test_groupby_mixed_type_columnsr{  w  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   re   )r8   r#  fillr   r   tiler6   r4   rx   r  isnarO  )arrr  indsr   s       r   (test_cython_grouper_series_bug_noncontigr    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 rZ   )rt   setmapidr,   rQ   s    r   rS   z5test_series_grouper_noncontig_index.<locals>.<lambda>  s"    #c#b!'**++,, r   )	r   r   r8   rp   rq   r   r  r4   rx   )r,   r  r  r   r   s        r   #test_series_grouper_noncontig_indexr    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  rC  r   r   r   c                 ^    t          t          |                                                     S rZ   )r   strrk   rQ   s    r   convert_fastz>test_convert_objects_leave_decimal_alone.<locals>.convert_fast  s    s16688}}%%%r   c                     t          | j        j                  dk    sJ t          t	          |                                                     S r   )rt   r  baser   r  rk   rQ   s    r   convert_force_purezDtest_convert_objects_leave_decimal_alone.<locals>.convert_force_pure  s;    18=!!A%%%%s16688}}%%%r   r   )r   r6   r8   r   r4   rx   rE   object_r  r3   r   )r/  r  r  r  r   r   s         r   (test_convert_objects_leave_decimal_aloner    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   rF   r   )rR   r6   rR   rj   rE   r6   rM   T)	by_blocks)r	   r8   r9   rE   rH   r4   r   r   r   r:   r;   )r?   r   	exp_indexr   s       r   "test_groupby_dtype_inference_emptyr    s    	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 )	NrX   l    4;PU  )r   r  r   r   r  r   r  r  )r	   r4   r  r   r   from_productr:   ry   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   Tr_  Fr   z^'foo'$rV   r*   r   rX   rL   r   r%   )r   r   valr   r   r  )r4   r5   rk   r:   r;   r|   r}   KeyErrorr	   r8   rp   rq   r   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#   r   r   re   r      metricr  r   r   )r   r   )r   r   r	   r4   r
   rk   r$  r,   r   r  r:   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%   )rX   r   r   r  rV   Z)r%   r   )
r	   r8   rp   rq   r   r5   r|   r}   r  r4   )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%   r   z
2013-01-01z
2013-02-01r  r  )r  dtr  r  rX   r^   rL   r$   r   z2013-01-01 00:00:00r   z2013-02-01 00:00:00z^NaT$rV   )r   natr   rH   r  zdatetime64[ns]z^nan$)!r	   r8   rp   rq   r   r   r   r4   r   sortedrK  r}  rt   r  r:   r  r;   _grouperr  r  ngroupsr   intprL  assert_numpy_array_equalr  r3   r|   r}   r  r.   r2   rE   )r?   r   r   r}  r   r   nan_dfr   s           r   test_groupby_nat_excluder    s   	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 '*4Q7;R@@@?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 )NrX   r%   r-  r  r  )r	   r8   r   r4   rL  r?   r   s     r   #test_groupby_two_group_keys_all_nanr  9  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   zerosrX   r  l1l2labelTr_          r  )r	   r6   r4   rk   r8   r   r:   r  r   r   r  r  )rC  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)   r   r{  r   )r   r)   r   r   )
r8   concatenater9   r	   rp   rq   r   r4   r\   rt   )r   r   r?   r  r  s        r   test_int32_overflowr  L  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  )rL   r%   rX   rh   r%   rL   r  r  r  rC  c                 ,    g | ]}t          |          S rP   tupler   rows     r   r  z+test_groupby_sort_multi.<locals>.<listcomp>h      ===3E#JJ===r   r-  Tr=  )rX   r%   r   c                 ,    g | ]}t          |          S rP   r  r  s     r   r  z+test_groupby_sort_multi.<locals>.<listcomp>m  r  r   )r  r  r  c                 ,    g | ]}t          |          S rP   r  r   s     r   r  z+test_groupby_sort_multi.<locals>.<listcomp>r  s    999E!HH999r   )r  r  r  )r%   rX   r   r   rX   r%   r   rX   r%   )r   r   r   rX   rX   rX   re  )r  r  rC  r  r  rC  c                 *    |                                  S rZ   r[   rQ   s    r   rS   z)test_groupby_sort_multi.<locals>.<lambda>  s    AEEGG r   c                     d | |         j         D             }t          j        |          } ||                     |          |                   }|                                D ]\  }}||         |k    sJ d S )Nc                 ,    g | ]}t          |          S rP   r  r  s     r   r  zCtest_groupby_sort_multi.<locals>._check_groupby.<locals>.<listcomp>  s    666sc

666r   )r  comasarray_tuplesafer4   rM  )	r?   r   r}  fieldr   tupsr   r   r   s	            r   _check_groupbyz/test_groupby_sort_multi.<locals>._check_groupby  s    66bho666$T**1RZZ%%e,--NN$$ 	" 	"DAq!9>>>>>	" 	"r   )r	   r8   rp   rq   r   r  r  r  r4   r\   r:   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}t          j        t          |          5  |                     dd	                              d
           }d d d            n# 1 swxY w Y   t          j        ||            d S )N)r  r  r  r  r  r  r  r%   )r   rj   r   rV   r   FrT   c                     | S rZ   rP   rQ   s    r   rS   z/test_dont_clobber_name_column.<locals>.<lambda>  s    Q r   )r	   r:   ru   r   r4   rz   r;   )r?   r   r   s      r   test_dont_clobber_name_columnr    s    	...8M8M8MPQ8QRR
 
B DC		#$6c	B	B	B H HEe44::;;GGH H H H H H H H H H H H H H H&"%%%%%s   ,A//A36A3c            	         t          t          j                            d                              d          t          t          d          t                    t          ddd          	          } | 	                    d
 d          }|
                    d           }d |D             }t          j        |          }t          j        ||           | d         	                    d d          }|
                    d           }d |D             }t          j        |          }t          j        ||           d S )Nr%   r   r   r   r   re   r   r   r   c                     | j         S rZ   r   rQ   s    r   rS   z&test_skip_group_keys.<locals>.<lambda>  s    AG r   FrT   c                 >    |                      d          d d         S )Nr   r  rL   sort_valuesrQ   s    r   rS   z&test_skip_group_keys.<locals>.<lambda>  s    Q]]c]%:%:2A2%> r   c                 P    g | ]#\  }}|                     d           dd         $S )r   r  NrL   r  r   r   r   s      r   r  z(test_skip_group_keys.<locals>.<listcomp>  s6    FFF
Ue3''+FFFr   r   c                     | j         S rZ   r   rQ   s    r   rS   z&test_skip_group_keys.<locals>.<lambda>  r  r   c                 :    |                                  d d         S rO   r  rQ   s    r   rS   z&test_skip_group_keys.<locals>.<lambda>  s    Q]]__RaR%8 r   c                 L    g | ]!\  }}|                                 d d         "S rO   r  r  s      r   r  z(test_skip_group_keys.<locals>.<listcomp>  s1    @@@*#ue!!"1"%@@@r   )r	   r8   rp   rq   r   r   r5   r  r   r4   rz   r.   r~  r:   r;   ry   )tsfr   r   piecesr   s        r   test_skip_group_keysr    s4   

	a  0099d6ll&111r<<<  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   r\   )r1   rj   r4   rx   )float_framer/  r   s      r   test_no_nonsense_namer    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 )
NrK   rL   r   test)g?r7  g?flr\   r  )r  r%   )r	   r8   r9   reshaper4   rx   rE   rH   )rR   r   r   s      r   test_multifunc_sum_bugr    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)   )r4   rz   r  r   r:   ry   )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   grouperr   r   c                 J   d }fdfd}|                      d          }d}t          j        t          |          5  |                    |           d d d            n# 1 swxY w Y   |                               |                    d           |                    |           |d	                             |           |d	                                        |d	                             |g           |d	                             |           d S )
Nc                     | j         J | S rZ   r  r   s    r   r   ztest_set_group_name.<locals>.f  s    z%%%r   c                 
   | j         J rddk    r^t          | j                  rJt          j        t
          d          5  |                                  d d d            d S # 1 swxY w Y   d S |                                 S )Nr   zdoes not supportrV   )rj   r   rE   r|   r}   r  r\   )r   r  r?  s    r   freducez$test_set_group_name.<locals>.freduce  s    z%%% 	'S.._U[5Q5Q.y0BCCC  		                  99;;s   A$$A(+A(c                      |           S rZ   rP   )rR   r  s    r   freducexz%test_set_group_name.<locals>.freducex  s    wqzzr   FrT   r   rV   ra  r)   )r4   r:   ru   r   rz   rw   r{   )r?   r  r?  r   r  r   r   r  s    ``    @r   test_set_group_namer    s               jjUj33G DC		#$6c	B	B	B  a              gG'22333aCLqCL7###CLGX.///CL1s   A((A,/A,c                  :   t          g dt          j        d          d          } g fd}d}t          j        t
          |          5  |                     ddd	                              |           d d d            n# 1 swxY w Y   g d
}|k    sJ d S )N)r   r   rX   rX   r%   r%   re  r  c                 `                         | j                   |                                 S rZ   )r  rj   r1   )r   r"  s    r   r   z6test_group_name_available_in_inference_pass.<locals>.f  s%    UZ   zz||r   r   rV   r  F)r>  rU   rh   )r	   r8   r9   r:   ru   r   r4   rz   )r?   r   r   expected_namesr"  s       @r   +test_group_name_available_in_inference_passr    s   	+++")A,,??	@	@BE     DC		#$6c	B	B	B ? ?


3Uu
55;;A>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? YYNN""""""s   ,BBBc                 (   |                      | d         j                                                  }|j        j        J |                      | d         j        | d         j        g                                          }|j        j        dk    sJ d S )Nr   r   )NN)r4   r  r\   r,   rj   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 )NrX   r%   )r   r   r   r   rX   rX   )rX   rX   r   r   r   r   r  r  r   )r   rX   r%   rL   r   r$   r+   r  )rX   r   r   r   r%   r   Fr   r>  T)r   r   r4   r   r:   ry   
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 )Nrz  )hourrQ   s    r   rS   zYtest_groupby_reindex_inside_function.<locals>.agg_before.<locals>._func.<locals>.<lambda>,  s    !&2+ r   r   )r   r,   r  dropnart   )r   rC  fixfuncs     r   _funczGtest_groupby_reindex_inside_function.<locals>.agg_before.<locals>._func+  sg    (=(=>>?FFHHA $TZ]##1vv{{t477Nr   rP   )r  r  r  s   `` r   
agg_beforez8test_groupby_reindex_inside_function.<locals>.agg_before&  s)    
	 	 	 	 	 	 r   c                 B    t          | j        | j        | j                  S rZ   )r   r   r   r   rQ   s    r   rS   z6test_groupby_reindex_inside_function.<locals>.<lambda>5  s    8AFAGQU#C#C r   r  T)F)	r   r	   r8   r9   r4   rx   r  r:   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  rC  r  )rX   rX   rX   r$   )group1group2r   r   r!  Tr  r\   ))r  r  )r  rC  r  r  r  r%   rX   r$   r   r8  )r	   r$  r4   rx   r   r  r:   r;   )r?   r   r   rS  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  rX   rL   r   r  r  )rX   r&  r'  rL   )rX   r(  r)  r   )r   r   r  rC  )r,   r   r  )r  r  r  r  rX   rX   r%   r%   rX   r%   rL   r   rR   r&  zrR   r&  r   rX   )FTF)r   r>  rU   )r   r  r	   r   _is_lexsortedpivot_tabler  r4   rk   r:   ru   r   r;   r$  r,   rz   drop_duplicatesr  )lexsorted_milexsorted_dfnot_lexsorted_dfr   r   r?   r   r>  s           r   %test_groupby_multiindex_not_lexsortedr5  Q  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%   rX   rX   r+   ababbc                 (    t          |           dk    S ro   rt   rQ   s    r   rS   z4test_index_label_overlaps_location.<locals>.<lambda>      A
 r   r*  r   c                 (    t          |           dk    S ro   r:  rQ   s    r   rS   z4test_index_label_overlaps_location.<locals>.<lambda>  r;  r   c                 (    t          |           dk    S ro   r:  rQ   s    r   rS   z4test_index_label_overlaps_location.<locals>.<lambda>  r;  r   c                 (    t          |           dk    S ro   r:  rQ   s    r   rS   z4test_index_label_overlaps_location.<locals>.<lambda>  r;  r   )r	   r5   r4   filterr3   r:   r;   rN  ry   r,   r   r  )r?   r   actualr   r>   s        r   "test_index_label_overlaps_locationrA    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 )	Nre  r%   r        @r-  r  r  rk   )r8   r9   r	   r4   r{   r:   r;   )nrR   r?   r/  r@   r   gb2r   s           r   "test_transform_doesnt_clobber_intsrF    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	}t          j        t
          |
          5  |                    |           d d d            d S # 1 swxY w Y   d S )N)rL   rX   r   rX   r   rL   rL   rL   )r.  r  r.  r  r  r   r   r   )r   r^   r   r$   r%   rK   rX   rX   )gffffff@g333333@g@g333333g@皙?rO  r$   )r.  rC  r  r   wordword24247)rL  rM  rH  rI  rJ  r  c                 Z    t          j        | |                                          d S )Nr  )r:   r;   r  )rR   rG  s    r   	test_sortz.test_groupby_preserves_sort.<locals>.test_sort  s*    
a+!>!>?????r   r   rV   )r	   r  r4   r:   ru   r   rz   )rG  rK  r?   r   rU  r   s   `     r   test_groupby_preserves_sortrV    s$    
222EEE,,,===HHH	
 	

 
B 
;	'	'B


<  A@ @ @ @ @ DC		#$6c	B	B	B  		                 s   .BBBc                     t          t          t          j                    dd                                          t          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 )Nrf   MEr   )	eventDatethenamerY  r   r   z	'badname'rV   badnamer  )r,   r   r  aggfunc)r	   r   r   todaytolistr6   r$  r,   r   r   r|   r}   r  r  r0  r	  s    r   !test_pivot_table_values_key_errorr_    s+   	#HN$4$4btLLLSSUURyy	
 	

 
B k**05BvJ,,{++17BwK	x{	3	3	3 
 

$$')W 	% 	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s   2,C++C/2C/r   r)   r}  r  r  r  rX   z
US/Easternr'   
2016-01-01rL   r   r   Int64r   Float64boolean)boolintr  r  rI  dt64dt64tzperiodra  rb  rc  )idsmethod)r  rx   rz   )r   idxminr  r  r\   r  r  c                    d }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 rdv rd d}t           }nd d}t"          }t%          j        ||          5   |
             d d d            n# 1 swxY w Y   dv r@t          | t                    r+ |
d          } |            }t)          j        ||           d S dv r|s|s|r|rd}n|rd}nd}dk    rd                    |dg          }t%          j        t           |          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
 |            }t)          j        ||           d S  |
            }|	                              |          }dv r|                    |	j        j                  }||                    |          }t5                    d k    rd         |j        _        t)          j        ||           d S )!N)r\   r  ra  r   )r  r\   rF   r-   ABCr  rE   F)rU   r  observedc                  j    dk    r t                    di | S  t                    fi | S )Nr  rP   )r@  )kwargsr@   rj  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                   }rt          g d          }ng }t          g ||          }|S )Nr   r   rX   r  r  r;  r   )r   rE   rt   r   r  r   r	   )levrS  r   r   r}  r?  r  s       r    get_categorical_invalid_expectedz<test_empty_groupby.<locals>.get_categorical_invalid_expected#  s    
 1#V\222t99>>)3*DAAACC $q'***C 	B&=>>>GGGR<<<r   M)r  r  rk  r   )r  r  zCannot perform z with non-ordered Categoricalz
Can't get z/ of an empty group due to unobserved categoriesrV   Tr_  )r  r\   r  z datetime64 type does not supportzPeriod type does not supportzcategory type does not supportr  |z!does not support reduction 'skew')r   rk  rX   )r  r   rd  r	   r5   hasattrr   rE   rO  r3   r4   r.   PeriodDtypekindr   orderedr  r  r|   r}   r:   assert_equaljoinr$  r   r,   rt   rj   )r   r}  r  rj  r  using_array_managerr  r?  override_dtyper?   rq  rt  is_peris_dt64is_catr   r  r   r   r@   s    ````  `           @r   test_empty_groupbyr    sv   N N&,'' !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 	6;'' 444EBEEECEERrRRRCE]5,,, 	 	JLLL	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 333
7D8Q8Q3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$   FF!$F!<IIIc                     t          t          j                            d                              d                    } | d                             t          j                  | d<   g d| _        |                     | d         d          }d}t          j
        t          |	          5  |                    d
           }d d d            n# 1 swxY w Y   |j        | j        k                                    sJ d S )Nr%   )r   r   rL   r   rX   r%   r   rX   FrT   r   rV   c                     | S rZ   rP   rQ   s    r   rS   z<test_empty_groupby_apply_nonunique_columns.<locals>.<lambda>  s     r   )r	   r8   rp   rq   r   r   rF   r   r4   r:   ru   r   rz   r   rO  )r?   r@   r   r   s       r   *test_empty_groupby_apply_nonunique_columnsr    s   	29((++;;FCC	D	DBqELL""BqEBJ	BqEe	,	,B
CC		#$6c	B	B	B $ $hh{{##$ $ $ $ $ $ $ $ $ $ $ $ $ $ $J")#((*******s   +CCC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)rX   rX   rX   rX   )r%   r%   r%   r%   )r  r  r  r  z
('a', 'b')rV   r-  r  r  r   rX   r  r  )
r	   r|   r}   r  r4   r\   r   r   r:   ry   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 )	NrX   rL   r%   r   r8  z
^\(7, 8\)$rV   )r^   r   )	r	   r6   r   r  r|   r}   r  r4   rk   r	  s    r   test_tuple_correct_keyerrorr    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 )NrX   r   mycolsr  
2018-01-01r%   r   dti)r#   r   rj   r   )rX   rX   rX   rX   rX   ))r   r\   r   )r   ohlcopen)r   r  r  )r   r  r  )r   r  close)r  NNr  )r   r\   r  )
r	   r   r   r   r  r4   r
   rx   r:   r;   rl  s      r   test_groupby_agg_ohlc_non_firstr    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  rX   r%   r  rL   dater  )rL   r%         @r   r+   r  rC  r  )
r.   r2   r   r   r  r   r4   rk   r:   ry   )r  r  r>   r   r   s        r   test_groupby_multiindex_natr    s     
	$1		s#	$1		s#	$1		s#	F 
	vtn	=	=	=B
r
*
*
*C[[q[!!&&((FsCjc
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 )Nre   appler  r  z$Grouper and axis must be same lengthrV   )r  r6   r	   r|   r}   r  r4   )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 )NrR   r  r  r   )r   r  thirdr  rX   r%   r3  r   r  rL   r+   )r   from_arraysr   r4   r\   r:   ry   )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)   r   r  betar  )rX   r%   rX   r%   r,  rb  r+   r  )r   r  r	   r4   r
   rK  )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_namerR   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_   rL   r   r   rX   r   )re   rf   re   rf   r8  r&  rR   rW  rV   rX   r   )r   r  r   rc   rd   x1)	iterablesr"     re  )r	   r8   r9   r  r,   rj   r   r:   ru   rv   r4   r\   r   r;   r   r  )r  r?   r0  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  )r  r  c                 B    | j         j                                      S rZ   r  r  tz_localizerR   r(   s    r   rS   z+test_shift_bfill_ffill_tz.<locals>.<lambda>O	  s    qvy/D/DR/H/H r   )r  r  c                 B    | j         j                                      S rZ   r  r  s    r   rS   z+test_shift_bfill_ffill_tz.<locals>.<lambda>S	  s    9N9Nr9R9R r   )r   r	   assignr4   r@  r:   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 )NrX   )r   rR   r   rR   r\   r  )r	   r4   r{   r   r8   r   r:   ry   )r?   r@  r   s      r   test_groupby_only_none_groupr  W	  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$   re  r   )r  r  r  rB  r+   r   r  )r%   g      @r   )r  r  rB  )r   r4   rk   r:   ry   )r>   r@   r   r   s       r   test_groupby_duplicate_indexr  a	  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}| dk    rt
          nd }d}t          j        ||          5   |j        d d         	                    d	g          j
        | g|R  }d d d            n# 1 swxY w Y   t          j        ||          5   |	                    d	g          j
        | g|R  j        d d         }d d d            n# 1 swxY w Y   | dv r|                    t                    }t          j        ||           d}t          j        ||          5   |d         j        d d         	                    d	g          j
        | g|R  }d d d            n# 1 swxY w Y   d}t          j        ||          5   |d         	                    d	g          j
        | g|R  j        d d         }d d d            n# 1 swxY w Y   | dv r|                    t                    }t          j        ||           d S )NrX   r]  rL   r   )col_1col_2col_3col_4r   r   r  r  r  r  fillna)r  rP   %DataFrameGroupBy.fillna is deprecatedrV   r   )diffr  z"SeriesGroupBy.fillna is deprecated)r	   r   r   re  r$  rv   r:   ru   r3   r4   r{   r{  )transformation_funcrequestr?   argsr   warn_msgr   r   s           r   test_group_on_empty_multiindexr  k	  s    
)G$$a+,444
 
 
B W+$$S))BwKW+$$S))BwK	w(	)	)Bh&&/8;;==D6H		#D	9	9	9 V V9!$$gY//9:MUPTUUUV V V V V V V V V V V V V V V		#D	9	9	9 X X22::wi((23FNNNNSTVUVTVWX X X X X X X X X X X X X X X///??3''OFH%%%3H		#D	9	9	9 
 
BwK"1"WgY*3 .23 3 3 	
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 4H		#D	9	9	9 
 
BwKWgY*3-13 3 3 "1" 	
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 ///??3''OFH%%%%%sH   50C11C58C50EEE$6G&&G*-G*	6III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 )Nr`  r%   r   )r#   rj   rX   rL   r   )re  )r   r)   )r   r   )r   r  rY  rW  rV   )r   r   )r   r   r+   r   )r   r	   r   r"  r,   _get_axis_numberr   r:   ru   rv   r4   nuniquerj   r;   r   r   r8   rH   )r   r  r?   axis_numberr   r@   r   r   rE  r  r   s              r   test_groupby_crash_on_nuniquer  	  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   rK   rL   r   r  )	r	   r8   r9   r  r  r4   rk   r:   r;   )r   r   s     r   test_groupby_list_levelr  	  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], ...})rX   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$   rX   r  zdisplay.max_seq_items)r	   r8   rp   rq   r   r,   r.   option_contextr4   rK  __repr__r   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 )NrX   r%   c   r-  X   r  r  r   r   r   )	r	   r$  r4   rL  r8   r   rF   rt   rO  )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>  rU   rn  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 )	NrX   r%   rL   r-  r   r  r  )r  )r	   r$  r4   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 )NrX   r%   rL   r-   rW  rV   r  r   z'Cannot subset columns when using axis=1r   r   )	r	   r:   ru   rv   r4   r|   r}   r  r\   )r?   r   r   rW   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  )r\   anyr  c                     t          dgd          }t          dgg|          }|                    dg          } t          ||                       j        }t          j        ||           d S )Nr  rS  r  rX   r  )r   r	   r4   r@  r   r:   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                    | rt          j        d           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 )Nr  )r   r   r   rD  r  r,  r-   )r   r   r   zfuture.infer_string)r   r   r   r   )r   r  rX   r   )r,   r   rE   )r|   importorskipr	   r   r  r   r.   r  r4   r  r8   r   r:   r;   )r  r?   r   r   s       r   test_groupby_duplicate_columnsr  
  s;     'I&&&	""")=)=)=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  r,   rj   )r  r  r   r  r%   r   rX   )r   r,   rj   r4   lastr:   ry   )r>   r   r   s      r   #test_groupby_series_with_tuple_namer  3
  s    
\\\

C
C
CCCIN[[q[!!&&((Fq!fQF<<<H$HN68,,,,,r   zfunc, valuesr\        @X@     X@rk   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  rX   r%   r   r   r  r  r   r  r  r+   )r	   r@  r4   r   r:   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  rX   r%   r   r  r   r  g07yACg17yACga7y1Cgb7y1Cr  r  r  T)check_exact)r	   r4   r  r:   r;   )r   r?   r   exp_datar   s        r   'test_groupby_numerical_stability_cumsumr  I
  s    ;;;D	aVaZd>>	?	?BZZ  ''))F	
i++y).DDd|S  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$   rX   r   FskipnarU  )r8   rp   rq   r   r	   r6   r   r3   r4   r  r:   r;   )r  r?   ir@   r   r   s         r    test_groupby_cumsum_skipna_falser  U
  s    
)


"
"
2
26
:
:C	3B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 )Nr`  r$   r"   r   r%   rX   re  r   FT)r`  r  r   r   )	r   r   r.   r2   r	   r4   r  r:   r;   )r  r>   r?   r@   r   r  s         r   test_groupby_cumsum_timedelta64r  e
  s   
\1
-
-
-C
++A
C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  )r4   rk   r,   r:   ry   )(rand_series_with_duplicate_datetimeindexdupsr   r   s       r   !test_groupby_mean_duplicate_indexr	  w
  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   rM   )r   r8   r   r4   r,   r\   r   rH   rF   r:   ry   r/  r   r   s      r    test_groupby_all_nan_groups_dropr  ~
  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   r_  r  r)   r   r   )r	   r4   r\   r   r   r:   r;   )r   r`  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 )Nru  rX   Wre   rf   MWr   r  r  rE   rj   r+   r  )r	   r   r4   r\   r:   r;   r?   r   r@   r   s       r   *test_groupby_aggregation_non_numeric_dtyper  
  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rX   r   rX   rX   r   c                 .    g | ]}t          |d           S daysr   r   r  s     r   r  zDtest_groupby_aggregation_multi_non_numeric_dtype.<locals>.<listcomp>
  "    <<<1)Av&&<<<r   rX   re  c                 4    g | ]}t          |d z  d          S re   r  r  r  s     r   r  zDtest_groupby_aggregation_multi_non_numeric_dtype.<locals>.<listcomp>
  &    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>
  r  r   r^   rK   c                 4    g | ]}t          |d z  d          S r  r  r  s     r   r  zDtest_groupby_aggregation_multi_non_numeric_dtype.<locals>.<listcomp>
  r  r   r&  r.  r   rF   rR   r  r+   r  )r	   r6   r   r4   r\   r:   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   rX   re  r-  r^   r  r   r"  r   rF   rR   r  r+   r  )	r	   r6   r5   r   r   r4   r\   r:   r;   r  s       r   7test_groupby_aggregation_numeric_with_non_numeric_dtyper&  
  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	   r4   r7   r   r:   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   rX   r   rX   )
categoriesr-  r  r  Frn  z2018-01-01 00:00:00z2018-02-01 00:00:00r  z2018-03-01 00:00:00r%   )r	   r   r5   r   r   
from_codesr4   rL  r   r8   r   r  s      r   2test_datetime_categorical_multikey_groupby_indicesr6  
  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$   BobrX   r%   rL   r   rj   r  z@^[a-zA-Z._]*\(\) got an unexpected keyword argument 'min_period'rV   )window
min_period)r8   r   r	   r   r   r|   r}   r  r4   rollingr\   )name_lval_ltest_dfresult_error_msgs       r   #test_rolling_wrong_param_min_periodrA  
  s.   Y]eWq[(FVRVQ1%Aq!(<<E((*GuoGO 	L  
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r;  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)ThomasrC  Thomas John)i  i    )sadhappyrG  r   )NameCreditMoodr\   )rJ  rI  rH  rG  rF  i	  rE  rC  rD  )rJ  rI  rH  )r	   r   moder4   rx   r$  r:   r;   )rE   r?   aggregate_detailsr   expected_results        r   .test_by_column_values_with_same_starting_valuerN  
  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)NrX   r   rX   )r%   rL   r%   rL   rX   r  r  r  r+   r   r  r%   )r  r%   )r  rL   )r   r   r  r4   r\   r  r:   ry   )r  r>   r   r   s       r   #test_groupby_none_in_first_mi_levelrP  (  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+  )rX   rX   r%   rL   )r   r$   re  r^   )Nr  r  r  r%   r$   rK      r"  rX   r  r+   )r	   r4   r\   r   r:   r;   r  s      r   test_groupby_none_column_namerS  3  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 )NrX   r%   r$   r-  rR   r&  r+   r  c                     g | ]\  }}|S rP   rP   r   r   rP  s      r   r  z5test_single_element_list_grouping.<locals>.<listcomp>@  s    (((fc1c(((r   rX   )r%   )r	   r8   r   r4   )rT  r?   r   r   r   s        r   !test_single_element_list_groupingrY  ;  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  )rX   r%   rL   r%   )str_colnum_colr[  stringr-  )r7  r  rC  Fr   )r	   r   r4   rk   r:   r;   )r?   r   r   r   s       r   test_groupby_string_dtyper^  F  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)r_  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 )NrX   r%   rL   r   r$   re  r-  rR   r&  r+   r  r  zCreating a Groupby object with a length-1 list-like level parameter will yield indexes as tuples in a future version. To keep indexes as scalars, create Groupby objects with a scalar level parameter instead.rV   c                     g | ]\  }}|S rP   rP   rW  s      r   r  zKtest_single_element_listlike_level_grouping_deprecation.<locals>.<listcomp>i  s    777a777r   r  )r	   r$  r:   ru   rv   r4   )	level_argr'  r?   r0  s       r   7test_single_element_listlike_level_grouping_deprecationrc  Z  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)r\   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33ffrX   r  r  r  r   r  r+   )r  rd  Tr  )r	   r@  r4   r   r  r:   r;   )r  r  r?   r   r   s        r   #test_groupby_avoid_casting_to_floatrf  l  s     C	#''	(	(B+WRZZ__d++--3F#s5!3+?+?+?@@@H$$$''T'22&(+++++r   z	func, val)r\   rL   )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 )	NrX   r%   r  r   r  r  r  rM   )r	   r.   NAr@  r4   r   r:   r;   )any_numeric_ea_dtyper  r  r?   r   r   s         r   test_groupby_sum_support_maskrj  x  s     
!Q//7K	L	L	LB+WRZZ__d++--F	seQCc)=>>>"  H
 &(+++++r   z
val, dtype)o   re  )   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 )NrX   r  8r   r  r  r%   r  64rM   )r	   r4   r\   r   r:   r;   r  r  )r  rE   r?   r   r   s        r   test_groupby_overflowrq    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)TrL   c                    t          ddt          j        dgd|           }|                    d                              |          }t          ddt          j        |gi|           }t          j        ||           d S )NrX   r%   r  r   r  r   r  )r	   r.   rh  r4   r  r:   r;   )ri  r  r  r?   r   r   s         r   test_groupby_cumsum_maskrs    s     
!RUA//7K	L	L	LBZZ__##6#22F	q"%o"  H &(+++++r   zval_in, index, val_out)r  r  rC  r  rB  )r   r   r   r  blah)rC  r  rB  rC  )r  r  rC  r  rB  g      @)r   r   r   r  rt  rt  )rC  r  g      &@rC  c                    t          | dt          |d                    }|                    d                                          }t          |dt          g dd                    }t	          j        ||           |                                                    d                                          }|                                }t	          j        ||           d S )Nr  rt  r  )r   rj   r,   )r   r  rt  r   )r   r   r4   r\   r:   ry   r0   r;   )val_inr,   val_outseriesr   r   s         r   (test_groupby_index_name_in_index_contentry    s    " heE6O6O6OPPPF^^F##''))F111???  H
 68,,,__&&v..2244F  ""H&(+++++r   rD  )rX   re       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 )NrX   T)r)  rd  rd  r)  r  r+   )r	   eqr4   r\   r   r:   r;   )rD  r?   r   r   s       r   test_sum_of_booleansr}    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)rI  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$   re  r  r   r   )rD  )r   r  r   r  r-  r  r+   )
r	   r8   r   r6   r@  r4   r$  r   r:   r;   )rj  r?   r   r   s       r   test_groupby_method_drop_nar    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 )Nr`  r  r   r   re   z+Period type does not support sum operationsrV   z.Period type does not support cumsum operationsz,Period type does not support prod operationsz/Period type does not support cumprod operationsir   )r.   period_ranger5   r6   	to_seriesr4   r|   r}   r  r\   r  r  rd  r  r   re  r,   r:   ry   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   rX   r%   rL   r  rX   )r   r%   rL   r   )r	   r   r4   _obj_with_exclusionsrN  r:   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>  Tr_  r  z(could not convert string to float: 'bar'rV   )r	   r4   r7   r:   r;   r|   r}   r  )r`  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  )rR   wrR   r   rX   r$   r   r  Fr4  rk   gDlٿr  r  )closedr  r  r  T)rz  r-  r  r  r  )r	   r.   qcutr8   linspacer4   rx   r   r   r   r  r   r   r   r:   ry   )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 rZ   rP   rQ   s    r   rS   z;test_groupby_sum_on_nan_should_return_nan.<locals>.<lambda>Q  s     r   rX   )	min_countr  )r	   r8   r   r4   r\   r:   r;   )r  r?   r.  r   r  s        r   )test_groupby_sum_on_nan_should_return_nanr  M  s}     
C'7GRV<=	>	>B::kk""DXXX""FWgw=uMMMK&+.....r   )r  corrcummaxcumminrd  r;  rankr   r  r  rO  r  rk  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   rt   r,   r4   r@  r:   r;   )r?   rj  rngr   g_expr   r  s          r   #test_groupby_selection_with_methodsr  X  s    0 VSWW
-
-
-CBH


C53% AuIbg&&E '!V



C
 '%
 
 
"
"C #s#####r   c                    t          dt          |                     }d| j        _        || _        |                     dg          dg         }| dg                             | d                   }d}t          j        t          |          5  t          j	        |
                    d          |
                    d                     d d d            n# 1 swxY w Y   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  rV   r   z%DataFrameGroupBy.dtypes is deprecatedc                 *    |                                  S rZ   r[   rQ   s    r   rS   z6test_groupby_selection_other_methods.<locals>.<lambda>  s    AEEGG r   c                 *    |                                  S rZ   r[   rQ   s    r   rS   z6test_groupby_selection_other_methods.<locals>.<lambda>  s    AEEGG r   r   c                 (    t          |           dk    S rO   r:  rQ   s    r   rS   z6test_groupby_selection_other_methods.<locals>.<lambda>  s    3q66Q; r   c                 (    t          |           dk    S rO   r:  rQ   s    r   rS   z6test_groupby_selection_other_methods.<locals>.<lambda>  s    A! r   )r   rt   r   rj   r,   r4   r:   ru   rv   r;   r  r   rz   resamplerk   r  r?  )r?   r  r   r  r  r   s         r   $test_groupby_selection_other_methodsr  ~  sz   
VSWW
-
-
-CBJOBH


C53% AuIbg&&E 7H		#M	B	B	B < <
ahhqkk5<<??;;;< < < < < < < < < < < < < < <
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$   <CCC> D**D.1D.c                    t          g d                              |           }t          g dg d|d          }t          ddd|           }t          |g dg dd	          }|                    t          d
d                    }|                                                                }t          j	        ||           d S )N)z2016-08-31 22:08:12.000z2016-08-31 22:09:12.200z2016-08-31 22:20:12.400)r  r  rC  )quantquant2time2z2016-08-31 22:08:00rR  1min)r#   r   unit)rX   rX   r   r   r   r   r   r   r   r   r   r   rX   )r  r  r  r  )r   r   )
r   as_unitr	   r   r4   r
   r  r  r:   r;   )r  idx2	test_datar  expected_outputr@   r   s          r   test_groupby_with_Time_Grouperr    s    	
 	
 	
  gdmm 	 !//___tLL I ,bvDQQQE<<<===	
 	
 O 
		7wV<<<	=	=BXXZZ##%%F&/22222r   c                     t          g dt          dd          d          } |                     |                                           }t          ddgd	          }d|j        _        t          j        ||           d S )
Nr  z
2022-01-01rL   r"   janr  r%   rX   r  )r   r   r4   r  r,   rj   r:   ry   r  s      r   1test_groupby_series_with_datetimeindex_month_namer    s{    yyy
< C C C%PPPAYYq\\!!Fq!f5)))HHN68,,,,,r   test_serieszkwarg, value, name, warn)r  r  rX   Nr  rX  )r   r   rX   Nc                    t          dg dit          g dd                    }| r|d         } |j        di ||i}d}t          j        ||          5  |                    |          }d d d            n# 1 swxY w Y   | r&t          d	d
gt          ddgd          d          }	n&t          dd	d
git          ddgd                    }	t          j        ||	           d S )Nr  r  r  r  r  r+   z&you will need to pass a length-1 tuplerV   rL   r   rX   r  rP   )r	   r   r4   r:   ru   r  r   r{  )
r  kwargr   rj   r   r  r@   r   r   r   s
             r   $test_depr_get_group_len_1_list_likesr    sT    S)))$E)))#,F,F,F
G
G
GC #h		&	&u~	&	&B
2C		#D	4	4	4 $ $d##$ $ $ $ $ $ $ $ $ $ $ $ $ $ $ K1a&q!f3(?(?(?cJJJcAq6]%AS2I2I2IJJJOFH%%%%%s   A::A>A>c                      t          t          t          j        g          dgd          } |                     ddgdd                                          }t          dg          }t          j        ||           d S )NrX   r  r  r  F)r  rn  r   )	r	   r   r8   r   r4   r  r   r:   ry   r  s      r   test_groupby_ngroup_with_nanr    sr    	bfX..aS99	:	:BZZc
55ZAAHHJJFqc{{H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   rL   r%   rL   )r   rX   re  r^   )rL   r   r%   re   )rX   rR  re  r  )r$   re  i)rr  rs  col3col4col5
deprecatedrV   rX   )rX   r%   rL   r%   rX   )r   r  )rr  r  )r	   r:   ru   rv   r4   r  r;   r  s       r   test_get_group_axis_1r    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%c            	         t          dddddt          j        t          j        gig d          } |                     d	                                          }t          dg d
ig d          }t          j        ||d           d S )Nr  rX   r%   rL   r   r  r+   r   r  )rX   r%   rL   r   r%   rL   Fr  )r	   r8   r   r4   r  r:   r;   r  s      r   (test_groupby_ffill_with_duplicated_indexr    s    	C!Q1bfbf56>P>P>P	Q	Q	QBZZaZ  &&((F#1112:L:L:LMMMH&(>>>>>>r   c           	         t          t          j        t                    rJ t	          t          d          t          d          d d gt          d          t          d          t          d          t          d          gd          }|                    dd	          }| r|d
         }|j        j        }t          t          d          d gd          }t          j        ||           d S )NrX   r%   rL   r   r$   )r   r   r   F)r  r   r  )r  decimalInvalidOperationr  r	   r   r4   r  result_indexr   r:   r  )r  r?   r@   r   r   s        r   test_decimal_na_sortr    s    
 '2I>>>>>	AJJ

D$7ajj'!**gajj'!**E	
 	

 
B 
E%	(	(B [[%Fgajj$'e444H&(+++++r   )r   r  r   r  numpyr8   r|   pandas.errorsr   r   pandas.util._test_decoratorsutil_test_decoratorstdpandas.core.dtypes.commonr   pandasr.   r   r	   r
   r   r   r   r   r   r   r   r   r   pandas._testing_testingr:   pandas.core.arraysr   pandas.core.commoncorecommonr  markfilterwarnings
pytestmarkr   rD   parametrizer   r   r   r   r   r   r  r
  r  r  r3  rA  rU  r]  rc  rt  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  r+  r0  r4  r9  r@  rG  rQ  rS  rc  rf  rj  rm  rv  ry  r{  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r#  r5  rA  rF  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  param
skip_if_nor  r  r  r  r  r  r	  r  r  r  r#  r&  r/  r6  rA  r  rN  rP  rS  rY  r^  rc  rf  rj  rq  rh  rs  ry  r}  r  r  r  r  r  r  r  r  r  r  rv   r  r  r  r  r  rP   r   r   <module>r     s!                				             * ) ) ) ) ) ) ) ) 5 5 5 5 5 5                                      + + + + + +                  [''(STT
  , , ,6 "J"J"JKK>+ >+ LK>+BD D D- - -.E& E& E&P2I 2I 2Ij dE]33) ) 43),$ $ $, , ,   FFF , , ,6:' :' :'z     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 60	+ 	+ 	+< < <4 
EN , ,	 , :::  $770 0 87	 
0:    ' ' '0( ( (+ + +(( ( (. . ..  @- - -, , ,$, , ,0' ' '*; *; *;Z, , ,, , ,(
 
 
, , ,- - -"( ( (., , ,	, 	, 	,    / / /.< < <	- 	- 	-B B B*
, 
, 
,  <& <& <&~  	8 	8 	8# # #$*0 *0 *0Z& & &- - -0  , , ,- - - S3*$566  76@# # #$. . .@ @ @*5 5 56$ $ $*.4 .4 .4b- - -:, , , Xy68"4vy6IJ  \?\?4ST   	 6
 
 
$ S3%L113%#s!455		
		QC	Q
1a|,,,ac:::!G$$$!I&&&%	***	 	 	   : #;#;#;<<
C
C
C x& x&  =<;  65 21Fx&v	+ 	+ 	+- - -&" " ", , ,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,,- - -- - -*& *& *&Z&$ &$ &$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--/ / .-/    ,$ $- ,$   43 3 38- - - u66	ua'	udD!	1#q-(	1#tT"
 
& &
 
 76& - - -, , ,.? ? ? u66, , 76, , ,r   