U
    ¾mœd¥[ ã                   @   sà
  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	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
„ Z#dd„ Z$ej% &dddddg¡dd„ ƒZ'dd„ Z(dd„ Z)dd„ Z*ej% &dddg¡dd„ ƒZ+dd „ Z,d!d"„ Z-ej% &dddddd#d$g¡d%d&„ ƒZ.d'd(„ Z/d)d*„ Z0d+d,„ Z1d-d.„ Z2d/d0„ Z3d1d2„ Z4d3d4„ Z5d5d6„ Z6d7d8„ Z7ej% &d9d:d;„ d<d;„ g¡d=d>„ ƒZ8d?d@„ Z9dAdB„ Z:dCdD„ Z;dEdF„ Z<dGdH„ Z=dIdJ„ Z>dKdL„ Z?dMdN„ Z@dOdP„ ZAdQdR„ ZBdSdT„ ZCdUdV„ ZDej% &dWdXdYg¡dZd[„ ƒZEej% &dWd\d]d^d_d`dadbg¡ej% &dcddg¡ddde„ ƒƒZFdfdg„ ZGdhdi„ ZHdjdk„ ZIdldm„ ZJdndo„ ZKdpdq„ ZLdrds„ ZMdtdu„ ZNdvdw„ ZOdxdy„ ZPdzd{„ ZQd|d}„ ZRd~d„ ZSd€d�„ ZTd‚dƒ„ ZUd„d…„ ZVd†d‡„ ZWdˆd‰„ ZXdŠd‹„ ZYdŒd�„ 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±„ Zlej% &d²d³d³d´gg¡dµd¶„ ƒZmd·d¸„ Znd¹dº„ Zod»d¼„ Zpd½d¾„ Zqd¿dÀ„ ZrdÁdÂ„ ZsdÃdÄ„ ZtdÅdÆ„ Zuej% &dÇdÈdÉdÊdÈdÉgdÈdÊgg¡ej% &dËdÌdÍdÌdÍgg¡dÎdÏ„ ƒƒZvdÐdÑ„ Zwe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jxdÛdÜdÝdÞ�ejyd gdßdà�ejyd gdádà�ejydgdâdà�gdãdädådædçdèdédêdßdádâgdë�ej% &dìdídîdïg¡ej% &d9dðdñdYdXd\d^dòg¡dódô„ ƒƒƒƒƒZzdõ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‡ej% &�ded×d×g�d�d�ejˆ�d�d�dg�d�g¡�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�d/d×feddfe�d0dfe�d1dfe�d2dfe�d3dfe�d/d×feddfe�d0dfe�d1dfe�d2dfe�d3dfg¡�d4�d5„ ƒZŽ�d6�d7„ Z�ej% &�d8d\�d9�d
g¡�d:�d;„ ƒZ��d<�d=„ Z‘�d>�d?„ Z’ej%j“e �d@�dA�ej% &�dBd\�dC�dDgfd]�dE�dFgfg¡�dG�dH„ ƒƒZ”ej%j“e �d@�dA��dI�dJ„ ƒZ•�dK�dL„ Z–�dM�dN„ Z—�dO�dP„ Z˜�dQ�dR„ Z™ej% &dcddg¡�dS�dT„ ƒZš�dU�dV„ Z›�dW�dX„ Zœ�dY�dZ„ Z��d[�d\„ Zž�d]�d^„ ZŸ�d_�d`„ Z �da�db„ Z¡�dc�dd„ Z¢�de�df„ Z£�dg�dh„ Z¤ej% &�d8d\�di�djd^g¡�dk�dl„ ƒZ¥ej% &�dm�dn�dog¡�dp�dq„ ƒZ¦ej% &�dr�ds�dtg¡�du�dv„ ƒZ§ej% &�dw�dxdej¨fg¡�dy�dz„ ƒZ©ej% &�d{�d|�d}�d~�d�d€g�d�d�d�d��d‚g�d~�d�d€�d~gf�d|�d}�d~�d�d€�dƒg�d�d�d�d��d‚�d‚g�d~�d�d„�d~gfg¡�d…�d†„ ƒZªej% &�d‡dØ�dˆ�d‰�dŠ�d‹g¡�dŒ�d�„ ƒZ«ej% ¬�dŽ¡ej% &dì�d��d��d‘�d’�d“g¡�d”�d•„ ƒƒZ­�d–�d—„ Z®�d˜�d™„ Z¯dS (š  é    )Údatetime)ÚDecimalN)ÚIS64)ÚPerformanceWarningÚSpecificationError)ÚCategoricalÚ	DataFrameÚGrouperÚIndexÚ
MultiIndexÚ
RangeIndexÚSeriesÚ	TimedeltaÚ	TimestampÚ
date_rangeÚto_datetime)ÚBooleanArray)Ú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   úZ/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/pandas/tests/groupby/test_groupby.pyÚ	test_repr!   s    r   c            	      C   sÔ   t jddd�} t| ƒ}|d d d…  d9  < | d¡}|tdƒ |d< |tdd	d
� |d< t j|jd< | tt	dƒƒd ¡}| 
¡ }tdƒ}tdƒ}t|d ||||gt d¡d�}t|||dœƒ}t ||¡ d S )Nz1 Dayé'  ©Úperiodsé   é   r   r   r   ÚUTC©ÚtzÚCéÿÿÿÿiÐ  z2887 days 11:21:02.326710176z2886 days 00:42:34.664668096©Úindex©r   r   r'   )ÚpdZtimedelta_ranger   Úto_framer   ÚNaTÚilocÚgroupbyÚlistÚrangeÚstdr   ÚnpÚaranger   ÚtmÚassert_frame_equal)	ZtdiÚserÚdfÚgbr   Ztd1Ztd4Zexp_serr   r   r   r   Útest_groupby_std_datetimelike(   s    
 r;   ÚdtypeÚint64Ú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é	   é   ©r*   r<   c                 S   s   | d S ©NrA   r   ©Úxr   r   r   Ú<lambda>K   ó    ztest_basic.<locals>.<lambda>F©Ú
group_keysé   c                 S   s   | |   ¡  S ©N©ÚsumrD   r   r   r   rF   W   rG   c                 S   s   | |   ¡  S rK   rL   rD   r   r   r   rF   X   rG   é   é   ©Zcheck_index_typeúnested renamer is not supported©Úmatch)ÚoneÚtwoé
   é   é   )r   rJ   r#   c                    s   ˆ | j  |  ¡  S rK   )ÚnameÚmeanrD   ©Zgroup_constantsr   r   rF   i   rG   é   zMust produce aggregated valuec                 S   s   | d S ©Nr#   r   rD   r   r   r   rF   p   rG   )r   r4   r5   ÚrandomÚshuffleÚreindexr0   Úlenr   Ú	aggregaterZ   r6   Úassert_series_equalÚaggrM   ÚapplyÚ	transformr3   ÚpytestÚraisesr   Ú	Exception)r<   Údatar*   ÚgroupedÚkÚvÚaggedr   ÚtransformedZvalue_groupedÚmsgr   r[   r   Ú
test_basicC   s@    



  ÿrq   c           	      C   s²   | j jd }|  |¡}| ¡ }|  | d¡¡ ¡ }|j jtjksDt‚|j jtj	ksVt‚t
j||dd� | ¡ }tt|ƒƒ|d< dd„ }| d¡ |¡}|j}|j}t
 ||¡ d S )	Nr   ÚOFrP   Úvaluec                 S   s   | j | d  ¡  S )Nrs   )ÚlocÚidxmax©Úgroupr   r   r   Ú	max_value�   s    z/test_groupby_nonobject_dtype.<locals>.max_valuer   )r*   Úcodesr0   rM   Úastyper<   r4   Úint8r   r=   r6   r7   Úcopyr2   ra   re   Údtypesrc   )	ÚmframeZdf_mixed_floatsr   rk   r   r   r9   rx   Zappliedr   r   r   Útest_groupby_nonobject_dtypes   s    
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ÚPonyrN   r=   ©r<   Z20130101r    r+   c                 S   s
   | j d S ©Nr   )r/   ©Úgrpr   r   r   Úf_0•   s    z*test_inconsistent_return_type.<locals>.f_0r   r   c                 S   s   | j dkrd S | jd S )Nr€   r   ©rY   r/   r„   r   r   r   Úf_1œ   s    
z*test_inconsistent_return_type.<locals>.f_1c                 S   s   | j dkrd S | jd S ©Nr�   r   r‡   r„   r   r   r   Úf_2¦   s    
z*test_inconsistent_return_type.<locals>.f_2c                 S   s   | j dkrd S | jd S r‰   r‡   r„   r   r   r   Úf_3±   s    
z*test_inconsistent_return_type.<locals>.f_3r'   c                 S   s   | j dkrd S | jd jd S )Nr�   r   r'   )rY   r/   rt   r„   r   r   r   Úf_4¼   s    
z*test_inconsistent_return_type.<locals>.f_4)r   r   r4   r5   r   r0   Úfirstre   r6   r7   r|   Únanrt   r,   r.   rY   rc   )	r9   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�}|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©r4   Ú
percentile)rE   Úqr’   r   r   r   ÚfÉ   s    z test_pass_args_kwargs.<locals>.fc                 S   s   t j| ddd�S )NéP   r   r‘   r“   rD   r   r   r   rF   Ì   rG   z'test_pass_args_kwargs.<locals>.<lambda>c                 S   s   | j S rK   ©ÚmonthrD   r   r   r   rF   Ï   rG   r—   r‘   çš™™™™™é?)r•   )TFc                 S   s   | j S rK   r˜   rD   r   r   r   rF   ä   rG   ©Úas_indexF©Zcheck_namesgš™™™™™Ù?)Nr   )r0   rd   r4   r”   re   rf   Úquantiler6   rc   r   r7   )Ú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	}|j 
tj¡|_|sŒttdƒƒ|_t ||¡ d S )Nr   r   r'   c                 S   s   | j S rK   r˜   rD   r   r   r   rF   ù   rG   z9test_pass_args_kwargs_duplicate_columns.<locals>.<lambda>r›   r—   r   r‘   rJ   rš   r#   ©rJ   r#   )Úcolumnsr0   rd   r4   r”   r*   r™   rž   r   ÚTrz   r>   r
   r2   r6   r7   )r    rœ   r:   Ú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 rK   ©ÚyearrD   r   r   r   rF     rG   ztest_len.<locals>.<lambda>c                 S   s   | j S rK   r˜   rD   r   r   r   rF     rG   c                 S   s   | j S rK   ©ÚdayrD   r   r   r   rF     rG   c                 S   s   | j S rK   r©   rD   r   r   r   rF     rG   c                 S   s   | j S rK   r˜   rD   r   r   r   rF     rG   c                 S   s   h | ]}|j |jf’qS r   )rª   r™   ©Ú.0rE   r   r   r   Ú	<setcomp>  s     ztest_len.<locals>.<setcomp>rA   rJ   r#   ©ÚaÚbr±   r   r²   )	r6   ÚmakeTimeDataFramer0   ra   r   r*   r   r4   rŽ   )r9   rk   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>rJ   rV   iL  g      $@)r   r1   r2   r4   r^   r0   rZ   )r   rj   Ú	groupingsrk   r   r   r   Útest_basic_regression  s
     
r¸   Z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 )NrV   r‚   ÚfooÚbarr)   é   r#   F)Zcheck_dtypec                 S   s   t t| ƒƒS rK   )Úfloatra   rD   r   r   r   r–   :  s    ztest_with_na_groups.<locals>.fç      @ç       @)r
   r4   r5   r   ÚonesrŽ   r0   rd   ra   r6   rc   )r<   r*   ÚvaluesÚlabelsrk   rn   r   r–   r   r   r   Útest_with_na_groups%  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#   rJ   r²   Úc©Zlevelsry   Únamesr±   ©r¥   r*   )r²   Úemptyr   r   Ú	set_index©rE   ÚyZ
multiindexr§   r   r   r   Úf1F  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#   rJ   r²   rÃ   )r²   rÇ   r   rÈ   )rE   rÊ   r   r   r   Úf2P  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#   rJ   r¹   rº   rÄ   r±   r²   rÆ   )r²   rÇ   r   r   rÉ   r   r   r   Úf3X  s      ÿz,test_indices_concatenation_order.<locals>.f3rJ   r#   r»   r"   r@   ©r±   r²   rÃ   rA   r±   z@Cannot concat indices that do not have the same number of levelsrR   )	r   r2   r0   re   r6   r7   rg   rh   r   )rË   rÌ   rÍ   r9   Údf2Úresult1Úresult2rp   r   r   r   Ú test_indices_concatenation_orderC  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 rK   ©ÚweekdayrD   r   r   r   rF   {  rG   z#test_attr_wrapper.<locals>.<lambda>c                 S   s   t j| dd�S )NrJ   )Zddof)r4   r3   rD   r   r   r   rF   ~  rG   c                 S   s   i | ]\}}||  ¡ “qS r   )Údescribe)r®   rY   Úgpr   r   r   Ú
<dictcomp>ƒ  s      z%test_attr_wrapper.<locals>.<dictcomp>c                 S   s   | j S rK   r‚   rD   r   r   r   rF   ‰  rG   z-'SeriesGroupBy' object has no attribute 'foo'rR   r¹   )r0   r3   rd   r6   rc   rÕ   r   r¦   r7   r<   rg   rh   ÚAttributeErrorÚgetattr)rŸ   rk   r   r   rp   r   r   r   Útest_attr_wrapperz  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 rK   rÓ   rD   r   r   r   rF   “  rG   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�   rX   c                 S   s   |   ¡ S rK   rÓ   rD   r   r   r   rF   ¡  rG   c                 S   s   | |   ¡  S rK   ©rZ   rD   r   r   r   rF   ¢  rG   c                 S   s   |   ¡ S rK   rÛ   rD   r   r   r   rF   §  rG   r   )r0   rb   r4   rZ   ra   r   r¥   r|   r*   r6   r7   Úheadrf   rc   ZxsrÔ   ÚgroupsÚindicesÚitemsÚtakeÚall)r    rk   Ú
aggregatedZtscopyZstraggedro   rY   rw   rZ   ÚidxrÔ   rÝ   rÞ   rl   rm   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   rJ   ©r   r   r'   ÚDr‘   r#   c                 S   s   | |   ¡  S rK   rÛ   rD   r   r   r   rF   Ä  rG   z,test_frame_groupby_columns.<locals>.<lambda>)r0   rb   r4   rZ   ra   r   r¥   r¦   r6   r7   rf   )r    Úmappingrk   râ   ÚtfZgroupedTrl   rm   r   r   r   Útest_frame_groupby_columnsº  s    ré   c              	   C   s0  |   d¡}|jdd�}|jjdks&t‚| j ddd�jdd�}|jjdksLt‚|ddg  tj¡}|jjdkspt‚| 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   T©Únumeric_onlyFr›   r'   ræ   ©r'   ræ   rQ   rR   ©r¹   rº   )r0   rZ   r*   rY   r   rd   r4   r3   rg   rh   r   )r9   rk   r   rp   r   r   r   Útest_frame_set_name_singleÍ  s$    
rî   c                 C   sè   | d }| d }|   |j|jg¡}|jdd�}|   ddg¡ ¡ }tj|jd d …ddgf |jd d …ddgf dd� ttj 	d	¡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   Trê   r'   ræ   Fr�   é   r²   r±   Ú1Ú2)Úv1Úv2Úk1Úk2rT   rU   ÚthreeÚfourÚfiveÚsixr)   rô   rõ   )r0   ÚgetrZ   r6   r7   rt   r   r4   r^   ÚrandnÚarrayrd   rM   )r9   Zcol1Zcol2rk   rn   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'   )rZ   r3   )r0   rd   r4   rZ   r3   r   r6   r7   )r9   rk   rn   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tj d¡tj d¡tj d¡dœƒ} |  ddg¡}tjtjg}| |¡}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º   rT   rU   é   )r   r   ræ   ÚEÚFr   r   ræ   r   r  rJ   )Úkeysr’   )r   r4   r^   rû   r0   rZ   r3   rd   r,   ÚconcatÚ
isinstancer*   r   r   r6   r7   )rj   rk   Úfuncsrn   r   r   r   r   Ú"test_frame_multi_key_function_list  sR    õõ


ãÿ"
&ý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 d S )Nr¹   rº   rT   rU   ZdullZshinyrÿ   )r   r   r'   ræ   r   r  r   r   z+Could not convert dullshinyshiny to numericrR   )r   r4   r^   rû   r0   rZ   r3   rg   rh   Ú	TypeErrorrd   )rj   rk   r  r   r   r   Ú2test_frame_multi_key_function_list_partial_failure<  s\    õõõ


Öÿ/r  Úopc                 C   s   |   ¡ S rK   rL   rD   r   r   r   rF   r  rG   rF   c                 C   s   |   ¡ S rK   rÛ   rD   r   r   r   rF   r  rG   c              	   C   s"  | }|  ddg¡}||ƒ}g }g }|  d¡D ]J\}}|  d¡D ]6\}	}
| ||	f¡ | ||
jd d …ddgf ƒ¡ q>q,tj|ddgd�}tj|dd�j}||_dD ]8}||| ƒ}|| }|| }t	 
||¡ t	 
||¡ q¤|d   |d |d g¡ ¡ }|  ddg¡ ¡ d }t	 
||¡ d S )	Nr   r   r'   ræ   ©rÅ   rJ   r‘   rì   )r0   Úappendrt   r   Úfrom_tuplesr,   r  r¦   r*   r6   rc   rZ   )r9   r	  rj   rk   rÐ   r  rÀ   Zn1Zgp1Zn2Zgp2Úmir   ÚcolZ
result_colZpivotedÚexpr   r   r   r   Útest_groupby_multiple_columnsr  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 )NrJ   r#   r»   r"   rï   r   r   ©r¥   Fr›   ©rY   T)rœ   rI   c                 S   s   |   ¡ S rK   )ÚcumsumrD   r   r   r   rF   ›  rG   z-test_as_index_select_column.<locals>.<lambda>)r   r   )r   rJ   r¤   ©rY   r*   )	r   r0   Ú	get_groupr   r6   rc   re   r   r  ©r9   r   r   r   r   r   Útest_as_index_select_column“  s    "ÿ  ÿr  c                  C   sf   t tdddg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   r   r'   Úalphar  r  F)Úbyrœ   rê   r#   r   rÆ   )	r   r
   r0   rM   r¥   r2   rÅ   r6   r7   )r9   Úleftr   r   r   r   Ú0test_groupby_as_index_select_column_sum_empty_df£  s
    
r  c              	   C   s"  | j ddd�}|ddg  tj¡}|jdd�}t ||¡ | tjtjdœ¡}|jdd�}| ¡ d |d< 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'   ræ   Trê   rì   rQ   rR   ÚQr   r  r   éd   )é2   rA   ZjimZjoeZjolier"   rV   r  r  )rZ   ÚmaxÚcountru   r  rá   ©Údrop)r0   rd   r4   rZ   r6   r7   rM   rg   rh   r   r   Úrenamer^   Úrandintr   Únthre   rÙ   rÀ   Úreset_index)r9   rk   r   r   rÑ   Ú	expected2rp   Z	expected3Zresult3rŸ   ÚgrÚattrr  Úrightr   r   r   Útest_groupby_as_index_agg®  sF    

r+  c                 C   sø   | dkrt  d| › �¡ ttjjdddd�ddgd	�}t| d¡| ƒƒ }| d
krZ| d
¡}| 	¡ }| d
kr‚|d  
|d j¡|d< |jddd�}t|| ƒƒ }t ||¡ | | ¡}t ||¡ t|d | ƒƒ }t ||¡ |d  | ¡}t ||¡ d S )N)Zcorrwithr%  Úngroupz!GH 5755: Test not applicable for r   r"   )r  r#   )Úsizer±   r²   r  r-  Fr›   )rg   Úskipr   r4   r^   r$  rÙ   r0   r#  r&  rz   r<   r6   r7   rd   )Zreduction_funcr9   r   r¡   r   r   r   r   Útest_ops_not_as_indexæ  s$    

r/  c                 C   s:  | j ddd�}| j ddgdd�}|d  tj¡}| tj¡jd d …ddgf }t|tƒs\t‚t 	||¡ |d  tj¡}| tj¡jd d …dddgf }t|tƒs¦t‚t 	||¡ |d  ¡ }| ¡ jd d …ddgf }t|tƒsæt‚t 	||¡ |d  ¡ }| ¡ jd d …dddgf }t|tƒ�s*t‚t 	||¡ d S )Nr   Fr›   r   r'   )
r0   rd   r4   rM   rt   r  r   r   r6   r7   )r9   rk   Zgrouped2r   r   rÑ   r'  r   r   r   Ú!test_as_index_series_return_frame  s$     r0  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 selectedrR   r'   ræ   )r0   rg   rh   Ú
IndexErrorÚ__getitem__©r9   rk   rp   r   r   r   Ú(test_as_index_series_column_slice_raises  s    r4  c                 C   sÚ   | }|j ddd�}|jdd�}|  dg¡jdd�}| dd|j¡ tt|ƒƒ|_t ||¡ |j ddgdd�}| ¡ }|  ddg¡ ¡ }tt	|jj
Ž ƒ}| dd|d ¡ | dd|d ¡ tt|ƒƒ|_t ||¡ d S )	Nr   Fr›   Trê   r   r   rJ   )r0   rZ   Úinsertr*   r   ra   r6   r7   r1   ÚziprÀ   )r9   rj   rk   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'   )r0   rd   ra   rt   r6   r7   ©r9   rk   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 DataFramerR   c                 S   s   |   ¡ S rK   rÓ   rD   r   r   r   rF   L  rG   z.test_groupby_as_index_corner.<locals>.<lambda>Fr›   z$as_index=False only valid for axis=0c                 S   s   |   ¡ S rK   )ÚlowerrD   r   r   r   rF   P  rG   rJ   )rœ   r’   )rg   rh   r  r0   Ú
ValueError)r9   rŸ   rp   r   r   r   Útest_groupby_as_index_cornerI  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 rK   r©   rD   r   r   r   rF   U  rG   z+test_groupby_multiple_key.<locals>.<lambda>c                 S   s   | j S rK   r˜   rD   r   r   r   rF   U  rG   c                 S   s   | j S rK   r«   rD   r   r   r   rF   U  rG   c                 S   s   | j S rK   r©   rD   r   r   r   rF   Z  rG   c                 S   s   | j S rK   r˜   rD   r   r   r   rF   Z  rG   c                 S   s   | j S rK   r«   rD   r   r   r   rF   Z  rG   rJ   r‘   c                 S   s   |   ¡ S rK   rL   rD   r   r   r   rF   ]  rG   c                 S   s   |   ¡ S rK   rL   rD   r   r   r   rF   a  rG   )r6   r³   r0   rM   Zassert_almost_equalrÀ   r¦   rd   Úassert_index_equalr*   r¥   )r9   rk   rn   r   r   r   Útest_groupby_multiple_keyS  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   rZ   r6   r7   )r9   rn   r   r   r   r   Útest_groupby_multi_cornere  s    

r@  c              	   C   s  |   d¡}tjtdd�� | tj¡ W 5 Q R X tjtdd�� | ¡  W 5 Q R X | jd d …dddgf } t 	¡ | d< |   d¡}d}tjt|d�� | tj
¡ W 5 Q R X tjt|d�� | 
¡  W 5 Q R X | j ddd	d	d
œd	d�}d}tjt|d�� | dd„ ¡ W 5 Q R X d S )Nr   úCould not convertrR   r'   ræ   r   z/datetime64 type does not support sum operationsr   rJ   )r   r'   ræ   r   r‘   z does not support reduction 'sum'c                 S   s   | j ddd�S )Nr   Frê   rL   rD   r   r   r   rF   …  rG   z)test_raises_on_nuisance.<locals>.<lambda>)r0   rg   rh   r  rd   r4   rZ   rt   r   ÚnowrM   r3  r   r   r   Útest_raises_on_nuisanceq  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   )r0   rÙ   r|   rt   r6   r7   )r9   rD  rk   r   r   r   r   r   Útest_keep_nuisance_aggˆ  s    
$$rF  rM   rZ   Úprodr3   ÚvarÚsemÚmedianrë   c           
   	   C   sÌ   |   d¡}d}||krd|sd|dkr&tnt}d ddg¡}tj||d�� t||ƒ|d� W 5 Q R X ndt||ƒ|d�}|sŽ|d	krŽdd
ddg}n
dddg}t| jd d …|f   d¡|ƒ|d�}	t 	||	¡ d S )Nr   )rH  r3   rI  rZ   rG  rJ  )r3   rI  ú|z[C|c]ould not convertzcan't multiply sequencerR   rê   rM   r   r'   ræ   )
r0   r;  r  Újoinrg   rh   rÙ   rt   r6   r7   )
r9   rD  rë   rk   Zno_drop_nuisanceÚklassrp   r   r¥   r   r   r   r   Útest_omit_nuisance_agg–  s    

ÿrN  c              	   C   s0   |   d¡}tjtdd�� | ¡  W 5 Q R X d S )Nr   zcould not convertrR   )r0   rg   rh   r  Úskew)r9   rk   r   r   r   Ú$test_raise_on_nuisance_python_single´  s    
rP  c              	   C   sZ   |   ddg¡}tjtdd�� | tj¡ W 5 Q R X tjtdd�� | ¡  W 5 Q R X d S )Nr   r   rA  rR   )r0   rg   rh   r  rd   r4   rZ   )Zthree_grouprk   r   r   r   Ú&test_raise_on_nuisance_python_multiple»  s
    rQ  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dg  tj¡}|jdd�}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º   rA   rï   )rô   rõ   Zk3rò   ró   rô   rõ   rò   ró   Trê   r"   r   ©r   c                 S   s   |   ¡ S rK   rÛ   rD   r   r   r   rF   Õ  rG   z*test_empty_groups_corner.<locals>.<lambda>r   r�   )r   r4   rü   r^   rû   r0   rd   rZ   r6   r7   re   rc   r*   rY   r   )r~   r9   rk   r   r   rn   Zagged_Ar   r   r   Útest_empty_groups_cornerÃ  s"    


ûÿ
rS  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'rR   c                 S   s   | d S )Nr¹   r   rD   r   r   r   rF   ß  rG   z$test_nonsense_func.<locals>.<lambda>)r   rg   rh   r  r0   )r9   rp   r   r   r   Útest_nonsense_funcÛ  s    
rT  c              	   C   sº   | j }d|d< t dddg¡t dddg¡g}tjtdd�� | |¡ tj¡ W 5 Q R X |j	dd� |¡ tj¡}t
|jtƒs„t‚dd	„ }tjtd
d�� | |¡ |¡ W 5 Q R X d S )NZpeekaboo)ÚbazrU   r   rJ   rA  rR   r  c                 S   s   | j dkrtdƒ‚|  ¡ S )N)r¹   rT   úTest error message)rY   r  rM   )r8   r   r   r   Úaggfunì  s    
z5test_wrap_aggregated_output_multindex.<locals>.aggfunrV  )r¦   r4   rü   rg   rh   r  r0   rd   rZ   r"  r  r¥   r   r   rb   )r~   r9   r  rn   rW  r   r   r   Ú%test_wrap_aggregated_output_multindexâ  s     rX  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   rR  r�   rJ   Úsecondr   )r0   r   r*   rY   r   )r~   r   r   r   r   Útest_groupby_level_applyõ  s    rZ  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   rJ   )r¹   rº   rU  Úqux)rT   rU   rö   rR  c                    s   g | ]}ˆ   |¡‘qS r   ©rú   r­   )Úmapper0r   r   r¶   	  s     z-test_groupby_level_mapper.<locals>.<listcomp>r�   r‚   c                    s   g | ]}ˆ   |¡‘qS r   r\  r­   )Úmapper1r   r   r¶     s     rY  )r�   rY  )
r&  r0   rM   r4   rü   r=   r*   rY   r6   r7   )r~   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 )NrJ   r#   rA   rV   r»   r"   rW   rï   r¹   r  rÿ   é   rN   r   rR  r(   z2level > 0 or level < -1 only valid with MultiIndexrR   éþÿÿÿzNo group keys passed!z*multiple levels only valid with MultiIndex)
r   r
   r2   r0   rM   r6   rc   rg   rh   r;  )Úsr   r   rp   r   r   r   Útest_groupby_level_nonmulti  s4    2$rc  c                  C   sF   t t d¡d ddddgd�} t dƒ}| jdd� ¡ }t ||¡ d S )Nr»   ù      ð?       @r   rJ   ©rj   r*   )rd  y      @      $@rR  )r   r4   r5   r0   rM   r6   rc   )r±   r   r   r   r   r   Útest_groupby_complex6  s    rf  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 )NrJ   y      ð?      ð?r°   rd  r»   r‚   y      ð?        r²   r  r±   Úobject©r*   r¥   F©ÚsortT)
r   r4   rü   r=   r
   r0   r   r6   r7   r*   ©r9   r   r   r   r   r   Útest_groupby_complex_numbers?  s     ýÿýrl  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
   r0   rZ   r`   r*   rú   r6   rc   )Ús1Ús2rk   rn   r  r   r   r   Ú'test_groupby_series_indexed_differentlyV  s    þ ÿ
rr  c                  C   sn  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< |jdd�j	dd�}t
 |j|jd d… ¡ d S )Nrº   rU  r¹   r[  rT   rU   )r   Úcat)r   Údog)r   rs  )r   rt  é   r»   rh  r   rR  rJ   )r   r’   c                 S   s   |   ¡ S rK   rÛ   rD   r   r   r   rF   }  rG   z0test_groupby_with_hier_columns.<locals>.<lambda>c                 S   s
   |   d¡S )NrJ   rÛ   rD   r   r   r   rF   €  rG   r   r   )r   r¹   Trê   r(   )r1   r6  r   r  r   r4   r^   rû   r0   rZ   r6   r=  r¥   r*   rd   re   r
   Z	sortlevel)Ztuplesr*   r¥   r9   r   Zsorted_columnsÚ_r   r   r   Útest_groupby_with_hier_columnse  s6    þÿÿ

ÿrw  c                 C   s@   |   | d j¡}| ¡ }|   | d  d ¡¡ ¡ }t ||¡ d S )Nr   )r0   rÀ   rM   r#  r6   r7   r8  r   r   r   Útest_grouping_ndarray‹  s    rx  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   rJ   r#   rA   r»   r*   r  Zfoo1Zfoo2Zfoo3Zbar1Zbar2Zbaz1Zbaz2Zspam2Zspam3Zspam1rW   rX   é(   r  é<   )r¹   rº   rU  Úspamrj   r)   r¹   rº   rU  r{  )r
   r   r0   rd   r4   rZ   r6   r7   )r*   rj   rk   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@t‚d|ksLt‚|   | 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   Trê   Fr›   r   ©r   r   )r0   rZ   r*   rY   r   rÅ   )r9   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 r]   )r4   rM   rD   r   r   r   rF   ¹  rG   z.test_seriesgroupby_name_attr.<locals>.<lambda>)r0   r   rY   r   rZ   rd   )r9   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º   rT   rU   ru  rµ   rå   r   )r   r4   r^   rû   r5   r0   r   r   r   r6   rc   rk  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 )NrJ   r#   rA   ©r   rZ   Z	omissionsr  )r   )r9   rY   r   r   r   Ú	summarizeÐ  s    z0test_groupby_name_propagation.<locals>.summarizec                 S   s   t ddddœ| jd d d�S )NrJ   r#   rA   r�  r   r   r  )r   r/   ©r9   r   r   r   Úsummarize_random_nameÓ  s    z<test_groupby_name_propagation.<locals>.summarize_random_namer   Úmetrics)N)r0   re   r¥   rY   r   )r9   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 )rV   )r4   r5   r­   r   r   r   r¶   â  s     z2test_groupby_nonstring_columns.<locals>.<listcomp>rV   r   )r   r2   r0   rZ   r6   r7   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   rJ   r#   r   r   r  r  rÆ   )r   r
   r0   r�   r6   r7   rM   rk  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\t‚d S )N)r  r  r   rV   )r4   rÇ   ÚfillrŽ   r   Ztiler2   r0   rd   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 )
NrV   r  r  r#   r)   r   r"   c                 S   s   t ttt| jƒƒƒS rK   )ra   ÚsetÚmapÚidr*   rD   r   r   r   rF   	  rG   z5test_series_grouper_noncontig_index.<locals>.<lambda>)
r
   r6   Zrands_arrayr   r4   r^   rû   r$  r0   rd   )r*   rÀ   rÁ   rk   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Ã   rn  r�   rr   r‚   c                 S   s   t t|  ¡ ƒƒS rK   )r   ÚstrrZ   rD   r   r   r   Úconvert_fast  s    z>test_convert_objects_leave_decimal_alone.<locals>.convert_fastc                 S   s$   t | jjƒdkst‚tt|  ¡ ƒƒS rƒ   )ra   rÀ   Úbaser   r   r‘  rZ   rD   r   r   r   Úconvert_force_pure  s    zDtest_convert_objects_leave_decimal_alone.<locals>.convert_force_purer   )r   r2   r4   rü   r0   rd   r<   Zobject_r   r  r   )rb  rÁ   r’  r”  rk   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,t‚|  d¡ ¡ }tg dtjd�}t dt	g |dd�iƒ}t
j||d	d
� d S )Nr   r=   r‚   )rE   r2   rE   ©rY   r<   r2   rB   T)Z	by_blocks)r   r4   r5   r<   r?   r   r0   r�   r
   r   r6   r7   )r9   r   Z	exp_indexr   r   r   r   Ú"test_groupby_dtype_inference_empty$  s    r—  c                  C   sb   t dgdgdgdœƒ} |  ddg¡d  ¡ }tdgtjdgdggddgd�dd�}t ||¡ d S )	NrJ   l    4;PUÑ  )r�   rY  rs   r�   rY  rs   r
  r  )r   r0   r  r   r   Úfrom_productr6   rc   r  r   r   r   Ú$test_groupby_unit64_float_conversion/  s    ýr™  c              	   C   sÊ   |   t| d ƒ¡jdd�}|   | d ¡jdd�}tj||dd� tjtdd��  |   t| d d d… ƒ¡ W 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   Trê   Fr�   z^'foo'$rR   r(   r   rJ   rA   r»   r#   )r¹   rº   Úvalr¹   rº   rš  )r0   r1   rZ   r6   r7   rg   rh   ÚKeyErrorr   r4   r^   rû   r  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 )Nrb  z2015-09-29T11:34:44-0700r#   )Ústartr!   Úfreqr   rV   r   é   ZmetricrÀ   rÆ   r   )r   rž  )r   r   r   r0   r	   rZ   rÈ   r*   rz   r¼   r6   r7   )rž  r*   r9   r   r   r   r   r   Ú$test_groupby_keys_same_size_as_indexJ  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'$rJ   r»   ZABCDr  rR   ÚZr#   )	r   r4   r^   rû   r1   rg   rh   r›  r0   )rp   Zdf1rÏ   r   r   r   Útest_groupby_one_rowW  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 )Nru  z
2013-01-01z
2013-02-01r±   r²   )rÀ   Údtr‘  r£  rJ   rN   rA   r"   r#   r   z2013-01-01 00:00:00r‚   z2013-02-01 00:00:00z^NaT$rR   )rŽ   ÚnatrŽ   r?   r¤  zdatetime64[ns]z^nan$)!r   r4   r^   rû   rŽ   r   r0   r
   ÚsortedrÝ   r  ra   r   r6  r6   r=  r7   Úgrouperr·   r‹  Zngroupsrü   ZintprÞ   Úassert_numpy_array_equalr  r/   rg   rh   r›  r,   r.   r<   )r9   rk   r   r  rl   r�   Znan_dfr   r   r   r   Útest_groupby_nat_excludeb  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 )NrJ   r#   rÎ   r±   r²   )r   r4   rŽ   r0   rÞ   r   ©r9   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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Úg2rw   r   ZzerosrJ   r¿   Úl1Úl2ÚlabelTrê   ç        rµ   )r   r2   r0   rZ   r4   rü   r6   r=  r¥   r
   r§  rÀ   )rn  Ú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 )	Nr   iˆ  i¨a  )r   r   r'   ræ   r   r   r   r'   ræ   )
r4   Zconcatenater5   r   r^   rû   r0   rM   ra   r   )r   r   r9   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º   rU  rA   r#   rJ   r   )r±   r²   rÃ   rn  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Ã   Tri  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²   rn  rn  c                 S   s   |   ¡ S rK   rL   rD   r   r   r   rF   Ý  rG   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_tuplesafer0   rß   r   )	r9   r   r  Úfieldr–   Útupsr   rl   rm   r   r   r   Ú_check_groupbyÝ  s
    
z/test_groupby_sort_multi.<locals>._check_groupby)r   r4   r^   rû   rÀ   r¸  r¹  r0   rM   r6   r§  r*   )r9   r»  r   rk   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º   rU  r#   )r   rY   r   FrH   c                 S   s   | S rK   r   rD   r   r   r   rF   ì  rG   z/test_dont_clobber_name_column.<locals>.<lambda>)r   r0   re   r6   r7   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 rK   r˜   rD   r   r   r   rF   ó  rG   z&test_skip_group_keys.<locals>.<lambda>FrH   c                 S   s   | j dd�d d… S )Nr   ©r  rA   ©Úsort_valuesrD   r   r   r   rF   ô  rG   c                 S   s$   g | ]\}}|j d d�dd… ‘qS )r   r¿  NrA   rÀ  ©r®   r   rw   r   r   r   r¶   ö  s     z(test_skip_group_keys.<locals>.<listcomp>r   c                 S   s   | j S rK   r˜   rD   r   r   r   rF   û  rG   c                 S   s   |   ¡ d d… S rC   rÀ  rD   r   r   r   rF   ü  rG   c                 S   s    g | ]\}}|  ¡ d d… ‘qS rC   rÀ  rÂ  r   r   r   r¶   þ  s     )r6   r³   r0   re   r,   r  r7   rc   )Ztsfrk   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   )r|   rY   r0   rd   r4   rM   r   )Zfloat_framerb  r   r   r   r   Útest_no_nonsense_name  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@   rA   r   ÚtestgÍÌÌÌÌÌô?g      ø?gš™™™™™ù?ÚflrM   r-  )rÇ  r#   )	r   r4   r5   Úreshaper0   rd   r<   r?   r   )rE   rk   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Ë  rv   r   r   r   r–     s    z(test_handle_dict_return_value.<locals>.fc                 S   s   t |  ¡ |  ¡ dœƒS rÊ  )r   r  rE  rv   r   r   r   r¡     s    z(test_handle_dict_return_value.<locals>.gr   r'   )r0   re   r  r   r   r6   rc   )r9   r–   r¡   r   r   r   r   r   Útest_handle_dict_return_value  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 rK   )rY   r   rv   r   r   r   r–   (  s    ztest_set_group_name.<locals>.fc                 S   s   | j d k	st‚|  ¡ S rK   )rY   r   rM   rv   r   r   r   Úfreduce,  s    z$test_set_group_name.<locals>.freducec                    s   ˆ | ƒS rK   r   rD   ©rÍ  r   r   Úfreducex0  s    z%test_set_group_name.<locals>.freducexFrH   rì   r'   )r0   re   rb   rf   )r9   r¦  r–   rÏ  rk   r   rÎ  r   Útest_set_group_name&  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   rJ   r#   rï   r°   c                    s   ˆ   | j¡ |  ¡ S rK   )r  rY   r|   rv   r
  r   r   r–   G  s    z6test_group_name_available_in_inference_pass.<locals>.fr±   F)rj  rI   )r   r4   r5   r0   re   r   )r9   r–   Zexpected_namesr   r
  r   Ú+test_group_name_available_in_inference_passA  s     
rÑ  c                 C   sV   |   | d j¡ ¡ }|jjd ks$t‚|   | d j| d jg¡ ¡ }|jjdksRt‚d S )Nr   r   )NN)r0   rÀ   rM   r*   rY   r   rÅ   r©  r   r   r   Útest_no_dummy_key_namesQ  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 )NrJ   r#   r   r±   r²   rÄ   rA   r»   r"   r)   F©r   rj  T)r   r   r0   r�   r6   rc   Ú
sort_index)r*   ZmseriesZmseries_resultr   r   r   r   Ú#test_groupby_sort_multiindex_seriesZ  s     ý  ÿrÕ  c                  C   s‚   d} t dd| d�}tt | ¡t | ¡dœ|d�}ddd	„}| d
d„ ¡}| d|tjƒi¡}| d|tjdƒi¡}t ||¡ d S )Néè  z2012/1/1Z5min)r�  rž  r!   )ÚhighÚlowr)   Fc                    s   ‡ ‡fdd„}|S )z>
        Run an aggregate func on the subset of data.
        c                    sD   | j | j dd„ ¡  ¡ }ˆ r,| | jd   t|ƒdkr<d S ˆ|ƒS )Nc                 S   s
   | j dk S )Nrÿ   )ÚhourrD   r   r   r   rF   z  rG   zYtest_groupby_reindex_inside_function.<locals>.agg_before.<locals>._func.<locals>.<lambda>r   )rt   r*   rŽ  Údropnara   )rj   rn  ©ÚfixÚfuncr   r   Ú_funcy  s    zGtest_groupby_reindex_inside_function.<locals>.agg_before.<locals>._funcr   )rÝ  rÜ  rÞ  r   rÛ  r   Ú
agg_beforet  s    z8test_groupby_reindex_inside_function.<locals>.agg_beforec                 S   s   t | j| j| jƒS rK   )r   rª   r™   r¬   rD   r   r   r   rF   ƒ  rG   z6test_groupby_reindex_inside_function.<locals>.<lambda>r×  T)F)	r   r   r4   r5   r0   rd   r  r6   r7   )r!   Úindr9   rß  rk   Zclosure_badZclosure_goodr   r   r   Ú$test_groupby_reindex_inside_functiono  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Ã   rn  rJ   r"   )Úgroup1Úgroup2rs   râ  rã  TrÓ  rM   )r±   rÃ   )r±   rn  ©r²   rÃ   r
  r#   rs   rh  )r   rÈ   r0   rd   r   r  r6   r7   )r9   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
  rJ   rA   r»   r  r±   rn  rç  rè  ré  rê  )r¥   rj   )r*   r¥   rÀ   r#   ©rE   rÊ   ÚzrE   rÊ   r   )FTF)r   rj  rI   )r   r  r   r¥   Z_is_lexsortedr   Úpivot_tabler&  r6   r7   r0   rZ   Zassert_produces_warningr   rÈ   r*   re   Zdrop_duplicatesrÔ  )Zlexsorted_miZlexsorted_dfZnot_lexsorted_dfr   r   r9   r   rj  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   rJ   r)   Zababbc                 S   s   t | ƒdkS r]   ©ra   rD   r   r   r   rF   Ø  rG   z4test_index_label_overlaps_location.<locals>.<lambda>rA   r»   c                 S   s   t | ƒdkS r]   rï  rD   r   r   r   rF   Þ  rG   c                 S   s   t | ƒdkS r]   rï  rD   r   r   r   rF   å  rG   c                 S   s   t | ƒdkS r]   rï  rD   r   r   r   rF   ë  rG   )r   r1   r0   Úfilterr/   r6   r7   rà   rc   r*   rz   r¼   )r9   r¡   Úactualr   r8   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±   rZ   )r4   r5   r   r0   rf   r6   r7   )ÚnrE   r9   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 )NrA   rJ   r   rì  r±   r¡   ru  rN   r»   r"   r#   r@   gffffff@g333333@gÍÌÌÌÌÌ@g333333Àgš™™™™™@gš™™™™™ñ?rn  r�   ÚwordZword2Z42Z47)rü  rý  rø  rù  rú  r¿  c                    s   t  | | jˆ d�¡ d S )Nr¿  )r6   r7   rÁ  rD   ©r÷  r   r   Ú	test_sort  s    z.test_groupby_preserves_sort.<locals>.test_sort)r   rÁ  r0   re   )r÷  rû  r9   r¡   r   r   rÿ  r   Útest_groupby_preserves_sortÿ  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 )NrW   ÚM©r!   rž  r   )Ú	eventDateZthenamer  rª   r™   z	'badname'rR   Zbadnamer   )r*   r¥   rÀ   Zaggfunc)r   r   r   ÚtodayÚtolistr2   rÈ   r*   rª   r™   rg   rh   r›  r&  rí  rƒ  r   r   r   Ú!test_pivot_table_values_key_error  s    þÿ   ÿr  r¥   r'   r  rÀ   r°  r±   rJ   z
US/Easternr%   ú
2016-01-01rA   ræ   r  ÚInt64r‚   ZFloat64ÚbooleanÚboolÚintr¼   r‘  rs  Zdt64Zdt64tzZperiod)ZidsÚmethodr)  rd   re   ru   ÚidxminrO  c              	      s’  d }t ˆtƒr>tˆƒdkr>ˆdkr>tjjtdd�}	|j |	¡ t ˆt	ƒrTˆdkrTd}t ˆd t
ƒrnˆdkrnd	}tˆˆˆd
œtdƒd�}
tˆdƒr¤|
jˆjk ¡ s¤t‚|
jd d… }
|
jˆd|d�|  ‰ ‡ ‡‡fdd„}‡‡fdd„}t |
jd tjƒ}|
jd jdk}t ˆtƒ}t ˆtƒ�r†ˆj�s†ˆdk�r†dˆ› d�}tjt|d�� |ƒ  W 5 Q R X t | tƒ�r‚|dd�}|ƒ }t ||¡ d S ˆdk�r@|�s¢|�s¢|�r@ˆdk�r²d}n|�r¾d}n|�rÊd}nd }tjt|d�� |ƒ  W 5 Q R X t | tƒ�sþd S ˆdk�rd S |dd�}|
 ˆ¡g  }|�r0|ƒ }t ||¡ d S |ƒ }|
 ˆ¡|  }|d k	�rh| |¡}tˆƒdk�r‚ˆd |j_t ||¡ d S )!NrJ   )ru   r  z0attempt to get arg(min|max) of an empty sequence)rh   rS   )rM   rG  r	  r   )rG  rM   r=   r+   ÚABCr  r<   F)rI   rÚ  c                     s.   ˆdkrt ˆ ˆƒf | ŽS t ˆ ˆƒˆf| ŽS d S )Nr)  )rÙ   )Úkwargs)r:   r  r	  r   r   Ú
get_resultv  s    z&test_empty_groupby.<locals>.get_resultc                     sR   t dgˆjd�} tˆ ƒdkr0tj| | gˆ d�}nt| ˆ d d�}tg g |d�}|S )Nr   r‚   rJ   r
  r  rÆ   )r   r<   ra   r   r˜  r
   r   )Zlevrã   r   )r  rÀ   r   r   Ú get_categorical_invalid_expected|  s    z<test_empty_groupby.<locals>.get_categorical_invalid_expectedr  )rE  r  zCannot perform z with non-ordered CategoricalrR   Trê   )rG  rM   rO  rO  z!does not support reduction 'skew'z datetime64 type does not supportzPeriod type does not supportzcategory type does not support) r  r   ra   rg   ÚmarkÚxfailr;  ÚnodeZ
add_markerr   r  r   r1   Úhasattrr}   r<   rá   r   r/   r0   r,   ZPeriodDtypeÚkindZorderedrh   r  r6   Úassert_equalrÈ   rz   r*   rY   )r¥   r  rÀ   r  r	  ÚrequestZusing_array_managerrÚ  Zoverride_dtyper  r9   r  r  Zis_perZis_dt64Zis_catrp   r   r   r   )r:   r  r  r	  rÀ   r   Útest_empty_groupby1  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»   rA   rJ   r#   FrH   c                 S   s   | S rK   r   rD   r   r   r   rF   Ð  rG   z<test_empty_groupby_apply_nonunique_columns.<locals>.<lambda>)r   r4   r^   rû   rz   r=   r¥   r0   re   r}   rá   r   )r9   r:   r§   r   r   r   Ú*test_empty_groupby_apply_nonunique_columnsÊ  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 )NrJ   r#   )r°   r±   r²   rÃ   z
('a', 'b')rR   r±   r²   rÃ   r°   r»   r  r  )
r   rg   rh   r›  r0   rM   r   r
   r6   rc   r  r   r   r   Útest_tuple_as_groupingÔ  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 )	NrJ   rA   r#   r»   rh  z
^\(7, 8\)$rR   )rN   ru  )	r   r2   r   r˜  rg   rh   r›  r0   rZ   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 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 )NrJ   r¹   Zmycolsr  ú
2018-01-01r#   ræ   Údti)r!   rž  rY   rÆ   ))r¹   rM   r¹   )r¹   ÚohlcÚopen)r¹   r   r×  )r¹   r   rØ  )r¹   r   Úcloser
  )rž  rM   r   )
r   r
   r   r   r  r0   r	   rd   r6   r7   rk  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ddd	d
g|d�}|jdd� ¡ }tdd	gddgd�}t 	||¡ d S )Nr±   iÜ  rJ   r#   r²   rA   Údater
  g      @r»   r)   rR  ró  )
r,   r.   r   r   r  r   r0   rZ   r6   rc   )rÀ   r  r8   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 )NrV   Úappler²   r  z$Grouper and axis must be same lengthrR   )r6  r2   r   rg   rh   r;  r0   )rÀ   r9   rp   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 )NrE   r±   r²   rl   r�   rY  Úthirdr
  rJ   r#   re  rA   r)   )r   Úfrom_arraysr   r0   rM   r6   rc   )Zindex_arrayZindex_namesÚrirb  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
  rJ   r#   rA   r»   rí   r)   rR  )r   r˜  r   r0   r	   rÝ   r   )r  r9   r   r   r   r   r   Ú"test_groupby_groups_in_BaseGrouper3  s    "r.  Ú
group_namerE   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 )NrO   rA   r»   r   rJ   rV   rW   rh  rÊ   rE   r‘   rº   rU  r¹   rT   rU   Úx1)Ú	iterablesrÅ   é   rï   )r   r4   r5   rÈ  r*   rY   r¥   r0   rM   r¦   r6   r7   r   r˜  )r/  r9   Úresultsr   r1  r  r   r   r   Útest_groupby_axis_1A  s       
ÿ"r4  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   r7  r8  r9  r:  )r�  r6  c                    s   | j j ˆ ¡S rK   ©r6  r£  Ztz_localizerD   r%   r   r   rF   ‘  rG   z+test_shift_bfill_ffill_tz.<locals>.<lambda>)r6  r�  c                    s   | j j ˆ ¡S rK   r<  rD   r%   r   r   rF   •  rG   )r   r   Zassignr0   rÙ   r6   r7   )Ztz_naive_fixturer	  r   rj   r9   rk   r   r   r%   r   Útest_shift_bfill_ffill_tzW  s    .úþ
r=  c                  C   sD   t d gddœƒ} |  d¡d  d¡}ttjgdd�}t ||¡ d S )NrJ   )r¡   rE   r¡   rE   rM   r  )r   r0   rf   r   r4   rŽ   r6   rc   )r9   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ï   ru  r¾   r½   rm  r)   r   rR  g      @)r   r0   rZ   r6   rc   )r8   r:   r   r   r   r   r   Útest_groupby_duplicate_index£  s
    r?  c                 C   s8  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rbd}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�r(| t¡}t 	||¡ d S )NrJ   r  rA   r»   Zcol_1Zcol_2Zcol_3Zcol_4©rj   r¥   Zfillna)r;  r   r   )Údiffr5  )
r   r   rz   r  rÈ   r/   r0   rf   r6   r  )Ztransformation_funcr  r9   Úargsr   r   r   r   r   Útest_group_on_empty_multiindex­  s,    
þ""
$ÿ$ÿ

rC  rã   r¹   r  )©r±   r±   rD  rº   r
  c                 C   sn   | dkrt  d| › �¡ tddgg|d�}| dg¡}t| |ƒ}t|| ƒ|Ž }|jdks\t‚t 	|j
|¡ d S )N>   r-  Úcumcountr,  zNot applicable for rJ   r  r   r¤   )rg   r.  r   r0   r   rÙ   Úshaper   r6   r=  r¥   )Zgroupby_funcrã   r9   Zgrp_byrB  r   r   r   r   Útest_dup_labels_output_shapeÌ  s    
rG  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 )Nr  r#   r¹   )r!   rY   rJ   rA   r   )r}  )r   r'   )ræ   r   )rº   rU  )r’   r   )r   ræ   r)   rº   )r   r   r¥   rÅ   r*   Z_get_axis_numberr¦   r0   ZnuniquerY   r6   r7   rt   rz   r4   r?   )
r’   r  r9   Zaxis_numberr:   r   r   rõ  r  r§   r   r   r   Útest_groupby_crash_on_nuniqueá  s*    

rH  c                  C   s>   t t dd¡ dd¡td�} | jdgd� ¡ }t || ¡ d S )Nr   r@   rA   r‚   rR  )	r   r4   r5   rÈ  r¼   r0   rZ   r6   r7   )r   r   r   r   r   Útest_groupby_list_level	  s    rI  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], ...})rJ   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"   rJ   r±   zdisplay.max_seq_items)r   r4   r^   rû   r*   r,   Zoption_contextr0   rÝ   Ú__repr__r   rü   r±   )Zmax_seq_itemsr   r9   r   r   r   r   Útest_groups_repr_truncates	  s    

rK  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 )NrJ   r#   éc   rÎ   éX   r±   r²   r¤   r   r‚   )
r   rÈ   r0   rÞ   r4   rü   r=   ra   r   rá   )r9   r…   r   r   r   r   r   r   Ú6test_group_on_two_row_multiindex_returns_one_tuple_key 	  s    rN  zklass, attr, valuer   rj  rI   ZobservedrÚ  c                 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 )	NrJ   r#   rA   rÎ   r’   r±   r²   )r±   )r   rÈ   r0   rÙ   r   )rM  r)  rs   r9   r   r   r   r   r   Ú#test_subsetting_columns_keeps_attrs.	  s    
rO  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 )NrJ   r#   rA   r+   r   r‘   z'Cannot subset columns when using axis=1rR   r   r   )r   r0   rg   rh   r;  rM   )r¡   rS   r   r   r   Útest_subsetting_columns_axis_1J	  s    &rP  rÝ  Úanyc                 C   sH   t dgdd�}tdgg|d�}| dg¡}t|| ƒƒ j}t ||¡ d S )Nr±   rã   r  rJ   r  )r
   r   r0   rÙ   r¥   r6   r=  )rÝ  r   r9   r¢   r   r   r   r   Ú#test_groupby_column_index_name_lostR	  s
    rR  c                  C   s†   t ddddgddddgd	d
ddgdœƒ t¡} dddg| _|  ddddg¡ ¡ }t ddd	ggt dg¡dddgtd�}t 	||¡ d S )Nr–   r�   r¡   ro  r±   r²   rÃ   rn  rJ   r#   rA   r»   r+   r   r   r   )r*   r¥   r<   )
r   rz   rg  r¥   r0   rE  r4   rü   r6   r7   r  r   r   r   Útest_groupby_duplicate_columns\	  s    "ÿþ
 
  ÿrS  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 )
NrJ   r#   rA   r»   rD  )r*   rY   )r²   r²   r   rR  )r   r*   rY   r0   Úlastr6   rc   )r8   r   r   r   r   r   Ú#test_groupby_series_with_tuple_namei	  s    rU  zGH#38778: fail on 32-bit system)Úreasonz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ÃrJ   r#   r»   ©rw   r±   r²   rw   r°   r  r)   )r   rÙ   r0   r
   r6   r7   )rÝ  rÀ   rj   r9   r   r   r   r   r   Ú)test_groupby_numerical_stability_sum_means	  s
    r^  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 )NrY  rZ  r[  r\  rJ   r#   r»   r]  rw   g0€à7yÃACg1€à7yÃACga€à7yÃ1Cgb€à7yÃ1CrW  rX  r°   T)Zcheck_exact)r   r0   r  r6   r7   )rj   r9   r   Zexp_datar   r   r   r   Ú'test_groupby_numerical_stability_cumsum€	  s     ÿr_  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"   rJ   r   F©Úskipnar   r#   rA   r»   )r4   r^   rû   r   r2   rŽ   r/   r0   r  r6   r7   )rŠ  r9   Úir:   r§   r   r   r   r   Ú test_groupby_cumsum_skipna_false�	  s    
rc  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#   rJ   r}  r   FT)rë   ra  r   r»   )	r   r   r,   r.   r   r0   r  r6   r7   )r  r8   r9   r:   r§   r  r   r   r   Útest_groupby_cumsum_timedelta64�	  s    

,$rd  c                 C   s4   | }|j dd� ¡ }|  |j¡ ¡ }t ||¡ d S )Nr   rR  )r0   rZ   r*   r6   rc   )Z(rand_series_with_duplicate_datetimeindexZdupsr   r   r   r   r   Ú!test_groupby_mean_duplicate_index¯	  s    re  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 )NrJ   r#   rA   r‚   rB   )r   r4   rŽ   r0   r*   rM   r
   r?   r=   r6   rc   )rb  r   r   r   r   r   Ú test_groupby_all_nan_groups_drop¶	  s    rf  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'   r@  r›   rê   r
  r   rÆ   )r   r0   rM   r   r   r6   r7   )rœ   rë   r9   r:   r   r*   r¥   r   r   r   r   Útest_groupby_empty_multi_column¾	  s    rg  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  rJ   ÚWrV   rW   ZMWrm   r  rg  ©r<   rY   r)   r¿  )r   r
   r0   rM   r6   r7   ©r9   r   r:   r   r   r   r   Ú*test_groupby_aggregation_non_numeric_dtypeÎ	  s    " ÿ ÿürk  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 )NrJ   r   c                 S   s   g | ]}t |d ƒ‘qS ©Údays©r   ©r®   rb  r   r   r   r¶   å	  s     zDtest_groupby_aggregation_multi_non_numeric_dtype.<locals>.<listcomp>rï   c                 S   s   g | ]}t |d  dƒ‘qS ©rV   rm  rn  ro  r   r   r   r¶   æ	  s     rë  c                 S   s   g | ]}t |d ƒ‘qS rl  rn  ro  r   r   r   r¶   ì	  s     rN   r@   c                 S   s   g | ]}t |d  dƒ‘qS rp  rn  ro  r   r   r   r¶   í	  s     ©rÊ   rì  r=   rE   ri  r)   r¿  )r   r2   r
   r0   rM   r6   r7   rj  r   r   r   Ú0test_groupby_aggregation_multi_non_numeric_dtypeà	  s    ýÿþûrr  c                  C   sŽ   t dddddg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 )NrJ   r   c                 S   s   g | ]}t |d ƒ‘qS rl  rn  ro  r   r   r   r¶   ü	  s     zKtest_groupby_aggregation_numeric_with_non_numeric_dtype.<locals>.<listcomp>rï   rë  rN   rm  ru  rq  r=   rE   ri  r)   r¿  )	r   r2   r1   r   r
   r0   rM   r6   r7   rj  r   r   r   Ú7test_groupby_aggregation_numeric_with_non_numeric_dtype÷	  s    ýÿþrs  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     €>@rt  ru  r°  g$+¿ÆH@rv  rw  r  rÆ   )r   r0   r3   r
   r6   r7   )Zdictsr9   Z	df_filterZdfgbr   r   r   r   r   Útest_groupby_filtered_df_std
  s    ý

ýrx  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‚   r(   r   rJ   )Ú
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   r1   r   r   Z
from_codesr0   rÞ   r   r4   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BobrJ   r#   rA   r»   rY   rš  z<__init__\(\) got an unexpected keyword argument 'min_period'rR   )ZwindowZ
min_period)r4   rŽ   r   r¦   r¥   rg   rh   r  r0   ZrollingrM   )Zname_lZval_lZtest_dfZresult_error_msgr   r   r   Ú#test_rolling_wrong_param_min_period4
  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ÚMoodrM   )r€  r  r~  iÄ	  )r€  r  r~  )r   r   Úmoder0   rd   rÈ   r6   r7   )r9   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 )NrJ   r   r#   rA   r±   r²   r
  r)   rR  )r°  r#   )rµ   rA   )r   r   r)  r0   rM   r  r6   rc   )rŠ  r8   r   r   r   r   r   Ú#test_groupby_none_in_first_mi_levelW
  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 )NrJ   r#   rA   r»   r"   rï   rN   )Nr²   rÃ   r¿  r@   é   rä  r  r)   )r   r0   rM   r
   r6   r7   r  r   r   r   Útest_groupby_none_column_nameb
  s    (&r…  c                  C   sV   t ddgtjdgtjdgdœddgd�} dd	„ |  d
g¡D ƒ}ddg}||ksRt‚d S )NrJ   r#   r"   rÎ   rE   rÊ   r)   c                 S   s   g | ]\}}|‘qS r   r   )r®   r   rv  r   r   r   r¶   m
  s     z5test_single_element_list_grouping.<locals>.<listcomp>r±   )rJ   )r#   )r   r4   rŽ   r0   r   r  r   r   r   Ú!test_single_element_list_groupingj
  s    (r†  r  Úcumprodc                 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™33ffrJ   r°   r±   r²   r   r  r)   )r  r‡  Tr!  )r   rÙ   r0   r
   r&  r6   r7   )rÝ  rš  r9   r   r   r   r   r   Ú#test_groupby_avoid_casting_to_floatr
  s    rˆ  z	func, val)rM   rA   )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 )	NrJ   r#   r°   r‚   r±   r²   r–  rB   )r   r,   ÚNArÙ   r0   r
   r6   r7   )Úany_numeric_ea_dtyperÝ  rš  r9   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 )NrJ   r°   Ú8r‚   r±   r²   r#   r–  Z64rB   )r   r0   rM   r
   r6   r7   r  rG  )rš  r<   r9   r   r   r   r   r   Útest_groupby_overflow‹
  s$    ýýr�  zskipna, val)TrA   c                 C   sT   t ddtjdgdœ| d�}| d¡j|d�}t ddtj|gi| d�}t ||¡ d S )NrJ   r#   r°   r‚   r±   r`  r²   )r   r,   r‰  r0   r  r6   r7   )rŠ  ra  rš  r9   r   r   r   r   r   Útest_groupby_cumsum_mask¤
  s    þr�  zval_in, index, val_outrµ   r¾   ró  r½   rm  rU  Úblahg      @g      &@c                 C   sx   t | dt|dd�d�}| d¡ ¡ }t |dtddddgdd�d�}t ||¡ | ¡  d¡ ¡ }| ¡ }t ||¡ d S )NrÀ   r‘  r  )rj   rY   r*   rº   rU  r¹   )r   r
   r0   rM   r6   rc   r-   r7   )Zval_inr*   Zval_outZseriesr   r   r   r   r   Ú(test_groupby_index_name_in_index_content°
  s    ýr’  rô  rV   é    r  rÖ  c                 C   s`   t ddg|  dœƒ}|d  d¡|d< | d¡ ¡ }t d| gitdgdd�d�}t ||¡ d S )NrJ   T)ru  r  r  ru  r  r)   )r   Úeqr0   rM   r
   r6   r7   )rô  r9   r   r   r   r   r   Útest_sum_of_booleansÏ
  s
    r•  z<ignore:invalid value encountered in remainder:RuntimeWarningrÜ   Útailr%  r�   rT  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
kr‚t ddddgiƒ tdddgdd�¡}n$t dddgdddgdœdddgd�}t 	||¡ d S )Nr±   r²   rÃ   r"   r}  r%  r   r   )rô  )r�   rT  r   r#   r»   r  r)   )
r   r4   rŽ   r2   rÙ   r0   rÈ   r   r6   r7   )r  r9   r   r   r   r   r   Útest_groupby_method_drop_naÙ
  s     ÿ$r—  c               	   C   s&  t jdddd�} ttdƒƒ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d … }ttdƒtjd�|_t ||¡ | ¡ }|d d… }ttdƒtjd�|_t ||¡ d S )Nr  r  ræ   r  rV   z+Period type does not support sum operationsrR   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   Z	to_seriesr0   rg   rh   r  rM   r  rG  r‡  r  r
   r4   Úint_r*   r6   rc   rE  )ÚpiZgrpsr8   r:   r§   r   r   r   r   Útest_groupby_reduce_periodï
  s4    
 ÿ ÿr›  c                  C   sX   t ddddggƒ} ddddg| _|  | d ¡}|j}| jdddgdd�}t ||¡ d S )Nr   rJ   r#   rA   r‘   )r   r¥   r0   Z_obj_with_exclusionsrà   r6   r7   )r9   r:   r   r   r   r   r   Ú*test_obj_with_exclusions_duplicate_columns  s    rœ  )°r   Údecimalr   Únumpyr4   rg   Zpandas.compatr   Zpandas.errorsr   r   Zpandasr,   r   r   r	   r
   r   r   r   r   r   r   r   Zpandas._testingZ_testingr6   Zpandas.core.arraysr   Zpandas.core.commonÚcoreÚcommonr¸  Zpandas.tests.groupbyr   r   r;   r  Zparametrizerq   r   r�   r£   r¨   r´   r¸   rÂ   rÒ   rÚ   rä   ré   rî   rý   rþ   r  r  r  r  r  r+  r/  r0  r4  r7  r9  r<  r>  r@  rC  rF  rN  rP  rQ  rS  rT  rX  rZ  r_  rc  rf  rl  rr  rw  rx  r|  r~  r  r€  r†  r‡  rˆ  rŒ  r�  r•  r—  r™  rœ  r   r¢  r¨  rª  r²  r³  r½  r¾  rÄ  rÅ  rÉ  rÌ  rÐ  rÑ  rÒ  rÕ  rá  rå  rî  rò  rö  r  r  r˜  rü   r  r  r  r  r#  r%  r'  r,  r.  r4  r=  r>  r?  rC  r  rG  rH  rI  rK  rN  rO  rP  rR  rS  rU  r  r^  r_  rc  rd  re  rf  rg  rk  rr  rs  rx  r|  r}  r‚  rƒ  r…  r†  rˆ  r‹  r�  r‰  r�  r’  r•  Úfilterwarningsr—  r›  rœ  r   r   r   r   Ú<module>   sV  4
/>-
 ÿ
7(06
 8 	

þ

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