o
    Û­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/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/groupby/test_groupby.pyÚ	test_repr%   s   r   c           
      C   sØ   t jddd�}t|ƒ}|d d d…  d9  < | d¡ ¡ }|tdƒ |d< |tdd	d
� |d< t j|jd< | t	t
dƒƒd ¡}| ¡ }tdƒ}tdƒ}t|d ||||gt d¡d�}t|||dœƒ}	t ||	¡ d S )Nz1 Dayé'  ©Úperiodsé   é   r   r   r   ÚUTC©ÚtzÚCéÿÿÿÿiÐ  z2887 days 11:21:02.326710176z2886 days 00:42:34.664668096©Úindex©r   r   r%   )ÚpdÚtimedelta_ranger   Úto_frameÚcopyr   ÚNaTÚilocÚgroupbyÚlistÚrangeÚstdr   ÚnpÚaranger   ÚtmÚassert_frame_equal)
Úwarn_copy_on_writeÚtdiÚserÚdfÚgbr   Útd1Útd4Úexp_serr   r   r   r   Útest_groupby_std_datetimelike,   s    r@   Údtype)Úint64Úint32Úfloat64Úfloat32c                    s8  t t d¡d t d¡| d�}t d¡}tj d¡ |¡ | |¡}|jdd„ dd�}|D ]\}}t|ƒdks9J ‚q-d	}t	j
t|d
�� | tj¡}W d   ƒ n1 sTw   Y  |d dksaJ ‚d	}t	j
t|d
�� | tj¡}W d   ƒ n1 s{w   Y  t	 ||¡ t	 || ¡ ¡ | ¡ }	d}t	j
t|d
�� | tj¡}W d   ƒ n1 s¬w   Y  t	 |	|¡ | dd„ ¡}| dd„ ¡}
|
d dksÍJ ‚t	 |
|¡ | |¡}d	}t	j
t|d
�� | tj¡}	W d   ƒ n1 sòw   Y  t	j|	|dd� d}t	j
t|d
�� | tjtjg¡}W d   ƒ n	1 �sw   Y  d}tjt|d
�� | tjtjdœ¡ W d   ƒ n	1 �sAw   Y  ddddœ‰ d}t	j
t|d
�� | ‡ fdd„¡}W d   ƒ n	1 �sjw   Y  |d dk�sxJ ‚d}tjt|d
�� | dd„ ¡ W d   ƒ d S 1 �s•w   Y  d S )Né	   é   ©r(   rA   r!   c                 S   s   | d S ©NrG   r   ©Úxr   r   r   Ú<lambda>O   ó    z)test_basic_aggregations.<locals>.<lambda>F©Ú
group_keyszusing SeriesGroupBy.mean©Úmatché   zusing SeriesGroupBy.sumc                 S   ó   | |   ¡  S ©N©ÚsumrJ   r   r   r   rL   d   ó    c                 S   rS   rT   rU   rJ   r   r   r   rL   e   rW   é   é   ©Úcheck_index_typezusing SeriesGroupBy.[mean|std]únested renamer is not supported)ÚoneÚtwoé
   é   é   ©r   rR   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 rT   )ÚnameÚmeanrJ   ©Úgroup_constantsr   r   rL      ó    é   zMust produce aggregated valuec                 S   s   | d S ©Nr!   r   rJ   r   r   r   rL   †   rM   )r   r4   r5   ÚrandomÚdefault_rngÚshuffleÚreindexr0   Úlenr6   Úassert_produces_warningÚFutureWarningÚ	aggregaterd   ÚaggÚassert_series_equalrV   ÚapplyÚ	transformr3   ÚpytestÚraisesr   Ú	Exception)rA   Údatar(   ÚgroupedÚkÚvÚmsgÚaggedr   r   ÚtransformedÚvalue_groupedr   re   r   Útest_basic_aggregationsG   sj   

ÿÿÿ
ÿÿÿÿþ$ÿr�   c                 C   sj   | j jd }|  |¡}| ¡ }|  | d¡¡ ¡ }|j jtjks"J ‚|j jtjks+J ‚t	j
||dd� d S )Nr   ÚOFrZ   )r(   Úcodesr0   rV   ÚastyperA   r4   Úint8rB   r6   r7   )Ú multiindex_dataframe_random_datar   rz   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 sHw   Y  |j}| j}t ||¡ d S )N©ÚfooÚbarr‰   rŠ   r‰   rŠ   r‰   r‰   )r]   r]   r^   Úthreer^   r^   r]   r‹   r!   é   rE   ©rA   ©r   r   r%   ÚDÚvaluec                 S   s   | j | d  ¡  S )Nr�   )ÚlocÚidxmax©Úgroupr   r   r   Ú	max_value    ó   z5test_groupby_nonobject_dtype_mixed.<locals>.max_valueú7DataFrameGroupBy.apply operated on the grouping columnsrP   r   )r   r4   rj   rk   Ústandard_normalÚarrayr2   rn   r6   ro   rp   r0   rt   Údtypesrs   )r;   r•   r}   Úappliedr   r   r   r   r   Ú"test_groupby_nonobject_dtype_mixed”   s    üÿÿrœ   c            
      C   sz  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 sBw   Y  t ||¡ dd„ }d}tjt	|d�� |  d
¡ 
|¡dg }W d   ƒ n1 spw   Y  | ¡ }tj|jd< t ||¡ dd„ }d}tjt	|d�� |  d
¡ 
|¡dg }W d   ƒ n1 s¨w   Y  | ¡ }tj|jd< t ||¡ dd„ }d}tjt	|d�� |  d
¡ 
|¡dg }W d   ƒ n1 sàw   Y  |  d
¡ ¡ dg }tj|jd< t ||¡ dd„ }	d}tjt	|d�� |  d
¡ 
|	¡}W d   ƒ n	1 �sw   Y  |  d
¡ ¡ d  ¡ }tj|jd< d |_t ||¡ d S )N)ÚTigerr�   r�   ÚLambrž   ÚPonyrŸ   rX   rB   r�   Ú20130101r   r)   c                 S   s
   | j d S ©Nr   )r/   ©Úgrpr   r   r   Úf_0¶   s   
z*test_inconsistent_return_type.<locals>.f_0r   r   r—   rP   c                 S   ó   | j dkrd S | jd S )Nr�   r   ©rc   r/   r¢   r   r   r   Úf_1¿   ó   

z*test_inconsistent_return_type.<locals>.f_1r�   c                 S   r¥   ©NrŸ   r   r¦   r¢   r   r   r   Úf_2Ë   r¨   z*test_inconsistent_return_type.<locals>.f_2rŸ   c                 S   r¥   r©   r¦   r¢   r   r   r   Úf_3Ø   r¨   z*test_inconsistent_return_type.<locals>.f_3r%   c                 S   s   | j dkrd S | jd jd S )NrŸ   r   r%   )rc   r/   r‘   r¢   r   r   r   Úf_4å   s   
z*test_inconsistent_return_type.<locals>.f_4)r   r   r4   r5   r   r0   Úfirstr6   ro   rp   rt   r7   r-   Únanr‘   r*   r.   rc   rs   )
r;   r¤   r   r}   r   r§   Úerª   r«   r¬   r   r   r   Útest_inconsistent_return_type«   s\   
ýÿÿÿÿÿÿr°   c              	   C   sÖ  ddd„}dd„ }|   dd„ ¡}|jtjddd�}|jtjddd�}|jtjddd�}| d	¡}| |¡}	t ||¡ t ||¡ t ||	¡ |j|dd
�}|j|dd
�}|j|dd
�}t ||¡ t ||¡ t ||	¡ dD ]ø}
|j dd„ |
d�}|
rd nt	}d}tj
||d�� |jtjddd�}W d   ƒ n1 sžw   Y  tj
||d�� | tjd	¡}W d   ƒ n1 s¼w   Y  tj
||d�� | d	¡}W d   ƒ n1 sØw   Y  tj||dd� t ||¡ | tjdd	g¡}tj
||d�� | dd	g¡}W d   ƒ n	1 �sw   Y  tj||dd� tj
||d�� |j|dd
�}W d   ƒ n	1 �s5w   Y  tj
||d�� |jtjd	d
�}W d   ƒ n	1 �sUw   Y  t ||¡ tj||dd� qpd S )Nr   c                 S   s   t j| ||d�S )N©Úaxis©r4   Ú
percentile)rK   Úqr²   r   r   r   Úfô   ó   z test_pass_args_kwargs.<locals>.fc                 S   s   t j| ddd�S )NéP   r   r±   r³   rJ   r   r   r   rL   ÷   ó    z'test_pass_args_kwargs.<locals>.<lambda>c                 S   ó   | j S rT   ©ÚmonthrJ   r   r   r   rL   ú   ó    r¸   r±   çš™™™™™é?©rµ   )TFc                 S   rº   rT   r»   rJ   r   r   r   rL     r½   ©Úas_indexú*A grouping .* was excluded from the resultrP   F©Úcheck_namesgš™™™™™Ù?r¡   )r0   rr   r4   r´   rt   ru   Úquantiler6   rs   rp   ro   r   r7   )ÚtsÚtsframer¶   ÚgÚ
ts_groupedÚ
agg_resultÚapply_resultÚtrans_resultÚagg_expectedÚtrans_expectedrÁ   Ú
df_groupedÚwarnr}   r   Úexpected_seqr   r   r   Útest_pass_args_kwargsó   s\   


ÿÿÿÿÿÿérÒ   rÁ   TFc                 C   sÆ   g d¢| _ | jdd„ |d�}|rd nt}d}tj||d�� |jtjddd	�}W d   ƒ n1 s1w   Y  | | jj	d
k  
d¡| | jj	dk  
d¡dœ}t|ƒj}|s[ttdƒƒ|_t ||¡ d S )N)r   r   r   r%   c                 S   rº   rT   r»   rJ   r   r   r   rL   ,  r½   z9test_pass_args_kwargs_duplicate_columns.<locals>.<lambda>rÀ   rÂ   rP   r¸   r   r±   rR   r¾   r!   ©rR   r!   )Úcolumnsr0   rp   r6   ro   rr   r4   r´   r(   r¼   rÅ   r   ÚTr	   r2   r7   )rÇ   rÁ   r<   rÐ   r}   ÚresÚex_datar   r   r   r   Ú'test_pass_args_kwargs_duplicate_columns(  s   
ÿþ
rØ   c                  C   s    t 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s1J ‚|  	dd„ dd„ g¡}t
dd„ | jD ƒƒ}t
|ƒ|ksNJ ‚d S )Nr!   ©r_   é   ÚABCDr�   ú
2000-01-01r_   r   ©r   Úfreq©rÔ   r(   c                 S   rº   rT   ©ÚyearrJ   r   r   r   rL   E  r½   ztest_len.<locals>.<lambda>c                 S   rº   rT   r»   rJ   r   r   r   rL   E  r½   c                 S   rº   rT   ©ÚdayrJ   r   r   r   rL   E  r½   c                 S   rº   rT   rà   rJ   r   r   r   rL   H  r½   c                 S   rº   rT   r»   rJ   r   r   r   rL   H  r½   c                 S   s   h | ]}|j |jf’qS r   )rá   r¼   ©Ú.0rK   r   r   r   Ú	<setcomp>I  s    ztest_len.<locals>.<setcomp>)r   r4   rj   rk   r˜   r	   r1   Úobjectr   r0   rn   r(   )r;   rz   r   r   r   r   Útest_len?  s   ýrè   c                  C   sd   t tjgd g d¢dœƒ} t|  d¡ƒdksJ ‚t|  d¡ƒdks#J ‚t|  ddg¡ƒdks0J ‚d S )NrG   ©rR   r!   rG   ©ÚaÚbrë   r   rì   )r   r4   r®   rn   r0   ©r;   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  ó    z)test_basic_regression.<locals>.<listcomp>rR   r_   r!   iL  g      $@)r   r1   r2   r4   rj   rk   r0   rd   )r   ry   Ú	groupingsrz   r   r   r   Útest_basic_regressionU  s
    
ró   )rD   rE   rB   rC   Úint16r…   c                 C   s¸   t t d¡ƒ}tt d¡|| d�}ttjdddtjtjddtjdg
|d�}| |¡}| t¡}tddgddgd�}t	j
||dd	� d
d„ }| |¡}tddgddgd�}t	 
||¡ d S )Nr_   r�   r‰   rŠ   r'   rÚ   r!   F©Úcheck_dtypec                 S   s   t t| ƒƒS rT   )Úfloatrn   rJ   r   r   r   r¶   u  s   ztest_with_na_groups.<locals>.fç      @ç       @)r	   r4   r5   r   Úonesr®   r0   rr   rn   r6   rs   )rA   r(   ÚvaluesÚlabelsrz   r~   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 sHw   Y  tjt|d�� | d¡ | ¡}W d   ƒ n1 sgw   Y  t ||¡ d}tj	t
|d�� | d¡ |¡ W d   ƒ n1 sŽw   Y  tj	t
|d�� | d¡ |¡ W d   ƒ n1 s­w   Y  tj	t
|d�� | d¡ |¡ W d   ƒ n1 sÌw   Y  tj	t
|d��0 tjt|d�� | d¡ |¡ W d   ƒ n1 sów   Y  W d   ƒ d S W d   ƒ d S 1 �sw   Y  d S )Nc                 S   s^   | | j d dk d }|jr&tg gd g gd ddgd�}tdg|d�}|S | ddg¡}|S )Nr!   rR   rì   Úc©Úlevelsrƒ   Únamesrë   rß   )rì   Úemptyr   r   Ú	set_index©rK   ÚyÚ
multiindexrÖ   r   r   r   Úf1�  s   z,test_indices_concatenation_order.<locals>.f1c                 S   s4   | | j d dk d }|jrtƒ S | ddg¡}|S )Nr!   rR   rì   rþ   )rì   r  r   r  )rK   r  r   r   r   Úf2‹  s
   z,test_indices_concatenation_order.<locals>.f2c                 S   sR   | | j d dk d }|jr'tg gd g gd ddgd�}tddg|d�}|S |S )	Nr!   rR   r‰   rŠ   rÿ   rë   rì   rß   )rì   r  r   r   r  r   r   r   Úf3“  s   ÿz,test_indices_concatenation_order.<locals>.f3)rR   r!   r!   r!   rÚ   r    rF   ©rë   rì   rþ   )rG   r!   r!   r!   zDThe behavior of array concatenation with empty entries is deprecatedr—   rP   rë   z@Cannot concat indices that do not have the same number of levels)r   r2   r6   ro   rp   r0   rt   r7   rv   rw   ÚAssertionError)	r  r  r	  r;   Údf2Údepr_msgr}   Úresult1Úresult2r   r   r   Ú test_indices_concatenation_order~  s>   
ÿÿÿÿÿÿÿ$ÿr  c                 C   s¾   |   dd„ ¡}| ¡ }| dd„ ¡}t ||¡ | ¡ }dd„ |D ƒ}t|ƒj}t ||¡ |j	}| dd„ ¡}t ||¡ d}t
jt|d�� t|d	ƒ W d   ƒ d S 1 sXw   Y  d S )
Nc                 S   ó   |   ¡ S rT   ©ÚweekdayrJ   r   r   r   rL   ¼  rM   z#test_attr_wrapper.<locals>.<lambda>c                 S   s   t j| dd�S )NrR   )Úddof)r4   r3   rJ   r   r   r   rL   ¿  ó    c                 S   s   i | ]	\}}||  ¡ “qS r   )Údescribe)rå   rc   Úgpr   r   r   Ú
<dictcomp>Ä  ó    z%test_attr_wrapper.<locals>.<dictcomp>c                 S   rº   rT   r�   rJ   r   r   r   rL   Ê  r½   z-'SeriesGroupBy' object has no attribute 'foo'rP   r‰   )r0   r3   rr   r6   rs   r  r   rÕ   r7   rA   rv   rw   ÚAttributeErrorÚgetattr)rÆ   rz   r   r   r}   r   r   r   Útest_attr_wrapper»  s   
"ÿr  c                 C   sf  |   dd„ ¡}| d¡}t|ƒdksJ ‚t|jƒdksJ ‚|  ¡ }dd„ |jD ƒ|d< |  d¡ d¡}tj||d	d
� |  d¡  dd„ ¡}| 	dd„ ¡}t|ƒdksTJ ‚t|jƒdks]J ‚| 	dd„ ¡}|D ]\}}| 
¡ }|jD ]}	tj| |	¡|d	d
� qqqf|D ]\}
}|jd  ¡ |
ks‘J ‚q‚|j}|j}| ¡ D ]\}}| j || ¡}||k ¡ s°J ‚qœd S )Nc                 S   r  rT   r  rJ   r   r   r   rL   Ô  rM   z$test_frame_groupby.<locals>.<lambda>rd   r    rÚ   c                 S   s   g | ]}|  ¡ ‘qS r   r  rä   r   r   r   rð   Ý  rñ   z&test_frame_groupby.<locals>.<listcomp>r  FrÃ   ra   c                 S   r  rT   r  rJ   r   r   r   rL   â  rM   c                 S   ó   | |   ¡  S rT   ©rd   rJ   r   r   r   rL   ã  rW   c                 S   r  rT   r  rJ   r   r   r   rL   è  rM   r   )r0   rq   rn   rÔ   r-   r(   r6   r7   Úheadru   rd   rs   Úxsr  ÚgroupsÚindicesÚitemsÚtakeÚall)rÇ   rz   Ú
aggregatedÚtscopyÚstraggedr   rc   r”   rd   Úidxr  r!  r"  r{   r|   Ú	samethingr   r   r   Útest_frame_groupbyÓ  s4   

ÿþr+  c           	      C   s  dddddœ}d}t jt|d�� | j|dd�}W d   ƒ n1 s"w   Y  | d¡}t|ƒt| ƒks6J ‚t|jƒdks?J ‚d	d
„ }d}t jt|d�� | jj|dd�}W d   ƒ n1 s_w   Y  t  | 	|¡j| 	|¡¡ |D ]\}}t|jƒdks€J ‚qsd S )Nr   rR   rŽ   ú+DataFrame.groupby with axis=1 is deprecatedrP   r±   rd   r!   c                 S   r  rT   r  rJ   r   r   r   rL     rW   z,test_frame_groupby_columns.<locals>.<lambda>ú5The 'axis' keyword in DataFrame.groupby is deprecated)
r6   ro   rp   r0   rq   rn   rÔ   rÕ   r7   ru   )	rÇ   Úmappingr}   rz   r&  ÚtfÚgroupedTr{   r|   r   r   r   Útest_frame_groupby_columnsû  s"   ÿ
ÿÿr1  c                 C   s6  |   d¡}|jdd�}|jjdksJ ‚| j ddd�jdd�}|jjdks&J ‚|ddg  d¡}|jjdks7J ‚| dd	d
œ¡}|jjdksGJ ‚|d  ¡ }|jjdksUJ ‚|d  d¡}|jjdksdJ ‚|d  dd	g¡}|jjdksuJ ‚d}tjt|d�� |d  dd	dœ¡ W d   ƒ d S 1 s”w   Y  d S )Nr   T©Únumeric_onlyFrÀ   r%   r�   rd   r3   ©r%   r�   r\   rP   ©r‰   rŠ   )r0   rd   r(   rc   rr   rv   rw   r   )r;   rz   r   r}   r   r   r   Útest_frame_set_name_single  s&   
"ÿr6  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   Tr2  r%   r�   FrÃ   r!   é   ©rì   rì   rì   rë   rë   rë   ©Ú1r:  r:  Ú2r;  r;  )Úv1Úv2Úk1Úk2)r]   r^   r‹   ÚfourÚfiveÚsixr'   r>  r?  rV   )r0   Úgetrd   r6   r7   r‘   r   r4   rj   rk   r˜   r™   rr   )r;   Úcol1Úcol2rz   r~   r   r   r   r   Útest_multi_func-  s$   *ÿüù
rF  c                 C   sJ   |   ddg¡d }| ddg¡}t| d¡| d¡dœƒ}t ||¡ d S )Nr   r   r%   rd   r3   )rd   r3   )r0   rr   r   r6   r7   )r;   rz   r~   r   r   r   r   Ú!test_multi_key_multiple_functionsI  s   rG  c                  C   sÎ   t g d¢g d¢tj d¡ d¡tj d¡ d¡tj d¡ d¡dœƒ} |  ddg¡}dd	g}| |¡}tj|d
  |¡|d  |¡|d  |¡gg d¢dd�}t	|j
tƒsWJ ‚t	|j
tƒs_J ‚t ||¡ d S )N©r‰   r‰   r‰   r‰   rŠ   rŠ   rŠ   rŠ   r‰   r‰   r‰   ©r]   r]   r]   r^   r]   r]   r]   r^   r^   r^   r]   r!   é   )r   r   r�   ÚEÚFr   r   rd   r3   r�   rK  rL  )r�   rK  rL  rR   )Úkeysr²   )r   r4   rj   rk   r˜   r0   rr   r*   ÚconcatÚ
isinstancer(   r   r6   r7   )ry   rz   Úfuncsr~   r   r   r   r   Ú"test_frame_multi_key_function_listQ  s&   ãÿ"
&ýrQ  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¡}| r:d}tj	t
|d�� | |¡ W d   ƒ d S 1 sRw   Y  d S )NrH  rI  )ÚdullrR  ÚshinyrR  rR  rS  rS  rR  rS  rS  rS  r!   rJ  )r   r   r%   r�   rK  rL  r   r   rd   r3   ú&agg function failed [how->mean,dtype->ú-dtype 'str' does not support operation 'mean'rP   )r   r4   rj   rk   r˜   r0   ÚreÚescaperv   rw   Ú	TypeErrorrr   )Úusing_infer_stringry   rz   rP  r}   r   r   r   Ú2test_frame_multi_key_function_list_partial_failure�  s"   Öÿ/
"ÿrZ  Úopc                 C   r  rT   rU   rJ   r   r   r   rL   º  rM   rL   c                 C   r  rT   r  rJ   r   r   r   rL   º  rM   c              	   C   s"  | }|  ddg¡}||ƒ}g }g }|  d¡D ]%\}}|  d¡D ]\}	}
| ||	f¡ | ||
jd d …ddgf ƒ¡ qqtj|ddgd�}tj|dd�j}||_dD ]}||| ƒ}|| }|| }t	 
||¡ t	 
||¡ qR|d   |d |d g¡ ¡ }|  ddg¡ ¡ d }t	 
||¡ d S )	Nr   r   r%   r�   ©r  rR   r±   r4  )r0   Úappendr‘   r   Úfrom_tuplesr*   rN  rÕ   r(   r6   rs   rd   )r;   r[  ry   rz   r  rM  rû   Ún1Úgp1Ún2Úgp2Úmir   ÚcolÚ
result_colÚpivotedÚexpr   r   r   r   Útest_groupby_multiple_columnsº  s,   "þrh  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 )NrR   r!   rÚ   r    r7  r   r   ©rÔ   FrÀ   ©rc   T)rÁ   rO   c                 S   r  rT   )ÚcumsumrJ   r   r   r   rL   ã  rM   z-test_as_index_select_column.<locals>.<lambda>)r!   r7  r7  ))r   r   )r   rR   rÓ   ©rc   r(   )	r   r0   Ú	get_groupr   r6   rs   rt   r   r^  ©r;   r   r   r   r   r   Útest_as_index_select_columnÛ  s   "ÿÿro  c                  C   s†   d} t g d¢g d¢dœƒ}|j| d¡j d¡ }tjt| d�� | d¡jd|d�}t 	||¡ W d   ƒ d S 1 s<w   Y  d S )	Nzobj is deprecated©rR   rR   r!   ©rG   rÚ   r    rê   rì   rÚ   rP   )Úobj)
r   r/   r0   r"  rC  r6   ro   rp   rm  r7   )r  r;   r   r   r   r   r   Ú!test_obj_arg_get_group_deprecatedë  s   "þrs  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)   Úalpharj  ri  r   F)ÚbyrÁ   r   r2  r!   r   rß   )	r   r	   r0   rV   rÔ   r2   r  r6   r7   )r;   Úleftr   r   r   r   Ú0test_groupby_as_index_select_column_sum_empty_dfõ  s
   
rw  c                 C   sÒ  | j ddd�}|ddg  d¡}|jdd�}t ||¡ | dd	d
œ¡}|jdd�}| ¡ d |d< t ||¡ | j ddd�}d}tjt|d�� |d  dd	i¡ W d   ƒ n1 s\w   Y  | j ddgdd�}| d¡}| ¡ }t ||¡ | dd	d
œ¡}| ¡ }| ¡ d |d< t ||¡ |d  ¡ }t	|ƒj
ddid�}d}tjt|d�� |d  dd	i¡}W d   ƒ n1 sÀw   Y  t ||¡ t	tj d¡ ddd¡g d¢d�} ttj d¡ ddd¡dd�}	|   |	¡}
|
 d¡ d}tjt|dd�� |
 t¡}W d   ƒ n	1 �sw   Y  tjt|dd�� |   |	¡ t¡}W d   ƒ n	1 �s1w   Y  t ||¡ dD ](}| j |	dd�}
t|
|ƒƒ }| j |	jdd�}
t|
|ƒƒ jdd�}t ||¡ �q>d S )Nr   FrÀ   r%   r�   rd   Tr2  rV   r4  r\   rP   ÚQr   ri  z7Passing a dictionary to SeriesGroupBy.agg is deprecatedr!   r   éd   )é2   rG   )ÚjimÚjoeÚjolier    r_   rz  r{  rj  z:The behavior of DataFrame.sum with axis=None is deprecated)rQ   Úcheck_stacklevel)rd   ÚmaxÚcountr’   rk  r%  ©Údrop)r0   rr   rd   r6   r7   rV   rv   rw   r   r   Úrenamero   rp   r4   rj   rk   Úintegersr   Únthrt   r  rû   Úreset_index)r;   rz   r   r   r  Ú	expected2r}   Ú	expected3Úresult3rÆ   ÚgrrÖ   ÚaltÚattrrv  Úrightr   r   r   Útest_groupby_as_index_agg   sd   ÿ
ÿþ

ÿÿùrŽ  c                 C   sþ   | dv rt  d| › �¡ ttj d¡jdddd�dd	gd
�}t| d¡| ƒƒ }| dkr0| 	d¡}| 
¡ }| dkrD|d  |d j¡|d< |jddd�}t|| ƒƒ }t ||¡ | | ¡}t ||¡ t|d	 | ƒƒ }t ||¡ |d	  | ¡}t ||¡ d S )N)Úcorrwithr…  Úngroupz!GH 5755: Test not applicable for r!   r   r    )ry  r!   )Úsizerë   rì   ri  r‘  FrÀ   )rv   Úskipr   r4   rj   rk   r„  r  r0   rƒ  r†  r„   rA   r6   r7   rr   )Úreduction_funcr;   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ƒs,J ‚t ||¡ |d  d¡}| d¡jd d …g d¢f }t|tƒsNJ ‚t ||¡ |d  ¡ }| ¡ jd d …ddgf }t|tƒsnJ ‚t ||¡ |d  ¡ }| ¡ jd d …g d¢f }t|tƒsŽJ ‚t ||¡ d S )Nr   FrÀ   r   r%   rV   r)   )r0   rr   r‘   rO  r   r6   r7   rV   )r;   rz   Úgrouped2r   r   r  r‡  r   r   r   Ú!test_as_index_series_return_framee  s$   r–  c                 C   sT   | j ddd�}d}tjt|d�� |d  d¡ W d   ƒ d S 1 s#w   Y  d S )Nr   FrÀ   zColumn\(s\) C already selectedrP   r%   r�   )r0   rv   rw   Ú
IndexErrorÚ__getitem__)r;   rz   r}   r   r   r   Ú(test_as_index_series_column_slice_raises~  s
   "ÿr™  c                 C   sÚ   | }|j ddd�}|jdd�}|  dg¡jdd�}| dd|j¡ tt|ƒƒ|_t ||¡ |j ddgdd�}| ¡ }|  ddg¡ ¡ }tt	|jj
Ž ƒ}| dd|d ¡ | dd|d ¡ tt|ƒƒ|_t ||¡ d S )	Nr   FrÀ   Tr2  r   r   rR   )r0   rd   Úinsertr(   r   rn   r6   r7   r1   Úziprû   )r;   ry   rz   r   r   Úarraysr   r   r   Útest_groupby_as_index_cython‡  s   r�  c                 C   sL   | j ddgdd�}|d  t¡}| t¡jd d …g d¢f }t ||¡ d S )Nr   r   FrÀ   r%   r)   )r0   rr   rn   r‘   r6   r7   ©r;   rz   r   r   r   r   r   Ú#test_groupby_as_index_series_scalarž  s   rŸ  c              	   C   sÒ   d}t jt|d�� |jdd„ dd� W d   ƒ n1 sw   Y  d}d}t jt|d��2 tjt|d�� | jd	d„ dd
d� W d   ƒ n1 sJw   Y  W d   ƒ d S W d   ƒ d S 1 sbw   Y  d S )Nz(as_index=False only valid with DataFramerP   c                 S   r  rT   r  rJ   r   r   r   rL   «  rM   z.test_groupby_as_index_corner.<locals>.<lambda>FrÀ   z$as_index=False only valid for axis=0r,  c                 S   r  rT   )ÚlowerrJ   r   r   r   rL   ±  rM   rR   )rÁ   r²   )rv   rw   rX  r0   Ú
ValueErrorr6   ro   rp   )r;   rÆ   r}   r  r   r   r   Útest_groupby_as_index_corner¨  s   ÿÿÿ"ÿ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 | j|j¡ d}tjt|d�� | jj	dd„ dd„ dd„ gdd�}W d   ƒ n1 sXw   Y  | dd„ ¡}t |j| j¡ t | jj|j¡ | dd„ ¡}t | jj|j¡ d S )Nr!   rÙ   rÛ   r�   rÜ   r_   r   rÝ   rß   c                 S   rº   rT   rà   rJ   r   r   r   rL   º  r½   z+test_groupby_multiple_key.<locals>.<lambda>c                 S   rº   rT   r»   rJ   r   r   r   rL   º  r½   c                 S   rº   rT   râ   rJ   r   r   r   rL   º  r½   r,  rP   c                 S   rº   rT   rà   rJ   r   r   r   rL   Á  r½   c                 S   rº   rT   r»   rJ   r   r   r   rL   Á  r½   c                 S   rº   rT   râ   rJ   r   r   r   rL   Á  r½   rR   r±   c                 S   r  rT   rU   rJ   r   r   r   rL   Ä  rM   c                 S   r  rT   rU   rJ   r   r   r   rL   È  rM   )r   r4   rj   rk   r˜   r	   r1   rç   r   r0   rV   r6   Úassert_almost_equalrû   ro   rp   rÕ   rr   Úassert_index_equalr(   rÔ   )r;   rz   r~   r  r   r   r   Útest_groupby_multiple_key´  s&   ýÿÿr¥  c                 C   sP   |   ¡ } tj| d< |  ddg¡ ¡ }|  ddg¡ ¡ }tj|d< t ||¡ d S )NÚbadr   r   )r-   r4   r®   r0   rd   r6   r7   )r;   r~   r   r   r   r   Útest_groupby_multi_cornerÌ  s   

r§  c                 C   s¸  |   d¡}t d¡}|rd}tjt|d�� | d¡ W d   ƒ n1 s%w   Y  tjt|d�� | ¡  W d   ƒ n1 s@w   Y  | jd d …g d¢f } t	 
¡ | d< |   d¡}d}tjt|d�� | d	¡ W d   ƒ n1 stw   Y  tjt|d�� | ¡  W d   ƒ n1 s�w   Y  d
}tjt|d�� | j dddddœdd�}W d   ƒ n1 s´w   Y  d}tjt|d�� | dd„ ¡ W d   ƒ d S 1 sÕw   Y  d S )Nr   rT  rU  rP   rd   ©r   r%   r�   rK  z/datetime64 type does not support sum operationsrV   r,  r   rR   )r   r%   r�   rK  r±   z?does not support reduction 'sum'|Cannot perform reduction 'sum'c                 S   s   | j ddd�S )Nr   Fr2  rU   rJ   r   r   r   rL   ñ  r  z)test_raises_on_nuisance.<locals>.<lambda>)r0   rV  rW  rv   rw   rX  rr   rd   r‘   r   ÚnowrV   r6   ro   rp   )r;   rY  rz   r}   r  r   r   r   Útest_raises_on_nuisanceØ  s8   

ÿ
ÿ
ÿ
ÿÿ"ÿrª  Úagg_functionr  Úminc                 C   sv   |   d¡}t||ƒƒ }| ¡ }t| j| d dkdf |ƒƒ |jd< t| j| d dkdf |ƒƒ |jd< t ||¡ d S )Nr   rŠ   r   )rŠ   r   r‰   )r‰   r   )r0   r  r-   r‘   r6   r7   )r;   r«  rz   r   r   r   r   r   Útest_keep_nuisance_aggô  s   
$$r­  )rV   rd   Úprodr3   ÚvarÚsemÚmedianr3  c                 C   sþ   |   d¡}d}||v rN|sN|rd|› d�}t}n|dv r!t}d}nt}t d|› d�¡}tj||d	�� t||ƒ|d
� W d   ƒ d S 1 sGw   Y  d S t||ƒ|d
�}|sa|dkrag d¢}	ng d¢}	t| jd d …|	f   d¡|ƒ|d
�}
t	 
||
¡ d S )Nr   )r¯  r3   r°  rd   r®  r±  ú(dtype 'str' does not support operation 'ú')r3   r°  z(could not convert string to float: 'one'zagg function failed [how->z,dtype->rP   r2  rV   rŽ   r¨  )r0   rX  r¡  rV  rW  rv   rw   r  r‘   r6   r7   )r;   r«  r3  rY  rz   Úno_drop_nuisancer}   Úklassr   rÔ   r   r   r   r   Útest_omit_nuisance_agg  s,   
"ÿ
ÿr¶  c                 C   sZ   |   d¡}t}d}|rt}d}tj||d�� | ¡  W d   ƒ d S 1 s&w   Y  d S )Nr   zcould not convertz-dtype 'str' does not support operation 'skew'rP   )r0   r¡  rX  rv   rw   Úskew)r;   rY  rz   Úerrr}   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 s'w   Y  tjt|d�� | ¡  W d   ƒ d S 1 sCw   Y  d S )Nr   r   rT  rU  rP   rd   )r0   rV  rW  rv   rw   rX  rr   rd   )Úthree_grouprY  rz   r}   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sjJ ‚d S )Nr8  r9  r‰   rŠ   rG   r!   r7  )r>  r?  Úk3r<  r=  r>  r?  r<  r=  rd   Tr2  r    r   ©r   c                 S   r  rT   r  rJ   r   r   r   rL   Q  rM   z*test_empty_groups_corner.<locals>.<lambda>r   r­   )r   r4   r™   rj   rk   r˜   r0   rr   rd   r6   r7   rt   rs   r(   rc   )r†   r;   rz   r   r   r~   Úagged_Ar   r   r   Útest_empty_groups_corner?  s"   
ûÿ
r¿  c                  C   sP   t dgƒ} d}tjt|d�� |  dd„ ¡ W d   ƒ d S 1 s!w   Y  d S )Nr   z5unsupported operand type\(s\) for \+: 'int' and 'str'rP   c                 S   s   | d S )Nr‰   r   rJ   r   r   r   rL   [  rM   z$test_nonsense_func.<locals>.<lambda>)r   rv   rw   rX  r0   )r;   r}   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 s8w   Y  |j
dd� |¡ 	d¡}t|jtƒsQJ ‚d	d
„ }tjtdd�� | |¡ |¡ W d   ƒ d S 1 spw   Y  d S )NÚpeekaboo)Úbazr^   ©r   r   rR   rT  rU  rP   rd   ri  c                 S   s   | j dkr	tdƒ‚|  ¡ S )N)r‰   r]   úTest error message)rc   rX  rV   )r:   r   r   r   Úaggfunm  s   
z5test_wrap_aggregated_output_multindex.<locals>.aggfunrÄ  )rÕ   r4   r™   rV  rW  rv   rw   rX  r0   rr   r‚  rO  rÔ   r   rq   )r†   rY  r;   rM  r}   r~   rÅ  r   r   r   Ú%test_wrap_aggregated_output_multindex^  s   
ÿ"ÿrÆ  c                 C   sh   | j dd� ¡ }|jjdksJ ‚| j dd� ¡ }|jjdks J ‚| d j dd� ¡ }|jjdks2J ‚d S )Nr   r½  r­   rR   Úsecondr   )r0   r€  r(   rc   )r†   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   rR   )r‰   rŠ   rÂ  Úqux)r]   r^   r‹   r½  c                    ó   g | ]}ˆ   |¡‘qS r   ©rC  rä   )Úmapper0r   r   rð   Š  ó    z-test_groupby_level_mapper.<locals>.<listcomp>r­   r�   c                    rÊ  r   rË  rä   )Úmapper1r   r   rð   �  rÍ  rÇ  )r­   rÇ  )
r†  r0   rV   r4   r™   rB   r(   rc   r6   r7   )r†   Ú	deleveledÚresult0r  Úmapped_level0Úmapped_level1Ú	expected0Ú	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 sow   Y  tjt	|d�� | jdd	� W d   ƒ n1 sŒw   Y  d}tjt	|d�� | jg d	� W d   ƒ n1 s«w   Y  d}tjt	|d�� | jddgd	� W d   ƒ n1 sÌw   Y  tjt	|d�� | jddgd	� W d   ƒ n1 sëw   Y  d}tjt	|d�� | jdgd	� W d   ƒ d S 1 �sw   Y  d S )N)rR   r!   rG   r_   rÚ   r    r`   r7  )rR   r!   rG   rR   rÚ   r    r!   r7  r‰   rj  )rJ  é   rG   rÚ   r    r7  rR   rX   r   r½  r&   z2level > 0 or level < -1 only valid with MultiIndexrP   éþÿÿÿzNo group keys passed!z*multiple levels only valid with MultiIndex)
r   r	   r2   r0   rV   r6   rs   rv   rw   r¡  )Úsr   r   r}   r   r   r   Útest_groupby_level_nonmulti—  s@   ÿÿÿÿÿ$ÿrÙ  c                  C   sB   t t d¡d g d¢d�} t dƒ}| jdd� ¡ }t ||¡ d S )NrÚ   ù      ð?       @)r   r   rR   rR   ©ry   r(   )rÚ  y      @      $@r   r½  )r   r4   r5   r0   rV   r6   rs   )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ê   rR   ù      ð?      ð?rì   rï   ç      ø?rj  rë   ©r(   rÔ   )r   r0   rd   r	   r6   r7   rn  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 )NrR   rÝ  rê   rÚ  rÚ   )rR   rR   rR   r�   )rÝ  rÚ  ù      ð?        rì   rj  rë   rß  F©Úsort)rá  rÝ  rÚ  T)
r   r4   r™   rB   r	   r0   r€  r6   r7   r(   ©r;   r   r   r   r   r   Útest_groupby_complex_numbersÒ  s    ýÿýrå  c                  C   sj   t g d¢tg d¢ƒd�} t g d¢tg d¢ƒd�}|  |¡}| ¡ }|  | | j¡j¡ ¡ }t ||¡ d S )N)ç      @g      "Àrø   g      Y@g      Àg     €K@gÍÌÌÌÌÌ@)rë   rì   rþ   Údr¯   r¶   rÈ   r'   )rï   rï   rø   ræ  ræ  g      @)rë   rì   rç  r¶   rÈ   Úh)	r   r	   r0   rd   rm   r(   rC  r6   rs   )Ús1Ús2rz   r~   rg  r   r   r   Ú'test_groupby_series_indexed_differentlyé  s   
þÿ
rë  c            	      C   s¼  t tg d¢g d¢gŽ ƒ} t | ¡}t g d¢¡}ttj d¡ d¡||d�}|j	dd� 
¡ }t |j|¡ d	}tjt|d
�� |j	ddd�}W d   ƒ n1 sPw   Y  | 
¡ }t |j|j¡ |j	dd� d¡}t |j|¡ |j	dd� dd„ ¡}t |j|¡ tjt|d
�� |j	ddd�}W d   ƒ n1 sœw   Y  | dd„ ¡}t |jtddgƒ¡ t |j|j¡ | d¡\}}d|d< |j	dd�j
dd�}t |j|jd d… ¡ d S )N)rŠ   rŠ   rÂ  rÂ  r‰   r‰   rÉ  rÉ  )r]   r^   r]   r^   r]   r^   r]   r^   ))r   Úcat)r   Údog)r   rì  )r   rí  r!   )rŒ   rÚ   rß  r   r½  r,  rP   rR   )r   r²   rd   c                 S   r  rT   r  rJ   r   r   r   rL     rM   z0test_groupby_with_hier_columns.<locals>.<lambda>c                 S   s
   |   d¡S )NrR   r  rJ   r   r   r   rL     ó   
 r   r   rŠ   )r   r‰   Tr2  r&   )r1   r›  r   r^  r   r4   rj   rk   r˜   r0   rd   r6   r¤  rÔ   ro   rp   r(   rr   rt   r	   Ú	sortlevel)	Útuplesr(   rÔ   r;   r   r  r<   Úsorted_columnsÚ_r   r   r   Útest_groupby_with_hier_columnsø  sH   þÿÿ
ÿÿÿÿró  c                 C   sD   |   | d j¡}|   | d  d ¡¡}| ¡ }| ¡ }t ||¡ d S )Nr   )r0   rû   rƒ  rV   r6   r7   )r;   rz   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   rR   r!   rG   rÚ   r(   rj  )Úfoo1rö  Úfoo2rö  Úfoo3)Úbar1Úbar2rú  rù  rù  )Úbaz1rû  rû  Úbaz2rü  )Úspam2Úspam3rý  Úspam1rÿ  )r`   ra   é(   rz  é<   )r‰   rŠ   rÂ  Úspamry   r'   )r‰   rŠ   rÂ  r  rd   )r	   r   r0   rr   rd   r6   r7   )r(   ry   rz   r   r   r   r   r   Útest_groupby_wrong_multi_labels.  s   ûø
r  c                 C   s°   |   | d ¡jdd�}| j | d dd�jdd�}|jjdks J ‚d|v s&J ‚|   | d | d g¡ ¡ }| j | d | d gdd� ¡ }|jjdksJJ ‚d|v sPJ ‚d|v sVJ ‚d S )Nr   Tr2  FrÀ   r   ©r   r   )r0   rd   r(   rc   r  ©r;   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sJ ‚dd„ }| |¡jdks'J ‚d S )Nr   r%   c                 S   s   t  | ¡d S ri   )r4   rV   rJ   r   r   r   rL   U  r  z.test_seriesgroupby_name_attr.<locals>.<lambda>)r0   r€  rc   rd   rr   )r;   r   Ú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ˆ   )r]   r]   r^   r^   r^   r^   r]   r^   r!   rŒ   rï   rŽ   r   )r   r4   rj   rk   r˜   r5   r0   r   r€  r   r6   rs   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 s%w   Y  |jjd u s2J ‚t jt|d�� |  d¡ |d¡}W d   ƒ n1 sMw   Y  |jjdksZJ ‚t jt|d�� |  d¡ |¡}W d   ƒ n1 stw   Y  |jjd u s�J ‚d S )
Nc                 S   s   t ddddœ|d�S )NrR   r!   rG   ©r€  rd   Ú	omissionsrj  )r   )r;   rc   r   r   r   Ú	summarizel  s   z0test_groupby_name_propagation.<locals>.summarizec                 S   s   t ddddœ| jd d d�S )NrR   r!   rG   r
  r   r   rj  )r   r/   rí   r   r   r   Úsummarize_random_nameo  s   z<test_groupby_name_propagation.<locals>.summarize_random_namer—   rP   r   ÚmetricsrT   )r6   ro   rp   r0   rt   rÔ   rc   )r;   r  r  r}   r  r   r   r   Útest_groupby_name_propagationj  s   
ÿÿÿr  c                  C   sJ   t dd„ tdƒD ƒƒ} |  d¡}| ¡ }|  | d ¡ ¡ }t ||¡ d S )Nc                 S   s   g | ]}t  d ¡‘qS )r_   )r4   r5   rä   r   r   r   rð   ‚  rÍ  z2test_groupby_nonstring_columns.<locals>.<listcomp>r_   r   )r   r2   r0   rd   r6   r7   rž  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 )Nrb   )r   r   r   ri  rR   r!   r   r   r   rj  rß   )r   r	   r0   r­   r6   r7   rV   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)ry  ry  r   r_   )r4   r  Úfillr®   r   Útiler2   r0   rr   r±  Úisnar%  )Úarrrr  Ú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 )
NÚ
aaaaaaaaaary  r!   rz  r'   r   r    c                 S   s   t ttt| jƒƒƒS rT   )rn   ÚsetÚmapÚidr(   rJ   r   r   r   rL   ©  rñ   z5test_series_grouper_noncontig_index.<locals>.<lambda>)	r	   r   r4   rj   rk   r˜   r„  r0   rr   )r(   rû   rü   rz   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s)J ‚t|j	d	 t
ƒs3J ‚| |¡}|jtjks@J ‚t|j	d	 t
ƒsJJ ‚d S )
Nr    )rë   rì   rþ   rç  r¯   r‚   r�   c                 S   s   t t|  ¡ ƒƒS rT   )r   Ústrrd   rJ   r   r   r   Úconvert_fast±  r·   z>test_convert_objects_leave_decimal_alone.<locals>.convert_fastc                 S   s$   t | jjƒdks
J ‚tt|  ¡ ƒƒS r¡   )rn   rû   Úbaser   r  rd   rJ   r   r   r   Úconvert_force_pure´  s   zDtest_convert_objects_leave_decimal_alone.<locals>.convert_force_purer   )r   r2   r4   r™   r0   rr   rA   Úobject_rO  r/   r   )rØ  rü   r  r   rz   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   rB   r�   )rK   r2   rK   ©rc   rA   r2   rH   T)Ú	by_blocks)r   r4   r5   rA   rD   r0   r­   r	   r   r6   r7   )r;   r   Ú	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 )	NrR   l    4;PUÑ  )r­   rÇ  r�   r­   rÇ  r�   r\  rj  )r   r0   r  r   r   Úfrom_productr6   rs   rn  r   r   r   Ú$test_groupby_unit64_float_conversionÏ  s   ýr(  c                 C   sä   |   t| d ƒ¡jdd�}|   | d ¡jdd�}tj||dd� tjtdd�� |   t| d d d… ƒ¡ W d   ƒ n1 s?w   Y  td	d
gddgt	j
 d¡ d¡dœƒ} |   ddg¡ ¡ }|   | d | d g¡ ¡ dg }d S )Nr   Tr2  FrÃ   z^'foo'$rP   r&   r   rR   rG   rÚ   r!   )r‰   rŠ   Úvalr‰   rŠ   r)  )r0   r1   rd   r6   r7   rv   rw   ÚKeyErrorr   r4   rj   rk   r˜   rn  r   r   r   Ú"test_groupby_list_infer_array_likeÛ  s   ÿýÿ$r+  c                  C   st   d} t tdƒd| d�}tddgddggd	d
g|d�}| td| d�d	g¡ ¡ }| |jd	g¡ t	¡}t
 ||¡ d S )NrØ  z2015-09-29T11:34:44-0700r!   )Ústartr   rÞ   r   r_   r   é   Úmetricrû   rß   r   )r   rÞ   )r   r   r   r0   r   rd   r  r(   r„   r÷   r6   r7   )rÞ   r(   r;   r   r   r   r   r   Ú$test_groupby_keys_same_size_as_indexð  s   
ÿr/  c                  C   s¶   d} t tj d¡ d¡tdƒd�}tjt| d�� | 	d¡ W d   ƒ n1 s(w   Y  t tj d¡ d¡tdƒd�}tjt| d�� | 	d¡ W d   ƒ d S 1 sTw   Y  d S )	Nz^'Z'$r!   )rR   rÚ   rÛ   ri  rP   ÚZ)r!   rÚ   )
r   r4   rj   rk   r˜   r1   rv   rw   r*  r0   )r}   Údf1r  r   r   r   Útest_groupby_one_rowý  s   ÿÿÿ"ÿr2  c                  C   sÆ  t tj d¡ d¡tjtdƒtjtdƒtjtdƒtjtdƒgtjdtjdtjdtjdgdœƒ} |  d¡}td	d
gƒtddgƒg}t	|j
 ¡ ƒ}t|ƒdksOJ ‚t||ƒD ]\}}t |j
| |¡ qTt |jjd j| ¡ |jdkstJ ‚tdƒtjd	d
gtjd�tdƒtjddgtjd�i}|jD ]}t |j| || ¡ 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×w   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�s#J ‚tjtdd�� | tj¡ W d   ƒ n	1 �s<w   Y  tjtdd�� | tj¡ W d   ƒ n	1 �sZw   Y  �qd S )Nr!   rŒ   z
2013-01-01z
2013-02-01rë   rì   )rû   Údtr  r3  rR   rX   rG   r    r   z2013-01-01 00:00:00r�   z2013-02-01 00:00:00z^NaT$rP   )r®   Únatr®   rD   r4  zdatetime64[ns]z^nan$)!r   r4   rj   rk   r˜   r®   r   r0   r	   Úsortedr!  rM  rn   r›  r6   r¤  r7   Ú_grouperrò   rr  Úngroupsr™   Úintpr"  Úassert_numpy_array_equalrm  r/   rv   rw   r*  r*   r.   rA   )r;   rz   r   rM  r{   r¯   Únan_dfr   r   r   r   Útest_groupby_nat_exclude  sd   ø
ôÿ
þ
  ÿ ÿ
ÿÿ€ùr;  c                  C   sD   t tjtjgtjtjgddgdœƒ} |  ddg¡j}|i ks J ‚d S )NrR   r!   r
  rë   rì   )r   r4   r®   r0   r"  )r;   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   ÚzerosrR   rú   Úl1Úl2ÚlabelTr2  ç        rï   )r   r2   r0   rd   r4   r™   r6   r¤  rÔ   r	   r9  rû   )rç  ÚtmpÚ
res_valuesr   r   r   Útest_groupby_2d_malformedR  s   rF  c                  C   sŠ   t  t  d¡t  d¡t  d¡f¡} t  d¡}t|| || t j d¡ d¡dœƒ}| g d¢¡ ¡ }| g d¢¡ ¡ }t	|ƒt	|ƒksCJ ‚d S )Nr   iˆ  i¨a  r!   )r   r   r%   r�   rK  rŽ   )r�   r%   r   r   )
r4   Úconcatenater5   r   rj   rk   r˜   r0   rV   rn   )r   r   r;   rv  r�  r   r   r   Útest_int32_overflow^  s   "
ûÿ
rH  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Â  )rG   r!   rR   rb   r!   rG   ©rë   rì   rþ   rç  c                 S   ó   g | ]}t |ƒ‘qS r   ©Útuple©rå   Úrowr   r   r   rð   z  rñ   z+test_groupby_sort_multi.<locals>.<listcomp>r
  Trâ  )rR   r!   r   c                 S   rK  r   rL  rN  r   r   r   rð     rñ   )rþ   rë   rì   c                 S   rK  r   rL  rä   r   r   r   rð   „  rñ   )rì   rþ   rë   )r!   rR   r   ©r   rR   r!   r   rR   r!   )r   r   r   rR   rR   rR   r7  )rë   rì   rç  rë   rì   rç  c                 S   r  rT   rU   rJ   r   r   r   rL   “  rM   z)test_groupby_sort_multi.<locals>.<lambda>c           	      S   sV   dd„ | | j D ƒ}t |¡}||  |¡| ƒ}| ¡ D ]\}}|| |ks(J ‚qd S )Nc                 S   rK  r   rL  rN  r   r   r   rð   ”  rñ   zCtest_groupby_sort_multi.<locals>._check_groupby.<locals>.<listcomp>)rû   ÚcomÚasarray_tuplesafer0   r#  )	r;   r   rM  Úfieldr¶   Útupsr   r{   r|   r   r   r   Ú_check_groupby“  s   
ÿz/test_groupby_sort_multi.<locals>._check_groupby)r   r4   rj   rk   r˜   rû   rQ  rR  r0   rV   r6   r9  r(   )r;   rT  r   rz   rU  r   r   r   Útest_groupby_sort_multip  s:   üÿ	


ýÿrV  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 s-w   Y  t || ¡ d S )N)rë   rë   rë   rì   rì   rì   rI  r!   )r   rc   r—   rP   r   FrN   c                 S   ó   | S rT   r   rJ   r   r   r   rL   ¤  ó    z/test_dont_clobber_name_column.<locals>.<lambda>)r   r6   ro   rp   r0   rt   r7   )r;   r}   r   r   r   r   Útest_dont_clobber_name_column�  s   ÿÿrY  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Ü   r_   r   rÝ   rß   c                 S   rº   rT   r»   rJ   r   r   r   rL   ¯  r½   z&test_skip_group_keys.<locals>.<lambda>FrN   c                 S   s   | j dd�d d… S )Nr   ©ru  rG   ©Úsort_valuesrJ   r   r   r   rL   °  rñ   c                 S   s$   g | ]\}}|j d d�dd… ‘qS )r   rZ  NrG   r[  ©rå   r   r”   r   r   r   rð   ²  s   $ z(test_skip_group_keys.<locals>.<listcomp>r   c                 S   rº   rT   r»   rJ   r   r   r   rL   ·  r½   c                 S   s   |   ¡ d d… S rI   r[  rJ   r   r   r   rL   ¸  r¹   c                 S   s    g | ]\}}|  ¡ d d… ‘qS rI   r[  r]  r   r   r   rð   º  s     )r   r4   rj   rk   r˜   r	   r1   rç   r   r0   rt   r*   rN  r6   r7   rs   )Útsfrz   r   Úpiecesr   r   r   r   Útest_skip_group_keys¨  s   ý

r`  c                 C   s8   | d   ¡ }d |_| | d ¡ d¡}|jd u sJ ‚d S )Nr%   r   rV   )r-   rc   r0   rr   )Úfloat_framerØ  r   r   r   r   Útest_no_nonsense_nameÀ  s   rb  c                  C   s\   t t d¡ dd¡ƒ} d| d< g d¢| d< |  d¡}| ddd	œ¡}|d jtjks,J ‚d S )
NrF   rG   r   Útest)gÍÌÌÌÌÌô?rÞ  gš™™™™™ù?ÚflrV   r‘  )rd  r!   )r   r4   r5   Úreshaper0   rr   rA   rD   )rK   rz   r   r   r   r   Útest_multifunc_sum_bugÉ  s   
rf  c                 C   sV   dd„ }dd„ }|   d¡d  |¡}|   d¡d  |¡}t|tƒs#J ‚t ||¡ d S )Nc                 S   s   |   ¡ |  ¡ dœS ©N©r  r¬  rh  r“   r   r   r   r¶   Õ  r–   z(test_handle_dict_return_value.<locals>.fc                 S   s   t |  ¡ |  ¡ dœƒS rg  )r   r  r¬  r“   r   r   r   rÈ   Ø  s   z(test_handle_dict_return_value.<locals>.gr   r%   )r0   rt   rO  r   r6   rs   )r;   r¶   rÈ   r   r   r   r   r   Útest_handle_dict_return_valueÔ  s   ri  Úgrouperr   r   c                    sÊ   dd„ }dd„ ‰ ‡ fdd„}| j |dd�}d	}tjt|d
�� | |¡ W d   ƒ n1 s.w   Y  | ˆ ¡ | ˆ ˆ dœ¡ | |¡ |d  |¡ |d  ˆ ¡ |d  ˆ |g¡ |d  |¡ d S )Nc                 S   s   | j d usJ ‚| S rT   rj  r“   r   r   r   r¶   ä  s   ztest_set_group_name.<locals>.fc                 S   s   | j d usJ ‚|  ¡ S rT   )rc   rV   r“   r   r   r   Úfreduceè  s   z$test_set_group_name.<locals>.freducec                    s   ˆ | ƒS rT   r   rJ   ©rk  r   r   Úfreducexì  s   z%test_set_group_name.<locals>.freducexFrN   r—   rP   r4  r%   )r0   r6   ro   rp   rt   rq   ru   )r;   rj  r¶   rm  rz   r}   r   rl  r   Útest_set_group_nameâ  s   ÿ

rn  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 s3w   Y  g d¢}ˆ |ksBJ ‚d S )N)r   r   rR   rR   r!   r!   r7  rê   c                    s   ˆ   | j¡ |  ¡ S rT   )r]  rc   r-   r“   r\  r   r   r¶     s   z6test_group_name_available_in_inference_pass.<locals>.fr—   rP   rë   F)rã  rO   rb   )r   r4   r5   r6   ro   rp   r0   rt   )r;   r¶   r}   Úexpected_namesr   r\  r   Ú+test_group_name_available_in_inference_passÿ  s   ÿrp  c                 C   sV   |   | d j¡ ¡ }|jjd u sJ ‚|   | d j| d jg¡ ¡ }|jjdks)J ‚d S )Nr   r   )NN)r0   rû   rV   r(   rc   r  r  r   r   r   Útest_no_dummy_key_names  s   rq  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 )NrR   r!   )r   r   r   r   rR   rR   )rR   rR   r   r   r   r   rë   rì   rÿ   )r   rR   r!   rG   rÚ   r    r'   rÃ  )rR   r   r   ©r   r!   rÚ   F©r   rã  T)r   r   r0   r­   r6   rs   Ú
sort_index)r(   ÚmseriesÚmseries_resultr   r   r   r   Ú#test_groupby_sort_multiindex_series  s   ý"ÿrw  c                  C   s‚   d} t dd| d�}tt | ¡t | ¡dœ|d�}ddd	„}| d
d„ ¡}| d|tjƒi¡}| d|tjdƒi¡}t ||¡ d S )Néè  z2012/1/1Ú5min)r,  rÞ   r   )ÚhighÚlowr'   Fc                    s   ‡ ‡fdd„}|S )z>
        Run an aggregate func on the subset of data.
        c                    sD   | j | j dd„ ¡  ¡ }ˆ r| | jd   t|ƒdkrd S ˆ|ƒS )Nc                 S   s
   | j dk S )NrJ  )ÚhourrJ   r   r   r   rL   :  rî  zYtest_groupby_reindex_inside_function.<locals>.agg_before.<locals>._func.<locals>.<lambda>r   )r‘   r(   r  Údropnarn   )ry   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 rT   )r   rá   r¼   rã   rJ   r   r   r   rL   C  rg   z6test_groupby_reindex_inside_function.<locals>.<lambda>rz  T)F)	r   r   r4   r5   r0   rr   r  r6   r7   )r   Úindr;   r‚  rz   Úclosure_badÚ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þ   )rR   rR   rR   r    )Úgroup1Úgroup2r�   r‡  rˆ  Trs  rV   ))rë   rþ   )rë   rç  ©rì   rþ   r\  r!   rR   r    r�   rß  )r   r  r0   rr   r   r^  r6   r7   )r;   rÏ   rÖ   r)  rg  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 ¡ sJ ‚tg d¢g d¢g d	¢gd
�}|jdddgdd�}| ¡ }|j ¡ r>J ‚| d¡ ¡ }t	 
t¡� | d¡ ¡ }W d   ƒ n1 s\w   Y  t	 ||¡ tg d¢g d¢g d¢dœƒ ddg¡}|j ¡ r�J ‚ddddgfD ]3}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þ   r\  ©rR   rG   rÚ   ri  rJ  )rR   rŒ  r�  rG   )rR   rŽ  r�  rÚ   )rÔ   ry   rë   rç  )r(   rÔ   rû   )rë   rë   rì   rë   ©rR   rR   r!   r!   ©rR   r!   rG   rÚ   ©rK   r  ÚzrK   r  r   rR   )FTF)r   rã  rO   )r   r^  r   rÔ   Ú_is_lexsortedÚpivot_tabler†  r0   rd   r6   ro   r   r7   r  r(   rt   Údrop_duplicatesrt  )Úlexsorted_miÚlexsorted_dfÚnot_lexsorted_dfr   r   r;   r   rã  r   r   r   Ú%test_groupby_multiindex_not_lexsorted_  sP   ÿÿ
ÿÿÿ
þÿÿýóÿr›  c                  C   s  t tdƒg d¢d�} |  tdƒ¡}| dd„ ¡}| jg d¢ }t ||¡ | d }| tdƒ¡}| d	d„ ¡}| g d¢¡}t ||¡ | j	 
t¡| _	|  tdƒ¡}| d
d„ ¡}| jg d¢ }t ||¡ | d }| tdƒ¡}| dd„ ¡}| g d¢¡}t ||¡ d S )NÚABCDE)r!   r   r!   rR   rR   r'   Úababbc                 S   ó   t | ƒdkS ri   ©rn   rJ   r   r   r   rL   •  rW   z4test_index_label_overlaps_location.<locals>.<lambda>r�  r   c                 S   rž  ri   rŸ  rJ   r   r   r   rL   ›  rW   c                 S   rž  ri   rŸ  rJ   r   r   r   rL   ¢  rW   c                 S   rž  ri   rŸ  rJ   r   r   r   rL   ¨  rW   )r   r1   r0   Úfilterr/   r6   r7   r$  rs   r(   r„   r÷   )r;   rÈ   Úactualr   r:   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 )	Nr7  r!   rù   ç      @r
  rï   rë   rd   )r4   r5   r   r0   ru   r6   r7   )ÚnrK   r;   r  r<   r   Úgb2r   r   r   r   Ú"test_transform_doesnt_clobber_ints­  s   
 



r¦  Ú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   ƒ d S 1 s?w   Y  d S )N)rG   rR   r   rR   r   rG   rG   rG   )r”  rë   r”  rë   rë   rÈ   rÈ   rÈ   )rŒ   rX   rÚ   r    r!   rF   rR   rR   )gffffff@g333333@gÍÌÌÌÌÌ@g333333Àgš™™™™™@çš™™™™™ñ?r®  r    )r”  rç  rë   r¯   ÚwordÚword2Ú42Ú47)r¬  r­  r¨  r©  rª  rZ  c                    s   t  | | jˆ d�¡ d S )NrZ  )r6   r7   r\  rJ   ©r§  r   r   Ú	test_sortÖ  s   z.test_groupby_preserves_sort.<locals>.test_sortr—   rP   )r   r\  r0   r6   ro   rp   rt   )r§  r«  r;   rÈ   r´  r}   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   ƒ d S 1 sBw   Y  d S )Nr`   ÚMErÝ   )Ú	eventDateÚthenamer·  rá   r¼   z	'badname'rP   Úbadnamer€  )r(   rÔ   rû   Úaggfunc)r   r   r   ÚtodayÚtolistr2   r  r(   rá   r¼   rv   rw   r*  r†  r–  rí   r   r   r   Ú!test_pivot_table_values_key_errorÞ  s   þÿÿ"ÿr½  rÔ   r%   rM  rû   rC  rë   rR   z
US/Easternr#   ú
2016-01-01rG   r�   rÝ   ÚInt64r�   ÚFloat64Úboolean)ÚboolÚintr÷   r  rì  Údt64Údt64tzÚperiodr¿  rÀ  rÁ  )ÚidsÚmethod)rŒ  rr   rt   )r’   Úidxminr¬  r  rV   r®  r·  c                    sô  d }t ˆtƒrˆdv rd}t ˆd tƒrˆdv rd}tˆˆˆdœtdƒd�}	tˆd	ƒr5|	jˆjk ¡ s5J ‚|	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 s¯w   Y  ˆdv rËt | tƒrË|
dd�}|ƒ }t ||¡ d S ˆdv �rE|sà|sà|sà|�rEˆdk�rE|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 �sw   Y  t | tƒ�s$d S ˆd!k�r+d S |
dd�}|	 ˆ¡g  }|�r=|ƒ }t ||¡ d S |
ƒ }|	 ˆ¡|  }ˆd$v �r[| |	jj¡}|d u�re| |¡}tˆƒd%k�rrˆd |j_t ||¡ d S )&N)rV   r®  r¿  r   )r®  rV   rB   r)   ÚABCri  rA   F)rO   r}  Úobservedc                     s2   ˆdkrt ˆ ˆƒdi | ¤ŽS t ˆ ˆƒˆfi | ¤ŽS )NrŒ  r   )r  )Úkwargs)r<   rÈ  r[  r   r   Ú
get_result+  s   z&test_empty_groupby.<locals>.get_resultc                     sh   t dgˆjd�} tˆ ƒdkrtj| | gˆ d�}nt| ˆ d d�}ˆr)tg dd�}ng }tg ||d�}|S )Nr   r�   rR   r\  rj  r  rß   )r   rA   rn   r   r'  r	   r   )Úlevr)  rÔ   r   )rM  rY  rû   r   r   Ú get_categorical_invalid_expected1  s   z<test_empty_groupby.<locals>.get_categorical_invalid_expectedÚM)r¬  r  rÉ  r’   )r¬  r  zCannot perform z with non-ordered Categoricalz
Can't get z/ of an empty group due to unobserved categoriesrP   Tr2  )r®  rV   r·  rV   z datetime64 type does not supportzPeriod type does not supportr²  r³  zcategory type does not supportr·  ú|z!does not support reduction 'skew')r’   rÉ  rR   )rO  r   rÂ  r   r1   Úhasattrrš   rA   r%  r/   r0   r*   ÚPeriodDtypeÚkindr   ÚStringDtypeÚorderedrX  r¡  rv   rw   r6   Úassert_equalÚjoinr  r„   r(   rn   rc   )rÔ   rM  rû   rÈ  r[  Úusing_array_managerr}  rY  Úoverride_dtyper;   rÍ  rÏ  Úis_perÚis_dt64Úis_catÚis_strr}   rµ  r   r   r   )r<   rM  rÈ  r[  rY  rû   r   Útest_empty_groupbyð  s†   '

ÿþÿ


ÿ




rß  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>w   Y  |j| jk ¡ sMJ ‚d S )Nr!   )r   rÚ   rG   ©r   rR   r!   r   rR   FrN   r—   rP   c                 S   rW  rT   r   rJ   r   r   r   rL   ™  rX  z<test_empty_groupby_apply_nonunique_columns.<locals>.<lambda>)r   r4   rj   rk   r˜   r„   rB   rÔ   r0   r6   ro   rp   rt   rš   r%  )r;   r<   r}   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 s,w   Y  |  d¡d  ¡ }td	gdtd
gdd�d�}t 	||¡ d S )N)rR   rR   rR   rR   )r!   r!   r!   r!   )rê   rë   rì   rþ   z
('a', 'b')rP   r
  rê   rþ   rÚ   rR   rj  rl  )
r   rv   rw   r*  r0   rV   r   r	   r6   rs   rn  r   r   r   Útest_tuple_as_grouping�  s   üÿ	ÿrâ  c                  C   sf   t dtdƒt ddgddgg¡d�} tjtdd�� |  d¡ ¡  W d   ƒ d S 1 s,w   Y  d S )	NrR   rG   r!   rÚ   rß  z
^\(7, 8\)$rP   )rX   rŒ   )	r   r2   r   r'  rv   rw   r*  r0   rd   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 )NrR   r‰   Úmycolsrj  ú
2018-01-01r!   r�   Údti)r   rÞ   rc   rß   )rR   rR   rR   rR   rR   ))r‰   rV   r‰   )r‰   ÚohlcÚopen)r‰   rç  rz  )r‰   rç  r{  )r‰   rç  Úclose)rä  NNr\  )rÞ   rV   rç  )
r   r	   r   r   r^  r0   r   rr   r6   r7   rä  r   r   r   Útest_groupby_agg_ohlc_non_first·  s   
ýø
ôrê  c                  C   sŒ   t jdftdddƒdftdddƒdftdddƒdfg} tj| dd gd�}tg d	¢|d
�}|jdd� ¡ }tddgddgd
�}t 	||¡ d S )Nrë   iÜ  rR   r!   rì   rG   Údater\  )rG   r!   ç      @rÚ   r'   r½  r£  rì  )
r*   r.   r   r   r^  r   r0   rd   r6   rs   )rû   rc  r:   r   r   r   r   r   Útest_groupby_multiindex_natÓ  s   ürí  c                  C   sf   t tdƒtdƒƒ} t| ddgd�}d}tjt|d�� | g g¡ W d   ƒ d S 1 s,w   Y  d S )Nr_   Úapplerì   ri  z$Grouper and axis must be same lengthrP   )r›  r2   r   rv   rw   r¡  r0   )rû   r;   r}   r   r   r   Útest_groupby_empty_list_raisesã  s   "ÿrï  c                  C   sŽ   ddgddgddgg} g d¢}t j| |d�}tddg|d	�}| d
dg¡ ¡ }dgdgg} d
dg}t j| |d�}tdg|d�}t ||¡ d S )NrK   rë   rì   r{   )r­   rÇ  Úthirdr\  rR   r!   rÛ  r­   rð  rG   r'   )r   Úfrom_arraysr   r0   rV   r6   rs   )Úindex_arrayÚindex_namesÚrirØ  r   Úeir   r   r   r   Ú8test_groupby_multiindex_series_keys_len_equal_group_axisì  s   rö  c                  C   s    t jddgddggddgd�} tg d¢g d	¢d
œ| d�}| tdd�dg¡}| ddg¡}|j|jks5J ‚| dtdd�g¡}| ddg¡}|j|jksNJ ‚d S )Nr   r   r%   r�   rt  Úbetar\  )rR   r!   rR   r!   r’  r5  r'   r½  )r   r'  r   r0   r   r!  )rc  r;   r   r   r   r   r   Ú"test_groupby_groups_in_BaseGrouperü  s   rø  Ú
group_namerK   c                 C   sB  t t d¡ dd¡g d¢g d¢d�}d|j_d|j_d	}tjt	|d
�� |j
| dd�}W d   ƒ n1 s5w   Y  | ¡ }|j 
| ¡ ¡ j}t ||¡ g d¢ddgg}tj|ddgd�}t t d¡ dd¡g d¢|d�}tjt	|d
�� |j
| dd�}W d   ƒ n1 s‡w   Y  | ¡ }|j 
| ¡ ¡ j}t ||¡ d S )NrY   rG   rÚ   ©r   rR   r   )r_   r`   r_   r`   rß  r  rK   r,  rP   rR   r±   )rŠ   rÂ  r‰   r]   r^   Úx1)Ú	iterablesr  é   r7  )r   r4   r5   re  r(   rc   rÔ   r6   ro   rp   r0   rV   rÕ   r7   r   r'  )rù  r;   r  r<   Úresultsr   rü  rc  r   r   r   Útest_groupby_axis_1
	  s*   ÿÿ ÿrÿ  zop, expectedÚshiftÚtimeú2019-01-01 12:00:00ú2019-01-01 12:30:00Úbfillú2019-01-01 14:00:00ú2019-01-01 14:30:00Úffillc                    s„   | ‰ g d¢t dƒt dƒd d t dƒt dƒgdœ}t|ƒj‡ fdd„d	�}| d
¡}t||ƒƒ }t|ƒj‡ fdd„d	�}t ||¡ d S )N)r   r   r   r   r   r   r  r  r  r  )r  r  c                    ó   | j j ˆ ¡S rT   ©r  r3  Útz_localizerJ   r#   r   r   rL   `	  r  z+test_shift_bfill_ffill_tz.<locals>.<lambda>)r  r  c                    r  rT   r	  rJ   r#   r   r   rL   d	  r  )r   r   Úassignr0   r  r6   r7   )Útz_naive_fixturer[  r   ry   r;   rz   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 )NrR   )rÈ   rK   rÈ   rK   rV   rj  )r   r0   ru   r   r4   r®   r6   rs   )r;   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    r7  rŒ   )rù   rø   rø   ræ  r'   r   r½  )r!   g      @rŒ   )rù   rø   ræ  )r   r0   rd   r6   rs   )r:   r<   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r7tnd }d}tj||d�� |jd d…  	d	g¡j
| g|¢R Ž }W d   ƒ n1 s_w   Y  tj||d�� | 	d	g¡j
| g|¢R Ž jd d… }W d   ƒ n1 sˆw   Y  | dv r–| t¡}t ||¡ d}tj||d�� |d jd d…  	d	g¡j
| g|¢R Ž }W d   ƒ n1 sÄw   Y  d}tj||d�� |d  	d	g¡j
| g|¢R Ž jd d… }W d   ƒ n1 sñw   Y  | dv rÿ| t¡}t ||¡ d S )NrR   r»  rG   rÚ   )Úcol_1Úcol_2Úcol_3Úcol_4©ry   rÔ   r  r  r  r  Úfillna)r  r   ú%DataFrameGroupBy.fillna is deprecatedrP   r   )Údiffr   z"SeriesGroupBy.fillna is deprecated)r   r   r„   rÃ  r  rp   r6   ro   r/   r0   ru   r×  )Útransformation_funcÚrequestr;   ÚargsrÐ   Úwarn_msgr   r   r   r   r   Útest_group_on_empty_multiindex|	  s`   þ&ÿ&ÿ
ÿýýÿÿþþýÿÿ
r  c                 C   s�  t dddd�}tddgddgddgdœƒ}d	|j_||_| | ¡}|s)|j}d
}nd}tjt	|d�� |j
|dd�}W d   ƒ n1 sDw   Y  | ¡ }tddgddgdœ|d�}d|j_|sc|j}t ||¡ |dkr’tjt	|d�� |g  j
|dd�}W d   ƒ n1 sˆw   Y  |g  }	n*tjt	|d�� |jg  j
|dd�}W d   ƒ n1 s®w   Y  |jg   tj¡}	| ¡ }
t |
|	¡ d S )Nr¾  r!   r‰   )r   rc   rR   rG   r   )r  )r   r%   )r�   r   )rŠ   rÂ  r-  r,  rP   )r²   r   )r   r�   r'   rŠ   )r   r   rÔ   r  r(   Ú_get_axis_numberrÕ   r6   ro   rp   r0   Únuniquerc   r7   r‘   r„   r4   rD   )r²   ræ  r;   Úaxis_numberr}   r<   r   r   r¥  rg  rÖ   r   r   r   Útest_groupby_crash_on_nunique©	  s:   
ÿÿ
ÿr   c                  C   s>   t t dd¡ dd¡td�} | jdgd� ¡ }t || ¡ d S )Nr   rF   rG   r�   r½  )	r   r4   r5   re  r÷   r0   rd   r6   r7   )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], ...})rR   z{0: [0], ...}c                 C   s’   t tj d¡ d¡ƒ}|j|d< t d| ¡�) | d¡j	 
¡ }||ks%J ‚| t |j¡¡j	 
¡ }||ks7J ‚W d   ƒ d S 1 sBw   Y  d S )Nr!   )r    rR   rë   zdisplay.max_seq_items)r   r4   rj   rk   r˜   r(   r*   Úoption_contextr0   r!  Ú__repr__r™   rë   )Úmax_seq_itemsr   r;   r   r   r   r   Útest_groups_repr_truncatesÙ	  s   

"ûr%  c                  C   s†   t ddddœddddœgƒ} |  ddg¡} |  ddg¡}|j}dtjd	dgtjd
�i}t|ƒdks3J ‚d}|| || k ¡ sAJ ‚d S )NrR   r!   éc   r
  éX   rë   rì   rÓ   r   r�   )	r   r  r0   r"  r4   r™   rB   rn   r%  )r;   r£   r   r   r   r   r   r   Ú6test_group_on_two_row_multiindex_returns_one_tuple_keyî	  s   r(  zklass, attr, valuer   rã  rO   rË  r}  c                 C   sr   t dgdgdgdœƒ}|dkr| d¡}|jdi ||i¤Ž}| t u r'|dg n|d }t||ƒt||ƒks7J ‚d S )	NrR   r!   rG   r
  r²   rë   rì   )rë   )r   r  r0   r  )rµ  rŒ  r�   r;   r   r   r   r   r   Ú#test_subsetting_columns_keeps_attrsü	  s   
r)  c                  C   s¢   t dgdgdgdœƒ} d}tjt|d�� | jg d¢dd�}W d   ƒ n1 s(w   Y  d	}tjt|d�� |d
dg  ¡  W d   ƒ d S 1 sJw   Y  d S )NrR   r!   rG   r)   r,  rP   rÃ  r±   z'Cannot subset columns when using axis=1r   r   )	r   r6   ro   rp   r0   rv   rw   r¡  rV   )r;   r}   rÈ   rQ   r   r   r   Útest_subsetting_columns_axis_1
  s   ÿ"ÿr*  r€  )rV   Úanyr   c                 C   sH   t dgdd�}tdgg|d�}| dg¡}t|| ƒƒ j}t ||¡ d S )Nrë   r)  rj  rR   ri  )r	   r   r0   r  rÔ   r6   r¤  )r€  r   r;   rÏ   r   r   r   r   Ú#test_groupby_column_index_name_lost#
  s
   r,  Úinfer_stringÚpyarrow)Ú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 s7w   Y  tg d	¢gt
 d
g¡g d¢td�}t ||¡ d S )Nr.  )r¶   r¯   rÈ   rè  rJ  r’  r)   )r   r   r   zfuture.infer_string)r   r   r   r   )r¯   rë   rR   r   )r(   rÔ   rA   )rv   Úimportorskipr   r„   rç   rÔ   r*   r"  r0   r¬  r4   r™   r6   r7   )r-  r;   r   r   r   r   r   Útest_groupby_duplicate_columns-
  s   	
ÿþ
ÿÿr1  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(   rc   )rì   rì   r   r½  r!   rÚ   rR   )r   r(   rc   r0   Úlastr6   rs   )r:   r   r   r   r   r   Ú#test_groupby_series_with_tuple_nameD
  s   r4  zfunc, valuesrV   ç     @X@ç     €X@rd   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ÃACr8  éa   éb   ç €à7yÃ1Ãr;  r;  r;  rR   r!   rÚ   ©r”   rë   rì   r”   rê   rj  r'   )r   r  r0   r	   r6   r7   )r€  rû   ry   r;   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 )Nr7  rR   r!   rÚ   r<  r”   r8  g0€à7yÃACg1€à7yÃACga€à7yÃ1Cgb€à7yÃ1Cr5  r6  rê   T)Úcheck_exact)r   r0   rk  r6   r7   )ry   r;   r   Ú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    rR   r   F©Úskipnarõ  )r4   rj   rk   r˜   r   r2   r®   r/   r0   rk  r6   r7   )r  r;   Úir<   rÖ   r   r   r   r   Ú test_groupby_cumsum_skipna_falsef
  s   
rD  c                  C   sÆ   t ddd�} t| ƒ| d  }tj|d< td|dœƒ}| d¡}|jd	d
d�}td|d |d tj|d |d d giƒ}t ||¡ |jd	d	d�}td|d |d tjtjtjgiƒ}t ||¡ d S )Nr¾  r    r   r   r!   rR   r  r   FT)r3  rB  r   rÚ   )	r   r   r*   r.   r   r0   rk  r6   r7   )ræ  r:   r;   r<   rÖ   rg  r   r   r   Útest_groupby_cumsum_timedelta64v
  s   

,$rE  c                 C   s4   | }|j dd� ¡ }|  |j¡ ¡ }t ||¡ d S )Nr   r½  )r0   rd   r(   r6   rs   )Ú(rand_series_with_duplicate_datetimeindexÚdupsr   r   r   r   r   Ú!test_groupby_mean_duplicate_indexˆ
  s   rH  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�   rH   )r   r4   r®   r0   r(   rV   r	   rD   rB   r6   rs   ©rØ  r   r   r   r   r   Ú test_groupby_all_nan_groups_drop�
  s   rJ  c                 C   sž   t g g d¢d�}|jddg| d�}|j|d�}| r2tg g gg g gddgd�}|s+dgntg d	d
�}ntdƒ}|s<g d¢nddg}t g ||d�}t ||¡ d S )Nr)   r  r   r   rÀ   r2  r\  r%   r  r�   r   rß   )r   r0   rV   r   r	   r   r6   r7   )rÁ   r3  r;   r<   r   r(   rÔ   r   r   r   r   Útest_groupby_empty_multi_column—
  s   rK  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 )NrÐ  rR   ÚWr_   r`   ÚMWr|   ri  rj  r'   rZ  )r   r	   r0   rV   r6   r7   ©r;   r   r<   r   r   r   r   Ú*test_groupby_aggregation_non_numeric_dtype§
  s   (ÿÿürO  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©rR   r   rR   rR   r   c                 S   ó   g | ]}t |d ƒ‘qS ©Údays©r   ©rå   rC  r   r   r   rð   ¾
  rÍ  zDtest_groupby_aggregation_multi_non_numeric_dtype.<locals>.<listcomp>rR   r7  c                 S   ó   g | ]	}t |d  dƒ‘qS ©r_   rS  rT  rU  r   r   r   rð   ¿
  r  r“  c                 S   rQ  rR  rT  rU  r   r   r   rð   Å
  rÍ  rX   rF   c                 S   rV  rW  rT  rU  r   r   r   rð   Æ
  r  ©r  r”  r   rB   rK   ©rA   rc   r'   rZ  )r   r2   r	   r0   rV   r6   r7   rN  r   r   r   Ú0test_groupby_aggregation_multi_non_numeric_dtype¹
  s   ýÿþûrZ  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 )NrP  c                 S   rQ  rR  rT  rU  r   r   r   rð   Õ
  rÍ  zKtest_groupby_aggregation_numeric_with_non_numeric_dtype.<locals>.<listcomp>rR   r7  r“  rX   rS  rŒ   rX  r   rB   rK   rY  r'   rZ  )	r   r2   r1   r   r	   r0   rV   r6   r7   rN  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]  )rC  rC  g$+¿ÆH@)r\  r^  r_  rj  rß   )r   r0   r3   r	   r6   r7   )Údictsr;   Ú	df_filterÚdfgbr   r   r   r   r   Útest_groupby_filtered_df_stdä
  s   ý
ýrc  c                  C   sž   t ttdƒƒttg d¢ƒdd�tjg d¢ddgd�d	œƒ} | jd
dgdd�j}d
tdƒft	 
dg¡dtdƒft	 
dg¡dtdƒft	 
dg¡i}||ksMJ ‚d S )NÚabc)rå  z
2018-02-01z
2018-03-01Úcategoryr�   )r&   r   rR   r   rR   )Ú
categoriesr
  rë   rì   F©rË  z2018-01-01 00:00:00z2018-02-01 00:00:00rþ   z2018-03-01 00:00:00r!   )r   r   r1   r   r   Ú
from_codesr0   r"  r   r4   r™   rn  r   r   r   Ú2test_datetime_categorical_multikey_groupby_indicesø
  s   

þúÿ
ýri  c                  C   s¢   dgd dgd  } t jt jdddgt jddddg }t| |gƒj}dd	g|_d
}tjt|d�� | d¡d	 j	ddd� 
¡  W d   ƒ d S 1 sJw   Y  d S )NÚAlicer    ÚBobrR   r!   rG   rÚ   rc   r)  z@^[a-zA-Z._]*\(\) got an unexpected keyword argument 'min_period'rP   )ÚwindowÚ
min_period)r4   r®   r   rÕ   rÔ   rv   rw   rX  r0   ÚrollingrV   )Úname_lÚval_lÚtest_dfÚresult_error_msgr   r   r   Ú#test_rolling_wrong_param_min_period  s   "
ÿ"ÿrs  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)ÚThomasrt  úThomas John)i°  i  é„  )ÚsadÚhappyrx  r�   )ÚNameÚCreditÚMoodrV   )r{  rz  ry  rx  rw  iÄ	  rv  rt  ru  )r{  rz  ry  )r   r   Úmoder0   rr   r  r6   r7   )Úany_string_dtyper;   Úaggregate_detailsr   Ú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)NrR   r   rR   )r!   rG   r!   rG   rR   rë   rì   r\  r'   r   r½  r!   )rC  r!   )rï   rG   )r   r   rñ  r0   rV   r^  r6   rs   )r  r:   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‘  )rR   rR   r!   rG   )rÚ   r    r7  rX   )Nrì   rþ   rZ  r!   r    rF   é   r‰  rR   r   rj  r'   )r   r4   r®   r0   rV   r	   r6   r7   )rY  r;   ru  r<   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s7J ‚d S )NrR   r!   r    r
  rK   r  r'   rë   c                 S   ó   g | ]\}}|‘qS r   r   ©rå   r   rò  r   r   r   rð   L  rñ   z5test_single_element_list_grouping.<locals>.<listcomp>©rR   )r!   )r   r4   r®   r0   )r„  r;   rz   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ë   )rR   r!   rG   r!   )Ústr_colÚnum_colr‰  Ústringr
  )rÞ  rù   r£  FrÀ   )r   r„   r0   rd   r6   r7   )r;   r   rz   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
�}|r| ddg¡}d}tjt|d�� dd„ |j| d�D ƒ W d   ƒ d S 1 s;w   Y  d S )NrR   r!   rG   rÚ   r    r7  r
  rK   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.rP   c                 S   r…  r   r   r†  r   r   r   rð   u  rñ   zKtest_single_element_listlike_level_grouping_deprecation.<locals>.<listcomp>r½  )r   r  r6   ro   rp   r0   )Ú	level_argr  r;   r  r   r   r   Ú7test_single_element_listlike_level_grouping_deprecationf  s   $ÿ"ÿr�  )rV   rk  Úcumprodr®  c                 C   sj   d}t d|gdœƒ}t| d¡| ƒƒ | }t ddgitdgdd�d�}| d	v r-|jd
d�}t ||¡ d S )Nl   ÌL™33ffrR   rê   rë   rì   r   rj  r'   )rk  r�  Tr�  )r   r  r0   r	   r†  r6   r7   )r€  r)  r;   r   r   r   r   r   Ú#test_groupby_avoid_casting_to_floatx  s   r‘  z	func, val)rV   rG   )r®  r!   c                 C   s\   t dddtjgdœ| d�}t| d¡|ƒƒ }t d|gitdgd| d�| d�}t ||¡ d S )	NrR   r!   rê   r�   rë   rì   r#  rH   )r   r*   ÚNAr  r0   r	   r6   r7   )Úany_numeric_ea_dtyper€  r)  r;   r   r   r   r   r   Útest_groupby_sum_support_mask„  s   ýr”  z
val, dtype)éo   rÃ  )éÞ   Úuintc                 C   sì   t d| | gdœ|› d�d�}| d¡ ¡ }t d| d gitdgd|› d�d�|› d	�d
�}t ||¡ | d¡ ¡ }t d| | d gi|› d	�d�}t ||¡ | d¡ ¡ }t d| |  gitdgd|› d�d�|› d	�d
�}t ||¡ d S )NrR   rê   Ú8r�   rë   rì   r!   r#  Ú64rH   )r   r0   rV   r	   r6   r7   rk  r®  )r)  rA   r;   r   r   r   r   r   Útest_groupby_overflow‘  s$   ýýrš  zskipna, val)TrG   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 )NrR   r!   rê   r�   rë   rA  rì   )r   r*   r’  r0   rk  r6   r7   )r“  rB  r)  r;   r   r   r   r   r   Útest_groupby_cumsum_maskª  s   þr›  zval_in, index, val_out)rï   rù   r£  rø   ræ  )r‰   r‰   rŠ   rÂ  Úblah)r£  rø   ræ  r£  )rï   rù   r£  rø   ræ  g      @)r‰   r‰   rŠ   rÂ  rœ  rœ  )r£  rø   g      &@r£  c                 C   st   t | dt|dd�d�}| d¡ ¡ }t |dtg d¢dd�d�}t ||¡ | ¡  d¡ ¡ }| ¡ }t ||¡ d S )Nrû   rœ  rj  )ry   rc   r(   )rŠ   rÂ  rœ  r‰   )r   r	   r0   rV   r6   rs   r,   r7   )Úval_inr(   Úval_outÚseriesr   r   r   r   r   Ú(test_groupby_index_name_in_index_content¶  s   ýr   r¤  )rR   r_   é    ry  rx  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 )NrR   T)r]  rÂ  rÂ  r]  rj  r'   )r   Úeqr0   rV   r	   r6   r7   )r¤  r;   r   r   r   r   r   Útest_sum_of_booleansÕ  s
   r£  z<ignore:invalid value encountered in remainder:RuntimeWarning)r  Útailr…  r­   r3  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  r…  r   r   )r¤  )r­   r3  r   rr  r
  rj  r'   )
r   r4   r®   r2   r  r0   r  r   r6   r7   )rÈ  r;   r   r   r   r   r   Útest_groupby_method_drop_naß  s    ÿr¥  c                  C   sr  t jdddd�} ttdƒƒd }|  ¡ }| |¡}tjtdd�� | 	¡  W d   ƒ n1 s/w   Y  tjtdd�� | 
¡  W d   ƒ n1 sJw   Y  tjtd	d�� | ¡  W d   ƒ n1 sew   Y  tjtd
d�� | ¡  W d   ƒ n1 s€w   Y  | ¡ }|dd … }ttdƒtd�|_t ||¡ | ¡ }|d d… }ttdƒtd�|_t ||¡ d S )Nr¾  ry  r�   rÝ   r_   z+Period type does not support sum operationsrP   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_ranger1   r2   Ú	to_seriesr0   rv   rw   rX  rV   rk  r®  r�  r  r	   rÃ  r(   r6   rs   r¬  )ÚpiÚgrpsr:   r<   rÖ   r   r   r   r   Útest_groupby_reduce_periodõ  s8   

ÿÿ
ý
ÿÿ
ýrª  c                  C   sN   t g d¢gƒ} g d¢| _|  | d ¡}|j}| jg d¢dd�}t ||¡ d S )N)r   rR   r!   rG   rà  rR   )r   r!   rG   r±   )r   rÔ   r0   Ú_obj_with_exclusionsr$  r6   r7   )r;   r<   r   r   r   r   r   Ú*test_obj_with_exclusions_duplicate_columns  s   
r¬  c                 C   s¢   dddœdddœg}t |td�}|jdddd	�}| r1|jd
d�}t ddgdgd�}t ||¡ d S tjtdd�� |j| d� W d   ƒ d S 1 sJw   Y  d S )Nr‰   rŠ   rê   ÚcarÚdarr�   rë   F)rÁ   rã  Tr2  ri  z(could not convert string to float: 'bar'rP   )	r   rç   r0   r3   r6   r7   rv   rw   r¡  )r3  Údicts_non_numericr;   rb  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ë   )rK   ÚwrK   r   rR   r    r¿   r·  Frg  rd   gD‹lçû©Ù¿r²  r�  )Úclosedr³  r´  r¶  T)rÖ  r
  r\  rµ  r2  )r   r*   Úqcutr4   Úlinspacer0   rr   r   r
   r   r'  r   r™   r®   r6   rs   )r;   Úqqr   Úcategorical_index_level_1Úindex_level_2rc  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   rW  rT   r   rJ   r   r   r   rL   `  rX  z;test_groupby_sum_on_nan_should_return_nan.<locals>.<lambda>rR   )Ú	min_count)rÔ   rA   )r   r4   r®   rO  r  r„   rç   r0   rV   rA   r6   r7   )r¿  r;   rb  r   r°  r   r   r   Ú)test_groupby_sum_on_nan_should_return_nanZ  s   

ÿrÁ  )r€  ÚcorrÚcummaxÚcumminr�  r  ÚrankrÅ   r  r   r%  r+  rÉ  r’   r  r  Ú
pct_changec                 C   sd   t dt| ƒd�}|| _|  dg¡dg }| dg  | d ¡}t||ƒƒ }t||ƒƒ }t ||¡ d S )NÚ2014r   r   r%   )r   rn   r(   r0   r  r6   r7   )r;   rÈ  ÚrngrÈ   Úg_exprÖ   rg  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 sBw   Y  d	}tjt|d�� t 	|j|j¡ W d   ƒ n1 scw   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  rP   r   z%DataFrameGroupBy.dtypes is deprecatedc                 S   r  rT   rU   rJ   r   r   r   rL   Ÿ  rM   z6test_groupby_selection_other_methods.<locals>.<lambda>r�   c                 S   s   t | ƒdkS rI   rŸ  rJ   r   r   r   rL   ¥  rW   )r   rn   rÔ   rc   r(   r0   r6   ro   rp   r7   r  rš   rt   Úresamplerd   rç  r   )r;   rÈ  rÈ   rÉ  r  r}   r   r   r   Ú$test_groupby_selection_other_methods�  s&   ÿÿ   ÿ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ï   r£  )ÚquantÚquant2Útime2z2016-08-31 22:08:00r‚  Ú1min)r   rÞ   Úunit)rR   rR   r   r   r   r   r   r   r   r   r   r   rR   )rÏ  rÍ  rÎ  rÏ  )r   rÞ   )
r   Úas_unitr   r   r0   r   r€  r†  r6   r7   )rÑ  Úidx2Ú	test_datarÏ  Úexpected_outputr<   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 )
Nrú  z
2022-01-01rG   r   Újanr2  r!   rR   rj  )r   r   r0   r€  r(   rc   r6   rs   rI  r   r   r   Ú1test_groupby_series_with_datetimeindex_month_nameÅ  s
   rØ  Útest_serieszkwarg, value, name, warn)ru  rë   rR   Nru  r‡  )r   r   rR   Nc           
      C   sÐ   t dg d¢itg d¢dd�d�}| r|d }|jdi ||i¤Ž}d}tj||d�� | |¡}W d   ƒ n1 s9w   Y  | rPt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ì   rq  rp  rë   rj  r'   z&you will need to pass a length-1 tuplerP   rG   rÚ   rR   r2  r   )r   r	   r0   r6   ro   rm  r   r×  )
rÙ  Úkwargr�   rc   rÐ   rr  r<   r}   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 )NrR   rê   rë   rì   F)r}  rË  r   )	r   r   r4   r®   r0   r�  r   r6   rs   rn  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/w   Y  | d	¡}t g d¢g d¢dœƒ}t ||¡ d S )N)r   rG   r!   rG   )rÚ   rR   r7  rX   )rG   rŒ   r!   r_   )rR   r‚  r7  r-  )éüÿÿÿr    r7  iùÿÿÿ)rD  rE  Úcol3Úcol4Úcol5Ú
deprecatedrP   rR   )rR   r!   rG   r!   rR   )r²   ru  )rD  rà  )r   r6   ro   rp   r0   rm  r7   rž  r   r   r   Útest_get_group_axis_1ò  s$   ûÿ	ÿ
þÿ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ë   rR   r!   rG   rÚ   rP  r'   r   r½  )rR   r!   rG   rÚ   r!   rG   Frõ   )r   r4   r®   r0   r  r6   r7   rn  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	�}| r0|d
 }|jj}t	tdƒd gdd�}t
 ||¡ d S )NrR   r!   rG   rÚ   r    )r   r�   r   F)r}  r�   rj  )rO  ÚdecimalÚInvalidOperationrX  r   r   r0   r6  Úresult_indexr	   r6   r¤  )rÙ  r;   r<   r   r   r   r   r   Útest_decimal_na_sort  s   þÿrç  )År   rä  r   rV  Únumpyr4   rv   Úpandas.errorsr   r   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdÚpandasr*   r   r   r   r	   r
   r   r   r   r   r   r   r   Úpandas._testingÚ_testingr6   Úpandas.core.arraysr   Úpandas.core.commonÚcoreÚcommonrQ  ÚmarkÚfilterwarningsÚ
pytestmarkr   r@   Úparametrizer�   r‡   rœ   r°   rÒ   rØ   rè   rî   ró   rý   r  r  r+  r1  r6  rF  rG  rQ  rZ  rh  ro  rs  rw  rŽ  r”  r–  r™  r�  rŸ  r¢  r¥  r§  rª  r­  r¶  r¹  r»  r¿  rÀ  rÆ  rÈ  rÕ  rÙ  rÜ  rà  rå  rë  ró  rô  r  r  r  r	  r  r  r  r  r  r"  r&  r(  r+  r/  r2  r;  r<  rF  rH  rV  rY  r`  rb  rf  ri  rn  rp  rq  rw  r†  rŠ  r›  r¢  r¦  rµ  r½  r¦  r™   rß  rá  râ  rã  rê  rí  rï  rö  rø  rÿ  r  r  r  r  r   r!  r%  r(  r)  r*  r,  ÚparamÚ
skip_if_nor1  r4  r=  r@  rD  rE  rH  rJ  rK  rO  rZ  r[  rc  ri  rs  r€  r�  rƒ  rˆ  rŒ  r�  r‘  r”  rš  r’  r›  r   r£  r¥  rª  r¬  r±  r¾  rÁ  rÊ  rÌ  rÖ  rØ  rp   rÛ  rÜ  râ  rã  rç  r   r   r   r   Ú<module>   s„   8
AH5
ÿ
=(09
 
C"	
þ

þ 
 	-	

?-	
	1þÿõñÿ~	
úÿþúÿþúÿþåþ,

-)þ









ôþ	þþ
&ÿ	

ÿýýúþ	ÿ
)þ	úþ	