a
    Pf                     @   s  d Z ddl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	 ddl
mZ ddlZddlmZmZmZmZmZmZ ddlmZ ddlmZ dd	 Zd
d Zdd Zdd Zdd Zdd Zdd Zdd Z dd Z!ej"#ddd dd dd ggdd Z$d d! Z%d"d# Z&ej"#d$d%g d&d'i fd(d)gd* e'e(e(e(d+fd,d-gd* e'e(e(e(d+fd%g d&d.d/d'ifd(d)gd* d.e(e(e(d+fd,d-gd* d.d0d0d0d+fgd1d2 Z)ej"#d3d%d4d5gd6d7gd8d9ggd'd'd:fd(d;gd4 gd* d0fd,d4gd4 gd* d0d0d:fgd<d= Z*d>d? Z+d@dA Z,dBdC Z-dDdE Z.dFdG Z/dHdI Z0dJdK Z1dLdM Z2dNdO Z3dPdQ Z4dRdS Z5dTdU Z6ej"#dVdWd dXd dYd dZd d[d d\d gd]d^ Z7ej"#d_d`gedagd`dbfd`dcgedagd4ggdgdggd`dcgddfgej"#deg dfej"#dgg dfej"#dhg didjdk Z8ej"#d_d`gedagd`dbfd`dcgedagd4ggdgdggd`dcgddfgej"#dlg dmej"#dne9e'e(gej"#dhg didodp Z:dqdr Z;dsdt Z<ej"#dnej=ej>gej"#dug dvdwdx Z?dydz Z@ej"#d{eAeBd|eCdd*ejDd}d*d~deEg dgdd ZFdd ZGdd ZHG dd dZIG dd dZJej"#dddejKfddad*gddgddgfddd fddd fdejKfdad*gdadagddgfeLddeLdejKeLddd dad*gddgdadagfgdd ZMdd ZNdd ZOej"#dddgig dgdgdd ZPdd ZQdd ZRdd ZSdd ZTej"#ddd dd dd gdd ZUdd ZVej"#ddd eVgdd ZWdd ZXej"jYdddd ZZG dd dZ[dd Z\ej"#dddddadgd`dgdfddidd`dgifddiddadgifgddǄ Z]ej"#dddgddddgfdddgdddgfdddgiddgfgddτ Z^ddф Z_ddӄ Z`ddՄ Zaddׄ Zbddل Zcddۄ Zddd݄ Zeej"#dg dߢdgfg ddgfgdd Zfej"#ddddgfd%ddgfgdd Zgej"#dg ddd Zhej"#ddgddgdcd%idddgdd Ziej"#dd9dgd9dgd6dggd6d9gdddggdfd9dgd9dgddggd9dgddgdgdfd`dagd`dagdcd4gdcd*ggd`dcgdad4d*ggdfejjd`dagd`d4gdcd*gdcd*ggd`dcgdad4gd*gdej"jYdgdd Zkdd Zldd  Zmdd Zndd Zodd Zpdd Zqd	d
 ZrdS (  zN
test .agg behavior / note that .apply is tested generally in test_groupby.py
    N)partial)SpecificationError)is_integer_dtype)	DataFrameIndex
MultiIndexSeriesconcatto_datetime)Groupingc                  C   s:   t g dg dd} | dd }dd }|| d S )Nabcr               )keyvaluer   r   c                 S   s   t | dksJ |  S Nr   )lensumx r   f/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pandas/tests/groupby/aggregate/test_aggregate.py
dummy_func"   s    z3test_groupby_agg_no_extra_calls.<locals>.dummy_func)r   groupbyagg)dfgbr   r   r   r   test_groupby_agg_no_extra_calls   s    r#   c                 C   s8   |  dd dd g}|d}| }t|| d S )Nc                 S   s   | j S Nyearr   r   r   r   <lambda>*       z&test_agg_regression1.<locals>.<lambda>c                 S   s   | j S r$   monthr   r   r   r   r'   *   r(   meanr   r    r+   tmassert_frame_equal)tsframegroupedresultexpectedr   r   r   test_agg_regression1)   s    
r3   c                 C   s   |  dd }d}tjt|d |dd  W d    n1 sD0    Y  tjt|d |dd  W d    n1 s0    Y  d S )NACzMust produce aggregated valuematchc                 S   s   |   S r$   )Zdescriber   r   r   r   r'   5   r(   z#test_agg_must_agg.<locals>.<lambda>c                 S   s   | j d d S Nr   indexr   r   r   r   r'   7   r(   )r   pytestraises	Exceptionr    )r!   r0   msgr   r   r   test_agg_must_agg0   s    ,r?   c                 C   sH   dd }| j | j| jg|}| ddg d }t|| d S )Nc                 S   s   |   S r$   r   r   r   r   r   r'   ;   r(   z(test_agg_ser_multi_key.<locals>.<lambda>r4   Br5   )r5   r   r4   rA   	aggregater   r-   assert_series_equal)r!   fresultsr2   r   r   r   test_agg_ser_multi_key:   s    rF   c                  C   s   t dddtjddddgdddtjddd	d
gdtjg dddgdd} t dddddddtjddddgd
ddddddtjd	dddgddddtjdddddtjdgddddtjdddddtjtjgd}|ddg}|dd g  }t||  d S )!N      r   r   r   7   M   !   ,      )v1v2))r   _   )r   c   )r   rP   )r   rQ   )bigdamp)bluedry)redrV   )rV   wetby1by2namesr9      	   X   rQ   rV   rT   r   rR      rW   rU   rP   rS   )rN   rO   rX   rY   rN   rO   )	r   npnanr   from_tuplesr   r+   r-   r.   )r2   r!   gr1   r   r   r   $test_groupby_aggregation_mixed_dtypeA   s>    
rd   c                  C   s   g dddt jdgddt jdgddt jdgg} t| tg dd}d}tjt|d |jddd	}W d    n1 sz0    Y  |j	dd
}tg dg dd}t
|| d S )N)TTTFTF))r4   r   )r4   r   )rA   r   )rA   r   datacolumns+DataFrame.groupby with axis=1 is deprecatedr6   r   levelaxis)Znumeric_only)       @TTT)r   r   r   r   r   r   )r`   ra   r   r   rb   r-   assert_produces_warningFutureWarningr   r   r.   )lstr!   r>   r"   r1   r2   r   r   r   +test_groupby_aggregation_multi_level_columnr   s    ,rq   c                 C   s  | j | tj dd}| jtjks$J tg tjtg tjdd}t|	 | t|
d| tj|d|dd |j |d tj dd}t|jttg dtjdd	}t|	 | t|
d| d
}tjt|dd |tj	}W d    n1 s0    Y  t|| d S )NFZ
group_keysdtypert   r:   r   )Zcheck_index_typer4   )namert   )rg   rt   r:   z:The behavior of DataFrame.sum with axis=None is deprecated)r7   Zcheck_stacklevel)r   r`   ra   rt   float64r   r   r-   rC   r   r    applyr   rg   floatr.   rn   ro   )tsr/   r0   expZexp_dfr>   resr   r   r   test_agg_apply_corner   s$    ,r}   c                 C   s   t tjddttdtdtj	ddddd	}|
d
d }|jjd j}t| jt||jjd< |d}| }t|| t| jt||jjd< |d}| }t|| d S )Nr   )   r   ZABCDrs   z
2000-01-01r~   rA   periodsfreqrg   r:   c                 S   s   | j S r$   r%   r   r   r   r   r'      r(   z1test_agg_grouping_is_list_tuple.<locals>.<lambda>r   r+   )r   r`   randomdefault_rngstandard_normalr   listobjectpd
date_ranger   _grouperZ	groupingsZgrouping_vectorr   r:   r    r+   r-   r.   tuple)rz   r!   r0   Zgrouperr1   r2   r   r   r   test_agg_grouping_is_list_tuple   s    

r   c                 C   s0   |  ddg}|d}| }t|| d S )Nr4   rA   r+   r,   )Z multiindex_dataframe_random_datar0   r1   r2   r   r   r   test_agg_python_multiindex   s    
r   groupbyfuncc                 C   s   |   S r$   )weekdayr   r   r   r   r'      r(   r'   c                 C   s   | j S r$   r)   r   r   r   r   r'      r(   c                 C   s   |  |}|d d}|d  }t|| |d}| }t|| |ddddd}t|d  |d  |d 	 |d	 
 d}t|| d S )
Nr4   stdvarr+   sem)r4   rA   r5   DrA   r5   r   )r   r    r   r-   rC   rB   r   r.   r   r+   r   )r/   r   r0   r1   r2   r   r   r   test_aggregate_str_func   s     





r   c              
   C   sj   t g dttjddddddgddd}|d }t dd	d
gitddgdddd}t|| d S )N)r   r   r   r   r   r   r   r   r   ZFloat64rs   r   r   r   r   g(y?r   rv   r:   rt   )	r   r   r   NAr   r   r   r-   r.   )any_numeric_ea_dtyper!   r1   r2   r   r   r   test_std_masked_dtype   s    r   c              	   C   s   | j dd}d| d}|dv r.t}d}t}nt}d| d}d }tj||d	L tj||d	 |j|d
d W d    n1 s0    Y  W d    n1 s0    Y  d S )Nr   rj   zDataFrameGroupBy.z with axis=1 is deprecated)ZidxmaxZidxminz;'[<>]' not supported between instances of 'float' and 'str'z
Operation z does not support axis=1r6   r   rk   )	r   	TypeErrorro   
ValueErrorr;   r<   r-   rn   r    )r!   reduction_funcr"   Zwarn_msgerrorr>   warnr   r   r   %test_agg_str_with_kwarg_axis_1_raises   s    r   z(func, expected, dtype, result_dtype_dictr   )rG   rH   r]   int64r   glv @r   ijkr   g      @Int64r   rw   c                 C   s   t g dgd tddgg dgd||d}d}tjt|d	 |jd
d
d}W d    n1 sj0    Y  || }t |gd g dd|}t	|| d S )N)r   r   r   r   rG      r   r   r   r   rg   ))r   r   )r   r   rh   r6   r   ri   )
r   r   from_productastyper-   rn   ro   r   r    r.   )funcr2   rt   result_dtype_dictr!   r>   r"   r1   r   r   r   (test_multiindex_groupby_mixed_cols_axis1   s    ,
r   z&func, expected_data, result_dtype_dictr   r   
   r_         )r   r   g;f?c                 C   s   t tdddtg dddtg dddd	d
ddi}d}tjt|d |j	ddd}W d    n1 sv0    Y  |
| }t |tg dddtddgddd|}t|| d S )Nr_   r   r   r   r   r   yr   )r   r   r   r   r   r   )r:   rg   rt   r   r   rh   r6   r   r   r   )rf   r:   rg   )r   r`   arangereshaper   r   r-   rn   ro   r   r    r.   )r   expected_datar   r!   r>   r"   r1   r2   r   r   r   test_groupby_mixed_cols_axis1  s(    ,
r   c           	      C   s   |  d}dd }||}| jdk }| jdk }t|j}tt|g| t	ddd}t
|d| tt|g| t	ddd}t
|d| dd	 }t  | j|}t|tsJ t|d
ksJ d S )Nr4   c                 S   s   | j S r$   sizeZserr   r   r   r'   ;  r(   z-test_aggregate_item_by_item.<locals>.<lambda>foobarZBCDr:   rv   c                 S   s   | j S r$   r   r   r   r   r   aggfun_1H  s    z-test_aggregate_item_by_item.<locals>.aggfun_1r   )r   r    r4   r   r   rg   r   r`   arrayr   r-   rC   ZxsZassert_almost_equalr   
isinstance)	r!   r0   Zaggfun_0r1   ZfoosumZbarsumKr{   r   r   r   r   test_aggregate_item_by_item8  s    


r   c                 C   s   |  ddg}dd }tjtdd || W d    n1 sD0    Y  |g d |}| jd d g df }| ddg|}t|| d S )	Nr4   rA   c                 S   s   | j tkrtd|  S )NTest error message)rt   r   r   r   r   r   r   r   r   S  s    
ztest_wrap_agg_out.<locals>.funcr   r6   )r   EF)r4   rA   r   r   r   )r   r;   r<   r   rB   locr-   r.   )Zthree_groupr0   r   r1   Zexp_groupedr2   r   r   r   test_wrap_agg_outP  s    (r   c                 C   s   dt jfdt jfdt jfg}d}tjt|d$ | dd |}W d    n1 sX0    Y  t	g d}t
|j| d S )	Nr+   maxmin%is currently using SeriesGroupBy.meanr6   r4   r5   )r+   r   r   )r`   r+   r   r   r-   rn   ro   r   r    r   assert_index_equalrg   )r!   funcsr>   r1   Zexp_colsr   r   r   *test_agg_multiple_functions_maintain_order`  s    2r   c                 C   s@   | j d d dgf | d }|dd }|jjdks<J d S )Nr5   r4   c                 S   s   |   S r$   r+   r   r   r   r   r'   m  r(   z(test_series_index_name.<locals>.<lambda>)r   r   r    r:   rv   )r!   r0   r1   r   r   r   test_series_index_namek  s    r   c                     s   t tjddtjddddg dd  d	d
t	tj
ddt	tj
ddgi} tjdd	dd}tddg}t fdddD j}t |||d}t| | d S )Nr     r   1/1/2012sr   )r   r   r4   rA   r5   r:   rg   3minr4   H.?q镲q?r   )r4   quantilec                    s"   g | ]}  d jj|djqS r   r   resampler4   r   values.0r   r!   r   r   
<listcomp>~  r(   z9test_agg_multiple_functions_same_name.<locals>.<listcomp>r   r   r   )r   r`   r   r   r   r   r   r   r    r   r   r   rb   r   Tr-   r.   )r1   expected_indexexpected_columnsexpected_valuesr2   r   r   r   %test_agg_multiple_functions_same_nameq  s"    
r   c               	      s   t tjddtjdddddtg dd	d
d  d	ddt
tjddt
tjddgi} tjddddd}tjg dg dd}t fdddD j}t dj |g}t |||d}t| | d S )Nr   r   r   r   r   Zdti)r   r   rv   r   alphar   r   r   r4   ohlcr   r   r   r   ))r4   r   open)r4   r   high)r4   r   low)r4   r   closer4   r   r4   r   )r   NNrZ   c                    s"   g | ]}  d jj|djqS r   r   r   r   r   r   r     r(   zKtest_agg_multiple_functions_same_name_with_ohlc_present.<locals>.<listcomp>r   r   )r   r`   r   r   r   r   r   r   r   r    r   r   r   rb   r   r   Zhstackr4   r   r-   r.   )r1   r   r   Znon_ohlc_expected_valuesr   r2   r   r   r   7test_agg_multiple_functions_same_name_with_ohlc_present  s.    
 r   c                 C   s   | j ddgd} ddg}ddg}| dd |}| dd |}t|| | d|}| d|}t|| d S )	NrA   r5   r   )r   r+   r   )r   r   r4   r   )Zdropr   r    r-   r.   )r!   r   Zex_funcsr1   r2   r   r   r   -test_multiple_functions_tuples_and_non_tuples  s    r   c           
      C   s2  |  d}|ddd}|ddd}t||gddgdd}|jddddjddd	}ddgddgd}||}t|| |dddgd}|dddgd}t|| d
d }dd }d}	tj	t
|	d* ddddd}|| W d    n1 s
0    Y  dg||gd}|| d S )Nr4   r+   r5   r   r   r   )keysrk   r   r   ri   c                 S   s
   t | S r$   r`   r+   r   r   r   r   	numpymean  s    z:test_more_flexible_frame_multi_function.<locals>.numpymeanc                 S   s   t j| ddS )Nr   )Zddof)r`   r   r   r   r   r   numpystd  s    z9test_more_flexible_frame_multi_function.<locals>.numpystdnested renamer is not supportedr6   r   r   )r   r    r	   Z	swaplevelZ
sort_indexrB   r-   r.   r;   r<   r   )
r!   r0   ZexmeanZexstdr2   dr1   r   r   r>   r   r   r   'test_more_flexible_frame_multi_function  s&    

*r   c                 C   s   |  d}dddddid}d}tjt|d || W d    n1 sP0    Y  ddddd}tjt|d || W d    n1 s0    Y  ddddd}tjt|d || W d    n1 s0    Y  d S )	Nr4   r+   r   r   r   r   r   r6   )r   r;   r<   r   rB   )r!   r0   r   r>   r   r   r    test_multi_function_flexible_mix  s    
((r   c                  C   s   t g dg dg dd} | d}tddgdd}|d	 d
d }tddg|d	d}t|| |d dd }tddg|dd}t|| d S )Nr   r   r   r   r   r   r   r   )NNr   r   r   r   r   r   r   r   r   r   c                 S   s   | dk  S r   allr   r   r   r   r'     r(   z1test_groupby_agg_coercing_bools.<locals>.<lambda>FTr   r   c                 S   s   |    S r$   )Zisnullr  r   r   r   r   r'     r(   )r   r   r   rB   r   r-   rC   )datgpr:   r1   r2   r   r   r   test_groupby_agg_coercing_bools  s    
r  c                  C   sb   t g dg dd} | ddg ddi}t dddgiddgd	jdd
d}t|| d S )N)r4   r4   rA   rA   rA   )r   r   r   r   r   r4   rA   r4   rA   r   r   r   r9   r   r   )r   r   r    Zrename_axisr-   r.   )r  r1   r2   r   r   r   "test_groupby_agg_dict_with_getitem  s    "r  c                  C   sj   t g dg dg dgg dd} | d}|ddi}t dd	d
gitddgddd}t|| d S )Nr   )r   r   r   rG   )r   r   rG   r   r   r   r   r   r   rG   r   r   r   r   r9   r   r   r    r   r-   r.   r!   r"   r1   r2   r   r   r   !test_groupby_agg_dict_dup_columns  s    
 r
  opc                 C   s   |   S r$   r@   r   r   r   r   r'     r(   c                 C   s   |   S r$   )cumsumr   r   r   r   r'      r(   c                 C   s
   |  dS Nr   	transformr   r   r   r   r'   !  r(   c                 C   s
   |  dS Nr  r  r   r   r   r   r'   "  r(   c                 C   s
   |  dS r  r    r   r   r   r   r'   #  r(   c                 C   s
   |  dS r  r  r   r   r   r   r'   $  r(   c                 C   sd   t ddgddgd}|dd }| |dd j}t|sDJ | |dj}t|s`J d S )Nr   FTr   r   r   )r   	set_indexr   rt   r   )r  r!   r   r1   r   r   r   test_bool_agg_dtype  s    r  zkeys, agg_indexr   r   r   r   rZ   input_dtype)boolZint32r   Zfloat32rw   result_dtypemethod)rx   rB   r  c           
         s   t dgdgdgd}|d ||d< t|| dg |}| fdd}|dkrbtd	dn|}t d|d jd	 gi|d
 }	|dkrd	g|	j_t	
||	 d S )Nr   r   Tr   r   c                    s   |   jd S r   r   ilocr   r  r   r   r'   I  r(   z2test_callable_result_dtype_frame.<locals>.<lambda>r  r   r9   rx   )r   r   getattrr   r   
RangeIndexr  rg   r[   r-   r.   )
r   	agg_indexr  r  r  r!   r  r1   r   r2   r   r  r    test_callable_result_dtype_frame4  s    
r  input)Tr         ?rt   c           
         s   t dgdg|gd}t|| d |}| fdd}|dkrNtddn|}t|d jd g|dd	 }	t	||	 d S )
Nr   r   r   r   c                    s   |   jd S r   r  r   rs   r   r   r'   a  r(   z3test_callable_result_dtype_series.<locals>.<lambda>r  r   r   )
r   r  r   r   r  r   r  r   r-   rC   )
r   r  r  rt   r  r!   r  r1   r   r2   r   rs   r   !test_callable_result_dtype_seriesS  s     r!  c                  C   sR   t g dg dd} | dg d}|jjd }tg d}t|| d S )Nr   r   r  r4   )r   r   r+   r   r   r   )r   r   r    rg   levelsr   r-   r   )r!   r|   r1   r2   r   r   r   #test_order_aggregate_multiple_funcsg  s
    r#  c                 C   s   t g dddtjddtjgd| d}|d}| }t g d	tjgd
 dgd
 dgd
 gtdgg dgtg d| dd| d}t	|| |jddd}| }|
 }t	|| d S )N)r   r   r   r   r   r      rM   r   r   r   rs   r   )r$  r$  rM   rM   r   r   )r   r   r   r   r   rt   rv   )rg   r:   rt   Fas_index)r   r   r   r   r   r   r   r   r-   r.   Zreset_index)r   r!   r"   r1   r2   Zgb2result2Z	expected2r   r   r   test_ohlc_ea_dtypess  s"    
"r)  how)firstlastr   r   r+   medianc                 C   st   t dddgd}|dd|i}|j| |_|dd|i}|dvr`|jtj|_tj||dd	 d S )
Nl   &tLWHd~ r   r   r   r   r   r   )r+   r-  T)Zcheck_exact)	r   r   r    r   r   r`   r   r-   r.   )rt   r*  r!   r2   r1   r   r   r   test_uint64_type_handling  s    r/  c                  C   s`   d} t g dg dd}tjt| d$ |dddg W d    n1 sR0    Y  d S )NzFunction namesr   r   r   r   r   r  r6   r4   r   )r   r;   r<   r   r   r    )r>   r!   r   r   r   test_func_duplicates_raises  s    r1  r:   abcZ2020r   r   ))r   r   )r   r   )r   r   c                 C   s\   t g dg dd| d}|ddtji}t ddgddgdd}t|| d S )	Nr   r   r   r   )groupr   r9   r4  r   r   r   )r   r   r    r   Znuniquer  r-   r.   )r:   r!   r1   r2   r   r   r   $test_agg_index_has_complex_internals  s    r5  c                  C   s`   t g dg dg dd} | d }t ddgddgdtd	d
gddd}t|| d S )N)r   r   r   r   r   )onetwor6  r7  r6  )threer8  r8  sixr9  key1key2key3r;  r6  r9  )r<  r=  r   r   r   r9   )r   r   r   r   r-   r.   r!   r1   r2   r   r   r   test_agg_split_block  s    r?  c               	   C   s   t tjdddg dg dg dtjdddg ddt} | g d }t tdgd	gd
gdgtdgd
gdt	dgtd}t
|| d S )N2000r   )r   )r   r   r   r   r   )r   r   r   e)r4   rA   r5   r   r   r   )r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r   	Timestampr`   r   r-   r.   r>  r   r   r   #test_agg_split_object_part_datetime  s0    	



rC  c                   @   sV   e Zd Zdd Zdd Zdd Zdd Zej	d	e
jd
dddd
dggdd ZdS )TestNamedAggregationSeriesc                 C   s   t g d}|g d}|jddd}tddgddgdd	d
gtddgd}t|| |jddd}|d
d	g }t|| d S )Nr   r0  r   r   r   r   rH   r   r   r   r   r   )r   r   r   r   r    r   r`   r   r-   r.   )selfr!   grr1   r2   r   r   r   test_series_named_agg  s    "z0TestNamedAggregationSeries.test_series_named_aggc                 C   sp   t ddgddg}tjtdd |  W d    n1 sB0    Y  |g }tg d}t|| d S )Nr   r   r   Must provider6   r   )	r   r   r;   r<   r   r    r   r-   r.   rF  rG  r1   r2   r   r   r   test_no_args_raises  s    &

z.TestNamedAggregationSeries.test_no_args_raisesc                 C   sX   t g dg d}|jddd}tddgddgdtddgd}t|| d S )	Nr   r   r   r   r   r   r   r   r   r   r   r9   rE  )rF  rG  r0   r2   r   r   r   *test_series_named_agg_duplicates_no_raises  s    $zETestNamedAggregationSeries.test_series_named_agg_duplicates_no_raisesc                 C   s`   t g dg d}|jdd dd d}tddgddgdtddgd	}t|| d S )
NrL  rM  c                 S   s   dS r   r   r   r   r   r   r'     r(   z9TestNamedAggregationSeries.test_mangled.<locals>.<lambda>c                 S   s   dS Nr   r   r   r   r   r   r'     r(   r   r   r   r9   rE  rJ  r   r   r   test_mangled  s    $z'TestNamedAggregationSeries.test_mangledinpanythingr   columnaggfunc)rR  r   c                 C   sb   t g d}dt|j }tjt|d$ ||jj|d W d    n1 sT0    Y  d S )N)r   r   r   r   r   r   r   rG   zfunc is expected but received r6   r   )	r   type__name__r;   r<   r   r   r   r    )rF  rQ  r   r>   r   r   r   test_named_agg_nametuple  s    
z3TestNamedAggregationSeries.test_named_agg_nametupleN)rX  
__module____qualname__rH  rK  rN  rP  r;   markparametrizer   NamedAggrY  r   r   r   r   rD    s   
rD  c                   @   sL   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dS )TestNamedAggregationDataFramec                 C   s   t g dg dg dd}|djddd}t d	d
gddgdtddgddddgd}t|| tjtj	dd}|djdddddd|fd}t ddgddgddgd	d
gddgd d!gdtddgddg dd}t|| d S )"Nr   r   r   r   r   rG   r   rH   r\   r4  r4   rA   r4  r4   r   rA   r   )a_maxb_maxr   r   r   r\   r   r   r   re  rf  r   b   r   rA   r   r4   r   )r4   r+   r4   )Zb_minZa_minZa_meanre  rf  Za_98rG   rH   r   r         ?      @g\(\?gףp=
@)
r   r   r    r   r-   r.   	functoolsr   r`   
percentile)rF  r!   r1   r2   Zp98r   r   r   test_agg_relabel  s>    
z.TestNamedAggregationDataFrame.test_agg_relabelc                 C   sf   t g dg dg dd}|djf i ddi}t ddd	gitd
dgddd}t|| d S )Nr`  r   ra  rb  r4  zmy colrc  r   r   r   r   r   r9   r  rF  r!   r1   r2   r   r   r   test_agg_relabel_non_identifier7  s     z=TestNamedAggregationDataFrame.test_agg_relabel_non_identifierc                 C   s   t g dg dd}|djddd}t ddgddgdtd	dgdd
d}t|| tjtj	dd}tjtj	dd}d|_
d|_
t g dg dd}|djd|fd|fd}t ddgddgdtddgdd
d}t|| d S )Nr0  r   r  r4   rh  r   r   r   r   r   r9   2   r   F   quant50quant70)r   r   r   r   r   )r   r   r   r   rG   )col1col2ru  rv  )Zquantile_50Zquantile_70      ?      @g333333?g@r   r   )r   r   r    r   r-   r.   rl  r   r`   rm  rX  )rF  r!   r0   r2   rs  rt  testr   r   r   test_duplicate_no_raises@  s"    &
z6TestNamedAggregationDataFrame.test_duplicate_no_raisesc                 C   sx   t g dg ddtddgddggd}|jd	d
jdddd}t d	dgd	dgddgdddgd}t|| d S )Nr0  r   r  r4   rA   r   r   r9   r   r   rc  ri  )rA   r+   )ZaaZbbccr   rw        @)r   r   r   r   r    r-   r.   ro  r   r   r   test_agg_relabel_with_levelY  s    z9TestNamedAggregationDataFrame.test_agg_relabel_with_levelc                 C   s   t g dg dd}|d}d}tjt|d |jdd W d    n1 sT0    Y  tjt|d |  W d    n1 s0    Y  tjt|d |jd	dd
 W d    n1 s0    Y  d S )NrM  rL  r  r4   rI  r6   r   )r   rd  r   )r   r   r;   r<   r   r    )rF  r!   r0   r7   r   r   r   test_agg_relabel_other_raisesf  s    
*&z;TestNamedAggregationDataFrame.test_agg_relabel_other_raisesc                 C   sd   t ddgddgd}td}tjt|d" |djdd	 W d    n1 sV0    Y  d S )
Nr   r   r   r  zColumn(s) ['C'] do not existr6   r4   )r5   r   r   )r   reescaper;   r<   KeyErrorr   r    )rF  r!   r7   r   r   r   test_missing_raisess  s    
z1TestNamedAggregationDataFrame.test_missing_raisesc                 C   s`   t ddgddgd}|djtddtjddd	d
}|djddd
}t|| d S )Nr   r   r   r  r4   rA   r   countrS  r   r   )rA   r   )rA   r  r   r   r    r   r^  r-   r.   ro  r   r   r   test_agg_namedtupley  s    
z1TestNamedAggregationDataFrame.test_agg_namedtuplec                 C   sv   t ddgddgddgd}|djdd	d
 fddd
 fd}t ddgddgdtddgddd}t|| d S )Nr   r   r   r   r   r   r4   rA   c                 S   s   dS r   r   r   r   r   r   r'     r(   z<TestNamedAggregationDataFrame.test_mangled.<locals>.<lambda>r5   c                 S   s   dS rO  r   r   r   r   r   r'     r(   r  r   r9   r  ro  r   r   r   rP    s    $&z*TestNamedAggregationDataFrame.test_mangledN)rX  rZ  r[  rn  rp  rz  r}  r~  r  r  rP  r   r   r   r   r_    s   $	r_  zCagg_col1, agg_col2, agg_col3, agg_result1, agg_result2, agg_result3r   r4   r   r  )r   rA   r+   rj  rk  g      @      @c                 C   s   t | S r$   )r   r   r   r   r   r'     r(   c                 C   s   dS rO  r   r   r   r   r   r'     r(   r  r   c                 C   s   dS rO  r   r   r   r   r   r'     r(   c                 C   s   t g dg dg dd}tg d|_tddgdd	}|djd
d}t dddgi|d}	t||	 d}
tj	t
|
d& |dj| ||d}W d    n1 s0    Y  t |||d|d}	t||	 d S )Nr`  r   ra  rb  r   r4  r  r  r   r   r  r   r  )re  re  r   r   r9   r   r6   )Zcol_1Zcol_2Zcol_3)r   r   rb   rg   r   r   r    r-   r.   rn   ro   )Zagg_col1Zagg_col2Zagg_col3Zagg_result1Zagg_result2Zagg_result3r!   idxr1   r2   r>   r   r   r   "test_agg_relabel_multiindex_column  s"    !
$r  c                  C   sp   t g dg dg dd} tg d| _tjtdd" | djd	d
 W d    n1 sb0    Y  d S )Nr`  r   ra  rb  r  zdo not existr6   r  ))Yr   r   rV  )	r   r   rb   rg   r;   r<   r  r   r    r   r   r   r   ,test_agg_relabel_multiindex_raises_not_exist  s    r  c                  C   sz   t g dg dg dd} tg d| _| djddd}td	d
gdd}t ddgddgd|d}t|| d S )Nr`  r   ra  rb  r  r  )r  r   r   r   r   r   r   r   r9   )	r   r   rb   rg   r   r    r   r-   r.   )r!   r1   r  r2   r   r   r   &test_agg_relabel_multiindex_duplicates  s    
r  kwargsr   r   r  c                 C   sh   t g dg dg dd}|d| }t ddgtddgd	dd
tddggd}t|| d S )Nr3  rL  r   r   r   r   r   r   r   r   r   r%  r   r   r   )r   r   r    r   r   rb   r-   r.   )r  r!   r1   r2   r   r   r    test_groupby_aggregate_empty_key  s    r  c                  C   s\   t g dg dg dd} | ddg i}t tdgg gg g gdd}t|| d S )	Nr3  rL  r  r   r   r   )r"  codesr   r   r   r    r   r-   r.   r>  r   r   r   -test_groupby_aggregate_empty_key_empty_return  s    r  c                  C   s`   t g dd} | jddgddjdtfd}t d	gtg g gg g gddgd
d}t|| d S )Nr   r   r   r   Frr   r   )r   r   rZ   r   )r   r   r    r   r   r-   r.   r>  r   r   r   2test_groupby_aggregate_empty_with_multiindex_frame  s    r  c                  C   s`   t g dg dd} | jddd}|jtjddd	d
}t g dg dd}t|| d S )N)r   r   zr   r   r  r   皙?rl   g      @g@      ?)r   valr   Fr&  r  r   rS  min_val)r   r   r  )r   r  r  )r   r  r  r!   r0   r1   r2   r   r   r   9test_grouby_agg_loses_results_with_as_index_false_relabel  s    r  c                  C   sp   t g dg dg dd} | jddgdd}|jtjd	d
dd}t g dg dg dd}t|| d S )N)r   r   r   r   r   r   )r   r   r   r   r   r   r  )r   r;  r  r   r;  Fr&  r  r   rS  r  r   r   r   )r   r   r   )r   r  r  )r   r;  r  r  r  r   r   r   Dtest_grouby_agg_loses_results_with_as_index_false_relabel_multiindex  s    r  r   c                 C   s   |   S r$   r   r   r   r   r   r'     r(   c                 C   s
   t | S r$   r   r  r   r   r   r'     r(   c                 C   s
   t | S r$   )r`   Znanmeanr  r   r   r   r'     r(   c                 C   s   g dg dg}t |tjg dg dgddgdd}|td	d
g| }dddddddddd}t |td	d
g|jd}t	|| d S )N)r   r   r   )rG   rH   r   r3  )r   r   r   ZSiskoZJanewayrZ   r   r   r   r         @rm   rx  g      @rl   ))r   r   )r   r   )r   r   r   )
r   r   from_arraysr   r`   r   r    rg   r-   r.   )r   rf   r!   r1   Zexpected_dictr2   r   r   r   test_multiindex_custom_func  s    r  c                 C   s   t j| ddS Ng?r   r`   rm  r  r   r   r   myfunc2  s    r  c                 C   s   t j| ddS r  r  r  r   r   r   r'   6  r(   c                 C   sn   t g dg dg dd}|djdd| fd}t d	d
gddggddgtddgddd}t|| d S )Ncatdogr  r  g333333"@g      @      #@      A@皙@r  #@     h@kindheightweightr  )r  r+   r  )mean_heightperc90g"@g0'5"@g      4@g5^I@r  r  r  r  r   r   r  )r   Zanimalsr1   r2   r   r   r   test_lambda_named_agg6  s    
r  c                  C   s   t tdgd ddtdtdd} g d| d< | dd	d
 }dgdgdggddgddgddggg}t |tddgdddtg dddd}t	|| d S )Nr   r]   r   ZXYZr2  rf   rg   r:   )group 1r  r   groupingc                 S   s   |   S r$   )tolistr   r   r   r   r'   S  r(   z,test_aggregate_mixed_types.<locals>.<lambda>r   r  r   r%  )Xr  Zrs   r   )
r   r`   r   r   r   r   rB   r   r-   r.   )r!   r1   r   r2   r   r   r   test_aggregate_mixed_typesM  s    "&r  zNot implemented;see GH 31256reasonc                  C   sf   dd } t dtg di}|g d| }t dtjdtjgddidd	gd
}t|| d S )Nc                 S   s   t | dkrdS tjS d S )Nr   r   )r  r   r   r   r   r   r   rU  f  s    z5test_aggregate_udf_na_extension_type.<locals>.aggfuncr4   rL  r3  r   r   rs   r   r9   )r   r   r   r   r    r   r-   r.   )rU  r!   r1   r2   r   r   r   $test_aggregate_udf_na_extension_type]  s
    	$r  c                   @   sB   e Zd Zdd Zdd Zejjdddd Zd	d
 Z	dd Z
dS )TestLambdaManglingc                 C   sl   t g dg dd}|dddd dd gi}t d	d	gd
d
gdtd	d
gddd}t|| d S )Nr0  r   r  r4   rA   c                 S   s   dS r   r   r   r   r   r   r'   u  r(   z/TestLambdaMangling.test_basic.<locals>.<lambda>c                 S   s   dS rO  r   r   r   r   r   r'   u  r(   r   r   ))rA   
<lambda_0>)rA   
<lambda_1>r   r9   r  ro  r   r   r   
test_basics  s     zTestLambdaMangling.test_basicc                 C   sd   t g dg d}|dd dd g}ddgddgd}t|tddgd	}t|| d S )
Nr   r0  c                 S   s   dS r   r   r   r   r   r   r'     r(   z?TestLambdaMangling.test_mangle_series_groupby.<locals>.<lambda>c                 S   s   dS rO  r   r   r   r   r   r'     r(   r   r   r  r  r9   rE  )rF  rG  r1   exp_datar2   r   r   r   test_mangle_series_groupby}  s
    z-TestLambdaMangling.test_mangle_series_groupbyzGH-26611. kwargs for multi-agg.r  c                 C   s   ddd}ddd}t ddgddg||gd}tdgdgd	}t|| t ddgddgj||gdd
d}tdgdgd	}t|| d S )Nr   c                 S   s   |   | | S r$   r@   r   r   r   r   r   r   r'     r(   z5TestLambdaMangling.test_with_kwargs.<locals>.<lambda>r   c                 S   s   |   ||  S r$   r@   r  r   r   r   r'     r(   r   r   r   r  r   )r      r~   )r   )r   )r   r   r    r   r-   r.   )rF  f1f2r1   r2   r   r   r   test_with_kwargs  s    

"&z#TestLambdaMangling.test_with_kwargsc                 C   s   t g dg dg dd}g d}t ddgdd	gd
dgdtddgdd|d}|jddjtjddd dtjdddtjdddd}t|| |jddjddd fddd}t|| d S )Nr  r  r  r  )height_sqr_min
height_max
weight_maxp=
׳T@      B@r  r  r  r  r  r  r  r   r   byr  c                 S   s   t | d S r8   r`   r   r   r   r   r   r'     r(   z=TestLambdaMangling.test_agg_with_one_lambda.<locals>.<lambda>rS  r   r  c                 S   s   t | d S r8   r  r   r   r   r   r'     r(   r  r   r  r   )r   r   r   r    r   r^  r-   r.   rF  r!   rg   r2   Zresult1r(  r   r   r   test_agg_with_one_lambda  s:    
z+TestLambdaMangling.test_agg_with_one_lambdac              	   C   s  t g dg dg dd}g d}t ddgdd	gd
dgdd	gddgdtddgdd|d}|jddjddd fddddd fddd fd}t|| |jddjtjddd dtjdddtjdddtjddd dtjdd d dd}t|| d S )!Nr  r  r  r  )r  r  r  Zheight_max_2Z
weight_minr  r  r  r  r  r  r  r  r  r  r  r   r   r  r  c                 S   s   t | d S r8   r  r   r   r   r   r'     r(   z=TestLambdaMangling.test_agg_multiple_lambda.<locals>.<lambda>r  r  c                 S   s
   t | S r$   r`   r   r   r   r   r   r'     r(   r  c                 S   s
   t | S r$   r  r   r   r   r   r'     r(   c                 S   s   t | d S r8   r  r   r   r   r   r'     r(   rS  r   c                 S   s
   t | S r$   r  r   r   r   r   r'     r(   c                 S   s
   t | S r$   r  r   r   r   r   r'     r(   )r   r   r   r    r-   r.   r   r^  r  r   r   r   test_agg_multiple_lambda  sF    


	z+TestLambdaMangling.test_agg_multiple_lambdaN)rX  rZ  r[  r  r  r;   r\  xfailr  r  r  r   r   r   r   r  r  s   

'r  c                  C   sZ   t g dg dd} | dddd i}t dd	gd
dgdd}t|| d S )N)SWr  )r   r   rl   r  r4   rA   c                 S   s   |  | jd S )N)getr:   r   r   r   r   r'     r(   z+test_groupby_get_by_index.<locals>.<lambda>r  r  r   rl   )r   r   r    r  r-   r.   )r!   r|   r2   r   r   r   test_groupby_get_by_index  s    r  zgrp_col_dict, exp_data)nrcat_ordrG   r  r  c                 C   s   t g dtdtdd}|ddd}|d j |d< |jdd	d
| }tjddgddgd	ddd}t ||d}d|v r|d j	}|d ||d< t
|| d S )Nr   r   r   r   rG   r   rH   r\   aabbccddaaaabbbbr  r  r  categoryr  r  r  r  FZobservedr   r   
categoriesorderedrv   rt   )rf   r:   )r   r   r   r  
as_orderedr   r    r   CategoricalIndexrt   r-   r.   )grp_col_dictr  input_df	result_df	cat_indexexpected_dfrt   r   r   r    test_groupby_single_agg_cat_cols  s"    
r  )r   r   r   )rG   r\   r   )r   r   r   )rG   r   r   r   )r   r   c           
         s  t g dtdtdd}|ddd}|d j |d< |jdd	d
| }tjddgddgd	ddd}g }| 	 D ]:\ }t
|tr| fdd|D  qz| |g qztt|}t |||d}|jD ].}	t
|	trd|	v r||	 |d j||	< qt|| d S )Nr  r  r  r  r  r  r  r  Fr  r   r   r  c                 3   s   | ]} |gV  qd S r$   r   )r   r   r   r   r   	<genexpr><  r(   z6test_groupby_combined_aggs_cat_cols.<locals>.<genexpr>r  )r   r   r   r  r  r   r    r   r  itemsr   extendappendr   rb   r   rg   rt   r-   r.   )
r  r  r  r  r  Zmulti_index_listvZmulti_indexr  colr   r  r   #test_groupby_combined_aggs_cat_cols  s.    

r  c                  C   sT   t g dg dd} | d}|dg}|jd|_|d}t|| d S )Nr   )r   r   r   r   r   r   r  r  )r   r   r    rg   Z	droplevelr-   r.   )r!   rc   r1   r2   r   r   r   test_nonagg_aggJ  s    

r  c                  C   sh   t ddgtdddddddtd	ddddddgd
} | dj }| dd }t|| d S )Nr  r  i  r   r   r~      i`= i  r  r4   rA   )r   datetimer   rA   r   r  r-   rC   r>  r   r   r   test_aggregate_datetime_objectsW  s    	r  c                  C   s|   t g dg dg dd} | jd| _| ddg}|jdd	 }tjd
dgdd}tddg|dd}t	
|| d S )N)r   r   r   r  r   r   r   )c0c1pOr  r	  c                 S   s   t | dkS r   r  r   r   r   r   r'   n  r(   z1test_groupby_index_object_dtype.<locals>.<lambda>)r   r   r.  )r  r	  rZ   FTr
  r   )r   r:   r   r   r
  r    r   rb   r   r-   rC   )r!   r0   r|   r   r2   r   r   r   test_groupby_index_object_dtypei  s    r  c                  C   sT   dd } t dgtdgd}|dd | }t dggdgd}t|| d S )	Nc                 S   s   |    rd S t| S r$   )Zisnar  r`   r   r   r   r   r   r   {  s    z)test_timeseries_groupby_agg.<locals>.funcr   z2018-01-16 00:00:00+00:00r9   c                 S   s   dS rO  r   r   r   r   r   r'     r(   z-test_timeseries_groupby_agg.<locals>.<lambda>r   )r   r   rB  r   r    r-   r.   )r   r!   r|   r2   r   r   r   test_timeseries_groupby_aggx  s
    r  c                 C   s   | t jv rt| j}| t jv r,t| j}| t jv rFt|  j}| t j	v r`t|  j}t
dgdgtj|g| dd}dgdgg}tj|dd}t
dtj|g| di|d}|d	d
gdd }t || d S )Nr   r   rs   r:  )r;  r<  rZ   r=  r9   r;  r<  c                 S   s   | S r$   r   r   r   r   r   r'     r(   z,test_groupby_agg_precision.<locals>.<lambda>)r-   ZALL_INT_NUMPY_DTYPESr`   Ziinfor   ZFLOAT_NUMPY_DTYPESZfinfoZFLOAT_EA_DTYPESlowerZALL_INT_EA_DTYPESr   r   r   r   r  r   r    r.   )Zany_real_numeric_dtypeZ	max_valuer!   Zarraysr:   r2   r1   r   r   r   test_groupby_agg_precision  s*    



r  c                 C   s   | dv rd S t ddgdtjgg}|d| }|dd| i}| dv rdtj||d dd nt|| t|j|j d S )N)ZcorrwithZnthr   r   )r   ZngroupF)Zcheck_names)	r   r`   ra   r   r    r-   rC   r.   Zdtypes)r   objZresult_reduced_seriesZresult_reduced_framer   r   r    test_groupby_aggregate_directory  s    
r  c                  C   sJ   t g ddd} t dgdtdgd}| g d }t|| d S )N)z1 dayz3 daysNaTtimedelta64[ns]rs   z2 daysr   ru   r   r   r   )r   r`   r   r   r+   r-   rC   )rf   r2   r1   r   r   r   test_group_mean_timedelta_nat  s    r  zinput_data, expected_output)z2021-01-01T00:00r  z2021-01-01T02:00z2021-01-01T01:00)z2021-01-01T00:00-0100r  z2021-01-01T02:00-0100z2021-01-01T01:00-0100c                 C   sF   t t| }t t|tdgd}|g d }t|| d S )Nr   r9   r  )r
   r   r`   r   r   r+   r-   rC   )Z
input_dataZexpected_outputrf   r2   r1   r   r   r   test_group_mean_datetime64_nat  s    r  zfunc, outputr+   y       @      2@y      $@      6@y      D@     V@y      I@     [@c                 C   sN   t tdddddg}||jd | }t |}t	|| d S )Nr   r   r   r                  @)
r   r`   r   r   dotr   r:   r    r-   rC   )r   outputrf   r1   r2   r   r   r   test_groupby_complex  s     r  )r   r   r   c                 C   sl   t tdddddg}d}tjt|d& ||j	d 
|  W d    n1 s^0    Y  d S )Nr   r   r   r   r  zNo matching signature foundr6   )r   r`   r   r   r  r;   r<   r   r   r:   r    )r   rf   r>   r   r   r   test_groupby_complex_raises  s     r  prodr-  c                 C   s   t g dg dg dd}d}tjt|d |jddd	}W d    n1 sR0    Y  tjtd
d ||  W d    n1 s0    Y  d S )Nr3  r   r   rG   )r   rH   r\   r   rh   r6   r   r   r   z"axis other than 0 is not supported)	r   r-   rn   ro   r   r;   r<   NotImplementedErrorr    )r   r!   r>   r"   r   r   r   test_multi_axis_1_raises  s    ,r  ztest, constantr4   rA   r5   rm   r~   )Zmarksc                 C   s<   t | }|dtj}t |}|d}t|| d S r   )r   r   r    r   moder  r-   r.   )ry  ZconstantZdf1r1   r2   r   r   r   test_agg_of_mode_list  s
    
r!  c                  C   s   t g dg dd} | d}ddd}dd
d}d}tjt|d& |j||gdddd W d    n1 sr0    Y  |j||gddd}t ddgddgddggtg dddtddgd}t	
|| d S )NrL  r   r.  r   r   r   c                 S   s   |   | | S r$   r@   r   r   r   r   r   r   foo1  s    z@test_dataframe_groupy_agg_list_like_func_with_args.<locals>.foo1r   c                 S   s   |   | | S r$   r@   r   r   r   r   r   r   foo2  s    z@test_dataframe_groupy_agg_list_like_func_with_args.<locals>.foo2/foo1\(\) got an unexpected keyword argument 'b'r6   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   rb   r-   r.   )r!   r"   r#  r%  r>   r1   r2   r   r   r   2test_dataframe_groupy_agg_list_like_func_with_args  s    


4r'  c                  C   s   t g d} | | }ddd}ddd}d	}tjt|d
& |j||gdddd W d    n1 sh0    Y  |j||gddd}tddgddgddggtg dddgd}t	|| d S )NrL  r   r   c                 S   s   |   | | S r$   r@   r"  r   r   r   r#  /  s    z=test_series_groupy_agg_list_like_func_with_args.<locals>.foo1r   c                 S   s   |   | | S r$   r@   r$  r   r   r   r%  2  s    z=test_series_groupy_agg_list_like_func_with_args.<locals>.foo2r&  r6   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   Zsgbr#  r%  r>   r1   r2   r   r   r   /test_series_groupy_agg_list_like_func_with_args*  s    


4$r(  c                  C   s   t g dg dg dd} | ddg}|ddg }|dd	 }td
dgddggdd
gdd
ggddgd}t ddgddgd|d}t|| d S )Nr3  )r   r   r   )rG   r   rH   r   r   r   r   c                 S   s   |   S r$   r@   r   r   r   r   r'   E  r(   z.test_agg_groupings_selection.<locals>.<lambda>r   r   r   r   r   )r"  r  r[   r   rM   rH   r  r9   r  )r!   r"   Zselected_gbr1   r:   r2   r   r   r   test_agg_groupings_selection@  s    "r)  c                  C   sb   t g dg dd} | jdddd }|dd	g}t d
dgddgddgd}t|| d S )Nr3  r  r   r   Fr&  r   r   r+   r   r   rH   rG   r|  r  )r   r   r+   )r   r   r    r-   r.   r	  r   r   r   ?test_agg_multiple_with_as_index_false_subset_to_a_single_columnM  s
    r*  c                  C   sr   t g dg dg dd} | jddgdd}|d	g}t g d
g dg dgtg dd}t|| d S )NrM  )r   r   r   )r   rG   r   )a1a2r   r+  r,  F)r  r'  r   )r   r   r   )r   r   rG   )r   r   r   ))r+   )r,  r-  )r   r   re   )r   r   r    r   rb   r-   r.   r	  r   r   r   &test_agg_with_as_index_false_with_listV  s    r.  c                  C   sj   t dtdtdtddi} t tg dddg dd	}|d
}|jdd}t||  d S )Ntd0 days 01:00:000 days 01:15:00r  )r0  z0 days 00:15:00r1  r  rs   )r   r   r   )r/  grpsr2  )r/  r  )r/  )r   r   Z	Timedeltar   r   r    r-   r.   )r2   r!   r"   r1   r   r   r   Btest_groupby_agg_extension_timedelta_cumsum_with_named_aggregationc  s&    		
r3  c                  C   sv   dd } t tjddgg ddddgd}d}tjt|d	$ |jd
dd|  W d    n1 sh0    Y  d S )Nc                 S   s   t | dkrtdt | S )Nr   length must not be 0)r   r   r   r   r   r   r   ~  s    z2test_groupby_aggregation_empty_group.<locals>.funcr   r   )r  r   r  r4  r6   r4   Fr  )r   r   ZCategoricalr;   r<   r   r   r    )r   r!   r>   r   r   r   $test_groupby_aggregation_empty_group|  s    r5  )s__doc__r  rl  r   r  numpyr`   r;   Zpandas.errorsr   Zpandas.core.dtypes.commonr   Zpandasr   r   r   r   r   r	   r
   Zpandas._testingZ_testingr-   Zpandas.core.groupby.grouperr   r#   r3   r?   rF   rd   rq   r}   r   r   r\  r]  r   r   r   intry   r   r   r   r   r   r   r   r   r   r   r   r  r  r
  r  r  r  r!  r#  r)  r   Zuint64r/  r1  r  r   Zinterval_rangeZperiod_rangerb   r5  r?  rC  rD  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  paramr!  r'  r(  r)  r*  r.  r3  r5  r   r   r   r   <module>   s   
1

 	
#$

((

	
5v	

	






y

(

	



**0

	