a
    Pfަ                    @   s  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  mZ d dlmZ d dlZd dlmZmZmZmZmZmZmZmZmZmZmZmZ d dlmZ  d dl!m"Z" d dl#m$  m%Z& ej'(dZ)d	d
 Z*dd Z+ej',dg ddd Z-dd Z.dd Z/dd Z0dd Z1ej',dddgdd Z2dd Z3d d! Z4d"d# Z5ej',dg d$d%d& Z6d'd( Z7d)d* Z8d+d, Z9d-d. Z:d/d0 Z;d1d2 Z<d3d4 Z=d5d6 Z>d7d8 Z?ej',d9d:d; d<d; gd=d> Z@d?d@ ZAdAdB ZBdCdD ZCdEdF ZDdGdH ZEdIdJ ZFdKdL ZGdMdN ZHdOdP ZIdQdR ZJdSdT ZKdUdV ZLdWdX ZMej',dYdZd[gd\d] ZNej',dYg d^ej',d_ddgd`da ZOdbdc ZPddde ZQdfdg ZRdhdi ZSdjdk ZTdldm ZUdndo ZVdpdq ZWdrds ZXdtdu ZYdvdw ZZdxdy Z[dzd{ Z\d|d} Z]d~d Z^dd Z_dd Z`dd Zadd Zbdd Zcdd Zddd Zedd Zfdd Zgdd Zhdd Zidd Zjdd Zkdd Zldd Zmdd Zndd Zodd Zpdd Zqdd Zrdd Zsdd Ztdd Zudd Zvej',ddddggdd Zwdd Zxdd Zydd Zzdd Z{dd Z|dd Z}dd Z~ddĄ Zej',ddddddgddggej',dddddggdd̈́ Zddτ Zej',dddggej',ddgddggej'j,ddgd gdgdged ged ged dddd؍ejdddd܍ejd gddލejd gddލejdgddލgg ddej',dg dej',d9g ddd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zej',dddggdd Zej',dddddeded ddgifddeded ededededgifddeded eded ededgifgdd Zdd Zd	d
 Zdd Zdd Zdd Zej',dg ddd Zdd Zej',deddfeddfeddfeddfeddfeddfeddfeddfeddfeddfeddfeddfgdd Zdd  Zej',d!g d"d#d$ Zej',d%dejded&d'gd(d) Zd*d+ Zej',d,d-d.d/gfd0d1d2gfgd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Zd=d> Zej',d_ddgd?d@ ZdAdB ZdCdD ZdEdF ZdGdH ZdIdJ ZdKdL Zej',deejdMed&d'gdNdO ZdPdQ ZdRdS Zej',dTdddggdUdV ZdWdX Zej',dYd gdfdZd gdfd[gd\d] Zej',d!g d^d_d` Zej',dadbdcgddde Zej',dfdgdhgdidj Zej',dkdldejfgdmdn Zej',dog dpg dqg drfg dsg dtg dufgdvdw Zej',dxg dydzd{ Zej'(d|ej',dg d}d~d Zdd Zdd Zej',d_ddgdd Zdd Zej',dddgdd Zej',dg ddd Zdd Zdd Zdd Zej',dddgej',ddddgdefddgddfddd gdefdd gddfgdd ZÐdd ZĐdd ZŐdd Zej',dddgdd ZdS (      )datetimeN)Decimal)PerformanceWarningSpecificationError)is_string_dtype)Categorical	DataFrameGrouperIndexInterval
MultiIndex
RangeIndexSeries	Timedelta	Timestamp
date_rangeto_datetime)BooleanArrayz)ignore:Mean of empty slice:RuntimeWarningc                  C   s$   t td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expected r   Z/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pandas/tests/groupby/test_groupby.py	test_repr'   s    r   c           
      C   s   t jddd}t|}|d d d  d9  < |d }|td |d< |tdd	d
 |d< t j|jd< |t	t
dd }| }td}td}t|d ||||gtdd}t|||d}	t||	 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&   )pdZtimedelta_ranger   to_framecopyr   NaTilocgroupbylistrangestdr   nparanger   tmassert_frame_equal)
Zwarn_copy_on_writeZtdiserdfgbr   Ztd1Ztd4Zexp_serr   r   r   r   test_groupby_std_datetimelike.   s     r;   dtype)int64int32float64float32c                    s<  t tdd td| d}td}tjd| ||}|jdd dd}|D ]\}}t|dksZJ qZd	}t	j
t|d
 |tj}W d    n1 s0    Y  |d dksJ d	}t	j
t|d
 |tj}W d    n1 s0    Y  t	|| t	||  | }	d}t	j
t|d
 |tj}W d    n1 sZ0    Y  t	|	| |dd }|dd }
|
d dksJ t	|
| ||}d	}t	j
t|d
 |tj}	W d    n1 s0    Y  t	j|	|dd d}t	j
t|d
" |tjtjg}W d    n1 s@0    Y  d}tjt|d
$ |tjtjd W d    n1 s0    Y  dddd d}t	j
t|d
" | fdd}W d    n1 s0    Y  |d dksJ d}tjt|d
 |dd  W d    n1 s.0    Y  d S )N	      r)   r<   r"   c                 S   s   | d S NrB   r   xr   r   r   <lambda>Q       z)test_basic_aggregations.<locals>.<lambda>F
group_keyszusing SeriesGroupBy.meanmatch   zusing SeriesGroupBy.sumc                 S   s   | |    S NsumrE   r   r   r   rG   f   rH   c                 S   s   | |    S rN   rO   rE   r   r   r   rG   g   rH         Zcheck_index_typezusing SeriesGroupBy.[mean|std]nested renamer is not supported)onetwo
         r   rM   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                    s    | j  |   S rN   )namemeanrE   Zgroup_constantsr   r   rG      rH      zMust produce aggregated valuec                 S   s   | d S Nr"   r   rE   r   r   r   rG      rH   )r   r4   r5   randomdefault_rngshufflereindexr0   lenr6   assert_produces_warningFutureWarning	aggregater\   aggassert_series_equalrP   apply	transformr3   pytestraisesr   	Exception)r<   datar)   groupedkvmsgaggedr   r   transformedZvalue_groupedr   r]   r   test_basic_aggregationsI   sZ    

**,
,242rv   c                 C   sj   | j jd }| |}| }| |d }|j jtjksDJ |j jtjksVJ t	j
||dd d S )Nr   OFrS   )r)   codesr0   rP   astyper<   r4   int8r=   r6   r7   ) multiindex_dataframe_random_datar   rp   r   r   r   r   r   test_groupby_nonobject_dtype   s    
r|   c                  C   s   t g dg dtjddtjtjddddd} tt| | d< d	d
 }d}tj	t
|d  | d|}W d    n1 s0    Y  |j}| j}t|| d S )Nfoobarr~   r   r~   r   r~   r~   )rU   rU   rV   threerV   rV   rU   r   r"      r@   r<   r   r   r&   Dvaluec                 S   s   | j | d   S )Nr   )locidxmaxgroupr   r   r   	max_value   s    z5test_groupby_nonobject_dtype_mixed.<locals>.max_value7DataFrameGroupBy.apply operated on the grouping columnsrK   r   )r   r4   r`   ra   standard_normalarrayr2   rd   r6   re   DeprecationWarningr0   rj   dtypesri   )r9   r   rs   Zappliedr   r   r   r   r   "test_groupby_nonobject_dtype_mixed   s    .r   c            
      C   s~  t g dttdddtdddd} dd	 }| d
 dg }d}tjt	|d& | d

|dg }W d    n1 s0    Y  t|| dd }d}tjt	|d& | d

|dg }W d    n1 s0    Y  | }tj|jd< t|| dd }d}tjt	|d& | d

|dg }W d    n1 sR0    Y  | }tj|jd< t|| dd }d}tjt	|d& | d

|dg }W d    n1 s0    Y  | d
 dg }tj|jd< t|| dd }	d}tjt	|d  | d

|	}W d    n1 s<0    Y  | d
 d  }tj|jd< d |_t|| d S )N)Tigerr   r   Lambr   Ponyr   rQ   r=   r   Z20130101r   r*   c                 S   s
   | j d S Nr   )r/   grpr   r   r   f_0   s    z*test_inconsistent_return_type.<locals>.f_0r   r   r   rK   c                 S   s   | j dkrd S | jd S )Nr   r   r[   r/   r   r   r   r   f_1   s    
z*test_inconsistent_return_type.<locals>.f_1r   c                 S   s   | j dkrd S | jd S Nr   r   r   r   r   r   r   f_2   s    
z*test_inconsistent_return_type.<locals>.f_2r   c                 S   s   | j dkrd S | jd S r   r   r   r   r   r   f_3   s    
z*test_inconsistent_return_type.<locals>.f_3r&   c                 S   s   | j dkrd S | jd jd S )Nr   r   r&   )r[   r/   r   r   r   r   r   f_4   s    
z*test_inconsistent_return_type.<locals>.f_4)r   r   r4   r5   r   r0   firstr6   re   r   rj   r7   r-   nanr   r+   r.   r[   ri   )
r9   r   r   rs   r   r   er   r   r   r   r   r   test_inconsistent_return_type   sR    
44660r   c              	   C   s  ddd}dd }|  dd }|jtjddd}|jtjddd}|jtjddd}|d	}||}	t|| t|| t||	 |j|dd
}|j|dd
}|j|dd
}t|| t|| t||	 dD ]}
|j dd |
d}|
rd nt	}d}tj
||d" |jtjddd}W d    n1 sB0    Y  tj
||d |tjd	}W d    n1 s0    Y  tj
||d |d	}W d    n1 s0    Y  tj||dd t|| |tjdd	g}tj
||d |dd	g}W d    n1 s&0    Y  tj||dd tj
||d |j|dd
}W d    n1 st0    Y  tj
||d  |jtjd	d
}W d    n1 s0    Y  t|| tj||dd qd S )Nr   c                 S   s   t j| ||dS )Naxisr4   
percentile)rF   qr   r   r   r   f   s    z test_pass_args_kwargs.<locals>.fc                 S   s   t j| dddS )NP   r   r   r   rE   r   r   r   rG      rH   z'test_pass_args_kwargs.<locals>.<lambda>c                 S   s   | j S rN   monthrE   r   r   r   rG      rH   r   r   皙?r   )TFc                 S   s   | j S rN   r   rE   r   r   r   rG     rH   as_index*A grouping .* was excluded from the resultrK   FZcheck_namesg?)Nr   )r0   rh   r4   r   rj   rk   quantiler6   ri   rf   re   r   r7   )tstsframer   gZ
ts_groupedZ
agg_resultZapply_resultZtrans_resultZagg_expectedZtrans_expectedr   
df_groupedwarnrs   r   Zexpected_seqr   r   r   test_pass_args_kwargs   sN    



2.*..0r   r   TFc                 C   s   g d| _ | jdd |d}|r$d nt}d}tj||d" |jtjddd	}W d    n1 sb0    Y  | | jj	d
k 
d| | jj	dk 
dd}t|j}|sttd|_t|| d S )N)r   r   r   r&   c                 S   s   | j S rN   r   rE   r   r   r   rG   .  rH   z9test_pass_args_kwargs_duplicate_columns.<locals>.<lambda>r   r   rK   r   r   r   rM   r   r"   rM   r"   )columnsr0   rf   r6   re   rh   r4   r   r)   r   r   r   Tr
   r2   r7   )r   r   r:   r   rs   resZex_datar   r   r   r   'test_pass_args_kwargs_duplicate_columns*  s    
0
r   c                  C   s   t tjddttdtdtddddd	} | 	d
d dd dd g}t
|t
| ksbJ | 	dd dd g}t
dd | jD }t
||ksJ d S )Nr"   rW      ABCDr   
2000-01-01rW   r   r    freqr   r)   c                 S   s   | j S rN   yearrE   r   r   r   rG   G  rH   ztest_len.<locals>.<lambda>c                 S   s   | j S rN   r   rE   r   r   r   rG   G  rH   c                 S   s   | j S rN   dayrE   r   r   r   rG   G  rH   c                 S   s   | j S rN   r   rE   r   r   r   rG   J  rH   c                 S   s   | j S rN   r   rE   r   r   r   rG   J  rH   c                 S   s   h | ]}|j |jfqS r   )r   r   .0rF   r   r   r   	<setcomp>K  rH   ztest_len.<locals>.<setcomp>)r   r4   r`   ra   r   r
   r1   objectr   r0   rd   r)   )r9   rp   r   r   r   r   test_lenA  s    r   c                  C   sd   t tjgd g dd} t| ddks0J t| ddksFJ t| ddgdks`J d S )NrB   rM   r"   rB   abr   r   r   )r   r4   r   rd   r0   r9   r   r   r   test_len_nan_groupO  s    r   c                  C   sT   t dd ttddd D } tjddd }t |}| |}|  d S )Nc                 S   s   g | ]}d | qS )      ?r   r   r   r   r   
<listcomp>Y  rH   z)test_basic_regression.<locals>.<listcomp>rM   rW   r"   iL  g      $@)r   r1   r2   r4   r`   ra   r0   r\   )r   ro   	groupingsrp   r   r   r   test_basic_regressionW  s
     
r   )r?   r@   r=   r>   Zint16rz   c                 C   s   t td}ttd|| d}ttjdddtjtjddtjdg
|d}||}|t}tddgddgd}t	j
||dd	 d
d }||}tddgddgd}t	
|| d S )NrW   r   r~   r   r(   r   r"   FZcheck_dtypec                 S   s   t t| S rN   )floatrd   rE   r   r   r   r   w  s    ztest_with_na_groups.<locals>.f      @       @)r
   r4   r5   r   onesr   r0   rh   rd   r6   ri   )r<   r)   valueslabelsrp   rt   r   r   r   r   r   test_with_na_groupsb  s    


r   c            	   	   C   s  dd } d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|d  |d| }W d    n1 s0    Y  tjt|d  |d| }W d    n1 s0    Y  t|| d}tj	t
|d  |d| W d    n1 s0    Y  tj	t
|d  |d| W d    n1 s^0    Y  tj	t
|d  |d| W d    n1 s0    Y  tj	t
|dP tjt|d  |d| W d    n1 s0    Y  W d    n1 s0    Y  d S )Nc                 S   sb   | | j d dk d }|jrLtg gd g gd ddgd}tdg|d}|S |ddg}|S d S )Nr"   rM   r   cZlevelsrx   namesr   r   )r   emptyr   r   	set_indexrF   y
multiindexr   r   r   r   f1  s    z,test_indices_concatenation_order.<locals>.f1c                 S   s8   | | j d dk d }|jr"t S |ddg}|S d S )Nr"   rM   r   r   )r   r   r   r   )rF   r   r   r   r   f2  s
    z,test_indices_concatenation_order.<locals>.f2c                 S   sV   | | j d dk d }|jrNtg gd g gd ddgd}tddg|d}|S |S d S )	Nr"   rM   r~   r   r   r   r   r   )r   r   r   r   r   r   r   r   f3  s    z,test_indices_concatenation_order.<locals>.f3)rM   r"   r"   r"   r   r!   rA   r   r   r   )rB   r"   r"   r"   zDThe behavior of array concatenation with empty entries is deprecatedr   rK   r   z@Cannot concat indices that do not have the same number of levels)r   r2   r6   re   r   r0   rj   r7   rl   rm   AssertionErrorrf   )	r   r   r   r9   df2depr_msgrs   result1result2r   r   r    test_indices_concatenation_order  s,    
..000r   c                 C   s   |  dd }| }|dd }t|| | }dd |D }t|j}t|| |j	}|dd }t|| d}t
jt|d t|d	 W d    n1 s0    Y  d S )
Nc                 S   s   |   S rN   weekdayrE   r   r   r   rG     rH   z#test_attr_wrapper.<locals>.<lambda>c                 S   s   t j| ddS )NrM   )Zddof)r4   r3   rE   r   r   r   rG     rH   c                 S   s   i | ]\}}||  qS r   )describe)r   r[   gpr   r   r   
<dictcomp>  rH   z%test_attr_wrapper.<locals>.<dictcomp>c                 S   s   | j S rN   r   rE   r   r   r   rG     rH   z-'SeriesGroupBy' object has no attribute 'foo'rK   r~   )r0   r3   rh   r6   ri   r   r   r   r7   r<   rl   rm   AttributeErrorgetattr)r   rp   r   r   rs   r   r   r   test_attr_wrapper  s    
r   c                 C   sn  |  dd }|d}t|dks(J t|jdks:J |  }dd |jD |d< | dd}tj||d	d
 | d dd }|	dd }t|dksJ t|jdksJ |	dd }|D ]2\}}|
 }|jD ]}	tj||	|d	d
 qq|D ]"\}
}|jd  |
ksJ q|j}|j}| D ],\}}| j|| }||k s<J q<d S )Nc                 S   s   |   S rN   r   rE   r   r   r   rG     rH   z$test_frame_groupby.<locals>.<lambda>r\   r!   r   c                 S   s   g | ]}|  qS r   r   r   r   r   r   r     rH   z&test_frame_groupby.<locals>.<listcomp>r   Fr   rY   c                 S   s   |   S rN   r   rE   r   r   r   rG     rH   c                 S   s   | |    S rN   r\   rE   r   r   r   rG     rH   c                 S   s   |   S rN   r   rE   r   r   r   rG     rH   r   )r0   rg   rd   r   r-   r)   r6   r7   headrk   r\   ri   Zxsr   groupsindicesitemstakeall)r   rp   
aggregatedZtscopyZstraggedru   r[   r   r\   idxr   r   r   rq   rr   Z	samethingr   r   r   test_frame_groupby  s0    

r  c           	      C   s  ddddd}d}t jt|d | j|dd}W d    n1 sD0    Y  |d}t|t| kslJ t|jdks~J d	d
 }d}t jt|d  | jj|dd}W d    n1 s0    Y  t |	|j|	| |D ]\}}t|jdksJ qd S )Nr   rM   r   +DataFrame.groupby with axis=1 is deprecatedrK   r   r\   r"   c                 S   s   | |    S rN   r   rE   r   r   r   rG   	  rH   z,test_frame_groupby_columns.<locals>.<lambda>5The 'axis' keyword in DataFrame.groupby is deprecated)
r6   re   rf   r0   rg   rd   r   r   r7   rk   )	r   mappingrs   rp   r   tfZgroupedTrq   rr   r   r   r   test_frame_groupby_columns  s    ,
.r  c                 C   s6  |  d}|jdd}|jjdks&J | j dddjdd}|jjdksLJ |ddg d}|jjdksnJ |dd	d
}|jjdksJ |d  }|jjdksJ |d d}|jjdksJ |d dd	g}|jjdksJ d}tjt|d$ |d dd	d W d    n1 s(0    Y  d S )Nr   Tnumeric_onlyFr   r&   r   r\   r3   r&   r   rT   rK   r~   r   )r0   r\   r)   r[   rh   rl   rm   r   )r9   rp   r   rs   r   r   r   test_frame_set_name_single  s$    
r  c                 C   s   | d }| d }|  |j|jg}|jdd}|  ddg }tj|jd d ddgf |jd d ddgf dd ttj	d	
d
tj	d	
d
tg dtg ddg dd} |  ddg}|d d S )Nr   r   Tr  r&   r   Fr   r"      r   r   r   r   r   r   1r  r  2r  r  )v1v2k1k2)rU   rV   r   fourfivesixr(   r  r  rP   )r0   getr\   r6   r7   r   r   r4   r`   ra   r   r   rh   )r9   col1col2rp   rt   r   r   r   r   test_multi_func/  s$    *
r  c                 C   sJ   |  ddgd }|ddg}t|d|dd}t|| d S )Nr   r   r&   r\   r3   )r\   r3   )r0   rh   r   r6   r7   )r9   rp   rt   r   r   r   r   !test_multi_key_multiple_functionsK  s    r  c                  C   s   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d}t	|j
tsJ t	|j
tsJ t|| d S )Nr~   r~   r~   r~   r   r   r   r   r~   r~   r~   rU   rU   rU   rV   rU   rU   rU   rV   rV   rV   rU   r"      )r   r   r   EFr   r   r\   r3   r   r!  r"  )r   r!  r"  rM   )keysr   )r   r4   r`   ra   r   r0   rh   r+   concat
isinstancer)   r   r6   r7   )ro   rp   funcsrt   r   r   r   r   "test_frame_multi_key_function_listS  s&    "
&r'  c               	   C   s   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d}tj	t
|d || W d    n1 s0    Y  d S )Nr  r  )dullr(  shinyr(  r(  r)  r)  r(  r)  r)  r)  r"   r   )r   r   r&   r   r!  r"  r   r   r\   r3   &agg function failed [how->mean,dtype->rK   )r   r4   r`   ra   r   r0   reescaperl   rm   	TypeErrorrh   )ro   rp   r&  rs   r   r   r   2test_frame_multi_key_function_list_partial_failure  s    /
r.  opc                 C   s   |   S rN   rO   rE   r   r   r   rG     rH   rG   c                 C   s   |   S rN   r   rE   r   r   r   rG     rH   c              	   C   s"  | }| ddg}||}g }g }| dD ]J\}}| dD ]6\}	}
|||	f |||
jd d ddgf  q>q,tj|ddgd}tj|ddj}||_dD ]8}||| }|| }|| }t	
|| t	
|| q|d  |d |d g }| ddg d }t	
|| d S )	Nr   r   r&   r   r   rM   r   r
  )r0   appendr   r   from_tuplesr+   r$  r   r)   r6   ri   r\   )r9   r/  ro   rp   r   r#  r   Zn1Zgp1Zn2Zgp2mir   colZ
result_colZpivotedexpr   r   r   r   test_groupby_multiple_columns  s*    $r6  c                  C   s   t ddgddgddggddgd} | jdd	d
d d}tddgdd}t|| | jdd	ddd dd }tg ddtg dd}t|| d S )NrM   r"   r   r!   r  r   r   r   Fr   r[   T)r   rJ   c                 S   s   |   S rN   )cumsumrE   r   r   r   rG     rH   z-test_as_index_select_column.<locals>.<lambda>)r"   r  r  ))r   r   )r   rM   r   r[   r)   )	r   r0   	get_groupr   r6   ri   rj   r   r2  r9   r   r   r   r   r   test_as_index_select_column  s    "r=  c                  C   s   d} t g dg dd}|j|djd }tjt| d0 |djd|d}t	|| W d    n1 sv0    Y  d S )	Nzobj is deprecatedrM   rM   r"   rB   r   r!   r   r   r   rK   )obj)
r   r/   r0   r   r  r6   re   rf   r;  r7   )r   r9   r   r   r   r   r   !test_obj_arg_get_group_deprecated  s    rA  c                  C   sd   t tg dddd} | jdddd jdd	}t | jd d
 tdd}d g|j_t|| d S )Nr*   alphar8  r7  r   F)byr   r   r  r"   r   r   )	r   r
   r0   rP   r   r2   r   r6   r7   )r9   leftr   r   r   r   0test_groupby_as_index_select_column_sum_empty_df  s
    
rE  c                 C   s  | j ddd}|ddg d}|jdd}t|| |dd	d
}|jdd}| d |d< t|| | j ddd}d}tjt|d" |d dd	i W d    n1 s0    Y  | j ddgdd}|d}| }t|| |dd	d
}| }| d |d< t|| |d  }t	|j
ddid}d}tjt|d" |d dd	i}W d    n1 s0    Y  t|| t	tjddddg dd} ttjdddddd}	|  |	}
|
d d}tjt|dd |
t}W d    n1 s"0    Y  tjt|dd  |  |	t}W d    n1 sd0    Y  t|| dD ]P}| j |	dd}
t|
| }| j |	jdd}
t|
| jdd}t|| q~d S )Nr   Fr   r&   r   r\   Tr  rP   r
  rT   rK   Qr   r7  z7Passing a dictionary to SeriesGroupBy.agg is deprecatedr"   r   d   )2   rB   )jimZjoeZjolier!   rW   rH  rI  r8  z:The behavior of DataFrame.sum with axis=None is deprecated)rL   Zcheck_stacklevel)r\   maxcountr   r9  r   drop)r0   rh   r\   r6   r7   rP   rl   rm   r   r   renamere   rf   r4   r`   ra   integersr   nthrj   r   r   reset_index)r9   rp   r   r   r   	expected2rs   Z	expected3Zresult3r   grr   ZaltattrrD  rightr   r   r   test_groupby_as_index_agg   sZ    0
2

*0rV  c                 C   s   | dv rt d|   ttjdjdddddd	gd
}t|d|  }| dkr`|	d}|
 }| dkr|d |d j|d< |jddd}t||  }t|| || }t|| t|d	 |  }t|| |d	 | }t|| d S )N)ZcorrwithrP  ngroupz!GH 5755: Test not applicable for r"   r   r!   )rG  r"   )sizer   r   r7  rX  Fr   )rl   skipr   r4   r`   ra   rO  r   r0   rN  rQ  ry   r<   r6   r7   rh   )Zreduction_funcr9   r   r   r   r   r   r   test_ops_not_as_indexC  s(    

rZ  c                 C   s.  | j ddd}| j ddgdd}|d d}|djd d ddgf }t|tsXJ t|| |d d}|djd d g df }t|tsJ t|| |d  }| jd d ddgf }t|tsJ t|| |d  }| jd d g df }t|tsJ t|| d S )Nr   Fr   r   r&   rP   r*   )r0   rh   r   r%  r   r6   r7   rP   )r9   rp   Zgrouped2r   r   r   rR  r   r   r   !test_as_index_series_return_framee  s$    r[  c                 C   sR   | j ddd}d}tjt|d |d d W d    n1 sD0    Y  d S )Nr   Fr   zColumn\(s\) C already selectedrK   r&   r   )r0   rl   rm   
IndexError__getitem__)r9   rp   rs   r   r   r   (test_as_index_series_column_slice_raises~  s    r^  c                 C   s   | }|j ddd}|jdd}| dgjdd}|dd|j tt||_t|| |j ddgdd}| }| ddg }tt	|jj
 }|dd|d  |dd|d  tt||_t|| d S )	Nr   Fr   Tr  r   r   rM   )r0   r\   insertr)   r   rd   r6   r7   r1   zipr   )r9   ro   rp   r   r   Zarraysr   r   r   test_groupby_as_index_cython  s    ra  c                 C   sL   | j ddgdd}|d t}|tjd d g df }t|| d S )Nr   r   Fr   r&   r*   )r0   rh   rd   r   r6   r7   r9   rp   r   r   r   r   r   #test_groupby_as_index_series_scalar  s    rc  c              	   C   s   d}t jt|d" |jdd dd W d    n1 s:0    Y  d}d}t jt|dR tjt|d$ | jd	d dd
d W d    n1 s0    Y  W d    n1 s0    Y  d S )Nz(as_index=False only valid with DataFramerK   c                 S   s   |   S rN   r   rE   r   r   r   rG     rH   z.test_groupby_as_index_corner.<locals>.<lambda>Fr   z$as_index=False only valid for axis=0r  c                 S   s   |   S rN   )lowerrE   r   r   r   rG     rH   rM   )r   r   )rl   rm   r-  r0   
ValueErrorr6   re   rf   )r9   r   rs   r   r   r   r   test_groupby_as_index_corner  s    0rf  c                  C   s  t tjddttdtdtddddd	} | 	d
d dd dd g}|
 }t| j|j d}tjt|d2 | jj	dd dd dd gdd}W d    n1 s0    Y  |dd }t|j| j t| jj|j |dd }t| jj|j d S )Nr"   r   r   r   r   rW   r   r   r   c                 S   s   | j S rN   r   rE   r   r   r   rG     rH   z+test_groupby_multiple_key.<locals>.<lambda>c                 S   s   | j S rN   r   rE   r   r   r   rG     rH   c                 S   s   | j S rN   r   rE   r   r   r   rG     rH   r  rK   c                 S   s   | j S rN   r   rE   r   r   r   rG     rH   c                 S   s   | j S rN   r   rE   r   r   r   rG     rH   c                 S   s   | j S rN   r   rE   r   r   r   rG     rH   rM   r   c                 S   s   |   S rN   rO   rE   r   r   r   rG     rH   c                 S   s   |   S rN   rO   rE   r   r   r   rG     rH   )r   r4   r`   ra   r   r
   r1   r   r   r0   rP   r6   Zassert_almost_equalr   re   rf   r   rh   assert_index_equalr)   r   )r9   rp   rt   r   r   r   r   test_groupby_multiple_key  s$    $rh  c                 C   sP   |   } tj| d< | ddg }| ddg }tj|d< t|| d S )Nbadr   r   )r-   r4   r   r0   r\   r6   r7   )r9   rt   r   r   r   r   test_groupby_multi_corner  s    

rj  c                 C   s  |  d}td}tjt|d |d W d    n1 sB0    Y  tjt|d |  W d    n1 sx0    Y  | jd d g df } t	
 | d< |  d}d}tjt|d |d W d    n1 s0    Y  tjt|d |  W d    n1 s0    Y  d	}tjt|d( | j d
d
ddddd}W d    n1 sd0    Y  d}tjt|d |dd  W d    n1 s0    Y  d S )Nr   r*  rK   r\   r   r&   r   r!  z/datetime64 type does not support sum operationsrP   r  r   rM   )r   r&   r   r!  r   z does not support reduction 'sum'c                 S   s   | j dddS )Nr   Fr  rO   rE   r   r   r   rG     rH   z)test_raises_on_nuisance.<locals>.<lambda>)r0   r+  r,  rl   rm   r-  rh   r\   r   r   nowrP   r6   re   rf   )r9   rp   rs   r   r   r   r   test_raises_on_nuisance  s(    

(&
((8rm  agg_functionrJ  minc                 C   sv   |  d}t|| }| }t| j| d dkdf | |jd< t| j| d dkdf | |jd< t|| d S )Nr   r   r   )r   r   r~   )r~   r   )r0   r   r-   r   r6   r7   )r9   rn  rp   r   r   r   r   r   test_keep_nuisance_agg  s    
$$rp  )rP   r\   prodr3   varsemmedianr	  c           
      C   s   |  d}d}||v r|s|dv r,t}d}nt}td| d}tj||d  t|||d W d    q1 sv0    Y  n^t|||d}|s|d	krg d
}ng d}t| jd d |f  d||d}	t	
||	 d S )Nr   )rr  r3   rs  r\   rq  rt  )r3   rs  z(could not convert string to float: 'one'zagg function failed [how->z,dtype->rK   r  rP   r   rk  )r0   re  r-  r+  r,  rl   rm   r   r   r6   r7   )
r9   rn  r	  rp   Zno_drop_nuisanceklassrs   r   r   r   r   r   r   test_omit_nuisance_agg   s$    
0
rv  c                 C   sD   |  d}tjtdd |  W d    n1 s60    Y  d S )Nr   zcould not convertrK   )r0   rl   rm   re  skew)r9   rp   r   r   r   $test_raise_on_nuisance_python_single"  s    
rx  c                 C   s   |  ddg}td}tjt|d |d W d    n1 sF0    Y  tjt|d |  W d    n1 s|0    Y  d S )Nr   r   r*  rK   r\   )r0   r+  r,  rl   rm   r-  rh   r\   )Zthree_grouprp   rs   r   r   r   &test_raise_on_nuisance_python_multiple)  s    
(ry  c                 C   s   t tg dtg dddgd tjddtjddd}|d	d
g}|ddg d}|jdd}t	
|| | dd jdd}|dd }|d d}t	|d | |jjdksJ d S )Nr  r  r~   r   rB   r"   r  )r  r  Zk3r  r  r  r  r  r  r\   Tr  r!   r   r   c                 S   s   |   S rN   r   rE   r   r   r   rG   D  rH   z*test_empty_groups_corner.<locals>.<lambda>r   r   )r   r4   r   r`   ra   r   r0   rh   r\   r6   r7   rj   ri   r)   r[   )r{   r9   rp   r   r   rt   Zagged_Ar   r   r   test_empty_groups_corner2  s"    

r{  c                  C   sN   t dg} d}tjt|d | dd  W d    n1 s@0    Y  d S )Nr   z5unsupported operand type\(s\) for \+: 'int' and 'str'rK   c                 S   s   | d S )Nr~   r   rE   r   r   r   rG   N  rH   z$test_nonsense_func.<locals>.<lambda>)r   rl   rm   r-  r0   )r9   rs   r   r   r   test_nonsense_funcJ  s    
r|  c                 C   s   | j }d|d< tg dtg dg}td}tjt|d  ||	d W d    n1 sh0    Y  |j
dd|	d}t|jtsJ dd	 }tjtd
d  ||| W d    n1 s0    Y  d S )NZpeekaboo)bazrV   r   r   rM   r*  rK   r\   r7  c                 S   s   | j dkrtd|  S )N)r~   rU   Test error message)r[   r-  rP   )r8   r   r   r   aggfun\  s    
z5test_wrap_aggregated_output_multindex.<locals>.aggfunr  )r   r4   r   r+  r,  rl   rm   r-  r0   rh   rM  r%  r   r   rg   )r{   r9   r#  rs   rt   r  r   r   r   %test_wrap_aggregated_output_multindexQ  s    
.r  c                 C   sh   | j dd }|jjdks J | j dd }|jjdks@J | d j dd }|jjdksdJ d S )Nr   rz  r   rM   secondr   )r0   rK  r)   r[   )r{   r   r   r   r   test_groupby_level_applye  s    r  c                    s   |   }ddddd dddd| j dd }| jdd }tj fdd|d D tjd	}tjfd
d|d D tjd	}| | }| | }d\|j_|j_t	|| t	|| d S )Nr   rM   )r~   r   r}  qux)rU   rV   r   rz  c                    s   g | ]}  |qS r   r  r   )mapper0r   r   r   y  rH   z-test_groupby_level_mapper.<locals>.<listcomp>r   r   c                    s   g | ]}  |qS r   r  r   )mapper1r   r   r   |  rH   r  )r   r  )
rQ  r0   rP   r4   r   r=   r)   r[   r6   r7   )r{   Z	deleveledZresult0r   Zmapped_level0Zmapped_level1Z	expected0Z	expected1r   )r  r  r   test_groupby_level_mappero  s     r  c                  C   s.  t g dtg ddd} t g dttdddd}| jdd	 }t|| | jdgd	 }t|| | jd
d	 }t|| | jd
gd	 }t|| d}tjt	|d | jdd	 W d    n1 s0    Y  tjt	|d | jdd	 W d    n1 s0    Y  d}tjt	|d | jg d	 W d    n1 sZ0    Y  d}tjt	|d  | jddgd	 W d    n1 s0    Y  tjt	|d  | jddgd	 W d    n1 s0    Y  d}tjt	|d | jdgd	 W d    n1 s 0    Y  d S )N)rM   r"   rB   rW   r   r!   rX   r  )rM   r"   rB   rM   r   r!   r"   r  r~   r8  )r      rB   r   r!   r  rM   rQ   r   rz  r'   z2level > 0 or level < -1 only valid with MultiIndexrK   zNo group keys passed!z*multiple levels only valid with MultiIndex)
r   r
   r2   r0   rP   r6   ri   rl   rm   re  )sr   r   rs   r   r   r   test_groupby_level_nonmulti  s4    *,,00r  c                  C   sB   t tdd g dd} t d}| jdd }t|| d S )Nr         ?       @)r   r   rM   rM   ro   r)   )r  y      @      $@r   rz  )r   r4   r5   r0   rP   r6   ri   )r   r   r   r   r   r   test_groupby_complex  s    r  c                  C   sf   t dddddddddg} | d }t dgdggtddgdd	td
gd}t|| d S )Nr"   r  r   rM         ?      ?r   r         ?r8  r   r)   r   )r   r0   r\   r
   r6   r7   r<  r   r   r   test_groupby_complex_mean  s    
r  c                 C   s   t dddddddddg}| r(dnt}t tjg dtjdtg d	d
dtdg|dd}|jd
dd }t	|| tg dd
d|_
|jd
dd }t	|| d S )NrM   r  r   r  r   string[pyarrow_numpy])rM   rM   rM   r   )r  r        ?        r   r8  r   r  Fsort)r  r  r  T)r   r   r4   r   r=   r
   r0   rK  r6   r7   r)   )using_infer_stringr9   r<   r   r   r   r   r   test_groupby_complex_numbers  s"    r  c                  C   sj   t g dtg dd} t g dtg dd}| |}| }| || jj }t|| d S )N)      @g      "r   g      Y@g      g     K@g@)r   r   r   dr   r   r   r(   )r   r   r   r  r  g      @)r   r   r  r   r   h)	r   r
   r0   r\   rc   r)   r  r6   ri   )s1s2rp   rt   r5  r   r   r   'test_groupby_series_indexed_differently  s    

r  c            	      C   s  t tg dg dg } t| }tg d}ttjdd||d}|j	dd
 }t|j| d	}tjt|d
 |j	ddd}W d    n1 s0    Y  |
 }t|j|j |j	ddd}t|j| |j	dddd }t|j| tjt|d
 |j	ddd}W d    n1 s:0    Y  |dd }t|jtddg t|j|j |d\}}d|d< |j	ddj
dd}t|j|jd d  d S )N)r   r   r}  r}  r~   r~   r  r  )rU   rV   rU   rV   rU   rV   rU   rV   ))r   cat)r   dog)r   r  )r   r  r"   )r   r   r  r   rz  r  rK   rM   )r   r   r\   c                 S   s   |   S rN   r   rE   r   r   r   rG     rH   z0test_groupby_with_hier_columns.<locals>.<lambda>c                 S   s
   |  dS )NrM   r   rE   r   r   r   rG   
  rH   r   r   r   )r   r~   Tr  r'   )r1   r`  r   r2  r   r4   r`   ra   r   r0   r\   r6   rg  r   re   rf   r)   rh   rj   r
   Z	sortlevel)	Ztuplesr)   r   r9   r   r   r:   Zsorted_columns_r   r   r   test_groupby_with_hier_columns  sD    
,.r  c                 C   s@   |  | d j}| }|  | d d  }t|| d S )Nr   )r0   r   rP   rN  r6   r7   rb  r   r   r   test_grouping_ndarray  s    r  c                  C   sl   t g ddd} tg dg dg dg dg dd	| d
}|g d}|d}| }t|| d S )Nr   rM   r"   rB   r   r)   r8  )foo1r  Zfoo2r  Zfoo3)bar1bar2r  r  r  )baz1r  r  baz2r  )spam2Zspam3r  spam1r  )rX   rY   (   rH  <   )r~   r   r}  spamro   r(   )r~   r   r}  r  r\   )r
   r   r0   rh   r\   r6   r7   )r)   ro   rp   r   r   r   r   r   test_groupby_wrong_multi_labels  s    
r  c                 C   s   |  | d jdd}| j | d ddjdd}|jjdks@J d|v sLJ |  | d | d g }| j | d | d gdd }|jjdksJ d|v sJ d|v sJ d S )Nr   Tr  Fr   r   r   r   )r0   r\   r)   r[   r   )r9   r   r   r   r   r   test_groupby_series_with_name0  s    r  c                 C   sR   |  dd }| jdks J | jdks2J dd }||jdksNJ d S )Nr   r&   c                 S   s   t | d S r_   )r4   rP   rE   r   r   r   rG   C  rH   z.test_seriesgroupby_name_attr.<locals>.<lambda>)r0   rK  r[   r\   rh   )r9   r   ZtestFuncr   r   r   test_seriesgroupby_name_attr=  s
    r  c                  C   sf   t g dg dtjddd tdd} | dgj }| j| j	 }t
|| d S )Nr}   )rU   rU   rV   rV   rV   rV   rU   rV   r"   r   r   r   r   )r   r4   r`   ra   r   r5   r0   r   rK  r   r6   ri   r9   r   r   r   r   r   test_consistency_nameG  s    	r  c                 C   s  d	dd}dd }d}t jt|d  | d|}W d    n1 sJ0    Y  |jjd u sdJ t jt|d" | d|d}W d    n1 s0    Y  |jjdksJ t jt|d  | d|}W d    n1 s0    Y  |jjd u sJ d S )
Nc                 S   s   t dddd|dS )NrM   r"   rB   rK  r\   Z	omissionsr8  )r   )r9   r[   r   r   r   	summarizeZ  s    z0test_groupby_name_propagation.<locals>.summarizec                 S   s   t dddd| jd d dS )NrM   r"   rB   r  r   r   r8  )r   r/   r   r   r   r   summarize_random_name]  s    z<test_groupby_name_propagation.<locals>.summarize_random_namer   rK   r   metrics)N)r6   re   r   r0   rj   r   r[   )r9   r  r  rs   r  r   r   r   test_groupby_name_propagationX  s    
.0.r  c                  C   sJ   t dd tdD } | d}| }| | d  }t|| d S )Nc                 S   s   g | ]}t d qS )rW   )r4   r5   r   r   r   r   r   p  rH   z2test_groupby_nonstring_columns.<locals>.<listcomp>rW   r   )r   r2   r0   r\   r6   r7   rb  r   r   r   test_groupby_nonstring_columnso  s
    
r  c                  C   sp   t g dgg dd} t ddggddgtdgdd	d
}| d }t|| | d }t|| d S )NrZ   )r   r   r   r7  rM   r"   r   r   r   r8  r   )r   r
   r0   r   r6   r7   rP   r  r   r   r   test_groupby_mixed_type_columnsw  s    "r  c                  C   s`   t d} | t j t| d d df }t tdd}||tj	}|
  s\J d S )N)rG  rG  r   rW   )r4   r   fillr   r   Ztiler2   r0   rh   rt  Zisnar   )arrr@  Zindsr   r   r   r   (test_cython_grouper_series_bug_noncontig  s    
r  c                  C   sh   t dgd } ttjdd| d d d d}tjdddd}||}dd	 }|| d S )
NZ
aaaaaaaaaarG  r"   rH  r(   r   r!   c                 S   s   t ttt| jS rN   )rd   setmapidr)   rE   r   r   r   rG     rH   z5test_series_grouper_noncontig_index.<locals>.<lambda>)	r
   r   r4   r`   ra   r   rO  r0   rh   )r)   r   r   rp   r   r   r   r   #test_series_grouper_noncontig_index  s    $
r  c                  C   s   t td} tjg ddd}dd }dd }| |}||}|jtjksRJ t|j	d	 t
sfJ ||}|jtjksJ t|j	d	 t
sJ d S )
Nr!   )r   r   r   r  r   rw   r   c                 S   s   t t|  S rN   )r   strr\   rE   r   r   r   convert_fast  s    z>test_convert_objects_leave_decimal_alone.<locals>.convert_fastc                 S   s$   t | jjdksJ tt|  S r   )rd   r   baser   r  r\   rE   r   r   r   convert_force_pure  s    zDtest_convert_objects_leave_decimal_alone.<locals>.convert_force_purer   )r   r2   r4   r   r0   rh   r<   Zobject_r%  r/   r   )r  r   r  r  rp   r   r   r   r   (test_convert_objects_leave_decimal_alone  s    


r  c                  C   st   t g tjdddd} | d jtjks,J | d }tg dtjd}t dtg |ddi}t	j
||d	d
 d S )Nr   r=   r   )rF   r2   rF   r[   r<   r2   rC   T)Z	by_blocks)r   r4   r5   r<   r?   r0   r   r
   r   r6   r7   )r9   r   Z	exp_indexr   r   r   r   "test_groupby_dtype_inference_empty  s    r  c                  C   sb   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dd}t|| d S )	NrM   l    4;PU  )r   r  r   r   r  r   r0  r8  )r   r0   rJ  r   r   from_productr6   ri   r<  r   r   r   $test_groupby_unit64_float_conversion  s    r  c                 C   s   |  t| d jdd}|  | d jdd}tj||dd tjtdd* |  t| d d d  W d    n1 s~0    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'$rK   r'   r   rM   rB   r   r"   )r~   r   valr~   r   r  )r0   r1   r\   r6   r7   rl   rm   KeyErrorr   r4   r`   ra   r   r<  r   r   r   "test_groupby_list_infer_array_like  s    8r  c                  C   st   d} t tdd| d}tddgddggd	d
g|d}|td| dd	g }||jd	gt	}t
|| d S )Nr  z2015-09-29T11:34:44-0700r"   )startr    r   r   rW   r      Zmetricr   r   r   )r   r   )r   r   r   r0   r	   r\   r   r)   ry   r   r6   r7   )r   r)   r9   r   r   r   r   r   $test_groupby_keys_same_size_as_index  s    
r  c                  C   s   d} t tjddtdd}tjt| d |	d W d    n1 sP0    Y  t tjddtdd}tjt| d |	d W d    n1 s0    Y  d S )	Nz^'Z'$r"   )rM   r   r   r7  rK   Z)r"   r   )
r   r4   r`   ra   r   r1   rl   rm   r  r0   )rs   Zdf1r   r   r   r   test_groupby_one_row  s    (r  c                  C   s  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sJ t||D ]\}}t|j
| | qt|jjd j|  |jdksJ tdtjd	d
gtjdtdtjddgtjdi}|jD ]}t|j| ||  q"t|td| jd	d
g  t|td| jddg  tjtdd |tj W d    n1 s0    Y  t tjtjtjgtjtjtjgd}|d j dksJ |d j dks
J dD ]}||}|j
i ks,J |jdks<J |ji ksLJ tjtdd |tj W d    n1 s~0    Y  tjtdd |tj W d    n1 s0    Y  qd S )Nr"   r   z
2013-01-01z
2013-02-01r   r   )r   dtr  r  rM   rQ   rB   r!   r   z2013-01-01 00:00:00r   z2013-02-01 00:00:00z^NaT$rK   )r   natr   r?   r  zdatetime64[ns]z^nan$)!r   r4   r`   ra   r   r   r   r0   r
   sortedr   r#  rd   r`  r6   rg  r7   _grouperr   r@  Zngroupsr   Zintpr   assert_numpy_array_equalr;  r/   rl   rm   r  r+   r.   r<   )r9   rp   r   r#  rq   r   Znan_dfr   r   r   r   test_groupby_nat_exclude  sZ    


  , 
,r  c                  C   sD   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 )NrM   r"   r   r   r   )r   r4   r   r0   r   r9   r   r   r   r   #test_groupby_two_group_keys_all_nan9  s    $r  c                  C   s   t tdd} ddg| d< ddg| d< ddg| d	< d
dg| d< | dgjdd}tddgddgg}t|jt	dd	g t
|j| d S )Nr"   r(   g1g2r   r   ZzerosrM   r   l1l2labelTr          r   )r   r2   r0   r\   r4   r   r6   rg  r   r
   r  r   )r  tmpZ
res_valuesr   r   r   test_groupby_2d_malformed@  s    r  c                  C   s   t t dt dt df} t d}t|| || t jddd}|g d }|g d }t	|t	|ksJ d S )Nr   i  ia  r"   )r   r   r&   r   r!  r   )r   r&   r   r   )
r4   Zconcatenater5   r   r`   ra   r   r0   rP   rd   )r   r   r9   rD  rU  r   r   r   test_int32_overflowL  s    "

r  c                  C   sz  t g dg dg dtjddd} dd | g d	 jD }t|}| jg d	d
d	 }t
|jj|g d  dd | g d jD }t|}| jg dd
d	 }t
|jj| dd | g d jD }t|}| jg dd
d	 }t
|jj|g d  t g dg dtjddd} | ddgd }|	 }dd fdd}|| |ddgd d S )Nr~   r   r}  )rB   r"   rM   rZ   r"   rB   r   r   r   r  c                 S   s   g | ]}t |qS r   tupler   rowr   r   r   r   h  rH   z+test_groupby_sort_multi.<locals>.<listcomp>r   Tr  )rM   r"   r   c                 S   s   g | ]}t |qS r   r  r  r   r   r   r   m  rH   )r   r   r   c                 S   s   g | ]}t |qS r   r  r   r   r   r   r   r  rH   )r   r   r   )r"   rM   r   r   rM   r"   r   rM   r"   )r   r   r   rM   rM   rM   r  )r   r   r  r   r   r  c                 S   s   |   S rN   rO   rE   r   r   r   rG     rH   z)test_groupby_sort_multi.<locals>.<lambda>c           	      S   sV   dd | | j D }t|}|| || }| D ]\}}|| |ks8J q8d S )Nc                 S   s   g | ]}t |qS r   r  r  r   r   r   r     rH   zCtest_groupby_sort_multi.<locals>._check_groupby.<locals>.<listcomp>)r   comasarray_tuplesafer0   r   )	r9   r   r#  fieldr   tupsr   rq   rr   r   r   r   _check_groupby  s
    
z/test_groupby_sort_multi.<locals>._check_groupby)r   r4   r`   ra   r   r   r  r  r0   rP   r6   r  r)   )r9   r  r   rp   r  r   r   r   test_groupby_sort_multi^  s:    	


r  c                  C   st   t g dg dd d} d}tjt|d( | jddd	d
d }W d    n1 sZ0    Y  t||  d S )N)r   r   r   r   r   r   r  r"   )r   r[   r   rK   r   FrI   c                 S   s   | S rN   r   rE   r   r   r   rG     rH   z/test_dont_clobber_name_column.<locals>.<lambda>)r   r6   re   r   r0   rj   r7   )r9   rs   r   r   r   r   test_dont_clobber_name_column  s    6r  c                  C   s   t tjddttdtdtddddd	} | j	d
d dd}|
dd }dd |D }t|}t|| | d j	dd dd}|
dd }dd |D }t|}t|| d S )Nr"   r   r   r   r   rW   r   r   r   c                 S   s   | j S rN   r   rE   r   r   r   rG     rH   z&test_skip_group_keys.<locals>.<lambda>FrI   c                 S   s   | j ddd d S )Nr   rC  rB   sort_valuesrE   r   r   r   rG     rH   c                 S   s$   g | ]\}}|j d ddd qS )r   r  NrB   r  r   r   r   r   r   r   r     rH   z(test_skip_group_keys.<locals>.<listcomp>r   c                 S   s   | j S rN   r   rE   r   r   r   rG     rH   c                 S   s   |   d d S rD   r  rE   r   r   r   rG     rH   c                 S   s    g | ]\}}|  d d qS rD   r  r  r   r   r   r     rH   )r   r4   r`   ra   r   r
   r1   r   r   r0   rj   r+   r$  r6   r7   ri   )Ztsfrp   r   piecesr   r   r   r   test_skip_group_keys  s    

r  c                 C   s8   | d   }d |_|| d d}|jd u s4J d S )Nr&   r   rP   )r-   r[   r0   rh   )Zfloat_framer  r   r   r   r   test_no_nonsense_name  s    r  c                  C   s\   t tddd} d| d< g d| d< | d}|ddd	}|d jtjksXJ d S )
NrA   rB   r   test)g?r  g?flrP   rX  )r  r"   )r   r4   r5   reshaper0   rh   r<   r?   )rF   rp   r   r   r   r   test_multifunc_sum_bug  s    
r  c                 C   sV   dd }dd }|  dd |}|  dd |}t|tsFJ t|| d S )Nc                 S   s   |   |  dS NrJ  ro  r   r   r   r   r   r     s    z(test_handle_dict_return_value.<locals>.fc                 S   s   t |  |  dS r  )r   rJ  ro  r   r   r   r   r     s    z(test_handle_dict_return_value.<locals>.gr   r&   )r0   rj   r%  r   r6   ri   )r9   r   r   r   r   r   r   r   test_handle_dict_return_value  s    r  grouperr   r   c                    s   dd }fdd  fdd}| j dd}d	}tjt|d
 || W d    n1 sb0    Y  |  |  d || |d | |d   |d  |g |d | d S )Nc                 S   s   | j d usJ | S rN   r8  r   r   r   r   r     s    ztest_set_group_name.<locals>.fc                    sh   | j d usJ r\ dkr\t| jr\tjtdd |   W d    qd1 sP0    Y  n|  S d S )Nr   zdoes not supportrK   )r[   r   r<   rl   rm   r-  rP   r   )r  r  r   r   freduce  s
    (z$test_set_group_name.<locals>.freducec                    s    | S rN   r   rE   )r  r   r   freducex  s    z%test_set_group_name.<locals>.freducexFrI   r   rK   r
  r&   )r0   r6   re   r   rj   rg   rk   )r9   r  r  r   r  rp   rs   r   )r  r  r  r   test_set_group_name  s    (

r  c                     s   t g dtdd} g   fdd}d}tjt|d& | jdd	d	d
| W d    n1 sf0    Y  g d} |ksJ d S )N)r   r   rM   rM   r"   r"   r  r   c                    s     | j |  S rN   )r1  r[   r-   r   r0  r   r   r     s    z6test_group_name_available_in_inference_pass.<locals>.fr   rK   r   F)r  rJ   rZ   )r   r4   r5   r6   re   r   r0   rj   )r9   r   rs   Zexpected_namesr   r0  r   +test_group_name_available_in_inference_pass  s    4r  c                 C   sV   |  | d j }|jjd u s$J |  | d j| d jg }|jjdksRJ d S )Nr   r   )NN)r0   r   rP   r)   r[   r   r  r   r   r   test_no_dummy_key_names  s    r  c                  C   s   t ddgddggg dg dgddgd} tg d| d	}t ddgddggg d
g dgddgd} tg d| d	}|jddgdd }t|| |jddgdd }t||  d S )NrM   r"   )r   r   r   r   rM   rM   )rM   rM   r   r   r   r   r   r   r   )r   rM   r"   rB   r   r!   r(   r~  )rM   r   r   r   r"   r   Fr   r  T)r   r   r0   r   r6   ri   
sort_index)r)   ZmseriesZmseries_resultr   r   r   r   #test_groupby_sort_multiindex_series  s    "r  c                  C   s   d} t dd| d}tt| t| d|d}ddd	}|d
d }|d|tji}|d|tjdi}t|| d S )N  z2012/1/1Z5min)r  r   r    )highlowr(   Fc                    s    fdd}|S )z>
        Run an aggregate func on the subset of data.
        c                    sD   | j | jdd   } r,| | jd   t|dkr<d S |S )Nc                 S   s
   | j dk S )Nr   )hourrE   r   r   r   rG   ,  rH   zYtest_groupby_reindex_inside_function.<locals>.agg_before.<locals>._func.<locals>.<lambda>r   )r   r)   r  dropnard   )ro   r  fixfuncr   r   _func+  s    zGtest_groupby_reindex_inside_function.<locals>.agg_before.<locals>._funcr   )r  r  r  r   r  r   
agg_before&  s    z8test_groupby_reindex_inside_function.<locals>.agg_beforec                 S   s   t | j| j| jS rN   )r   r   r   r   rE   r   r   r   rG   5  rH   z6test_groupby_reindex_inside_function.<locals>.<lambda>r  T)F)	r   r   r4   r5   r0   rh   rJ  r6   r7   )r    indr9   r  rp   Zclosure_badZclosure_goodr   r   r   $test_groupby_reindex_inside_function!  s    
r  c                  C   s   t g dg dg dd} | ddg} | jddgdd}|d	}tjg d
ddgd}t dgdgdgg|dgd}t|| d S )N)r   r   r   r   )r   r   r  r   )rM   rM   rM   r!   )group1group2r   r  r  Tr	  rP   ))r   r   )r   r  r   r   r0  r"   rM   r!   r   r  )r   r   r0   rh   r   r2  r6   r7   )r9   r   r   r  r5  r   r   r   $test_groupby_multiindex_missing_pair<  s    
r  c                  C   s  t jg dddgd} tg dg| d}|j s6J tg dg dg d	gd
}|jdddgdd}| }|j r|J |d }t	
t |d }W d    n1 s0    Y  t	|| tg dg dg ddddg}|j rJ ddddgfD ]j}dD ]^}|j||ddtj}|}t	|| | j||ddtj}| }t	|| qqd S )N))r    )b1c1)b2c2r   r   r0  rM   rB   r   r7  r  )rM   r  r  rB   )rM   r  r   r   )r   ro   r   r  )r)   r   r   )r   r   r   r   rM   rM   r"   r"   rM   r"   rB   r   rF   r   zrF   r   r   rM   )FTF)r   r  rJ   )r   r2  r   r   Z_is_lexsortedpivot_tablerQ  r0   r\   r6   re   r   r7   r   r)   rj   Zdrop_duplicatesr
  )Zlexsorted_miZlexsorted_dfZnot_lexsorted_dfr   r   r9   r   r  r   r   r   %test_groupby_multiindex_not_lexsortedQ  sL    
,r'  c                  C   s  t tdg dd} | td}|dd }| jg d }t|| | d }|td}|d	d }|g d}t|| | j	
t| _	| td}|d
d }| jg d }t|| | d }|td}|dd }|g d}t|| d S )NZABCDE)r"   r   r"   rM   rM   r(   Zababbc                 S   s   t | dkS r_   rd   rE   r   r   r   rG     rH   z4test_index_label_overlaps_location.<locals>.<lambda>r!  r   c                 S   s   t | dkS r_   r(  rE   r   r   r   rG     rH   c                 S   s   t | dkS r_   r(  rE   r   r   r   rG     rH   c                 S   s   t | dkS r_   r(  rE   r   r   r   rG     rH   )r   r1   r0   filterr/   r6   r7   r   ri   r)   ry   r   )r9   r   actualr   r8   r   r   r   "test_index_label_overlaps_location  s(    r+  c                  C   s   d} t | }t|d d| d| d}t|d d d| d| d}|d}|d}|d}|d}t|| d S )	Nr  r"   r         @r   r   r   r\   )r4   r5   r   r0   rk   r6   r7   )nrF   r9   r   r:   r   gb2r   r   r   r   "test_transform_doesnt_clobber_ints  s    
 



r/  sort_columnintsfloatsstringsgroup_column
int_groupsstring_groupsc                    s   t g dg dg dg dg dd}|j d}||} fdd	}d
}tjt|d || W d    n1 s|0    Y  d S )N)rB   rM   r   rM   r   rB   rB   rB   )r%  r   r%  r   r   r   r   r   )r   rQ   r   r!   r"   rA   rM   rM   )gffffff@g333333@g@g333333g@皙?r7  r!   )r%  r  r   r   wordZword2Z42Z47)r5  r6  r1  r2  r3  r  c                    s   t | | j d d S )Nr  )r6   r7   r  rE   r0  r   r   	test_sort  s    z.test_groupby_preserves_sort.<locals>.test_sortr   rK   )r   r  r0   r6   re   r   rj   )r0  r4  r9   r   r:  rs   r   r9  r   test_groupby_preserves_sort  s    
r;  c                  C   s   t tt ddd tdd} | djj| d< | djj	| d< t
jtdd	& |  jddd
dd W d    n1 s0    Y  d S )NrX   ZMEr   )	eventDateZthenamer<  r   r   z	'badname'rK   ZbadnamerK  )r)   r   r   Zaggfunc)r   r   r   todaytolistr2   r   r)   r   r   rl   rm   r  rQ  r&  r   r   r   r   !test_pivot_table_values_key_error  s    r?  r   r&   r#  r   r  r   rM   z
US/Easternr$   
2016-01-01rB   r   r   Int64r   Float64boolean)boolintr   r  r  Zdt64Zdt64tzZperiodrA  rB  rC  )Zidsmethod)rT  rh   rj   )r   idxminro  rJ  rP   rq  rw  c                    s  d }t trdv rd}t d tr4dv r4d}tdtdd}	td	rj|	jjk sjJ |	j	d d }	|	j
d
|d
d|    fdd}
fdd}t |	jj	d tj}|	jj	d jdk}t t}t trjsdv rdv rd d}t}nd d}t}tj||d |
  W d    n1 sT0    Y  dv rt | tr|
dd}| }t|| d S dv rl|s|s|rl|rd}n|rd}nd}dkrd|d g}tjt|d |
  W d    n1 s0    Y  t | ts*d S dkr8d S |
dd}|	g  }|r\| }t|| d S |
 }|	|  }d!v r||	jj}|d ur||}td"krƈd |j_t|| d S )#N)rP   rq  rA  r   )rq  rP   r=   r*   ABCr7  r<   F)rJ   r  observedc                     s6   dkrt  f i | S t  fi | S d S )NrT  )r   )kwargs)r:   rF  r/  r   r   
get_result  s    z&test_empty_groupby.<locals>.get_resultc                     sh   t dgjd} t dkr0tj| | g d}nt|  d d}rRtg dd}ng }tg ||d}|S )Nr   r   rM   r0  r8  r  r   )r   r<   rd   r   r  r
   r   )Zlevr  r   r   )r#  r  r   r   r    get_categorical_invalid_expected#  s    z<test_empty_groupby.<locals>.get_categorical_invalid_expectedM)ro  rJ  rG  r   )ro  rJ  zCannot perform z with non-ordered Categoricalz
Can't get z/ of an empty group due to unobserved categoriesrK   Tr  )rq  rP   rw  z datetime64 type does not supportzPeriod type does not supportzcategory type does not supportrw  |z!does not support reduction 'skew')r   rG  rM   )r%  r   rD  r   r1   hasattrr   r<   r   r/   r0   r+   ZPeriodDtypekindr   orderedr-  re  rl   rm   r6   assert_equaljoinr   ry   r)   rd   r[   )r   r#  r   rF  r/  Zusing_array_managerr  r  Zoverride_dtyper9   rK  rL  Zis_perZis_dt64Zis_catrs   ru  r   r   r   )r:   r#  rF  r/  r  r   r   test_empty_groupby  s~    '


&


&




rT  c                  C   s   t tjdd} | d tj| d< g d| _| j| d dd}d}t	j
t|d	 |d
d }W d    n1 s|0    Y  |j| jk sJ d S )Nr"   )r   r   rB   r   rM   r"   r   rM   FrI   r   rK   c                 S   s   | S rN   r   rE   r   r   r   rG     rH   z<test_empty_groupby_apply_nonunique_columns.<locals>.<lambda>)r   r4   r`   ra   r   ry   r=   r   r0   r6   re   r   rj   r   r   )r9   r:   rs   r   r   r   r   *test_empty_groupby_apply_nonunique_columns  s    
,rV  c                  C   s   t g dg dg dg dd} tjtdd" | g d d W d    n1 sX0    Y  | dd  }td	gdtd
gddd}t	|| d S )N)rM   rM   rM   rM   )r"   r"   r"   r"   )r   r   r   r   z
('a', 'b')rK   r   r   r   r   rM   r8  r:  )
r   rl   rm   r  r0   rP   r   r
   r6   ri   r<  r   r   r   test_tuple_as_grouping  s    	0rW  c                  C   sd   t dtdtddgddggd} tjtdd | d  W d    n1 sV0    Y  d S )	NrM   rB   r"   r   r  z
^\(7, 8\)$rK   )rQ   r   )	r   r2   r   r  rl   rm   r  r0   r\   r   r   r   r   test_tuple_correct_keyerror  s    $rX  c               	   C   s   t dgdggtdgddtddddd	d
} t g dg dgtjdg ddtddddd	d
}| tddddg}t	|| d S )NrM   r~   mycolsr8  
2018-01-01r"   r   dti)r    r   r[   r   )rM   rM   rM   rM   rM   ))r~   rP   r~   )r~   ohlcopen)r~   r\  r  )r~   r\  r  )r~   r\  close)rY  NNr0  )r   rP   r\  )
r   r
   r   r   r2  r0   r	   rh   r6   r7   r  r   r   r   test_groupby_agg_ohlc_non_first  s    

r_  c                  C   s   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d}tg d	|d
}|jdd }tddgddgd
}t	|| d S )Nr   i  rM   r"   r   rB   dater0  )rB   r"         @r   r(   rz  r,  ra  )
r+   r.   r   r   r2  r   r0   r\   r6   ri   )r   r3  r8   r   r   r   r   r   test_groupby_multiindex_nat  s    rb  c                  C   sd   t tdtd} t| ddgd}d}tjt|d |g g W d    n1 sV0    Y  d S )NrW   appler   r7  z$Grouper and axis must be same lengthrK   )r`  r2   r   rl   rm   re  r0   )r   r9   rs   r   r   r   test_groupby_empty_list_raises  s
    rd  c                  C   s   ddgddgddgg} g d}t j| |d}tddg|d	}|d
dg }dgdgg} d
dg}t j| |d}tdg|d}t|| d S )NrF   r   r   rq   )r   r  thirdr0  rM   r"   r  r   re  rB   r(   )r   from_arraysr   r0   rP   r6   ri   )Zindex_arrayZindex_namesrir  r   eir   r   r   r   8test_groupby_multiindex_series_keys_len_equal_group_axis  s    ri  c                  C   s   t jddgddggddgd} tg dg d	d
| d}|tdddg}|ddg}|j|jksjJ |dtddg}|ddg}|j|jksJ d S )Nr   r   r&   r   rB  betar0  )rM   r"   rM   r"   r#  r  r(   rz  )r   r  r   r0   r	   r   )r3  r9   r   r   r   r   r   "test_groupby_groups_in_BaseGrouper  s    rk  
group_namerF   c                 C   sD  t tdddg dg dd}d|j_d|j_d	}tjt	|d
 |j
| dd}W d    n1 sj0    Y  | }|j
|  j}t|| g dddgg}tj|ddgd}t tdddg d|d}tjt	|d
 |j
| dd}W d    n1 s0    Y  | }|j
|  j}t|| d S )NrR   rB   r   r   rM   r   )rW   rX   rW   rX   r  r   rF   r  rK   rM   r   )r   r}  r~   rU   rV   x1)	iterablesr      r  )r   r4   r5   r  r)   r[   r   r6   re   rf   r0   rP   r   r7   r   r  )rl  r9   r   r:   resultsr   ro  r3  r   r   r   test_groupby_axis_1  s&    , .rr  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                    s   |  g dt dt dd d t dt dgd}t|j fddd	}|d
}t|| }t|j fddd	}t|| d S )N)r   r   r   r   r   r   ru  rv  rx  ry  )r  rt  c                    s   | j j S rN   rt  r  Ztz_localizerE   r$   r   r   rG   O	  rH   z+test_shift_bfill_ffill_tz.<locals>.<lambda>)rt  r  c                    s   | j j S rN   r{  rE   r$   r   r   rG   S	  rH   )r   r   Zassignr0   r   r6   r7   )Ztz_naive_fixturer/  r   ro   r9   rp   r   r   r$   r   test_shift_bfill_ffill_tz	  s    .
r|  c                  C   sD   t d gdd} | dd d}ttjgdd}t|| d S )NrM   )r   rF   r   rF   rP   r8  )r   r0   rk   r   r4   r   r6   ri   )r9   r*  r   r   r   r   test_groupby_only_none_groupW	  s    r}  c                  C   sL   t g dg dd} | jdd}| }t g dg dd}t|| d S )N)r"   r!   r  r   )r   r   r   r  r(   r   rz  )r"   g      @r   )r   r   r  )r   r0   r\   r6   ri   )r8   r:   r   r   r   r   r   test_groupby_duplicate_indexa	  s
    r~  c                 C   s  t dtdddggg dd}|d t|d< |d t|d< |d	d
g}| dkr^d}nd}| dkrntnd }d}tj||d4 |jd d 	d	gj
| g|R  }W d    n1 s0    Y  tj||d4 |	d	gj
| g|R  jd d }W d    n1 s0    Y  | dv r0|t}t|| d}tj||d8 |d jd d 	d	gj
| g|R  }W d    n1 s0    Y  d}tj||d8 |d 	d	gj
| g|R  jd d }W d    n1 s0    Y  | dv r|t}t|| d S )NrM   r=  rB   r   )col_1col_2col_3col_4ro   r   r  r  r  r  fillna)rz  r   %DataFrameGroupBy.fillna is deprecatedrK   r   )diffrs  z"SeriesGroupBy.fillna is deprecated)r   r   ry   rE  r   rf   r6   re   r/   r0   rk   rR  )Ztransformation_funcrequestr9   argsr   warn_msgr   r   r   r   r   test_group_on_empty_multiindexk	  s\    BD

""

r  c                 C   s  t dddd}tddgddgddgd}d	|j_||_|| }|sR|j}d
}nd}tjt	|d |j
|dd}W d    n1 s0    Y  | }tddgddgd|d}d|j_|s|j}t|| |dkr(tjt	|d" |g  j
|dd}W d    n1 s0    Y  |g  }	nVtjt	|d$ |jg  j
|dd}W d    n1 sb0    Y  |jg  tj}	| }
t|
|	 d S )Nr@  r"   r~   )r    r[   rM   rB   r   )r  )r   r&   )r   r   )r   r}  r  r  rK   )r   r   )r   r   r(   r   )r   r   r   r   r)   Z_get_axis_numberr   r6   re   rf   r0   Znuniquer[   r7   r   ry   r4   r?   )r   r[  r9   Zaxis_numberrs   r:   r   r   r.  r5  r   r   r   r   test_groupby_crash_on_nunique	  s4    
,
2
4r  c                  C   s>   t tddddtd} | jdgd }t||  d S )Nr   rA   rB   r   rz  )	r   r4   r5   r  r   r0   r\   r6   r7   )r   r   r   r   r   test_groupby_list_level	  s    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], ...})rM   z{0: [0], ...}c                 C   s   t tjdd}|j|d< td| P |dj	
 }||ksJJ |t|jj	
 }||ksnJ W d    n1 s0    Y  d S )Nr"   )r!   rM   r   zdisplay.max_seq_items)r   r4   r`   ra   r   r)   r+   option_contextr0   r   __repr__r   r   )Zmax_seq_itemsr   r9   r   r   r   r   test_groups_repr_truncates	  s    

r  c                  C   s   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d
i}t|dksfJ d}|| || k sJ d S )NrM   r"   c   r   X   r   r   r   r   r   )	r   r   r0   r   r4   r   r=   rd   r   )r9   r   r   r   r   r   r   r   6test_group_on_two_row_multiindex_returns_one_tuple_key	  s    r  zklass, attr, valuer   r  rJ   rI  r  c                 C   sr   t dgdgdgd}|dkr(|d}|jdi ||i}| t u rN|dg n|d }t||t||ksnJ d S )	NrM   r"   rB   r   r   r   r   )r   )r   r   r0   r   )ru  rT  r   r9   r   r   r   r   r   #test_subsetting_columns_keeps_attrs	  s    
r  c                  C   s   t dgdgdgd} d}tjt|d" | jg ddd}W d    n1 sP0    Y  d	}tjt|d  |d
dg   W d    n1 s0    Y  d S )NrM   r"   rB   r*   r  rK   r~  r   z'Cannot subset columns when using axis=1r   r   )	r   r6   re   rf   r0   rl   rm   re  rP   )r9   rs   r   rL   r   r   r   test_subsetting_columns_axis_1
  s    0r  r  )rP   anyrs  c                 C   sH   t dgdd}tdgg|d}|dg}t||  j}t|| d S )Nr   r  r8  rM   r7  )r
   r   r0   r   r   r6   rg  )r  r   r9   r   r   r   r   r   #test_groupby_column_index_name_lost
  s
    r  infer_stringpyarrow)Zmarksc                 C   s   | rt d tg dg dg ddt}g d|_td| " |g d	 }W d    n1 sn0    Y  tg d	gt
d
gg dtd}t|| d S )Nr  )r   r   r   r  r  r#  r*   )r   r   r   zfuture.infer_string)r   r   r   r   )r   r   rM   r   )r)   r   r<   )rl   Zimportorskipr   ry   r   r   r+   r  r0   ro  r4   r   r6   r7   )r  r9   r   r   r   r   r   test_groupby_duplicate_columns
  s    	

0r  c                  C   s\   t g dg ddd} d| j_| jdd }t dd	gd
dgdd}d|j_t|| d S )Nr#  r"  )r   r   r)   r[   )r   r   r   rz  r"   r   rM   )r   r)   r[   r0   lastr6   ri   )r8   r   r   r   r   r   #test_groupby_series_with_tuple_name3
  s    r  zfunc, valuesrP        @X@     X@r\   g     @8@g     8@c                 C   s`   g d}t ddgd ||d}t|d|  }t ||dtddgddd	}t|| d S )
N 7yACr  a   b    7y1r  r  r  rM   r"   r   r   r   r   r   r   r8  r(   )r   r   r0   r
   r6   r7   )r  r   ro   r9   r   r   r   r   r   )test_groupby_numerical_stability_sum_mean=
  s
    r  c                  C   sr   g d} t ddgd | | d}|d }dgd dd	g d
dg ddg }t ||d}tj||dd d S )Nr  rM   r"   r   r  r   r  g07yACg17yACga7y1Cgb7y1Cr  r  r   T)Zcheck_exact)r   r0   r9  r6   r7   )ro   r9   r   Zexp_datar   r   r   r   'test_groupby_numerical_stability_cumsumI
  s     r  c                  C   sz   t jdd} t| }tdD ]}t j|j||f< q"d|d< |d}|j	dd}|g d j	dd}t
|| d S )	Nr"   )r!   r!   r!   rM   r   Fskipnar  )r4   r`   ra   r   r   r2   r   r/   r0   r9  r6   r7   )r  r9   ir:   r   r   r   r   r    test_groupby_cumsum_skipna_falseU
  s    
r  c                  C   s   t ddd} t| | d  }tj|d< td|d}|d}|jd	d
d}td|d |d tj|d |d d gi}t|| |jd	d	d}td|d |d tjtjtjgi}t|| d S )Nr@  r!   r   r   r"   rM   r  r   FT)r	  r  r   r   )	r   r   r+   r.   r   r0   r9  r6   r7   )r[  r8   r9   r:   r   r5  r   r   r   test_groupby_cumsum_timedelta64e
  s    

,$r  c                 C   s4   | }|j dd }| |j }t|| d S )Nr   rz  )r0   r\   r)   r6   ri   )Z(rand_series_with_duplicate_datetimeindexZdupsr   r   r   r   r   !test_groupby_mean_duplicate_indexw
  s    r  c                  C   sT   t g dtjtjtjg} | | j }t g tg tjdtjd}t	
|| d S )Nr   r   rC   )r   r4   r   r0   r)   rP   r
   r?   r=   r6   ri   r  r   r   r   r   r    test_groupby_all_nan_groups_drop~
  s    r  c                 C   s   t g g dd}|jddg| d}|j|d}| r\tg g gg g gddgd}|sVdgng }ntd	}|spg dnddg}t g ||d
}t|| d S )Nr*   r  r   r   r   r  r0  r&   r   r   )r   r0   rP   r   r   r6   r7   )r   r	  r9   r:   r   r)   r   r   r   r   r   test_groupby_empty_multi_column
  s    r  c                  C   s   t ddggddggddggddgggddgd} t dddgddggitddgd	dd
d}| jdgd}| }t|| d S )NrM  rM   WrW   rX   ZMWrr   r7  r   r<   r[   r(   r  )r   r
   r0   rP   r6   r7   r9   r   r:   r   r   r   r   *test_groupby_aggregation_non_numeric_dtype
  s    (r  c                  C   s   t g ddd tddD dd tddD d} t dd td	d
D dd td	d
D dtddgdddd}| jdgd}| }t|| d S )NrM   r   rM   rM   r   c                 S   s   g | ]}t |d qS daysr   r   r  r   r   r   r   
  rH   zDtest_groupby_aggregation_multi_non_numeric_dtype.<locals>.<listcomp>rM   r  c                 S   s   g | ]}t |d  dqS rW   r  r  r  r   r   r   r   
  rH   r$  c                 S   s   g | ]}t |d qS r  r  r  r   r   r   r   
  rH   rQ   rA   c                 S   s   g | ]}t |d  dqS r  r  r  r   r   r   r   
  rH   r   r%  r   r=   rF   r  r(   r  )r   r2   r
   r0   rP   r6   r7   r  r   r   r   0test_groupby_aggregation_multi_non_numeric_dtype
  s    r  c                  C   s   t g d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d}| jdgd}| }t|| d S )Nr  c                 S   s   g | ]}t |d qS r  r  r  r   r   r   r   
  rH   zKtest_groupby_aggregation_numeric_with_non_numeric_dtype.<locals>.<listcomp>rM   r  r$  rQ   r  r   r  r   r=   rF   r  r(   r  )	r   r2   r1   r   r
   r0   rP   r6   r7   r  r   r   r   7test_groupby_aggregation_numeric_with_non_numeric_dtype
  s    r  c                  C   s   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dd}t|| d S )NFTg      %@)
filter_colgroupby_colbool_col	float_colg     4@g     >@r  r  )r  r  g$+H@)r  r  r  r8  r   )r   r0   r3   r
   r6   r7   )Zdictsr9   Z	df_filterdfgbr   r   r   r   r   test_groupby_filtered_df_std
  s    
r  c                  C   s   t ttdttg dddtjg dddgdd	} | jd
dgddj}d
tdft	
dgdtdft	
dgdtdft	
dgi}||ksJ d S )Nabc)rZ  z
2018-02-01z
2018-03-01categoryr   )r'   r   rM   r   rM   )
categoriesr   r   r   FrI  z2018-01-01 00:00:00z2018-02-01 00:00:00r   z2018-03-01 00:00:00r"   )r   r   r1   r   r   Z
from_codesr0   r   r   r4   r   r<  r   r   r   2test_datetime_categorical_multikey_groupby_indices
  s    


r  c                  C   s   dgd dgd  } t jt jdddgt jddddg }t| |gj}dd	g|_d
}tjt|d, |dd	 j	ddd
  W d    n1 s0    Y  d S )NZAlicer!   ZBobrM   r"   rB   r   r[   r  z<__init__\(\) got an unexpected keyword argument 'min_period'rK   )ZwindowZ
min_period)r4   r   r   r   r   rl   rm   r-  r0   ZrollingrP   )Zname_lZval_lZtest_dfZresult_error_msgr   r   r   #test_rolling_wrong_param_min_period
  s    "
r  r  c                 C   sx   t g dg dtg d| dd}tjdd}|dg|}t d	d
gd	gddgddgdd}t|| d S )N)Thomasr  Thomas John)i  i    )sadhappyr  r   )NameCreditMoodrP   )r  r  r  r  r  i	  r  r  r  )r  r  r  )r   r   moder0   rh   r   r6   r7   )r<   r9   Zaggregate_detailsr   Zexpected_resultr   r   r   .test_by_column_values_with_same_starting_value  s"    	
r  c                  C   sn   g dg dg} t dtj| ddgdd}|jddgd	 }t dd
gtjddgddgd}t|| d S )N)NrM   r   rM   )r"   rB   r"   rB   rM   r   r   r0  r(   r   rz  r"   )r  r"   )r   rB   )r   r   rf  r0   rP   r2  r6   ri   )r  r8   r   r   r   r   r   #test_groupby_none_in_first_mi_level&  s    r  c                  C   sd   t g dg dg dd} | jd gd }t ddgdd	gd
tddgd dd}t|| d S )Nr"  )rM   rM   r"   rB   )r   r!   r  rQ   )Nr   r   r  r"   r!   rA      r  rM   r8  r(   )r   r0   rP   r
   r6   r7   r<  r   r   r   test_groupby_none_column_name1  s    &r  	selectionc                 C   sr   t ddgtjdgtjdgdddgd}| d u r<|dgn|dg|  }d	d
 |D }ddg}||ksnJ d S )NrM   r"   r!   r   rF   r   r(   r   c                 S   s   g | ]\}}|qS r   r   r   r   r  r   r   r   r   >  rH   z5test_single_element_list_grouping.<locals>.<listcomp>rM   )r"   )r   r4   r   r0   )r  r9   rp   r   r   r   r   r   !test_single_element_list_grouping9  s
    ($r  c                  C   sv   t g dg dd} | d d| d< t g dg dd}|d d|d< | jddd	}| }t|| d S )
N)r   r   r   r   )rM   r"   rB   r"   )str_colZnum_colr  stringr   )r  r   r,  Fr   )r   ry   r0   r\   r6   r7   )r9   r   rp   r   r   r   r   test_groupby_string_dtypeD  s    
r  zlevel_arg, multiindex)r   F)r  Tc                 C   s   t ddgddgddgddd	gd
}|r6|ddg}d}tjt|d& dd |j| dD  W d    n1 st0    Y  d S )NrM   r"   rB   r   r!   r  r   rF   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.rK   c                 S   s   g | ]\}}|qS r   r   r  r   r   r   r   g  rH   zKtest_single_element_listlike_level_grouping_deprecation.<locals>.<listcomp>rz  )r   r   r6   re   rf   r0   )Z	level_argr   r9   r   r   r   r   7test_single_element_listlike_level_grouping_deprecationX  s    $r  )rP   r9  cumprodrq  c                 C   sj   d}t d|gd}t|d|  | }t ddgitdgddd}| d	v rZ|jd
d}t|| d S )Nl   L33ffrM   r   r   r   r   r8  r(   )r9  r  TrL  )r   r   r0   r
   rQ  r6   r7   )r  r  r9   r   r   r   r   r   #test_groupby_avoid_casting_to_floatj  s    r  z	func, val)rP   rB   )rq  r"   c                 C   s\   t dddtjgd| d}t|d| }t d|gitdgd| d| d}t|| d S )	NrM   r"   r   r   r   r   r  rC   )r   r+   NAr   r0   r
   r6   r7   )any_numeric_ea_dtyper  r  r9   r   r   r   r   r   test_groupby_sum_support_maskv  s    r  z
val, dtype)o   rE  )   Zuintc                 C   s   t d| | gd| dd}|d }t d| d gitdgd| dd| d	d
}t|| |d }t d| | d gi| d	d}t|| |d }t d| |  gitdgd| dd| d	d
}t|| d S )NrM   r   8r   r   r   r"   r  Z64rC   )r   r0   rP   r
   r6   r7   r9  rq  )r  r<   r9   r   r   r   r   r   test_groupby_overflow  s$    r  zskipna, val)TrB   c                 C   sT   t ddtjdgd| d}|dj|d}t ddtj|gi| d}t|| d S )NrM   r"   r   r   r   r  r   )r   r+   r  r0   r9  r6   r7   )r  r  r  r9   r   r   r   r   r   test_groupby_cumsum_mask  s    r  zval_in, index, val_out)r   r   r,  r   r  )r~   r~   r   r}  blah)r,  r   r  r,  )r   r   r,  r   r  g      @)r~   r~   r   r}  r  r  )r,  r   g      &@r,  c                 C   st   t | dt|ddd}|d }t |dtg dddd}t|| | d }| }t|| d S )Nr   r  r8  )ro   r[   r)   )r   r}  r  r~   )r   r
   r0   rP   r6   ri   r,   r7   )Zval_inr)   Zval_outZseriesr   r   r   r   r   (test_groupby_index_name_in_index_content  s    r  r-  )rM   rW       rG  r  c                 C   s`   t ddg|  d}|d d|d< |d }t d| gitdgddd}t|| d S )NrM   T)r  rD  rD  r  r8  r(   )r   eqr0   rP   r
   r6   r7   )r-  r9   r   r   r   r   r   test_sum_of_booleans  s
    r  z<ignore:invalid value encountered in remainder:RuntimeWarning)r   tailrP  r   r  c                 C   s   t dtjdtjdgtdd}| dkr@t|d| dd	}nt|d|  }| d
v r~t dg ditg ddd}nt g dg ddg dd}t	|| d S )Nr   r   r   r!   r  rP  r   r   )r-  )r   r  r   r  r   r8  r(   )
r   r4   r   r2   r   r0   r   r   r6   r7   )rF  r9   r   r   r   r   r   test_groupby_method_drop_na  s     r  c                  C   st  t jdddd} ttdd }|  }||}tjtdd |	  W d    n1 s^0    Y  tjtdd |
  W d    n1 s0    Y  tjtd	d |  W d    n1 s0    Y  tjtd
d |  W d    n1 s0    Y  | }|dd  }ttdtd|_t|| | }|d d }ttdtd|_t|| d S )Nr@  rG  r   r   rW   z+Period type does not support sum operationsrK   z.Period type does not support cumsum operationsz,Period type does not support prod operationsz/Period type does not support cumprod operationsir   )r+   period_ranger1   r2   Z	to_seriesr0   rl   rm   r-  rP   r9  rq  r  rJ  r
   rE  r)   r6   ri   ro  )piZgrpsr8   r:   r   r   r   r   r   test_groupby_reduce_period  s0    
&&&(r  c                  C   sN   t g dg} g d| _| | d }|j}| jg ddd}t|| d S )N)r   rM   r"   rB   rU  rM   )r   r"   rB   r   )r   r   r0   Z_obj_with_exclusionsr   r6   r7   )r9   r:   r   r   r   r   r   *test_obj_with_exclusions_duplicate_columns  s    
r  c                 C   s   ddddddg}t |}|jdddd}| r\|jd	d
}t ddgdgd}t|| n:tjtdd |j| d
 W d    n1 s0    Y  d S )Nr~   r   r   carZdarr   F)r   r  Tr  r7  z(could not convert string to float: 'bar'rK   )r   r0   r3   r6   r7   rl   rm   re  )r	  Zdicts_non_numericr9   r  r   expected_dfr   r   r   'test_groupby_numeric_only_std_no_result  s    r  c                  C   s   t g dg dd} tj| d tdddd}| j|d	gd
dd d}ttddddtddddtddddtddddgdd}g d}t	j
||gdd	gd}ttdtjdtjdtjdtjtjdtjtjg|dd}t|| d S )N)皙?皙?333333?皙ٿ      ?)r   r   r   r   r   )rF   wrF   r   rM   r!   r   r  Fr  r\   gDlٿr  rU  )closedr  r  r  T)rQ  r   r0  r  r  )r   r+   Zqcutr4   Zlinspacer0   rh   r   r   r   r  r   r   r   r6   ri   )r9   Zqqr   Zcategorical_index_level_1Zindex_level_2r3  r   r   r   r   /test_grouping_with_categorical_interval_columns"  sF    	r  bug_varc                 C   sV   t d| | | tjgi}|dd }|jdd}t | | | d gdgd}t|| d S )Nr   c                 S   s   | S rN   r   rE   r   r   r   rG   O  rH   z;test_groupby_sum_on_nan_should_return_nan.<locals>.<lambda>rM   )Z	min_countr7  )r   r4   r   r0   rP   r6   r7   )r  r9   r  r   r  r   r   r   )test_groupby_sum_on_nan_should_return_nanK  s
    r   )rK  ZcorrZcummaxZcumminr  r   Zrankr   r  rs  r   r  rG  r   rz  rw  Z
pct_changec                 C   sd   t dt| d}|| _| dgdg }| dg | d }t|| }t|| }t|| d S )N2014r   r   r&   )r   rd   r)   r0   r   r6   r7   )r9   rF  rngr   g_expr   r5  r   r   r   #test_groupby_selection_with_methodsV  s    r  c                 C   sT  t dt| d}d| j_|| _| dgdg }| dg | d }d}tjt|d( t	|
d|
d W d    n1 s0    Y  d	}tjt|d  t	|j|j W d    n1 s0    Y  t	|d
d |d
d  t	|d |d  t	|d |d  t	|dd |dd  d S )Nr  r   r~   r   r&   r  rK   r   z%DataFrameGroupBy.dtypes is deprecatedc                 S   s   |   S rN   rO   rE   r   r   r   rG     rH   z6test_groupby_selection_other_methods.<locals>.<lambda>r   c                 S   s   t | dkS rD   r(  rE   r   r   r   rG     rH   )r   rd   r   r[   r)   r0   r6   re   rf   r7   r  r   rj   Zresampler\   r\  r)  )r9   r  r   r  r  rs   r   r   r   $test_groupby_selection_other_methods|  s"    6.   r  c                 C   s   t g d| }tg dg d|d}tddd| d}t|g dg dd	}|td
dd}|  }t	|| 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   r,  )quantquant2time2z2016-08-31 22:08:00r  Z1min)r    r   unit)rM   rM   r   r   r   r   r   r   r   r   r   r   rM   )r  r  r  r  )r   r   )
r   Zas_unitr   r   r0   r	   rK  rQ  r6   r7   )r	  Zidx2Z	test_datar  Zexpected_outputr:   r   r   r   r   test_groupby_with_Time_Grouper  s$    r
  c                  C   sP   t g dtddddd} | |  }t ddgdd	}d|j_t|| d S )
Nrm  z
2022-01-01rB   r   janr  r"   rM   r8  )r   r   r0   rK  r)   r[   r6   ri   r  r   r   r   1test_groupby_series_with_datetimeindex_month_name  s
    r  test_serieszkwarg, value, name, warn)rC  r   rM   NrC  r  )r   r   rM   Nc           
      C   s   t dg ditg dddd}| r,|d }|jf i ||i}d}tj||d ||}W d    n1 sr0    Y  | rtd	d
gtddgdddd}	n t dd	d
gitddgddd}	t||	 d S )Nr   r?  r>  r   r8  r(   z&you will need to pass a length-1 tuplerK   rB   r   rM   r  )r   r
   r0   r6   re   r;  r   rR  )
r  kwargr   r[   r   r@  r:   rs   r   r   r   r   r   $test_depr_get_group_len_1_list_likes  s     (  r  c                  C   sJ   t ttjgdgd} | jddgddd }tdg}t|| d S )NrM   r   r   r   F)r  rI  r   )	r   r   r4   r   r0   rW  r   r6   ri   r<  r   r   r   test_groupby_ngroup_with_nan  s    
r  c                  C   s   t g dg dg dg dg dd} tjtdd" | jd	g d
d}W d    n1 s^0    Y  |d	}t g dg dd}t|| d S )N)r   rB   r"   rB   )r   rM   r  rQ   )rB   r   r"   rW   )rM   r  r  r  )r!   r  i)r  r  Zcol3Zcol4col5
deprecatedrK   rM   )rM   r"   rB   r"   rM   )r   rC  )r  r  )r   r6   re   rf   r0   r;  r7   rb  r   r   r   test_get_group_axis_1  s"    	0
r  c                  C   s`   t dddddtjtjgig dd} | jdd	 }t dg d
ig dd}tj||dd d S )Nr   rM   r"   rB   r   r  r(   r   rz  )rM   r"   rB   r   r"   rB   Fr   )r   r4   r   r0   rz  r6   r7   r<  r   r   r   (test_groupby_ffill_with_duplicated_index  s    $r  c                 C   s   t tjtrJ ttdtdd d gtdtdtdtdgd}|jddd	}| r`|d
 }|jj}t	tdd gdd}t
|| d S )NrM   r"   rB   r   r!   )r   r   r   F)r  r   r8  )r%  decimalInvalidOperationr-  r   r   r0   r  Zresult_indexr
   r6   rg  )r  r9   r:   r   r   r   r   r   test_decimal_na_sort  s    r  )r   r  r   r+  numpyr4   rl   Zpandas.errorsr   r   Zpandas.util._test_decoratorsutilZ_test_decoratorstdZpandas.core.dtypes.commonr   Zpandasr+   r   r   r	   r
   r   r   r   r   r   r   r   r   Zpandas._testingZ_testingr6   Zpandas.core.arraysr   Zpandas.core.commoncorecommonr  markfilterwarningsZ
pytestmarkr   r;   Zparametrizerv   r|   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r'  r.  r6  r=  rA  rE  rV  rZ  r[  r^  ra  rc  rf  rh  rj  rm  rp  rv  rx  ry  r{  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r'  r+  r/  r;  r?  r  r   rT  rV  rW  rX  r_  rb  rd  ri  rk  rr  r|  r}  r~  r  r  r  r  r  r  r  r  paramZ
skip_if_nor  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  r  r  r  r  r  r  r  r   r  r  r
  r  rf   r  r  r  r  r  r   r   r   r   <module>   s  8
AH5

=(07
 
C"	


	
 	-

?-	
 	1{	
,

-)









	
&	
	
)
		