U
    `»{j½  ã                   @   s4  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%ej" #d"d#d$d%d&gd'i fd(d)gd* e&e'e'e'd+œfd,d-gd* e&e'e'e'd+œfd#d$d%d&g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„ Z/dJdK„ Z0dLdM„ Z1dNdO„ Z2ej" #dPdQd„ dRd„ dSd„ dTd„ dUd„ dVd„ g¡dWdX„ ƒZ3ej" #dYdZged[gdZd\�fdZd]ged[gd4ggdgdggdZd]gd^�fg¡ej" #d_d`dad'dbd0g¡ej" #dcd`dad'dbd0g¡ej" #dddedfdgg¡dhdi„ ƒƒƒƒZ4ej" #dYdZged[gdZd\�fdZd]ged[gd4ggdgdggdZd]gd^�fg¡ej" #djdkd[dlg¡ej" #dme5e&e'g¡ej" #dddedfdgg¡dndo„ ƒƒƒƒZ6dpdq„ Z7drds„ Z8ej" #dmej9ej:g¡ej" #dtdudvdwdxdydzg¡d{d|„ ƒƒZ;d}d~„ Z<ej" #de =e>d€ƒ¡e ?dd*¡ej@d�d*d‚dƒ�e Ad„d…d†g¡g¡d‡dˆ„ ƒZBd‰dŠ„ ZCd‹dŒ„ ZDG d�dŽ„ dŽƒZEG d�d�„ d�ƒZFej" #d‘d’d“ejGfd”d[d*gdd4gd•d–gfd“d—d„ fd“d˜d„ fd”d[d*gd[d[gd•d–gfe Hd“dx¡e Hd™ejI¡e Hd“dšd„ ¡d[d*gd•d–gd[d[gfg¡d›dœ„ ƒZJd�dž„ ZKdŸd „ ZLej" #d¡d¢dwgig dwgd£œg¡d¤d¥„ ƒZMd¦d§„ ZNd¨d©„ ZOdªd«„ ZPd¬d­„ ZQej" #d®d¯d„ d°d„ d±d„ g¡d²d³„ ƒZRd´dµ„ ZSej" #d®d¶d„ eSg¡d·d¸„ ƒZTd¹dº„ ZUej"jVd»d¼�d½d¾„ ƒZWG d¿dÀ„ dÀƒZXdÁdÂ„ ZYej" #dÃdwdwdÄœd[d$gdZd¢gdÄœfdÅdwidÅdZd¢gifdÆdwidÆd[d$gifg¡dÇdÈ„ ƒZZej" #dÃdwdxgdwdÄœdÉdÊgfdwdwdxgdÄœdËdÌgfdÅdwdxgidÍdÎgfg¡dÏdÐ„ ƒZ[dÑdÒ„ Z\dÓdÔ„ Z]dÕdÖ„ Z^d×dØ„ Z_dÙdÚ„ Z`dÛdÜ„ Zaej" #dÝdÞdßdàgdágfdâdßdãgdägfg¡dådæ„ ƒZbej" #dçdydèdégfd#dêdëgfg¡dìdí„ ƒZcej" #d®dwdxd,g¡dîdï„ ƒZdej" #d®dwgdydxgd]d#idðdzd£œg¡dñdò„ ƒZeej" #dód9dôgd9dõgd6döggd6d9gdödôdõggd÷œfd9dôgd9dõgdødöggd9døgdôdõgdögd÷œfdZd[gdZd[gd]d4gd]d*ggdZd]gd[d4d*ggd÷œfejfdZd[gdZd4gd]d*gd]d*ggdZd]gd[d4gd*gd÷œej"jVdù�g¡dúdû„ ƒZgd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   sB   t ddddgddddgdœƒ} |  d	¡d
 }dd„ }| |¡ d S )NÚaÚbÚcé   é   é   é   )ÚkeyÚvaluer   r   c                 S   s   t | ƒdkst‚|  ¡ S ©Nr   )ÚlenÚAssertionErrorÚsum©Úx© r   úl/var/www/html/bwave/python/venv/lib/python3.8/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   sf   |   d¡d }d}tjt|d�� | dd„ ¡ W 5 Q R X tjt|d�� | dd„ ¡ W 5 Q R X 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ddddddddg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_dtypeB   sN    þø
õûôüÿrc   c                  C   s”   ddddgddt jdgddt jdgddt jdgg} t| t ddddg¡d�}|jddd	�}|jdd
�}tddddgddddgdœƒ}t ||¡ d S )NTF)r4   r   )r4   r   )rA   r   )rA   r   )ÚdataÚcolumnsr   ©ÚlevelÚaxis)Znumeric_onlyç       @r   ©r   r   )	r+   r`   r   r   ra   r   r   r-   r.   )Úlstr    r!   r1   r2   r   r   r   Ú+test_groupby_aggregation_multi_level_columns   s    
üþrl   c                 C   sê   | j | tj dd�}| jtjks$t‚tg tjtg tjd�d�}t 	| 
¡ |¡ t 	| tj
¡|¡ tj	| tj
¡|dd� |j |d tj dd�}t|jttg dtjd�d�}t | 
¡ |¡ t | tj
¡|¡ t | tj
¡|¡ d S )	NF©Z
group_keys©Údtype)ro   r:   )Zcheck_index_typer4   )Únamero   )re   ro   r:   )r   r+   r`   ro   Úfloat64r   r   r   r-   rC   r   r   Úapplyr   re   Úfloatr.   )Útsr/   r0   ÚexpZexp_dfr   r   r   Útest_agg_apply_corner‡   s    ýrv   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)rt   r    r0   rw   r1   r2   r   r   r   Útest_agg_grouping_is_list_tuplež   s    rz   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    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   sZ   | j dd�}|dkrt}d}nt}d|› d�}tj||d�� |j|dd	� W 5 Q R X 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Œ   rq   c              	   C   s®   t ddddddggd t ddgd	d
dgg¡d� ||dœ¡}| dkrJtnd }d}tj||d�� |jddd� | ¡}W 5 Q R X t |gd d	d
dgd� |¡}t 	||¡ d S )Nr   r   r   r   rG   é   r   r   r‹   rŒ   r�   ©re   ))r   rŒ   )r   rŒ   r~   ú!The default value of numeric_onlyr6   rf   )
r   r   Úfrom_productÚastypeÚFutureWarningr-   Úassert_produces_warningr   r   r.   )Úfuncr2   ro   Úresult_dtype_dictr    Úwarnr>   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dddgdd�tdd	dd	gd
d�dd� ddi¡}| dkrRtnd }d}tj||d�� |j	d
dd� 
| ¡}W 5 Q R X t |tdddgdd�tdd	gd
d�d� |¡}t ||¡ d S )Nr_   r   r   r   r   Úy©rp   rš   rœ   r   rŠ   )r:   re   ro   rŽ   r~   r‘   r6   r„   )rd   r:   re   )r   r+   ÚarangeÚreshaper   r“   r”   r-   r•   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ƒsÌt‚t|ƒd
ksÜt‚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:   rp   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+   Úarrayrx   r-   rC   ZxsZassert_almost_equalr   Ú
isinstancer   )r    r0   r©   r1   r¦   r§   ÚKru   r   r   r   Útest_aggregate_item_by_item  s    


r­   c              	   C   sv   |   ddg¡}dd„ }tjtdd�� | |¡}W 5 Q R X | 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#   )ro   Úobjectr…   r   r¥   r   r   r   r–   4  s    
ztest_wrap_agg_out.<locals>.funczDropping invalid columnsr6   r5   )r   r-   r•   r”   rB   Úlocre   r.   )Zthree_groupr0   r–   r1   Zexp_groupedr2   r   r   r   Útest_wrap_agg_out1  s    r°   c                 C   sP   dt jfdt jfdt jfg}|  d¡d  |¡}tdddgƒ}t |j	|¡ d S )Nr,   ÚmaxÚminr4   r5   )
r+   r,   r±   r²   r   r   r   r-   Úassert_index_equalre   )r    Úfuncsr1   Zexp_colsr   r   r   Ú*test_agg_multiple_functions_maintain_orderA  s    rµ   c                     s¬   t tj dd¡tjdddd�dddg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Úperiodsr4   rA   r5   ©r:   re   Ú3Tç§è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>W  s     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_nameJ  s&    ý
ÿÿ  ÿrÔ   c               	      sæ   t tj dd¡tjddddd�tddd	g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ddddddgd
d d g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º   rp   r4   rA   r5   Úalpharž   r»   r¼   Úohlcr½   r¾   rÀ   r�   )r4   rÖ   Úopen)r4   rÖ   Úhigh)r4   rÖ   Úlow)r4   rÖ   Úclose)r4   rÁ   r4   rZ   c                    s"   g | ]}ˆ   d ¡jj|d�j‘qS rÂ   rÃ   rÆ   rÈ   r   r   rÉ   w  s     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_present_  s:    ý
 ÿú÷ÿ  ÿrÛ   c              	   C   s¨   ddg}ddg}|   d¡d  |¡}|   d¡d  |¡}t ||¡ tjtdd�� |   d¡ |¡}W 5 Q R X tjtdd�� |   d¡ |¡}W 5 Q R X 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_tuples€  s      ÿ ÿrÜ   c           
   	   C   s@  |   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��& tjtjtjdœdœ}| |¡ W 5 Q R X 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 5 Q R X dddœddœ}tjt|d�� | |¡ W 5 Q R X dddœddœ}tjt|d�� | |¡ W 5 Q R X 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 ddddgddddgd d ddg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 )Nr   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|ƒsDt‚| | d¡ƒj}t|ƒs`t‚d S )Nr   FT©r   r   r   r   )r   Ú	set_indexr   ro   r   r   )rê   r    Úsr1   r   r   r   Útest_bool_agg_dtypeà  s    rô   zkeys, agg_indexr   r   rž   r   rZ   Úinput_dtypeÚboolZint32Zfloat32Úresult_dtypeÚmethodrr   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   rr   )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ÿ   ÚinputTç      ð?ro   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   rn   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   ro   rø   r    rê   r1   rÑ   r2   r   rn   r   Ú!test_callable_result_dtype_series  s     r  c                  C   sf   t ddddgddddgdœƒ} |  d¡ ddd	d
dg¡}|jjd }tddd	d
dgƒ}t ||¡ d S )Nr   r   r   r   ©r4   rA   r4   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  c              	   C   s¦   t ddddddgddtjddtjgd	œ| d
�}| d¡ ¡ }t ddddgtjgd dgd dgd gt dgddddgg¡tddddg| dd�| d�}t 	||¡ d S )Nr   r   r   r   é   rM   rš   rœ   rñ   rn   r   r   r×   rØ   rÙ   rÚ   ©ro   rp   )re   r:   ro   )
r   rÎ   ÚNAr   rÖ   r   r’   r   r-   r.   )Zany_numeric_ea_dtyper    r1   r2   r   r   r   Útest_ohlc_ea_dtypes7  s    $þ&ür
  ÚhowÚfirstÚlastr²   r±   r,   Úmedianc                 C   st   t dddgdœƒ}| d¡ d|i¡}|j | ¡|_| d¡ d|i¡}|dk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.   )ro   r  r    r2   r1   r   r   r   Útest_uint64_type_handlingG  s    r  c               	   C   sT   d} t ddddgddddgdœƒ}tjt| d�� | d	¡ d
d
g¡ W 5 Q R X d S )NzFunction namesr   r   r   r   r   r  r6   r4   r²   )r   r;   r<   r   r   r   )r>   r    r   r   r   Útest_func_duplicates_raisesU  s    r  r:   ÚabcZ2020r�   )rº   r¹   )r   r   )r   r   )r   r   c                 C   s`   t dddgdddgdœ| d�}| d¡ dtji¡}t ddgddgdœƒ d¡}t ||¡ d S )Nr   r   r   )Úgroupr   r9   r  r   )r   r   r   r   Znuniquerò   r-   r.   )r:   r    r1   r2   r   r   r   Ú$test_agg_index_has_complex_internals]  s    r  c                  C   sr   t dddddgdddddgdddddgdœƒ} |  d¡ ¡ }t ddgddgd	œtddgdd
�d�}t ||¡ d S )Nr   r   ÚoneÚtwoÚthreeÚsix)Úkey1Úkey2Úkey3r  )r  r  rž   r9   )r   r   r²   r   r-   r.   ©r    r1   r2   r   r   r   Útest_agg_split_blockn  s    ýÿþr  c               
   C   s¤   t tjddd�ddddgdd	d
dgddddgtjddd�dd	d
dgdœƒ t¡} |  ddddg¡ ¡ }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   Úe)r4   rA   r5   r�   ÚEÚFr   )
r   rÎ   rÏ   r“   r®   r   r²   Ú	Timestampr-   r.   r  r   r   r   Ú#test_agg_split_object_part_datetime  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 ddddgƒ}| ddddg¡}|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   r²   rñ   rH   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   sX   t ddgƒ ddg¡}tjtdd�� | ¡  W 5 Q R X | 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   sN   t dddgƒ dddg¡}|jddd�}tddgddgdœƒ}t ||¡ d S )Nr   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   sV   t dddgƒ dddg¡}|jdd„ dd„ d�}tddgddgdœƒ}t ||¡ d S )	Nr   r   r   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   Útest_mangled¸  s    z'TestNamedAggregationSeries.test_mangledÚinpÚanythingr²   ©ÚcolumnÚaggfunc)r0  r²   c              	   C   sZ   t ddddddddgƒ}dt|ƒj› �}tjt|d�� | |j¡j|d� W 5 Q R X d S )	Nr   r   r   r   rG   zfunc is expected but received r6   ©r   )	r   ÚtypeÚ__name__r;   r<   r…   r   rÅ   r   )r&  r/  ró   r>   r   r   r   Útest_named_agg_nametuple¾  s    
z3TestNamedAggregationSeries.test_named_agg_nametupleN)r6  Ú
__module__Ú__qualname__r(  r+  r,  r.  r;   ÚmarkÚparametrizerÎ   ÚNamedAggr7  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 ddddgddddgddd	d
g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�dddddd gd�}t ||¡ d S )!Nr   r   r   r   r   r   rG   r�   rH   r\   ©r  r4   rA   r  ©r4   r±   ©rA   r±   )Úa_maxÚb_maxrž   rA  rB  r»   éb   r¾   ©rA   r²   r4   )Úb_minÚa_minÚa_meanrA  rB  Úa_98g      à?g      @g\�Âõ(\ï?g×£p=
×@rE  rF  rG  rH  )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   sn   t ddddgddddgddd	d
gdœƒ}| d¡jf ddiŽ}t dddgitddgdd�d�}t ||¡ d S )Nr   r   r   r   r   r   rG   r�   rH   r\   r>  r  zmy colr?  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 ddddgddddg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 dddddgdddddg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   r   r   r  r4   rD  rñ   rž   r9   é2   r¾   éF   Úquant50Úquant70r   r   rG   )Úcol1Úcol2rS  rT  )Zquantile_50Zquantile_70ç      ø?ç      @g333333û?gš™™™™™@)r   r   r   r   r-   r.   rI  r   r+   rJ  r6  )r&  r    r0   r2   rQ  rR  Útestr   r   r   Útest_duplicate_no_raisesü  s$    &"
 ÿþz6TestNamedAggregationDataFrame.test_duplicate_no_raisesc                 C   s€   t ddddgddddg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   r   r   r  r4   rA   r   r   r9   rƒ   r?  )r4   r²   )rA   r,   )ZaaZbbÚccrU  g      @)r   r   r’   r   r   r-   r.   rM  r   r   r   Útest_agg_relabel_with_level  s    þ  ÿ ÿz9TestNamedAggregationDataFrame.test_agg_relabel_with_levelc              	   C   sœ   t dddgdddgdœƒ}| d¡}d}tjt|d�� |jdd	� W 5 Q R X tjt|d�� | ¡  W 5 Q R X tjt|d�� |jd
dd� W 5 Q R X d S )Nr   r   r   r   r  r4   r)  r6   )r¦   r@  )r   r   r   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   sP   t ddgddgdœƒ}t d¡}tjt|d�� | d¡jdd	� W 5 Q R X 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   Úcountr1  ©r   r   )rA   r   )rA   r`  ©r   r   r   rÎ   r<  r-   r.   rM  r   r   r   Útest_agg_namedtuple5  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   )r4   rA   r5   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 r-  r   r   r   r   r   r&   ?  r'   ra  rž   r9   rL  rM  r   r   r   r.  =  s    $&z*TestNamedAggregationDataFrame.test_mangledN)r6  r8  r9  rK  rN  rX  rZ  r[  r_  rc  r.  r   r   r   r   r=  Î  s   $	r=  zCagg_col1, agg_col2, agg_col3, agg_result1, agg_result2, agg_result3©©r�   r4   r±   re  )©r�   rA   r,   g      @ç      @c                 C   s   t | ƒS r#   )r±   r   r   r   r   r&   P  r'   c                 C   s   dS r-  r   r   r   r   r   r&   Q  r'   rf  c                 C   s   dS r-  r   r   r   r   r   r&   Z  r'   c           
      C   s¶   t ddddgddddgddd	d
gdœƒ}t dddg¡|_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 )Nr   r   r   r   r   r   rG   r�   rH   r\   r>  ©r   r  re  rf  rž   rd  )rA  rA  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_columnD  s$    !"ÿ
  ÿ
 ÿrj  c               	   C   sj   t ddddgddddgddd	d
gdœƒ} t dddg¡| _tjtdd�� |  d¡jdd� W 5 Q R X d S )Nr   r   r   r   r   r   rG   r�   rH   r\   r>  rh  re  rf  zdo not existr6   ))ÚYr   r±   r4  )	r   r   ra   re   r;   r<   r^  r   r   rÈ   r   r   r   Ú,test_agg_relabel_multiindex_raises_not_existx  s    "ÿrl  c                  C   sˆ   t ddddgddddgddd	d
gdœƒ} t dddg¡| _|  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   r   r   r   r   rG   r�   rH   r\   r>  rh  re  rf  )re  r²   rñ   rž   r9   )	r   r   ra   re   r   r   r   r-   r.   )r    r1   ri  r2   r   r   r   Ú&test_agg_relabel_multiindex_duplicatesƒ  s    "ÿ
 ÿrm  Úkwargsr   ra  c                 C   sn   t dddgdddgdddg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»   )r   r   r   r   r   ra   r-   r.   )rn  r    r1   r2   r   r   r   Ú test_groupby_aggregate_empty_key”  s    "ýro  c                  C   sb   t dddgdddgdddgdœƒ} |  d¡ dg i¡}t tdgg gg g gd�d	�}t ||¡ d S )
Nr   r   r   r   rå   r   r   )r  Úcodesr�   )r   r   r   r   r-   r.   r  r   r   r   Ú-test_groupby_aggregate_empty_key_empty_return¡  s    "rq  c                  C   sb   t dddg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�   Frm   )râ   râ   rZ   rË   )r   r   r   rx   r   r-   r.   r  r   r   r   Ú2test_groupby_aggregate_empty_with_multiindex_frame©  s     ÿrr  c                  C   st   t ddddddgdddddd	gd
œƒ} | jddd�}|jtjddd�d�}t dddgddd	gdœƒ}t ||¡ d S )Nr   r�   Úzr  çš™™™™™é?ri   ç      @çÍÌÌÌÌÌ@ç      è?)r   Úvalr   F©Zas_indexrx  r²   r1  ©Úmin_val)r   r{  rb  ©r    r0   r1   r2   r   r   r   Ú9test_grouby_agg_loses_results_with_as_index_false_relabel³  s     ÿr}  c               	   C   sŽ   t ddddddgddddddgdddd	d
dgdœƒ} | jddgdd�}|jtjddd�d�}t dddgdddgdddgdœƒ}t ||¡ d S )Nr   r�   r   r   r   r  rt  ri   ru  rv  rw  )r   r  rx  r   r  Fry  rx  r²   r1  rz  )r   r  r{  rb  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–   dddgdddgg}t |tjdddgdddg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 )Nr   r   r   rG   rH   r   ZSiskoZJanewayrZ   r�   r   r  g      @rj   rV  g      @ri   ))r   r   )r   r   )r   r   )
r   r   Zfrom_arraysr   r+   rª   r   re   r-   r.   )r–   rd   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+   rJ  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   sz   t ddddgddddgddd	d
g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Údogç333333"@ç      @ç      #@ç      A@çš™™™™™@rg  çÍÌÌÌÌÌ#@ç     Àh@©ÚkindÚheightÚweightrŽ  )r�  r,   r�  )Úmean_heightÚperc90gš™™™™™"@g0»'5"@g      4@g5^ºI@r‘  r’  rž   rË   rL  )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�} dddg| 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dddgdd�d�}t 	||¡ d S )Nr   r]   r   ZXYZr  ©rd   re   r:   zgroup 1r   Úgroupingc                 S   s   |   ¡ S r#   )Útolistr   r   r   r   r&     r'   z,test_aggregate_mixed_types.<locals>.<lambda>r®   r  ÚXrk  ÚZrn   r»   )
r   r+   rª   r    rx   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   sj   dd„ } t dt dddg¡iƒ}| dddg¡ | ¡}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   r3  !  s    z5test_aggregate_udf_na_extension_type.<locals>.aggfuncr4   r   r   r   rŽ   rn   r9   )r   rÎ   rª   r   r   r	  r-   r.   )r3  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   st   t ddddgddddg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   r   r   r  r4   rA   c                 S   s   dS r   r   r   r   r   r   r&   0  r'   z/TestLambdaMangling.test_basic.<locals>.<lambda>c                 S   s   dS r-  r   r   r   r   r   r&   0  r'   ))rA   ú
<lambda_0>)rA   ú
<lambda_1>rž   r9   rL  rM  r   r   r   Ú
test_basic.  s     þzTestLambdaMangling.test_basicc                 C   sZ   t ddddgƒ ddddg¡}| dd„ dd„ g¡}tddgddgd	œƒ}t ||¡ d S )
Nr   r   r   r   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 r-  r   r   r   r   r   r&   :  r'   ©rž  rŸ  r%  r*  r   r   r   Útest_mangle_series_groupby8  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&   A  r'   z5TestLambdaMangling.test_with_kwargs.<locals>.<lambda>r   c                 S   s   |   ¡ ||  S r#   r@   r£  r   r   r   r&   B  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 ddddgddddgddd	d
gdœƒ}dddg}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‡  rˆ  r‰  rŠ  rg  r‹  rŒ  r�  Úheight_sqr_minÚ
height_maxÚ
weight_maxç¤p=
×³T@ç      B@)r©  rª  r«  rŽ  rž   r»   ©Zbyr�  c                 S   s   t  | d ¡S r8   ©r+   r²   r   r   r   r   r&   c  r'   z=TestLambdaMangling.test_agg_with_one_lambda.<locals>.<lambda>r1  r±   r�  c                 S   s   t  | d ¡S r8   r¯  r   r   r   r   r&   l  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_lambdaK  s<    


ýÿ
ýù ÿû
ýz+TestLambdaMangling.test_agg_with_one_lambdac              	   C   s  t ddddgddddgddd	d
gdœƒ}dddddg}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Š  rg  r‹  rŒ  r�  r©  rª  r«  Úheight_max_2Ú
weight_minr¬  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'   r1  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_lambdar  sR    


ýÿûû÷


û ÿù	z+TestLambdaMangling.test_agg_multiple_lambdaN)r6  r8  r9  r   r¢  r;   r:  ÚxfailÚfilterwarningsr¨  r³  r·  r   r   r   r   r�  -  s   

'r�  c                  C   s^   t dddgdddgdœƒ} |  d¡ ddd	„ i¡}t ddgddgdœƒ d¡}t ||¡ d S )
Nr¸   ÚWr  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   rò   r-   r.   )r    r  r2   r   r   r   Útest_groupby_get_by_index¦  s    r½  zgrp_col_dict, exp_data)ÚnrÚcat_ordr¿  r¾  c              	   C   s¶   t ddddddddg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|kr¦|d j	}|d  |¡|d< t
 ||¡ d S )Nr   r   r   r   rG   r�   rH   r\   ÚaabbccddÚaaaabbbb©r¾  r¿  r„  Úcategory©r„  r¿  r¿  r„  r   r   F©Ú
categoriesÚorderedrp   ro   )rd   r:   )r   rx   r“   r„  Ú
as_orderedr   r   rÎ   ÚCategoricalIndexro   r-   r.   )Úgrp_col_dictÚexp_dataÚinput_dfÚ	result_dfÚ	cat_indexÚexpected_dfro   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 ddddddddg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˜q‚| ||g¡ q‚t t|ƒ¡}	t ||	|d�}
|
jD ].}t
|tƒràd|krà|
|  |d j¡|
|< qàt ||
¡ d S )Nr   r   r   r   rG   r�   rH   r\   rÀ  rÁ  rÂ  rÃ  rÄ  r¿  r„  r   r   FrÅ  r”  )r   rx   r“   r„  rÈ  r   r   rÎ   rÉ  Úitemsr«   Úappendr   ra   ry   re   ro   r-   r.   )rÊ  rË  rÌ  rÍ  rÎ  Zmulti_index_listr�   Úvr   Zmulti_indexrÏ  Úcolr   r   r   Ú#test_groupby_combined_aggs_cat_colsÕ  s8    ýÿ    ÿ

rÕ  c                  C   s\   t ddddgddddgdœƒ} |  d¡}| dg¡}|j d¡|_| d¡}t ||¡ d S )Nr   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—  rk  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 dddgdddgdddg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 )Nr   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–   7  s    z)test_timeseries_groupby_agg.<locals>.funcr  z2018-01-16 00:00:00+00:00r9   c                 S   s   dS r-  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_agg4  s
    rß  c              	   C   s®   | dkrd S | dkrt nd }tddgdtjggƒ}tj|dd��* | d¡ | ¡}| d¡ d| i¡}W 5 Q R X | dkrŽtj||d dd	� nt 	||¡ t |j
|j
¡ d S )
N)ZcorrwithZnthZmadr   r   zThe 'mad' method is deprecatedr6   )r¤   ZngroupF)Zcheck_names)r”   r   r+   r`   r-   r•   r   r   rC   r.   Zdtypes)r‡   r˜   ÚobjZresult_reduced_seriesZresult_reduced_framer   r   r   Ú test_groupby_aggregate_directoryC  s$      ÿ ÿrá  c                  C   sD   t dddgdd�} t dgdd�}|  dddg¡ ¡ }t ||¡ d S )Nz1 dayz3 daysÚNaTztimedelta64[ns]rn   z2 daysr   )r   r   r,   r-   rC   )rd   r2   r1   r   r   r   Útest_group_mean_timedelta_nat[  s    rã  zinput_data, expected_outputz2021-01-01T00:00râ  z2021-01-01T02:00z2021-01-01T01:00z2021-01-01T00:00-0100z2021-01-01T02:00-0100z2021-01-01T01:00-0100c                 C   s<   t t| ƒƒ}t t|ƒƒ}| dddg¡ ¡ }t ||¡ d S r   )r
   r   r   r,   r-   rC   )Z
input_dataZexpected_outputrd   r2   r1   r   r   r   Útest_group_mean_datetime64_nate  s    rä  zfunc, outputy       @      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_complex{  s     rè  c              	   C   sX   t t d¡ dd¡ ddg¡ƒ}d}tjt|d�� | |j	d ¡ 
| ¡ W 5 Q R X 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_raises†  s     ré  Úprodc              	   C   sX   t dddgdddgdddgd	œƒ}|jd
dd�}tjtdd�� | | ¡ W 5 Q R X d S )Nr   r   r   r   rG   r�   rH   r\   rå   r   r„   z"axis other than 0 is not supportedr6   )r   r   r;   r<   ÚNotImplementedErrorr   )r–   r    r!   r   r   r   Útest_multi_axis_1_raises�  s    "rì  ztest, constantr4   rA   r5   rj   r¥  )Zmarksc                 C   s<   t | ƒ}| d¡ tj¡}t |ƒ}| d¡}t ||¡ d S r   )r   r   r   r   Úmoderò   r-   r.   )rW  ZconstantZdf1r1   r2   r   r   r   Útest_agg_of_mode_listš  s
    
rî  )hÚ__doc__rØ  rI  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   rc   rl   rv   rz   r{   r:  r;  r‚   r‰   Úintrs   r™   r¢   r­   r°   rµ   rÔ   rÛ   rÜ   rã   rä   ré   rô   rÿ   rö   r  r  r
  rŠ   Zuint64r  r  rÉ  rx   Zinterval_rangeZperiod_rangera   r  r  r#  r$  r=  r²   r<  r,   rj  rl  rm  ro  rq  rr  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   Ú<module>   s°   
1 ÿ
úþ
 üþ	
	!$úþ
(þþ ÿ ÿ(þþ

üþ	
5vú	

ú	
úïþ


 ÿ


yýþ
ýþ
)
þþûþ
	 ÿ

 ÿ
**0ýüþ