o
    ҷh)                    @   s.  d dl m Z  d dlmZ d dlZd dlZd dlZd dlmZm	Z	 d dl
m  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$ d dl%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 Z0ej',dddgdd Z1dd Z2dd Z3ej',dg d d!d" Z4d#d$ Z5d%d& Z6d'd( Z7d)d* Z8d+d, Z9d-d. Z:d/d0 Z;d1d2 Z<d3d4 Z=ej',d5d6d7 d8d7 gd9d: Z>d;d< Z?d=d> Z@d?d@ ZAdAdB ZBdCdD ZCdEdF ZDdGdH ZEdIdJ ZFdKdL ZGdMdN ZHdOdP ZIdQdR ZJdSdT ZKej',dUdVdWgdXdY ZLej',dUg dZej',d[ddgd\d] ZMd^d_ ZNd`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 Zsej',ddddggdd Ztdd Zudd Zvdd Zwdd Zxdd Zydd Zzdd Z{dd Z|ej',ddddddgddggej',dddddggddǄ Z}ddɄ Z~e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jdddd֍ejd gdd؍ejd gdd؍ejdgdd؍gg dۢd܍ej',dg dޢej',d5g 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ddededededededgifdde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 Zej',deddgdd	ejd
ddgdg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/d0d1gfd2d3d4gfgd5d6 Zd7d8 Zd9d: Zd;d< Zd=d> Zd?d@ Zej',d[ddgdAdB ZdCdD ZdEdF ZdGdH ZdIdJ ZdKdL ZdMdN Zej',deejdOed(d)gdPdQ ZdRdS ZdTdU Zej',dVdddggdWdX ZdYdZ Zej',d[d gdfd\d gdfd]gd^d_ Zej',d#g d`dadb Zej',dcdddegdfdg Zej',dhdidjgdkdl Zej',dmdndejfgdodp Zej',dqg drg dsg dtfg dug dvg dwfgdxdy Zej',dzg d{d|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 Zdd ZdS (      )datetime)DecimalN)PerformanceWarningSpecificationError)Categorical	DataFrameGrouperIndexInterval
MultiIndex
RangeIndexSeries	Timedelta	Timestamp
date_rangeto_datetime)BooleanArray)get_groupby_method_argsz)ignore:Mean of empty slice:RuntimeWarningc                  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   T/var/www/html/venv/lib/python3.10/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&   )pdtimedelta_ranger   to_framer   NaTilocgroupbylistrangestdr   nparanger   tmassert_frame_equal)	tdiserdfgbr   td1td4exp_serr   r   r   r   test_groupby_std_datetimelike,   s   
 r?   dtype)int64int32float64float32c                    s8  t tdd td| d}td}tjd| ||}|jdd dd}|D ]\}}t|dks9J q-d	}t	j
t|d
 |tj}W d    n1 sTw   Y  |d dksaJ d	}t	j
t|d
 |tj}W d    n1 s{w   Y  t	|| t	||  | }	d}t	j
t|d
 |tj}W d    n1 sw   Y  t	|	| |dd }|dd }
|
d dksJ t	|
| ||}d	}t	j
t|d
 |tj}	W d    n1 sw   Y  t	j|	|dd d}t	j
t|d
 |tjtjg}W d    n	1 sw   Y  d}tjt|d
 |tjtjd W d    n	1 sAw   Y  dddd d}t	j
t|d
 | fdd}W d    n	1 sjw   Y  |d dksxJ d}tjt|d
 |dd  W d    d S 1 sw   Y  d S )N	      r)   r@   r"   c                 S   s   | d S NrF   r   xr   r   r   <lambda>O       z)test_basic_aggregations.<locals>.<lambda>F
group_keyszusing SeriesGroupBy.meanmatch   zusing SeriesGroupBy.sumc                 S      | |    S NsumrI   r   r   r   rK   d       c                 S   rR   rS   rT   rI   r   r   r   rK   e   rV         check_index_typezusing SeriesGroupBy.[mean|std]nested renamer is not supported)onetwo
         r   rQ   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 rS   )namemeanrI   group_constantsr   r   rK             zMust produce aggregated valuec                 S   s   | d S Nr"   r   rI   r   r   r   rK      rL   )r   r4   r5   randomdefault_rngshufflereindexr0   lenr6   assert_produces_warningFutureWarning	aggregaterc   aggassert_series_equalrU   apply	transformr3   pytestraisesr   	Exception)r@   datar)   groupedkvmsgaggedr   r   transformedvalue_groupedr   rd   r   test_basic_aggregationsG   sj   


$r   c           	      C   s   | j jd }| |}| }| |d }|j jtjks"J |j jtjks+J t	j
||dd | }tt||d< dd }|d|}|j}|j}t	|| d S )	Nr   OFrY   valuec                 S   s   | j | d   S )Nr   )locidxmaxgroupr   r   r   	max_value      z/test_groupby_nonobject_dtype.<locals>.max_valuer   )r)   codesr0   rU   astyper@   r4   int8rA   r6   r7   copyr2   rm   rs   dtypesrr   )	mframedf_mixed_floatsr   ry   r   r   r:   r   appliedr   r   r   test_groupby_nonobject_dtype   s   
r   c            	      C   s  t g dttdddtdddd} dd	 }| d
 dg }| d
|dg }t	|| dd }| d
|dg }|
 d}tj|jd< t	|| dd }| d
|dg }|
 ddi}tj|jd< t	|| dd }| d
|dg }| d
 dg }tj|jd< t	|| dd }| d
|}| d
 d 
 }tj|jd< d |_t|| d S )N)Tigerr   r   Lambr   Ponyr   rW   rA   r@   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   c                 S      | j dkrd S | jd S )Nr   r   rb   r/   r   r   r   r   f_1      

z*test_inconsistent_return_type.<locals>.f_1rC   r   c                 S   r   Nr   r   r   r   r   r   r   f_2   r   z*test_inconsistent_return_type.<locals>.f_2floatr   c                 S   r   r   r   r   r   r   r   f_3   r   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&   )rb   r/   r   r   r   r   r   f_4   s   
z*test_inconsistent_return_type.<locals>.f_4)r   r   r4   r5   r   r0   firstrs   r6   r7   r   r   nanr   r+   r.   rb   rr   )	r:   r   r   r   r   er   r   r   r   r   r   test_inconsistent_return_type   s>   
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 sw   Y  tj
||d |tjd	}W d    n1 sw   Y  tj
||d |d	}W d    n1 sw   Y  tj||dd t|| |tjdd	g}tj
||d |dd	g}W d    n	1 sw   Y  tj||dd tj
||d |j|dd
}W d    n	1 s5w   Y  tj
||d |jtjd	d
}W d    n	1 sUw   Y  t|| tj||dd qpd S )Nr   c                 S   s   t j| ||dS )Naxisr4   
percentile)rJ   qr   r   r   r   f      z test_pass_args_kwargs.<locals>.fc                 S   s   t j| dddS )NP   r   r   r   rI   r   r   r   rK          z'test_pass_args_kwargs.<locals>.<lambda>c                 S      | j S rS   monthrI   r   r   r   rK          r   r   皙?r   )TFc                 S   r   rS   r   rI   r   r   r   rK      r   as_index*A grouping .* was excluded from the resultrO   Fcheck_namesg?r   )r0   rq   r4   r   rs   rt   quantiler6   rr   ro   rn   r   r7   )tstsframer   g
ts_grouped
agg_resultapply_resulttrans_resultagg_expectedtrans_expectedr   
df_groupedwarnr|   r   expected_seqr   r   r   test_pass_args_kwargs   s\   


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 s1w   Y  | | jj	d
k 
d| | jj	dk 
dd}t|j}|s[ttd|_t|| d S )N)r   r   r   r&   c                 S   r   rS   r   rI   r   r   r   rK     r   z9test_pass_args_kwargs_duplicate_columns.<locals>.<lambda>r   r   rO   r   r   r   rQ   r   r"   rQ   r"   )columnsr0   ro   r6   rn   rq   r4   r   r)   r   r   r   Tr	   r2   r7   )r   r   r;   r   r|   resex_datar   r   r   r   'test_pass_args_kwargs_duplicate_columns  s   

r   c                  C   s   t  } | dd dd dd g}t|t| ksJ | dd dd g}tdd | jD }t||ks9J ttjgd	 g d
d} t| ddksQJ t| dd	ks\J t| ddgd	ksiJ d S )Nc                 S   r   rS   yearrI   r   r   r   rK   .  r   ztest_len.<locals>.<lambda>c                 S   r   rS   r   rI   r   r   r   rK   .  r   c                 S   r   rS   dayrI   r   r   r   rK   .  r   c                 S   r   rS   r   rI   r   r   r   rK   1  r   c                 S   r   rS   r   rI   r   r   r   rK   1  r   c                 S   s   h | ]}|j |jfqS r   )r   r   .0rJ   r   r   r   	<setcomp>2  s    ztest_len.<locals>.<setcomp>rF   rQ   r"   rF   abr   r   r   )r6   makeTimeDataFramer0   rm   r)   r   r4   r   )r:   ry   r   r   r   r   test_len,  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>>      z)test_basic_regression.<locals>.<listcomp>rQ   r^   r"   iL  g      $@)r   r1   r2   r4   ri   rj   r0   rc   )r   rx   	groupingsry   r   r   r   test_basic_regression<  s
    
r   )rC   rD   rA   rB   int16r   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 )Nr^   r   foobarr(      r"   F)check_dtypec                 S   s   t t| S rS   )r   rm   rI   r   r   r   r   \  s   ztest_with_na_groups.<locals>.f      @       @)r	   r4   r5   r   onesr   r0   rq   rm   r6   rr   )r@   r)   valueslabelsry   r}   r   r   r   r   r   test_with_na_groupsG  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| }|d| }t|| d}tjt|d |d| W d    n1 s^w   Y  tjt|d |d| W d    n1 s}w   Y  tjt|d |d| W d    n1 sw   Y  tjt|d0 tj	t
|d |d| W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )Nc                 S   s^   | | j d dk d }|jr&tg gd g gd ddgd}tdg|d}|S |ddg}|S )Nr"   rQ   r   clevelsr   namesr   r   r)   )r   emptyr   r   	set_indexrJ   y
multiindexr   r   r   r   f1h  s   z,test_indices_concatenation_order.<locals>.f1c                 S   s4   | | j d dk d }|jrt S |ddg}|S )Nr"   rQ   r   r   )r   r   r   r   )rJ   r   r   r   r   f2r  s
   z,test_indices_concatenation_order.<locals>.f2c                 S   sR   | | j d dk d }|jr'tg gd g gd ddgd}tddg|d}|S |S )	Nr"   rQ   r   r   r   r   r   r   )r   r   r   r   r   r   r   r   f3z  s   z,test_indices_concatenation_order.<locals>.f3)rQ   r"   r"   r"   r   r!   rE   r   r   r   )rF   r"   r"   r"   zDThe behavior of array concatenation with empty entries is deprecatedr   z@Cannot concat indices that do not have the same number of levelsrO   )r   r2   r0   rs   r6   r7   ru   rv   AssertionErrorrn   ro   )	r   r   r   r:   df2depr_msgresult1result2r|   r   r   r    test_indices_concatenation_ordere  s4   
"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    d S 1 sXw   Y  d S )
Nc                 S      |   S rS   weekdayrI   r   r   r   rK     rL   z#test_attr_wrapper.<locals>.<lambda>c                 S   s   t j| ddS )NrQ   )ddof)r4   r3   rI   r   r   r   rK         c                 S   s   i | ]	\}}||  qS r   )describe)r   rb   gpr   r   r   
<dictcomp>      z%test_attr_wrapper.<locals>.<dictcomp>c                 S   r   rS   r   rI   r   r   r   rK     r   z-'SeriesGroupBy' object has no attribute 'foo'rO   r   )r0   r3   rq   r6   rr   r  r   r   r7   r@   ru   rv   AttributeErrorgetattr)r   ry   r   r   r|   r   r   r   test_attr_wrapper  s   
"r  c                 C   sf  |  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sTJ t|jdks]J |	dd }|D ]\}}|
 }|jD ]}	tj||	|d	d
 qqqf|D ]\}
}|jd  |
ksJ q|j}|j}| D ]\}}| j|| }||k sJ qd S )Nc                 S   r  rS   r  rI   r   r   r   rK     rL   z$test_frame_groupby.<locals>.<lambda>rc   r!   r   c                 S   s   g | ]}|  qS r   r  r   r   r   r   r     r   z&test_frame_groupby.<locals>.<listcomp>r  Fr   r`   c                 S   r  rS   r  rI   r   r   r   rK     rL   c                 S      | |    S rS   rc   rI   r   r   r   rK     rV   c                 S   r  rS   r  rI   r   r   r   rK     rL   r   )r0   rp   rm   r   r   r)   r6   r7   headrt   rc   rr   xsr  groupsindicesitemstakeall)r   ry   
aggregatedtscopystraggedr~   rb   r   rc   idxr  r  r  rz   r{   	samethingr   r   r   test_frame_groupby  s4   

r  c           	      C   s  ddddd}d}t jt|d | j|dd}W d    n1 s"w   Y  |d}t|t| ks6J t|jdks?J d	d
 }d}t jt|d | jj|dd}W d    n1 s_w   Y  t |	|j|	| |D ]\}}t|jdksJ qsd S )Nr   rQ   r   r   r&   D+DataFrame.groupby with axis=1 is deprecatedrO   r   rc   r"   c                 S   r  rS   r  rI   r   r   r   rK     rV   z,test_frame_groupby_columns.<locals>.<lambda>5The 'axis' keyword in DataFrame.groupby is deprecated)
r6   rn   ro   r0   rp   rm   r   r   r7   rt   )	r   mappingr|   ry   r  tfgroupedTrz   r{   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s&J |ddg d}|jjdks7J |dd	d
}|jjdksGJ |d  }|jjdksUJ |d d}|jjdksdJ |d dd	g}|jjdksuJ d}tjt|d |d dd	d W d    d S 1 sw   Y  d S )Nr   Tnumeric_onlyFr   r&   r  rc   r3   r&   r  r[   rO   r   r   )r0   rc   r)   rb   rq   ru   rv   r   )r:   ry   r   r|   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)r\   r]   threefourfivesixr(   r0  r1  rU   )r0   getrc   r6   r7   r   r   r4   ri   rj   standard_normalarrayrq   )r:   col1col2ry   r}   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&   rc   r3   )rc   r3   )r0   rq   r   r6   r7   )r:   ry   r}   r   r   r   r   !test_multi_key_multiple_functions-  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sWJ t	|j
ts_J t|| d S )N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  EFr   r   rc   r3   r  r@  rA  )r  r@  rA  rQ   )keysr   )r   r4   ri   rj   r7  r0   rq   r+   concat
isinstancer)   r   r6   r7   )rx   ry   funcsr}   r   r   r   r   "test_frame_multi_key_function_list5  s&   "
&rF  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    d S 1 sNw   Y  d S )Nr=  r>  )dullrG  shinyrG  rG  rH  rH  rG  rH  rH  rH  r"   r?  )r   r   r&   r  r@  rA  r   r   rc   r3   -agg function failed [how->mean,dtype->object]rO   )r   r4   ri   rj   r7  r0   reescaperu   rv   	TypeErrorrq   )rx   ry   rE  r|   r   r   r   2test_frame_multi_key_function_list_partial_failuree  s   /
"rM  opc                 C   r  rS   rT   rI   r   r   r   rK     rL   rK   c                 C   r  rS   r  rI   r   r   r   rK     rL   c              	   C   s"  | }| ddg}||}g }g }| dD ]%\}}| dD ]\}	}
|||	f |||
jd d ddgf  qqtj|ddgd}tj|ddj}||_dD ]}||| }|| }|| }t	
|| t	
|| qR|d  |d |d g }| ddg d }t	
|| d S )	Nr   r   r&   r  r   rQ   r   r&  )r0   appendr   r   from_tuplesr+   rC  r   r)   r6   rr   rc   )r:   rN  rx   ry   r   rB  r   n1gp1n2gp2mir   col
result_colpivotedexpr   r   r   r   test_groupby_multiple_columns  s,   "r[  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 )NrQ   r"   r   r!   r)  r   r   r   Fr   rb   T)r   rN   c                 S   r  rS   )cumsumrI   r   r   r   rK     rL   z-test_as_index_select_column.<locals>.<lambda>)r"   r)  r)  ))r   r   )r   rQ   r   rb   r)   )	r   r0   	get_groupr   r6   rr   rs   r   rQ  r:   r   r   r   r   r   test_as_index_select_column  s   "rb  c                  C   s   d} t g dg dd}|j|djd }tjt| d |djd|d}t	|| W d    d S 1 s<w   Y  d S )	Nzobj is deprecated)rQ   rQ   r"   )rF   r   r!   r   r   r   rO   )obj)
r   r/   r0   r  r6  r6   rn   ro   r`  r7   )r   r:   r   r   r   r   r   !test_obj_arg_get_group_deprecated  s   "rd  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*   alphar]  r\  r   F)byr   r   r$  r"   r   r   )	r   r	   r0   rU   r   r2   r   r6   r7   )r:   leftr   r   r   r   0test_groupby_as_index_select_column_sum_empty_df  s
   
rh  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 s\w   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 sw   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w   Y  tjt|dd |  |	t}W d    n	1 s1w   Y  t|| dD ](}| j |	dd}
t|
| }| j |	jdd}
t|
| jdd}t|| q>d S )Nr   Fr   r&   r  rc   Tr$  rU   r&  r[   rO   Qr   r\  z7Passing a dictionary to SeriesGroupBy.agg is deprecatedr"   r   d   )2   rF   )jimjoejolier!   r^   rk  rl  r]  z:The behavior of DataFrame.sum with axis=None is deprecated)rP   check_stacklevel)rc   maxcountr   r^  r  drop)r0   rq   rc   r6   r7   rU   ru   rv   r   r   renamern   ro   r4   ri   rj   integersr   nthrs   r  r   reset_index)r:   ry   r   r   r   	expected2r|   	expected3result3r   grr   altattrrg  rightr   r   r   test_groupby_as_index_agg  sd   


r  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r0|	d}|
 }| dkrD|d |d j|d< |jddd}t||  }t|| || }t|| t|d	 |  }t|| |d	 | }t|| d S )N)corrwithrv  ngroupz!GH 5755: Test not applicable for r"   r   r!   )rj  r"   )sizer   r   r\  r  Fr   )ru   skipr   r4   ri   rj   ru  r  r0   rt  rw  r   r@   r6   r7   rq   )reduction_funcr:   r   r   r   r   r   r   test_ops_not_as_index%  s(   

r  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s,J t|| |d d}|djd d g df }t|tsNJ t|| |d  }| jd d ddgf }t|tsnJ t|| |d  }| jd d g df }t|tsJ t|| d S )Nr   Fr   r   r&   rU   r*   )r0   rq   r   rD  r   r6   r7   rU   )r:   ry   grouped2r   r   r   rx  r   r   r   !test_as_index_series_return_frameG  s$   r  c                 C   sT   | j ddd}d}tjt|d |d d W d    d S 1 s#w   Y  d S )Nr   Fr   zColumn\(s\) C already selectedrO   r&   r  )r0   ru   rv   
IndexError__getitem__)r:   ry   r|   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   rQ   )r0   rc   insertr)   r   rm   r6   r7   r1   zipr   )r:   rx   ry   r   r   arraysr   r   r   test_groupby_as_index_cythoni  s   r  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   rq   rm   r   r6   r7   r:   ry   r   r   r   r   r   #test_groupby_as_index_series_scalar  s   r  c              	   C   s   d}t jt|d |jdd dd W d    n1 sw   Y  d}d}t jt|d2 tjt|d | jd	d dd
d W d    n1 sJw   Y  W d    d S W d    d S 1 sbw   Y  d S )Nz(as_index=False only valid with DataFramerO   c                 S   r  rS   r  rI   r   r   r   rK     rL   z.test_groupby_as_index_corner.<locals>.<lambda>Fr   z$as_index=False only valid for axis=0r  c                 S   r  rS   )lowerrI   r   r   r   rK     rL   rQ   )r   r   )ru   rv   rL  r0   
ValueErrorr6   rn   ro   )r:   r   r|   r   r   r   r   test_groupby_as_index_corner  s   "r  c                  C   s   t  } | dd dd dd g}| }t | j|j d}t jt|d | jjdd dd d	d gd
d}W d    n1 sCw   Y  |	dd }t 
|j| j t | jj|j |	dd }t | jj|j d S )Nc                 S   r   rS   r   rI   r   r   r   rK     r   z+test_groupby_multiple_key.<locals>.<lambda>c                 S   r   rS   r   rI   r   r   r   rK     r   c                 S   r   rS   r   rI   r   r   r   rK     r   r  rO   c                 S   r   rS   r   rI   r   r   r   rK     r   c                 S   r   rS   r   rI   r   r   r   rK     r   c                 S   r   rS   r   rI   r   r   r   rK     r   rQ   r   c                 S   r  rS   rT   rI   r   r   r   rK     rL   c                 S   r  rS   rT   rI   r   r   r   rK     rL   )r6   r   r0   rU   assert_almost_equalr   rn   ro   r   rq   assert_index_equalr)   r   )r:   ry   r}   r   r   r   r   test_groupby_multiple_key  s   r  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   rc   r6   r7   )r:   r}   r   r   r   r   test_groupby_multi_corner  s   

r  c                 C   s  |  d}td}tjt|d |d W d    n1 s!w   Y  tjt|d |  W d    n1 s<w   Y  | jd d g df } t	
 | d< |  d}d}tjt|d |d W d    n1 spw   Y  tjt|d |  W d    n1 sw   Y  d	}tjt|d | j d
d
ddddd}W d    n1 sw   Y  d}tjt|d |dd  W d    d S 1 sw   Y  d S )Nr   rI  rO   rc   r   r&   r  r@  z/datetime64 type does not support sum operationsrU   r  r   rQ   )r   r&   r  r@  r   z does not support reduction 'sum'c                 S   s   | j dddS )Nr   Fr$  rT   rI   r   r   r   rK     r  z)test_raises_on_nuisance.<locals>.<lambda>)r0   rJ  rK  ru   rv   rL  rq   rc   r   r   nowrU   r6   rn   ro   )r:   ry   r|   r   r   r   r   test_raises_on_nuisance  s4   




"r  agg_functionrp  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   )r:   r  ry   r   r   r   r   r   test_keep_nuisance_agg  s   
$$r  )rU   rc   prodr3   varsemmedianr%  c           
      C   s   |  d}d}||v rC|sC|dv rt}d}nt}td| d}tj||d t|||d W d    d S 1 s<w   Y  d S t|||d}|sV|d	krVg d
}ng d}t| jd d |f  d||d}	t	
||	 d S )Nr   )r  r3   r  rc   r  r  )r3   r  z(could not convert string to float: 'one'zagg function failed [how->z,dtype->object]rO   r$  rU   r  r  )r0   r  rL  rJ  rK  ru   rv   r  r   r6   r7   )
r:   r  r%  ry   no_drop_nuisanceklassr|   r   r   r   r   r   r   test_omit_nuisance_agg  s&   
"
r  c                 C   sF   |  d}tjtdd |  W d    d S 1 sw   Y  d S )Nr   zcould not convertrO   )r0   ru   rv   r  skew)r:   ry   r   r   r   $test_raise_on_nuisance_python_single   s   

"r  c                 C   s   |  ddg}td}tjt|d |d W d    n1 s#w   Y  tjt|d |  W d    d S 1 s?w   Y  d S )Nr   r   rI  rO   rc   )r0   rJ  rK  ru   rv   rL  rq   rc   )three_groupry   r|   r   r   r   &test_raise_on_nuisance_python_multiple  s   

"r  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sjJ d S )Nr*  r+  r   r   rF   r"   r)  )r0  r1  k3r.  r/  r0  r1  r.  r/  rc   Tr$  r!   r   r   c                 S   r  rS   r  rI   r   r   r   rK   "  rL   z*test_empty_groups_corner.<locals>.<lambda>r   r   )r   r4   r8  ri   rj   r7  r0   rq   rc   r6   r7   rs   rr   r)   rb   )r   r:   ry   r   r   r}   agged_Ar   r   r   test_empty_groups_corner  s"   

r  c                  C   sP   t dg} d}tjt|d | dd  W d    d S 1 s!w   Y  d S )Nr   z5unsupported operand type\(s\) for \+: 'int' and 'str'rO   c                 S   s   | d S )Nr   r   rI   r   r   r   rK   ,  rL   z$test_nonsense_func.<locals>.<lambda>)r   ru   rv   rL  r0   )r:   r|   r   r   r   test_nonsense_func(  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 s4w   Y  |j
dd|	d}t|jtsMJ dd	 }tjtd
d ||| W d    d S 1 slw   Y  d S )Npeekaboo)bazr]   r   r   rQ   rI  rO   rc   r\  c                 S   s   | j dkr	td|  S )N)r   r\   Test error message)rb   rL  rU   )r9   r   r   r   aggfun:  s   
z5test_wrap_aggregated_output_multindex.<locals>.aggfunr  )r   r4   r8  rJ  rK  ru   rv   rL  r0   rq   rs  rD  r   r   rp   )r   r:   rB  r|   r}   r  r   r   r   %test_wrap_aggregated_output_multindex/  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s2J d S )Nr   r  r   rQ   secondr   )r0   rq  r)   rb   )r   r   r   r   r   test_groupby_level_applyC  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   rQ   )r   r   r  qux)r\   r]   r2  r  c                       g | ]}  |qS r   r6  r   )mapper0r   r   r   W      z-test_groupby_level_mapper.<locals>.<listcomp>r   r   c                    r  r   r  r   )mapper1r   r   r   Z  r  r  )r   r  )
rw  r0   rU   r4   r8  rA   r)   rb   r6   r7   )r   	deleveledresult0r   mapped_level0mapped_level1	expected0	expected1r   )r  r  r   test_groupby_level_mapperM  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 sow   Y  tjt	|d | jdd	 W d    n1 sw   Y  d}tjt	|d | jg d	 W d    n1 sw   Y  d}tjt	|d | jddgd	 W d    n1 sw   Y  tjt	|d | jddgd	 W d    n1 sw   Y  d}tjt	|d | jdgd	 W d    d S 1 sw   Y  d S )N)rQ   r"   rF   r^   r   r!   r_   r)  )rQ   r"   rF   rQ   r   r!   r"   r)  r   r]  )r?     rF   r   r!   r)  rQ   rW   r   r  r'   z2level > 0 or level < -1 only valid with MultiIndexrO   zNo group keys passed!z*multiple levels only valid with MultiIndex)
r   r	   r2   r0   rU   r6   rr   ru   rv   r  )sr   r   r|   r   r   r   test_groupby_level_nonmultid  s@   $r  c                  C   sB   t tdd g dd} t d}| jdd }t|| d S )Nr         ?       @)r   r   rQ   rQ   rx   r)   )r  y      @      $@r   r  )r   r4   r5   r0   rU   r6   rr   )r   r   r   r   r   r   test_groupby_complex  s   r  c                  C   s   t dddddddddg} t tjg dtjdtg dd	d
tdgddd}| jd	dd }t|| tg dd	d
|_	| jd	dd }t|| d S )NrQ         ?      ?r   r  r   )rQ   rQ   rQ   r   )r  r        ?        r   r]  r   objectr)   r   Fsort)r  r  r  T)
r   r4   r8  rA   r	   r0   rq  r6   r7   r)   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   rc   rl   r)   r6  r6   rr   )s1s2ry   r}   rZ  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 sPw   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 sw   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  )r\   r]   r\   r]   r\   r]   r\   r]   ))r   cat)r   dog)r   r  )r   r  r"   )   r   r  r   r  r  rO   rQ   )r   r   rc   c                 S   r  rS   r  rI   r   r   r   rK     rL   z0test_groupby_with_hier_columns.<locals>.<lambda>c                 S   s
   |  dS )NrQ   r  rI   r   r   r   rK        
 r   r   r   )r   r   Tr$  r'   )r1   r  r   rQ  r   r4   ri   rj   r7  r0   rc   r6   r  r   rn   ro   r)   rq   rs   r	   	sortlevel)	tuplesr)   r   r:   r   r   r;   sorted_columns_r   r   r   test_groupby_with_hier_columns  sH   
r  c                 C   s@   |  | d j}| }|  | d d  }t|| d S )Nr   )r0   r   rU   rt  r6   r7   r  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   rQ   r"   rF   r   r)   r]  )foo1r  foo2r  foo3)bar1bar2r  r  r  )baz1r  r  baz2r  )spam2spam3r  spam1r  )r_   r`   (   rk  <   )r   r   r  spamrx   r(   )r   r   r  r  rc   )r	   r   r0   rq   rc   r6   r7   )r)   rx   ry   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 s&J |  | d | d g }| j | d | d gdd }|jjdksJJ d|v sPJ d|v sVJ d S )Nr   Tr$  Fr   r   r   r   )r0   rc   r)   rb   r   )r:   r   r   r   r   r   test_groupby_series_with_name  s   r  c                 C   sR   |  dd }| jdksJ | jdksJ dd }||jdks'J d S )Nr   r&   c                 S   s   t | d S rh   )r4   rU   rI   r   r   r   rK     r  z.test_seriesgroupby_name_attr.<locals>.<lambda>)r0   rq  rb   rc   rq   )r:   r   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 )N)r   r   r   r   r   r   r   r   )r\   r\   r]   r]   r]   r]   r\   r]   r"   r  r   r  r   )r   r4   ri   rj   r7  r5   r0   r   rq  r   r6   rr   r  r   r   r   test_consistency_name  s   	r  c                 C   sx   ddd}dd }|  d|}|jjd u sJ |  d|d}|jjdks*J |  d|}|jjd u s:J d S )Nc                 S   s   t dddd|dS )NrQ   r"   rF   rq  rc   	omissionsr]  )r   )r:   rb   r   r   r   	summarize%  s   z0test_groupby_name_propagation.<locals>.summarizec                 S   s   t dddd| jd d dS )NrQ   r"   rF   r  r   r   r]  )r   r/   r:   r   r   r   summarize_random_name(  s   z<test_groupby_name_propagation.<locals>.summarize_random_namer   metricsrS   )r0   rs   r   rb   )r:   r  r  r  r   r   r   test_groupby_name_propagation#  s   
r  c                  C   sJ   t dd tdD } | d}| }| | d  }t|| d S )Nc                 S   s   g | ]}t d qS )r^   )r4   r5   r   r   r   r   r   7  r  z2test_groupby_nonstring_columns.<locals>.<listcomp>r^   r   )r   r2   r0   rc   r6   r7   r  r   r   r   test_groupby_nonstring_columns6  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 )Nra   )r   r   r   r\  rQ   r"   r   r   r   r]  r   )r   r	   r0   r   r6   r7   rU   r  r   r   r   test_groupby_mixed_type_columns>  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)rj  rj  r   r^   )r4   r   fillr   r   tiler2   r0   rq   r  isnar  )arrrc  indsr   r   r   r   (test_cython_grouper_series_bug_noncontigJ  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 )
N
aaaaaaaaaarj  r"   rk  r(   r   r!   c                 S   s   t ttt| jS rS   )rm   setmapidr)   rI   r   r   r   rK   ^  r   z5test_series_grouper_noncontig_index.<locals>.<lambda>)	r	   r   r4   ri   rj   r7  ru  r0   rq   )r)   r   r   ry   r   r   r   r   #test_series_grouper_noncontig_indexT  s   $
r
  c                  C   s   t td} tjg ddd}dd }dd }| |}||}|jtjks)J t|j	d	 t
s3J ||}|jtjks@J t|j	d	 t
sJJ d S )
Nr!   )r   r   r   r  r   r   r   c                 S   s   t t|  S rS   )r   strrc   rI   r   r   r   convert_fastf  r   z>test_convert_objects_leave_decimal_alone.<locals>.convert_fastc                 S   s$   t | jjdks
J tt|  S r   )rm   r   baser   r  rc   rI   r   r   r   convert_force_purei  s   zDtest_convert_objects_leave_decimal_alone.<locals>.convert_force_purer   )r   r2   r4   r8  r0   rq   r@   object_rD  r/   r   )r  r   r  r  ry   r   r   r   r   (test_convert_objects_leave_decimal_aloneb  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   rA   r   )rJ   r2   rJ   rb   r@   r2   rG   T)	by_blocks)r   r4   r5   r@   rC   r0   r   r	   r   r6   r7   )r:   r   	exp_indexr   r   r   r   "test_groupby_dtype_inference_emptyy  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 )	NrQ   l    4;PU  )r   r  r   r   r  r   rO  r]  )r   r0   rp  r   r   from_productr6   rr   ra  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?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'$rO   r'   r   rQ   rF   r   r"   )r   r   valr   r   r  )r0   r1   rc   r6   r7   ru   rv   KeyErrorr   r4   ri   rj   r7  ra  r   r   r   "test_groupby_list_infer_array_like  s   $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    freqr   r^   r      metricr   r   r   )r   r  )r   r   r   r0   r   rc   r   r)   r   r   r6   r7   )r  r)   r:   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 s(w   Y  t tjddtdd}tjt| d |	d W d    d S 1 sTw   Y  d S )	Nz^'Z'$r"   )rQ   r   ABCDr\  rO   Z)r"   r   )
r   r4   ri   rj   r7  r1   ru   rv   r  r0   )r|   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sOJ t||D ]\}}t|j
| | qTt|jjd j|  |jdkstJ 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| ||  qt|td| jd	d
g  t|td| jddg  tjtdd |tj W d    n1 sw   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s#J tjtdd |tj W d    n	1 s<w   Y  tjtdd |tj W d    n	1 sZw   Y  qd S )Nr"   r  z
2013-01-01z
2013-02-01r   r   )r   dtr  r#  rQ   rW   rF   r!   r   z2013-01-01 00:00:00r   z2013-02-01 00:00:00z^NaT$rO   )r   natr   rC   r$  zdatetime64[ns]z^nan$)!r   r4   ri   rj   r7  r   r   r0   r	   sortedr  rB  rm   r  r6   r  r7   grouperr   rc  ngroupsr8  intpr  assert_numpy_array_equalr`  r/   ru   rv   r  r+   r.   r@   )r:   ry   r   rB  rz   r   nan_dfr   r   r   r   test_groupby_nat_exclude  sd   


   
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 )NrQ   r"   r   r   r   )r   r4   r   r0   r  r:   r   r   r   r   #test_groupby_two_group_keys_all_nan   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   zerosrQ   r   l1l2labelTr$          r   )r   r2   r0   rc   r4   r8  r6   r  r   r	   r)  r   )r  tmp
res_valuesr   r   r   test_groupby_2d_malformed  s   r7  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sCJ d S )Nr   i  ia  r"   )r   r   r&   r  r@  r  )r  r&   r   r   )
r4   concatenater5   r   ri   rj   r7  r0   rU   rm   )r   r   r:   rg  r~  r   r   r   test_int32_overflow  s   "

r9  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  )rF   r"   rQ   ra   r"   rF   r   r   r   r  c                 S      g | ]}t |qS r   tupler   rowr   r   r   r   /  r   z+test_groupby_sort_multi.<locals>.<listcomp>r   Tr  )rQ   r"   r   c                 S   r<  r   r=  r?  r   r   r   r   4  r   )r   r   r   c                 S   r<  r   r=  r   r   r   r   r   9  r   )r   r   r   )r"   rQ   r   )r   rQ   r"   r   rQ   r"   )r   r   r   rQ   rQ   rQ   r)  )r   r   r  r   r   r  c                 S   r  rS   rT   rI   r   r   r   rK   H  rL   z)test_groupby_sort_multi.<locals>.<lambda>c           	      S   sV   dd | | j D }t|}|| || }| D ]\}}|| |ks(J qd S )Nc                 S   r<  r   r=  r?  r   r   r   r   I  r   zCtest_groupby_sort_multi.<locals>._check_groupby.<locals>.<listcomp>)r   comasarray_tuplesafer0   r  )	r:   r   rB  fieldr   tupsr   rz   r{   r   r   r   _check_groupbyH  s   
z/test_groupby_sort_multi.<locals>._check_groupby)r   r4   ri   rj   r7  r   rA  rB  r0   rU   r6   r)  r)   )r:   rD  r   ry   rE  r   r   r   test_groupby_sort_multi%  s:   	


rF  c                  C   sB   t g dg dd d} | jddddd	 }t||  d S )
N)r   r   r   r   r   r   r:  r"   )r   rb   r   FrM   c                 S      | S rS   r   rI   r   r   r   rK   W      z/test_dont_clobber_name_column.<locals>.<lambda>)r   r0   rs   r6   r7   r,  r   r   r   test_dont_clobber_name_columnR  s
   rI  c                  C   s   t  } | 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 )Nc                 S   r   rS   r   rI   r   r   r   rK   ^  r   z&test_skip_group_keys.<locals>.<lambda>FrM   c                 S   s   | j ddd d S )Nr   rf  rF   sort_valuesrI   r   r   r   rK   _  r   c                 S   s$   g | ]\}}|j d ddd qS )r   rJ  NrF   rK  r   r   r   r   r   r   r   a  s   $ z(test_skip_group_keys.<locals>.<listcomp>r   c                 S   r   rS   r   rI   r   r   r   rK   f  r   c                 S   s   |   d d S rH   rK  rI   r   r   r   rK   g  r   c                 S   s    g | ]\}}|  d d qS rH   rK  rM  r   r   r   r   i  s     )r6   r   r0   rs   r+   rC  r7   rr   )tsfry   r   piecesr   r   r   r   test_skip_group_keys[  s   

rP  c                 C   s8   | d   }d |_|| d d}|jd u sJ d S )Nr&   r   rU   )r   rb   r0   rq   )float_framer  r   r   r   r   test_no_nonsense_nameo  s   rR  c                  C   s\   t tddd} d| d< g d| d< | d}|ddd	}|d jtjks,J d S )
NrE   rF   r   test)g?      ?g?flrU   r  )rU  r"   )r   r4   r5   reshaper0   rq   r@   rC   )rJ   ry   r   r   r   r   test_multifunc_sum_bugx  s   
rW  c                 C   sV   dd }dd }|  dd |}|  dd |}t|ts#J t|| d S )Nc                 S   s   |   |  dS Nrp  r  rY  r   r   r   r   r     r   z(test_handle_dict_return_value.<locals>.fc                 S   s   t |  |  dS rX  )r   rp  r  r   r   r   r   r     s   z(test_handle_dict_return_value.<locals>.gr   r&   )r0   rs   rD  r   r6   rr   )r:   r   r   r   r   r   r   r   test_handle_dict_return_value  s   rZ  r&  r   r   c                    s   dd }dd   fdd}| j |dd}|| |  |  d	 || |d
 | |d
   |d
  |g |d
 | d S )Nc                 S   s   | j d usJ | S rS   r]  r   r   r   r   r     s   ztest_set_group_name.<locals>.fc                 S   s   | j d usJ |  S rS   )rb   rU   r   r   r   r   freduce  s   z$test_set_group_name.<locals>.freducec                    s    | S rS   r   rI   r[  r   r   freducex  s   z%test_set_group_name.<locals>.freducexFrM   r&  r&   )r0   rs   rp   rt   )r:   r&  r   r]  ry   r   r\  r   test_set_group_name  s   


r^  c                     sV   t g dtdd} g   fdd}| jdddd| g d	} |ks)J d S )
N)r   r   rQ   rQ   r"   r"   r)  r   c                    s     | j |  S rS   )rP  rb   r   r   rO  r   r   r     s   z6test_group_name_available_in_inference_pass.<locals>.fr   F)r  rN   ra   )r   r4   r5   r0   rs   )r:   r   expected_namesr   rO  r   +test_group_name_available_in_inference_pass  s   r`  c                 C   sV   |  | d j }|jjd u sJ |  | d j| d jg }|jjdks)J d S )Nr   r   )NN)r0   r   rU   r)   rb   r   r,  r   r   r   test_no_dummy_key_names  s   ra  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 )NrQ   r"   )r   r   r   r   rQ   rQ   )rQ   rQ   r   r   r   r   r   r   r   )r   rQ   r"   rF   r   r!   r(   r  )rQ   r   r   r   r"   r   Fr   r  T)r   r   r0   r   r6   rr   
sort_index)r)   mseriesmseries_resultr   r   r   r   #test_groupby_sort_multiindex_series  s   "rg  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/1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?  )hourrI   r   r   r   rK     r  zYtest_groupby_reindex_inside_function.<locals>.agg_before.<locals>._func.<locals>.<lambda>r   )r   r)   r  dropnarm   )rx   r  fixfuncr   r   _func  s   zGtest_groupby_reindex_inside_function.<locals>.agg_before.<locals>._funcr   )rp  ro  rq  r   rn  r   
agg_before  s   z8test_groupby_reindex_inside_function.<locals>.agg_beforec                 S   s   t | j| j| jS rS   )r   r   r   r   rI   r   r   r   rK     rf   z6test_groupby_reindex_inside_function.<locals>.<lambda>rj  T)F)	r   r   r4   r5   r0   rq   rp  r6   r7   )r    indr:   rr  ry   closure_badclosure_goodr   r   r   $test_groupby_reindex_inside_function  s   
rv  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   )rQ   rQ   rQ   r!   )group1group2r   rw  rx  Trc  rU   ))r   r   )r   r  r   r   rO  r"   rQ   r!   r   r  )r   r   r0   rq   r   rQ  r6   r7   )r:   r   r   r  rZ  r   r   r   $test_groupby_multiindex_missing_pair  s   
rz  c                  C   s|  t jg dddgd} tg dg| d}|j sJ 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 s\w   Y  t	|| tg dg dg ddddg}|j rJ ddddgfD ]3}dD ].}|j||ddtj}|}t	|| | j||ddtj}| }t	|| qqd S )N))r    )b1c1)b2c2r   r   rO  rQ   rF   r   r\  r;  )rQ   r|  r}  rF   )rQ   r~  r  r   )r   rx   r   r  )r)   r   r   )r   r   r   r   rQ   rQ   r"   r"   rQ   r"   rF   r   rJ   r   zrJ   r   r   rQ   )FTF)r   r  rN   )r   rQ  r   r   _is_lexsortedpivot_tablerw  r0   rc   r6   rn   r   r7   r   r)   rs   drop_duplicatesrd  )lexsorted_milexsorted_dfnot_lexsorted_dfr   r   r:   r   r  r   r   r   %test_groupby_multiindex_not_lexsorted
  sP   

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 )NABCDE)r"   r   r"   rQ   rQ   r(   ababbc                 S      t | dkS rh   rm   rI   r   r   r   rK   @  rV   z4test_index_label_overlaps_location.<locals>.<lambda>r  r   c                 S   r  rh   r  rI   r   r   r   rK   F  rV   c                 S   r  rh   r  rI   r   r   r   rK   M  rV   c                 S   r  rh   r  rI   r   r   r   rK   S  rV   )r   r1   r0   filterr/   r6   r7   r  rr   r)   r   r   )r:   r   actualr   r9   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   rc   )r4   r5   r   r0   rt   r6   r7   )nrJ   r:   r   r;   r   gb2r   r   r   r   "test_transform_doesnt_clobber_intsX  s   
 



r  sort_columnintsfloatsstringsgroup_column
int_groupsstring_groupsc                    sX   t g dg dg dg dg dd}|j d}||} fdd	}|| d S )
N)rF   rQ   r   rQ   r   rF   rF   rF   )r  r   r  r   r   r   r   r   )r  rW   r   r!   r"   rE   rQ   rQ   )gffffff@g333333@g@g333333g@皙?r  r!   )r  r  r   r   wordword24247)r  r  r  r  r  rJ  c                    s   t | | j d d S )NrJ  )r6   r7   rL  rI   r  r   r   	test_sort  s   z.test_groupby_preserves_sort.<locals>.test_sort)r   rL  r0   rs   )r  r  r:   r   r  r   r  r   test_groupby_preserves_sortg  s   
r  c                  C   s   t tt ddd tddd} | djj| d< | djj	| d< t
jtd	d
 |  jddddd W d    d S 1 sCw   Y  d S )Nr_   Mr    r  r   )	eventDatethenamer  r   r   z	'badname'rO   badnamerq  )r)   r   r   aggfunc)r   r   r   todaytolistr2   r   r)   r   r   ru   rv   r  rw  r  r  r   r   r   !test_pivot_table_values_key_error  s   "r  r   r&   rB  r   r4  r   rQ   z
US/Easternr$   
2016-01-01rF   r  r  Int64r   Float64boolean)boolintr   r  r  dt64dt64tzperiodr  r  r  )idsmethod)r}  rq   rs   )r   idxminr  rp  rU   r  r  c                    s  d }t trtdkrdv rtjjtdd}	|j|	 t t	r*dv r*d}t d t
r7dv r7d	}td
tdd}
tdrR|
jjk sRJ |
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 rd d}tjt|d |  W d    n1 sw   Y  t | tr|dd}| }t|| d S dv r3|s|s|r3|rd}n|rd}nd}dkrd |d!g}tjt|d |  W d    n	1 sw   Y  t | tsd S dkrd S |dd}|
g  }|r+| }t|| d S | }|
|  }dv rI||
jj}|d urS||}tdkr`d |j_t|| d S )"NrQ   )r   r  z0attempt to get arg(min|max) of an empty sequence)rv   rP   )rU   r  r  r   )r  rU   rA   r*   ABCr\  r@   F)rN   rm  observedc                     s2   dkrt  di | S t  fi | S )Nr}  r   )r  )kwargs)r;   r  rN  r   r   
get_result  s   z&test_empty_groupby.<locals>.get_resultc                     sR   t dgjd} t dkrtj| | g d}nt|  d d}tg g |d}|S )Nr   r   rQ   rO  r]  r   )r   r@   rm   r   r  r	   r   )levr  r   )rB  r   r   r    get_categorical_invalid_expected  s   z<test_empty_groupby.<locals>.get_categorical_invalid_expectedr  )r  rp  zCannot perform z with non-ordered CategoricalrO   Tr$  )r  rU   r  z datetime64 type does not supportzPeriod type does not supportzcategory type does not supportr  |z!does not support reduction 'skew') rD  r   rm   ru   markxfailr  node
add_markerr   r  r   r1   hasattrr   r@   r  r/   r0   r+   PeriodDtypekindorderedrv   rL  r6   assert_equaljoinr   r   r)   rb   )r   rB  r   r  rN  requestusing_array_managerrm  override_dtyper  r:   r  r  is_peris_dt64is_catr|   r   r   r   )r;   rB  r  rN  r   r   test_empty_groupby  s   '









r  c                  C   sl   t tjdd} | d tj| d< g d| _| j| d dd}|	dd	 }|j
| j
k s4J d S )
Nr"   )r   r   rF   r   rQ   r"   r   rQ   FrM   c                 S   rG  rS   r   rI   r   r   r   rK   :  rH  z<test_empty_groupby_apply_nonunique_columns.<locals>.<lambda>)r   r4   ri   rj   r7  r   rA   r   r0   rs   r   r  )r:   r;   r   r   r   r   *test_empty_groupby_apply_nonunique_columns4  s   
r  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 s,w   Y  | dd  }td	gdtd
gddd}t	|| d S )N)rQ   rQ   rQ   rQ   )r"   r"   r"   r"   )r   r   r   r   z
('a', 'b')rO   r   r   r   r   rQ   r]  r_  )
r   ru   rv   r  r0   rU   r   r	   r6   rr   ra  r   r   r   test_tuple_as_grouping>  s   	r  c                  C   sf   t dtdtddgddggd} tjtdd | d  W d    d S 1 s,w   Y  d S )	NrQ   rF   r"   r   r  z
^\(7, 8\)$rO   )rW   r  )	r   r2   r   r  ru   rv   r  r0   rc   r  r   r   r   test_tuple_correct_keyerrorQ  s   $"r  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 )NrQ   r   mycolsr]  
2018-01-01r"   r  dti)r    r  rb   r   )rQ   rQ   rQ   rQ   rQ   ))r   rU   r   )r   ohlcopen)r   r  rj  )r   r  rk  )r   r  close)r  NNrO  )r  rU   r  )
r   r	   r   r   rQ  r0   r   rq   r6   r7   r  r   r   r   test_groupby_agg_ohlc_non_firstX  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  rQ   r"   r   rF   daterO  )rF   r"         @r   r(   r  r  r  )
r+   r.   r   r   rQ  r   r0   rc   r6   rr   )r   rV  r9   r   r   r   r   r   test_groupby_multiindex_natt  s   r  c                  C   sf   t tdtd} t| ddgd}d}tjt|d |g g W d    d S 1 s,w   Y  d S )Nr^   appler   r\  z$Grouper and axis must be same lengthrO   )r  r2   r   ru   rv   r  r0   )r   r:   r|   r   r   r   test_groupby_empty_list_raises  s   "r  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 )NrJ   r   r   rz   )r   r  thirdrO  rQ   r"   r  r   r  rF   r(   )r   from_arraysr   r0   rU   r6   rr   )index_arrayindex_namesrir  r   eir   r   r   r   8test_groupby_multiindex_series_keys_len_equal_group_axis  s   r  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s5J |dtddg}|ddg}|j|jksNJ d S )Nr   r   r&   r  re  betarO  )rQ   r"   rQ   r"   r  r'  r(   r  )r   r  r   r0   r   r  )rV  r:   r   r   r   r   r   "test_groupby_groups_in_BaseGrouper  s   r  
group_namerJ   c                 C   sB  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 s5w   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 sw   Y  | }|j
|  j}t|| d S )NrX   rF   r   r   rQ   r   )r^   r_   r^   r_   r  r   rJ   r  rO   rQ   r   )r   r  r   r\   r]   x1)	iterablesr      r)  )r   r4   r5   rV  r)   rb   r   r6   rn   ro   r0   rU   r   r7   r   r  )r  r:   r   r;   resultsr   r  rV  r   r   r   test_groupby_axis_1  s*    r  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   r  r  r  r  )r	  r  c                       | j j S rS   r  r#  tz_localizerI   r$   r   r   rK   	  r  z+test_shift_bfill_ffill_tz.<locals>.<lambda>)r  r	  c                    r  rS   r  rI   r$   r   r   rK   	  r  )r   r   assignr0   r  r6   r7   )tz_naive_fixturerN  r   rx   r:   ry   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 )NrQ   )r   rJ   r   rJ   rU   r]  )r   r0   rt   r   r4   r   r6   rr   )r:   r  r   r   r   r   test_groupby_only_none_group		  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   r  )r"   g      @r  )r   r   r  )r   r0   rc   r6   rr   )r9   r;   r   r   r   r   r   test_groupby_duplicate_index	  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}|jd d d	gj| g|R  }|d	gj| g|R  jd d }| dv r^|t}t	|| |d jd d d	gj| g|R  }|d d	gj| g|R  jd d }| dv r|t}t	|| d S )NrQ   r  rF   r   )col_1col_2col_3col_4rx   r   r  r  r  r  fillna)r  r   r   )diffr  )
r   r   r   r  r   r/   r0   rt   r6   r  )transformation_funcr  r:   argsr   r   r   r   r   test_group_on_empty_multiindex	  s,   $$
&&
r  r  r   r]  )r   r   r  r   rO  c                 C   sn   | dv rt d|   tddgg|d}|dg}t| |}t|| | }|jdks.J t|j	| d S )N>   r  r  cumcountzNot applicable for rQ   r\  r   r   )
ru   r  r   r0   r   r  shaper6   r  r   )groupby_funcr  r:   grp_byr  r   r   r   r   test_dup_labels_output_shape<	  s   
r  c                 C   s  t dddd}tddgddgddgd}d	|j_||_|| }|s)|j}d
}nd}tjt	|d |j
|dd}W d    n1 sDw   Y  | }tddgddgd|d}d|j_|sc|j}t|| |dkrtjt	|d |g  j
|dd}W d    n1 sw   Y  |g  }	n*tjt	|d |jg  j
|dd}W d    n1 sw   Y  |jg  tj}	| }
t|
|	 d S )Nr  r"   r   )r    rb   rQ   rF   r   )r  )r   r&   )r  r   )r   r  r  r  rO   )r   r   )r   r  r(   r   )r   r   r   r   r)   _get_axis_numberr   r6   rn   ro   r0   nuniquerb   r7   r   r   r4   rC   )r   r  r:   axis_numberr|   r;   r   r   r  rZ  r   r   r   r   test_groupby_crash_on_nuniqueQ	  s:   

r  c                  C   s>   t tddddtd} | jdgd }t||  d S )Nr   rE   rF   r   r  )	r   r4   r5   rV  r   r0   rc   r6   r7   )r   r   r   r   r   test_groupby_list_levelz	  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], ...})rQ   z{0: [0], ...}c                 C   s   t tjdd}|j|d< td| ) |dj	
 }||ks%J |t|jj	
 }||ks7J W d    d S 1 sBw   Y  d S )Nr"   )r!   rQ   r   zdisplay.max_seq_items)r   r4   ri   rj   r7  r)   r+   option_contextr0   r  __repr__r8  r   )max_seq_itemsr   r:   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s3J d}|| || k sAJ d S )NrQ   r"   c   r   X   r   r   r   r   r   )	r   r   r0   r  r4   r8  rA   rm   r  )r:   r   r   r   r   r   r   r   6test_group_on_two_row_multiindex_returns_one_tuple_key	  s   r  zklass, attr, valuer   r  rN   r  rm  c                 C   sr   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s7J d S )	NrQ   r"   rF   r   r   r   r   )r   )r   r   r0   r  )r  r}  r   r:   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 s(w   Y  d	}tjt|d |d
dg   W d    d S 1 sJw   Y  d S )NrQ   r"   rF   r*   r  rO   r  r   z'Cannot subset columns when using axis=1r   r   )	r   r6   rn   ro   r0   ru   rv   r  rU   )r:   r|   r   rP   r   r   r   test_subsetting_columns_axis_1	  s   "r   rp  )rU   anyr  c                 C   sH   t dgdd}tdgg|d}|dg}t||  j}t|| d S )Nr   r  r]  rQ   r\  )r	   r   r0   r  r   r6   r  )rp  r   r:   r   r   r   r   r   #test_groupby_column_index_name_lost	  s
   r"  infer_stringpyarrow)marksc                 C   s   t g dg dg ddt}g d|_td|  |g d }W d    n1 s0w   Y  t g dgt	d	gg dtd
}t
|| d S )N)r   r   r   r  r;  r  r*   )r   r   r   zfuture.infer_string)r   r   r   r   )r   r   rQ   r   )r)   r   r@   )r   r   r  r   r+   r  r0   r  r4   r8  r6   r7   )r#  r:   r   r   r   r   r   test_groupby_duplicate_columns	  s   	
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)   rb   )r   r   r   r  r"   r   rQ   )r   r)   rb   r0   lastr6   rr   )r9   r   r   r   r   r   #test_groupby_series_with_tuple_name	  s   r)  zfunc, valuesrU        @X@     X@rc   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    7y1r0  r0  r0  rQ   r"   r   r   r   r   r   r   r]  r(   )r   r  r0   r	   r6   r7   )rp  r   rx   r:   r   r   r   r   r   )test_groupby_numerical_stability_sum_mean	  s
   r2  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,  rQ   r"   r   r1  r   r-  g07yACg17yACga7y1Cgb7y1Cr*  r+  r   T)check_exact)r   r0   r^  r6   r7   )rx   r:   r   exp_datar   r   r   r   'test_groupby_numerical_stability_cumsum 
  s    r5  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!   rQ   r   Fskipnar  )r4   ri   rj   r7  r   r2   r   r/   r0   r^  r6   r7   )r  r:   ir;   r   r   r   r   r    test_groupby_cumsum_skipna_false
  s   
r9  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"   rQ   r  r   FT)r%  r7  r   r   )	r   r   r+   r.   r   r0   r^  r6   r7   )r  r9   r:   r;   r   rZ  r   r   r   test_groupby_cumsum_timedelta64
  s   

,$r:  c                 C   s4   | }|j dd }| |j }t|| d S )Nr   r  )r0   rc   r)   r6   rr   )(rand_series_with_duplicate_datetimeindexdupsr   r   r   r   r   !test_groupby_mean_duplicate_index.
  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   rG   )r   r4   r   r0   r)   rU   r	   rC   rA   r6   rr   r  r   r   r   r   r    test_groupby_all_nan_groups_drop5
  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}|s+dgng }ntd	}|s8g dnddg}t g ||d
}t|| d S )Nr*   r  r   r   r   r$  rO  r&   r   r   )r   r0   rU   r   r   r6   r7   )r   r%  r:   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 )Nr  rQ   Wr^   r_   MWr{   r\  r  r@   rb   r(   rJ  )r   r	   r0   rU   r6   r7   r:   r   r;   r   r   r   r   *test_groupby_aggregation_non_numeric_dtypeM
  s   (rE  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rQ   r   rQ   rQ   r   c                 S      g | ]}t |d qS daysr   r   r8  r   r   r   r   d
  r  zDtest_groupby_aggregation_multi_non_numeric_dtype.<locals>.<listcomp>rQ   r)  c                 S      g | ]	}t |d  dqS r^   rI  rJ  rK  r   r   r   r   e
  r	  r  c                 S   rG  rH  rJ  rK  r   r   r   r   k
  r  rW   rE   c                 S   rL  rM  rJ  rK  r   r   r   r   l
  r	  r   r  r   rA   rJ   rC  r(   rJ  )r   r2   r	   r0   rU   r6   r7   rD  r   r   r   0test_groupby_aggregation_multi_non_numeric_dtype_
  s   rO  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 )NrF  c                 S   rG  rH  rJ  rK  r   r   r   r   {
  r  zKtest_groupby_aggregation_numeric_with_non_numeric_dtype.<locals>.<listcomp>rQ   r)  r  rW   rI  r  rN  r   rA   rJ   rC  r(   rJ  )	r   r2   r1   r   r	   r0   rU   r6   r7   rD  r   r   r   7test_groupby_aggregation_numeric_with_non_numeric_dtypev
  s   rP  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     >@rQ  rR  )r4  r4  g$+H@)rQ  rS  rT  r]  r   )r   r0   r3   r	   r6   r7   )dictsr:   	df_filterdfgbr   r   r   r   r   test_groupby_filtered_df_std
  s   
rX  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sMJ d S )Nabc)r  z
2018-02-01z
2018-03-01categoryr   )r'   r   rQ   r   rQ   )
categoriesr   r   r   Fr  z2018-01-01 00:00:00z2018-02-01 00:00:00r   z2018-03-01 00:00:00r"   )r   r   r1   r   r   
from_codesr0   r  r   r4   r8  ra  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    d S 1 sJw   Y  d S )NAlicer!   BobrQ   r"   rF   r   rb   r  z<__init__\(\) got an unexpected keyword argument 'min_period'rO   )window
min_period)r4   r   r   r   r   ru   rv   rL  r0   rollingrU   )name_lval_ltest_dfresult_error_msgr   r   r   #test_rolling_wrong_param_min_period
  s   "
"rh  zstring[pyarrow_numpy]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)Thomasri  Thomas John)i  i    )sadhappyrm  r   )NameCreditMoodrU   )rp  ro  rn  rm  rl  i	  rk  ri  rj  )rp  ro  rn  )r   r   moder0   rq   r   r6   r7   )r@   r:   aggregate_detailsr   expected_resultr   r   r   .test_by_column_values_with_same_starting_value
  s"   	
rt  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)NrQ   r   rQ   )r"   rF   r"   rF   rQ   r   r   rO  r(   r   r  r"   )r4  r"   )r   rF   )r   r   r  r0   rU   rQ  r6   rr   )r  r9   r   r   r   r   r   #test_groupby_none_in_first_mi_level
  s   ru  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  )rQ   rQ   r"   rF   )r   r!   r)  rW   )Nr   r   rJ  r"   r!   rE      ry  rQ   r]  r(   )r   r0   rU   r	   r6   r7   ra  r   r   r   test_groupby_none_column_name
  s   &rw  	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s7J d S )NrQ   r"   r!   r   rJ   r   r(   r   c                 S      g | ]\}}|qS r   r   r   r   r  r   r   r   r   
  r   z5test_single_element_list_grouping.<locals>.<listcomp>)rQ   )r"   )r   r4   r   r0   )rx  r:   ry   r   r   r   r   r   !test_single_element_list_grouping
  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   )rQ   r"   rF   r"   )str_colnum_colr|  stringr   )rT  r   r  Fr   )r   r   r0   rc   r6   r7   )r:   r   ry   r   r   r   r   test_groupby_string_dtype
  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
}|r|ddg}d}tjt|d dd |j| dD  W d    d S 1 s;w   Y  d S )NrQ   r"   rF   r   r!   r)  r   rJ   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.rO   c                 S   ry  r   r   rz  r   r   r   r     r   zKtest_single_element_listlike_level_grouping_deprecation.<locals>.<listcomp>r  )r   r   r6   rn   ro   r0   )	level_argr   r:   r   r   r   r   7test_single_element_listlike_level_grouping_deprecation  s   $"r  )rU   r^  cumprodr  c                 C   sj   d}t d|gd}t|d|  | }t ddgitdgddd}| d	v r-|jd
d}t|| d S )Nl   L33ffrQ   r   r   r   r   r]  r(   )r^  r  Trr  )r   r  r0   r	   rw  r6   r7   )rp  r  r:   r   r   r   r   r   #test_groupby_avoid_casting_to_float!  s   r  z	func, val)rU   rF   )r  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 )	NrQ   r"   r   r   r   r   r  rG   )r   r+   NAr  r0   r	   r6   r7   )any_numeric_ea_dtyperp  r  r:   r   r   r   r   r   test_groupby_sum_support_mask-  s   r  z
val, dtype)o   r  )   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 )NrQ   r   8r   r   r   r"   r  64rG   )r   r0   rU   r	   r6   r7   r^  r  )r  r@   r:   r   r   r   r   r   test_groupby_overflow:  s$   r  zskipna, val)TrF   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 )NrQ   r"   r   r   r   r6  r   )r   r+   r  r0   r^  r6   r7   )r  r7  r  r:   r   r   r   r   r   test_groupby_cumsum_maskS  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  r]  )rx   rb   r)   )r   r  r  r   )r   r	   r0   rU   r6   rr   r-   r7   )val_inr)   val_outseriesr   r   r   r   r   (test_groupby_index_name_in_index_content_  s   r  r  )rQ   r^       rj  rh  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 )NrQ   T)rR  r  r  rR  r]  r(   )r   eqr0   rU   r	   r6   r7   )r  r:   r   r   r   r   r   test_sum_of_booleans~  s
   r  z<ignore:invalid value encountered in remainder:RuntimeWarning)r  tailrv  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  rv  r   r   )r  )r   r(  r   rb  r   r]  r(   )
r   r4   r   r2   r  r0   r   r   r6   r7   )r  r:   r   r   r   r   r   test_groupby_method_drop_na  s    r  c                  C   sr  t jdddd} ttdd }|  }||}tjtdd |	  W d    n1 s/w   Y  tjtdd |
  W d    n1 sJw   Y  tjtd	d |  W d    n1 sew   Y  tjtd
d |  W d    n1 sw   Y  | }|dd  }ttdtd|_t|| | }|d d }ttdtd|_t|| d S )Nr  rj  r  r  r^   z+Period type does not support sum operationsrO   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   	to_seriesr0   ru   rv   rL  rU   r^  r  r  rp  r	   r  r)   r6   rr   r  )pigrpsr9   r;   r   r   r   r   r   test_groupby_reduce_period  s8   




r  c                  C   sN   t g dg} g d| _| | d }|j}| jg ddd}t|| d S )N)r   rQ   r"   rF   r  rQ   )r   r"   rF   r   )r   r   r0   _obj_with_exclusionsr  r6   r7   )r:   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|| d S tjtdd |j| d
 W d    d S 1 sHw   Y  d S )Nr   r   r   cardarr   F)r   r  Tr$  r\  z(could not convert string to float: 'bar'rO   )r   r0   r3   r6   r7   ru   rv   r  )r%  dicts_non_numericr:   rW  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   )rJ   wrJ   r   rQ   r!   r   r  Fr\  rc   gDlٿr  r~  )closedr  r  r  T)r  r   rO  r  r'  )r   r+   qcutr4   linspacer0   rq   r   r
   r   r  r   r8  r   r6   rr   )r:   qqr   categorical_index_level_1index_level_2rV  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   rG  rS   r   rI   r   r   r   rK     rH  z;test_groupby_sum_on_nan_should_return_nan.<locals>.<lambda>rQ   )	min_countr\  )r   r4   r   r0   rU   r6   r7   )r  r:   rW  r   r  r   r   r   )test_groupby_sum_on_nan_should_return_nan  s
   r  )rq  corrcummaxcumminr  r  rankr   r	  r  r  r!  r  r   r  r  
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   rm   r)   r0   r  r6   r7   )r:   r  rngr   g_expr   rZ  r   r   r   #test_groupby_selection_with_methods  s   r  c                 C   s"  t dt| d}d| j_|| _| dgdg }| dg | d }t|d|d d}tj	t
|d t|j|j W d    n1 sJw   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   z%DataFrameGroupBy.dtypes is deprecatedrO   c                 S   r  rS   rT   rI   r   r   r   rK   A  rL   z6test_groupby_selection_other_methods.<locals>.<lambda>r  c                 S   s   t | dkS rH   r  rI   r   r   r   rK   G  rV   )r   rm   r   rb   r)   r0   r6   r7   r  rn   ro   r   rs   resamplerc   r  r  )r:   r  r   r  r|   r   r   r   $test_groupby_selection_other_methods3  s       r  c                  C   sz   t dt dt dg} tg dg d| d}ttdddd	g d
g d
d}|tddd  }t|| d S )Nz2016-08-31 22:08:12.000z2016-08-31 22:09:12.200z2016-08-31 22:20:12.400)r   r   r  )quantquant2time2z2016-08-31 22:08:00rv  1Tr  )rQ   rQ   r   r   r   r   r   r   r   r   r   r   rQ   )r  r  r  r  )r   r  )	r   r   r   r0   r   rq  rw  r6   r7   )idx2	test_dataexpected_outputr:   r   r   r   test_groupby_with_Time_GrouperK  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 )
Nr  z
2022-01-01rF   r   janr'  r"   rQ   r]  )r   r   r0   rq  r)   rb   r6   rr   r>  r   r   r   1test_groupby_series_with_datetimeindex_month_namec  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/w   Y  |d	}t g dg dd}t|| d S )N)r   rF   r"   rF   )r   rQ   r)  rW   )rF   r  r"   r^   )rQ   rv  r)  r  )r!   r)  i)r9  r:  col3col4col5
deprecatedrO   rQ   )rQ   r"   rF   r"   rQ   )r   rf  )r9  r  )r   r6   rn   ro   r0   r`  r7   r  r   r   r   test_get_group_axis_1l  s$   	
r  )r   decimalr   rJ  numpyr4   ru   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_testingr6   pandas.core.arraysr   pandas.core.commoncorecommonrA  pandas.tests.groupbyr   r  filterwarnings
pytestmarkr   r?   parametrizer   r   r   r   r   r   r   r   r   r  r  r#  r(  r;  r<  rF  rM  r[  rb  rd  rh  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-  r7  r9  rF  rI  rP  rR  rW  rZ  r^  r`  ra  rg  rv  rz  r  r  r  r  r  r  r8  r  r  r  r  r  r  r  r  r  r  r   r  r  r  rQ  r  r  r  r  r  r  r   r"  param
skip_if_nor&  r)  r2  r5  r9  r:  r=  r?  r@  rE  rO  rP  rX  r^  rh  r  rt  ru  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   r   <module>   sv   8
A@5

:(07
 
C"	


	
 	-

?-		
	1x
	
,

)









	
&	
	
)
	