
    bMh                       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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 Z.d Z/ej%        *                    dddg          d             Z0d Z1d Z2d Z3ej%        *                    d
g d          d             Z4d Z5d Z6d Z7d Z8d Z9d Z:d  Z;d! Z<d" Z=ej%        *                    d#d$ d% g          d&             Z>d' Z?d( Z@d) ZAd* ZBd+ ZCd, ZDd- ZEd. ZFd/ ZGd0 ZHd1 ZId2 ZJd3 ZKej%        *                    d4d5d6g          d7             ZLej%        *                    d4g d8          ej%        *                    d9ddg          d:                         ZMd; ZNd< ZOd= ZPd> ZQd? ZRd@ ZSdA ZTdB ZUdC ZVdD ZWdE ZXdF ZYdG ZZdH Z[dI Z\dJ Z]dK Z^dL Z_dM Z`dN ZadO ZbdP ZcdQ ZddR ZedS ZfdT ZgdU ZhdV ZidW ZjdX ZkdY ZldZ Zmd[ Znd\ Zod] Zpd^ Zqd_ Zrd` Zsda Ztej%        *                    dbdcdcddgg          de             Zudf Zvdg Zwdh Zxdi Zydj Zzdk Z{dl Z|dm Z}ej%        *                    dndodpdqdodpgdodqgg          ej%        *                    drdsdtdsdtgg          du                         Z~dv Zej%        *                    dwdxdxgg          ej%        *                    dydcgdcddgg          ej%        *                    dzd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%        *                    d9ddg          dɄ             Zdʄ Zd˄ Zd̄ Zd̈́ Zd΄ Zdτ ZdЄ 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%        *                    d9ddg          d             Zej%        &                    d          d             Zej%        *                    dd}d|g          d             Zej%        *                    dg d          d             Zd Zd 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)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     a/var/www/html/test/jupyter/venv/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_datetimelikerC   ,   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+   rD   r$   c                     | dz  S NrK    xs    r   <lambda>z)test_basic_aggregations.<locals>.<lambda>O   s
    Q!V r   F
group_keyszusing SeriesGroupBy.meanmatch   zusing SeriesGroupBy.sumc                 0    | |                                  z  S NsumrP   s    r   rR   z)test_basic_aggregations.<locals>.<lambda>d   s    q15577{ r   c                 0    | |                                  z  S rY   rZ   rP   s    r   rR   z)test_basic_aggregations.<locals>.<lambda>e   s    a!%%''k r         check_index_typezusing SeriesGroupBy.[mean|std]nested renamer is not supported)onetwo
         r   rW   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 rY   )namemean)rQ   group_constantss    r   rR   z)test_basic_aggregations.<locals>.<lambda>   s    oaf&=&H r      zMust produce aggregated valuec                     | dz  S Nr$   rO   rP   s    r   rR   z)test_basic_aggregations.<locals>.<lambda>   s
    AE r   )r   r7   r8   randomdefault_rngshufflereindexr3   lenr9   assert_produces_warningFutureWarning	aggregaterj   aggassert_series_equalr[   apply	transformr6   pytestraisesr   	Exception)rD   datar+   groupedkvmsgaggedr   r   transformedvalue_groupedrk   s               @r   test_basic_aggregationsr   G   s   ")A,,!#29Q<<uEEEDIaLLEI!$$U+++<<Dll++l>>G  11vv{{{{{
$C		#M	=	=	= + +!!"'**+ + + + + + + + + + + + + + +8q====
$C		#M	=	=	= ( (;;rw''( ( ( ( ( ( ( ( ( ( ( ( ( ( (5(+++5',,..111[[]]F
#C		#M	=	=	= ' ';;rv&&' ' ' ' ' ' ' ' ' ' ' ' ' ' '68,,,}}2233H##$9$9::Kq>R;111LL&&M
$C		#M	=	=	= 2 2((112 2 2 2 2 2 2 2 2 2 2 2 2 2 2655AAAA +C		#M	=	=	= 5 5!!27BF"3445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 -C	)	5	5	5 ; ;"'"&99:::; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ++O	E  
	#M	=	=	= J JHHHHIIJ J J J J J J J J J J J J J J 8r>>>> *C	y	,	,	, + +//***+ + + + + + + + + + + + + + + + + +s   ( DDD
 E66E:=E:. HH!H; K''K+.K+&,MM"%M"-N??OO-PPPQ,,Q03Q0c                    | j         j        d         }|                     |          }|                                }|                     |                    d                                                    }|j         j        t          j        k    sJ |j         j        t          j        k    sJ t          j
        ||d           d S )Nr   OFr_   )r+   codesr3   r[   astyperD   r7   int8rE   r9   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   )rb   rb   rc   threerc   rc   rb   r   r$      rH   rD   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 columnsrU   r   )r   r7   ro   rp   standard_normalarrayr5   rs   r9   rt   ru   r3   ry   dtypesrx   )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		#M	=	=	= 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]   rE   r   20130101r!   r,   c                     | j         d         S Nr   )r2   grps    r   f_0z*test_inconsistent_return_type.<locals>.f_0   s    x{r   r   r   r   rU   c                 6    | j         dk    rd S | j        d         S )Nr   r   ri   r2   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(   )ri   r2   r   r   s    r   f_4z*test_inconsistent_return_type.<locals>.f_4   s'    8v4x{s##r   )r   r   r7   r8   r   r3   firstr9   rt   ru   ry   r:   r0   nanr   r-   r1   ri   rx   )
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		#M	=	=	= 3 3C&&s++SE23 3 3 3 3 3 3 3 3 3 3 3 3 3 3&(+++  
 DC		#M	=	=	= 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		#M	=	=	= 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		#M	=	=	= 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		#M	=	=	= , ,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r7   
percentile)rQ   qr   s      r   fz test_pass_args_kwargs.<locals>.f   s    }Q----r   c                 0    t          j        | dd          S )NP   r   r   r   rP   s    r   rR   z'test_pass_args_kwargs.<locals>.<lambda>   s    "-2A... r   c                     | j         S rY   monthrP   s    r   rR   z'test_pass_args_kwargs.<locals>.<lambda>   s    ag r   r   r   皙?r   )TFc                     | j         S rY   r   rP   s    r   rR   z'test_pass_args_kwargs.<locals>.<lambda>  s    qw r   as_index*A grouping .* was excluded from the resultrU   Fcheck_namesg?r   )r3   rw   r7   r   ry   rz   quantiler9   rx   ru   rt   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 rY   r   rP   s    r   rR   z9test_pass_args_kwargs_duplicate_columns.<locals>.<lambda>,  s    17 r   r   r   rU   r   r   r   rW   r   r$   rW   r$   )columnsr3   ru   r9   rt   rw   r7   r   r+   r   r   r   Tr
   r5   r:   )r   r   r?   r   r   resex_datar   s           r   'test_pass_args_kwargs_duplicate_columnsr   (  sU    +**GO	**X	>	>B.44D
6C		#D	4	4	4 0 0ffR]BQf//0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7=&!+,55c::7=&!+,55c:: G !!#H )uQxx#x(((((s   #A44A8;A8c            	         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$   rd      ABCDr   
2000-01-01rd   r   r"   freqr   r+   c                     | j         S rY   yearrP   s    r   rR   ztest_len.<locals>.<lambda>E      AF r   c                     | j         S rY   r   rP   s    r   rR   ztest_len.<locals>.<lambda>E      ag r   c                     | j         S rY   dayrP   s    r   rR   ztest_len.<locals>.<lambda>E       r   c                     | j         S rY   r   rP   s    r   rR   ztest_len.<locals>.<lambda>H  r   r   c                     | j         S rY   r   rP   s    r   rR   ztest_len.<locals>.<lambda>H  r   r   c                 *    h | ]}|j         |j        fS rO   )r   r   .0rQ   s     r   	<setcomp>ztest_len.<locals>.<setcomp>I  s!    888!QVQW%888r   )r   r7   ro   rp   r   r
   r4   objectr   r3   rs   r+   )r>   r   r   s      r   test_lenr  ?  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 )NrK   rW   r$   rK   abr  r   r  )r   r7   r   rs   r3   r>   s    r   test_len_nan_groupr  M  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 )      ?rO   r   s     r   
<listcomp>z)test_basic_regression.<locals>.<listcomp>W  s    >>>S1W>>>r   rW   rd   r$   iL  g      $@)r   r4   r5   r7   ro   rp   r3   rj   )r   r~   	groupingsr   s       r   test_basic_regressionr  U  s    >>d5B<<&8&82&=>>>??F9  ##**40047DtInnY''GLLNNNNNr   )rG   rH   rE   rF   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 )Nrd   r   r   r   r*   r   r$   Fcheck_dtypec                 :    t          t          |                     S rY   )floatrs   rP   s    r   r   ztest_with_na_groups.<locals>.fu  s    SVV}}r         @       @)r
   r7   r8   r   onesr   r3   rw   rs   r9   rx   )rD   r+   valueslabelsr   r   r   r   s           r   test_with_na_groupsr  `  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$   rW   r  clevelsr   namesr  r   )r  emptyr   r   	set_indexrQ   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$   rW   r  r  )r  r!  r   r"  )rQ   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$   rW   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   )rW   r$   r$   r$   r   r#   rJ   r  r  r  )rK   r$   r$   r$   zDThe behavior of array concatenation with empty entries is deprecatedr   rU   r  z@Cannot concat indices that do not have the same number of levels)r   r5   r9   rt   ru   r3   ry   r:   r{   r|   AssertionError)	r&  r(  r*  r>   df2depr_msgr   result1result2s	            r    test_indices_concatenation_orderr1  ~  s]       	 	 	 
E!HH5A;;GG	H	HB
,,,U1XXE!QKKHH
I
ICUH DC		#M	=	=	= , ,**S//''++, , , , , , , , , , , , , , ,		#M	=	=	= - -++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 rY   weekdayrP   s    r   rR   z#test_attr_wrapper.<locals>.<lambda>  s    199;; r   c                 .    t          j        | d          S )NrW   )ddof)r7   r6   rP   s    r   rR   z#test_attr_wrapper.<locals>.<lambda>  s    RVAA%6%6%6 r   c                 >    i | ]\  }}||                                 S rO   )describe)r   ri   gps      r   
<dictcomp>z%test_attr_wrapper.<locals>.<dictcomp>  s&    <<<bbkkmm<<<r   c                     | j         S rY   r   rP   s    r   rR   z#test_attr_wrapper.<locals>.<lambda>  s    QW r   z-'SeriesGroupBy' object has no attribute 'foo'rU   r   )r3   r6   rw   r9   rx   r9  r   r   r:   rD   r{   r|   AttributeErrorgetattr)r   r   r   r   r   s        r   test_attr_wrapperr?    sV   jj..//G[[]]F{{6677H68,,, F<<G<<<H""$H&(+++ ]F{{,,--H68,,, :C	~S	1	1	1                                       s   .DDDc                 N   |                      d           }|                    d          }t          |          dk    sJ t          |j                  dk    sJ |                                 }d |j        D             |d<   |                     d                              d          }t          j        ||d           |                     d	                               d
           }|	                    d           }t          |          d	k    sJ t          |j                  dk    sJ |	                    d           }|D ]M\  }}|
                                }|j        D ],}	t          j        |                    |	          |d           -N|D ]*\  }
}|j        d                                         |
k    sJ +|j        }|j        }|                                D ]?\  }}| j                            ||                   }||k                                    sJ @d S )Nc                 *    |                                  S rY   r4  rP   s    r   rR   z$test_frame_groupby.<locals>.<lambda>  s    		 r   rj   r#   r   c                 6    g | ]}|                                 S rO   r4  r   s     r   r  z&test_frame_groupby.<locals>.<listcomp>  s     ;;;;;;r   r5  Fr   rf   c                 *    |                                  S rY   r4  rP   s    r   rR   z$test_frame_groupby.<locals>.<lambda>  s     r   c                 0    | |                                  z
  S rY   rj   rP   s    r   rR   z$test_frame_groupby.<locals>.<lambda>  s    a!&&((l r   c                 *    |                                  S rY   rE  rP   s    r   rR   z$test_frame_groupby.<locals>.<lambda>  s    affhh r   r   )r3   rv   rs   r   r0   r+   r9   r:   headrz   rj   rx   xsr5  groupsindicesitemstakeall)r   r   
aggregatedtscopystraggedr   ri   r   rj   idxr5  rI  rJ  r   r   	samethings                   r   test_frame_groupbyrS    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   rW   r   +DataFrame.groupby with axis=1 is deprecatedrU   r   rj   r$   c                 0    | |                                  z
  S rY   rE  rP   s    r   rR   z,test_frame_groupby_columns.<locals>.<lambda>  s    1qvvxx< r   5The 'axis' keyword in DataFrame.groupby is deprecated)
r9   rt   ru   r3   rv   rs   r   r   r:   rz   )	r   mappingr   r   rN  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   rj   r6   r(   r   ra   rU   r   r   )r3   rj   r+   ri   rw   r{   r|   r   )r>   r   r   r   s       r   test_frame_set_name_singlera    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  1rf  rf  2rg  rg  )v1v2k1k2)rb   rc   r   fourfivesixr*   rj  rk  r[   )r3   getrj   r9   r:   r   r   r7   ro   rp   r   r   rw   )r>   col1col2r   r   r   s         r   test_multi_funcrr  -  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(   rj   r6   )rj   r6   )r3   rw   r   r9   r:   )r>   r   r   r   s       r   !test_multi_key_multiple_functionsrt  I  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   rb   rb   rb   rc   rb   rb   rb   rc   rc   rc   rb   r$      )r   r   r   EFr   r   rj   r6   r   ry  rz  )r   ry  rz  rW   )keysr   )r   r7   ro   rp   r   r3   rw   r-   concat
isinstancer+   r   r9   r:   )r~   r   funcsr   r   s        r   "test_frame_multi_key_function_listr  Q  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           
      V   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          }| rd}t          j	        t          |          5  |                    |           d d d            d S # 1 swxY w Y   d S )Nrv  rw  )dullr  shinyr  r  r  r  r  r  r  r  r$   rx  )r   r   r(   r   ry  rz  r   r   rj   r6   &agg function failed [how->mean,dtype->-dtype 'str' does not support operation 'mean'rU   )r   r7   ro   rp   r   r3   reescaper{   r|   	TypeErrorrw   )using_infer_stringr~   r   r~  r   s        r   2test_frame_multi_key_function_list_partial_failurer    sw          &&q))99"==&&q))99"==&&q))99"==U+	
 +	
- -D^ llC:&&GUOE
)<
=
=C >=	y	,	,	,  E                 s   ;DD"%D"opc                 *    |                                  S rY   rZ   rP   s    r   rR   rR     s    !%%'' r   c                 *    |                                  S rY   rE  rP   s    r   rR   rR     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   rW   r   r_  )r3   appendr   r   from_tuplesr-   r|  r   r+   r9   rx   rj   )r>   r  r~   r   r/  r{  r  n1gp1n2gp2mir   col
result_colpivotedexpr   s                     r   test_groupby_multiple_columnsr    s   DllC:&&G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 )NrW   r$   r   r#   rc  r   r   r   Fr   ri   T)r   rT   c                 *    |                                  S rY   )cumsumrP   s    r   rR   z-test_as_index_select_column.<locals>.<lambda>  s    !((** r   )r$   rc  rc  ))r   r   )r   rW   r   ri   r+   )	r   r3   	get_groupr   r9   rx   ry   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rW   rW   r$   rK   r   r#   r  r  r   rU   )obj)
r   r2   r3   rJ  ro  r9   rt   ru   r  r:   )r.  r>   r   r   s       r   !test_obj_arg_get_group_deprecatedr    s    "H	33	4	4Bwrzz#.221556H		#M	B	B	B 0 0C**1"*55
fh///0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0s   ,A B99B= B=c                  D   t          t          g dd                    } |                     dd          d                             d	          }t          | j        d d
         t          d                    }d g|j        _        t          j        ||           d S )Nr,   alphar  r  r   F)byr   r   r]  r$   r   r   )	r   r
   r3   r[   r   r5   r   r9   r:   )r>   leftr   s      r   0test_groupby_as_index_select_column_sum_empty_dfr    s    	5w???	@	@	@B::u:--c266E6JJDBQBuQxx@@@H"VH$)))))r   c                 	   |                      dd          }|ddg                             d          }|                    d          }t          j        ||           |                    dd	d
          }|                    d          }|                                d         |d<   t          j        ||           |                      dd          }d}t          j        t          |          5  |d                             dd	i           d d d            n# 1 swxY w Y   |                      ddgd          }|                    d          }|                                }t          j        ||           |                    dd	d
          }|                                }|                                d         |d<   t          j        ||           |d                                         }t          |          
                    ddi          }d}t          j        t          |          5  |d                             dd	i          }d d d            n# 1 swxY w Y   t          j        ||           t          t          j                            d                              ddd          g d          } t#          t          j                            d                              ddd          d          }	|                      |	          }
|
                    d           d}t          j        t          |d          5  |
                    t
                    }d d d            n# 1 swxY w Y   t          j        t          |d          5  |                      |	                              t
                    }d d d            n# 1 swxY w Y   t          j        ||           dD ]}|                      |	d          }
 t)          |
|                      }|                      |	j        d          }
 t)          |
|                                          d          }t          j        ||           d S )Nr   Fr   r(   r   rj   Tr]  r[   r_  ra   rU   Qr   r  z7Passing a dictionary to SeriesGroupBy.agg is deprecatedr$   r   d   )2   rK   )jimjoejolier#   rd   r  r  r  z:The behavior of DataFrame.sum with axis=None is deprecated)rV   check_stacklevel)rj   maxcountr   r  rM  drop)r3   rw   rj   r9   r:   r[   r{   r|   r   r   renamert   ru   r7   ro   rp   integersr   nthry   r>  r  reset_index)r>   r   r   r   r0  	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   r7   ro   rp   r  r>  r3   r  r  r   rD   r9   r:   rw   )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,   )r3   rw   r   r}  r   r9   r:   r[   )r>   r   grouped2r   r   r0  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 selectedrU   r(   r   )r3   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   rW   )r3   rj   insertr+   r   rs   r9   r:   r4   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,   )r3   rw   rs   r   r9   r:   r>   r   r   r   s       r   #test_groupby_as_index_series_scalarr    ss    jj#sej44G S\c""F{{3#AAA$67H&(+++++r   c                    d}t          j        t          |          5  |                    d d           d d d            n# 1 swxY w Y   d}d}t          j        t          |          5  t          j        t          |          5  |                     d dd	
           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nz(as_index=False only valid with DataFramerU   c                 *    |                                  S rY   r4  rP   s    r   rR   z.test_groupby_as_index_corner.<locals>.<lambda>  s    QYY[[ r   Fr   z$as_index=False only valid for axis=0rU  c                 *    |                                  S rY   )lowerrP   s    r   rR   z.test_groupby_as_index_corner.<locals>.<lambda>  s     r   rW   )r   r   )r{   r|   r  r3   
ValueErrorr9   rt   ru   )r>   r   r   r.  s       r   test_groupby_as_index_cornerr    s   
4C	y	,	,	, : :


((5
999: : : : : : : : : : : : : : : 1C<H	z	-	-	- D D'XFFF 	D 	DJJ**UJCCC	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	D 	DD D D D D D D D D D D D D D D D D DsG   AA
A-C	B/#C/B3	3C6B3	7CCCc            	      \   t          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   rd   r   r   r   c                     | j         S rY   r   rP   s    r   rR   z+test_groupby_multiple_key.<locals>.<lambda>  r   r   c                     | j         S rY   r   rP   s    r   rR   z+test_groupby_multiple_key.<locals>.<lambda>  r   r   c                     | j         S rY   r   rP   s    r   rR   z+test_groupby_multiple_key.<locals>.<lambda>  r   r   rU  rU   c                     | j         S rY   r   rP   s    r   rR   z+test_groupby_multiple_key.<locals>.<lambda>  s    qv r   c                     | j         S rY   r   rP   s    r   rR   z+test_groupby_multiple_key.<locals>.<lambda>       r   c                     | j         S rY   r   rP   s    r   rR   z+test_groupby_multiple_key.<locals>.<lambda>  s    AE r   rW   r   c                 *    |                                  S rY   rZ   rP   s    r   rR   z+test_groupby_multiple_key.<locals>.<lambda>      !%%'' r   c                 *    |                                  S rY   rZ   rP   s    r   rR   z+test_groupby_multiple_key.<locals>.<lambda>  r  r   )r   r7   ro   rp   r   r
   r4   r   r   r3   r[   r9   assert_almost_equalr  rt   ru   r   rw   assert_index_equalr+   r   )r>   r   r   r.  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   )r0   r7   r   r3   rj   r9   r:   )r>   r   r   s      r   test_groupby_multi_cornerr    s    	BBuIJJSz""''))Ezz3*%%**,,HfHUO%*****r   c                 V   |                      d          }t          j        d          }|r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  r  rU   rj   r   r(   r   ry  z/datetime64 type does not support sum operationsr[   rU  r   rW   )r   r(   r   ry  r   z?does not support reduction 'sum'|Cannot perform reduction 'sum'c                 0    |                      dd          S )Nr   Fr]  rZ   rP   s    r   rR   z)test_raises_on_nuisance.<locals>.<lambda>  s    aeeAEe:: r   )r3   r  r  r{   r|   r  rw   rj   r   r   nowr[   r9   rt   ru   )r>   r  r   r   r.  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
KC	y	,	,	, < <::;;;< < < < < < < < < < < < < < < < < <sl   	A++A/2A/B22B69B6D::D>D> FFF)GGG:HH"%H"agg_functionr  minc                    |                      d          } t          ||                      }|                                } t          | j        | d         dk    df         |                      |j        d<    t          | j        | d         dk    df         |                      |j        d<   t	          j        ||           d S )Nr   r   r   )r   r   r   )r   r   )r3   r>  r0   r   r9   r:   )r>   r  r   r   r   s        r   test_keep_nuisance_aggr    s     jjooG+WWl++--F{{}}HSwrvbg.>.C'DlSSUUHLSwrvbg.>.C'DlSSUUHL&(+++++r   )r[   rj   prodr6   varsemmedianr^  c                 H   |                      d          }d}||v r|s|rd| d}t          }n-|dv r
t          }d}nt          }t          j        d| d          }t          j        ||	          5   t          ||          |
           d d d            d S # 1 swxY w Y   d S  t          ||          |
          }|s|dk    rg d}	ng d}	 t          | j        d d |	f                              d          |          |
          }
t          j
        ||
           d S )Nr   )r  r6   r  rj   r  r  (dtype 'str' does not support operation '')r6   r  z(could not convert string to float: 'one'zagg function failed [how->z,dtype->rU   r]  r[   r   r  )r3   r  r  r  r  r{   r|   r>  r   r9   r:   )r>   r  r^  r  r   no_drop_nuisancer   klassr   r   r   s              r   test_omit_nuisance_aggr    s    jjooGF''''  	QL\LLLCEE^++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   1BB Bc                     |                      d          }t          }d}|r	t          }d}t          j        ||          5  |                                 d d d            d S # 1 swxY w Y   d S )Nr   zcould not convertz-dtype 'str' does not support operation 'skew'rU   )r3   r  r  r{   r|   skew)r>   r  r   errr   s        r   $test_raise_on_nuisance_python_singler	  '  s    jjooG
C
C >=	s#	&	&	&                   s    A""A&)A&c                    |                      ddg          }t          j        d          }|r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  r  rU   rj   )r3   r  r  r{   r|   r  rw   rj   )three_groupr  r   r   s       r   &test_raise_on_nuisance_python_multipler  4  s8   !!3*--G
)<
=
=C >=	y	,	,	,  F              	y	,	,	,                   s$   A--A14A1B55B9<B9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 )Nrd  re  r   r   rK   r$   rc  )rj  rk  k3rh  ri  rj  rk  rh  ri  rj   Tr]  r#   r   r   c                 *    |                                  S rY   rE  rP   s    r   rR   z*test_empty_groups_corner.<locals>.<lambda>Q  s    AFFHH r   r   r   )r   r7   r   ro   rp   r   r3   rw   rj   r9   r:   ry   rx   r+   ri   )r   r>   r   r   r   r   agged_As          r   test_empty_groups_cornerr  ?  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'rU   c                     | dz   S )Nr   rO   rP   s    r   rR   z$test_nonsense_func.<locals>.<lambda>[  s
    QY r   )r   r{   r|   r  r3   )r>   r   s     r   test_nonsense_funcr  W  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          }|r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)bazrc   r   r   rW   r  r  rU   rj   r  c                 ^    | j         dk    rt          d          |                                 S )N)r   rb   Test error message)ri   r  r[   )r=   s    r   aggfunz5test_wrap_aggregated_output_multindex.<locals>.aggfunm  s,    8~%%0111wwyyr   r  )r   r7   r   r  r  r{   r|   r  r3   rw   r  r}  r   r   rv   )r   r  r>   r{  r   r   r  s          r   %test_wrap_aggregated_output_multindexr  ^  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   rW   secondr   )r3   r  r+   ri   )r   r   s     r   test_groupby_level_applyr   v  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   rW   )r   r   r  qux)rb   rc   r   r  c                 :    g | ]}                     |          S rO   ro  )r   rQ   mapper0s     r   r  z-test_groupby_level_mapper.<locals>.<listcomp>  s#    444AQ444r   r   r   c                 :    g | ]}                     |          S rO   r$  )r   rQ   mapper1s     r   r  z-test_groupby_level_mapper.<locals>.<listcomp>  s#    555AQ555r   r  )r   r  )
r  r3   r[   r7   r   rE   r+   ri   r9   r:   )
r   	deleveledresult0r/  mapped_level0mapped_level1	expected0	expected1r%  r'  s
           @@r   test_groupby_level_mapperr.    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)rW   r$   rK   rd   r   r#   re   rc  )rW   r$   rK   rW   r   r#   r$   rc  r   r  )rx     rK   r   r#   rc  rW   r]   r   r  r)   z2level > 0 or level < -1 only valid with MultiIndexrU   zNo group keys passed!z*multiple levels only valid with MultiIndex)
r   r
   r5   r3   r[   r9   rx   r{   r|   r  )sr   r   r   s       r   test_groupby_level_nonmultir3    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   rW   rW   r~   r+   )r5  y      @      $@r   r  )r   r7   r8   r3   r[   r9   rx   )r  r   r   s      r   test_groupby_complexr7    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$   r5  r  rW         ?      ?r  r        ?r  r  r+   r   )r   r3   rj   r
   r9   r:   r  s      r   test_groupby_complex_meanr<    s    	&!!&!!&!!	

 
B ZZ__!!##F
f(s333se  H
 &(+++++r   c                     t          dddddddddg          } t          t          j        g dt          j                  t	          g dd	
          t	          dg                    }|                     d	d                                          }t          j        ||           t	          g dd	
          |_	        |                     d	d                                          }t          j        ||           d S )NrW   r9  r  r5  r   )rW   rW   rW   r   )r9  r5        ?        r  r  r  r;  Fsort)r>  r9  r5  T)
r   r7   r   rE   r
   r3   r  r9   r:   r+   r>   r   r   s      r   test_groupby_complex_numbersrB    s   	&!!&!!!	

 
B 
"(+++222===se  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  rD  rD  g      @)r  r  rE  r   r   h)	r   r
   r3   rj   rr   r+   ro  r9   rx   )s1s2r   r   r  s        r   'test_groupby_series_indexed_differentlyrI    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"  )rb   rc   rb   rc   rb   rc   rb   rc   ))r   cat)r   dog)r   rK  )r   rL  r$   )r   r   r;  r   r  rU  rU   rW   )r   r   rj   c                 *    |                                  S rY   rE  rP   s    r   rR   z0test_groupby_with_hier_columns.<locals>.<lambda>  s     r   c                 ,    |                      d          S )NrW   rE  rP   s    r   rR   z0test_groupby_with_hier_columns.<locals>.<lambda>  s    affQii r   r   r   r   )r   r   Tr]  r)   )r4   r  r   r  r   r7   ro   rp   r   r3   rj   r9   r  r   rt   ru   r+   rw   ry   r
   	sortlevel)	tuplesr+   r   r>   r   r.  r?   sorted_columns_s	            r   test_groupby_with_hier_columnsrS    s    HHHHHH	
 F "6**E$@@@ G 

	a  0088w
 
 
B ZZaZ  %%''F&.'222<H		#M	B	B	B ) )ZZaaZ(() ) ) ) ) ) ) ) ) ) ) ) ) ) )WWYYF&,111ZZaZ  $$V,,F&.'222ZZaZ  &&'9'9::F&.'222		#M	B	B	B ) )ZZaaZ(() ) ) ) ) ) ) ) ) ) ) ) ) ) )VV''((F&.%c
*;*;<<<&,111  ))!,,NABzNZZaZ  %%4%88F&."*SbS/:::::s$   (DDD,HHHc                    |                      | d         j                  }|                      | d                             d                     }|                                }|                                }t	          j        ||           d S )Nr   )r3   r  r  r[   r9   r:   )r>   r   r  r   r   s        r   test_grouping_ndarrayrU  %  sm    jjC((Gzz"S'....//H[[]]F||~~H&(+++++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   rW   r$   rK   r   r+   r  )foo1rX  foo2rX  foo3)bar1bar2r\  r[  r[  )baz1r]  r]  baz2r^  )spam2spam3r_  spam1ra  )re   rf   (   r  <   )r   r   r  spamr~   r*   )r   r   r  rd  rj   )r
   r   r3   rw   rj   r9   r:   )r+   r~   r   r   r   s        r   test_groupby_wrong_multi_labelsre  .  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   )r3   rj   r+   ri   r   r>   r   r0  s      r   test_groupby_series_with_nameri  B  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 rn   )r7   r[   rP   s    r   rR   z.test_seriesgroupby_name_attr.<locals>.<lambda>U  s    Q r   )r3   r  ri   rj   rw   )r>   r   testFuncs      r   test_seriesgroupby_name_attrrm  O  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   )rb   rb   rc   rc   rc   rc   rb   rc   r$   r   r  r   r   )r   r7   ro   rp   r   r8   r3   r   r  r   r9   rx   rA  s      r   test_consistency_namero  Y  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 )NrW   r$   rK   r  rj   	omissionsr  )r   )r>   ri   s     r   	summarizez0test_groupby_name_propagation.<locals>.summarizel  s    11==DIIIIr   c                 N    t          dddd| j        d         d                   S )NrW   r$   rK   rr  r   r   r  )r   r2   r  s    r   summarize_random_namez<test_groupby_name_propagation.<locals>.summarize_random_nameo  s+     11==BGAJsOTTTTr   r   rU   r   metricsrY   )r9   rt   ru   r3   ry   r   ri   )r>   rt  rv  r   rw  s        r   test_groupby_name_propagationrx  j  s   J J J JU U U DC		#M	=	=	= 3 3**S//''	223 3 3 3 3 3 3 3 3 3 3 3 3 3 3?'''		#M	=	=	= > >**S//''	9==> > > > > > > > > > > > > > >?9,,,,		#M	=	=	= ? ?**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 )rd   )r7   r8   r   s     r   r  z2test_groupby_nonstring_columns.<locals>.<listcomp>  s     555aBIbMM555r   rd   r   )r   r5   r3   rj   r9   r:   r  s       r   test_groupby_nonstring_columnsr{    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 )Nrg   )r   r   r   r  rW   r$   r   r   r   r  r   )r   r
   r3   r   r9   r:   r[   rA  s      r   test_groupby_mixed_type_columnsr}    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   rd   )r7   r!  fillr   r   tiler5   r3   rw   r  isnarM  )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 rY   )rs   setmapidr+   rP   s    r   rR   z5test_series_grouper_noncontig_index.<locals>.<lambda>  s"    #c#b!'**++,, r   )	r
   r   r7   ro   rp   r   r  r3   rw   )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  rE  r   r   r   c                 ^    t          t          |                                                     S rY   )r   strrj   rP   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   )rs   r  baser   r  rj   rP   s    r   convert_force_purezDtest_convert_objects_leave_decimal_alone.<locals>.convert_force_pure  s;    18=!!A%%%%s16688}}%%%r   r   )r   r5   r7   r   r3   rw   rD   object_r}  r2   r   )r2  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   rE   r   )rQ   r5   rQ   ri   rD   r5   rL   T)	by_blocks)r   r7   r8   rD   rG   r3   r   r
   r   r9   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 )	NrW   l    4;PU  )r   r  r   r   r  r   r  r  )r   r3   r  r   r   from_productr9   rx   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'$rU   r)   r   rW   rK   r   r$   )r   r   valr   r   r  )r3   r4   rj   r9   r:   r{   r|   KeyErrorr   r7   ro   rp   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 )Nr2  z2015-09-29T11:34:44-0700r$   )startr"   r   r   rd   r      metricr  r   r   )r   r   )r   r   r   r3   r	   rj   r"  r+   r   r  r9   r:   )r   r+   r>   r   r   s        r   $test_groupby_keys_same_size_as_indexr    s    D233QT  E 
S"IRy)Hh3Gu	U	U	UBZZqt444h?@@EEGGF||RXx01188??H&(+++++r   c                  d   d} t          t          j                            d                              d          t          d                    }t          j        t          |           5  |	                    d           d d d            n# 1 swxY w Y   t          t          j                            d                              d          t          d                    }t          j        t          |           5  |	                    d           d d d            d S # 1 swxY w Y   d S )	Nz^'Z'$r$   )rW   r   r   r  rU   Z)r$   r   )
r   r7   ro   rp   r   r4   r{   r|   r  r3   )r   df1r-  s      r   test_groupby_one_rowr    s   
C

	a  0088$v,,  C 
xs	+	+	+  C              

	a  0088$v,,  C 
xs	+	+	+  C                 s$   ,BBBD%%D),D)c                     t          t          j                            d                              d          t          j        t          d          t          j        t          d          t          j        t          d          t          j        t          d          gt          j        dt          j        dt          j        dt          j        dgd          } |                     d          }t          d	d
g          t          ddg          g}t          |j
                                                  }t          |          dk    sJ t          ||          D ]%\  }}t          j        |j
        |         |           &t          j        |j        j        d         j        |            |j        dk    sJ t          d          t          j        d	d
gt          j                  t          d          t          j        ddgt          j                  i}|j        D ](}t          j        |j        |         ||                    )t          j        |                    t          d                    | j        d	d
g                    t          j        |                    t          d                    | j        ddg                    t7          j        t:          d          5  |                    t<          j                   d d d            n# 1 swxY w Y   t          t          j        t          j        t          j        gt<          j        t<          j        t<          j        gd          }|d         j         dk    sJ |d         j         dk    sJ dD ]}|                    |          }|j
        i k    sJ |j        dk    sJ |j        i k    sJ t7          j        t:          d          5  |                    t          j                   d d d            n# 1 swxY w Y   t7          j        t:          d          5  |                    t<          j                   d d d            n# 1 swxY w Y   d S )Nr$   r   z
2013-01-01z
2013-02-01r  r  )r  dtr  r  rW   r]   rK   r#   r   z2013-01-01 00:00:00r   z2013-02-01 00:00:00z^NaT$rU   )r   natr   rG   r  zdatetime64[ns]z^nan$)!r   r7   ro   rp   r   r   r   r3   r
   sortedrI  r{  rs   r  r9   r  r:   _grouperr  r  ngroupsr   intprJ  assert_numpy_array_equalr  r2   r{   r|   r  r-   r1   rD   )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 )NrW   r$   r+  r  r  )r   r7   r   r3   rJ  )r>   r   s     r   #test_groupby_two_group_keys_all_nanr  K  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                               t          j        |j        |           d S )Nr$   r*   g1g2r   r   zerosrW   r  l1l2labelTr]          r  r   )r   r5   r3   rj   r7   r   r9   r  r   r
   r   r  r  )rE  tmp
res_valuess      r   test_groupby_2d_malformedr  R  s    a!!!AAgJQAgJAAfIAgJ
))WI


#
#
#
6
6CC:Sz233J#+ugv->f'M'M'MNNN
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   ry  r   )r   r(   r   r   )
r7   concatenater8   r   ro   rp   r   r3   r[   rs   )r   r   r>   r  r  s        r   test_int32_overflowr  ^  s    
	%((")E*:*:BIdOOLMMA
	%A	&&q))99%@@	
 	

 
B ::***++//11DJJ+++,,0022Et99E

""""""r   c                     t          g dg dg dt          j                            d                              d          d          } d | g d         j        D             }t          j        |          }|                     g dd	
          	                                }t          j        |j        j        |g d                    d | g d         j        D             }t          j        |          }|                     g dd	
          	                                }t          j        |j        j        |           d | g d         j        D             }t          j        |          }|                     g dd	
          	                                }t          j        |j        j        |g d                    t          g dg dt          j                            d                              d          d          } |                     ddg          d         }|	                                }d fd} || |ddgd           d S )Nr   r   r  )rK   r$   rW   rg   r$   rK   r  r  r  rE  c                 ,    g | ]}t          |          S rO   tupler   rows     r   r  z+test_groupby_sort_multi.<locals>.<listcomp>z      ===3E#JJ===r   r+  Tr?  )rW   r$   r   c                 ,    g | ]}t          |          S rO   r  r  s     r   r  z+test_groupby_sort_multi.<locals>.<listcomp>  r  r   )r  r  r  c                 ,    g | ]}t          |          S rO   r  r   s     r   r  z+test_groupby_sort_multi.<locals>.<listcomp>  s    999E!HH999r   )r  r  r  )r$   rW   r   r   rW   r$   r   rW   r$   )r   r   r   rW   rW   rW   rc  )r  r  rE  r  r  rE  c                 *    |                                  S rY   rZ   rP   s    r   rR   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 rO   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_tuplesafer3   rK  )	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   r7   ro   rp   r   r  r  r  r3   r[   r9   r  r+   )r>   r  r   r   r  s        r   test_groupby_sort_multir  p  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   ri   r   rU   r   FrS   c                     | S rY   rO   rP   s    r   rR   z/test_dont_clobber_name_column.<locals>.<lambda>  s    Q r   )r   r9   rt   ru   r3   ry   r:   )r>   r   r   s      r   test_dont_clobber_name_columnr    s    	...8M8M8MPQ8QRR
 
B DC		#M	=	=	= 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   rd   r   r   r   c                     | j         S rY   r   rP   s    r   rR   z&test_skip_group_keys.<locals>.<lambda>  s    AG r   FrS   c                 >    |                      d          d d         S )Nr   r  rK   sort_valuesrP   s    r   rR   z&test_skip_group_keys.<locals>.<lambda>  s    Q]]c]%:%:2A2%> r   c                 P    g | ]#\  }}|                     d           dd         $S )r   r  NrK   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 rY   r   rP   s    r   rR   z&test_skip_group_keys.<locals>.<lambda>  r  r   c                 :    |                                  d d         S rN   r  rP   s    r   rR   z&test_skip_group_keys.<locals>.<lambda>  s    Q]]__RaR%8 r   c                 L    g | ]!\  }}|                                 d d         "S rN   r  r  s      r   r  z(test_skip_group_keys.<locals>.<listcomp>  s1    @@@*#ue!!"1"%@@@r   )r   r7   ro   rp   r   r
   r4   r   r   r3   ry   r-   r|  r9   r:   rx   )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[   )r0   ri   r3   rw   )float_framer2  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 )
NrJ   rK   r   test)g?r:  g?flr[   r  )r  r$   )r   r7   r8   reshaper3   rw   rD   rG   )rQ   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(   )r3   ry   r}  r   r9   rx   )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                 @   d }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 rY   r  r   s    r   r   ztest_set_group_name.<locals>.f  s    z%%%r   c                 <    | j         J |                                 S rY   )ri   r[   r   s    r   freducez$test_set_group_name.<locals>.freduce  s    z%%%yy{{r   c                      |           S rY   rO   )rQ   r  s    r   freducexz%test_set_group_name.<locals>.freducex  s    wqzzr   FrS   r   rU   r_  r(   )r3   r9   rt   ru   ry   rv   rz   )r>   r  r   r  r   r   r  s         @r   test_set_group_namer    s            jjUj33G DC		#M	=	=	=  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   rW   rW   r$   r$   rc  r  c                 `                         | j                   |                                 S rY   )r  ri   r0   )r   r   s    r   r   z6test_group_name_available_in_inference_pass.<locals>.f  s%    UZ   zz||r   r   rU   r  F)r@  rT   rg   )r   r7   r8   r9   rt   ru   r3   ry   )r>   r   r   expected_namesr   s       @r   +test_group_name_available_in_inference_passr    s    	+++")A,,??	@	@BE     DC		#M	=	=	= ? ?


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)r3   r  r[   r+   ri   r   rh  s      r   test_no_dummy_key_namesr    s    ZZ3''++--F<$$$jj"S'."S'.9::>>@@G=,......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 )NrW   r$   )r   r   r   r   rW   rW   )rW   rW   r   r   r   r   r  r  r  )r   rW   r$   rK   r   r#   r*   r  )rW   r   r   r   r$   r   Fr   r@  T)r   r   r3   r   r9   rx   
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 )Nrx  )hourrP   s    r   rR   zYtest_groupby_reindex_inside_function.<locals>.agg_before.<locals>._func.<locals>.<lambda>:  s    !&2+ r   r   )r   r+   r  dropnars   )r~   rE  fixfuncs     r   _funczGtest_groupby_reindex_inside_function.<locals>.agg_before.<locals>._func9  sg    (=(=>>?FFHHA $TZ]##1vv{{t477Nr   rO   )r  r  r  s   `` r   
agg_beforez8test_groupby_reindex_inside_function.<locals>.agg_before4  s)    
	 	 	 	 	 	 r   c                 B    t          | j        | j        | j                  S rY   )r   r   r   r   rP   s    r   rR   z6test_groupby_reindex_inside_function.<locals>.<lambda>C  s    8AFAGQU#C#C r   r  T)F)	r   r   r7   r8   r3   rw   r  r9   r:   )r"   indr>   r  r   closure_badclosure_goods          r   $test_groupby_reindex_inside_functionr  /  s    G
:FG
D
D
DC	BIg..ry7I7IJJRU	V	V	VB    jjCCDDG++vzz"&'9'9:;;K;;

264(@(@ABBL+|44444r   c                  R   t          g dg dg dd          } |                     ddg          } |                     ddgd          }|                    d	          }t	          j        g d
ddg          }t          dgdgdgg|dg          }t          j        ||           d S )N)r  r  r  r  )r  r  rE  r  )rW   rW   rW   r#   )group1group2r   r!  r"  Tr  r[   ))r  r  )r  rE  r  r  r  r$   rW   r#   r   r;  )r   r"  r3   rw   r   r  r9   r:   )r>   r   r   rQ  r  s        r   $test_groupby_multiindex_missing_pairr$  J  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  rW   rK   r   r  r  )rW   r'  r(  rK   )rW   r)  r*  r   )r   r~   r  rE  )r+   r   r  )r  r  r  r  rW   rW   r$   r$   rW   r$   rK   r   rQ   r$  zrQ   r$  r   rW   )FTF)r   r@  rT   )r   r  r   r   _is_lexsortedpivot_tabler  r3   rj   r9   rt   r   r:   r"  r+   ry   drop_duplicatesr	  )lexsorted_milexsorted_dfnot_lexsorted_dfr   r   r>   r   r@  s           r   %test_groupby_multiindex_not_lexsortedr6  _  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$   rW   rW   r*   ababbc                 (    t          |           dk    S rn   rs   rP   s    r   rR   z4test_index_label_overlaps_location.<locals>.<lambda>      A
 r   r+  r   c                 (    t          |           dk    S rn   r;  rP   s    r   rR   z4test_index_label_overlaps_location.<locals>.<lambda>  r<  r   c                 (    t          |           dk    S rn   r;  rP   s    r   rR   z4test_index_label_overlaps_location.<locals>.<lambda>  r<  r   c                 (    t          |           dk    S rn   r;  rP   s    r   rR   z4test_index_label_overlaps_location.<locals>.<lambda>  r<  r   )r   r4   r3   filterr2   r9   r:   rL  rx   r+   r   r  )r>   r   actualr   r=   s        r   "test_index_label_overlaps_locationrB    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 )	Nrc  r$   r        @r+  r  r  rj   )r7   r8   r   r3   rz   r9   r:   )nrQ   r>   r-  r?   r   gb2r   s           r   "test_transform_doesnt_clobber_intsrG    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)rK   rW   r   rW   r   rK   rK   rK   )r/  r  r/  r  r  r   r   r   )r   r]   r   r#   r$   rJ   rW   rW   )gffffff@g333333@g@g333333g@皙?rP  r#   )r/  rE  r  r   wordword24247)rM  rN  rI  rJ  rK  r  c                 Z    t          j        | |                                          d S )Nr  )r9   r:   r  )rQ   rH  s    r   	test_sortz.test_groupby_preserves_sort.<locals>.test_sort  s*    
a+!>!>?????r   r   rU   )r   r  r3   r9   rt   ru   ry   )rH  rL  r>   r   rV  r   s   `     r   test_groupby_preserves_sortrW    s#    
222EEE,,,===HHH	
 	

 
B 
;	'	'B


<  A@ @ @ @ @ DC		#M	=	=	=  		                 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 )Nre   MEr   )	eventDatethenamerZ  r   r   z	'badname'rU   badnamer  )r+   r   r  aggfunc)r   r   r   todaytolistr5   r"  r+   r   r   r{   r|   r  r  r1  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  rW   z
US/Easternr&   
2016-01-01rK   r   r   Int64r   Float64boolean)boolintr  r  rK  dt64dt64tzperiodrb  rc  rd  )idsmethod)r  rw   ry   )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          |	j        j	        d         t          j                  }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
|s|rމdk    r|rd}n|rd}n|rd 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                  }||                    |          }t7                    d#k    rd         |j        _        t+          j        ||           d S )$N)r[   r  rb  r   )r  r[   rE   r,   ABCr  rD   F)rT   r  observedc                  j    dk    r t                    di | S  t                    fi | S )Nr  rO   )r>  )kwargsr?   rk  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   rW   r  r  r  r   )r   rD   rs   r   r  r
   r   )levrQ  r   r   r{  r  r  s       r    get_categorical_invalid_expectedz<test_empty_groupby.<locals>.get_categorical_invalid_expected1  s    
 1#V\222t99>>)3*DAAACC $q'***C 	Be,,,GGGR<<<r   M)r  r  rl  r   )r  r  zCannot perform z with non-ordered Categoricalz
Can't get z/ of an empty group due to unobserved categoriesrU   Tr]  )r  r[   r  r[   z datetime64 type does not supportzPeriod type does not supportr  r  zcategory type does not supportr  |z!does not support reduction 'skew')r   rl  rW   )r}  r   re  r   r4   hasattrr   rD   rM  r2   r3   r-   PeriodDtypekindr   StringDtypeorderedr  r  r{   r|   r9   assert_equaljoinr"  r   r+   rs   ri   )r   r{  r  rk  r  using_array_managerr  r  override_dtyper>   rr  ru  is_peris_dt64is_catis_strr   r  r   r   r?   s    ````  `            @r   test_empty_groupbyr    s   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	q)2>::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 #	 #	6 #	bEkk  78 74 7FFFF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$   0GGG7JJJ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   rK   r   rW   r$   r   rW   FrS   r   rU   c                     | S rY   rO   rP   s    r   rR   z<test_empty_groupby_apply_nonunique_columns.<locals>.<lambda>  s     r   )r   r7   ro   rp   r   r   rE   r   r3   r9   rt   ru   ry   r   rM  )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		#M	=	=	= $ $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)rW   rW   rW   rW   )r$   r$   r$   r$   )r  r  r  r  z
('a', 'b')rU   r+  r  r  r   rW   r  r  )
r   r{   r|   r  r3   r[   r   r
   r9   rx   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 )	NrW   rK   r$   r   r;  z
^\(7, 8\)$rU   )r]   r   )	r   r5   r   r  r{   r|   r  r3   rj   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 )NrW   r   mycolsr  
2018-01-01r$   r   dti)r"   r   ri   r   )rW   rW   rW   rW   rW   ))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  r3   r	   rw   r9   r:   rA  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  rW   r$   r  rK   dater  )rK   r$         @r   r*   r  rD  r  )
r-   r1   r   r   r  r   r3   rj   r9   rx   )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 )Nrd   appler  r  z$Grouper and axis must be same lengthrU   )r  r5   r   r{   r|   r  r3   )r  r>   r   s      r   test_groupby_empty_list_raisesr    s    rE"II&&F	6GS>	2	2	2B
0C	z	-	-	-  


B4                 s   A??BBc                  V   ddgddgddgg} g d}t          j        | |          }t          ddg|	          }|                    d
dg                                          }dgdgg} d
dg}t          j        | |          }t          dg|          }t          j        ||           d S )NrQ   r  r  r   )r   r  thirdr  rW   r$   r6  r   r  rK   r*   )r   from_arraysr   r3   r[   r9   rx   )index_arrayindex_namesrir2  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  )rW   r$   rW   r$   r-  r`  r*   r  )r   r  r   r3   r	   rI  )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_namerQ   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^   rK   r   r   rW   r   )rd   re   rd   re   r;  r$  rQ   rU  rU   rW   r   )r   r  r   rb   rc   x1)	iterablesr      rc  )r   r7   r8   r  r+   ri   r   r9   rt   ru   r3   r[   r   r:   r   r  )r  r>   r.  r?   resultsr   r  r  s           r   test_groupby_axis_1r  
	  sF    

	"a##999>N>N>N
 
 
B BHMBJO<H		#M	B	B	B , ,ZZ
Z++, , , , , , , , , , , , , , , ffhhGt||J''++--/H'8,,, '&&7I		 9S$K	H	H	HB	29R==((A..iii	L	L	LB		#M	B	B	B , ,ZZ
Z++, , , , , , , , , , , , , , ,ffhhGt||J''++--/H'8,,,,,s$   2BBB0FFFzop, expectedshifttime2019-01-01 12:00:002019-01-01 12:30:00bfill2019-01-01 14:00:002019-01-01 14:30:00ffillc           	         | g dt          d          t          d          d d t          d          t          d          gd}t          |                              fd          }|                    d	          } t	          ||                      }t          |                              fd
          }t          j        ||           d S )N)r   r   r   r   r   r   r  r  r  r  )r  r  c                 B    | j         j                                      S rY   r  r  tz_localizerQ   r'   s    r   rR   z+test_shift_bfill_ffill_tz.<locals>.<lambda>`	  s    qvy/D/DR/H/H r   )r  r  c                 B    | j         j                                      S rY   r  r  s    r   rR   z+test_shift_bfill_ffill_tz.<locals>.<lambda>d	  s    9N9Nr9R9R r   )r   r   assignr3   r>  r9   r:   )tz_naive_fixturer  r   r~   r>   r   r   r'   s          @r   test_shift_bfill_ffill_tzr  &	  s    \ 
B,,,+,,+,,+,,+,,

 
D 
4		%H%H%H%H		I	IBjjG!WWb!!##F""))/R/R/R/R)SSH&(+++++r   c                      t          d gdd          } |                     d          d                             d          }t          t          j        gd          }t          j        ||           d S )NrW   )r   rQ   r   rQ   r[   r  )r   r3   rz   r   r7   r   r9   rx   )r>   rA  r   s      r   test_groupby_only_none_groupr  h	  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#   rc  r   )r  r  r  rD  r*   r   r  )r$   g      @r   )r  r  rD  )r   r3   rj   r9   rx   )r=   r?   r   r   s       r   test_groupby_duplicate_indexr  r	  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 )NrW   r^  rK   r   )col_1col_2col_3col_4r~   r   r  r  r  r  fillna)r  rO   %DataFrameGroupBy.fillna is deprecatedrU   r   )diffr  z"SeriesGroupBy.fillna is deprecated)r   r   r   rf  r"  ru   r9   rt   r2   r3   rz   r}  )transformation_funcrequestr>   argsr   warn_msgr   r   s           r   test_group_on_empty_multiindexr  |	  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 )Nra  r$   r   )r"   ri   rW   rK   r   )rg  )r   r(   )r   r   )r   r  rW  rU  rU   )r   r   )r   r   r*   r   )r   r   r   r   r+   _get_axis_numberr   r9   rt   ru   r3   nuniqueri   r:   r   r   r7   rG   )r   r  r>   axis_numberr   r?   r   r   rF  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   rJ   rK   r   r  )	r   r7   r8   r  r  r3   rj   r9   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], ...})rW   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#   rW   r  zdisplay.max_seq_items)r   r7   ro   rp   r   r+   r-   option_contextr3   rI  __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 )NrW   r$   c   r+  X   r  r  r   r   r   )	r   r"  r3   rJ  r7   r   rE   rs   rM  )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@  rT   ro  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 )	NrW   r$   rK   r+  r   r  r  )r  )r   r"  r3   r>  )r  r  r   r>   r   r   s         r   #test_subsetting_columns_keeps_attrsr  	  s    & 
!A3aS11	2	2Bv~~\\#rz//$//H % 2 2Xse__F64  GHd$;$;;;;;;;r   c                  r   t          dgdgdgd          } d}t          j        t          |          5  |                     g dd          }d d d            n# 1 swxY w Y   d	}t          j        t          |          5  |d
dg                                          d d d            d S # 1 swxY w Y   d S )NrW   r$   rK   r,   rU  rU   r  r   z'Cannot subset columns when using axis=1r   r   )	r   r9   rt   ru   r3   r{   r|   r  r[   )r>   r   r   rV   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  rQ  r  rW   r  )r
   r   r3   r>  r   r9   r  )r  r   r>   r   r   s        r   #test_groupby_column_index_name_lostr  #
  sr     cU'''H	QC5(	+	+	+BQCJ&WZ&&((0F&(+++++r   infer_stringpyarrow)marksc                    | 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   rF  r  r-  r,   )r   r   r   zfuture.infer_string)r   r   r   r   )r   r  rW   r   )r+   r   rD   )r{   importorskipr   r   r   r   r-   r  r3   r  r7   r   r9   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+   ri   )r  r  r   r  r$   r   rW   )r   r+   ri   r3   lastr9   rx   )r=   r   r   s      r   #test_groupby_series_with_tuple_namer  D
  s    
\\\

C
C
CCCIN[[q[!!&&((Fq!fQF<<<H$HN68,,,,,r   zfunc, valuesr[        @X@     X@rj   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  rW   r$   r   r   r  r  r   r  r  r*   )r   r>  r3   r
   r9   r:   )r  r  r~   r>   r   r   s         r   )test_groupby_numerical_stability_sum_meanr  N
  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  rW   r$   r   r  r   r  g07yACg17yACga7y1Cgb7y1Cr  r  r  T)check_exact)r   r3   r  r9   r:   )r~   r>   r   exp_datar   s        r   'test_groupby_numerical_stability_cumsumr  Z
  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#   rW   r   FskipnarW  )r7   ro   rp   r   r   r5   r   r2   r3   r  r9   r:   )r  r>   ir?   r   r   s         r    test_groupby_cumsum_skipna_falser  f
  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 )Nra  r#   r!   r   r$   rW   rg  r   FT)r^  r  r   r   )	r   r   r-   r1   r   r3   r  r9   r:   )r  r=   r>   r?   r   r  s         r   test_groupby_cumsum_timedelta64r  v
  s   
\1
-
-
-C
++A
CVCF	%%	&	&B	CB
))t)
4
4C
S3q63q6263q63q6A:FG
H
HC#s###
))u)
5
5C
S3q63q6262626BC
D
DC#s#####r   c                     | }|                     d                                          }|                     |j                                                  }t          j        ||           d S )Nr   r  )r3   rj   r+   r9   rx   )(rand_series_with_duplicate_datetimeindexdupsr   r   s       r   !test_groupby_mean_duplicate_indexr  
  s^    3D\\\""''))F||DJ'',,..H68,,,,,r   c                  X   t          g dt          j        t          j        t          j        g          } |                     | j                                                  }t          g t          g t          j                  t          j                  }t          j
        ||           d S )Nr  r   rL   )r   r7   r   r3   r+   r[   r
   rG   rE   r9   rx   r2  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                 l   t          g g d          }|                    ddg|           }|                    |          }| r/t          g g gg g gddg          }|sdgnt	          g d	
          }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   r   )r   r3   r[   r   r
   r   r9   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@@@+G3%%r1G1G1G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g          }|                                }t	          j        ||           d S )Nrv  rW   Wrd   re   MWr   r  r  r*   r  )r   r
   r3   r[   r9   r:   r>   r   r?   r   s       r   *test_groupby_aggregation_non_numeric_dtyper  
  s    	
scA3Z#tsRDk:T3K
 
 
B 1a&2r(#	
 S#JT***	  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rW   r   rW   rW   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   rW   rc  c                 4    g | ]}t          |d z  d          S rd   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]   rJ   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   rE   rQ   rD   ri   r*   r  )r   r5   r
   r3   r[   r9   r:   r  s       r   0test_groupby_aggregation_multi_non_numeric_dtyper&  
  s    	 <<a<<<AAU1a[[AAA	
 	

 
B <<a<<<AAU1a[[AAA	
 	
 QF'444  H 
u		BVVXXF&(+++++r   c            
         t          g dd t          dd          D             t          t          dd                    d          } t          t          dd          t          dd          gddgd	t	          d
dgdd                    }|                     dg          }|                                }t          j        ||           d S )Nr  c                 .    g | ]}t          |d           S r  r  r  s     r   r  zKtest_groupby_aggregation_numeric_with_non_numeric_dtype.<locals>.<listcomp>
  r  r   rW   rc  r.  r]   r  r   r$  r   rE   rQ   r%  r*   r  )	r   r5   r4   r   r
   r3   r[   r9   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   r3   r6   r
   r9   r:   )dictsr>   	df_filterdfgbr   r   s         r   test_groupby_filtered_df_stdr2  
  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   rW   r   rW   )
categoriesr+  r  r  Fro  z2018-01-01 00:00:00z2018-02-01 00:00:00r  z2018-03-01 00:00:00r$   )r   r   r4   r   r   
from_codesr3   rJ  r   r7   r   r  s      r   2test_datetime_categorical_multikey_groupby_indicesr9  
  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#   BobrW   r$   rK   r   ri   r  z@^[a-zA-Z._]*\(\) got an unexpected keyword argument 'min_period'rU   )window
min_period)r7   r   r   r   r   r{   r|   r  r3   rollingr[   )name_lval_ltest_dfresult_error_msgs       r   #test_rolling_wrong_param_min_periodrD    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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)ThomasrF  Thomas John)i  i    )sadhappyrJ  r   )NameCreditMoodr[   )rM  rL  rK  rJ  rI  i	  rH  rF  rG  )rM  rL  rK  )r   r   moder3   rw   r"  r9   r:   )any_string_dtyper>   aggregate_detailsr   expected_results        r   .test_by_column_values_with_same_starting_valuerR    s    	777'''444<LMMM	
 	

 
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)NrW   r   rW   )r$   rK   r$   rK   rW   r  r  r  r*   r   r  r$   )r  r$   )r  rK   )r   r   r  r3   r[   r  r9   rx   )r  r=   r   r   s       r   #test_groupby_none_in_first_mi_levelrT  2  s    ??LLL
)C
*0S#JGGG
H
H
HC[[1v[&&**,,F	
A
&(';C:NNN H 68,,,,,r   c                 8   t          g dg dg dd          }| rt          j        gnd g}|                    |          }|                                }t          ddgdd	gd
t          ddg|d                             }t          j        ||           d S )Nr,  )rW   rW   r$   rK   )r   r#   rc  r]   )Nr  r  r  r$   r#   rJ      r#  rW   r   r  r*   )r   r7   r   r3   r[   r
   r9   r:   )r  r>   r  r?   r   r   s         r   test_groupby_none_column_namerW  =  s    	,,,\\\MM	N	NB'	3"&dVB	r		BVVXXF1vQG44E1a&rRSu<U<U<UVVVH&(+++++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 )NrW   r$   r#   r+  rQ   r$  r*   r  c                     g | ]\  }}|S rO   rO   r   r   rR  s      r   r  z5test_single_element_list_grouping.<locals>.<listcomp>L  s    (((fc1c(((r   rW   )r$   )r   r7   r   r3   )rX  r>   r   r   r   s        r   !test_single_element_list_groupingr]  G  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  )rW   r$   rK   r$   )str_colnum_colr_  stringr+  )r:  r  rD  Fr   )r   r   r3   rj   r9   r:   )r>   r   r   r   s       r   test_groupby_string_dtyperb  R  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)rc  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 )NrW   r$   rK   r   r#   rc  r+  rQ   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.rU   c                     g | ]\  }}|S rO   rO   r[  s      r   r  zKtest_single_element_listlike_level_grouping_deprecation.<locals>.<listcomp>u  s    777a777r   r  )r   r"  r9   rt   ru   r3   )	level_argr%  r>   r.  s       r   7test_single_element_listlike_level_grouping_deprecationrg  f  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33ffrW   r  r  r  r   r  r*   )r  rh  Tr  )r   r>  r3   r
   r  r9   r:   )r  r  r>   r   r   s        r   #test_groupby_avoid_casting_to_floatrj  x  s     C	#''	(	(B+WRZZ__d++--3F#s5!3+?+?+?@@@H$$$''T'22&(+++++r   z	func, val)r[   rK   )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 )	NrW   r$   r  r   r  r  r  rL   )r   r-   NAr>  r3   r
   r9   r:   )any_numeric_ea_dtyper  r  r>   r   r   s         r   test_groupby_sum_support_maskrn    s     
!Q//7K	L	L	LB+WRZZ__d++--F	seQCc)=>>>"  H
 &(+++++r   z
val, dtype)o   rf  )   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 )NrW   r  8r   r  r  r$   r  64rL   )r   r3   r[   r
   r9   r:   r  r  )r  rD   r>   r   r   s        r   test_groupby_overflowru    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)TrK   c                    t          ddt          j        dgd|           }|                    d                              |          }t          ddt          j        |gi|           }t          j        ||           d S )NrW   r$   r  r   r  r  r  )r   r-   rl  r3   r  r9   r:   )rm  r  r  r>   r   r   s         r   test_groupby_cumsum_maskrw    s     
!RUA//7K	L	L	LBZZ__##6#22F	q"%o"  H &(+++++r   zval_in, index, val_out)r  r  rD  r  rD  )r   r   r   r  blah)rD  r  rD  rD  )r  r  rD  r  rD  g      @)r   r   r   r  rx  rx  )rD  r  g      &@rD  c                    t          | dt          |d                    }|                    d                                          }t          |dt          g dd                    }t	          j        ||           |                                                    d                                          }|                                }t	          j        ||           d S )Nr  rx  r  )r~   ri   r+   )r   r  rx  r   )r   r
   r3   r[   r9   rx   r/   r:   )val_inr+   val_outseriesr   r   s         r   (test_groupby_index_name_in_index_contentr}    s    " heE6O6O6OPPPF^^F##''))F111???  H
 68,,,__&&v..2244F  ""H&(+++++r   rE  )rW   rd       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 )NrW   T)r,  re  re  r,  r  r*   )r   eqr3   r[   r
   r9   r:   )rE  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)rG  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#   rg  r  r   r   )rE  )r   r  r   r  r+  r  r*   )
r   r7   r   r5   r>  r3   r"  r   r9   r:   )rk  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 )Nra  r  r   r   rd   z+Period type does not support sum operationsrU   z.Period type does not support cumsum operationsz,Period type does not support prod operationsz/Period type does not support cumprod operationsir   )r-   period_ranger4   r5   	to_seriesr3   r{   r|   r  r[   r  r  rh  r  r
   rf  r+   r9   rx   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   rW   r$   rK   r  rW   )r   r$   rK   r   )r   r   r3   _obj_with_exclusionsrL  r9   r:   )r>   r?   r   r   s       r   *test_obj_with_exclusions_duplicate_columnsr    so    	LLL>	"	"BBJ	BqE		B$Fwwyyyqw))H&(+++++r   c                    ddddddg}t          |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   r  F)r   r@  Tr]  r  z(could not convert string to float: 'bar'rU   )	r   r   r3   r6   r9   r:   r{   r|   r  )r^  dicts_non_numericr>   r1  r   expected_dfs         r   'test_groupby_numeric_only_std_no_resultr    s,     %511U3K3KL	$F	3	3	3B::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   B;;B?B?z7ignore:invalid value encountered in cast:RuntimeWarningc                     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  )rQ   wrQ   r   rW   r#   r   r  Fr7  rj   gDlٿr  r  )closedr  r  r  T)r|  r+  r  r  r  )r   r-   qcutr7   linspacer3   rw   r   r   r   r  r   r   r   r9   rx   )r>   qqr   categorical_index_level_1index_level_2r  r   s          r   /test_grouping_with_categorical_interval_columnsr  0  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                 h   t          d| | | t          j        gi          }t          | t                    r|                    t                    }|                    d           }|                    d          }t          | | | d gdg|d         j	                  }t          j        ||           d S )Nr   c                     | S rY   rO   rP   s    r   rR   z;test_groupby_sum_on_nan_should_return_nan.<locals>.<lambda>`  s     r   rW   )	min_count)r   rD   )r   r7   r   r}  r  r   r   r3   r[   rD   r9   r:   )r  r>   r1  r   r  s        r   )test_groupby_sum_on_nan_should_return_nanr  Z  s     
C'7GRV<=	>	>B'3 YYv::kk""DXXX""F	'7D)C53  K &+.....r   )r  corrcummaxcumminrh  r9  rankr   r  r  rM  r  rl  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   rs   r+   r3   r>  r9   r:   )r>   rk  rngr   g_expr   r  s          r   #test_groupby_selection_with_methodsr  i  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  rU   r   z%DataFrameGroupBy.dtypes is deprecatedc                 *    |                                  S rY   rZ   rP   s    r   rR   z6test_groupby_selection_other_methods.<locals>.<lambda>  s    AEEGG r   c                 *    |                                  S rY   rZ   rP   s    r   rR   z6test_groupby_selection_other_methods.<locals>.<lambda>  s    AEEGG r   r   c                 (    t          |           dk    S rN   r;  rP   s    r   rR   z6test_groupby_selection_other_methods.<locals>.<lambda>  s    3q66Q; r   c                 (    t          |           dk    S rN   r;  rP   s    r   rR   z6test_groupby_selection_other_methods.<locals>.<lambda>  s    A! r   )r   rs   r   ri   r+   r3   r9   rt   ru   r:   r  r   ry   resamplerj   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  rD  )quantquant2time2z2016-08-31 22:08:00rV  1min)r"   r   unit)rW   rW   r   r   r   r   r   r   r   r   r   r   rW   )r  r  r  r  )r   r   )
r   as_unitr   r   r3   r	   r  r  r9   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-01rK   r!   janr  r$   rW   r  )r   r   r3   r  r+   ri   r9   rx   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  rW   Nr  r\  )r   r   rW   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 tuplerU   rK   r   rW   r  rO   )r   r
   r3   r9   rt   r  r   r}  )
r  kwargr   ri   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 )NrW   r  r  r  F)r  ro  r   )	r   r   r7   r   r3   r  r   r9   rx   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   rK   r$   rK   )r   rW   rc  r]   )rK   r   r$   rd   )rW   rV  rc  r  )r#   rc  i)rp  rq  col3col4col5
deprecatedrU   rW   )rW   r$   rK   r$   rW   )r   r  )rp  r  )r   r9   rt   ru   r3   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  rW   r$   rK   r   r  r*   r   r  )rW   r$   rK   r   r$   rK   Fr  )r   r7   r   r3   r  r9   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 )NrW   r$   rK   r   r#   )r   r   r   F)r  r   r  )r}  decimalInvalidOperationr  r   r   r3   r  result_indexr
   r9   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  numpyr7   r{   pandas.errorsr   r   pandas.util._test_decoratorsutil_test_decoratorstdpandasr-   r   r   r	   r
   r   r   r   r   r   r   r   r   pandas._testing_testingr9   pandas.core.arraysr   pandas.core.commoncorecommonr  markfilterwarnings
pytestmarkr   rC   parametrizer   r   r   r   r   r   r  r  r  r  r1  r?  rS  r[  ra  rr  rt  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r   r.  r3  r7  r<  rB  rI  rS  rU  re  ri  rm  ro  rx  r{  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r$  r6  rB  rG  rW  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)  r2  r9  rD  rR  rT  rW  r]  rb  rg  rj  rn  ru  rl  rw  r}  r  r  r  r  r  r  r  r  r  r  r  ru   r  r  r  r  r  rO   r   r   <module>r     s                				             * ) ) ) ) ) ) ) )                                      + + + + + +                  [''(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+ + +-+ -+ -+`6 6 6r  1 13E3EFGG- - HG-@- - - 0 0 0* * *@+ @+ @+F, , ,D. . .2& & &, , ,., , ,	D 	D 	D6 6 60	+ 	+ 	+< < <8 
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8# # #$/ / /@ @ @*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 {& {&  =<;  65 21F{&|	+ 	+ 	+- - -&" " ", , ,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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" UVV&- &- WV&-R QH--/ / .-/    ,$ $- ,$   43 3 38- - - u66	ua'	udD!	1#q-(	1#tT"
 
& &
 
 76& - - -, , ,.? ? ? u66, , 76, , ,r   