a
    é´«j¡© ã                   @   s   d dl m Z  d dlZd dlmZ d dlZd dlZd dlZd dlmZm	Z	 d dl
m  mZ d dlZd dlmZmZmZmZmZmZmZmZmZmZmZmZ d dlmZ d dlm Z  d dl!m"  m#Z$ ej% &d¡Z'dd	„ Z(d
d„ Z)ej% *dg d¢¡dd„ ƒZ+dd„ Z,dd„ Z-dd„ Z.dd„ Z/ej% *dddg¡dd„ ƒZ0dd„ Z1dd „ Z2d!d"„ Z3ej% *dg d#¢¡d$d%„ ƒZ4d&d'„ Z5d(d)„ Z6d*d+„ Z7d,d-„ Z8d.d/„ Z9d0d1„ Z:d2d3„ Z;d4d5„ Z<d6d7„ Z=ej% *d8d9d:„ d;d:„ g¡d<d=„ ƒZ>d>d?„ Z?d@dA„ Z@dBdC„ ZAdDdE„ ZBdFdG„ ZCdHdI„ ZDdJdK„ ZEdLdM„ ZFdNdO„ ZGdPdQ„ ZHdRdS„ ZIdTdU„ ZJdVdW„ ZKej% *dXdYdZg¡d[d\„ ƒZLej% *dXg d]¢¡ej% *d^ddg¡d_d`„ ƒƒZMdadb„ ZNdcdd„ ZOdedf„ ZPdgdh„ ZQdidj„ ZRdkdl„ ZSdmdn„ ZTdodp„ ZUdqdr„ ZVdsdt„ ZWdudv„ ZXdwdx„ ZYdydz„ ZZd{d|„ Z[d}d~„ Z\dd€„ Z]d�d‚„ Z^dƒd„„ Z_d…d†„ Z`d‡dˆ„ Zad‰dŠ„ Zbd‹dŒ„ Zcd�dŽ„ Zdd�d�„ Zed‘d’„ Zfd“d”„ Zgd•d–„ Zhd—d˜„ Zid™dš„ Zjd›dœ„ Zkd�dž„ ZldŸd „ Zmd¡d¢„ Znd£d¤„ Zod¥d¦„ Zpd§d¨„ Zqd©dª„ Zrd«d¬„ Zsd­d®„ Ztej% *d¯d°d°d±gg¡d²d³„ ƒZud´dµ„ Zvd¶d·„ Zwd¸d¹„ Zxdºd»„ Zyd¼d½„ Zzd¾d¿„ Z{dÀdÁ„ Z|dÂdÃ„ Z}ej% *dÄdÅdÆdÇdÅdÆgdÅdÇgg¡ej% *dÈdÉdÊdÉdÊgg¡dËdÌ„ ƒƒZ~dÍdÎ„ Zej% *dÏdÐdÐgg¡ej% *dÑd°gd°d±gg¡ej%j*dÒdgd gdÓgdÔged gƒed ƒged dÕdÕdÖd×�ej€dØdÙdÚdÛ�ej�d gdÜdÝ�ej�d gdÞdÝ�ej�dgdßdÝ�gg dà¢dá�ej% *dâg dã¢¡ej% *d8g dä¢¡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øgg¡dùdú„ ƒZ‹ej% *dûdüdýddedþƒedÿƒddgif�d dýedþƒedÿƒe�dƒe�dƒe�dƒe�dƒgif�ddýedþƒedÿƒedþƒedÿƒe�dƒe�dƒgifg¡�d�d„ ƒZŒ�d�d„ Z��d�d	„ ZŽ�d
�d„ Z��d�d„ Z��d�d„ Z‘ej% *�dg �d¢¡�d�d„ ƒZ’�d�d„ Z“ej% *�de�ddÔfeddfe�ddfe�ddfe�ddfe�ddfe�ddÔfeddfe�ddfe�ddfe�ddfe�ddfg¡�d�d„ ƒZ”�d�d„ Z•ej% *�d g �d!¢¡�d"�d#„ ƒZ–ej% *�d$dej—de ˜�d%¡�d&�g¡�d'�d(„ ƒZ™�d)�d*„ Zšej% *�d+�d,�d-�d.gf�d/�d0�d1gfg¡�d2�d3„ ƒZ›�d4�d5„ Zœ�d6�d7„ Z��d8�d9„ Zž�d:�d;„ ZŸ�d<�d=„ Z ej% *d^ddg¡�d>�d?„ ƒZ¡�d@�dA„ Z¢�dB�dC„ Z£�dD�dE„ Z¤�dF�dG„ Z¥�dH�dI„ Z¦�dJ�dK„ Z§�dL�dM„ Z¨�dN�dO„ Z©�dP�dQ„ Zªej% *�dRddÔdÔgg¡�dS�dT„ ƒZ«�dU�dV„ Z¬ej% *�dWd gdf�dXd gdf�dYg¡�dZ�d[„ ƒZ­ej% *�d g �d\¢¡�d]�d^„ ƒZ®ej% *�d_�d`�dag¡�db�dc„ ƒZ¯ej% *�dd�de�dfg¡�dg�dh„ ƒZ°ej% *�di�djdej±fg¡�dk�dl„ ƒZ²ej% *�dmg �dn¢g �do¢g �dp¢fg �dq¢g �dr¢g �ds¢fg¡�dt�du„ ƒZ³ej% *�dvg �dw¢¡�dx�dy„ ƒZ´ej% &�dz¡ej% *dâg �d{¢¡�d|�d}„ ƒƒZµ�d~�d„ Z¶�d€�d�„ Z·ej% *d^ddg¡�d‚�dƒ„ ƒZ¸ej% &�d„¡�d…�d†„ ƒZ¹ej% *�d‡dÕdÔg¡�dˆ�d‰„ ƒZºej% *dâg �dŠ¢¡�d‹�dŒ„ ƒZ»�d��dŽ„ Z¼�d��d�„ Z½�d‘�d’„ Z¾ej% *�d“ddg¡ej% *�d”�d•�d–dÔgdÕe¿f�d–dÔg�d—df�d˜�dd gdÕe¿f�dd g�d—dfg¡�d™�dš„ ƒƒZÀ�d›�dœ„ ZÁ�d��dž„ ZÂ�dŸ�d „ ZÃej% *�d“ddg¡�d¡�d¢„ ƒZÄdS (£  é    )ÚdatetimeN)ÚDecimal)ÚPerformanceWarningÚSpecificationError)ÚCategoricalÚ	DataFrameÚGrouperÚIndexÚIntervalÚ
MultiIndexÚ
RangeIndexÚSeriesÚ	TimedeltaÚ	TimestampÚ
date_rangeÚto_datetime)ÚBooleanArrayz)ignore:Mean of empty slice:RuntimeWarningc                  C   s$   t tddd�ƒ} d}| |ks J ‚d S )NÚAÚB)ÚkeyÚlevelz<Grouper(key='A', level='B', axis=0, sort=False, dropna=True))Úreprr   )ÚresultÚexpected© r   ú`/var/www/html/laksyashrimp/venv/lib/python3.9/site-packages/pandas/tests/groupby/test_groupby.pyÚ	test_repr%   s    r   c           
      C   sØ   t jddd�}t|ƒ}|d d d…  d9  < | d¡ ¡ }|tdƒ |d< |tdd	d
� |d< t j|jd< | t	t
dƒƒd ¡}| ¡ }tdƒ}tdƒ}t|d ||||gt d¡d�}t|||dœƒ}	t ||	¡ d S )Nz1 Dayé'  ©Úperiodsé   é   r   r   r   ÚUTC©ÚtzÚCéÿÿÿÿiÐ  z2887 days 11:21:02.326710176z2886 days 00:42:34.664668096©Úindex©r   r   r%   )ÚpdZtimedelta_ranger   Úto_frameÚcopyr   ÚNaTÚilocÚgroupbyÚlistÚrangeÚstdr   ÚnpÚaranger   ÚtmÚassert_frame_equal)
Zwarn_copy_on_writeZtdiÚserÚdfÚgbr   Ztd1Ztd4Zexp_serr   r   r   r   Útest_groupby_std_datetimelike,   s     r:   Údtype)Úint64Úint32Úfloat64Úfloat32c                    s<  t t d¡d t d¡| d�}t d¡}tj d¡ |¡ | |¡}|jdd„ dd�}|D ]\}}t|ƒdksZJ ‚qZd	}t	j
t|d
�� | tj¡}W d   ƒ n1 s¨0    Y  |d dksÂJ ‚d	}t	j
t|d
�� | tj¡}W d   ƒ n1 sö0    Y  t	 ||¡ t	 || ¡ ¡ | ¡ }	d}t	j
t|d
�� | tj¡}W d   ƒ n1 �sZ0    Y  t	 |	|¡ | dd„ ¡}| dd„ ¡}
|
d dk�sžJ ‚t	 |
|¡ | |¡}d	}t	j
t|d
�� | tj¡}	W d   ƒ n1 �sê0    Y  t	j|	|dd� d}t	j
t|d
��" | tjtjg¡}W d   ƒ n1 �s@0    Y  d}tjt|d
��$ | tjtjdœ¡ W d   ƒ n1 �sˆ0    Y  ddddœ‰ d}t	j
t|d
��" | ‡ fdd„¡}W d   ƒ n1 �sÚ0    Y  |d dk�söJ ‚d}tjt|d
�� | dd„ ¡ W d   ƒ n1 �s.0    Y  d S )Né	   é   ©r(   r;   r!   c                 S   s   | d S ©NrA   r   ©Úxr   r   r   Ú<lambda>O   ó    z)test_basic_aggregations.<locals>.<lambda>F©Ú
group_keyszusing SeriesGroupBy.mean©Úmatché   zusing SeriesGroupBy.sumc                 S   s   | |   ¡  S ©N©ÚsumrD   r   r   r   rF   d   rG   c                 S   s   | |   ¡  S rM   rN   rD   r   r   r   rF   e   rG   é   é   ©Zcheck_index_typezusing SeriesGroupBy.[mean|std]únested renamer is not supported)ÚoneÚtwoé
   é   é   ©r   rL   r!   z„Pinning the groupby key to each group in SeriesGroupBy.agg is deprecated, and cases that relied on it will raise in a future versionc                    s   ˆ | j  |  ¡  S rM   )ÚnameÚmeanrD   ©Zgroup_constantsr   r   rF      rG   é   zMust produce aggregated valuec                 S   s   | d S ©Nr!   r   rD   r   r   r   rF   †   rG   )r   r3   r4   ÚrandomÚdefault_rngÚshuffleÚreindexr/   Úlenr5   Úassert_produces_warningÚFutureWarningÚ	aggregater[   ÚaggÚassert_series_equalrO   ÚapplyÚ	transformr2   ÚpytestÚraisesr   Ú	Exception)r;   Údatar(   ÚgroupedÚkÚvÚmsgÚaggedr   r   ÚtransformedZvalue_groupedr   r\   r   Útest_basic_aggregationsG   sZ    

**,
,24ÿ2ru   c                 C   sj   | j jd }|  |¡}| ¡ }|  | d¡¡ ¡ }|j jtjksDJ ‚|j jtjksVJ ‚t	j
||dd� d S )Nr   ÚOFrR   )r(   Úcodesr/   rO   Úastyper;   r3   Úint8r<   r5   r6   )Ú multiindex_dataframe_random_datar   ro   r   r   r   r   r   Útest_groupby_nonobject_dtype‰   s    
r{   c                  C   s¶   t g d¢g d¢tj d¡ d¡tjtj d¡ d¡dd�dœƒ} tt| ƒƒ| d< d	d
„ }d}tj	t
|d��  |  d¡ |¡}W d   ƒ n1 s�0    Y  |j}| j}t ||¡ d S )N©ÚfooÚbarr}   r~   r}   r~   r}   r}   )rT   rT   rU   ÚthreerU   rU   rT   r   r!   é   r?   ©r;   ©r   r   r%   ÚDÚvaluec                 S   s   | j | d  ¡  S )Nr„   )ÚlocÚidxmax©Úgroupr   r   r   Ú	max_value    s    z5test_groupby_nonobject_dtype_mixed.<locals>.max_valueú7DataFrameGroupBy.apply operated on the grouping columnsrJ   r   )r   r3   r_   r`   Ústandard_normalÚarrayr1   rc   r5   rd   re   r/   ri   Údtypesrh   )r8   r‰   rr   Zappliedr   r   r   r   r   Ú"test_groupby_nonobject_dtype_mixed”   s    üÿ.rŽ   c            
      C   s~  t g d¢tt d¡dd�tddd�dœƒ} dd	„ }|  d
¡ ¡ dg }d}tjt	|d��& |  d
¡ 
|¡dg }W d   ƒ n1 s„0    Y  t ||¡ dd„ }d}tjt	|d��& |  d
¡ 
|¡dg }W d   ƒ n1 sà0    Y  | ¡ }tj|jd< t ||¡ dd„ }d}tjt	|d��& |  d
¡ 
|¡dg }W d   ƒ n1 �sR0    Y  | ¡ }tj|jd< t ||¡ dd„ }d}tjt	|d��& |  d
¡ 
|¡dg }W d   ƒ n1 �sÄ0    Y  |  d
¡ ¡ dg }tj|jd< t ||¡ dd„ }	d}tjt	|d��  |  d
¡ 
|	¡}W d   ƒ n1 �s<0    Y  |  d
¡ ¡ d  ¡ }tj|jd< d |_t ||¡ d S )N)ÚTigerr�   r�   ÚLambr�   ÚPonyr‘   rP   r<   r�   Z20130101r   r)   c                 S   s
   | j d S ©Nr   )r.   ©Úgrpr   r   r   Úf_0¶   s    z*test_inconsistent_return_type.<locals>.f_0r   r   rŠ   rJ   c                 S   s   | j dkrd S | jd S )Nr�   r   ©rZ   r.   r“   r   r   r   Úf_1¿   s    
z*test_inconsistent_return_type.<locals>.f_1r�   c                 S   s   | j dkrd S | jd S ©Nr‘   r   r–   r“   r   r   r   Úf_2Ë   s    
z*test_inconsistent_return_type.<locals>.f_2r‘   c                 S   s   | j dkrd S | jd S r˜   r–   r“   r   r   r   Úf_3Ø   s    
z*test_inconsistent_return_type.<locals>.f_3r%   c                 S   s   | j dkrd S | jd jd S )Nr‘   r   r%   )rZ   r.   r…   r“   r   r   r   Úf_4å   s    
z*test_inconsistent_return_type.<locals>.f_4)r   r   r3   r4   r   r/   Úfirstr5   rd   re   ri   r6   r,   Únanr…   r*   r-   rZ   rh   )
r8   r•   r   rr   r   r—   Úer™   rš   r›   r   r   r   Útest_inconsistent_return_type«   sR    
ýÿ44660rŸ   c              	   C   sà  ddd„}dd„ }|   dd„ ¡}|jtjddd�}|jtjddd�}|jtjddd�}| d	¡}| |¡}	t ||¡ t ||¡ t ||	¡ |j|dd
�}|j|dd
�}|j|dd
�}t ||¡ t ||¡ t ||	¡ dD �]ø}
|j dd„ |
d�}|
�rd nt	}d}tj
||d��" |jtjddd�}W d   ƒ n1 �sB0    Y  tj
||d�� | tjd	¡}W d   ƒ n1 �s€0    Y  tj
||d�� | d	¡}W d   ƒ n1 �sº0    Y  tj||dd� t ||¡ | tjdd	g¡}tj
||d�� | dd	g¡}W d   ƒ n1 �s&0    Y  tj||dd� tj
||d�� |j|dd
�}W d   ƒ n1 �st0    Y  tj
||d��  |jtjd	d
�}W d   ƒ n1 �s´0    Y  t ||¡ tj||dd� qàd S )Nr   c                 S   s   t j| ||d�S )N©Úaxis©r3   Ú
percentile)rE   Úqr¡   r   r   r   Úfô   s    z test_pass_args_kwargs.<locals>.fc                 S   s   t j| ddd�S )NéP   r   r    r¢   rD   r   r   r   rF   ÷   rG   z'test_pass_args_kwargs.<locals>.<lambda>c                 S   s   | j S rM   ©ÚmonthrD   r   r   r   rF   ú   rG   r¦   r    çš™™™™™é?©r¤   )TFc                 S   s   | j S rM   r§   rD   r   r   r   rF     rG   ©Úas_indexú*A grouping .* was excluded from the resultrJ   F©Zcheck_namesgš™™™™™Ù?)Nr   )r/   rg   r3   r£   ri   rj   Úquantiler5   rh   re   rd   r   r6   )ÚtsÚtsframer¥   ÚgZ
ts_groupedZ
agg_resultZapply_resultZtrans_resultZagg_expectedZtrans_expectedr¬   Ú
df_groupedÚwarnrr   r   Zexpected_seqr   r   r   Útest_pass_args_kwargsó   sN    



2.*..0rµ   r¬   TFc                 C   sÆ   g d¢| _ | jdd„ |d�}|r$d nt}d}tj||d��" |jtjddd	�}W d   ƒ n1 sb0    Y  | | jj	d
k  
d¡| | jj	dk  
d¡dœ}t|ƒj}|s¶ttdƒƒ|_t ||¡ d S )N)r   r   r   r%   c                 S   s   | j S rM   r§   rD   r   r   r   rF   ,  rG   z9test_pass_args_kwargs_duplicate_columns.<locals>.<lambda>r«   r­   rJ   r¦   r   r    rL   r©   r!   ©rL   r!   )Úcolumnsr/   re   r5   rd   rg   r3   r£   r(   r¨   r¯   r   ÚTr	   r1   r6   )r±   r¬   r9   r´   rr   ÚresZex_datar   r   r   r   Ú'test_pass_args_kwargs_duplicate_columns(  s    
0þ
rº   c                  C   s    t tj d¡ d¡ttdƒtd�tdddd�d	�} |  	d
d„ dd„ dd„ g¡}t
|ƒt
| ƒksbJ ‚|  	dd„ dd„ g¡}t
dd„ | jD ƒƒ}t
|ƒ|ksœJ ‚d S )Nr!   ©rV   é   ÚABCDr�   ú
2000-01-01rV   r   ©r   Úfreq©r·   r(   c                 S   s   | j S rM   ©ÚyearrD   r   r   r   rF   E  rG   ztest_len.<locals>.<lambda>c                 S   s   | j S rM   r§   rD   r   r   r   rF   E  rG   c                 S   s   | j S rM   ©ÚdayrD   r   r   r   rF   E  rG   c                 S   s   | j S rM   rÂ   rD   r   r   r   rF   H  rG   c                 S   s   | j S rM   r§   rD   r   r   r   rF   H  rG   c                 S   s   h | ]}|j |jf’qS r   )rÃ   r¨   ©Ú.0rE   r   r   r   Ú	<setcomp>I  rG   ztest_len.<locals>.<setcomp>)r   r3   r_   r`   r‹   r	   r0   Úobjectr   r/   rc   r(   )r8   ro   r   r   r   r   Útest_len?  s    ýrÊ   c                  C   sd   t tjgd g d¢dœƒ} t|  d¡ƒdks0J ‚t|  d¡ƒdksFJ ‚t|  ddg¡ƒdks`J ‚d S )NrA   ©rL   r!   rA   ©ÚaÚbrÍ   r   rÎ   )r   r3   r�   rc   r/   ©r8   r   r   r   Útest_len_nan_groupM  s    rÐ   c                  C   sT   t dd„ ttddƒƒd D ƒƒ} tj d¡ d¡d }t |ƒ}|  |¡}| ¡  d S )Nc                 S   s   g | ]}d | ‘qS )ç      ð?r   rÆ   r   r   r   Ú
<listcomp>W  rG   z)test_basic_regression.<locals>.<listcomp>rL   rV   r!   iL  g      $@)r   r0   r1   r3   r_   r`   r/   r[   )r   rn   Ú	groupingsro   r   r   r   Útest_basic_regressionU  s
     
rÔ   )r>   r?   r<   r=   Zint16ry   c                 C   s¸   t t d¡ƒ}tt d¡|| d�}ttjdddtjtjddtjdg
|d�}| |¡}| t¡}tddgddgd�}t	j
||dd	� d
d„ }| |¡}tddgddgd�}t	 
||¡ d S )NrV   r�   r}   r~   r'   r¼   r!   F©Zcheck_dtypec                 S   s   t t| ƒƒS rM   )Úfloatrc   rD   r   r   r   r¥   u  s    ztest_with_na_groups.<locals>.fç      @ç       @)r	   r3   r4   r   Úonesr�   r/   rg   rc   r5   rh   )r;   r(   ÚvaluesÚlabelsro   rs   r   r¥   r   r   r   Útest_with_na_groups`  s    þ


rÜ   c            	   	   C   s  dd„ } dd„ }dd„ }t g d¢tdƒtd	d
ƒdœƒ}t g d¢tdƒtd	d
ƒdœƒ}d}d}tjt|d��  | d¡ | ¡}W d   ƒ n1 s�0    Y  tjt|d��  | d¡ | ¡}W d   ƒ n1 sÎ0    Y  t ||¡ d}tj	t
|d��  | d¡ |¡ W d   ƒ n1 �s0    Y  tj	t
|d��  | d¡ |¡ W d   ƒ n1 �s^0    Y  tj	t
|d��  | d¡ |¡ W d   ƒ n1 �sž0    Y  tj	t
|d��P tjt|d��  | d¡ |¡ W d   ƒ n1 �sî0    Y  W d   ƒ n1 �s0    Y  d S )Nc                 S   sb   | | j d dk d }|jrLtg gd g gd ddgd�}tdg|d�}|S | ddg¡}|S d S )Nr!   rL   rÎ   Úc©Zlevelsrw   ÚnamesrÍ   rÁ   )rÎ   Úemptyr   r   Ú	set_index©rE   ÚyÚ
multiindexr¹   r   r   r   Úf1�  s    z,test_indices_concatenation_order.<locals>.f1c                 S   s8   | | j d dk d }|jr"tƒ S | ddg¡}|S d S )Nr!   rL   rÎ   rÝ   )rÎ   rà   r   rá   )rE   rã   r   r   r   Úf2‹  s
    z,test_indices_concatenation_order.<locals>.f2c                 S   sV   | | j d dk d }|jrNtg gd g gd ddgd�}tddg|d�}|S |S d S )	Nr!   rL   r}   r~   rÞ   rÍ   rÎ   rÁ   )rÎ   rà   r   r   râ   r   r   r   Úf3“  s    ÿz,test_indices_concatenation_order.<locals>.f3)rL   r!   r!   r!   r¼   r    r@   ©rÍ   rÎ   rÝ   )rA   r!   r!   r!   zDThe behavior of array concatenation with empty entries is deprecatedrŠ   rJ   rÍ   z@Cannot concat indices that do not have the same number of levels)r   r1   r5   rd   re   r/   ri   r6   rk   rl   ÚAssertionError)	rå   ræ   rç   r8   Údf2Údepr_msgrr   Úresult1Úresult2r   r   r   Ú test_indices_concatenation_order~  s,    
..000rî   c                 C   s¼   |   dd„ ¡}| ¡ }| dd„ ¡}t ||¡ | ¡ }dd„ |D ƒ}t|ƒj}t ||¡ |j	}| dd„ ¡}t ||¡ d}t
jt|d�� t|d	ƒ W d   ƒ n1 s®0    Y  d S )
Nc                 S   s   |   ¡ S rM   ©ÚweekdayrD   r   r   r   rF   ¼  rG   z#test_attr_wrapper.<locals>.<lambda>c                 S   s   t j| dd�S )NrL   )Zddof)r3   r2   rD   r   r   r   rF   ¿  rG   c                 S   s   i | ]\}}||  ¡ “qS r   )Údescribe)rÇ   rZ   Úgpr   r   r   Ú
<dictcomp>Ä  rG   z%test_attr_wrapper.<locals>.<dictcomp>c                 S   s   | j S rM   r�   rD   r   r   r   rF   Ê  rG   z-'SeriesGroupBy' object has no attribute 'foo'rJ   r}   )r/   r2   rg   r5   rh   rñ   r   r¸   r6   r;   rk   rl   ÚAttributeErrorÚgetattr)r°   ro   r   r   rr   r   r   r   Útest_attr_wrapper»  s    
rö   c                 C   sn  |   dd„ ¡}| d¡}t|ƒdks(J ‚t|jƒdks:J ‚|  ¡ }dd„ |jD ƒ|d< |  d¡ d¡}tj||d	d
� |  d¡  dd„ ¡}| 	dd„ ¡}t|ƒdks¨J ‚t|jƒdksºJ ‚| 	dd„ ¡}|D ]2\}}| 
¡ }|jD ]}	tj| |	¡|d	d
� qâqÌ|D ]"\}
}|jd  ¡ |
k�sJ ‚�q|j}|j}| ¡ D ],\}}| j || ¡}||k ¡ �s<J ‚�q<d S )Nc                 S   s   |   ¡ S rM   rï   rD   r   r   r   rF   Ô  rG   z$test_frame_groupby.<locals>.<lambda>r[   r    r¼   c                 S   s   g | ]}|  ¡ ‘qS r   rï   rÆ   r   r   r   rÒ   Ý  rG   z&test_frame_groupby.<locals>.<listcomp>rð   Fr®   rX   c                 S   s   |   ¡ S rM   rï   rD   r   r   r   rF   â  rG   c                 S   s   | |   ¡  S rM   ©r[   rD   r   r   r   rF   ã  rG   c                 S   s   |   ¡ S rM   r÷   rD   r   r   r   rF   è  rG   r   )r/   rf   rc   r·   r,   r(   r5   r6   Úheadrj   r[   rh   Úxsrð   ÚgroupsÚindicesÚitemsÚtakeÚall)r±   ro   Ú
aggregatedZtscopyZstraggedrt   rZ   rˆ   r[   Úidxrð   rú   rû   rp   rq   Z	samethingr   r   r   Útest_frame_groupbyÓ  s0    

r  c           	      C   s  dddddœ}d}t jt|d�� | j|dd�}W d   ƒ n1 sD0    Y  | d¡}t|ƒt| ƒkslJ ‚t|jƒdks~J ‚d	d
„ }d}t jt|d��  | jj|dd�}W d   ƒ n1 s¾0    Y  t  | 	|¡j| 	|¡¡ |D ]\}}t|jƒdksæJ ‚qæd S )Nr   rL   r‚   ú+DataFrame.groupby with axis=1 is deprecatedrJ   r    r[   r!   c                 S   s   | |   ¡  S rM   r÷   rD   r   r   r   rF     rG   z,test_frame_groupby_columns.<locals>.<lambda>ú5The 'axis' keyword in DataFrame.groupby is deprecated)
r5   rd   re   r/   rf   rc   r·   r¸   r6   rj   )	r±   Úmappingrr   ro   rÿ   ÚtfZgroupedTrp   rq   r   r   r   Útest_frame_groupby_columnsû  s    ,
.r  c                 C   s6  |   d¡}|jdd�}|jjdks&J ‚| j ddd�jdd�}|jjdksLJ ‚|ddg  d¡}|jjdksnJ ‚| dd	d
œ¡}|jjdksŽJ ‚|d  ¡ }|jjdksªJ ‚|d  d¡}|jjdksÈJ ‚|d  dd	g¡}|jjdksêJ ‚d}tjt|d��$ |d  dd	dœ¡ W d   ƒ n1 �s(0    Y  d S )Nr   T©Únumeric_onlyFr«   r%   rƒ   r[   r2   ©r%   rƒ   rS   rJ   ©r}   r~   )r/   r[   r(   rZ   rg   rk   rl   r   )r8   ro   r   rr   r   r   r   Útest_frame_set_name_single  s$    
r  c                 C   sÚ   | d }| d }|   |j|jg¡}|jdd�}|   ddg¡ ¡ }tj|jd d …ddgf |jd d …ddgf dd� ttj 	d	¡ 
d
¡tj 	d	¡ 
d
¡t g d¢¡t g d¢¡dœg d¢d�} |   ddg¡}| d¡ d S )Nr   r   Tr  r%   rƒ   Fr®   r!   é   ©rÎ   rÎ   rÎ   rÍ   rÍ   rÍ   ©Ú1r  r  Ú2r  r  )Úv1Úv2Úk1Úk2)rT   rU   r   ÚfourÚfiveÚsixr'   r  r  rO   )r/   Úgetr[   r5   r6   r…   r   r3   r_   r`   r‹   rŒ   rg   )r8   Úcol1Úcol2ro   rs   r   r   r   r   Útest_multi_func-  s$    *ÿüù
r  c                 C   sJ   |   ddg¡d }| ddg¡}t| d¡| d¡dœƒ}t ||¡ d S )Nr   r   r%   r[   r2   )r[   r2   )r/   rg   r   r5   r6   )r8   ro   rs   r   r   r   r   Ú!test_multi_key_multiple_functionsI  s    r  c                  C   sÎ   t g d¢g d¢tj d¡ d¡tj d¡ d¡tj d¡ d¡dœƒ} |  ddg¡}dd	g}| |¡}tj|d
  |¡|d  |¡|d  |¡gg d¢dd�}t	|j
tƒs®J ‚t	|j
tƒs¾J ‚t ||¡ d S )N©r}   r}   r}   r}   r~   r~   r~   r~   r}   r}   r}   ©rT   rT   rT   rU   rT   rT   rT   rU   rU   rU   rT   r!   é   )r   r   rƒ   ÚEÚFr   r   r[   r2   rƒ   r   r!  )rƒ   r   r!  rL   )Úkeysr¡   )r   r3   r_   r`   r‹   r/   rg   r*   ÚconcatÚ
isinstancer(   r   r5   r6   )rn   ro   Úfuncsrs   r   r   r   r   Ú"test_frame_multi_key_function_listQ  s&    ãÿ"
&ýr&  c              	   C   s°   t g d¢g d¢g d¢tj d¡ d¡tj d¡ d¡tj d¡ d¡dœƒ}| ddg¡}d	d
g}t d¡}| rtd}tj	t
|d�� | |¡ W d   ƒ n1 s¢0    Y  d S )Nr  r  )Údullr'  Úshinyr'  r'  r(  r(  r'  r(  r(  r(  r!   r  )r   r   r%   rƒ   r   r!  r   r   r[   r2   ú&agg function failed [how->mean,dtype->ú-dtype 'str' does not support operation 'mean'rJ   )r   r3   r_   r`   r‹   r/   ÚreÚescaperk   rl   Ú	TypeErrorrg   )Úusing_infer_stringrn   ro   r%  rr   r   r   r   Ú2test_frame_multi_key_function_list_partial_failure�  s     Öÿ/
r/  Úopc                 C   s   |   ¡ S rM   rN   rD   r   r   r   rF   º  rG   rF   c                 C   s   |   ¡ S rM   r÷   rD   r   r   r   rF   º  rG   c              	   C   s"  | }|  ddg¡}||ƒ}g }g }|  d¡D ]J\}}|  d¡D ]6\}	}
| ||	f¡ | ||
jd d …ddgf ƒ¡ q>q,tj|ddgd�}tj|dd�j}||_dD ]8}||| ƒ}|| }|| }t	 
||¡ t	 
||¡ q¤|d   |d |d g¡ ¡ }|  ddg¡ ¡ d }t	 
||¡ d S )	Nr   r   r%   rƒ   ©rß   rL   r    r	  )r/   Úappendr…   r   Úfrom_tuplesr*   r#  r¸   r(   r5   rh   r[   )r8   r0  rn   ro   rì   r"  rÚ   Zn1Zgp1Zn2Zgp2Úmir   ÚcolZ
result_colZpivotedÚexpr   r   r   r   Útest_groupby_multiple_columnsº  s*    $r7  c                  C   s    t ddgddgddggddgd�} | jdd	d
�d  d¡}tddgdd�}t ||¡ | jdd	dd�d  dd„ ¡}tg d¢dt g d¢¡d�}t ||¡ d S )NrL   r!   r¼   r    r  r   r   ©r·   Fr«   ©rZ   T)r¬   rI   c                 S   s   |   ¡ S rM   )ÚcumsumrD   r   r   r   rF   ã  rG   z-test_as_index_select_column.<locals>.<lambda>)r!   r  r  ))r   r   )r   rL   r¶   ©rZ   r(   )	r   r/   Ú	get_groupr   r5   rh   ri   r   r3  ©r8   r   r   r   r   r   Útest_as_index_select_columnÛ  s    "ÿÿr>  c                  C   s„   d} t g d¢g d¢dœƒ}|j| d¡j d¡ }tjt| d��0 | d¡jd|d�}t 	||¡ W d   ƒ n1 sv0    Y  d S )	Nzobj is deprecated©rL   rL   r!   ©rA   r¼   r    rÌ   rÎ   r¼   rJ   )Úobj)
r   r.   r/   rû   r  r5   rd   re   r<  r6   )rë   r8   r   r   r   r   r   Ú!test_obj_arg_get_group_deprecatedë  s    rB  c                  C   sd   t tg d¢dd�d�} | jddd�d jdd	�}t | jd d
… tdƒd�}d g|j_t ||¡ d S )Nr)   Úalphar9  r8  r   F)Úbyr¬   r   r  r!   r   rÁ   )	r   r	   r/   rO   r·   r1   rß   r5   r6   )r8   Úleftr   r   r   r   Ú0test_groupby_as_index_select_column_sum_empty_dfõ  s
    
rF  c                 C   sÔ  | j ddd�}|ddg  d¡}|jdd�}t ||¡ | dd	d
œ¡}|jdd�}| ¡ d |d< t ||¡ | j ddd�}d}tjt|d��" |d  dd	i¡ W d   ƒ n1 s¸0    Y  | j ddgdd�}| d¡}| ¡ }t ||¡ | dd	d
œ¡}| ¡ }| ¡ d |d< t ||¡ |d  ¡ }t	|ƒj
ddid�}d}tjt|d��" |d  dd	i¡}W d   ƒ n1 �s‚0    Y  t ||¡ t	tj d¡ ddd¡g d¢d�} ttj d¡ ddd¡dd�}	|   |	¡}
|
 d¡ d}tjt|dd�� |
 t¡}W d   ƒ n1 �s"0    Y  tjt|dd��  |   |	¡ t¡}W d   ƒ n1 �sd0    Y  t ||¡ dD ]P}| j |	dd�}
t|
|ƒƒ }| j |	jdd�}
t|
|ƒƒ jdd�}t ||¡ �q~d S )Nr   Fr«   r%   rƒ   r[   Tr  rO   r	  rS   rJ   ÚQr   r8  z7Passing a dictionary to SeriesGroupBy.agg is deprecatedr!   r   éd   )é2   rA   )ÚjimZjoeZjolier    rV   rI  rJ  r9  z:The behavior of DataFrame.sum with axis=None is deprecated)rK   Zcheck_stacklevel)r[   ÚmaxÚcountr†   r:  rþ   ©Údrop)r/   rg   r[   r5   r6   rO   rk   rl   r   r   Úrenamerd   re   r3   r_   r`   Úintegersr   Únthri   rõ   rÚ   Úreset_index)r8   ro   r   r   rí   Ú	expected2rr   Z	expected3Zresult3r°   Úgrr¹   ZaltÚattrrE  Úrightr   r   r   Útest_groupby_as_index_agg   sZ    0
2þ

*0rW  c                 C   sþ   | dv rt  d| › �¡ ttj d¡jdddd�dd	gd
�}t| d¡| ƒƒ }| dkr`| 	d¡}| 
¡ }| dkrˆ|d  |d j¡|d< |jddd�}t|| ƒƒ }t ||¡ | | ¡}t ||¡ t|d	 | ƒƒ }t ||¡ |d	  | ¡}t ||¡ d S )N)ZcorrwithrQ  Úngroupz!GH 5755: Test not applicable for r!   r   r    )rH  r!   )ÚsizerÍ   rÎ   r8  rY  Fr«   )rk   Úskipr   r3   r_   r`   rP  rõ   r/   rO  rR  rx   r;   r5   r6   rg   )Zreduction_funcr8   r   r²   r   r   r   r   Útest_ops_not_as_indexC  s(    ÿ

r[  c                 C   s.  | j ddd�}| j ddgdd�}|d  d¡}| d¡jd d …ddgf }t|tƒsXJ ‚t ||¡ |d  d¡}| d¡jd d …g d¢f }t|tƒsœJ ‚t ||¡ |d  ¡ }| ¡ jd d …ddgf }t|tƒsÜJ ‚t ||¡ |d  ¡ }| ¡ jd d …g d¢f }t|tƒ�sJ ‚t ||¡ d S )Nr   Fr«   r   r%   rO   r)   )r/   rg   r…   r$  r   r5   r6   rO   )r8   ro   Úgrouped2r   r   rí   rS  r   r   r   Ú!test_as_index_series_return_framee  s$    r]  c                 C   sR   | j ddd�}d}tjt|d�� |d  d¡ W d   ƒ n1 sD0    Y  d S )Nr   Fr«   zColumn\(s\) C already selectedrJ   r%   rƒ   )r/   rk   rl   Ú
IndexErrorÚ__getitem__)r8   ro   rr   r   r   r   Ú(test_as_index_series_column_slice_raises~  s    r`  c                 C   sÚ   | }|j ddd�}|jdd�}|  dg¡jdd�}| dd|j¡ tt|ƒƒ|_t ||¡ |j ddgdd�}| ¡ }|  ddg¡ ¡ }tt	|jj
Ž ƒ}| dd|d ¡ | dd|d ¡ tt|ƒƒ|_t ||¡ d S )	Nr   Fr«   Tr  r   r   rL   )r/   r[   Úinsertr(   r   rc   r5   r6   r0   ÚziprÚ   )r8   rn   ro   r   r   Zarraysr   r   r   Útest_groupby_as_index_cython‡  s    rc  c                 C   sL   | j ddgdd�}|d  t¡}| t¡jd d …g d¢f }t ||¡ d S )Nr   r   Fr«   r%   r)   )r/   rg   rc   r…   r5   r6   ©r8   ro   r   r   r   r   r   Ú#test_groupby_as_index_series_scalarž  s    re  c              	   C   sÀ   d}t jt|d��" |jdd„ dd� W d   ƒ n1 s:0    Y  d}d}t jt|d��R tjt|d��$ | jd	d„ dd
d� W d   ƒ n1 s”0    Y  W d   ƒ n1 s²0    Y  d S )Nz(as_index=False only valid with DataFramerJ   c                 S   s   |   ¡ S rM   rï   rD   r   r   r   rF   «  rG   z.test_groupby_as_index_corner.<locals>.<lambda>Fr«   z$as_index=False only valid for axis=0r  c                 S   s   |   ¡ S rM   )ÚlowerrD   r   r   r   rF   ±  rG   rL   )r¬   r¡   )rk   rl   r-  r/   Ú
ValueErrorr5   rd   re   )r8   r°   rr   rë   r   r   r   Útest_groupby_as_index_corner¨  s    0rh  c                  C   s  t tj d¡ d¡ttdƒtd�tdddd�d	�} |  	d
d„ dd„ dd„ g¡}| 
¡ }t | j|j¡ d}tjt|d��2 | jj	dd„ dd„ dd„ gdd�}W d   ƒ n1 s°0    Y  | dd„ ¡}t |j| j¡ t | jj|j¡ | dd„ ¡}t | jj|j¡ d S )Nr!   r»   r½   r�   r¾   rV   r   r¿   rÁ   c                 S   s   | j S rM   rÂ   rD   r   r   r   rF   º  rG   z+test_groupby_multiple_key.<locals>.<lambda>c                 S   s   | j S rM   r§   rD   r   r   r   rF   º  rG   c                 S   s   | j S rM   rÄ   rD   r   r   r   rF   º  rG   r  rJ   c                 S   s   | j S rM   rÂ   rD   r   r   r   rF   Á  rG   c                 S   s   | j S rM   r§   rD   r   r   r   rF   Á  rG   c                 S   s   | j S rM   rÄ   rD   r   r   r   rF   Á  rG   rL   r    c                 S   s   |   ¡ S rM   rN   rD   r   r   r   rF   Ä  rG   c                 S   s   |   ¡ S rM   rN   rD   r   r   r   rF   È  rG   )r   r3   r_   r`   r‹   r	   r0   rÉ   r   r/   rO   r5   Zassert_almost_equalrÚ   rd   re   r¸   rg   Úassert_index_equalr(   r·   )r8   ro   rs   rë   r   r   r   Útest_groupby_multiple_key´  s$    ýÿ$rj  c                 C   sP   |   ¡ } tj| d< |  ddg¡ ¡ }|  ddg¡ ¡ }tj|d< t ||¡ d S )NÚbadr   r   )r,   r3   r�   r/   r[   r5   r6   )r8   rs   r   r   r   r   Útest_groupby_multi_cornerÌ  s    

rl  c                 C   s¼  |   d¡}t d¡}|rd}tjt|d�� | d¡ W d   ƒ n1 sJ0    Y  tjt|d�� | ¡  W d   ƒ n1 s€0    Y  | jd d …g d¢f } t	 
¡ | d< |   d¡}d}tjt|d�� | d	¡ W d   ƒ n1 sè0    Y  tjt|d�� | ¡  W d   ƒ n1 �s 0    Y  d
}tjt|d��( | j dddddœdd�}W d   ƒ n1 �sl0    Y  d}tjt|d�� | dd„ ¡ W d   ƒ n1 �s®0    Y  d S )Nr   r)  r*  rJ   r[   ©r   r%   rƒ   r   z/datetime64 type does not support sum operationsrO   r  r   rL   )r   r%   rƒ   r   r    z?does not support reduction 'sum'|Cannot perform reduction 'sum'c                 S   s   | j ddd�S )Nr   Fr  rN   rD   r   r   r   rF   ñ  rG   z)test_raises_on_nuisance.<locals>.<lambda>)r/   r+  r,  rk   rl   r-  rg   r[   r…   r   ÚnowrO   r5   rd   re   )r8   r.  ro   rr   rë   r   r   r   Útest_raises_on_nuisanceØ  s,    

(&
((8ro  Úagg_functionrK  Úminc                 C   sv   |   d¡}t||ƒƒ }| ¡ }t| j| d dkdf |ƒƒ |jd< t| j| d dkdf |ƒƒ |jd< t ||¡ d S )Nr   r~   r   )r~   r   r}   )r}   r   )r/   rõ   r,   r…   r5   r6   )r8   rp  ro   r   r   r   r   r   Útest_keep_nuisance_aggô  s    
$$rr  )rO   r[   Úprodr2   ÚvarÚsemÚmedianr  c                 C   sú   |   d¡}d}||v r˜|s˜|r0d|› d�}t}n(|dv rBt}d}nt}t d|› d�¡}tj||d	��  t||ƒ|d
� W d   ƒ qö1 sŒ0    Y  n^t||ƒ|d
�}|s¾|dkr¾g d¢}	ng d¢}	t| jd d …|	f   d¡|ƒ|d
�}
t	 
||
¡ d S )Nr   )rt  r2   ru  r[   rs  rv  ú(dtype 'str' does not support operation 'ú')r2   ru  z(could not convert string to float: 'one'zagg function failed [how->z,dtype->rJ   r  rO   r‚   rm  )r/   r-  rg  r+  r,  rk   rl   rõ   r…   r5   r6   )r8   rp  r  r.  ro   Zno_drop_nuisancerr   Úklassr   r·   r   r   r   r   Útest_omit_nuisance_agg  s*    
0
ÿrz  c                 C   sX   |   d¡}t}d}|rt}d}tj||d�� | ¡  W d   ƒ n1 sJ0    Y  d S )Nr   zcould not convertz-dtype 'str' does not support operation 'skew'rJ   )r/   rg  r-  rk   rl   Úskew)r8   r.  ro   Úerrrr   r   r   r   Ú$test_raise_on_nuisance_python_single'  s    
r}  c                 C   s’   |   ddg¡}t d¡}|r d}tjt|d�� | d¡ W d   ƒ n1 sN0    Y  tjt|d�� | ¡  W d   ƒ n1 s„0    Y  d S )Nr   r   r)  r*  rJ   r[   )r/   r+  r,  rk   rl   r-  rg   r[   )Zthree_groupr.  ro   rr   r   r   r   Ú&test_raise_on_nuisance_python_multiple4  s    
(r~  c                 C   sØ   t t g d¢¡t g d¢¡ddgd tj d¡ d¡tj d¡ d¡dœƒ}| d	d
g¡}|ddg  d¡}|jdd�}t	 
||¡ | dd… jdd�}| dd„ ¡}|d  d¡}t	 |d |¡ |jjdksÔJ ‚d S )Nr  r  r}   r~   rA   r!   r  )r  r  Zk3r  r  r  r  r  r  r[   Tr  r    r   ©r   c                 S   s   |   ¡ S rM   r÷   rD   r   r   r   rF   Q  rG   z*test_empty_groups_corner.<locals>.<lambda>r   rœ   )r   r3   rŒ   r_   r`   r‹   r/   rg   r[   r5   r6   ri   rh   r(   rZ   )rz   r8   ro   r   r   rs   Zagged_Ar   r   r   Útest_empty_groups_corner?  s"    
ûÿ
r€  c                  C   sN   t dgƒ} d}tjt|d�� |  dd„ ¡ W d   ƒ n1 s@0    Y  d S )Nr   z5unsupported operand type\(s\) for \+: 'int' and 'str'rJ   c                 S   s   | d S )Nr}   r   rD   r   r   r   rF   [  rG   z$test_nonsense_func.<locals>.<lambda>)r   rk   rl   r-  r/   )r8   rr   r   r   r   Útest_nonsense_funcW  s    
r�  c                 C   sì   | j }d|d< t g d¢¡t g d¢¡g}t d¡}|r<d}tjt|d��  | |¡ 	d¡ W d   ƒ n1 sp0    Y  |j
dd� |¡ 	d¡}t|jtƒs¢J ‚d	d
„ }tjtdd��  | |¡ |¡ W d   ƒ n1 sÞ0    Y  d S )NZpeekaboo)ÚbazrU   ©r   r   rL   r)  r*  rJ   r[   r8  c                 S   s   | j dkrtdƒ‚|  ¡ S )N)r}   rT   úTest error message)rZ   r-  rO   )r7   r   r   r   Úaggfunm  s    
z5test_wrap_aggregated_output_multindex.<locals>.aggfunr„  )r¸   r3   rŒ   r+  r,  rk   rl   r-  r/   rg   rN  r$  r·   r   rf   )rz   r.  r8   r"  rr   rs   r…  r   r   r   Ú%test_wrap_aggregated_output_multindex^  s    
.r†  c                 C   sh   | j dd� ¡ }|jjdks J ‚| j dd� ¡ }|jjdks@J ‚| d j dd� ¡ }|jjdksdJ ‚d S )Nr   r  rœ   rL   Úsecondr   )r/   rL  r(   rZ   )rz   r   r   r   r   Útest_groupby_level_applyv  s    rˆ  c                    sÒ   |   ¡ }dddddœ‰ ddddœ‰| jˆ dd� ¡ }| jˆdd� ¡ }tj‡ fdd„|d D ƒtjd	�}tj‡fd
d„|d D ƒtjd	�}|  |¡ ¡ }|  |¡ ¡ }d\|j_|j_t 	||¡ t 	||¡ d S )Nr   rL   )r}   r~   r‚  Úqux)rT   rU   r   r  c                    s   g | ]}ˆ   |¡‘qS r   ©r  rÆ   )Úmapper0r   r   rÒ   Š  rG   z-test_groupby_level_mapper.<locals>.<listcomp>rœ   r�   c                    s   g | ]}ˆ   |¡‘qS r   rŠ  rÆ   )Úmapper1r   r   rÒ   �  rG   r‡  )rœ   r‡  )
rR  r/   rO   r3   rŒ   r<   r(   rZ   r5   r6   )rz   Z	deleveledZresult0rì   Zmapped_level0Zmapped_level1Z	expected0Z	expected1r   )r‹  rŒ  r   Útest_groupby_level_mapper€  s     ÿÿr�  c                  C   s.  t g d¢tg d¢dd�ƒ} t g d¢ttddƒdd�ƒ}| jdd	� ¡ }t ||¡ | jdgd	� ¡ }t ||¡ | jd
d	� ¡ }t ||¡ | jd
gd	� ¡ }t ||¡ d}tjt	|d�� | jdd	� W d   ƒ n1 sÞ0    Y  tjt	|d�� | jdd	� W d   ƒ n1 �s0    Y  d}tjt	|d�� | jg d	� W d   ƒ n1 �sZ0    Y  d}tjt	|d��  | jddgd	� W d   ƒ n1 �sž0    Y  tjt	|d��  | jddgd	� W d   ƒ n1 �sÞ0    Y  d}tjt	|d�� | jdgd	� W d   ƒ n1 �s 0    Y  d S )N)rL   r!   rA   rV   r¼   r    rW   r  )rL   r!   rA   rL   r¼   r    r!   r  r}   r9  )r  é   rA   r¼   r    r  rL   rP   r   r  r&   z2level > 0 or level < -1 only valid with MultiIndexrJ   éþÿÿÿzNo group keys passed!z*multiple levels only valid with MultiIndex)
r   r	   r1   r/   rO   r5   rh   rk   rl   rg  )Úsr   r   rr   r   r   r   Útest_groupby_level_nonmulti—  s4    *,,00r‘  c                  C   sB   t t d¡d g d¢d�} t dƒ}| jdd� ¡ }t ||¡ d S )Nr¼   ù      ð?       @)r   r   rL   rL   ©rn   r(   )r’  y      @      $@r   r  )r   r3   r4   r/   rO   r5   rh   )rÍ   r   r   r   r   r   Útest_groupby_complex·  s    r”  c                  C   sf   t dddœdddœdddœgƒ} |  d¡ ¡ }t dgdggtddgdd	�td
gƒd�}t ||¡ d S )Nr!   r’  rÌ   rL   ù      ð?      ð?rÎ   rÑ   ç      ø?r9  rÍ   ©r(   r·   )r   r/   r[   r	   r5   r6   r=  r   r   r   Útest_groupby_complex_meanÀ  s    ýÿ
ýr˜  c                  C   s¢   t dddœdddœdddœgƒ} t tjg d¢tjd�tg d¢d	d
�tdgƒd�}| jd	dd� ¡ }t ||¡ tg d¢d	d
�|_	| jd	dd� ¡ }t ||¡ d S )NrL   r•  rÌ   r’  r¼   )rL   rL   rL   r�   )r•  r’  ù      ð?        rÎ   r9  rÍ   r—  F©Úsort)r™  r•  r’  T)
r   r3   rŒ   r<   r	   r/   rL  r5   r6   r(   ©r8   r   r   r   r   r   Útest_groupby_complex_numbersÒ  s     ýÿýr�  c                  C   sj   t g d¢tg d¢ƒd�} t g d¢tg d¢ƒd�}|  |¡}| ¡ }|  | | j¡j¡ ¡ }t ||¡ d S )N)ç      @g      "Àr×   g      Y@g      Àg     €K@gÍÌÌÌÌÌ@)rÍ   rÎ   rÝ   Údrž   r¥   r²   r'   )rÑ   rÑ   r×   rž  rž  g      @)rÍ   rÎ   rŸ  r¥   r²   Úh)	r   r	   r/   r[   rb   r(   r  r5   rh   )Ús1Ús2ro   rs   r6  r   r   r   Ú'test_groupby_series_indexed_differentlyé  s    
þÿ
r£  c            	      C   s¾  t tg d¢g d¢gŽ ƒ} t | ¡}t g d¢¡}ttj d¡ d¡||d�}|j	dd� 
¡ }t |j|¡ d	}tjt|d
�� |j	ddd�}W d   ƒ n1 s 0    Y  | 
¡ }t |j|j¡ |j	dd� d¡}t |j|¡ |j	dd� dd„ ¡}t |j|¡ tjt|d
�� |j	ddd�}W d   ƒ n1 �s:0    Y  | dd„ ¡}t |jtddgƒ¡ t |j|j¡ | d¡\}}d|d< |j	dd�j
dd�}t |j|jd d… ¡ d S )N)r~   r~   r‚  r‚  r}   r}   r‰  r‰  )rT   rU   rT   rU   rT   rU   rT   rU   ))r   Úcat)r   Údog)r   r¤  )r   r¥  r!   )r€   r¼   r—  r   r  r  rJ   rL   )r   r¡   r[   c                 S   s   |   ¡ S rM   r÷   rD   r   r   r   rF     rG   z0test_groupby_with_hier_columns.<locals>.<lambda>c                 S   s
   |   d¡S )NrL   r÷   rD   r   r   r   rF     rG   r   r   r~   )r   r}   Tr  r&   )r0   rb  r   r3  r   r3   r_   r`   r‹   r/   r[   r5   ri  r·   rd   re   r(   rg   ri   r	   Z	sortlevel)	Ztuplesr(   r·   r8   r   rë   r9   Zsorted_columnsÚ_r   r   r   Útest_groupby_with_hier_columnsø  sD    þÿÿ
ÿÿ,.r§  c                 C   sD   |   | d j¡}|   | d  d ¡¡}| ¡ }| ¡ }t ||¡ d S )Nr   )r/   rÚ   rO  rO   r5   r6   )r8   ro   r\  r   r   r   r   r   Útest_grouping_ndarray%  s
    r¨  c                  C   sl   t g d¢dd�} tg d¢g d¢g d¢g d¢g d¢d	œ| d
�}| g d¢¡}| d¡}| ¡ }t ||¡ d S )N©r   rL   r!   rA   r¼   r(   r9  )Úfoo1rª  Zfoo2rª  Zfoo3)Úbar1Úbar2r¬  r«  r«  )Úbaz1r­  r­  Úbaz2r®  )Úspam2Zspam3r¯  Úspam1r°  )rW   rX   é(   rI  é<   )r}   r~   r‚  Úspamrn   r'   )r}   r~   r‚  r³  r[   )r	   r   r/   rg   r[   r5   r6   )r(   rn   ro   r   r   r   r   r   Útest_groupby_wrong_multi_labels.  s    ûø
r´  c                 C   s°   |   | d ¡jdd�}| j | d dd�jdd�}|jjdks@J ‚d|v sLJ ‚|   | d | d g¡ ¡ }| j | d | d gdd� ¡ }|jjdks”J ‚d|v s J ‚d|v s¬J ‚d S )Nr   Tr  Fr«   r   ©r   r   )r/   r[   r(   rZ   rß   ©r8   r   rí   r   r   r   Útest_groupby_series_with_nameB  s    r·  c                 C   sR   |   d¡d }| ¡ jdks J ‚| ¡ jdks2J ‚dd„ }| |¡jdksNJ ‚d S )Nr   r%   c                 S   s   t  | ¡d S r^   )r3   rO   rD   r   r   r   rF   U  rG   z.test_seriesgroupby_name_attr.<locals>.<lambda>)r/   rL  rZ   r[   rg   )r8   r   ZtestFuncr   r   r   Útest_seriesgroupby_name_attrO  s
    r¸  c                  C   sf   t g d¢g d¢tj d¡ d¡d t d¡dœƒ} |  dg¡j ¡ }| j | j	¡ ¡ }t
 ||¡ d S )Nr|   )rT   rT   rU   rU   rU   rU   rT   rU   r!   r€   rÑ   r‚   r   )r   r3   r_   r`   r‹   r4   r/   r   rL  r   r5   rh   rœ  r   r   r   Útest_consistency_nameY  s    üÿ	r¹  c                 C   s  d	dd„}dd„ }d}t jt|d��  |  d¡ |¡}W d   ƒ n1 sJ0    Y  |jjd u sdJ ‚t jt|d��" |  d¡ |d¡}W d   ƒ n1 sš0    Y  |jjdks´J ‚t jt|d��  |  d¡ |¡}W d   ƒ n1 sè0    Y  |jjd u �sJ ‚d S )
Nc                 S   s   t ddddœ|d�S )NrL   r!   rA   ©rL  r[   Z	omissionsr9  )r   )r8   rZ   r   r   r   Ú	summarizel  s    z0test_groupby_name_propagation.<locals>.summarizec                 S   s   t ddddœ| jd d d�S )NrL   r!   rA   rº  r   r   r9  )r   r.   rÏ   r   r   r   Úsummarize_random_nameo  s    z<test_groupby_name_propagation.<locals>.summarize_random_namerŠ   rJ   r   Úmetrics)N)r5   rd   re   r/   ri   r·   rZ   )r8   r»  r¼  rr   r½  r   r   r   Útest_groupby_name_propagationj  s    
.0.r¾  c                  C   sJ   t dd„ tdƒD ƒƒ} |  d¡}| ¡ }|  | d ¡ ¡ }t ||¡ d S )Nc                 S   s   g | ]}t  d ¡‘qS )rV   )r3   r4   rÆ   r   r   r   rÒ   ‚  rG   z2test_groupby_nonstring_columns.<locals>.<listcomp>rV   r   )r   r1   r/   r[   r5   r6   rd  r   r   r   Útest_groupby_nonstring_columns�  s
    
r¿  c                  C   sp   t g d¢gg d¢d�} t ddggddgtdgdd	�d
�}|  d¡ ¡ }t ||¡ |  d¡ ¡ }t ||¡ d S )NrY   )r   r   r   r8  rL   r!   r   r   r   r9  rÁ   )r   r	   r/   rœ   r5   r6   rO   rœ  r   r   r   Útest_groupby_mixed_type_columns‰  s    "rÀ  c                  C   s`   t  d¡} |  t j¡ t| d d …df ƒ}t  tdƒd¡}| |¡ tj	¡}| 
¡  ¡ s\J ‚d S )N)rH  rH  r   rV   )r3   rà   Úfillr�   r   Ztiler1   r/   rg   rv  Zisnarþ   )ÚarrrA  Zindsr   r   r   r   Ú(test_cython_grouper_series_bug_noncontig•  s    
rÃ  c                  C   sh   t dgd ƒ} ttj d¡ d¡| d d d… d�}tj d¡ ddd¡}| |¡}dd	„ }| |¡ d S )
NZ
aaaaaaaaaarH  r!   rI  r'   r   r    c                 S   s   t ttt| jƒƒƒS rM   )rc   ÚsetÚmapÚidr(   rD   r   r   r   rF   ©  rG   z5test_series_grouper_noncontig_index.<locals>.<lambda>)	r	   r   r3   r_   r`   r‹   rP  r/   rg   )r(   rÚ   rÛ   ro   r¥   r   r   r   Ú#test_series_grouper_noncontig_indexŸ  s    $
rÇ  c                  C   s˜   t tdƒƒ} tjg d¢dd�}dd„ }dd„ }|  |¡}| |¡}|jtjksRJ ‚t|j	d	 t
ƒsfJ ‚| |¡}|jtjks€J ‚t|j	d	 t
ƒs”J ‚d S )
Nr    )rÍ   rÎ   rÝ   rŸ  rž   rv   r�   c                 S   s   t t|  ¡ ƒƒS rM   )r   Ústrr[   rD   r   r   r   Úconvert_fast±  s    z>test_convert_objects_leave_decimal_alone.<locals>.convert_fastc                 S   s$   t | jjƒdksJ ‚tt|  ¡ ƒƒS r’   )rc   rÚ   Úbaser   rÈ  r[   rD   r   r   r   Úconvert_force_pure´  s    zDtest_convert_objects_leave_decimal_alone.<locals>.convert_force_purer   )r   r1   r3   rŒ   r/   rg   r;   Zobject_r$  r.   r   )r�  rÛ   rÉ  rË  ro   r   r   r   r   Ú(test_convert_objects_leave_decimal_alone­  s    


rÌ  c                  C   st   t g tjddd�dœƒ} | d jtjks,J ‚|  d¡ ¡ }tg dtjd�}t dtg |dd�iƒ}t	j
||d	d
� d S )Nr   r<   r�   )rE   r1   rE   ©rZ   r;   r1   rB   T)Z	by_blocks)r   r3   r4   r;   r>   r/   rœ   r	   r   r5   r6   )r8   r   Z	exp_indexr   r   r   r   Ú"test_groupby_dtype_inference_emptyÄ  s    rÎ  c                  C   sb   t dgdgdgdœƒ} |  ddg¡d  ¡ }tdgtjdgdggddgd�dd�}t ||¡ d S )	NrL   l    4;PUÑ  )rœ   r‡  r„   rœ   r‡  r„   r1  r9  )r   r/   rK  r   r   Úfrom_productr5   rh   r=  r   r   r   Ú$test_groupby_unit64_float_conversionÏ  s    ýrÐ  c                 C   sä   |   t| d ƒ¡jdd�}|   | d ¡jdd�}tj||dd� tjtdd��* |   t| d d d… ƒ¡ W d   ƒ n1 s~0    Y  td	d
gddgt	j
 d¡ d¡dœƒ} |   ddg¡ ¡ }|   | d | d g¡ ¡ dg }d S )Nr   Tr  Fr®   z^'foo'$rJ   r&   r   rL   rA   r¼   r!   )r}   r~   Úvalr}   r~   rÑ  )r/   r0   r[   r5   r6   rk   rl   ÚKeyErrorr   r3   r_   r`   r‹   r=  r   r   r   Ú"test_groupby_list_infer_array_likeÛ  s    8ýÿrÓ  c                  C   st   d} t tdƒd| d�}tddgddggd	d
g|d�}| td| d�d	g¡ ¡ }| |jd	g¡ t	¡}t
 ||¡ d S )Nr�  z2015-09-29T11:34:44-0700r!   )Ústartr   rÀ   r   rV   r   é   ZmetricrÚ   rÁ   r   )r   rÀ   )r   r   r   r/   r   r[   rá   r(   rx   rÖ   r5   r6   )rÀ   r(   r8   r   r   r   r   r   Ú$test_groupby_keys_same_size_as_indexð  s    
ÿrÖ  c                  C   s´   d} t tj d¡ d¡tdƒd�}tjt| d�� | 	d¡ W d   ƒ n1 sP0    Y  t tj d¡ d¡tdƒd�}tjt| d�� | 	d¡ W d   ƒ n1 s¦0    Y  d S )	Nz^'Z'$r!   )rL   r¼   r½   r8  rJ   ÚZ)r!   r¼   )
r   r3   r_   r`   r‹   r0   rk   rl   rÒ  r/   )rr   Zdf1rê   r   r   r   Útest_groupby_one_rowý  s    ÿ(ÿrØ  c                  C   sÌ  t tj d¡ d¡tjtdƒtjtdƒtjtdƒtjtdƒgtjdtjdtjdtjdgdœƒ} |  d¡}td	d
gƒtddgƒg}t	|j
 ¡ ƒ}t|ƒdksžJ ‚t||ƒD ]\}}t |j
| |¡ q¨t |jjd j| ¡ |jdksèJ ‚tdƒtjd	d
gtjd�tdƒtjddgtjd�i}|jD ]}t |j| || ¡ �q"t | tdƒ¡| jd	d
g ¡ t | tdƒ¡| jddg ¡ tjtdd�� | tj¡ W d   ƒ n1 �s²0    Y  t tjtjtjgtjtjtjgdœƒ}|d j dk�söJ ‚|d j dk�s
J ‚dD ]¸}| |¡}|j
i k�s,J ‚|jdk�s<J ‚|ji k�sLJ ‚tjtdd�� | tj¡ W d   ƒ n1 �s~0    Y  tjtdd�� | tj¡ W d   ƒ n1 �sº0    Y  �qd S )Nr!   r€   z
2013-01-01z
2013-02-01rÍ   rÎ   )rÚ   ÚdtrÈ  rÙ  rL   rP   rA   r    r   z2013-01-01 00:00:00r�   z2013-02-01 00:00:00z^NaT$rJ   )r�   Únatr�   r>   rÚ  zdatetime64[ns]z^nan$)!r   r3   r_   r`   r‹   r�   r   r/   r	   Úsortedrú   r"  rc   rb  r5   ri  r6   Ú_grouperrÓ   rA  ZngroupsrŒ   Zintprû   Úassert_numpy_array_equalr<  r.   rk   rl   rÒ  r*   r-   r;   )r8   ro   r   r"  rp   rž   Znan_dfr   r   r   r   Útest_groupby_nat_exclude  sZ    ø
ôÿ
þ
  , ÿ
,rÞ  c                  C   sD   t tjtjgtjtjgddgdœƒ} |  ddg¡j}|i ks@J ‚d S )NrL   r!   rè   rÍ   rÎ   )r   r3   r�   r/   rû   )r8   r   r   r   r   Ú#test_groupby_two_group_keys_all_nanK  s    $rß  c                  C   s�   t tdƒd�} ddg| d< ddg| d< ddg| d	< d
dg| d< |  dg¡jdd�}t ddgddgg¡}t |jt	dd	gƒ¡ t 
|j|¡ d S )Nr!   r'   Úg1Úg2rˆ   r   ZzerosrL   rÙ   Úl1Úl2ÚlabelTr  ç        rÑ   )r   r1   r/   r[   r3   rŒ   r5   ri  r·   r	   rÝ  rÚ   )rŸ  ÚtmpZ
res_valuesr   r   r   Útest_groupby_2d_malformedR  s    rç  c                  C   sŠ   t  t  d¡t  d¡t  d¡f¡} t  d¡}t|| || t j d¡ d¡dœƒ}| g d¢¡ ¡ }| g d¢¡ ¡ }t	|ƒt	|ƒks†J ‚d S )Nr   iˆ  i¨a  r!   )r   r   r%   rƒ   r   r‚   )rƒ   r%   r   r   )
r3   Zconcatenater4   r   r_   r`   r‹   r/   rO   rc   )r   r   r8   rE  rV  r   r   r   Útest_int32_overflow^  s    "
ûÿ
rè  c                  C   sz  t g d¢g d¢g d¢tj d¡ d¡dœƒ} dd„ | g d	¢ jD ƒ}t |¡}| jg d	¢d
d� 	¡ }t
 |jj|g d¢ ¡ dd„ | g d¢ jD ƒ}t |¡}| jg d¢d
d� 	¡ }t
 |jj|¡ dd„ | g d¢ jD ƒ}t |¡}| jg d¢d
d� 	¡ }t
 |jj|g d¢ ¡ t g d¢g d¢tj d¡ d¡dœƒ} |  ddg¡d }| 	¡ }dd„ fdd„}|| |ddgdƒ d S )N©r}   r~   r‚  )rA   r!   rL   rY   r!   rA   ©rÍ   rÎ   rÝ   rŸ  c                 S   s   g | ]}t |ƒ‘qS r   ©Útuple©rÇ   Úrowr   r   r   rÒ   z  rG   z+test_groupby_sort_multi.<locals>.<listcomp>rè   Trš  )rL   r!   r   c                 S   s   g | ]}t |ƒ‘qS r   rë  rí  r   r   r   rÒ     rG   )rÝ   rÍ   rÎ   c                 S   s   g | ]}t |ƒ‘qS r   rë  rÆ   r   r   r   rÒ   „  rG   )rÎ   rÝ   rÍ   )r!   rL   r   ©r   rL   r!   r   rL   r!   )r   r   r   rL   rL   rL   r  )rÍ   rÎ   rŸ  rÍ   rÎ   rŸ  c                 S   s   |   ¡ S rM   rN   rD   r   r   r   rF   “  rG   z)test_groupby_sort_multi.<locals>.<lambda>c           	      S   sV   dd„ | | j D ƒ}t |¡}||  |¡| ƒ}| ¡ D ]\}}|| |ks8J ‚q8d S )Nc                 S   s   g | ]}t |ƒ‘qS r   rë  rí  r   r   r   rÒ   ”  rG   zCtest_groupby_sort_multi.<locals>._check_groupby.<locals>.<listcomp>)rÚ   ÚcomÚasarray_tuplesafer/   rü   )	r8   r   r"  Úfieldr¥   Útupsr   rp   rq   r   r   r   Ú_check_groupby“  s
    
z/test_groupby_sort_multi.<locals>._check_groupby)r   r3   r_   r`   r‹   rÚ   rð  rñ  r/   rO   r5   rÝ  r(   )r8   ró  r   ro   rô  r   r   r   Útest_groupby_sort_multip  s:    üÿ	


ýÿrõ  c                  C   st   t g d¢g d¢d dœƒ} d}tjt|d��( | jddd	� d
d„ ¡}W d   ƒ n1 sZ0    Y  t || ¡ d S )N)rÍ   rÍ   rÍ   rÎ   rÎ   rÎ   ré  r!   )r   rZ   rŠ   rJ   r   FrH   c                 S   s   | S rM   r   rD   r   r   r   rF   ¤  rG   z/test_dont_clobber_name_column.<locals>.<lambda>)r   r5   rd   re   r/   ri   r6   )r8   rr   r   r   r   r   Útest_dont_clobber_name_column�  s    ÿ6rö  c                  C   sÂ   t tj d¡ d¡ttdƒtd�tdddd�d	�} | j	d
d„ dd�}| 
dd„ ¡}dd„ |D ƒ}t |¡}t ||¡ | d j	dd„ dd�}| 
dd„ ¡}dd„ |D ƒ}t |¡}t ||¡ d S )Nr!   r»   r½   r�   r¾   rV   r   r¿   rÁ   c                 S   s   | j S rM   r§   rD   r   r   r   rF   ¯  rG   z&test_skip_group_keys.<locals>.<lambda>FrH   c                 S   s   | j dd�d d… S )Nr   ©rD  rA   ©Úsort_valuesrD   r   r   r   rF   °  rG   c                 S   s$   g | ]\}}|j d d�dd… ‘qS )r   r÷  NrA   rø  ©rÇ   r   rˆ   r   r   r   rÒ   ²  rG   z(test_skip_group_keys.<locals>.<listcomp>r   c                 S   s   | j S rM   r§   rD   r   r   r   rF   ·  rG   c                 S   s   |   ¡ d d… S rC   rø  rD   r   r   r   rF   ¸  rG   c                 S   s    g | ]\}}|  ¡ d d… ‘qS rC   rø  rú  r   r   r   rÒ   º  rG   )r   r3   r_   r`   r‹   r	   r0   rÉ   r   r/   ri   r*   r#  r5   r6   rh   )Ztsfro   r   Úpiecesr   r   r   r   Útest_skip_group_keys¨  s    ý

rü  c                 C   s8   | d   ¡ }d |_| | d ¡ d¡}|jd u s4J ‚d S )Nr%   r   rO   )r,   rZ   r/   rg   )Zfloat_framer�  r   r   r   r   Útest_no_nonsense_nameÀ  s    rý  c                  C   s\   t t d¡ dd¡ƒ} d| d< g d¢| d< |  d¡}| ddd	œ¡}|d jtjksXJ ‚d S )
Nr@   rA   r   Útest)gÍÌÌÌÌÌô?r–  gš™™™™™ù?ÚflrO   rY  )rÿ  r!   )r   r3   r4   Úreshaper/   rg   r;   r>   )rE   ro   r   r   r   r   Útest_multifunc_sum_bugÉ  s    
r  c                 C   sV   dd„ }dd„ }|   d¡d  |¡}|   d¡d  |¡}t|tƒsFJ ‚t ||¡ d S )Nc                 S   s   |   ¡ |  ¡ dœS ©N©rK  rq  r  r‡   r   r   r   r¥   Õ  s    z(test_handle_dict_return_value.<locals>.fc                 S   s   t |  ¡ |  ¡ dœƒS r  )r   rK  rq  r‡   r   r   r   r²   Ø  s    z(test_handle_dict_return_value.<locals>.gr   r%   )r/   ri   r$  r   r5   rh   )r8   r¥   r²   r   r   r   r   r   Útest_handle_dict_return_valueÔ  s    r  Úgrouperr   r   c                    sÊ   dd„ }dd„ ‰ ‡ fdd„}| j |dd�}d	}tjt|d
�� | |¡ W d   ƒ n1 s\0    Y  | ˆ ¡ | ˆ ˆ dœ¡ | |¡ |d  |¡ |d  ˆ ¡ |d  ˆ |g¡ |d  |¡ d S )Nc                 S   s   | j d usJ ‚| S rM   r9  r‡   r   r   r   r¥   ä  s    ztest_set_group_name.<locals>.fc                 S   s   | j d usJ ‚|  ¡ S rM   )rZ   rO   r‡   r   r   r   Úfreduceè  s    z$test_set_group_name.<locals>.freducec                    s   ˆ | ƒS rM   r   rD   ©r  r   r   Úfreducexì  s    z%test_set_group_name.<locals>.freducexFrH   rŠ   rJ   r	  r%   )r/   r5   rd   re   ri   rf   rj   )r8   r  r¥   r  ro   rr   r   r  r   Útest_set_group_nameâ  s    (

r	  c                     sˆ   t g d¢t d¡dœƒ} g ‰ ‡ fdd„}d}tjt|d��& | jdd	d	d
� |¡ W d   ƒ n1 sf0    Y  g d¢}ˆ |ks„J ‚d S )N)r   r   rL   rL   r!   r!   r  rÌ   c                    s   ˆ   | j¡ |  ¡ S rM   )r2  rZ   r,   r‡   r1  r   r   r¥     s    z6test_group_name_available_in_inference_pass.<locals>.frŠ   rJ   rÍ   F)r›  rI   rY   )r   r3   r4   r5   rd   re   r/   ri   )r8   r¥   rr   Zexpected_namesr   r1  r   Ú+test_group_name_available_in_inference_passÿ  s    4r
  c                 C   sV   |   | d j¡ ¡ }|jjd u s$J ‚|   | d j| d jg¡ ¡ }|jjdksRJ ‚d S )Nr   r   )NN)r/   rÚ   rO   r(   rZ   rß   r¶  r   r   r   Útest_no_dummy_key_names  s    r  c                  C   sÀ   t ddgddggg d¢g d¢gddgd�} tg d¢| d	�}t ddgddggg d
¢g d¢gddgd�} tg d¢| d	�}|jddgdd� ¡ }t ||¡ |jddgdd� ¡ }t || ¡ ¡ d S )NrL   r!   )r   r   r   r   rL   rL   )rL   rL   r   r   r   r   rÍ   rÎ   rÞ   )r   rL   r!   rA   r¼   r    r'   rƒ  )rL   r   r   ©r   r!   r¼   F©r   r›  T)r   r   r/   rœ   r5   rh   Ú
sort_index)r(   ZmseriesZmseries_resultr   r   r   r   Ú#test_groupby_sort_multiindex_series  s    ý"ÿr  c                  C   s‚   d} t dd| d�}tt | ¡t | ¡dœ|d�}ddd	„}| d
d„ ¡}| d|tjƒi¡}| d|tjdƒi¡}t ||¡ d S )Néè  z2012/1/1Z5min)rÔ  rÀ   r   )ÚhighÚlowr'   Fc                    s   ‡ ‡fdd„}|S )z>
        Run an aggregate func on the subset of data.
        c                    sD   | j | j dd„ ¡  ¡ }ˆ r,| | jd   t|ƒdkr<d S ˆ|ƒS )Nc                 S   s
   | j dk S )Nr  )ÚhourrD   r   r   r   rF   :  rG   zYtest_groupby_reindex_inside_function.<locals>.agg_before.<locals>._func.<locals>.<lambda>r   )r…   r(   rÅ  Údropnarc   )rn   rŸ  ©ÚfixÚfuncr   r   Ú_func9  s    zGtest_groupby_reindex_inside_function.<locals>.agg_before.<locals>._funcr   )r  r  r  r   r  r   Ú
agg_before4  s    z8test_groupby_reindex_inside_function.<locals>.agg_beforec                 S   s   t | j| j| jƒS rM   )r   rÃ   r¨   rÅ   rD   r   r   r   rF   C  rG   z6test_groupby_reindex_inside_function.<locals>.<lambda>r  T)F)	r   r   r3   r4   r/   rg   rK  r5   r6   )r   Úindr8   r  ro   Zclosure_badZclosure_goodr   r   r   Ú$test_groupby_reindex_inside_function/  s    
r  c                  C   sˆ   t g d¢g d¢g d¢dœƒ} |  ddg¡} | jddgdd�}| d	¡}tjg d
¢ddgd�}t dgdgdgg|dgd�}t ||¡ d S )N)rÍ   rÍ   rÍ   rÎ   )rÝ   rÝ   rŸ  rÝ   )rL   rL   rL   r    )Úgroup1Úgroup2r„   r  r  Tr  rO   ))rÍ   rÝ   )rÍ   rŸ  ©rÎ   rÝ   r1  r!   rL   r    r„   r—  )r   rá   r/   rg   r   r3  r5   r6   )r8   r³   r¹   r   r6  r   r   r   Ú$test_groupby_multiindex_missing_pairJ  s    ýÿ
ÿr  c                  C   s‚  t jg d¢ddgd�} tg d¢g| d�}|j ¡ s6J ‚tg d¢g d¢g d	¢gd
�}|jdddgdd�}| ¡ }|j ¡ r|J ‚| d¡ ¡ }t	 
t¡� | d¡ ¡ }W d   ƒ n1 s¸0    Y  t	 ||¡ tg d¢g d¢g d¢dœƒ ddg¡}|j ¡ �rJ ‚ddddgfD ]j}dD ]^}|j||dd� tj¡}|}t	 ||¡ | ¡ j||dd� tj¡}| ¡ }t	 ||¡ �q�qd S )N))rÍ   Ú )Úb1Úc1)Úb2Úc2rÎ   rÝ   r1  ©rL   rA   r¼   r8  rê  )rL   r!  r"  rA   )rL   r#  r$  r¼   )r·   rn   rÍ   rŸ  )r(   r·   rÚ   )rÍ   rÍ   rÎ   rÍ   ©rL   rL   r!   r!   ©rL   r!   rA   r¼   ©rE   rã   ÚzrE   rã   r   rL   )FTF)r   r›  rI   )r   r3  r   r·   Z_is_lexsortedÚpivot_tablerR  r/   r[   r5   rd   r   r6   rá   r(   ri   Zdrop_duplicatesr  )Zlexsorted_miZlexsorted_dfZnot_lexsorted_dfr   r   r8   r   r›  r   r   r   Ú%test_groupby_multiindex_not_lexsorted_  sL    ÿÿ
ÿ,ÿþÿÿþÿr+  c                  C   s  t tdƒg d¢d�} |  tdƒ¡}| dd„ ¡}| jg d¢ }t ||¡ | d }| tdƒ¡}| d	d„ ¡}| g d¢¡}t ||¡ | j	 
t¡| _	|  tdƒ¡}| d
d„ ¡}| jg d¢ }t ||¡ | d }| tdƒ¡}| dd„ ¡}| g d¢¡}t ||¡ d S )NZABCDE)r!   r   r!   rL   rL   r'   Zababbc                 S   s   t | ƒdkS r^   ©rc   rD   r   r   r   rF   •  rG   z4test_index_label_overlaps_location.<locals>.<lambda>r%  r   c                 S   s   t | ƒdkS r^   r,  rD   r   r   r   rF   ›  rG   c                 S   s   t | ƒdkS r^   r,  rD   r   r   r   rF   ¢  rG   c                 S   s   t | ƒdkS r^   r,  rD   r   r   r   rF   ¨  rG   )r   r0   r/   Úfilterr.   r5   r6   rý   rh   r(   rx   rÖ   )r8   r²   Úactualr   r7   r   r   r   Ú"test_index_label_overlaps_location�  s(    r/  c                  C   s‚   d} t  | ¡}t|d d| d| dœƒ}t|d d d| d| dœƒ}| d¡}| d¡}| d¡}| d¡}t ||¡ d S )	Nr  r!   rØ   ç      @rè   rÑ   rÍ   r[   )r3   r4   r   r/   rj   r5   r6   )ÚnrE   r8   rê   r9   r   Úgb2r   r   r   r   Ú"test_transform_doesnt_clobber_ints­  s    
 



r3  Úsort_columnÚintsÚfloatsÚstringsÚgroup_columnÚ
int_groupsÚstring_groupsc                    sŠ   t g d¢g d¢g d¢g d¢g d¢dœƒ}|jˆ d�}| |¡}‡ fdd	„}d
}tjt|d�� | |¡ W d   ƒ n1 s|0    Y  d S )N)rA   rL   r   rL   r   rA   rA   rA   )r)  rÍ   r)  rÍ   rÍ   r²   r²   r²   )r€   rP   r¼   r    r!   r@   rL   rL   )gffffff@g333333@gÍÌÌÌÌÌ@g333333Àgš™™™™™@çš™™™™™ñ?r;  r    )r)  rŸ  rÍ   rž   ÚwordZword2Z42Z47)r9  r:  r5  r6  r7  r÷  c                    s   t  | | jˆ d�¡ d S )Nr÷  )r5   r6   rù  rD   ©r4  r   r   Ú	test_sortÖ  s    z.test_groupby_preserves_sort.<locals>.test_sortrŠ   rJ   )r   rù  r/   r5   rd   re   ri   )r4  r8  r8   r²   r>  rr   r   r=  r   Útest_groupby_preserves_sort¼  s    ûÿ
r?  c                  C   s�   t tt ¡ ddd� ¡ tdƒdœƒ} |  d¡jj| d< |  d¡jj	| d< t
jtdd	��& |  ¡ jddd
dd� W d   ƒ n1 s‚0    Y  d S )NrW   ZMEr¿   )Ú	eventDateZthenamer@  rÃ   r¨   z	'badname'rJ   ZbadnamerL  )r(   r·   rÚ   Zaggfunc)r   r   r   ÚtodayÚtolistr1   rá   r(   rÃ   r¨   rk   rl   rÒ  rR  r*  rÏ   r   r   r   Ú!test_pivot_table_values_key_errorÞ  s    þÿÿrC  r·   r%   r"  rÚ   rå  rÍ   rL   z
US/Easternr#   ú
2016-01-01rA   rƒ   r¿   ÚInt64r�   ÚFloat64Úboolean)ÚboolÚintrÖ   rÈ  r¤  Zdt64Zdt64tzZperiodrE  rF  rG  )ÚidsÚmethod)rU  rg   ri   )r†   Úidxminrq  rK  rO   rs  r{  c                    s  d }t ˆtƒrˆdv rd}t ˆd tƒr4ˆdv r4d}tˆˆˆdœtdƒd�}	tˆd	ƒrj|	jˆjk ¡ sjJ ‚|	j	d d… }	|	j
ˆd
|d
d�|  ‰ ‡ ‡‡fdd„}
‡‡‡fdd„}t |	jj	d tjƒ}|	jj	d jdk}t ˆtƒ}t |	jj	d tjƒ}t ˆtƒ�r¨ˆj�s¨ˆdv �r¨ˆdv �r,dˆ› d�}t}ndˆ› d�}t}tj||d�� |
ƒ  W d   ƒ n1 �sh0    Y  ˆdv �r¤t | tƒ�r¤|
dd�}|ƒ }t ||¡ d S ˆdv �r¤|�sÔ|�sÔ|�sÔ|�r¤ˆdk�r¤|�ràd}n$|�rìd}n|�r dˆ› d�}nd }ˆd!k�rd" |d#g¡}tjt|d�� |
ƒ  W d   ƒ n1 �sH0    Y  t | tƒ�sbd S ˆd!k�rpd S |
dd�}|	 ˆ¡g  }|�r”|ƒ }t ||¡ d S |
ƒ }|	 ˆ¡|  }ˆd$v �rÐ| |	jj¡}|d u�rä| |¡}tˆƒd%k�rþˆd |j_t ||¡ d S )&N)rO   rs  rE  r   )rs  rO   r<   r)   ÚABCr8  r;   F)rI   r  Úobservedc                     s6   ˆdkrt ˆ ˆƒf i | ¤ŽS t ˆ ˆƒˆfi | ¤ŽS d S )NrU  )rõ   )Úkwargs)r9   rK  r0  r   r   Ú
get_result+  s    z&test_empty_groupby.<locals>.get_resultc                     sh   t dgˆjd�} tˆ ƒdkr0tj| | gˆ d�}nt| ˆ d d�}ˆrRtg dd�}ng }tg ||d�}|S )Nr   r�   rL   r1  r9  rÈ  rÁ   )r   r;   rc   r   rÏ  r	   r   )Zlevr   r·   r   )r"  r.  rÚ   r   r   Ú get_categorical_invalid_expected1  s    z<test_empty_groupby.<locals>.get_categorical_invalid_expectedÚM)rq  rK  rL  r†   )rq  rK  zCannot perform z with non-ordered Categoricalz
Can't get z/ of an empty group due to unobserved categoriesrJ   Tr  )rs  rO   r{  rO   z datetime64 type does not supportzPeriod type does not supportrw  rx  zcategory type does not supportr{  ú|z!does not support reduction 'skew')r†   rL  rL   )r$  r   rH  r   r0   Úhasattrr�   r;   rþ   r.   r/   r*   ZPeriodDtypeÚkindr   ZStringDtypeÚorderedr-  rg  rk   rl   r5   Úassert_equalÚjoinrá   rx   r(   rc   rZ   )r·   r"  rÚ   rK  r0  Zusing_array_managerr  r.  Zoverride_dtyper8   rP  rQ  Zis_perZis_dt64Zis_catZis_strrr   ry  r   r   r   )r9   r"  rK  r0  r.  rÚ   r   Útest_empty_groupbyð  s„    '

ÿþý
&

"
&




rY  c                  C   sž   t tj d¡ d¡ƒ} | d  tj¡| d< g d¢| _| j| d dd�}d}t	j
t|d	�� | d
d„ ¡}W d   ƒ n1 s|0    Y  |j| jk ¡ sšJ ‚d S )Nr!   )r   r¼   rA   ©r   rL   r!   r   rL   FrH   rŠ   rJ   c                 S   s   | S rM   r   rD   r   r   r   rF   ™  rG   z<test_empty_groupby_apply_nonunique_columns.<locals>.<lambda>)r   r3   r_   r`   r‹   rx   r<   r·   r/   r5   rd   re   ri   r�   rþ   )r8   r9   rr   r¹   r   r   r   Ú*test_empty_groupby_apply_nonunique_columns‘  s    
,r[  c                  C   sž   t g d¢g d¢g d¢g d¢dœƒ} tjtdd��" | g d¢  d¡ W d   ƒ n1 sX0    Y  |  d¡d  ¡ }td	gdtd
gdd�d�}t 	||¡ d S )N)rL   rL   rL   rL   )r!   r!   r!   r!   )rÌ   rÍ   rÎ   rÝ   z
('a', 'b')rJ   rè   rÌ   rÝ   r¼   rL   r9  r;  )
r   rk   rl   rÒ  r/   rO   r   r	   r5   rh   r=  r   r   r   Útest_tuple_as_grouping�  s    üÿ	0r\  c                  C   sd   t dtdƒt ddgddgg¡d�} tjtdd�� |  d¡ ¡  W d   ƒ n1 sV0    Y  d S )	NrL   rA   r!   r¼   r—  z
^\(7, 8\)$rJ   )rP   r€   )	r   r1   r   rÏ  rk   rl   rÒ  r/   r[   rÏ   r   r   r   Útest_tuple_correct_keyerror°  s    $r]  c               	   C   sŠ   t dgdggtdgdd�tddddd	�d
�} t g d¢g d¢gtjdg d¢d�tddddd	�d
�}|  tdd�¡ ddg¡}t 	||¡ d S )NrL   r}   Úmycolsr9  ú
2018-01-01r!   rƒ   Údti)r   rÀ   rZ   rÁ   )rL   rL   rL   rL   rL   ))r}   rO   r}   )r}   ÚohlcÚopen)r}   ra  r  )r}   ra  r  )r}   ra  Úclose)r^  NNr1  )rÀ   rO   ra  )
r   r	   r   r   r3  r/   r   rg   r5   r6   rœ  r   r   r   Útest_groupby_agg_ohlc_non_first·  s    
ýø
ôrd  c                  C   sŒ   t jdftdddƒdftdddƒdftdddƒdfg} tj| dd gd�}tg d	¢|d
�}|jdd� ¡ }tddgddgd
�}t 	||¡ d S )NrÍ   iÜ  rL   r!   rÎ   rA   Údater1  )rA   r!   ç      @r¼   r'   r  r0  rf  )
r*   r-   r   r   r3  r   r/   r[   r5   rh   )rÚ   r4  r7   r   r   r   r   r   Útest_groupby_multiindex_natÓ  s    ürg  c                  C   sd   t tdƒtdƒƒ} t| ddgd�}d}tjt|d�� | g g¡ W d   ƒ n1 sV0    Y  d S )NrV   ÚapplerÎ   r8  z$Grouper and axis must be same lengthrJ   )rb  r1   r   rk   rl   rg  r/   )rÚ   r8   rr   r   r   r   Útest_groupby_empty_list_raisesã  s
    ri  c                  C   sŽ   ddgddgddgg} g d¢}t j| |d�}tddg|d	�}| d
dg¡ ¡ }dgdgg} d
dg}t j| |d�}tdg|d�}t ||¡ d S )NrE   rÍ   rÎ   rp   )rœ   r‡  Úthirdr1  rL   r!   r“  rœ   rj  rA   r'   )r   Úfrom_arraysr   r/   rO   r5   rh   )Zindex_arrayZindex_namesÚrir�  r   Úeir   r   r   r   Ú8test_groupby_multiindex_series_keys_len_equal_group_axisì  s    rn  c                  C   s    t jddgddggddgd�} tg d¢g d	¢d
œ| d�}| tdd�dg¡}| ddg¡}|j|jksjJ ‚| dtdd�g¡}| ddg¡}|j|jksœJ ‚d S )Nr   r   r%   rƒ   rC  Úbetar1  )rL   r!   rL   r!   r'  r
  r'   r  )r   rÏ  r   r/   r   rú   )r4  r8   r   r   r   r   r   Ú"test_groupby_groups_in_BaseGrouperü  s    rp  Ú
group_namerE   c                 C   sD  t t d¡ dd¡g d¢g d¢d�}d|j_d|j_d	}tjt	|d
�� |j
| dd�}W d   ƒ n1 sj0    Y  | ¡ }|j 
| ¡ ¡ j}t ||¡ g d¢ddgg}tj|ddgd�}t t d¡ dd¡g d¢|d�}tjt	|d
�� |j
| dd�}W d   ƒ n1 �s0    Y  | ¡ }|j 
| ¡ ¡ j}t ||¡ d S )NrQ   rA   r¼   ©r   rL   r   )rV   rW   rV   rW   r—  rã   rE   r  rJ   rL   r    )r~   r‚  r}   rT   rU   Úx1)Ú	iterablesrß   é   r  )r   r3   r4   r   r(   rZ   r·   r5   rd   re   r/   rO   r¸   r6   r   rÏ  )rq  r8   rë   r9   Úresultsr   rt  r4  r   r   r   Útest_groupby_axis_1
	  s&    ÿ, .rw  zop, expectedÚshiftÚtimeú2019-01-01 12:00:00ú2019-01-01 12:30:00Úbfillú2019-01-01 14:00:00ú2019-01-01 14:30:00Úffillc                    s„   | ‰ g d¢t dƒt dƒd d t dƒt dƒgdœ}t|ƒj‡ fdd„d	�}| d
¡}t||ƒƒ }t|ƒj‡ fdd„d	�}t ||¡ d S )N)r   r   r   r   r   r   rz  r{  r}  r~  )rÆ  ry  c                    s   | j j ˆ ¡S rM   ©ry  rÙ  Ztz_localizerD   r#   r   r   rF   `	  rG   z+test_shift_bfill_ffill_tz.<locals>.<lambda>)ry  rÆ  c                    s   | j j ˆ ¡S rM   r€  rD   r#   r   r   rF   d	  rG   )r   r   Zassignr/   rõ   r5   r6   )Ztz_naive_fixturer0  r   rn   r8   ro   r   r   r#   r   Útest_shift_bfill_ffill_tz&	  s    .úþ
r�  c                  C   sD   t d gddœƒ} |  d¡d  d¡}ttjgdd�}t ||¡ d S )NrL   )r²   rE   r²   rE   rO   r9  )r   r/   rj   r   r3   r�   r5   rh   )r8   r.  r   r   r   r   Útest_groupby_only_none_grouph	  s    r‚  c                  C   sL   t g d¢g d¢d�} | jdd�}| ¡ }t g d¢g d¢d�}t ||¡ d S )N)r!   r    r  r€   )rØ   r×   r×   rž  r'   r   r  )r!   g      @r€   )rØ   r×   rž  )r   r/   r[   r5   rh   )r7   r9   r   r   r   r   r   Útest_groupby_duplicate_indexr	  s
    rƒ  c                 C   s  t dtdƒddggg d¢d�}|d  t¡|d< |d  t¡|d< | d	d
g¡}| dkr^d}nd}| dkrntnd }d}tj||d��4 |jd d…  	d	g¡j
| g|¢R Ž }W d   ƒ n1 s¾0    Y  tj||d��4 | 	d	g¡j
| g|¢R Ž jd d… }W d   ƒ n1 �s0    Y  | dv �r0| t¡}t ||¡ d}tj||d��8 |d jd d…  	d	g¡j
| g|¢R Ž }W d   ƒ n1 �sŽ0    Y  d}tj||d��8 |d  	d	g¡j
| g|¢R Ž jd d… }W d   ƒ n1 �sê0    Y  | dv �r| t¡}t ||¡ d S )NrL   rA  rA   r¼   )Úcol_1Úcol_2Úcol_3Úcol_4©rn   r·   r†  r‡  r„  r…  Úfillna)r  r   ú%DataFrameGroupBy.fillna is deprecatedrJ   r   )Údiffrx  z"SeriesGroupBy.fillna is deprecated)r   r   rx   rI  rá   re   r5   rd   r.   r/   rj   rW  )Ztransformation_funcÚrequestr8   Úargsr´   Úwarn_msgr   r   r   r   r   Útest_group_on_empty_multiindex|	  s\    þBD

ÿþýýÿ"ÿþþýÿ"

r�  c                 C   s–  t dddd�}tddgddgddgdœƒ}d	|j_||_| | ¡}|sR|j}d
}nd}tjt	|d�� |j
|dd�}W d   ƒ n1 sˆ0    Y  | ¡ }tddgddgdœ|d�}d|j_|sÆ|j}t ||¡ |dk�r(tjt	|d��" |g  j
|dd�}W d   ƒ n1 �s0    Y  |g  }	nVtjt	|d��$ |jg  j
|dd�}W d   ƒ n1 �sb0    Y  |jg   tj¡}	| ¡ }
t |
|	¡ d S )NrD  r!   r}   )r   rZ   rL   rA   r   )rµ  )r   r%   )rƒ   r   )r~   r‚  r  r  rJ   )r¡   r   )r   rƒ   r'   r~   )r   r   r·   rß   r(   Z_get_axis_numberr¸   r5   rd   re   r/   ZnuniquerZ   r6   r…   rx   r3   r>   )r¡   r`  r8   Zaxis_numberrr   r9   r   r   r2  r6  r¹   r   r   r   Útest_groupby_crash_on_nunique©	  s4    
,
2
4r�  c                  C   s>   t t dd¡ dd¡td�} | jdgd� ¡ }t || ¡ d S )Nr   r@   rA   r�   r  )	r   r3   r4   r   rÖ   r/   r[   r5   r6   )r   r   r   r   r   Útest_groupby_list_levelÒ	  s    r‘  zmax_seq_items, expected))r    z({0: [0], 1: [1], 2: [2], 3: [3], 4: [4]})r¼   z%{0: [0], 1: [1], 2: [2], 3: [3], ...})rL   z{0: [0], ...}c                 C   s�   t tj d¡ d¡ƒ}|j|d< t d| ¡�P | d¡j	 
¡ }||ksJJ ‚| t |j¡¡j	 
¡ }||ksnJ ‚W d   ƒ n1 s‚0    Y  d S )Nr!   )r    rL   rÍ   zdisplay.max_seq_items)r   r3   r_   r`   r‹   r(   r*   Úoption_contextr/   rú   Ú__repr__rŒ   rÍ   )Zmax_seq_itemsr   r8   r   r   r   r   Útest_groups_repr_truncatesÙ	  s    

r”  c                  C   s†   t ddddœddddœgƒ} |  ddg¡} |  ddg¡}|j}dtjd	dgtjd
�i}t|ƒdksfJ ‚d}|| || k ¡ s‚J ‚d S )NrL   r!   éc   rè   éX   rÍ   rÎ   r¶   r   r�   )	r   rá   r/   rû   r3   rŒ   r<   rc   rþ   )r8   r”   r   r   r   r   r   r   Ú6test_group_on_two_row_multiindex_returns_one_tuple_keyî	  s    r—  zklass, attr, valuer   r›  rI   rN  r  c                 C   sr   t dgdgdgdœƒ}|dkr(| d¡}|jdi ||i¤Ž}| t u rN|dg n|d }t||ƒt||ƒksnJ ‚d S )	NrL   r!   rA   rè   r¡   rÍ   rÎ   )rÍ   )r   rá   r/   rõ   )ry  rU  r„   r8   r   r   r   r   r   Ú#test_subsetting_columns_keeps_attrsü	  s    
r˜  c                  C   s    t dgdgdgdœƒ} d}tjt|d��" | jg d¢dd�}W d   ƒ n1 sP0    Y  d	}tjt|d��  |d
dg  ¡  W d   ƒ n1 s’0    Y  d S )NrL   r!   rA   r)   r  rJ   rƒ  r    z'Cannot subset columns when using axis=1r   r   )	r   r5   rd   re   r/   rk   rl   rg  rO   )r8   rr   r²   rK   r   r   r   Útest_subsetting_columns_axis_1
  s    0r™  r  )rO   Úanyrx  c                 C   sH   t dgdd�}tdgg|d�}| dg¡}t|| ƒƒ j}t ||¡ d S )NrÍ   r   r9  rL   r8  )r	   r   r/   rõ   r·   r5   ri  )r  r   r8   r³   r   r   r   r   Ú#test_groupby_column_index_name_lost#
  s
    r›  Úinfer_stringÚpyarrow)Zmarksc                 C   sª   | rt  d¡ tg d¢g d¢g d¢dœƒ t¡}g d¢|_t d| ¡�" | g d¢¡ 	¡ }W d   ƒ n1 sn0    Y  tg d	¢gt
 d
g¡g d¢td�}t ||¡ d S )Nr�  )r¥   rž   r²   r   rê  r'  r)   )r   r   r   zfuture.infer_string)r   r   r   r   )rž   rÍ   rL   r   )r(   r·   r;   )rk   Zimportorskipr   rx   rÉ   r·   r*   r’  r/   rq  r3   rŒ   r5   r6   )rœ  r8   r   r   r   r   r   Útest_groupby_duplicate_columns-
  s    	
ÿþ
0ÿrž  c                  C   s\   t g d¢g d¢dd�} d| j_| jdd� ¡ }t dd	gd
dgdd�}d|j_t ||¡ d S )Nr'  r&  )rÍ   rÍ   ©r(   rZ   )rÎ   rÎ   r   r  r!   r¼   rL   )r   r(   rZ   r/   Úlastr5   rh   )r7   r   r   r   r   r   Ú#test_groupby_series_with_tuple_nameD
  s    r¡  zfunc, valuesrO   ç     @X@ç     €X@r[   g     @8@g     €8@c                 C   s`   g d¢}t ddgd ||dœƒ}t| d¡| ƒƒ }t ||dœtddgdd�d	�}t ||¡ d S )
N©ç €à7yÃACr¥  éa   éb   ç €à7yÃ1Ãr¨  r¨  r¨  rL   r!   r¼   ©rˆ   rÍ   rÎ   rˆ   rÌ   r9  r'   )r   rõ   r/   r	   r5   r6   )r  rÚ   rn   r8   r   r   r   r   r   Ú)test_groupby_numerical_stability_sum_meanN
  s
    rª  c                  C   sr   g d¢} t ddgd | | dœƒ}| d¡ ¡ }dgd dd	g d
dg ddg }t ||dœƒ}tj||dd� d S )Nr¤  rL   r!   r¼   r©  rˆ   r¥  g0€à7yÃACg1€à7yÃACga€à7yÃ1Cgb€à7yÃ1Cr¢  r£  rÌ   T)Zcheck_exact)r   r/   r:  r5   r6   )rn   r8   r   Zexp_datar   r   r   r   Ú'test_groupby_numerical_stability_cumsumZ
  s     ÿr«  c                  C   sz   t j d¡ d¡} t| ƒ}tdƒD ]}t j|j||f< q"d|d< | d¡}|j	dd�}|g d¢ j	dd�}t
 ||¡ d S )	Nr!   )r    r    r    rL   r   F©Úskipnar©  )r3   r_   r`   r‹   r   r1   r�   r.   r/   r:  r5   r6   )rÂ  r8   Úir9   r¹   r   r   r   r   Ú test_groupby_cumsum_skipna_falsef
  s    
r¯  c                  C   sÆ   t ddd�} t| ƒ| d  }tj|d< td|dœƒ}| d¡}|jd	d
d�}td|d |d tj|d |d d giƒ}t ||¡ |jd	d	d�}td|d |d tjtjtjgiƒ}t ||¡ d S )NrD  r    r   r   r!   rL   rµ  r   FT)r  r­  r   r¼   )	r   r   r*   r-   r   r/   r:  r5   r6   )r`  r7   r8   r9   r¹   r6  r   r   r   Útest_groupby_cumsum_timedelta64v
  s    

,$r°  c                 C   s4   | }|j dd� ¡ }|  |j¡ ¡ }t ||¡ d S )Nr   r  )r/   r[   r(   r5   rh   )Z(rand_series_with_duplicate_datetimeindexZdupsr   r   r   r   r   Ú!test_groupby_mean_duplicate_indexˆ
  s    r±  c                  C   sT   t g d¢tjtjtjgƒ} |  | j¡ ¡ }t g tg tjd�tjd�}t	 
||¡ d S )NrË   r�   rB   )r   r3   r�   r/   r(   rO   r	   r>   r<   r5   rh   ©r�  r   r   r   r   r   Ú test_groupby_all_nan_groups_drop�
  s    r³  c                 C   sž   t g g d¢d�}|jddg| d�}|j|d�}| rdtg g gg g gddgd�}|sVdgn
tg d	d
�}ntdƒ}|sxg d¢nddg}t g ||d�}t ||¡ d S )Nr)   rˆ  r   r   r«   r  r1  r%   rÈ  r�   r   rÁ   )r   r/   rO   r   r	   r   r5   r6   )r¬   r  r8   r9   r   r(   r·   r   r   r   r   Útest_groupby_empty_multi_column—
  s    r´  c                  C   s~   t ddggddggddggddgggddgd�} t dddgddggitddgdd	�d
�}| jdgd�}| ¡ }t ||¡ d S )NrR  rL   ÚWrV   rW   ZMWrq   r8  r9  r'   r÷  )r   r	   r/   rO   r5   r6   ©r8   r   r9   r   r   r   r   Ú*test_groupby_aggregation_non_numeric_dtype§
  s    (ÿÿür·  c                  C   sš   t g d¢dd„ tddƒD ƒdd„ tddƒD ƒdœƒ} t dd„ td	d
ƒD ƒdd„ td	d
ƒD ƒdœtddgddd�d�}| jdgd�}| ¡ }t ||¡ d S )N©rL   r   rL   rL   r   c                 S   s   g | ]}t |d ƒ‘qS ©Údays©r   ©rÇ   r®  r   r   r   rÒ   ¾
  rG   zDtest_groupby_aggregation_multi_non_numeric_dtype.<locals>.<listcomp>rL   r  c                 S   s   g | ]}t |d  dƒ‘qS ©rV   rº  r»  r¼  r   r   r   rÒ   ¿
  rG   r(  c                 S   s   g | ]}t |d ƒ‘qS r¹  r»  r¼  r   r   r   rÒ   Å
  rG   rP   r@   c                 S   s   g | ]}t |d  dƒ‘qS r½  r»  r¼  r   r   r   rÒ   Æ
  rG   ©rã   r)  r   r<   rE   ©r;   rZ   r'   r÷  )r   r1   r	   r/   rO   r5   r6   r¶  r   r   r   Ú0test_groupby_aggregation_multi_non_numeric_dtype¹
  s    ýÿþûrÀ  c                  C   sˆ   t g d¢dd„ tddƒD ƒttddƒƒdœƒ} t tddƒtd	dƒgdd	gd
œtddgddd�d�}| jdgd�}| ¡ }t ||¡ d S )Nr¸  c                 S   s   g | ]}t |d ƒ‘qS r¹  r»  r¼  r   r   r   rÒ   Õ
  rG   zKtest_groupby_aggregation_numeric_with_non_numeric_dtype.<locals>.<listcomp>rL   r  r(  rP   rº  r€   r¾  r   r<   rE   r¿  r'   r÷  )	r   r1   r0   r   r	   r/   rO   r5   r6   r¶  r   r   r   Ú7test_groupby_aggregation_numeric_with_non_numeric_dtypeÐ
  s    ýÿþrÁ  c                  C   s„   dddddœdddddœdddddœg} t | ƒ}||d dk }| d¡}| ¡ }t g d	¢gg d
¢tdgdd�d�}t ||¡ d S )NFTg      %@)Ú
filter_colÚgroupby_colÚbool_colÚ	float_colg     €4@g     €>@rÂ  rÃ  )rå  rå  g$+¿ÆH@)rÂ  rÄ  rÅ  r9  rÁ   )r   r/   r2   r	   r5   r6   )Zdictsr8   Z	df_filterÚdfgbr   r   r   r   r   Útest_groupby_filtered_df_stdä
  s    ý
ýrÇ  c                  C   sž   t ttdƒƒttg d¢ƒdd�tjg d¢ddgd�d	œƒ} | jd
dgdd�j}d
tdƒft	 
dg¡dtdƒft	 
dg¡dtdƒft	 
dg¡i}||ksšJ ‚d S )NÚabc)r_  z
2018-02-01z
2018-03-01Úcategoryr�   )r&   r   rL   r   rL   )Ú
categoriesrè   rÍ   rÎ   F©rN  z2018-01-01 00:00:00z2018-02-01 00:00:00rÝ   z2018-03-01 00:00:00r!   )r   r   r0   r   r   Z
from_codesr/   rû   r   r3   rŒ   r=  r   r   r   Ú2test_datetime_categorical_multikey_groupby_indicesø
  s    

þúÿ
ýrÌ  c                  C   s    dgd dgd  } t jt jdddgt jddddg }t| |gƒj}dd	g|_d
}tjt|d��, | d¡d	 j	ddd� 
¡  W d   ƒ n1 s’0    Y  d S )NZAlicer    ZBobrL   r!   rA   r¼   rZ   rÑ  z@^[a-zA-Z._]*\(\) got an unexpected keyword argument 'min_period'rJ   )ZwindowZ
min_period)r3   r�   r   r¸   r·   rk   rl   r-  r/   ZrollingrO   )Zname_lZval_lZtest_dfZresult_error_msgr   r   r   Ú#test_rolling_wrong_param_min_period  s    "
ÿrÍ  c                 C   sx   t g d¢g d¢tg d¢| d�dœƒ}tjddœ}| dg¡ |¡}t d	d
gd	gddgddgdœƒ d¡}t ||¡ d S )N)ÚThomasrÎ  úThomas John)i°  i  é„  )ÚsadÚhappyrÒ  r�   )ÚNameÚCreditÚMoodrO   )rÕ  rÔ  rÓ  rÒ  rÑ  iÄ	  rÐ  rÎ  rÏ  )rÕ  rÔ  rÓ  )r   r   Úmoder/   rg   rá   r5   r6   )Zany_string_dtyper8   Zaggregate_detailsr   Zexpected_resultr   r   r   Ú.test_by_column_values_with_same_starting_value  s"    ýÿ
ýÿúr×  c                  C   sn   g d¢g d¢g} t dtj| ddgd�d�}|jddgd	� ¡ }t dd
gtjddgddgd�ƒ}t ||¡ d S )N)NrL   r   rL   )r!   rA   r!   rA   rL   rÍ   rÎ   r1  r'   r   r  r!   )rå  r!   )rÑ   rA   )r   r   rk  r/   rO   r3  r5   rh   )rÂ  r7   r   r   r   r   r   Ú#test_groupby_none_in_first_mi_level2  s    ÿrØ  c                 C   s|   t g d¢g d¢g d¢dœƒ}| r(tjgnd g}|j|d�}| ¡ }t ddgdd	gd
œtddg|d d�d�}t ||¡ d S )Nr&  )rL   rL   r!   rA   )r¼   r    r  rP   )NrÎ   rÝ   r÷  r!   r    r@   é   r  rL   r   r9  r'   )r   r3   r�   r/   rO   r	   r5   r6   )r.  r8   rD  r9   r   r   r   r   r   Útest_groupby_none_column_name=  s    *rÚ  Ú	selectionc                 C   sr   t ddgtjdgtjdgdœddgd�}| d u r<| dg¡n| dg¡|  }d	d
„ |D ƒ}ddg}||ksnJ ‚d S )NrL   r!   r    rè   rE   rã   r'   rÍ   c                 S   s   g | ]\}}|‘qS r   r   ©rÇ   r   r¦  r   r   r   rÒ   L  rG   z5test_single_element_list_grouping.<locals>.<listcomp>©rL   )r!   )r   r3   r�   r/   )rÛ  r8   ro   r   r   r   r   r   Ú!test_single_element_list_groupingG  s
    ($rÞ  c                  C   sv   t g d¢g d¢dœƒ} | d  d¡| d< t g d¢g d¢dœƒ}|d  d¡|d< | jddd	�}| ¡ }t ||¡ d S )
N)rÍ   rÎ   rÝ   rÍ   )rL   r!   rA   r!   )Ústr_colZnum_colrß  Ústringrè   )r–  rØ   r0  Fr«   )r   rx   r/   r[   r5   r6   )r8   r   ro   r   r   r   r   Útest_groupby_string_dtypeR  s    úÿ
rá  zlevel_arg, multiindex)©r   F)râ  Tc                 C   s‚   t ddgddgddgdœdd	gd
�}|r6| ddg¡}d}tjt|d��& dd„ |j| d�D ƒ W d   ƒ n1 st0    Y  d S )NrL   r!   rA   r¼   r    r  rè   rE   rã   r'   rÍ   rÎ   zÏCreating a Groupby object with a length-1 list-like level parameter will yield indexes as tuples in a future version. To keep indexes as scalars, create Groupby objects with a scalar level parameter instead.rJ   c                 S   s   g | ]\}}|‘qS r   r   rÜ  r   r   r   rÒ   u  rG   zKtest_single_element_listlike_level_grouping_deprecation.<locals>.<listcomp>r  )r   rá   r5   rd   re   r/   )Z	level_argrä   r8   rë   r   r   r   Ú7test_single_element_listlike_level_grouping_deprecationf  s    $ÿrã  )rO   r:  Úcumprodrs  c                 C   sj   d}t d|gdœƒ}t| d¡| ƒƒ | }t ddgitdgdd�d�}| d	v rZ|jd
d�}t ||¡ d S )Nl   ÌL™33ffrL   rÌ   rÍ   rÎ   r   r9  r'   )r:  rä  TrM  )r   rõ   r/   r	   rR  r5   r6   )r  rÑ  r8   r   r   r   r   r   Ú#test_groupby_avoid_casting_to_floatx  s    rå  z	func, val)rO   rA   )rs  r!   c                 C   s\   t dddtjgdœ| d�}t| d¡|ƒƒ }t d|gitdgd| d�| d�}t ||¡ d S )	NrL   r!   rÌ   r�   rÍ   rÎ   rÍ  rB   )r   r*   ÚNArõ   r/   r	   r5   r6   )Úany_numeric_ea_dtyper  rÑ  r8   r   r   r   r   r   Útest_groupby_sum_support_mask„  s    ýrè  z
val, dtype)éo   rI  )éÞ   Zuintc                 C   sì   t d| | gdœ|› d�d�}| d¡ ¡ }t d| d gitdgd|› d�d�|› d	�d
�}t ||¡ | d¡ ¡ }t d| | d gi|› d	�d�}t ||¡ | d¡ ¡ }t d| |  gitdgd|› d�d�|› d	�d
�}t ||¡ d S )NrL   rÌ   Ú8r�   rÍ   rÎ   r!   rÍ  Z64rB   )r   r/   rO   r	   r5   r6   r:  rs  )rÑ  r;   r8   r   r   r   r   r   Útest_groupby_overflow‘  s$    ýýrì  zskipna, val)TrA   c                 C   sT   t ddtjdgdœ| d�}| d¡j|d�}t ddtj|gi| d�}t ||¡ d S )NrL   r!   rÌ   r�   rÍ   r¬  rÎ   )r   r*   ræ  r/   r:  r5   r6   )rç  r­  rÑ  r8   r   r   r   r   r   Útest_groupby_cumsum_maskª  s    þrí  zval_in, index, val_out)rÑ   rØ   r0  r×   rž  )r}   r}   r~   r‚  Úblah)r0  r×   rž  r0  )rÑ   rØ   r0  r×   rž  g      @)r}   r}   r~   r‚  rî  rî  )r0  r×   g      &@r0  c                 C   st   t | dt|dd�d�}| d¡ ¡ }t |dtg d¢dd�d�}t ||¡ | ¡  d¡ ¡ }| ¡ }t ||¡ d S )NrÚ   rî  r9  )rn   rZ   r(   )r~   r‚  rî  r}   )r   r	   r/   rO   r5   rh   r+   r6   )Zval_inr(   Zval_outZseriesr   r   r   r   r   Ú(test_groupby_index_name_in_index_content¶  s    ýrï  r1  )rL   rV   é    rH  r  c                 C   s`   t ddg|  dœƒ}|d  d¡|d< | d¡ ¡ }t d| gitdgdd�d�}t ||¡ d S )NrL   T)rÃ  rH  rH  rÃ  r9  r'   )r   Úeqr/   rO   r	   r5   r6   )r1  r8   r   r   r   r   r   Útest_sum_of_booleansÕ  s
    rò  z<ignore:invalid value encountered in remainder:RuntimeWarning)rø   ÚtailrQ  rœ   r   c                 C   s¬   t dtjdtjdgtdƒdœƒ}| dkr@t| d¡| ƒdd	�}nt| d¡| ƒƒ }| d
v r~t dg d¢iƒ tg d¢dd�¡}nt g d¢g d¢dœg d¢d�}t 	||¡ d S )NrÍ   rÎ   rÝ   r    rµ  rQ  r   r   )r1  )rœ   r   r   r  rè   r9  r'   )
r   r3   r�   r1   rõ   r/   rá   r   r5   r6   )rK  r8   r   r   r   r   r   Útest_groupby_method_drop_naß  s     ÿrô  c                  C   st  t jdddd�} ttdƒƒd }|  ¡ }| |¡}tjtdd�� | 	¡  W d   ƒ n1 s^0    Y  tjtdd�� | 
¡  W d   ƒ n1 s”0    Y  tjtd	d�� | ¡  W d   ƒ n1 sÊ0    Y  tjtd
d�� | ¡  W d   ƒ n1 �s0    Y  | ¡ }|dd … }ttdƒtd�|_t ||¡ | ¡ }|d d… }ttdƒtd�|_t ||¡ d S )NrD  rH  rƒ   r¿   rV   z+Period type does not support sum operationsrJ   z.Period type does not support cumsum operationsz,Period type does not support prod operationsz/Period type does not support cumprod operationsiöÿÿÿr�   )r*   Úperiod_ranger0   r1   Z	to_seriesr/   rk   rl   r-  rO   r:  rs  rä  rK  r	   rI  r(   r5   rh   rq  )ÚpiZgrpsr7   r9   r¹   r   r   r   r   Útest_groupby_reduce_periodõ  s0    
&ÿ&&ÿ(r÷  c                  C   sN   t g d¢gƒ} g d¢| _|  | d ¡}|j}| jg d¢dd�}t ||¡ d S )N)r   rL   r!   rA   rZ  rL   )r   r!   rA   r    )r   r·   r/   Z_obj_with_exclusionsrý   r5   r6   )r8   r9   r   r   r   r   r   Ú*test_obj_with_exclusions_duplicate_columns  s    
rø  c                 C   sž   dddœdddœg}t |td�}|jdddd	�}| r`|jd
d�}t ddgdgd�}t ||¡ n:tjtdd�� |j| d� W d   ƒ n1 s�0    Y  d S )Nr}   r~   rÌ   ÚcarZdarr�   rÍ   F)r¬   r›  Tr  r8  z(could not convert string to float: 'bar'rJ   )	r   rÉ   r/   r2   r5   r6   rk   rl   rg  )r  Zdicts_non_numericr8   rÆ  r   Úexpected_dfr   r   r   Ú'test_groupby_numeric_only_std_no_result  s    ÿrû  z7ignore:invalid value encountered in cast:RuntimeWarningc                  C   sò   t g d¢g d¢dœƒ} tj| d t ddd¡d�}| j|d	gd
d�d  d¡}ttdddd�tdddd�tdddd�tdddd�gdd�}g d¢}t	j
||gdd	gd�}tt dtjdtjdtjdtjtjdtjtjg¡|dd�}t ||¡ d S )N)çš™™™™™¹?çš™™™™™É?ç333333Ó?çš™™™™™Ù¿ç      à?)rÍ   rÎ   rÍ   rÝ   rÍ   )rE   ÚwrE   r   rL   r    rª   r  FrË  r[   gD‹lçû©Ù¿rü  rV  )Úclosedrý  rþ  r   T)rV  rè   r1  rÿ  rŸ  )r   r*   Zqcutr3   Zlinspacer/   rg   r   r
   r   rÏ  r   rŒ   r�   r5   rh   )r8   Zqqr   Zcategorical_index_level_1Zindex_level_2r4  r   r   r   r   Ú/test_grouping_with_categorical_interval_columns0  sF    üù	ÿôÿîr  Úbug_varc                 C   sr   t d| | | tjgiƒ}t| tƒr*| t¡}| dd„ ¡}|jdd�}t | | | d gdg|d j	d�}t
 ||¡ d S )Nr   c                 S   s   | S rM   r   rD   r   r   r   rF   `  rG   z;test_groupby_sum_on_nan_should_return_nan.<locals>.<lambda>rL   )Z	min_count)r·   r;   )r   r3   r�   r$  rÈ  rx   rÉ   r/   rO   r;   r5   r6   )r  r8   rÆ  r   rú  r   r   r   Ú)test_groupby_sum_on_nan_should_return_nanZ  s    

ÿr  )rL  ZcorrZcummaxZcumminrä  rñ   Zrankr¯   r‹  rx  rþ   rš  rL  r†   r  r|  Z
pct_changec                 C   sd   t dt| ƒd�}|| _|  dg¡dg }| dg  | d ¡}t||ƒƒ }t||ƒƒ }t ||¡ d S )NÚ2014r   r   r%   )r   rc   r(   r/   rõ   r5   r6   )r8   rK  Úrngr²   Úg_expr¹   r6  r   r   r   Ú#test_groupby_selection_with_methodsi  s    r	  c                 C   sT  t dt| ƒd�}d| j_|| _|  dg¡dg }| dg  | d ¡}d}tjt|d��( t 	| 
d¡| 
d¡¡ W d   ƒ n1 s„0    Y  d	}tjt|d��  t 	|j|j¡ W d   ƒ n1 sÆ0    Y  t 	| d
d„ ¡| d
d„ ¡¡ t 	| d¡ ¡ | d¡ ¡ ¡ t 	| d¡ ¡ | d¡ ¡ ¡ t 	| dd„ ¡| dd„ ¡¡ d S )Nr  r   r}   r   r%   rŠ  rJ   r   z%DataFrameGroupBy.dtypes is deprecatedc                 S   s   |   ¡ S rM   rN   rD   r   r   r   rF   Ÿ  rG   z6test_groupby_selection_other_methods.<locals>.<lambda>rƒ   c                 S   s   t | ƒdkS rC   r,  rD   r   r   r   rF   ¥  rG   )r   rc   r·   rZ   r(   r/   r5   rd   re   r6   r‰  r�   ri   Zresampler[   ra  r-  )r8   r  r²   r  rŽ  rr   r   r   r   Ú$test_groupby_selection_other_methods�  s"    6.   ÿr
  c                 C   s€   t g d¢ƒ | ¡}tg d¢g d¢|dœƒ}tddd| d�}t|g d¢g d¢d	œƒ}| td
dd�¡}| ¡  ¡ }t 	||¡ d S )N)z2016-08-31 22:08:12.000z2016-08-31 22:09:12.200z2016-08-31 22:20:12.400)rÑ   rÑ   r0  )ÚquantÚquant2Útime2z2016-08-31 22:08:00rÙ  Z1min)r   rÀ   Úunit)rL   rL   r   r   r   r   r   r   r   r   r   r   rL   )r  r  r  r  )r   rÀ   )
r   Zas_unitr   r   r/   r   rL  rR  r5   r6   )r  Zidx2Z	test_datar  Zexpected_outputr9   r   r   r   r   Útest_groupby_with_Time_Grouper©  s$    ÿúÿýÿr  c                  C   sP   t g d¢tddd�dd�} |  | ¡ ¡ }t ddgdd	�}d|j_t ||¡ d S )
Nrr  z
2022-01-01rA   r   ÚjanrŸ  r!   rL   r9  )r   r   r/   rL  r(   rZ   r5   rh   r²  r   r   r   Ú1test_groupby_series_with_datetimeindex_month_nameÅ  s
    r  Útest_serieszkwarg, value, name, warn)rD  rÍ   rL   NrD  rÝ  )r   r   rL   Nc           
      C   sÐ   t dg d¢itg d¢dd�d�}| r,|d }|jf i ||i¤Ž}d}tj||d�� | |¡}W d   ƒ n1 sr0    Y  | r td	d
gtddgdd�dd�}	n t dd	d
gitddgdd�d�}	t ||	¡ d S )NrÎ   r@  r?  rÍ   r9  r'   z&you will need to pass a length-1 tuplerJ   rA   r¼   rL   rŸ  )r   r	   r/   r5   rd   r<  r   rW  )
r  Úkwargr„   rZ   r´   rA  r9   rr   r   r   r   r   r   Ú$test_depr_get_group_len_1_list_likesÎ  s     (  r  c                  C   sJ   t ttjgƒdgdœƒ} | jddgddd� ¡ }tdgƒ}t ||¡ d S )NrL   rÌ   rÍ   rÎ   F)r  rN  r   )	r   r   r3   r�   r/   rX  r   r5   rh   r=  r   r   r   Útest_groupby_ngroup_with_nanê  s    
r  c                  C   s˜   t g d¢g d¢g d¢g d¢g d¢dœƒ} tjtdd��" | jd	g d
¢d�}W d   ƒ n1 s^0    Y  | d	¡}t g d¢g d¢dœƒ}t ||¡ d S )N)r   rA   r!   rA   )r¼   rL   r  rP   )rA   r€   r!   rV   )rL   rÙ  r  rÕ  )éüÿÿÿr    r  iùÿÿÿ)r  r  Zcol3Zcol4Úcol5Ú
deprecatedrJ   rL   )rL   r!   rA   r!   rL   )r¡   rD  )r  r  )r   r5   rd   re   r/   r<  r6   rd  r   r   r   Útest_get_group_axis_1ò  s"    ûÿ	0
þÿr  c                  C   s`   t dddddtjtjgig d¢d�} | jdd	� ¡ }t dg d
¢ig d¢d�}tj||dd� d S )NrÍ   rL   r!   rA   r¼   rï  r'   r   r  )rL   r!   rA   r¼   r!   rA   FrÕ   )r   r3   r�   r/   r  r5   r6   r=  r   r   r   Ú(test_groupby_ffill_with_duplicated_index	  s    $r  c                 C   sŒ   t tjtƒrJ ‚ttdƒtdƒd d gtdƒtdƒtdƒtdƒgdœƒ}|jddd	�}| r`|d
 }|jj}t	tdƒd gdd�}t
 ||¡ d S )NrL   r!   rA   r¼   r    )r   r„   r   F)r  r„   r9  )r$  ÚdecimalÚInvalidOperationr-  r   r   r/   rÜ  Zresult_indexr	   r5   ri  )r  r8   r9   r   r   r   r   r   Útest_decimal_na_sort  s    þÿr  )År   r  r   r+  Únumpyr3   rk   Zpandas.errorsr   r   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsÚtdZpandasr*   r   r   r   r	   r
   r   r   r   r   r   r   r   Zpandas._testingZ_testingr5   Zpandas.core.arraysr   Zpandas.core.commonÚcoreÚcommonrð  ÚmarkÚfilterwarningsZ
pytestmarkr   r:   Zparametrizeru   r{   rŽ   rŸ   rµ   rº   rÊ   rÐ   rÔ   rÜ   rî   rö   r  r  r  r  r  r&  r/  r7  r>  rB  rF  rW  r[  r]  r`  rc  re  rh  rj  rl  ro  rr  rz  r}  r~  r€  r�  r†  rˆ  r�  r‘  r”  r˜  r�  r£  r§  r¨  r´  r·  r¸  r¹  r¾  r¿  rÀ  rÃ  rÇ  rÌ  rÎ  rÐ  rÓ  rÖ  rØ  rÞ  rß  rç  rè  rõ  rö  rü  rý  r  r  r	  r
  r  r  r  r  r+  r/  r3  r?  rC  rõ  rŒ   rY  r[  r\  r]  rd  rg  ri  rn  rp  rw  r�  r‚  rƒ  r�  r�  r‘  r”  r—  r˜  r™  r›  ÚparamZ
skip_if_norž  r¡  rª  r«  r¯  r°  r±  r³  r´  r·  rÀ  rÁ  rÇ  rÌ  rÍ  r×  rØ  rÚ  rÞ  rá  rã  rå  rè  rì  ræ  rí  rï  rò  rô  r÷  rø  rû  r  r  r	  r
  r  r  re   r  r  r  r  r  r   r   r   r   Ú<module>   s‚  8
AH5
ÿ
=(09
 
C"	
þ

þ 
 	-	

?-	
	1þÿõñÿ~	
úÿþúÿþúÿþåþ,

-)þ









ôþ	þþ
&ÿ	

ÿýýúþ	ÿ
)þ	úþ	