U
    ÎZj’l ã                   @   sJ
  d dl m Z  d dlmZ d dlZd dlZd dlmZ d dlm	Z	 d dl
mZ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 d dlmZ d dlmZ d dlm   m!Z" d d	l#m$Z$ d d
l%m&Z& dd„ Z'ej( )dddddg¡dd„ ƒZ*dd„ Z+dd„ Z,dd„ Z-dd„ Z.ej( )dddg¡dd „ ƒZ/d!d"„ Z0d#d$„ Z1ej( )dddddd%d&g¡d'd(„ ƒZ2d)d*„ Z3d+d,„ Z4d-d.„ Z5d/d0„ Z6d1d2„ Z7d3d4„ Z8d5d6„ Z9d7d8„ Z:ej( )d9d:d;„ d<d;„ g¡d=d>„ ƒZ;d?d@„ Z<dAdB„ Z=dCdD„ Z>dEdF„ Z?dGdH„ Z@dIdJ„ ZAdKdL„ ZBdMdN„ ZCdOdP„ ZDdQdR„ ZEdSdT„ ZFdUdV„ ZGej( )dWdXdYg¡dZd[„ ƒZHej( )dWd\d]d^d_d`dadbg¡ej( )dcejIddg¡ddde„ ƒƒZJdfdg„ ZKdhdi„ ZLdjdk„ ZMdldm„ ZNdndo„ ZOdpdq„ ZPdrds„ ZQdtdu„ ZRdvdw„ ZSdxdy„ ZTdzd{„ ZUd|d}„ ZVd~d„ ZWd€d�„ ZXd‚dƒ„ ZYd„d…„ ZZd†d‡„ Z[dˆd‰„ Z\dŠd‹„ Z]dŒd�„ Z^ej( _dŽ¡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²„ Zqej( )d³d´d´dµgg¡d¶d·„ ƒZrd¸d¹„ Zsdºd»„ Ztd¼d½„ Zud¾d¿„ ZvdÀdÁ„ ZwdÂdÃ„ ZxdÄdÅ„ ZydÆdÇ„ Zze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 gdÜdÝ�ej}d gdÞdÝ�ej}dgdßdÝ�g
dàdádâdãdädådædÜdÞdßg
dç�ej( )dèdédêdëg¡ej( )d9dìdídîdYdXd\d^dïg¡ej( _dð¡ej( _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Šej( _�d¡�d�d„ ƒZ‹ej( )�dedØdØg�d�d�ejŒ�d�d�dg�d�g¡ej( _�d ¡�d!�d"„ ƒƒZ��d#�d$„ ZŽ�d%�d&„ Z�ej( )�d'�d(�d)�d*g¡�d+�d,„ ƒZ��d-�d.„ Z‘ej( )�d/e�d0dØfeddfe�d1dfe�d2dfe�d3dfe�d4dfe�d5dfej’e�d6dÙej(j“�d7�d8��d9�e�d0dØfeddfe�d1dfe�d2dfe�d3dfe�d4dfe�d5dfg¡ej( _�d:¡�d;�d<„ ƒƒZ”�d=�d>„ Z•ej( )�d?d\�d@�d	g¡�dA�dB„ ƒZ–�dC�dD„ Z—�dE�dF„ Z˜ej(j“e	 �dG�d8�ej( )�dHd\�dI�dJgfd]�dK�dLgfg¡�dM�dN„ ƒƒZ™ej(j“e	 �dG�d8��dO�dP„ ƒZš�dQ�dR„ Z›�dS�dT„ Zœ�dU�dV„ Z��dW�dX„ Zžej( )dcddg¡�dY�dZ„ ƒZŸ�d[�d\„ Z �d]�d^„ Z¡�d_�d`„ Z¢�da�db„ Z£�dc�dd„ Z¤�de�df„ Z¥�dg�dh„ Z¦�di�dj„ Z§�dk�dl„ Z¨�dm�dn„ Z©�do�dp„ Zªej( )�d?d\�dqd^g¡�dr�ds„ ƒZ«ej( )�dt�du�dvg¡�dw�dx„ ƒZ¬ej( )�dy�dz�d{g¡�d|�d}„ ƒZ­ej( )�d~�ddej®fg¡�d€�d�„ ƒZ¯dS (‚  é    )Údatetime)ÚDecimalN)Úlib)ÚIS64)ÚPerformanceWarningÚSpecificationError)ÚCategoricalÚ	DataFrameÚGrouperÚIndexÚ
MultiIndexÚ
RangeIndexÚSeriesÚ	TimedeltaÚ	TimestampÚ
date_rangeÚto_datetime)ÚBooleanArray)Ú"maybe_normalize_deprecated_kernels)Úget_groupby_method_argsc                  C   s$   t tddd�ƒ} d}| |ks t‚d S )NÚAÚB)ÚkeyÚlevelz<Grouper(key='A', level='B', axis=0, sort=False, dropna=True))Úreprr
   ÚAssertionError)ÚresultÚexpected© r   úd/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/pandas/tests/groupby/test_groupby.pyÚ	test_repr#   s    r    ÚdtypeÚint64Zint32Úfloat64Zfloat32c              	      sÄ  t t d¡d t d¡| d�}t d¡}tj |¡ | |¡}|jdd„ dd�}|D ]\}}t|ƒdksTt‚qT| 	tj
¡}|d dksŠt‚t || tj
¡¡ t || 
¡ ¡ t | tj¡| ¡ ¡ | d	d„ ¡}| d
d„ ¡}|d dksòt‚t ||¡ | |¡}	tj|	 	tj
¡|dd� | 	tj
tjg¡}d}
tjt|
d�� | 	tj
tjdœ¡ W 5 Q R X ddddœ‰ | ‡ fdd„¡}|d dk�s”t‚d}
tjt|
d�� | 	dd„ ¡ W 5 Q R X d S )Né	   é   ©Úindexr!   c                 S   s   | d S ©Nr%   r   ©Úxr   r   r   Ú<lambda>3   ó    ztest_basic.<locals>.<lambda>F©Ú
group_keysé   c                 S   s   | |   ¡  S ©N©Úsumr)   r   r   r   r+   ?   r,   c                 S   s   | |   ¡  S r0   r1   r)   r   r   r   r+   @   r,   é   é   )Zcheck_index_typeúnested renamer is not supported©Úmatch)ÚoneÚtwoé
   é   é   )r   r/   é   c                    s   ˆ | j  |  ¡  S r0   )ÚnameÚmeanr)   ©Zgroup_constantsr   r   r+   Q   r,   é   zMust produce aggregated valuec                 S   s   | d S ©Nr=   r   r)   r   r   r   r+   X   r,   )r   ÚnpÚarangeÚrandomÚshuffleÚreindexÚgroupbyÚlenr   Ú	aggregater?   ÚtmÚassert_series_equalÚaggr2   ÚapplyÚ	transformÚstdÚpytestÚraisesr   Ú	Exception)r!   Údatar'   ÚgroupedÚkÚvÚaggedr   ÚtransformedZvalue_groupedÚmsgr   r@   r   Ú
test_basic*   s@    



  ÿr[   c           	      C   sŠ   | j jd }|  |¡}| ¡ }|  | d¡¡ ¡ }t ||¡ | ¡ }tt	|ƒƒ|d< dd„ }| d¡ 
|¡}|j}|j}t ||¡ d S )Nr   ÚOÚvaluec                 S   s   | j | d  ¡  S )Nr]   )ÚlocÚidxmax©Úgroupr   r   r   Ú	max_valueg   s    z/test_groupby_nonobject_dtype.<locals>.max_valuer   )r'   ÚcodesrH   r2   ÚastyperK   Úassert_frame_equalÚcopyÚrangerI   rN   ÚdtypesrL   )	ÚmframeZdf_mixed_floatsr   rU   r   r   Údfrb   Zappliedr   r   r   Útest_groupby_nonobject_dtype[   s    
rk   c               	   C   s(  t dddœdddœdddœdddœgƒ} dd	„ }t t¡� | jd
dd� |¡}W 5 Q R X t|tƒsht‚t dddœdddœdddœdddœgƒ}dd	„ }t t¡� |jd
dd� |¡}W 5 Q R X t|tƒsÐt‚t ddgddggddgd�}t t¡� |jddd� 	¡ }W 5 Q R X t|t ƒ�s$t‚d S )Nr/   r;   )Úval1Úval2é   r=   é   r4   c                 S   s   | d | d   ¡  S ©Nrm   ©r?   ©Zdatafr   r   r   Úfunc|   s    z&test_groupby_return_type.<locals>.funcrl   T)Úsqueezec                 S   s   | d | d   ¡  S rp   rq   rr   r   r   r   rs   Œ   s    ÚXÚY©ÚcolumnsF)
r	   rK   Úassert_produces_warningÚFutureWarningrH   rN   Ú
isinstancer   r   Úcount)Údf1rs   r   Údf2rj   r   r   r   Útest_groupby_return_typep   s4    üÿ	üÿ	r   c                  C   sˆ  t dddddddgtt d¡dd�tddd�d	œƒ} d
d„ }|  d¡ ¡ dg }|  d¡ |¡dg }t 	||¡ dd„ }|  d¡ |¡dg }| 
¡ }tj|jd< t 	||¡ dd„ }|  d¡ |¡dg }| 
¡ }tj|jd< t 	||¡ dd„ }|  d¡ |¡dg }|  d¡ ¡ dg }tj|jd< t 	||¡ dd„ }|  d¡ |¡}|  d¡ ¡ d  
¡ }tj|jd< d |_t ||¡ d S )NÚTigerZLambÚPonyr3   r"   ©r!   Z20130101©Úperiods©r   r   ÚCc                 S   s
   | j d S ©Nr   )Úiloc©Úgrpr   r   r   Úf¥   s    z(test_inconsistent_return_type.<locals>.fr   r   c                 S   s   | j dkrd S | jd S )Nr€   r   ©r>   rˆ   r‰   r   r   r   r‹   ¬   s    
c                 S   s   | j dkrd S | jd S ©Nr�   r   rŒ   r‰   r   r   r   r‹   ¶   s    
c                 S   s   | j dkrd S | jd S r�   rŒ   r‰   r   r   r   r‹   Á   s    
r†   c                 S   s   | j dkrd S | jd jd S )Nr�   r   r†   )r>   rˆ   r^   r‰   r   r   r   r‹   Ì   s    
)r	   r   rC   rD   r   rH   ÚfirstrN   rK   re   rf   Únanr^   ÚpdÚNaTr>   rL   )rj   r‹   r   r   Úer   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�}|jtjddd�}| t	jd	¡}| d	¡}tj
||dd� t 
||¡ | t	jdd	g¡}| dd	g¡}tj
||dd� |j|dd
�}|jt	jd	d
�}t 
||¡ tj
||dd� qàd S )Nr   c                 S   s   t j| ||d�S )N©Úaxis©rC   Ú
percentile)r*   Úqr•   r   r   r   r‹   Ù   s    z test_pass_args_kwargs.<locals>.fc                 S   s   t j| ddd�S )NéP   r   r”   r–   r)   r   r   r   r+   Ü   r,   z'test_pass_args_kwargs.<locals>.<lambda>c                 S   s   | j S r0   ©Úmonthr)   r   r   r   r+   ß   r,   r™   r”   çš™™™™™é?)r˜   )TFc                 S   s   | j S r0   rš   r)   r   r   r   r+   ô   r,   ©Úas_indexF©Zcheck_namesgš™™™™™Ù?)Nr   )rH   rM   rC   r—   rN   rO   ÚquantilerK   rL   r	   re   )ÚtsÚtsframer‹   ÚgZ
ts_groupedZ
agg_resultZapply_resultZtrans_resultZagg_expectedZtrans_expectedrž   Ú
df_groupedr   Zexpected_seqr   r   r   Útest_pass_args_kwargsØ   s>    



r¥   rž   TFc                 C   sŒ   ddddg| _ | jdd„ |d�}|jtjddd	�}| | jjd
k  d¡| | jjdk  d¡dœ}t|ƒj	}|s|t
tdƒƒ|_t ||¡ d S )Nr   r   r†   c                 S   s   | j S r0   rš   r)   r   r   r   r+   	  r,   z9test_pass_args_kwargs_duplicate_columns.<locals>.<lambda>r�   r™   r   r”   r/   rœ   r=   ©r/   r=   )rx   rH   rM   rC   r—   r'   r›   r    r	   ÚTr   rg   rK   re   )r¢   rž   ÚgbÚresZex_datar   r   r   r   Ú'test_pass_args_kwargs_duplicate_columns  s    þ
rª   c                  C   sØ   t  ¡ } |  dd„ dd„ dd„ g¡}t|ƒt| ƒks8t‚|  dd„ dd„ g¡}tdd„ | jD ƒƒ}t|ƒ|ksrt‚ttjgd	 d
dd	gdœƒ} t|  d¡ƒdks¤t‚t|  d¡ƒd	ksºt‚t|  ddg¡ƒd	ksÔt‚d S )Nc                 S   s   | j S r0   ©Úyearr)   r   r   r   r+     r,   ztest_len.<locals>.<lambda>c                 S   s   | j S r0   rš   r)   r   r   r   r+     r,   c                 S   s   | j S r0   ©Údayr)   r   r   r   r+     r,   c                 S   s   | j S r0   r«   r)   r   r   r   r+     r,   c                 S   s   | j S r0   rš   r)   r   r   r   r+     r,   c                 S   s   h | ]}|j |jf’qS r   )r¬   r›   ©Ú.0r*   r   r   r   Ú	<setcomp>  s     ztest_len.<locals>.<setcomp>r%   r/   r=   ©ÚaÚbr³   r   r´   )	rK   ÚmakeTimeDataFramerH   rI   r   r'   r	   rC   r�   )rj   rU   r   r   r   r   Útest_len  s    r¶   c                  C   sN   t dd„ ttddƒƒd D ƒƒ} tj d¡d }t |ƒ}|  |¡}| ¡  d S )Nc                 S   s   g | ]}d | ‘qS )ç      ð?r   r¯   r   r   r   Ú
<listcomp>+  s     z)test_basic_regression.<locals>.<listcomp>r/   r:   iL  g      $@)r   Úlistrg   rC   rE   rH   r?   )r   rT   Ú	groupingsrU   r   r   r   Útest_basic_regression)  s
     
r»   Zint16Zint8c                 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‚   ÚfooÚbar©r'   é   r=   F)Zcheck_dtypec                 S   s   t t| ƒƒS r0   )ÚfloatrI   r)   r   r   r   r‹   I  s    ztest_with_na_groups.<locals>.fç      @ç       @)r   rC   rD   r   Úonesr�   rH   rM   rI   rK   rL   )r!   r'   ÚvaluesÚlabelsrU   rX   r   r‹   r   r   r   Útest_with_na_groups4  s    þ


rÆ   c               	   C   s8  dd„ } dd„ }dd„ }t ddddgtd	ƒtd
dƒdœƒ}t ddddgtd	ƒtd
dƒdœƒ}| d¡ | ¡}| d¡ | ¡}t ||¡ d}tjt|d�� | d¡ |¡ W 5 Q R X tjt|d�� | d¡ |¡ W 5 Q R X tjt|d�� | d¡ |¡ W 5 Q R X tjt|d�� | d¡ |¡ W 5 Q R X d S )Nc                 S   sb   | | j d dk d }|jrLtg gd g gd ddgd�}tdg|d�}|S | ddg¡}|S d S )Nr=   r/   r´   Úc©Zlevelsrc   Únamesr³   ©rx   r'   )r´   Úemptyr   r	   Ú	set_index©r*   ÚyZ
multiindexr©   r   r   r   Úf1V  s    z,test_indices_concatenation_order.<locals>.f1c                 S   s8   | | j d dk d }|jr"tƒ S | ddg¡}|S d S )Nr=   r/   r´   rÇ   )r´   rË   r	   rÌ   )r*   rÎ   r   r   r   Úf2`  s
    z,test_indices_concatenation_order.<locals>.f2c                 S   sV   | | j d dk d }|jrNtg gd g gd ddgd�}tddg|d�}|S |S d S )	Nr=   r/   r¼   r½   rÈ   r³   r´   rÊ   )r´   rË   r   r	   rÍ   r   r   r   Úf3h  s      ÿz,test_indices_concatenation_order.<locals>.f3r/   r=   r¿   é   r$   ©r³   r´   rÇ   r%   r³   z@Cannot concat indices that do not have the same number of levelsr6   )	r	   rg   rH   rN   rK   re   rQ   rR   r   )rÏ   rÐ   rÑ   rj   r~   Úresult1Úresult2rZ   r   r   r   Ú test_indices_concatenation_orderR  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 5 Q R X d S )
Nc                 S   s   |   ¡ S r0   ©Úweekdayr)   r   r   r   r+   ‹  r,   z#test_attr_wrapper.<locals>.<lambda>c                 S   s   t j| dd�S )Nr/   )Zddof)rC   rP   r)   r   r   r   r+   Ž  r,   c                 S   s   i | ]\}}||  ¡ “qS r   )Údescribe)r°   r>   Úgpr   r   r   Ú
<dictcomp>“  s      z%test_attr_wrapper.<locals>.<dictcomp>c                 S   s   | j S r0   r‚   r)   r   r   r   r+   ™  r,   z-'SeriesGroupBy' object has no attribute 'foo'r6   r¼   )rH   rP   rM   rK   rL   rÙ   r	   r§   re   r!   rQ   rR   ÚAttributeErrorÚgetattr)r¡   rU   r   r   rZ   r   r   r   Útest_attr_wrapperŠ  s    
rÞ   c                 C   sr  |   dd„ ¡}| tj¡}t|ƒdks*t‚t|jƒdks<t‚|  ¡ }dd„ |jD ƒ|d< |  d¡ tj¡}t	j
||dd	� |  d
¡  dd„ ¡}| dd„ ¡}t|ƒd
ks¬t‚t|jƒdks¾t‚| dd„ ¡}|D ]2\}}| ¡ }|jD ]}	t	j| |	¡|dd	� qæqÐ|D ]"\}
}|jd  ¡ |
k�st‚�q|j}|j}| ¡ D ],\}}| j || ¡}||k ¡ �s@t‚�q@d S )Nc                 S   s   |   ¡ S r0   r×   r)   r   r   r   r+   £  r,   z$test_frame_groupby.<locals>.<lambda>rÒ   r¿   c                 S   s   g | ]}|  ¡ ‘qS r   r×   r¯   r   r   r   r¸   ¬  s     z&test_frame_groupby.<locals>.<listcomp>rØ   FrŸ   r<   c                 S   s   |   ¡ S r0   r×   r)   r   r   r   r+   ±  r,   c                 S   s   | |   ¡  S r0   rq   r)   r   r   r   r+   ²  r,   c                 S   s   |   ¡ S r0   rq   r)   r   r   r   r+   ·  r,   r   )rH   rJ   rC   r?   rI   r   rx   rf   r'   rK   re   ÚheadrO   rL   ZxsrØ   ÚgroupsÚindicesÚitemsÚtakeÚall)r¢   rU   Ú
aggregatedZtscopyZstraggedrY   r>   ra   r?   ÚidxrØ   rà   rá   rV   rW   Z	samethingr   r   r   Útest_frame_groupby¢  s0    
rç   c                 C   s¤   dddddœ}| j |dd�}| tj¡}t|ƒt| ƒks<t‚t|jƒdksNt‚dd„ }| jj |dd�}t 	| 
|¡j| 
|¡¡ |D ]\}}t|jƒdks„t‚q„d S )Nr   r/   ©r   r   r†   ÚDr”   r=   c                 S   s   | |   ¡  S r0   rq   r)   r   r   r   r+   Ô  r,   z,test_frame_groupby_columns.<locals>.<lambda>)rH   rJ   rC   r?   rI   r   rx   r§   rK   re   rO   )r¢   ÚmappingrU   rå   ÚtfZgroupedTrV   rW   r   r   r   Útest_frame_groupby_columnsÊ  s    rì   c              	   C   sv  |   d¡}d}tjt|d�� | ¡ }W 5 Q R X |jjdks@t‚tjt|d�� | j ddd� ¡ }W 5 Q R X |jjdks|t‚tjt|d�� | t	j¡}W 5 Q R X |jjdks²t‚| t	jt	j
dœ¡}|jjdksÖt‚|d  ¡ }|jjdksòt‚|d  t	j¡}|jjdk�st‚|d  t	jt	j
g¡}|jjdk�s<t‚d}tjt|d�� |d  t	jt	j
d	œ¡ W 5 Q R X d S )
Nr   ú!The default value of numeric_onlyr6   Fr�   ©r†   ré   r†   r5   ©r¼   r½   )rH   rK   ry   rz   r?   r'   r>   r   rM   rC   rP   rQ   rR   r   )rj   rU   rZ   r   r   r   r   Útest_frame_set_name_singleÝ  s,    
rð   c                 C   s  | d }| d }|   |j|jg¡}d}tjt|d��  | ¡ }|   ddg¡ ¡ }W 5 Q R X tj|jd d …ddgf |jd d …ddgf dd� tt	j
 d	¡t	j
 d	¡t	 d
d
d
dddg¡t	 ddddddg¡dœddddddgd�} |   ddg¡}| t	j¡ d S )Nr   r   rí   r6   r†   ré   FrŸ   é   r´   r³   Ú1Ú2)Úv1Úv2Úk1Úk2r8   r9   ÚthreeÚfourÚfiveÚsixr¾   rö   r÷   )rH   ÚgetrK   ry   rz   r?   re   r^   r	   rC   rE   ÚrandnÚarrayrM   r2   )rj   Zcol1Zcol2rU   rZ   rX   r   r   r   r   Útest_multi_funcü  s,      ÿ

üù
rÿ   c                 C   sR   |   ddg¡d }| tjtjg¡}t| tj¡| tj¡dœƒ}t ||¡ d S )Nr   r   r†   )r?   rP   )rH   rM   rC   r?   rP   r	   rK   re   )rj   rU   rX   r   r   r   r   Ú!test_multi_key_multiple_functions  s    r   c                  C   s  t dddddddddddgdddddddddddgdddddddddddgtj d¡tj d¡tj d¡dœƒ} |  d	d
g¡}tjtjg}tjt	dd�� | 
|¡}W 5 Q R X tj|d  
|¡|d  
|¡|d  
|¡gdddgdd�}t|jtƒsøt‚t|jtƒ�s
t‚t ||¡ d S )Nr¼   r½   r8   r9   ZdullZshinyé   )r   r   r†   ré   ÚEÚFr   r   z&\['C'\] did not aggregate successfullyr6   ré   r  r  r/   )Úkeysr•   )r	   rC   rE   rý   rH   r?   rP   rK   ry   rz   rM   r�   Úconcatr{   r'   r   r   re   )rT   rU   ÚfuncsrX   r   r   r   r   Ú"test_frame_multi_key_function_list"  sr    õõõ


Öÿ/ ÿ&ýr  Úopc                 C   s   |   ¡ S r0   r1   r)   r   r   r   r+   b  r,   r+   c                 C   s   |   ¡ S r0   rq   r)   r   r   r   r+   b  r,   c              	   C   s"  | }|  ddg¡}||ƒ}g }g }|  d¡D ]J\}}|  d¡D ]6\}	}
| ||	f¡ | ||
jd d …ddgf ƒ¡ q>q,tj|ddgd�}tj|dd�j}||_dD ]8}||| ƒ}|| }|| }t	 
||¡ t	 
||¡ q¤|d   |d |d g¡ ¡ }|  ddg¡ ¡ d }t	 
||¡ d S )	Nr   r   r†   ré   ©rÉ   r/   r”   rî   )rH   Úappendr^   r   Úfrom_tuplesr�   r  r§   r'   rK   rL   r?   )rj   r  rT   rU   rÔ   r  rÄ   Zn1Zgp1Zn2Zgp2Úmir   ÚcolZ
result_colZpivotedÚexpr   r   r   r   Útest_groupby_multiple_columnsb  s*    $r  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dddgdt dddg¡d�}t ||¡ d S )Nr/   r=   r¿   rÒ   rñ   r   r   rw   Fr�   ©r>   T)rž   r.   c                 S   s   |   ¡ S r0   )Úcumsumr)   r   r   r   r+   ‹  r,   z-test_as_index_select_column.<locals>.<lambda>)r   r   )r   r/   r¦   ©r>   r'   )	r	   rH   Ú	get_groupr   rK   rL   rN   r   r  ©rj   r   r   r   r   r   Útest_as_index_select_columnƒ  s    "ÿ  ÿr  c                  C   s\   t tdddgdd�d�} | jddd�d jdd	�}t | jd d
… tdƒd�}t ||¡ d S )Nr   r   r†   Úalphar  rw   F)Úbyrž   ©Únumeric_onlyr=   r   rÊ   )r	   r   rH   r2   rx   rg   rK   re   )rj   Úleftr   r   r   r   Ú0test_groupby_as_index_select_column_sum_empty_df“  s    r  c              	   C   sJ  | j ddd�}d}tjt|d�� | tj¡}| ¡ }W 5 Q R X t ||¡ | tjtjdœ¡}tjt|d�� | ¡ }| ¡ d |d< W 5 Q R X t ||¡ | j ddd�}d	}t	j
t|d�� |d
  dtji¡ W 5 Q R X | j ddgdd�}| tj¡}| ¡ }t ||¡ | tjtjdœ¡}| ¡ }| ¡ d |d< t ||¡ |d
  ¡ }t|ƒjd
did�}|d
  dtji¡}t ||¡ ttj ddd¡dddgd�} ttj ddd¡dd�}	|   |	¡}
|
 d¡ t |
 t¡|   |	¡ t¡¡ dD ]P}| j |	dd�}
t|
|ƒƒ }| j |	jdd�}
t|
|ƒƒ jdd�}t ||¡ �qôd S )Nr   Fr�   rí   r6   rî   ré   Tr5   r†   ÚQr   rw   r   éd   )é2   r%   ZjimZjoeZjolierÒ   r:   r  r  )r?   Úmaxr|   r_   r  rä   ©Zdrop)rH   rK   ry   rz   rM   rC   r?   re   r2   rQ   rR   r   r	   ÚrenamerE   Úrandintr   ÚnthrN   rÝ   rÄ   Úreset_index)rj   rU   rZ   r   r   rÕ   Ú	expected2Z	expected3Zresult3r¡   ÚgrÚattrr  Úrightr   r   r   Útest_groupby_as_index_aggœ  sL    

r)  c              	   C   sŠ  | dkrt  d| › �¡ | dkr$tnd }ttjjdddd�dd	gd
�}tj|dd�� t	| 
d¡| ƒƒ }W 5 Q R X | dkr„| d¡}| ¡ }| dkr¬|d  |d j¡|d< |j
ddd�}tj|dd�� t	|| ƒƒ }W 5 Q R X t ||¡ tj|dd�� | | ¡}W 5 Q R X t ||¡ tj|dd�� t	|d	 | ƒƒ }W 5 Q R X t ||¡ tj|dd�� |d	  | ¡}W 5 Q R X t ||¡ d S )N)Zcorrwithr#  Úngroupz!GH 5755: Test not applicable for Úmadr   rÒ   )r  r=   )Úsizer³   r´   rw   úThe 'mad' method is deprecatedr6   r,  Fr�   )rQ   Úskiprz   r	   rC   rE   r"  rK   ry   rÝ   rH   r!  r$  rd   r!   re   rM   )Zreduction_funcÚwarnrj   r   r£   r   r   r   r   Útest_ops_not_as_index×  s0    
r0  c              	   C   st  | j ddd�}| j ddgdd�}d}tjt|d��4 |d  tj¡}| tj¡jd d …ddgf }W 5 Q R X t|t	ƒszt
‚t ||¡ |d  tj¡}| tj¡jd d …dddgf }t|t	ƒsÄt
‚t ||¡ |d  ¡ }tjt|d��  | ¡ jd d …ddgf }W 5 Q R X t|t	ƒ�s t
‚t ||¡ |d  ¡ }| ¡ jd d …dddgf }t|t	ƒ�sdt
‚t ||¡ d S )Nr   Fr�   r   rí   r6   r†   )rH   rK   ry   rz   rM   rC   r2   r^   r{   r	   r   re   )rj   rU   Zgrouped2rZ   r   r   rÕ   r%  r   r   r   Ú!test_as_index_series_return_frameý  s*    ( $r1  c              	   C   s>   | j ddd�}d}tjt|d�� |d  d¡ W 5 Q R X d S )Nr   Fr�   zColumn\(s\) C already selectedr6   r†   ré   )rH   rQ   rR   Ú
IndexErrorÚ__getitem__)rj   rU   rZ   r   r   r   Ú(test_as_index_series_column_slice_raises  s    r4  c              	   C   sô   | }|j ddd�}d}tjt|d�� | ¡ }|  dg¡ ¡ }W 5 Q R X | 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�   rí   r6   r   r   r/   )rH   rK   ry   rz   r?   Úinsertr'   rC   rD   rI   re   r¹   ÚziprÄ   )rj   rT   rU   rZ   r   r   Zarraysr   r   r   Útest_groupby_as_index_cython"  s"    r7  c                 C   sN   | j ddgdd�}|d  t¡}| t¡jd d …dddgf }t ||¡ d S )Nr   r   Fr�   r†   )rH   rM   rI   r^   rK   re   ©rj   rU   r   r   r   r   r   Ú#test_groupby_as_index_series_scalar;  s    r9  c              	   C   sf   d}t jt|d�� |jdd„ dd� W 5 Q R X d}t jt|d�� | jdd„ dd	d
� W 5 Q R X d S )Nz(as_index=False only valid with DataFramer6   c                 S   s   |   ¡ S r0   r×   r)   r   r   r   r+   H  r,   z.test_groupby_as_index_corner.<locals>.<lambda>Fr�   z$as_index=False only valid for axis=0c                 S   s   |   ¡ S r0   )Úlowerr)   r   r   r   r+   L  r,   r/   )rž   r•   )rQ   rR   Ú	TypeErrorrH   Ú
ValueError)rj   r¡   rZ   r   r   r   Útest_groupby_as_index_cornerE  s    r=  c                  C   s²   t  ¡ } |  dd„ dd„ dd„ g¡}| ¡ }t  | j|j¡ | jjdd„ dd„ dd„ gdd	�}| d
d„ ¡}t  |j	| j
¡ t  | jj|j¡ | dd„ ¡}t  | jj|j¡ d S )Nc                 S   s   | j S r0   r«   r)   r   r   r   r+   Q  r,   z+test_groupby_multiple_key.<locals>.<lambda>c                 S   s   | j S r0   rš   r)   r   r   r   r+   Q  r,   c                 S   s   | j S r0   r­   r)   r   r   r   r+   Q  r,   c                 S   s   | j S r0   r«   r)   r   r   r   r+   V  r,   c                 S   s   | j S r0   rš   r)   r   r   r   r+   V  r,   c                 S   s   | j S r0   r­   r)   r   r   r   r+   V  r,   r/   r”   c                 S   s   |   ¡ S r0   r1   r)   r   r   r   r+   Y  r,   c                 S   s   |   ¡ S r0   r1   r)   r   r   r   r+   ]  r,   )rK   rµ   rH   r2   Zassert_almost_equalrÄ   r§   rM   Úassert_index_equalr'   rx   )rj   rU   rX   r   r   r   Útest_groupby_multiple_keyO  s     ÿr?  c                 C   sP   |   ¡ } tj| d< |  ddg¡ ¡ }|  ddg¡ ¡ }tj|d< t ||¡ d S )NÚbadr   r   )rf   rC   r�   rH   r?   rK   re   )rj   rX   r   r   r   r   Útest_groupby_multi_cornera  s    

rA  c              	   C   sø   |   d¡}d}tjt|d�� | tj¡}| ¡ }W 5 Q R X t ||¡ | jd d …dddgf } t	 
¡ | d< |   d¡}tjt|d�� | tj¡}| ¡ }W 5 Q R X t ||¡ | j ddddd	œdd
�}d}tjt|d�� | dd„ ¡ W 5 Q R X d S )Nr   rí   r6   r†   ré   r  r   r/   )r   r†   ré   r  r”   z does not support reduction 'sum'c                 S   s   | j ddd�S )Nr   Fr  r1   r)   r   r   r   r+   �  r,   z$test_omit_nuisance.<locals>.<lambda>)rH   rK   ry   rz   rM   rC   r?   re   r^   r   Únowr2   rQ   rR   r;  )rj   rU   rZ   rX   r  r   r   r   r   r   Útest_omit_nuisancem  s"    

rC  Ú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   )rH   rÝ   rf   r^   rK   re   )rj   rD  rU   r   r   r   r   r   Útest_keep_nuisance_agg„  s    
$$rF  r2   r?   ÚprodrP   ÚvarÚsemÚmedianr  c           
   	   C   sn  |t jks|s|dkrt}nd }|  d¡}|dkrv|dkrv|dkrFtnt}tj|dd�� t||ƒ|d� W 5 Q R X nô|t jkrŒd	|› �}nd
}t	j
||d�� t||ƒ|d�}W 5 Q R X |t jksÈ|sÞ|dkrÞddddg}n
dddg}|dkrþ|dkrþd }n|dk�r|dk	�rt}nd }d}t	j
||d��* t| jd d …|f  d¡|ƒ|d�}	W 5 Q R X t	 ||	¡ d S )Nr2   r   )rH  rP   rI  FrH  z!could not convert string to floatr6   r  z6The default value of numeric_only in DataFrameGroupBy.úDropping invalid columns)r?   rG  rJ  r   r†   ré   )r2   rP   rH  rI  Trí   )r   Ú
no_defaultrz   rH   r;  r<  rQ   rR   rÝ   rK   ry   r^   re   )
rj   rD  r  r/  rU   ÚklassrZ   r   rx   r   r   r   r   Útest_omit_nuisance_agg’  sB    

ÿÿÿý
ÿrN  c              	   C   s^   t jtdd��F |  d¡}| ¡ }| jd d …dddgf  d¡ ¡ }t  ||¡ W 5 Q R X d S )NÚalways)Zfilter_levelr   r†   ré   )rK   ry   rz   rH   Úskewr^   re   r8  r   r   r   Útest_omit_nuisance_warningsÇ  s
    
"rQ  c              	   C   sP   |   ddg¡}d}tjt|d�� | tj¡}| ¡ }W 5 Q R X t ||¡ d S )Nr   r   rí   r6   )rH   rK   ry   rz   rM   rC   r?   re   )Zthree_grouprU   rZ   rX   r  r   r   r   Ú"test_omit_nuisance_python_multipleÐ  s    rR  c              
   C   sò   t t ddddddg¡t ddddddg¡ddgd tj d¡tj d¡d	œƒ}| d
dg¡}d}tjt|d�� | 	tj
¡}| 
¡ }W 5 Q R X t ||¡ | dd… jdd�}| dd„ ¡}|d  tj
¡}t |d |¡ |jjdksît‚d S )Nr´   r³   rò   ró   r¼   r½   r%   rñ   )rö   r÷   Zk3rô   rõ   rö   r÷   rí   r6   rÒ   r   ©r   c                 S   s   |   ¡ S r0   rq   r)   r   r   r   r+   î  r,   z*test_empty_groups_corner.<locals>.<lambda>r   rŽ   )r	   rC   rþ   rE   rý   rH   rK   ry   rz   rM   r?   re   rN   rL   r'   r>   r   )ri   rj   rU   rZ   r   r   rX   Zagged_Ar   r   r   Útest_empty_groups_cornerÚ  s&    


ûÿ
rT  c               	   C   s:   t dgƒ} d}tjt|d�� |  dd„ ¡ W 5 Q R X d S )Nr   z5unsupported operand type\(s\) for \+: 'int' and 'str'r6   c                 S   s   | d S )Nr¼   r   r)   r   r   r   r+   ø  r,   z$test_nonsense_func.<locals>.<lambda>)r	   rQ   rR   r;  rH   )rj   rZ   r   r   r   Útest_nonsense_funcô  s    
rU  c              	   C   sÀ   | j }d|d< t dddg¡t dddg¡g}d}tjt|d�� | |¡ tj¡}W 5 Q R X t	|j
tƒsnt‚dd„ }tjtd	d�� | |¡ |¡}W 5 Q R X t|j
ƒd t|j
ƒks¼t‚d S )
NZpeekaboo)Úbazr9   r   r/   rí   r6   c                 S   s   | j dkrt‚n|  ¡ S d S )N)r¼   r8   )r>   r;  r2   )Úserr   r   r   Úaggfun  s    
z5test_wrap_aggregated_output_multindex.<locals>.aggfunrK  )r§   rC   rþ   rK   ry   rz   rH   rM   r?   r{   rx   r   r   rJ   rI   )ri   rj   r  rZ   rX   rX  Zagged2r   r   r   Ú%test_wrap_aggregated_output_multindexû  s     rY  c                 C   sh   | j dd� ¡ }|jjdks t‚| j dd� ¡ }|jjdks@t‚| d j dd� ¡ }|jjdksdt‚d S )Nr   rS  rŽ   r/   Úsecondr   )rH   r|   r'   r>   r   )ri   r   r   r   r   Útest_groupby_level_apply  s    r[  c                    sÆ   |   ¡ }dddddœ‰ ddddœ‰| jˆ dd� ¡ }| jˆdd� ¡ }t ‡ fdd„|d D ƒ¡}t ‡fd	d„|d
 D ƒ¡}|  |¡ ¡ }|  |¡ ¡ }d\|j_|j_t ||¡ t ||¡ d S )Nr   r/   )r¼   r½   rV  Úqux)r8   r9   rø   rS  c                    s   g | ]}ˆ   |¡‘qS r   ©rü   r¯   )Úmapper0r   r   r¸   $  s     z-test_groupby_level_mapper.<locals>.<listcomp>rŽ   c                    s   g | ]}ˆ   |¡‘qS r   r]  r¯   )Úmapper1r   r   r¸   %  s     rZ  )rŽ   rZ  )	r$  rH   r2   rC   rþ   r'   r>   rK   re   )ri   Z	deleveledZresult0rÔ   Zmapped_level0Zmapped_level1Z	expected0Z	expected1r   )r^  r_  r   Útest_groupby_level_mapper  s    r`  c                  C   sÌ  t ddddddddgtddddddddgd	d
�ƒ} t ddddddg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 5 Q R X tjt	|d�� | jdd� W 5 Q R X d}tjt	|d�� | jg d� W 5 Q R X d}tjt	|d�� | jddgd� W 5 Q R X tjt	|d�� | jddgd� W 5 Q R X d}tjt	|d�� | jdgd� W 5 Q R X d S )Nr/   r=   r%   r:   r¿   rÒ   r;   rñ   r¼   r  r  é   r3   r   rS  éÿÿÿÿz2level > 0 or level < -1 only valid with MultiIndexr6   éþÿÿÿzNo group keys passed!z*multiple levels only valid with MultiIndex)
r   r   rg   rH   r2   rK   rL   rQ   rR   r<  )Úsr   r   rZ   r   r   r   Útest_groupby_level_nonmulti.  s4    2$re  c               	   C   st   t t d¡d ddddgd�} t dƒ}| jdd� ¡ }t ||¡ t t¡� | jdd�}W 5 Q R X t ||¡ d S )Nr¿   ù      ð?       @r   r/   ©rT   r'   )rf  y      @      $@rS  )	r   rC   rD   rH   r2   rK   rL   ry   rz   )r³   r   r   r   r   r   Útest_groupby_complexN  s    rh  c                  C   s¬   t dddœdddœdddœgƒ} t tjdddgtjd�tdddgdd	�td
gdd�d�}| jddd� ¡ }t ||¡ tdddgdd	�|_	| jddd� ¡ }t ||¡ d S )Nr/   y      ð?      ð?r²   rf  r¿   r‚   y      ð?        r´   r  r³   Úobject©r'   rx   F©ÚsortT)
r	   rC   rþ   r"   r   rH   r|   rK   re   r'   ©rj   r   r   r   r   r   Útest_groupby_complex_numbers[  s     ýÿýrn  c               
   C   sŽ   t dddddddgtdd	d
ddddgƒd�} t ddddddgtdd	ddddgƒd�}|  |¡}| ¡ }|  | | j¡j¡ ¡ }t ||¡ d S )Nç      @g      "ÀrÁ   g      Y@g      Àg     €K@gÍÌÌÌÌÌ@r³   r´   rÇ   Údr’   r‹   r£   r¾   r·   g      @Úh)	r   r   rH   r?   rG   r'   rü   rK   rL   )Ús1Ús2rU   rX   r  r   r   r   Ú'test_groupby_series_indexed_differentlyr  s    þ ÿ
rt  c                  C   sˆ  t tddddddddgddddddddggŽ ƒ} t | ¡}t ddd	d
g¡}ttj dd¡||d�}|jdd� 	¡ }t
 |j|¡ |jddd� 	¡ }t
 |j|j¡ |jdd� tj	¡}t
 |j|¡ |jdd� dd„ ¡}t
 |j|¡ |jddd� dd„ ¡}t
 |jtddgƒ¡ t
 |j|j¡ | d¡\}}d|d< d}t
jt|d�� |jdd� 	¡ }W 5 Q R X t
 |j|jd d… ¡ d S )Nr½   rV  r¼   r\  r8   r9   )r   Úcat)r   Údog)r   ru  )r   rv  é   r¿   rj  r   rS  r/   )r   r•   c                 S   s   |   ¡ S r0   rq   r)   r   r   r   r+   ™  r,   z0test_groupby_with_hier_columns.<locals>.<lambda>c                 S   s
   |   d¡S )Nr/   rq   r)   r   r   r   r+   œ  r,   r   r   )r   r¼   rí   r6   rb  )r¹   r6  r   r  r	   rC   rE   rý   rH   r?   rK   r>  rx   r'   rM   rN   r   Z	sortlevelry   rz   )Ztuplesr'   rx   rj   r   Zsorted_columnsÚ_rZ   r   r   r   Útest_groupby_with_hier_columns�  s:    þÿÿ

ÿry  c              	   C   sX   |   | d j¡}d}tjt|d�� | ¡ }|   d¡ ¡ }W 5 Q R X tj||dd� d S )Nr   rí   r6   FrŸ   )rH   rÄ   rK   ry   rz   r2   re   )rj   rU   rZ   r   r   r   r   r   Útest_grouping_ndarray©  s      ÿrz  c               
   C   s–   t dddddgdd�} tddd	dd
gdddddgdddddgdddddgdddddgdœ| d�}| ddddg¡}| tj¡}| ¡ }t ||¡ d S )Nr   r/   r=   r%   r¿   r'   r  Zfoo1Zfoo2Zfoo3Zbar1Zbar2Zbaz1Zbaz2Zspam2Zspam3Zspam1r;   r<   é(   r  é<   )r¼   r½   rV  ÚspamrT   r¾   r¼   r½   rV  r}  )r   r	   rH   rM   rC   r?   rK   re   )r'   rT   rU   r   r   r   r   r   Útest_groupby_wrong_multi_labelsµ  s    ûør~  c              	   C   sÆ   d}t jt|d��. |  | d ¡ ¡ }| j| d dd� ¡ }W 5 Q R X |jjdksVt‚d|ksbt‚|  | d | d g¡ ¡ }| j| d | d gdd� ¡ }|jjdksªt‚d|ks¶t‚d|ksÂt‚d S )Nrí   r6   r   Fr�   r   ©r   r   )	rK   ry   rz   rH   r?   r'   r>   r   rÉ   )rj   rZ   r   rÕ   r   r   r   Útest_groupby_series_with_nameÊ  s     r€  c                 C   sR   |   d¡d }| ¡ jdks t‚| ¡ jdks2t‚dd„ }| |¡jdksNt‚d S )Nr   r†   c                 S   s   t  | ¡d S rB   )rC   r2   r)   r   r   r   r+   ß  r,   z.test_seriesgroupby_name_attr.<locals>.<lambda>)rH   r|   r>   r   r?   rM   )rj   r   ZtestFuncr   r   r   Útest_seriesgroupby_name_attrÙ  s
    r�  c               
   C   sx   t ddddddddgddddddddgtj d¡d t d¡dœƒ} |  dg¡j ¡ }| j | j¡ ¡ }t	 
||¡ d S )	Nr¼   r½   r8   r9   rw  r·   rè   r   )r	   rC   rE   rý   rD   rH   r   r|   r   rK   rL   rm  r   r   r   Útest_consistency_nameã  s    üÿ	r‚  c                 C   sx   ddd„}dd„ }|   d¡ |¡}|jjd ks2t‚|   d¡ |d¡}|jjdksTt‚|   d¡ |¡}|jjd kstt‚d S )Nc                 S   s   t ddddœ|d�S )Nr/   r=   r%   ©r|   r?   Z	omissionsr  )r   )rj   r>   r   r   r   Ú	summarizeö  s    z0test_groupby_name_propagation.<locals>.summarizec                 S   s   t ddddœ| jd d d�S )Nr/   r=   r%   rƒ  r   r   r  )r   rˆ   ©rj   r   r   r   Úsummarize_random_nameù  s    z<test_groupby_name_propagation.<locals>.summarize_random_namer   Úmetrics)N)rH   rN   rx   r>   r   )rj   r„  r†  r‡  r   r   r   Útest_groupby_name_propagationô  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:   )rC   rD   r¯   r   r   r   r¸     s     z2test_groupby_nonstring_columns.<locals>.<listcomp>r:   r   )r	   rg   rH   r?   rK   re   r8  r   r   r   Útest_groupby_nonstring_columns  s
    
r‰  c                  C   st   t dddggdddgd�} t ddggddgtdgdd�d�}|  d¡ ¡ }t ||¡ |  d¡ ¡ }t ||¡ d S )	Nr   r/   r=   r   r   rw   r  rÊ   )r	   r   rH   rŽ   rK   re   r2   rm  r   r   r   Útest_groupby_mixed_type_columns  s    "rŠ  zignore:Mean of:RuntimeWarningc                  C   s`   t  d¡} |  t j¡ t| d d …df ƒ}t  tdƒd¡}| |¡ tj	¡}| 
¡  ¡ s\t‚d S )N)r  r  r   r:   )rC   rË   Úfillr�   r   Ztilerg   rH   rM   rJ  Zisnarä   r   )ÚarrÚobjZindsr   r   r   r   Ú(test_cython_grouper_series_bug_noncontig  s    
rŽ  c                  C   s^   t t dd¡ƒ} ttj d¡| d d d… d�}tj ddd¡}| |¡}dd	„ }| 	|¡ d S )
Nr:   r  r  r=   r¾   r   rÒ   c                 S   s   t ttt| jƒƒƒS r0   )rI   ÚsetÚmapÚidr'   r)   r   r   r   r+   1  r,   z5test_series_grouper_noncontig_index.<locals>.<lambda>)
r   rK   Zrands_arrayr   rC   rE   rý   r"  rH   rM   )r'   rÄ   rÅ   rU   r‹   r   r   r   Ú#test_series_grouper_noncontig_index'  s    
r’  c                  C   sš   t tdƒƒ} tjdddddgdd�}d	d
„ }dd„ }|  |¡}| |¡}|jtjksXt‚t	|d t
ƒsjt‚| |¡}|jtjks„t‚t	|d t
ƒs–t‚d S )NrÒ   r³   r´   rÇ   rp  r’   r\   r‚   c                 S   s   t t|  ¡ ƒƒS r0   )r   Ústrr?   r)   r   r   r   Úconvert_fast:  s    z>test_convert_objects_leave_decimal_alone.<locals>.convert_fastc                 S   s$   t | jjƒdkst‚tt|  ¡ ƒƒS r‡   )rI   rÄ   Úbaser   r   r“  r?   r)   r   r   r   Úconvert_force_pure=  s    zDtest_convert_objects_leave_decimal_alone.<locals>.convert_force_purer   )r   rg   rC   rþ   rH   rM   r!   Zobject_r   r{   r   )rd  rÅ   r”  r–  rU   r   r   r   r   Ú(test_convert_objects_leave_decimal_alone5  s    


r—  c                  C   st   t g tjddd�dœƒ} | d jtjks,t‚|  d¡ ¡ }tg dtjd�}t dt	g |dd�iƒ}t
j||d	d
� d S )Nr   r"   r‚   )r*   rg   r*   ©r>   r!   rg   r&   T)Z	by_blocks)r	   rC   rD   r!   r#   r   rH   rŽ   r   r   rK   re   )rj   r   Z	exp_indexr   r   r   r   Ú"test_groupby_dtype_inference_emptyM  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 )	Nr/   l    4;PUÑ  )rŽ   rZ  r]   rŽ   rZ  r]   r	  r  )r	   rH   r  r   r   Úfrom_productrK   rL   r  r   r   r   Ú$test_groupby_unit64_float_conversionX  s    ýr›  c              	   C   sà   d}t jt|d��. |  t| d ƒ¡ ¡ }|  | d ¡ ¡ }W 5 Q R X t j||dd� tjt	dd��  |  t| d d d… ƒ¡ W 5 Q R X t
dd	gd
dgtj d¡dœƒ} |  ddg¡ ¡ }|  | d | d g¡ ¡ dg }d S )Nrí   r6   r   FrŸ   z^'foo'$rb  r   r/   r%   r¿   r=   )r¼   r½   Úvalr¼   r½   rœ  )rK   ry   rz   rH   r¹   r?   re   rQ   rR   ÚKeyErrorr	   rC   rE   rý   )rj   rZ   r   r   r   r   r   Ú"test_groupby_list_infer_array_liked  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 )Nrd  z2015-09-29T11:34:44-0700r=   )Ústartr„   Úfreqr   r:   r   é   ZmetricrÄ   rÊ   r   )r   r   )r   r   r	   rH   r
   r?   rÌ   r'   rd   rÀ   rK   re   )r   r'   rj   r   r   r   r   r   Ú$test_groupby_keys_same_size_as_indexu  s      ÿr¢  c               	   C   s„   d} t tj dd¡tdƒd�}tjt| d�� | d¡ W 5 Q R X t tj dd¡tdƒd�}tjt| d�� | d¡ W 5 Q R X d S )	Nz^'Z'$r/   r¿   ZABCDrw   r6   ÚZr=   )	r	   rC   rE   rý   r¹   rQ   rR   r�  rH   )rZ   r}   r~   r   r   r   Útest_groupby_one_row‚  s    r¤  c                  C   s„  t tj d¡tjtdƒtjtdƒtjtdƒtjtdƒgtjdtjdtjdtjdgdœƒ} |  d¡}tdd	gƒtd
dgƒg}t|j	 
¡ ƒ}t|ƒdks˜t‚t||ƒD ]\}}t |j	| |¡ q¢t |jjd j| ¡ |jdksât‚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 5 Q R X t tjtjtjgtjtjtjgdœƒ}|d j dk�sÚt‚|d j dk�sît‚dD ]Œ}| |¡}|j	i k�st‚|jdk�s t‚|ji k�s0t‚tjtdd�� | tj¡ W 5 Q R X tjtdd�� | tj¡ W 5 Q R X �qòd S )Nrw  z
2013-01-01z
2013-02-01r³   r´   )rÄ   Údtr“  r¥  r/   r3   r%   rÒ   r=   r   z2013-01-01 00:00:00r‚   z2013-02-01 00:00:00z^NaT$r6   )r�   Únatr�   r#   r¦  zdatetime64[ns]z^nan$)!r	   rC   rE   rý   r�   r   rH   r   Úsortedrà   r  rI   r   r6  rK   r>  re   Úgrouperrº   r�  Zngroupsrþ   Zintprá   Úassert_numpy_array_equalr  rˆ   rQ   rR   r�  r�   r‘   r!   )rj   rU   r   r  rV   r’   Znan_dfr   r   r   r   Útest_groupby_nat_exclude�  s^    
ø
ôÿ
  þ
   ÿ
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@t‚d S )Nr/   r=   rÓ   r³   r´   )r	   rC   r�   rH   rá   r   ©rj   r   r   r   r   Ú#test_groupby_two_group_keys_all_nanÌ  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}tjt|d�� |  dg¡ ¡ }W 5 Q R X t ddgddgg¡}t 	|j
tdd	gƒ¡ t |j|¡ d S )Nr=   r¾   Úg1Úg2ra   r   Zzerosr/   rÃ   Úl1Úl2Úlabelrí   r6   ç        r·   )r	   rg   rK   ry   rz   rH   r?   rC   rþ   r>  rx   r   r©  rÄ   )rp  rZ   ÚtmpZ
res_valuesr   r   r   Útest_groupby_2d_malformedÓ  s    r´  c                  C   sŒ   t  t  d¡t  d¡t  d¡f¡} t  d¡}t|| || t j d¡dœƒ}| ddddg¡ ¡ }| ddddg¡ ¡ }t|ƒt|ƒksˆt	‚d S )	Ni'  iˆ  i¨a  )r   r   r†   ré   r  r   r   r†   ré   )
rC   ZconcatenaterD   r	   rE   rý   rH   r2   rI   r   )r   r   rj   r  r(  r   r   r   Útest_int32_overflowá  s    "
rµ  c                  C   s”  t dddgdddgdddgtj d¡dœƒ} d	d
„ | dddg jD ƒ}t |¡}| jdddgdd� ¡ }t	 
|jj|dddg ¡ dd
„ | dddg jD ƒ}t |¡}| jdddgdd� ¡ }t	 
|jj|¡ dd
„ | dddg jD ƒ}t |¡}| jdddgdd� ¡ }t	 
|jj|dddg ¡ t ddddddgddddddgtj d¡dœƒ} |  ddg¡d }| ¡ }dd„ fdd„}|| |ddgdƒ d S )Nr¼   r½   rV  r%   r=   r/   r   )r³   r´   rÇ   rp  c                 S   s   g | ]}t |ƒ‘qS r   ©Útuple©r°   Úrowr   r   r   r¸   õ  s     z+test_groupby_sort_multi.<locals>.<listcomp>r³   r´   rÇ   Trk  c                 S   s   g | ]}t |ƒ‘qS r   r¶  r¸  r   r   r   r¸   ú  s     c                 S   s   g | ]}t |ƒ‘qS r   r¶  r¯   r   r   r   r¸   ÿ  s     rñ   )r³   r´   rp  rp  c                 S   s   |   ¡ S r0   r1   r)   r   r   r   r+   
  r,   z)test_groupby_sort_multi.<locals>.<lambda>c           	      S   sV   dd„ | | j D ƒ}t |¡}||  |¡| ƒ}| ¡ D ]\}}|| |ks8t‚q8d S )Nc                 S   s   g | ]}t |ƒ‘qS r   r¶  r¸  r   r   r   r¸     s     zCtest_groupby_sort_multi.<locals>._check_groupby.<locals>.<listcomp>)rÄ   ÚcomÚasarray_tuplesaferH   râ   r   )	rj   r   r  Úfieldr‹   Útupsr   rV   rW   r   r   r   Ú_check_groupby
  s
    
z/test_groupby_sort_multi.<locals>._check_groupby)r	   rC   rE   rý   rÄ   rº  r»  rH   r2   rK   r©  r'   )rj   r½  r   rU   r¾  r   r   r   Útest_groupby_sort_multië  s4    
üÿ	


*ÿr¿  c                  C   sL   t ddddddgdddgd dœƒ} | jdd	d
� dd„ ¡}t || ¡ d S )Nr³   r´   r¼   r½   rV  r=   )r   r>   r   Fr-   c                 S   s   | S r0   r   r)   r   r   r   r+     r,   z/test_dont_clobber_name_column.<locals>.<lambda>)r	   rH   rN   rK   re   r«  r   r   r   Útest_dont_clobber_name_column  s
    ÿrÀ  c                  C   s˜   t  ¡ } | 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 )Nc                 S   s   | j S r0   rš   r)   r   r   r   r+   !  r,   z&test_skip_group_keys.<locals>.<lambda>Fr-   c                 S   s   | j dd�d d… S )Nr   ©r  r%   ©Úsort_valuesr)   r   r   r   r+   "  r,   c                 S   s$   g | ]\}}|j d d�dd… ‘qS )r   rÁ  Nr%   rÂ  ©r°   r   ra   r   r   r   r¸   $  s     z(test_skip_group_keys.<locals>.<listcomp>r   c                 S   s   | j S r0   rš   r)   r   r   r   r+   )  r,   c                 S   s   |   ¡ d d… S r(   rÂ  r)   r   r   r   r+   *  r,   c                 S   s    g | ]\}}|  ¡ d d… ‘qS r(   rÂ  rÄ  r   r   r   r¸   ,  s     )rK   rµ   rH   rN   r�   r  re   rL   )ZtsfrU   r   Úpiecesr   r   r   r   Útest_skip_group_keys  s    

rÆ  c                 C   s:   | d   ¡ }d |_| | d ¡ tj¡}|jd ks6t‚d S )Nr†   r   )rf   r>   rH   rM   rC   r2   r   )Zfloat_framerd  r   r   r   r   Útest_no_nonsense_name2  s    rÇ  c                  C   s^   t t d¡ dd¡ƒ} d| d< dddg| d< |  d¡}| d	d
dœ¡}|d jtjksZt‚d S )Nr$   r%   r   ÚtestgÍÌÌÌÌÌô?g      ø?gš™™™™™ù?Úflr2   r,  )rÉ  r=   )	r	   rC   rD   ÚreshaperH   rM   r!   r#   r   )r*   rU   r   r   r   r   Útest_multifunc_sum_bug;  s    
rË  c                 C   sV   dd„ }dd„ }|   d¡d  |¡}|   d¡d  |¡}t|tƒsFt‚t ||¡ d S )Nc                 S   s   |   ¡ |  ¡ dœS ©N©r  rE  rÍ  r`   r   r   r   r‹   G  s    z(test_handle_dict_return_value.<locals>.fc                 S   s   t |  ¡ |  ¡ dœƒS rÌ  )r   r  rE  r`   r   r   r   r£   J  s    z(test_handle_dict_return_value.<locals>.gr   r†   )rH   rN   r{   r   r   rK   rL   )rj   r‹   r£   r   r   r   r   r   Útest_handle_dict_return_valueF  s    rÎ  r¨  r   r   c                    s˜   dd„ }dd„ ‰ ‡ fdd„}| j |dd�}| |¡ | ˆ ¡ | ˆ ˆ d	œ¡ | |¡ |d
  |¡ |d
  ˆ ¡ |d
  ˆ |g¡ |d
  |¡ d S )Nc                 S   s   | j d k	st‚| S r0   )r>   r   r`   r   r   r   r‹   V  s    ztest_set_group_name.<locals>.fc                 S   s   | j d k	st‚|  ¡ S r0   )r>   r   r2   r`   r   r   r   ÚfreduceZ  s    z$test_set_group_name.<locals>.freducec                    s   ˆ | ƒS r0   r   r)   ©rÏ  r   r   r¼   ^  s    z test_set_group_name.<locals>.fooFr-   rî   r†   )rH   rN   rJ   rO   )rj   r¨  r‹   r¼   rU   r   rÐ  r   Útest_set_group_nameT  s    


rÑ  c                     s`   t ddddddgt d¡dœƒ} g ‰ ‡ fdd„}| jdd	d	d
� |¡ dddg}ˆ |ks\t‚d S )Nr   r/   r=   rñ   r²   c                    s   ˆ   | j¡ |  ¡ S r0   )r
  r>   rf   r`   r	  r   r   r‹   u  s    z6test_group_name_available_in_inference_pass.<locals>.fr³   F)rl  r.   )r	   rC   rD   rH   rN   r   )rj   r‹   Zexpected_namesr   r	  r   Ú+test_group_name_available_in_inference_passo  s     
rÒ  c              	   C   sŽ   d}t jt|d�� |  | d j¡ ¡ }W 5 Q R X |jjd ksBt‚t jt|d��$ |  | d j| d jg¡ ¡ }W 5 Q R X |jj	dksŠt‚d S )Nrí   r6   r   r   )NN)
rK   ry   rz   rH   rÄ   r2   r'   r>   r   rÉ   )rj   rZ   r   r   r   r   Útest_no_dummy_key_names  s    (rÓ  c               	   C   sÞ   t ddgddggddddddgddddddggddgd�} tdddddd	g| d
�}t ddgddggdddgdddggddgd�} tdddg| d
�}|jddgdd� ¡ }t ||¡ |jddgdd� ¡ }t || ¡ ¡ d S )Nr/   r=   r   r³   r´   rÈ   r%   r¿   rÒ   r¾   F©r   rl  T)r   r   rH   rŽ   rK   rL   Ú
sort_index)r'   ZmseriesZmseries_resultr   r   r   r   Ú#test_groupby_sort_multiindex_series‹  s     ý  ÿrÖ  c                  C   s‚   d} t dd| d�}tt | ¡t | ¡dœ|d�}ddd	„}| d
d„ ¡}| d|tjƒi¡}| d|tjdƒi¡}t ||¡ d S )Niè  z2012/1/1Z5min)rŸ  r   r„   )ÚhighÚlowr¾   Fc                    s   ‡ ‡fdd„}|S )z>
        Run an aggregate func on the subset of data.
        c                    sD   | j | j dd„ ¡  ¡ }ˆ r,| | jd   t|ƒdkr<d S ˆ|ƒS )Nc                 S   s
   | j dk S )Nr  )Úhourr)   r   r   r   r+   ¬  r,   zYtest_groupby_reindex_inside_function.<locals>.agg_before.<locals>._func.<locals>.<lambda>r   )r^   r'   r�  ÚdropnarI   )rT   rp  ©Úfixrs   r   r   Ú_func«  s    zGtest_groupby_reindex_inside_function.<locals>.agg_before.<locals>._funcr   )rs   rÜ  rÝ  r   rÛ  r   Ú
agg_before¦  s    z8test_groupby_reindex_inside_function.<locals>.agg_beforec                 S   s   t | j| j| jƒS r0   )r   r¬   r›   r®   r)   r   r   r   r+   µ  r,   z6test_groupby_reindex_inside_function.<locals>.<lambda>r×  T)F)	r   r	   rC   rD   rH   rM   r  rK   re   )r„   Úindrj   rÞ  rU   Zclosure_badZclosure_goodr   r   r   Ú$test_groupby_reindex_inside_function   s    
rà  c                  C   s–   t ddddgddddgddddgdœƒ} |  dd	g¡} | jdd	gd
d�}| d¡}tjdddgdd	gd�}t dgdgdgg|dgd�}t ||¡ d S )Nr³   r´   rÇ   rp  r/   rÒ   )Úgroup1Úgroup2r]   rá  râ  TrÔ  r2   )r³   rÇ   )r³   rp  ©r´   rÇ   r	  r=   r]   rj  )r	   rÌ   rH   rM   r   r  rK   re   )rj   r¤   r©   ræ   r  r   r   r   Ú$test_groupby_multiindex_missing_pair¼  s    


ýÿ
 ÿrä  c               	   C   s–  t jdddgddgd�} tddd	gg| d
�}|j ¡ s:t‚tddddgddddgdddd	ggd�}|jdddgdd�}| ¡ }|j ¡ rŒt‚t 	||¡ | 
d¡ ¡ }t t¡� | 
d¡ ¡ }W 5 Q R X t 	||¡ tddddgddddgdddd	gdœƒ ddg¡}|j ¡ �rt‚ddddgfD ]j}dD ]^}|j
||dd� tj¡}|}t 	||¡ | ¡ j
||dd� tj¡}| ¡ }t 	||¡ �q.�q&d S )N)r³   Ú )Úb1Úc1)Úb2Úc2r´   rÇ   r	  r/   r%   r¿   rw   r³   rp  ræ  rç  rè  ré  )rx   rT   )r'   rx   rÄ   r=   ©r*   rÎ   Úzr*   rÎ   r   )FTF)r   rl  r.   )r   r  r	   rx   Z_is_lexsortedr   Úpivot_tabler$  rK   re   rH   r?   ry   r   rÌ   r'   rN   Zdrop_duplicatesrÕ  )Zlexsorted_miZlexsorted_dfZnot_lexsorted_dfr   r   rj   r   rl  r   r   r   Ú%test_groupby_multiindex_not_lexsortedÑ  sZ     ÿ
 ÿ  ÿ"ÿþÿ  ÿþÿrí  c                  C   s  t tdƒdddddgd�} |  tdƒ¡}| dd„ ¡}| jdd	d
g }t ||¡ | d }| tdƒ¡}| dd„ ¡}| dd	d
g¡}t ||¡ | j	 
t¡| _	|  tdƒ¡}| dd„ ¡}| jdd	d
g }t ||¡ | d }| tdƒ¡}| dd„ ¡}| dd	d
g¡}t ||¡ d S )NZABCDEr=   r   r/   r¾   Zababbc                 S   s   t | ƒdkS rB   ©rI   r)   r   r   r   r+   
  r,   z4test_index_label_overlaps_location.<locals>.<lambda>r%   r¿   c                 S   s   t | ƒdkS rB   rî  r)   r   r   r   r+     r,   c                 S   s   t | ƒdkS rB   rî  r)   r   r   r   r+     r,   c                 S   s   t | ƒdkS rB   rî  r)   r   r   r   r+     r,   )r	   r¹   rH   Úfilterrˆ   rK   re   rã   rL   r'   rd   rÀ   )rj   r£   Úactualr   rW  r   r   r   Ú"test_index_label_overlaps_location  s(    rñ  c                  C   s‚   d} t  | ¡}t|d d| d| dœƒ}t|d d d| d| dœƒ}| d¡}| d¡}| d¡}| d¡}t ||¡ d S )	Nrñ   r=   rÂ   ç      @rÓ   r·   r³   r?   )rC   rD   r	   rH   rO   rK   re   )Únr*   rj   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 ddddddddgddddddddgddd	d
ddddgdddddddd
gddddddddgdœƒ}|jˆ d�}| |¡}‡ fdd„}| |¡ d S )Nr%   r/   r   rë  r³   r£   rw  r3   r¿   rÒ   r=   r$   gffffff@g333333@gÍÌÌÌÌÌ@g333333Àgš™™™™™@gš™™™™™ñ?rp  r’   ÚwordZword2Z42Z47)rû  rü  r÷  rø  rù  rÁ  c                    s   t  | | jˆ d�¡ d S )NrÁ  )rK   re   rÃ  r)   ©rö  r   r   Ú	test_sortK  s    z.test_groupby_preserves_sort.<locals>.test_sort)r	   rÃ  rH   rN   )rö  rú  rj   r£   rÿ  r   rþ  r   Útest_groupby_preserves_sort1  s    ûÿ
r   c               	   C   s~   t tt ¡ ddd� ¡ tddƒdœƒ} |  d¡jj| d< |  d¡jj	| d< t
jtd	d
�� |  ¡ jddddd� W 5 Q R X d S )Nr;   ÚM)r„   r   r   )Ú	eventDateZthenamer  r¬   r›   z	'badname'r6   Zbadnamer|   )r'   rx   rÄ   Zaggfunc)r	   r   r   ÚtodayÚtolistrg   rÌ   r'   r¬   r›   rQ   rR   r�  r$  rì  r…  r   r   r   Ú!test_pivot_table_values_key_errorQ  s    þÿ   ÿr  rx   r†   r  rÄ   r²  r³   r/   z
US/Eastern©ÚtzÚInt64r‚   ZFloat64ÚbooleanÚboolÚintrÀ   r“  ru  Zdt64Zdt64tz)ZidsÚmethodr'  rM   rN   r_   Úidxminr+  rP  z-ignore:Dropping invalid columns:FutureWarningz(ignore:.*Select only valid:FutureWarningc              	      s  d }t |tƒrXt | tƒsXˆdkrX|rTˆdkrTd}d| }	tjjt|	d�}
|j |
¡ �nnt |tƒr–t	|ƒdkr–ˆdkr–tjjt
dd�}
|j |
¡ �n0t |tƒrÔt	|ƒdkrÔt | tƒsÔtjjtd	d�}
|j |
¡ nòt |tƒ�rt	|ƒdk�rˆd
k�rtjjtdd�}
|j |
¡ n°t |tƒ�rXt	|ƒdk�rXˆdk�rXtjjtdd�}
|j |
¡ nnˆdk�r¬t | tƒ�s¬t |tjƒ�r¬|jd k	�r¬|�r¬tjjtdd�}
|j |
¡ nt |tƒ�rÆˆd
k�rÆd}t |d tƒ�räˆdk�räd}t|||dœtdƒd�}t|dƒ�r|j|jk ¡ �st‚|jd d… }|j|dd�|  ‰ ‡ ‡‡fdd„}| dk�rˆdk�r¬|jd jdk�r¬ˆdk�r„d}	nd }	tjt|	d!�� |ƒ  W 5 Q R X d S ˆd"k�r¼t |tƒ�r¼ˆdk�rÒd#}	nˆdk�rêd$ˆ› d%�}	nd&}	tjt|	d!�� |ƒ  W 5 Q R X d S �n¦ˆdk�r|jd jdk�rV|ƒ }| |¡g  }t ||¡ d S t |tƒ�rÒ|ƒ }| |¡g  }t	|ƒdk�rÂˆd'k�rÂtdg|jd(�}tj||gd)d*gd+�}tg g |d,�}t ||¡ d S |jd tk�r|ƒ }| |¡g  }t ||¡ d S ˆd-k�r¼t |tƒ�r¼t	|ƒdk�r¼|ƒ }| |¡g  }t	|ƒdk�r~tdg|jd(�}tj||g|d+�}tg g |d,�}n.tdg|jd(�}t ||d d.�}tg g |d,�}t ||¡ d S |ƒ }| |¡|  }|d k	�rä| !|¡}t	|ƒdk�rþ|d |j"_#t ||¡ d S )/N)r2   rG  rP  r+  r+  z3Cannot interpret 'CategoricalDtype.* as a data typez1Regex pattern "'Categorical' does not implement.*)rR   r7   r/   )r_   r  z0attempt to get arg(min|max) of an empty sequencez 'Categorical' does not implement)r2   rG  z (DataFrame|Series) are differentr=   )rE  r  r2   z>Cannot interpret 'datetime64\[ns, US/Eastern\]' as a data typer  r   )rG  r2   r"   r…   ÚABCrw   r!   Fr-   c               
      sj   ˆdkrt nd } tj| ddd��@ ˆdkrBtˆ ˆƒƒ W  5 Q R £ S tˆ ˆƒˆƒW  5 Q R £ S W 5 Q R X d S )Nr+  r-  F)r7   Zraise_on_extra_warningsr'  )rz   rK   ry   rÝ   )r/  ©r¨   r  r  r   r   Ú
get_result×  s      ÿz&test_empty_groupby.<locals>.get_resultr†   )rG  r2   rP  r  rP  z!does not support reduction 'skew'z datetime64 type does not supportr6   )rG  r2   rP  r+  z!does not support reduction 'mean'zdoes not support reduction 'ú'zcategory type does not supportrG  r‚   r   r   r	  rÊ   )r+  rE  r  rP  r  )$r{   r   r¹   rQ   ÚmarkÚxfailr   ÚnodeÚ
add_markerrI   r<  r;  r�   ZDatetimeIndexr  r   r
  r	   Úhasattrrh   r!   rä   rˆ   rH   ÚkindrR   rÌ   rK   Úassert_equalr   rš  ri  r   rd   r'   r>   )rx   r  rÄ   r  r  ÚrequestZusing_array_managerZoverride_dtypeZ	right_msgrZ   r  rj   r  r   r   Zlevr  Úcir   r  r   Útest_empty_groupbyc  s   %ÿþýÿ
þý ÿÿ
þý ÿ$ ÿÿ
þý ÿÿþ
ýüûþ







ÿþ
ý

r  c                  C   sl   t tj dd¡ƒ} | d  tj¡| d< ddddg| _| j| d dd�}| dd	„ ¡}|j	| j	k 
¡ sht‚d S )
Nr   r¿   r%   r/   r=   Fr-   c                 S   s   | S r0   r   r)   r   r   r   r+   S  r,   z<test_empty_groupby_apply_nonunique_columns.<locals>.<lambda>)r	   rC   rE   rý   rd   r"   rx   rH   rN   rh   rä   r   )rj   r¨   r©   r   r   r   Ú*test_empty_groupby_apply_nonunique_columnsM  s    r  c               	   C   sœ   t ddddgddddgddddgddddgdœƒ} tjtdd�� | dddg  d	¡ W 5 Q R X |  d	¡d  ¡ }td
gdtdgd	d�d�}t 	||¡ d S )Nr/   r=   )r²   r³   r´   rÇ   z
('a', 'b')r6   r³   r´   rÇ   r²   r¿   r  r  )
r	   rQ   rR   r�  rH   r2   r   r   rK   rL   r  r   r   r   Útest_tuple_as_groupingW  s    



üÿ	r  c               	   C   sP   t dtdƒt ddgddgg¡d�} tjtdd�� |  d¡ ¡  W 5 Q R X d S )	Nr/   r%   r=   r¿   rj  z
^\(7, 8\)$r6   )r3   rw  )	r	   rg   r   rš  rQ   rR   r�  rH   r?   r…  r   r   r   Útest_tuple_correct_keyerrorj  s    $r  c               	   C   s˜   t dgdggtdgdd�tddddd	�d
�} t dddddgdddddggtjddd d gd�tddddd	�d
�}|  tdd�¡ ddg¡}t 	||¡ d S )Nr/   r¼   Zmycolsr  ú
2018-01-01r=   ré   Údti)r„   r   r>   rÊ   ))r¼   r2   r¼   )r¼   ÚohlcÚopen)r¼   r!  r×  )r¼   r!  rØ  )r¼   r!  Úcloser	  )r   r2   r!  )
r	   r   r   r   r  rH   r
   rM   rK   re   rm  r   r   r   Útest_groupby_agg_ohlc_non_firstq  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ddd	d
g|d�}|jdd� ¡ }tdd	gddgd�}t 	||¡ d S )Nr³   iÜ  r/   r=   r´   r%   Údater	  g      @r¿   r¾   rS  rò  )
r�   r‘   r   r   r  r   rH   r?   rK   rL   )rÄ   r  rW  r   r   r   r   r   Útest_groupby_multiindex_nat�  s    ür&  c               	   C   sP   t tdƒtdƒƒ} t| ddgd�}d}tjt|d�� | g g¡ W 5 Q R X d S )Nr:   Úappler´   rw   z$Grouper and axis must be same lengthr6   )r6  rg   r	   rQ   rR   r<  rH   )rÄ   rj   rZ   r   r   r   Útest_groupby_empty_list_raises�  s
    r(  c                  C   s�   ddgddgddgg} dddg}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 )Nr*   r³   r´   rV   rŽ   rZ  Úthirdr	  r/   r=   rg  r%   r¾   )r   Úfrom_arraysr   rH   r2   rK   rL   )Zindex_arrayZindex_namesÚrird  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dd	dd	gdd	d
dgdœ| d�}| tdd�dg¡}| ddg¡}|j|jksrt‚| dtdd�g¡}| ddg¡}|j|jks¤t‚d S )Nr   r   r†   ré   r  Úbetar	  r/   r=   r%   r¿   rï   r¾   rS  )r   rš  r	   rH   r
   rà   r   )r  rj   r   r   r   r   r   Ú"test_groupby_groups_in_BaseGrouper¶  s    "r/  Ú
group_namer*   c                 C   sä   t t d¡ dd¡dddgddddgd�}d	|j_d
|j_|j| dd� ¡ }|j	 | ¡ ¡ j	}t
 ||¡ dddgddgg}tj|d
dgd�}t t d¡ dd¡dddg|d�}|j| dd� ¡ }|j	 | ¡ ¡ j	}t
 ||¡ d S )Nr4   r%   r¿   r   r/   r:   r;   rj  rÎ   r*   r”   r½   rV  r¼   r8   r9   Úx1)Ú	iterablesrÉ   é   rñ   )r	   rC   rD   rÊ  r'   r>   rx   rH   r2   r§   rK   re   r   rš  )r0  rj   Úresultsr   r2  r  r   r   r   Útest_groupby_axis_1Ä  s       
ÿ"r5  zop, expectedÚshiftÚtimeú2019-01-01 12:00:00ú2019-01-01 12:30:00Zbfillú2019-01-01 14:00:00ú2019-01-01 14:30:00Úffillc                    sŒ   | ‰ ddddddg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 )Nr   r   r8  r9  r:  r;  )r‘  r7  c                    s   | j j ˆ ¡S r0   ©r7  r¥  Ztz_localizer)   r  r   r   r+   	  r,   z+test_shift_bfill_ffill_tz.<locals>.<lambda>)r7  r‘  c                    s   | j j ˆ ¡S r0   r=  r)   r  r   r   r+   	  r,   )r   r	   ZassignrH   rÝ   rK   re   )Ztz_naive_fixturer  r   rT   rj   rU   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 )Nr/   )r£   r*   r£   r*   r2   r  )r	   rH   rO   r   rC   r�   rK   rL   )rj   rð  r   r   r   r   Útest_groupby_only_none_group	  s    r?  c                  C   sX   t ddddgddddgd�} | jd	d
�}| ¡ }t dddgdddgd�}t ||¡ d S )Nr=   rÒ   rñ   rw  rÂ   rÁ   ro  r¾   r   rS  g      @)r   rH   r?   rK   rL   )rW  r¨   r   r   r   r   r   Útest_groupby_duplicate_index&	  s
    r@  z&ignore:.*is deprecated.*:FutureWarningc                 C   sh  | dkr"t jjtd�}|j |¡ tdtdƒddggddd	d
gd�}|d	  t	¡|d	< |d
  t	¡|d
< | 
ddg¡}| dkr„d}n| dkr’d}nd}|jd d…  dg¡j| f|žŽ }| dg¡j| f|žŽ jd d… }| dkrì| t	¡}t ||¡ |d	 jd d…  dg¡j| f|žŽ }|d	  dg¡j| f|žŽ jd d… }| dk�rX| t	¡}t ||¡ d S )NÚtshift)rR   r/   r  r%   r¿   Zcol_1Zcol_2Zcol_3Zcol_4©rT   rx   Zfillna)r<  )r/   ré   r   r   )Údiffr6  )rQ   r  r  ÚNotImplementedErrorr  r  r	   r   rd   r  rÌ   rˆ   rH   rO   rK   r  )Ztransformation_funcr  r  rj   Úargsr   r   r   r   r   Útest_group_on_empty_multiindex0	  s6    
þ""
$ÿ$ÿ

rF  ræ   r¼   r  )©r³   r³   rG  r½   r	  z)ignore:tshift is deprecated:FutureWarningc              	   C   s´   | dkrt  d| › �¡ t| ƒ} | dkr,tnd }tddgg|d�}| dg¡}| dkrbtdƒg|_t| |ƒ}t	j
|d	d
�� t|| ƒ|Ž }W 5 Q R X |jdks¢t‚t	 |j|¡ d S )N>   r,  r*  ÚcumcountzNot applicable for )r+  rA  r/   rw   r   rA  r  zis deprecatedr6   r¦   )rQ   r.  r   rz   r	   rH   r   r'   r   rK   ry   rÝ   Úshaper   r>  rx   )Zgroupby_funcræ   r/  rj   Zgrp_byrE  r   r   r   r   Útest_dup_labels_output_shapeU	  s    	
rJ  c           
      C   sü   t dddd�}tddgddgddgdœƒ}d	|j_||_| | ¡}|sL|j}|j|dd
�}| ¡ }tddgddgdœ|d�}d|j_	|sŽ|j}t
 ||¡ |dkr¾|g  j|dd
�}|g  }n&|jg  j|dd
�}|jg   tj¡}| ¡ }	t
 |	|¡ d S )Nú
2016-01-01r=   r¼   )r„   r>   r/   r%   r   )r  )r   r†   )ré   r   )r½   rV  )r•   r   )r   ré   r¾   r½   )r   r	   rx   rÉ   r'   Z_get_axis_numberr§   rH   Znuniquer>   rK   re   r^   rd   rC   r#   )
r•   r   rj   Zaxis_numberr¨   r   r   rô  r  r©   r   r   r   Útest_groupby_crash_on_nuniques	  s*    

rL  c                  C   s>   t t dd¡ dd¡td�} | jdgd� ¡ }t || ¡ d S )Nr   r$   r%   r‚   rS  )	r	   rC   rD   rÊ  rÀ   rH   r?   rK   re   )r   r   r   r   r   Útest_groupby_list_level–	  s    rM  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], ...})r/   z{0: [0], ...}c              	   C   sx   t tj dd¡ƒ}|j|d< t d| ¡�F | d¡j 	¡ }||ksFt
‚| t |j¡¡j 	¡ }||ksjt
‚W 5 Q R X d S )NrÒ   r/   r³   zdisplay.max_seq_items)r	   rC   rE   rý   r'   r�   Zoption_contextrH   rà   Ú__repr__r   rþ   r³   )Zmax_seq_itemsr   rj   r   r   r   r   Útest_groups_repr_truncates�	  s    

rO  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sft‚d}|| || k 	¡ s‚t‚d S )Nr/   r=   éc   rÓ   éX   r³   r´   r¦   r   r‚   )
r	   rÌ   rH   rá   rC   rþ   r"   rI   r   rä   )rj   rŠ   r   r   r   r   r   r   Ú6test_group_on_two_row_multiindex_returns_one_tuple_key²	  s    rR  zklass, attr, valuer   rl  r.   rt   ZobservedrÚ  r•   z5GH 35443: Attribute currently not passed on to series)Úreason)Zmarksz:ignore:The `squeeze` parameter is deprecated:FutureWarningc                 C   sn   t dgdgdgdœƒ}|dkr(| d¡}|jd||iŽ}| t krJ|dg n|d }t||ƒt||ƒksjt‚d S )	Nr/   r=   r%   rÓ   r•   r³   r´   )r³   )r	   rÌ   rH   rÝ   r   )rM  r'  r]   rj   r   r   r   r   r   Ú#test_subsetting_columns_keeps_attrsÀ	  s     
rT  c               	   C   sX   t dgdgdgdœƒjdddgdd�} d}tjt|d�� | d	d
g  ¡  W 5 Q R X d S )Nr/   r=   r%   r…   r   r”   z'Cannot subset columns when using axis=1r6   r   r   )r	   rH   rQ   rR   r<  r2   )r£   r7   r   r   r   Útest_subsetting_columns_axis_1é	  s    &rU  rs   Úanyc                 C   sH   t dgdd�}tdgg|d�}| dg¡}t|| ƒƒ j}t ||¡ d S )Nr³   ræ   r  r/   rw   )r   r	   rH   rÝ   rx   rK   r>  )rs   r   rj   r¤   r   r   r   r   Ú#test_groupby_column_index_name_lostñ	  s
    rW  c                  C   sz   t ddddgddddgd	d
ddgdœƒ t¡} dddg| _|  ddddg¡ ¡ }t ddd	ggdddgd�}t ||¡ d S )Nr‹   r’   r£   rq  r³   r´   rÇ   rp  r/   r=   r%   r¿   r…   r   r   r   rw   )r	   rd   ri  rx   rH   rE  rK   re   r  r   r   r   Útest_groupby_duplicate_columnsû	  s    "ÿþrX  c                  C   sd   t ddddgddddg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¿   rG  )r'   r>   )r´   r´   r   rS  )r   r'   r>   rH   ÚlastrK   rL   )rW  r   r   r   r   r   Ú#test_groupby_series_with_tuple_name
  s    rZ  zGH#38778: fail on 32-bit systemzfunc, valuesç     @X@ç     €X@g     @8@g     €8@c                 C   sl   ddddddddg}t ddgd ||dœƒ}t| d	¡| ƒƒ }t ||d
œtddgd	d�d�}t ||¡ d S )Nç €à7yÃACéa   éb   ç €à7yÃ1Ãr/   r=   r¿   ©ra   r³   r´   ra   r²   r  r¾   )r	   rÝ   rH   r   rK   re   )rs   rÄ   rT   rj   r   r   r   r   r   Ú)test_groupby_numerical_stability_sum_mean
  s
    rb  c                  C   s~   ddddddddg} t ddgd | | dœƒ}| d	¡ ¡ }dgd d
dg ddg ddg }t ||dœƒ}tj||dd� d S )Nr]  r^  r_  r`  r/   r=   r¿   ra  ra   g0€à7yÃACg1€à7yÃACga€à7yÃ1Cgb€à7yÃ1Cr[  r\  r²   T)Zcheck_exact)r	   rH   r  rK   re   )rT   rj   r   Zexp_datar   r   r   r   Ú'test_groupby_numerical_stability_cumsum
  s     ÿrc  c                  C   s|   t j dd¡} t| ƒ}tdƒD ]}t j|j||f< qd|d< | d¡}|jdd�}|ddddd	g jdd�}t	 
||¡ d S )
NrÒ   r/   r   F©Úskipnar   r=   r%   r¿   )rC   rE   rý   r	   rg   r�   rˆ   rH   r  rK   re   )rŒ  rj   Úir¨   r©   r   r   r   r   Ú test_groupby_cumsum_skipna_false*
  s    
rg  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 )NrK  rÒ   rƒ   r   r=   r/   r  r   FT)r  re  r   r¿   )	r   r   r�   r‘   r	   rH   r  rK   re   )r   rW  rj   r¨   r©   r  r   r   r   Útest_groupby_cumsum_timedelta64:
  s    

,$rh  c                 C   s4   | }|j dd� ¡ }|  |j¡ ¡ }t ||¡ d S )Nr   rS  )rH   r?   r'   rK   rL   )Z(rand_series_with_duplicate_datetimeindexZdupsr   r   r   r   r   Ú!test_groupby_mean_duplicate_indexL
  s    ri  c                  C   sV   t dddgtjtjtjgƒ} |  | j¡ ¡ }t g tg tjd�tjd�}t	 
||¡ d S )Nr/   r=   r%   r‚   r&   )r   rC   r�   rH   r'   r2   r   r#   r"   rK   rL   )rd  r   r   r   r   r   Ú test_groupby_all_nan_groups_dropS
  s    rj  c                 C   sš   t g dddgd�}|jddg| d�}|j|d�}| r^tg g gg g gddgd�}|sXdgng }ntdƒ}|stdddgnddg}t g ||d	�}t ||¡ d S )
Nr   r   r†   rB  r�   r  r	  r   rÊ   )r	   rH   r2   r   r   rK   re   )rž   r  rj   r¨   r   r'   rx   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
�d�}| jdgd�}| ¡ }t ||¡ d S )Nr  r/   ÚWr:   r;   ZMWrW   rw   ri  ©r!   r>   r¾   rÁ  )r	   r   rH   r2   rK   re   ©rj   r   r¨   r   r   r   r   Ú*test_groupby_aggregation_non_numeric_dtypek
  s    " ÿ ÿüro  c                  C   s    t dddddg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 )Nr/   r   c                 S   s   g | ]}t |d ƒ‘qS ©Údays©r   ©r°   rf  r   r   r   r¸   ‚
  s     zDtest_groupby_aggregation_multi_non_numeric_dtype.<locals>.<listcomp>rñ   c                 S   s   g | ]}t |d  dƒ‘qS ©r:   rq  rr  rs  r   r   r   r¸   ƒ
  s     rê  c                 S   s   g | ]}t |d ƒ‘qS rp  rr  rs  r   r   r   r¸   ‰
  s     r3   r$   c                 S   s   g | ]}t |d  dƒ‘qS rt  rr  rs  r   r   r   r¸   Š
  s     )rÎ   rë  r"   r*   rm  r¾   rÁ  )r	   rg   r   rH   r2   rK   re   rn  r   r   r   Ú0test_groupby_aggregation_multi_non_numeric_dtype}
  s    ýÿþûru  c               	   C   sš   t dddddgdd„ tddƒD ƒttddƒƒdœƒ} t ddd	gitddgd
dd�d�}| jdgd�}d}tjt|d�� | ¡ }W 5 Q R X t 	||¡ d S )Nr/   r   c                 S   s   g | ]}t |d ƒ‘qS rp  rr  rs  r   r   r   r¸   ™
  s     zKtest_groupby_aggregation_numeric_with_non_numeric_dtype.<locals>.<listcomp>rñ   rê  rë  r3   rw  r"   r*   rm  r¾   rÁ  rí   r6   )
r	   rg   r¹   r   rH   rK   ry   rz   r2   re   )rj   r   r¨   rZ   r   r   r   r   Ú7test_groupby_aggregation_numeric_with_non_numeric_dtype”
  s    ýÿ
þrv  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 d	d	d
ggdddgtdgdd�d�}t ||¡ d S )NFTg      %@)Ú
filter_colÚgroupby_colÚbool_colÚ	float_colg     €4@g     €>@rw  rx  r²  g$+¿ÆH@ry  rz  r  rÊ   )r	   rH   rP   r   rK   re   )Zdictsrj   Z	df_filterZdfgbr   r   r   r   r   Útest_groupby_filtered_df_stdª
  s    ý

ýr{  c                  C   sž   t ttdƒƒttdddgƒdd�tjddd	gdd	gd
�dœƒ} |  ddg¡j}dtdƒft	 
dg¡dtdƒft	 
d	g¡dtdƒft	 
dg¡i}||ksšt‚d S )NÚabcr  z
2018-02-01z
2018-03-01Úcategoryr‚   rb  r   r/   )Ú
categoriesrÓ   r³   r´   z2018-01-01 00:00:00z2018-02-01 00:00:00rÇ   z2018-03-01 00:00:00r=   )r	   r   r¹   r   r   Z
from_codesrH   rá   r   rC   rþ   r   r  r   r   r   Ú2test_datetime_categorical_multikey_groupby_indices¾
  s$    
þúÿ

 

 

 
ýr  c               	   C   sŒ   dgd dgd  } t jt jdddgt jddddg }t| |gƒj}dd	g|_d
}tjt|d��" | d¡d	 j	ddd� 
¡  W 5 Q R X d S )NZAlicerÒ   ZBobr/   r=   r%   r¿   r>   rœ  z<__init__\(\) got an unexpected keyword argument 'min_period'r6   )ZwindowZ
min_period)rC   r�   r	   r§   rx   rQ   rR   r;  rH   Zrollingr2   )Zname_lZval_lZtest_dfZresult_error_msgr   r   r   Ú#test_rolling_wrong_param_min_periodÓ
  s    "
r€  c               	   C   sf   t dddgƒ} tjtdd�� | jdd� ¡  W 5 Q R X tjtdd�� | jdd� ¡  W 5 Q R X d S )	Nr/   r=   r%   Úbackfillr6   r   rS  Úpad)r   rK   ry   rz   rH   r�  r‚  )rd  r   r   r   Útest_pad_backfill_deprecationß
  s
    rƒ  c                  C   sv   t dddgdddgdddgdœƒ} tjd	d
œ}|  dg¡ |¡}t ddgdgddgddgdœƒ d¡}t ||¡ d S )NZThomaszThomas Johni°  i  i„  ZsadZhappy)ÚNameÚCreditÚMoodr2   )r†  r…  r„  iÄ	  )r†  r…  r„  )r	   r   ÚmoderH   rM   rÌ   rK   re   )rj   Zaggregate_detailsr   Zexpected_resultr   r   r   Ú.test_by_column_values_with_same_starting_valueè
  s"    ýÿ
ýÿúrˆ  c                  C   sv   d dddgddddg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 )Nr/   r   r=   r%   r³   r´   r	  r¾   rS  )r²  r=   )r·   r%   )r   r   r*  rH   r2   r  rK   rL   )rŒ  rW  r   r   r   r   r   Ú#test_groupby_none_in_first_mi_levelÿ
  s     ÿr‰  c                  C   sp   t ddddgddddgddddgdœƒ} | jd gd	� ¡ }t ddgd
dgdœtddgd d�d�}t ||¡ d S )Nr/   r=   r%   r¿   rÒ   rñ   r3   )Nr´   rÇ   rÁ  r$   é   rã  r  r¾   )r	   rH   r2   r   rK   re   r  r   r   r   Útest_groupby_none_column_name
  s    (&r‹  c               	   C   sd   t tjdgtjdgtjdgdœddgd�} d}tjt|d	�� tt|  d
g¡ƒƒ\}}W 5 Q R X d S )Nr/   rÒ   r=   rÓ   r*   rÎ   r¾   zËIn a future version of pandas, a length 1 tuple will be returned when iterating over a groupby with a grouper equal to a list of length 1. Don't supply a list with a single grouper to avoid this warning.r6   r³   )	r	   rC   r�   rK   ry   rz   ÚnextÚiterrH   )rj   rZ   rÄ   rx  r   r   r   Ú!test_single_element_list_grouping  s     ÿÿrŽ  r  c                 C   sj   d}t d|gdœƒ}t| d¡| ƒƒ | }t ddgitdgdd�d�}| d	krZ|jd
d�}t ||¡ d S )Nl   ÌL™33ffr/   r²   r³   r´   r   r  r¾   r  Tr   )r	   rÝ   rH   r   r$  rK   re   )rs   rœ  rj   r   r   r   r   r   Ú#test_groupby_avoid_casting_to_float"  s    r�  z	func, val)r2   r%   )rG  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 )	Nr/   r=   r²   r‚   r³   r´   r˜  r&   )r	   r�   ÚNArÝ   rH   r   rK   re   )Úany_numeric_ea_dtypers   rœ  rj   r   r   r   r   r   Útest_groupby_sum_support_mask.  s    ýr’  z
val, dtype)éo   r  )éÞ   Zuintc                 C   sì   t d| | gdœ|› d�d�}| d¡ ¡ }t d| d gitdgd|› d�d	�|› d�d
�}t ||¡ | d¡ ¡ }t d| | d gi|› d�d�}t ||¡ | d¡ ¡ }t d| |  gitdgd|› d�d	�|› d�d
�}t ||¡ d S )Nr/   r²   Ú8r‚   r³   r´   r=   Z64r˜  r&   )r	   rH   r2   r   rK   re   r  rG  )rœ  r!   rj   r   r   r   r   r   Útest_groupby_overflow;  s$    ýýr–  zskipna, val)Tr%   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 )Nr/   r=   r²   r‚   r³   rd  r´   )r	   r�   r�  rH   r  rK   re   )r‘  re  rœ  rj   r   r   r   r   r   Útest_groupby_cumsum_maskT  s    þr—  )°r   Údecimalr   ÚnumpyrC   rQ   Zpandas._libsr   Zpandas.compatr   Zpandas.errorsr   r   Zpandasr�   r   r	   r
   r   r   r   r   r   r   r   r   Zpandas._testingZ_testingrK   Zpandas.core.arraysr   Zpandas.core.commonÚcoreÚcommonrº  Zpandas.core.groupby.baser   Zpandas.tests.groupbyr   r    r  Zparametrizer[   rk   r   r“   r¥   rª   r¶   r»   rÆ   rÖ   rÞ   rç   rì   rð   rÿ   r   r  r  r  r  r)  r0  r1  r4  r7  r9  r=  r?  rA  rC  rF  rL  rN  rQ  rR  rT  rU  rY  r[  r`  re  rh  rn  rt  ry  rz  r~  r€  r�  r‚  rˆ  r‰  rŠ  ÚfilterwarningsrŽ  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/  r5  r>  r?  r@  rF  r  rJ  rL  rM  rO  rR  Úparamr  rT  rU  rW  rX  rZ  rb  rc  rg  rh  ri  rj  rk  ro  ru  rv  r{  r  r€  rƒ  rˆ  r‰  r‹  rŽ  r�  r’  r–  r�  r—  r   r   r   r   Ú<module>   sP  4
0*>-
 ÿ
8(@
 	;&	

þ

þ0	
 (



?
)		
4þ ÿööò ÿ

 H
	úÿþúÿþúÿþåþ,

$þþ#ýþ





ÿü





êþÿ	
 ÿ		