a
    oÝEb2´  ã                   @   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
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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%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,d.d.d.d)œfg¡d/d0„ ƒZ(ej" #d1d#d2d3gd4d5gd6d7ggd%d%d8œfd&d9gd2 gd( d.fd*d2gd2 gd( d.d.d8œfg¡d:d;„ ƒZ)d<d=„ Z*d>d?„ Z+d@dA„ Z,dBdC„ Z-dDdE„ Z.dFdG„ Z/dHdI„ Z0dJdK„ Z1dLdM„ Z2ej" #dNdOd„ dPd„ dQd„ dRd„ dSd„ dTd„ g¡dUdV„ ƒZ3ej" #dWdXgedYgdXdZ�fdXd[gedYgd2ggdgdggdXd[gd\�fg¡ej" #d]g d^¢¡ej" #d_g d^¢¡ej" #d`g da¢¡dbdc„ ƒƒƒƒZ4ej" #dWdXgedYgdXdZ�fdXd[gedYgd2ggdgdggdXd[gd\�fg¡ej" #ddg de¢¡ej" #dfe5e&e'g¡ej" #d`g da¢¡dgdh„ ƒƒƒƒZ6didj„ Z7ej" #dfej8ej9g¡ej" #dkg dl¢¡dmdn„ ƒƒZ:dodp„ Z;ej" #dqe <e=drƒ¡e >dd(¡ej?dsd(dtdu�e @g dv¢¡g¡dwdx„ ƒZAdydz„ ZBd{d|„ ZCG d}d~„ d~ƒZDG dd€„ d€ƒZEej" #d�d‚dƒejFfd„dYd(gdd2gd…d†gfdƒd‡d„ fdƒdˆd„ fd„dYd(gdYdYgd…d†gfe Gdƒd‰¡e GdŠejH¡e Gdƒd‹d„ ¡dYd(gd…d†gdYdYgfg¡dŒd�„ ƒZIdŽd�„ ZJd�d‘„ ZKej" #d’d“d”gig d”gd•œg¡d–d—„ ƒZLd˜d™„ ZMdšd›„ ZNdœd�„ ZOdždŸ„ ZPej" #d d¡d„ d¢d„ d£d„ g¡d¤d¥„ ƒZQd¦d§„ ZRej" #d d¨d„ eRg¡d©dª„ ƒZSd«d¬„ ZTej"jUd­d®�d¯d°„ ƒZVG d±d²„ d²ƒZWd³d´„ ZXej" #dµd”d”d¶œdYd·gdXd“gd¶œfd¸d”id¸dXd“gifd¹d”id¹dYd·gifg¡dºd»„ ƒZYej" #dµd”d‰gd”d¶œd¼d½gfd”d”d‰gd¶œd¾d¿gfd¸d”d‰gidÀdÁgfg¡dÂdÃ„ ƒZZdÄdÅ„ Z[dÆdÇ„ Z\dÈdÉ„ Z]dÊdË„ Z^dÌdÍ„ Z_dÎdÏ„ Z`ej" #dÐg dÑ¢dÒgfg dÓ¢dÔgfg¡dÕdÖ„ ƒZaej" #d×dØdÙdÚgfd#dÛdÜgfg¡dÝdÞ„ ƒZbej" #d g dß¢¡dàdá„ ƒZcdS )âzN
test .agg behavior / note that .apply is tested generally in test_groupby.py
é    N)Úpartial)Úis_integer_dtype)Ú	DataFrameÚIndexÚ
MultiIndexÚSeriesÚconcatÚto_datetime)ÚSpecificationError)Ú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   úm/home/ja/django-apps/lartica_env/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   s:   |   dd„ dd„ g¡}| tj¡}| ¡ }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'   ©r   r   ÚnpÚmeanÚ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 s€0    Y  d S )NÚAÚCzMust produce aggregated value©Úmatchc                 S   s   |   ¡ S r#   )Zdescriber   r   r   r   r&   4   r'   z#test_agg_must_agg.<locals>.<lambda>c                 S   s   | j d d… S ©Nr   ©Úindexr   r   r   r   r&   6   r'   )r   ÚpytestÚraisesÚ	Exceptionr   )r    r0   Úmsgr   r   r   Útest_agg_must_agg/   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_key9   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   r+   Únanr   Úfrom_tuplesr   r,   r-   r.   )r2   r    Úgr1   r   r   r   Ú$test_groupby_aggregation_mixed_dtypeA   s>    þ
õûôüÿrc   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�}|jddd�}|jdd�}tg d	¢g d
¢dœƒ}t ||¡ d S )N)TTTFTF))r4   r   )r4   r   )rA   r   )rA   r   )ÚdataÚcolumnsr   ©ÚlevelÚaxis)Znumeric_only)ç       @TTT)r   r   r   r   ©r   r   )	r+   r`   r   r   ra   r   r   r-   r.   )Úlstr    r!   r1   r2   r   r   r   Ú+test_groupby_aggregation_multi_level_columnr   s    üþrl   c                 C   sâ   |   | tj ¡}| jtjks J ‚tg tjtg tjd�d�}t | 	¡ |¡ t | 
tj	¡|¡ tj| tj	¡|dd� |  |d tj ¡}t|jttg dtjd�d�}t | 	¡ |¡ t | 
tj	¡|¡ t | tj	¡|¡ d S )N©Údtype)rn   r:   F)Zcheck_index_typer4   )Únamern   )re   rn   r:   )r   r+   r`   rn   Úfloat64r   r   r-   rC   r   r   Úapplyr   re   Úfloatr.   )Útsr/   r0   ÚexpZexp_dfr   r   r   Útest_agg_apply_corner†   s    ýru   c                 C   s˜   t  ¡ }| dd„ ¡}|jjd j}t| jt|ƒƒ|jjd< | 	t
j¡}| ¡ }t  ||¡ t| jt|ƒƒ|jjd< | 	t
j¡}| ¡ }t  ||¡ d S )Nc                 S   s   | j S r#   r$   r   r   r   r   r&       r'   z1test_agg_grouping_is_list_tuple.<locals>.<lambda>r   )r-   ZmakeTimeDataFramer   ÚgrouperZ	groupingsZgrouping_vectorr   r:   Úlistr   r+   r,   r.   Útuple)rs   r    r0   rv   r1   r2   r   r   r   Útest_agg_grouping_is_list_tuple�   s    ry   c                 C   s2   |   ddg¡}| tj¡}| ¡ }t ||¡ d S )Nr4   rA   r*   )Zmframer0   r1   r2   r   r   r   Útest_agg_python_multiindex¯   s    rz   Ú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   sn   | j dd�}|dv rt}d}nt}d|› d�}tj||d�� |j|dd	� W d   ƒ n1 s`0    Y  d S )
Nr   ©rg   )ZidxmaxZidxminz3reduction operation '.*' not allowed for this dtypez
Operation z does not support axis=1r6   r   ©rh   )r   Ú	TypeErrorÚ
ValueErrorr;   r<   r   )r    Úreduction_funcr!   Úerrorr>   r   r   r   Ú%test_agg_str_with_kwarg_axis_1_raisesÔ   s    rˆ   z(func, expected, dtype, result_dtype_dictr   )rG   rH   r]   Úint64r}   gÙlßÌvø @r   ©ÚiÚjÚkr~   g      @ÚInt64rŒ   rp   c                 C   st   t g d¢gd t ddgg d¢g¡d� ||dœ¡}|jddd	� | ¡}t |gd g d¢d� |¡}t ||¡ d S )
N)r   r   r   r   rG   é   r   r   r   rŠ   ©re   ))r   rŒ   )r   rŒ   r   rf   )r   r   Úfrom_productÚastyper   r   r-   r.   )Úfuncr2   rn   Úresult_dtype_dictr    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¡}|jddd� | ¡}t |tg d¢dd�tddgdd�d� |¡}t 	||¡ d S )Nr_   r   r   ©r   r   r   Úy©ro   )r–   r˜   r–   r˜   r   r‰   )r:   re   rn   r–   rŽ   r   rƒ   r˜   )rd   r:   re   )
r   r+   ÚarangeÚreshaper   r’   r   r   r-   r.   )r“   Úexpected_datar”   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ƒsÌJ ‚t|ƒd
ksÜJ ‚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:   ro   c                 S   s   | j S r#   r    r¢   r   r   r   Úaggfun"  s    z+test_aggregate_item_by_item.<locals>.aggfunr   )r   r   r4   r   r   re   r   r+   Úarrayrw   r-   rC   ÚxsZassert_almost_equalr   Ú
isinstance)r    r0   r¦   r1   r£   r¤   ÚKrt   r   r   r   Útest_aggregate_item_by_item  s    


r«   c                 C   sŠ   |   ddg¡}dd„ }tjtdd�� | |¡}W d   ƒ n1 sD0    Y  | jd d …| jdkf }|  ddg¡ |¡}t ||¡ d S )Nr4   rA   c                 S   s   | j tkrt‚n|  ¡ S d S r#   )rn   Úobjectr„   r   r¢   r   r   r   r“   -  s    
ztest_wrap_agg_out.<locals>.funczDropping invalid columnsr6   r5   )r   r-   Úassert_produces_warningÚFutureWarningrB   Úlocre   r.   )Zthree_groupr0   r“   r1   Zexp_groupedr2   r   r   r   Útest_wrap_agg_out*  s    (r°   c                 C   sN   dt jfdt jfdt jfg}|  d¡d  |¡}tg d¢ƒ}t |j	|¡ d S )Nr,   ÚmaxÚminr4   r5   )r,   r±   r²   )
r+   r,   r±   r²   r   r   r   r-   Úassert_index_equalre   )r    Úfuncsr1   Zexp_colsr   r   r   Ú*test_agg_multiple_functions_maintain_order:  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 )Néè  r   ú1/1/2012ÚS)ÚfreqÚperiods©r4   rA   r5   ©r:   re   Ú3Tr4   ç§è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>P  r'   z9test_agg_multiple_functions_same_name.<locals>.<listcomp>©r¾   rÁ   ©re   r:   )r   r+   ÚrandomÚrandnÚpdÚ
date_rangerÅ   r   r   rÂ   r   ra   r§   ÚTr-   r.   )r1   Úexpected_indexÚexpected_columnsÚexpected_valuesr2   r   rÉ   r   Ú%test_agg_multiple_functions_same_nameC  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¸   Zdti)r¹   rº   ro   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Ê   p  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   ra   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_presentX  s*    ý
 ÿ÷ÿÿrÝ   c                 C   sÐ   ddg}ddg}|   d¡d  |¡}|   d¡d  |¡}t ||¡ tjtdd��  |   d¡ |¡}W d   ƒ n1 sx0    Y  tjtdd��  |   d¡ |¡}W d   ƒ n1 s¶0    Y  t ||¡ d S )N)r£   r,   r}   )r}   r}   r4   r5   z&\['B'\] did not aggregate successfullyr6   )r   r   r-   r.   r­   r®   )r    r´   Zex_funcsr1   r2   r   r   r   Ú-test_multiple_functions_tuples_and_non_tuplesy  s    ÿ.ÿ.rÞ   c           
      C   sV  |   d¡}| tjtjdœ¡}| tjtjdœ¡}t||gddgdd�}|jdddd�jddd	�}tjtjgtjtjgdœ}| |¡}t	 
||¡ | tjtjtjgdœ¡}| tjtjtjgdœ¡}t	 
||¡ d
d„ }dd„ }d}	tjt|	d��0 tjtjtjdœdœ}| |¡ W d   ƒ n1 �s,0    Y  tjg||gdœ}| |¡ d S )Nr4   ©r5   r€   r,   r}   r   )Úkeysrh   r   rƒ   rf   c                 S   s
   t  | ¡S r#   ©r+   r,   r   r   r   r   r£      s    z4test_more_flexible_frame_multi_function.<locals>.fooc                 S   s   t j| dd�S )Nr   )Zddof)r+   r}   r   r   r   r   r¤   £  s    z4test_more_flexible_frame_multi_function.<locals>.barúnested renamer is not supportedr6   ©r£   r¤   )r   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 s˜0    Y  dddœddœ}tjt|d�� | |¡ W d   ƒ n1 sà0    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   )ZdatÚgpr:   r1   r2   r   r   r   Útest_groupby_agg_coercing_boolsÉ  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   FT©r   r   r   r   )r   Ú	set_indexr   rn   r   )rî   r    Úsr1   r   r   r   Útest_bool_agg_dtypeÙ  s    rø   zkeys, agg_indexr   r   r›   r   rZ   Úinput_dtype)ÚboolZint32r‰   Zfloat32rp   Úresult_dtypeÚmethod)rq   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ršd	g|	j_t	 
||	¡ d S )Nr   r   Tré   r   c                    s   |   ˆ ¡jd S r   ©r’   Úilocr   ©rû   r   r   r&     r'   z2test_callable_result_dtype_frame.<locals>.<lambda>rò   r   r9   rq   )r   r’   Úgetattrr   rÏ   Ú
RangeIndexrþ   re   r[   r-   r.   )
rà   Ú	agg_indexrù   rû   rü   r    rî   r1   rÒ   r2   r   rÿ   r   Ú test_callable_result_dtype_frameñ  s    ÿ
r  Úinput)Tr   ç      ð?rn   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   rm   r   r   r&     r'   z3test_callable_result_dtype_series.<locals>.<lambda>rò   r   r¥   )
r   r   r   rÏ   r  r   rþ   r’   r-   rC   )
rà   r  r  rn   rü   r    rî   r1   rÒ   r2   r   rm   r   Ú!test_callable_result_dtype_series  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   ©r4   rA   r4   )r   r±   r,   r×   r²   r   )r   r   r   re   Úlevelsr   r-   r³   )r    Úresr1   r2   r   r   r   Ú#test_order_aggregate_multiple_funcs$  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.   )rn   r  r    r2   r1   r   r   r   Útest_uint64_type_handling0  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    r  r:   ÚabcZ2020r€   )rº   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   r  r   r   r   )r   r   r   r   Znuniquerö   r-   r.   )r:   r    r1   r2   r   r   r   Ú$test_agg_index_has_complex_internalsF  s    r  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Útwor  r  r  )Úthreer  r  Úsixr  )Úkey1Úkey2Úkey3r  r  r  )r  r  r   r   r›   r9   )r   r   r²   r   r-   r.   ©r    r1   r2   r   r   r   Útest_agg_split_blockW  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 S )NÚ2000r   )rº   )r   r   r   rä   r   )r   r   rä   Úe)r4   rA   r5   r€   ÚEÚF)r   r   r   r   r   r   r   )
r   rÏ   rÐ   r’   r¬   r   r²   Ú	Timestampr-   r.   r  r   r   r   Ú#test_agg_split_object_part_datetimeh  s,    úÿ	÷


úÿ
r%  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ddgd�}t ||¡ |jddd�}|d
d	g }t ||¡ d S )Nr   r  r   r²   rõ   r   rH   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   sl   t ddgƒ ddg¡}tjtdd�� | ¡  W d   ƒ n1 sB0    Y  | g ¡}tƒ }t ||¡ d S )Nr   r   r   úMust provider6   )	r   r   r;   r<   r„   r   r   r-   r.   ©r(  r)  r1   r2   r   r   r   Útest_no_args_raises�  s    &
z.TestNamedAggregationSeries.test_no_args_raisesc                 C   sJ   t g d¢ƒ g d¢¡}|jddd�}tddgddgdœƒ}t ||¡ d S )N©r   r   r   ©r   r   r   r   rõ   r   r'  )r(  r)  r0   r2   r   r   r   Ú*test_series_named_agg_duplicates_no_raisesš  s    zETestNamedAggregationSeries.test_series_named_agg_duplicates_no_raisesc                 C   sR   t g d¢ƒ g d¢¡}|jdd„ dd„ d�}tddgddgdœƒ}t ||¡ d S )	Nr.  r/  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   r'  r,  r   r   r   Útest_mangled¡  s    z'TestNamedAggregationSeries.test_mangledÚinpÚanythingr²   ©ÚcolumnÚaggfunc)r4  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   )r(  r3  r÷   r>   r   r   r   Útest_named_agg_nametuple§  s    
z3TestNamedAggregationSeries.test_named_agg_nametupleN)r:  Ú
__module__Ú__qualname__r*  r-  r0  r2  r;   ÚmarkÚparametrizerÏ   ÚNamedAggr;  r   r   r   r   r&  ‚  s   
ýþr&  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t
fdtjf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\   ©r  r4   rA   r  ©r4   r±   ©rA   r±   )Úa_maxÚb_maxr   r   r�   r\   r   r   r›   rG  rH  r¼   éb   r¿   ©rA   r²   r4   )Zb_minZa_minZa_meanrG  rH  Za_98rG   rH   r   r   g      à?g      @g\�Âõ(\ï?g×£p=
×@)r   r   r   r   r-   r.   Ú	functoolsr   r+   Ú
percentiler²   r,   )r(  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 )NrB  rè   rC  rD  r  zmy colrE  r   r   r   r   r›   r9   ©r   r   r   r   r-   r.   ©r(  r    r1   r2   r   r   r   Útest_agg_relabel_non_identifierÜ  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 )Nr  r   r  r4   rJ  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.   rK  r   r+   rL  r:  )r(  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 )Nr  r   r  r4   rA   r   r   r9   r   r‚   rE  )r4   r²   )rA   r,   )ZaaZbbÚccr   rW  g      @)r   r   r‘   r   r   r-   r.   rO  r   r   r   Útest_agg_relabel_with_levelþ  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 sŠ0    Y  tjt|d�� |jd	dd
� W d   ƒ n1 sÆ0    Y  d S )Nr/  r.  r  r4   r+  r6   r   )r£   rF  rõ   )r   r   r;   r<   r„   r   )r(  r    r0   r7   r   r   r   Útest_agg_relabel_other_raises  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   )r(  r    r7   r   r   r   Útest_missing_raises  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   Úcountr5  ©r   r   )rA   r   )rA   rb  ©r   r   r   rÏ   r@  r-   r.   rO  r   r   r   Útest_agg_namedtuple  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 r1  r   r   r   r   r   r&   (  r'   rc  r›   r9   rN  rO  r   r   r   r2  &  s    $&z*TestNamedAggregationDataFrame.test_mangledN)r:  r<  r=  rM  rP  rZ  r\  r]  ra  re  r2  r   r   r   r   rA  ·  s   $	rA  zCagg_col1, agg_col2, agg_col3, agg_result1, agg_result2, agg_result3©©rš   r4   r±   rg  )©rš   rA   r,   g      @ç      @c                 C   s   t | ƒS r#   )r±   r   r   r   r   r&   9  r'   c                 C   s   dS r1  r   r   r   r   r   r&   :  r'   r±   rh  c                 C   s   dS r1  r   r   r   r   r   r&   C  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¡j| ||d�}t |||dœ|d�}	t ||	¡ d S )NrB  rè   rC  rD  ©©r   r  rg  rh  r   r   rk  r›   rf  )rG  rG  r   r   r9   )Zcol_1Zcol_2Zcol_3)	r   r   ra   re   r   r   r   r-   r.   )
Zagg_col1Zagg_col2Zagg_col3Zagg_result1Zagg_result2Zagg_result3r    Úidxr1   r2   r   r   r   Ú"test_agg_relabel_multiindex_column-  s    !ÿ
ÿÿrm  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 )NrB  rè   rC  rD  rj  zdo not existr6   rk  ))ÚYr   r±   r8  )	r   r   ra   re   r;   r<   r`  r   r   rÉ   r   r   r   Ú,test_agg_relabel_multiindex_raises_not_exista  s    ÿro  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 )NrB  rè   rC  rD  rj  rk  )rg  r²   rõ   r   r   r›   r   r   r9   )	r   r   ra   re   r   r   r   r-   r.   )r    r1   rl  r2   r   r   r   Ú&test_agg_relabel_multiindex_duplicatesl  s    ÿ
ÿrp  Úkwargsr   r²   rc  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 )Nr  r.  ©r   r   r   ré   r   r   r   r   r‰   ©rn   ro   r   r²   r¼   )r   r   r   r   r   ra   r-   r.   )rq  r    r1   r2   r   r   r   Ú test_groupby_aggregate_empty_key}  s    ýrt  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 )	Nr  r.  rr  ré   r   r   )r  Úcodesr�   )r   r   r   r   r-   r.   r  r   r   r   Ú-test_groupby_aggregate_empty_key_empty_returnŠ  s    rv  c                  C   s\   t g d¢d�} |  ddg¡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   r   )rä   rä   rZ   rÌ   )r   r   r   rw   r   r-   r.   r  r   r   r   Ú2test_groupby_aggregate_empty_with_multiindex_frame’  s    ÿrw  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š   rx  ©r  çš™™™™™é?ri   g      @gÍÌÌÌÌÌ@ç      è?)r   Úvalr   F©Zas_indexr|  r²   r5  ©Úmin_val)r   rš   rx  )r  rz  r{  )r   r  rd  ©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   ry  )r   r  r|  r   r  Fr}  r|  r²   r5  r~  ©r   r   rš   )r   r   r   )r  r{  rz  )r   r  r  rd  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 |ƒ}|j|_t 	||¡ d S )N)r   r   r   )rG   rH   r   r  )r   r   r   ZSiskoZJanewayrZ   r�   r   r   r  g      @rj   rX  g      @ri   ))r   r   )r   r   )r   r   )
r   r   Zfrom_arraysr   r+   r§   r   re   r-   r.   )r“   rd   r    r1   Úexpected_dictr2   r   r   r   Útest_multiindex_custom_func¿  s    ÿþýr†  c                 C   s   t j| dd�S ©NgÍÌÌÌÌÌì?r¿   ©r+   rL  r„  r   r   r   ÚmyfuncÖ  s    r‰  c                 C   s   t j| dd�S r‡  rˆ  r„  r   r   r   r&   Ú  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@©çš™™™™™@ri  çÍÌÌÌÌÌ#@ç     Àh@©ÚkindÚheightÚweightr•  )r–  r,   r–  )Úmean_heightÚperc90gš™™™™™"@g0»'5"@g      4@g5^ºI@r˜  r™  r‹  rŒ  r›   rÌ   rN  )r“   Zanimalsr1   r2   r   r   r   Útest_lambda_named_aggÚ  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XYZr  ©rd   re   r:   )úgroup 1rœ  r   Úgroupingc                 S   s   |   ¡ S r#   )Útolistr   r   r   r   r&   ÷  r'   z,test_aggregate_mixed_types.<locals>.<lambda>r   rœ  r¬   rs  )ÚXrn  ÚZrm   r¼   )
r   r+   r§   r�   rw   r   rB   r   r-   r.   )r    r1   rž   r2   r   r   r   Útest_aggregate_mixed_typesñ  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Ï   ÚNAr   r   r   r   r7  
  s    z5test_aggregate_udf_na_extension_type.<locals>.aggfuncr4   r.  r  r   rŽ   rm   r   r9   )r   rÏ   r§   r   r   r¤  r-   r.   )r7  r    r1   r2   r   r   r   Ú$test_aggregate_udf_na_extension_type  s
    	$r¥  c                   @   sN   e Zd Zdd„ Zdd„ Zejjdd�ej 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 )Nr  r   r  r4   rA   c                 S   s   dS r   r   r   r   r   r   r&     r'   z/TestLambdaMangling.test_basic.<locals>.<lambda>c                 S   s   dS r1  r   r   r   r   r   r&     r'   r   r   ))rA   ú
<lambda_0>)rA   ú
<lambda_1>r›   r9   rN  rO  r   r   r   Ú
test_basic  s     þzTestLambdaMangling.test_basicc                 C   sR   t g d¢ƒ g d¢¡}| dd„ dd„ g¡}tddgddgdœƒ}t ||¡ d S )	Nr   r  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 r1  r   r   r   r   r   r&   #  r'   r   r   ©r§  r¨  r'  r,  r   r   r   Útest_mangle_series_groupby!  s    z-TestLambdaMangling.test_mangle_series_groupbyzGH-26611. kwargs for multi-agg.r¢  z-ignore:Dropping invalid columns:FutureWarningc                 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(  Ú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_maxç¤p=
×³T@ç      B@rŽ  r�  r’  r“  r‹  rŒ  r•  r›   r¼   ©Zbyr–  c                 S   s   t  | d ¡S r8   ©r+   r²   r   r   r   r   r&   L  r'   z=TestLambdaMangling.test_agg_with_one_lambda.<locals>.<lambda>r5  r±   r—  c                 S   s   t  | d ¡S r8   r¸  r   r   r   r   r&   U  r'   ©r–  r±   ©r—  r±   )r   r   r   r   rÏ   r@  r-   r.   ©r(  r    re   r2   Zresult1Zresult2r   r   r   Útest_agg_with_one_lambda4  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‘  ri  r‹  rŒ  r•  r›   r¼   r·  r–  c                 S   s   t  | d ¡S r8   r¸  r   r   r   r   r&   z  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'   r5  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)r:  r<  r=  r©  r«  r;   r>  ÚxfailÚfilterwarningsr±  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)r¸   ÚWrÁ  )r  r  ri   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  ri   )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< | 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‹  r   r   F©Ú
categoriesZorderedro   rn   )rd   r:   )r   rw   r’   r‹  Ú
as_orderedr   r   rÏ   ÚCategoricalIndexrn   r-   r.   )Úgrp_col_dictÚexp_dataÚinput_dfÚ	result_dfÚ	cat_indexÚexpected_dfrn   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                 C   s  t g d¢tdƒtdƒdœƒ}| dddœ¡}|d j ¡ |d< | d¡ | ¡}tjd	d
gd	d
gdddd�}g }|  	¡ D ]:\}}t
|tƒr¢|D ]}| ||g¡ qŒqv| ||g¡ qvt t|ƒ¡}	t ||	|d�}
|
jD ].}t
|tƒrÔd|v rÔ|
|  |d j¡|
|< qÔt ||
¡ d S )NrÇ  rÈ  rÉ  rÊ  rË  rÌ  rÆ  r‹  r   r   FrÍ  r›  )r   rw   r’   r‹  rÏ  r   r   rÏ   rÐ  Úitemsr©   Úappendr   ra   rx   re   rn   r-   r.   )rÑ  rÒ  rÓ  rÔ  rÕ  Zmulti_index_listr�   Úvr   Zmulti_indexrÖ  Úcolr   r   r   Ú#test_groupby_combined_aggs_cat_cols¾  s0    ýÿÿ

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   re   Z	droplevelr-   r.   )r    rb   r1   r2   r   r   r   Útest_nonagg_aggï  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Ÿ  rn  iÕ  r   r–   r®  é   i`= i½  r  r4   rA   )r   Údatetimer   rA   r±   rö   r-   rC   r  r   r   r   Útest_aggregate_datetime_objectsü  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&     r'   z1test_groupby_index_object_dtype.<locals>.<lambda>)r   r   r  )rá  râ  rZ   FTrã  r¥   )r   r:   r’   r   rã  r   r   ra   r   r-   rC   )r    r0   r	  rÒ   r2   r   r   r   Útest_groupby_index_object_dtype  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 r1  r   r   r   r   r   r&   &  r'   z-test_timeseries_groupby_agg.<locals>.<lambda>r   )r   rÏ   r$  r   r   r-   r.   )r“   r    r	  r2   r   r   r   Útest_timeseries_groupby_agg  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+   r`   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   s@   t g d¢dd�} t dgdd�}|  g d¢¡ ¡ }t ||¡ d S )N)z1 dayz3 daysÚNaTztimedelta64[ns]rm   z2 days©r   r   r   )r   r   r,   r-   rC   )rd   r2   r1   r   r   r   Útest_group_mean_timedelta_natB  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   s:   t t| ƒƒ}t t|ƒƒ}| g d¢¡ ¡ }t ||¡ d S )Nrê  )r	   r   r   r,   r-   rC   )Z
input_dataZexpected_outputrd   r2   r1   r   r   r   Útest_group_mean_datetime64_natL  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“   Úoutputrd   r1   r2   r   r   r   Útest_groupby_complexb  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“   rd   r>   r   r   r   Útest_groupby_complex_raisesm  s     rñ  )dÚ__doc__rß  rK  r   r^  Únumpyr+   r;   Zpandas.core.dtypes.commonr   ZpandasrÏ   r   r   r   r   r   r	   Zpandas._testingZ_testingr-   Zpandas.core.baser
   Zpandas.core.groupby.grouperr   r"   r3   r?   rF   rc   rl   ru   ry   rz   r>  r?  r�   rˆ   Úintrr   r•   rŸ   r«   r°   rµ   rÕ   rÝ   rÞ   rå   ræ   rí   rø   r  rú   r  r
  r‰   Zuint64r  r  rÐ  rw   Zinterval_rangeZperiod_rangera   r  r  r%  r&  rA  r²   r@  r,   rm  ro  rp  rt  rv  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>   s€   
1ÿ
úþ
 üþ	
	!$úþ
(þþÿÿ(þþ

üþ	
5vú	

ú	
úïþ


ÿ


yýþ
ýþ
)
þþûþ
	ÿ
