a
    oÝEbÖ@ ã                   @   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	 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mZmZ d dlmZ d dl m!  m"Z# d d	l$m%Z% d
d„ Z&ej' (dg d¢¡dd„ ƒZ)dd„ Z*dd„ Z+dd„ Z,dd„ Z-ej' (dddg¡dd„ ƒZ.dd„ Z/dd „ Z0ej' (dg d!¢¡d"d#„ ƒZ1d$d%„ Z2d&d'„ Z3d(d)„ Z4d*d+„ Z5d,d-„ Z6d.d/„ Z7d0d1„ Z8d2d3„ Z9ej' (d4d5d6„ d7d6„ g¡d8d9„ ƒZ:d:d;„ Z;d<d=„ Z<d>d?„ Z=d@dA„ Z>dBdC„ Z?dDdE„ Z@dFdG„ ZAdHdI„ ZBdJdK„ ZCdLdM„ ZDdNdO„ ZEdPdQ„ ZFej' (dRdSdTg¡dUdV„ ƒZGej' (dRg dW¢¡dXdY„ ƒZHdZd[„ ZId\d]„ ZJd^d_„ ZKd`da„ ZLdbdc„ ZMddde„ ZNdfdg„ ZOdhdi„ ZPdjdk„ ZQdldm„ ZRdndo„ ZSdpdq„ ZTdrds„ ZUdtdu„ ZVdvdw„ ZWdxdy„ ZXdzd{„ ZYd|d}„ ZZd~d„ Z[d€d�„ Z\ej' ]d‚¡dƒd„„ ƒZ^d…d†„ Z_d‡dˆ„ Z`d‰dŠ„ Zad‹dŒ„ Zbd�dŽ„ Zcd�d�„ Zdd‘d’„ Zed“d”„ Zfd•d–„ Zgd—d˜„ Zhd™dš„ Zid›dœ„ Zjd�dž„ ZkdŸd „ Zld¡d¢„ Zmd£d¤„ Znd¥d¦„ Zoej' (d§d¨d¨d©gg¡dªd«„ ƒZpd¬d­„ Zqd®d¯„ Zrd°d±„ Zsd²d³„ Ztd´dµ„ Zud¶d·„ Zvd¸d¹„ Zwdºd»„ Zxej' (d¼d½d¾d¿d½d¾gd½d¿gg¡ej' (dÀdÁdÂdÁdÂgg¡dÃdÄ„ ƒƒZydÅdÆ„ Zzej' (dÇdÈdÈgg¡ej' (dÉd¨gd¨d©gg¡e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
¡ej' (dÔg dÕ¢¡ej' (d4g dÖ¢¡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þ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g �d¢¡�d�d„ ƒZ��d�d„ ZŽej' (�de�ddÌfeddfe�ddfe�ddfe�ddfe�ddfe�ddfej�e�ddÍej'j��d�d��d�e�ddÌfeddfe�ddfe�ddfe�ddfe�ddfe�ddfg¡ej' ]�d¡�d�d„ ƒƒZ‘�d�d „ Z’ej' (�d!g �d"¢¡�d#�d$„ ƒZ“�d%�d&„ Z”�d'�d(„ Z•ej'j�e �d)�d�ej' (�d*�d+�d,�d-gf�d.�d/�d0gfg¡�d1�d2„ ƒƒZ–ej'j�e �d)�d��d3�d4„ ƒZ—�d5�d6„ Z˜�d7�d8„ Z™ej' (�d9ddg¡�d:�d;„ ƒZš�d<�d=„ Z›�d>�d?„ Zœ�d@�dA„ Z��dB�dC„ Zž�dD�dE„ ZŸ�dF�dG„ Z �dH�dI„ Z¡dS (J  é    )Údatetime)ÚDecimalN)ÚIS64)ÚPerformanceWarning)ÚCategoricalÚ	DataFrameÚGrouperÚIndexÚ
MultiIndexÚ
RangeIndexÚSeriesÚ	TimedeltaÚ	TimestampÚ
date_rangeÚto_datetime)ÚBooleanArrayÚFloatingArrayÚIntegerArray)ÚSpecificationError)Ú"maybe_normalize_deprecated_kernelsc                  C   s$   t tddd�ƒ} d}| |ks J ‚d S )NÚAÚB)ÚkeyÚlevelz/Grouper(key='A', level='B', axis=0, sort=False))Úreprr   )ÚresultÚexpected© r   úa/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/groupby/test_groupby.pyÚ	test_repr#   s    r   Údtype)Úint64Úint32Úfloat64Úfloat32c                    sì  t t d¡d t d¡| d�}t d¡}tj |¡ | |¡}| dd„ ¡}|D ]\}}t|ƒdksPJ ‚qP| tj	¡}|d dks†J ‚t
 || tj	¡¡ t
 || 	¡ ¡ t
 | tj¡| ¡ ¡ | dd„ ¡}| dd„ ¡}|d	 d
ksîJ ‚t
 ||¡ | |¡}	t
j|	 tj	¡|dd� | tj	tjg¡}d}
tjt|
d��$ | tj	tjdœ¡ W d   ƒ n1 �sl0    Y  ddddœ‰ | ‡ fdd„¡}|d dk�s¦J ‚d}
tjt|
d�� | dd„ ¡ W d   ƒ n1 �sÞ0    Y  d S )Né	   é   ©Úindexr    c                 S   s   | d S ©Nr&   r   ©Úxr   r   r   Ú<lambda>3   ó    ztest_basic.<locals>.<lambda>é   c                 S   s   | |   ¡  S ©N©Úsumr*   r   r   r   r,   ?   r-   c                 S   s   | |   ¡  S r/   r0   r*   r   r   r   r,   @   r-   é   é   F)Zcheck_index_typeúnested renamer is not supported©Úmatch)ÚoneÚtwoé
   é   é   ©r   r.   é   c                    s   ˆ | j  |  ¡  S r/   )Ú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ÚlenÚ	aggregater?   ÚtmÚassert_series_equalÚaggr1   ÚapplyÚ	transformÚstdÚpytestÚraisesr   Ú	Exception)r    Údatar(   ÚgroupedÚkÚvÚaggedr   ÚtransformedZvalue_groupedÚmsgr   r@   r   Ú
test_basic*   s<    


ÿ4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   r1   Ú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   sf  t dddœdddœdddœdddœgƒ} dd	„ }t t¡�$ | jd
dd� |¡}W d   ƒ n1 sd0    Y  t|tƒs|J ‚t dddœdddœdddœdddœgƒ}dd	„ }t t¡�$ |jd
dd� |¡}W d   ƒ n1 sà0    Y  t|tƒsøJ ‚t ddgddggddgd�}t t¡�" |jddd� ¡ }W d   ƒ n1 �sH0    Y  t|t ƒ�sbJ ‚d S )Nr.   r:   )Úval1Úval2é   r=   é   r3   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   Úcount)Údf1rs   r   Údf2rj   r   r   r   Útest_groupby_return_typep   s4    üÿ	2üÿ	22r   c                  C   s~  t g d¢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)ÚTigerr€   r€   ÚLambr�   ÚPonyr‚   r2   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    
r€   c                 S   s   | j dkrd S | jd S ©Nr‚   r   rŒ   r‰   r   r   r   r‹   ¶   s    
r‚   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 r/   ©Úmonthr*   r   r   r   r,   ß   r-   r™   r”   çš™™™™™é?)r˜   )TFc                 S   s   | j S r/   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ˆ   g d¢| _ | jdd„ |d�}|jtjddd�}| | jjdk  d	¡| | jjd
k  d	¡dœ}t|ƒj	}|sxt
td
ƒƒ|_t ||¡ d S )N)r   r   r   r†   c                 S   s   | j S r/   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s8J ‚|  dd„ dd„ g¡}tdd„ | jD ƒƒ}t|ƒ|ksrJ ‚ttjgd	 g d
¢dœƒ} t|  d¡ƒdks¢J ‚t|  d¡ƒd	ks¸J ‚t|  ddg¡ƒd	ksÒJ ‚d S )Nc                 S   s   | j S r/   ©Úyearr*   r   r   r   r,     r-   ztest_len.<locals>.<lambda>c                 S   s   | j S r/   rš   r*   r   r   r   r,     r-   c                 S   s   | j S r/   ©Údayr*   r   r   r   r,     r-   c                 S   s   | j S r/   r«   r*   r   r   r   r,     r-   c                 S   s   | j S r/   rš   r*   r   r   r   r,     r-   c                 S   s   h | ]}|j |jf’qS r   )r¬   r›   ©Ú.0r+   r   r   r   Ú	<setcomp>  r-   ztest_len.<locals>.<setcomp>r&   ©r.   r=   r&   ©ÚaÚbr´   r   rµ   )rK   ÚmakeTimeDataFramerH   rI   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>+  r-   z)test_basic_regression.<locals>.<listcomp>r.   r9   iL  g      $@)r   Úlistrg   rC   rE   rH   r?   )r   rT   Ú	groupingsrU   r   r   r   Útest_basic_regression)  s
     
r¼   )r#   r$   r!   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 )Nr9   rƒ   ÚfooÚbar©r(   é   r=   F)Zcheck_dtypec                 S   s   t t| ƒƒS r/   )Ú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   s„  dd„ } dd„ }dd„ }t g d¢tdƒtd	d
ƒdœƒ}t g d¢tdƒtd	d
ƒdœƒ}| d¡ | ¡}| d¡ | ¡}t ||¡ d}tjt|d��  | d¡ |¡ W d   ƒ n1 s¸0    Y  tjt|d��  | d¡ |¡ W d   ƒ n1 sö0    Y  tjt|d��  | d¡ |¡ W d   ƒ n1 �s60    Y  tjt|d��  | d¡ |¡ W d   ƒ n1 �sv0    Y  d S )Nc                 S   sb   | | j d dk d }|jrLtg gd g gd ddgd�}tdg|d�}|S | ddg¡}|S d S )Nr=   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>.f3)r.   r=   r=   r=   rÀ   é   r%   ©r´   rµ   rÈ   )r&   r=   r=   r=   r´   z@Cannot concat indices that do not have the same number of levelsr5   )	r   rg   rH   rN   rK   re   rQ   rR   ÚAssertionError)rÐ   rÑ   rÒ   rj   r~   Úresult1Úresult2rZ   r   r   r   Ú test_indices_concatenation_orderR  s"    
..0rØ   c                 C   s¼   |   dd„ ¡}| ¡ }| dd„ ¡}t ||¡ | ¡ }dd„ |D ƒ}t|ƒj}t ||¡ |j	}| dd„ ¡}t ||¡ d}t
jt|d�� t|d	ƒ W d   ƒ n1 s®0    Y  d S )
Nc                 S   s   |   ¡ S r/   ©Ú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>“  r-   z%test_attr_wrapper.<locals>.<dictcomp>c                 S   s   | j S r/   rƒ   r*   r   r   r   r,   ™  r-   z-'SeriesGroupBy' object has no attribute 'foo'r5   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*J ‚t|jƒdks<J ‚|  ¡ }dd„ |jD ƒ|d< |  d¡ tj¡}tj	||dd	� |  
d
¡  dd„ ¡}| dd„ ¡}t|ƒd
ks¬J ‚t|jƒdks¾J ‚| dd„ ¡}|D ]2\}}| ¡ }|jD ]}	tj| |	¡|dd	� qæqÐ|D ]"\}
}|jd  ¡ |
k�sJ ‚�q|j}|j}| ¡ D ],\}}| j || ¡}||k ¡ �s@J ‚�q@d S )Nc                 S   s   |   ¡ S r/   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¹   ¬  r-   z&test_frame_groupby.<locals>.<listcomp>rÚ   FrŸ   r;   c                 S   s   |   ¡ S r/   rÙ   r*   r   r   r   r,   ±  r-   c                 S   s   | |   ¡  S r/   rq   r*   r   r   r   r,   ²  r-   c                 S   s   |   ¡ S r/   rq   r*   r   r   r   r,   ·  r-   r   )rH   rJ   rC   r?   rI   rx   rf   r(   rK   re   ÚheadrO   rL   Ú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<J ‚t|jƒdksNJ ‚dd„ }| jj |dd�}t | 	|¡j| 	|¡¡ |D ]\}}t|jƒdks„J ‚q„d S )Nr   r.   ©r   r   r†   ÚDr”   r=   c                 S   s   | |   ¡  S r/   rq   r*   r   r   r   r,   Ô  r-   z,test_frame_groupby_columns.<locals>.<lambda>)
rH   rJ   rC   r?   rI   rx   r§   rK   re   rO   )r¢   ÚmappingrU   rè   ÚtfZgroupedTrV   rW   r   r   r   Útest_frame_groupby_columnsÊ  s    rï   c                 C   s6  |   d¡}| ¡ }|jjdks"J ‚| j ddd� ¡ }|jjdksDJ ‚| tj¡}|jjdks`J ‚| tjtjdœ¡}|jjdks„J ‚|d  ¡ }|jjdks J ‚|d  tj¡}|jjdksÀJ ‚|d  tjtjg¡}|jjdksæJ ‚d}tjt	|d��( |d  tjtjdœ¡ W d   ƒ n1 �s(0    Y  d S )	Nr   Fr�   ©r†   rì   r†   r4   r5   ©r½   r¾   )
rH   r?   r(   r>   rM   rC   rP   rQ   rR   r   )rj   rU   r   rZ   r   r   r   Útest_frame_set_name_singleÝ  s$    
rò   c                 C   sÌ   | d }| d }|   |j|jg¡}| ¡ }|   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 
g d¢¡t 
g d	¢¡d
œg d¢d�} |   ddg¡}| tj¡ d S )Nr   r   r†   rì   FrŸ   é   ©rµ   rµ   rµ   r´   r´   r´   ©Ú1rö   rö   Ú2r÷   r÷   )Úv1Úv2Úk1Úk2)r7   r8   ÚthreeÚfourÚfiveÚsixr¿   rú   rû   )rH   Úgetr?   rK   re   r^   r   rC   rE   ÚrandnÚarrayrM   r1   )rj   Zcol1Zcol2rU   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 g d¢g d¢g d¢tj d¡tj d¡tj d¡dœƒ} |  ddg¡}tjtjg}tjt	dd	�� | 
|¡}W d   ƒ n1 s‚0    Y  tj|d
  
|¡|d  
|¡|d  
|¡gg d¢dd�}t|jtƒsÔJ ‚t|jtƒsäJ ‚t ||¡ d S )N)r½   r½   r½   r½   r¾   r¾   r¾   r¾   r½   r½   r½   )r7   r7   r7   r8   r7   r7   r7   r8   r8   r8   r7   )Údullr  Úshinyr  r  r  r  r  r  r  r  é   )r   r   r†   rì   ÚEÚFr   r   z&\['C'\] did not aggregate successfullyr5   rì   r  r	  )rì   r  r	  r.   )Úkeysr•   )r   rC   rE   r  rH   r?   rP   rK   ry   rz   rM   r�   Úconcatr{   r(   r
   re   )rT   rU   ÚfuncsrX   r   r   r   r   Ú"test_frame_multi_key_function_list  s.    


Öÿ/ÿ(&ýr  Úopc                 C   s   |   ¡ S r/   r0   r*   r   r   r   r,   \  r-   r,   c                 C   s   |   ¡ S r/   rq   r*   r   r   r   r,   \  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_columns\  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„ ¡}tg d¢dt g d¢¡d�}t ||¡ d S )Nr.   r=   rÀ   rÓ   ró   r   r   rw   Fr�   ©r>   c                 S   s   |   ¡ S r/   )Úcumsumr*   r   r   r   r,   „  r-   z-test_as_index_select_column.<locals>.<lambda>)r=   ró   ró   ))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   sZ   t tg d¢dd�d�} | jddd�d jdd	�}t | jd d
… tdƒd�}t ||¡ d S )Nr…   Úalphar  rw   r   F)Úbyrž   r   ©Únumeric_onlyr=   r   rË   )r   r	   rH   r1   rx   rg   rK   re   )rj   Úleftr   r   r   r   Ú0test_groupby_as_index_select_column_sum_empty_df‹  s    r!  c                 C   s$  | j ddd�}| tj¡}| ¡ }t ||¡ | tjtjdœ¡}| ¡ }| ¡ d |d< t ||¡ | j ddd�}d}tjt	|d��$ |d	  d
tji¡ W d   ƒ n1 s°0    Y  | 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¡g d¢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ì   Tr4   r5   r†   ÚQr   rw   r   éd   )é2   r&   )ÚjimZjoeZjolierÓ   r9   r$  r%  r  )r?   Úmaxr|   r_   r  rç   )Zdrop)rH   rM   rC   r?   rK   re   r1   rQ   rR   r   r   ÚrenamerE   Úrandintr   ÚnthrN   rß   rÅ   Úreset_index)rj   rU   r   r   r×   Ú	expected2rZ   Z	expected3Zresult3r¡   ÚgrÚattrr   Úrightr   r   r   Útest_groupby_as_index_agg”  sF    2

r/  c                 C   s  | dv rt  d¡ | dv r$t  d¡ ttjjdddd�d	d
gd�}t| d	¡| ƒƒ }| dkrf| d¡}| 	¡ }| dkrŽ|d	  
|d	 j¡|d	< |jd	dd�}t|| ƒƒ }t ||¡ | | ¡}t ||¡ t|d
 | ƒƒ }t ||¡ |d
  | ¡}t ||¡ d S )N)ÚcorrwithzTest not applicable)r)  Úngroupz,Skip until behavior is determined (GH #5755)r   rÓ   )r#  r=   )Úsizer´   rµ   rw   r2  Fr�   )rQ   Úskipr   rC   rE   r(  rß   rH   r'  r*  rd   r    rK   re   rM   )Zreduction_funcrj   r   r£   r   r   r   r   Útest_ops_not_as_indexÌ  s(    



r4  c                 C   s6  | 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\J ‚t ||¡ |d  tj¡}| tj¡jd d …g d¢f }t|tƒs¤J ‚t ||¡ |d  ¡ }| ¡ jd d …ddgf }t|tƒsäJ ‚t ||¡ |d  ¡ }| ¡ jd d …g d¢f }t|tƒ�s&J ‚t ||¡ d S )Nr   Fr�   r   r†   r…   )	rH   rM   rC   r1   r^   r{   r   rK   re   )rj   rU   Zgrouped2r   r   r×   r+  r   r   r   Ú!test_as_index_series_return_frameï  s$    r5  c                 C   sR   | j ddd�}d}tjt|d�� |d  d¡ W d   ƒ n1 sD0    Y  d S )Nr   Fr�   zColumn\(s\) C already selectedr5   r†   rì   )rH   rQ   rR   Ú
IndexErrorÚ__getitem__)rj   rU   rZ   r   r   r   Ú(test_as_index_series_column_slice_raises  s    r8  c                 C   sÖ   | }|j ddd�}| ¡ }|  dg¡ ¡ }| 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   r   r.   )rH   r?   Úinsertr(   rC   rD   rI   rK   re   rº   ÚziprÅ   )rj   rT   rU   r   r   Zarraysr   r   r   Útest_groupby_as_index_cython  s    r;  c                 C   sL   | j ddgdd�}|d  t¡}| t¡jd d …g d¢f }t ||¡ d S )Nr   r   Fr�   r†   r…   )rH   rM   rI   r^   rK   re   ©rj   rU   r   r   r   r   r   Ú#test_groupby_as_index_series_scalar(  s    r=  c                 C   sŽ   d}t jt|d��" |jdd„ dd� W d   ƒ n1 s:0    Y  d}t jt|d��$ | jdd„ dd	d
� W d   ƒ n1 s€0    Y  d S )Nz(as_index=False only valid with DataFramer5   c                 S   s   |   ¡ S r/   rÙ   r*   r   r   r   r,   5  r-   z.test_groupby_as_index_corner.<locals>.<lambda>Fr�   z$as_index=False only valid for axis=0c                 S   s   |   ¡ S r/   )Úlowerr*   r   r   r   r,   9  r-   r.   )rž   r•   )rQ   rR   Ú	TypeErrorrH   Ú
ValueError)rj   r¡   rZ   r   r   r   Útest_groupby_as_index_corner2  s    0rA  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 r/   r«   r*   r   r   r   r,   >  r-   z+test_groupby_multiple_key.<locals>.<lambda>c                 S   s   | j S r/   rš   r*   r   r   r   r,   >  r-   c                 S   s   | j S r/   r­   r*   r   r   r   r,   >  r-   c                 S   s   | j S r/   r«   r*   r   r   r   r,   C  r-   c                 S   s   | j S r/   rš   r*   r   r   r   r,   C  r-   c                 S   s   | j S r/   r­   r*   r   r   r   r,   C  r-   r.   r”   c                 S   s   |   ¡ S r/   r0   r*   r   r   r   r,   F  r-   c                 S   s   |   ¡ S r/   r0   r*   r   r   r   r,   J  r-   )rK   r¶   rH   r1   Zassert_almost_equalrÅ   r§   rM   Úassert_index_equalr(   rx   )rj   rU   rX   r   r   r   Útest_groupby_multiple_key<  s    ÿrC  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_cornerN  s    

rE  c                 C   sÒ   |   d¡}| tj¡}| ¡ }t ||¡ | jd d …g d¢f } t ¡ | d< |   d¡}| tj	¡}| 	¡ }t ||¡ | j dddddœdd�}d}t
jt|d	�� | d
d„ ¡ W d   ƒ n1 sÄ0    Y  d S )Nr   ©r   r†   rì   r  r   r.   )r   r†   rì   r  r”   z does not support reduction 'sum'r5   c                 S   s   | j ddd�S )Nr   Fr  r0   r*   r   r   r   r,   k  r-   z$test_omit_nuisance.<locals>.<lambda>)rH   rM   rC   r?   rK   re   r^   r   Únowr1   rQ   rR   r?  )rj   rU   rX   r  r   r   rZ   r   r   r   Útest_omit_nuisanceZ  s    

rH  Ú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   rI  rU   r   r   r   r   r   Útest_keep_nuisance_aggn  s    
$$rL  )r1   r?   ÚprodrP   ÚvarÚmedianc                 C   sJ   |   d¡}t||ƒƒ }t| jd d …g d¢f   d¡|ƒƒ }t ||¡ d S )Nr   rF  )rH   rß   r^   rK   re   rK  r   r   r   Útest_omit_nuisance_agg|  s    
$rP  c                 C   sp   t jtdd��N |  d¡}| ¡ }| jd d …g d¢f  d¡ ¡ }t  ||¡ W d   ƒ n1 sb0    Y  d S )NÚalways)Zfilter_levelr   rF  )rK   ry   rz   rH   Úskewr^   re   r<  r   r   r   Útest_omit_nuisance_warningsˆ  s
    
 rS  c                 C   s2   |   ddg¡}| tj¡}| ¡ }t ||¡ d S )Nr   r   )rH   rM   rC   r?   rK   re   )Zthree_grouprU   rX   r  r   r   r   Ú"test_omit_nuisance_python_multiple‘  s    rT  c                 C   sÄ   t t g d¢¡t g d¢¡ddgd tj d¡tj d¡dœƒ}| dd	g¡}| tj¡}| ¡ }t 	||¡ | dd
… jdd�}| 
dd„ ¡}|d  
tj¡}t |d |¡ |jjdksÀJ ‚d S )Nrô   rõ   r½   r¾   r&   ró   )rú   rû   Zk3rø   rù   rú   rû   rÓ   r   ©r   c                 S   s   |   ¡ S r/   rq   r*   r   r   r   r,   «  r-   z*test_empty_groups_corner.<locals>.<lambda>r   rŽ   )r   rC   r  rE   r  rH   rM   r?   rK   re   rN   rL   r(   r>   )ri   rj   rU   r   r   rX   Zagged_Ar   r   r   Útest_empty_groups_corner™  s"    


ûÿ
rV  c                  C   sN   t dgƒ} d}tjt|d�� |  dd„ ¡ W d   ƒ n1 s@0    Y  d S )Nr   z5unsupported operand type\(s\) for \+: 'int' and 'str'r5   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    
rW  c                 C   s²   | j }d|d< t g d¢¡t g d¢¡g}| |¡ tj¡}t|jtƒsLJ ‚dd„ }t	j
tdd��  | |¡ |¡}W d   ƒ n1 sˆ0    Y  t|jƒd t|jƒks®J ‚d S )	NZpeekaboo)Úbazr8   ©r   r   r.   c                 S   s   | j dkrt‚n|  ¡ S d S )N)r½   r7   )r>   r?  r1   )Úserr   r   r   ÚaggfunÀ  s    
z5test_wrap_aggregated_output_multindex.<locals>.aggfunzDropping invalid columnsr5   r.   )r§   rC   r  rH   rM   r?   r{   rx   r
   rK   ry   rz   rJ   rI   )ri   rj   r
  rX   r[  Zagged2r   r   r   Ú%test_wrap_aggregated_output_multindex¸  s    .r\  c                 C   sh   | j dd� ¡ }|jjdks J ‚| j dd� ¡ }|jjdks@J ‚| d j dd� ¡ }|jjdksdJ ‚d S )Nr   rU  rŽ   r.   Úsecondr   )rH   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¾   rX  Úqux)r7   r8   rü   rU  c                    s   g | ]}ˆ   |¡‘qS r   ©r   r¯   )Úmapper0r   r   r¹   ß  r-   z-test_groupby_level_mapper.<locals>.<listcomp>rŽ   c                    s   g | ]}ˆ   |¡‘qS r   r`  r¯   )Úmapper1r   r   r¹   à  r-   r]  )rŽ   r]  )	r*  rH   r1   rC   r  r(   r>   rK   re   )ri   Z	deleveledZresult0rÖ   Zmapped_level0Zmapped_level1Z	expected0Z	expected1r   )ra  rb  r   Útest_groupby_level_mapperÖ  s    rc  c                  C   s.  t g d¢tg d¢dd�ƒ} t g d¢ttddƒdd�ƒ}| jdd	� ¡ }t ||¡ | jdgd	� ¡ }t ||¡ | jd
d	� ¡ }t ||¡ | jd
gd	� ¡ }t ||¡ d}tjt	|d�� | jdd	� W d   ƒ n1 sÞ0    Y  tjt	|d�� | jdd	� W d   ƒ n1 �s0    Y  d}tjt	|d�� | jg d	� W d   ƒ n1 �sZ0    Y  d}tjt	|d��  | jddgd	� W d   ƒ n1 �sž0    Y  tjt	|d��  | jddgd	� W d   ƒ n1 �sÞ0    Y  d}tjt	|d�� | jdgd	� W d   ƒ n1 �s 0    Y  d S )N)r.   r=   r&   r9   rÀ   rÓ   r:   ró   )r.   r=   r&   r.   rÀ   rÓ   r=   ró   r½   r  )r  é   r&   rÀ   rÓ   ró   r.   r2   r   rU  éÿÿÿÿz2level > 0 or level < -1 only valid with MultiIndexr5   éþÿÿÿzNo group keys passed!z*multiple levels only valid with MultiIndex)
r   r	   rg   rH   r1   rK   rL   rQ   rR   r@  )Úsr   r   rZ   r   r   r   Útest_groupby_level_nonmultié  s4    *,,00rh  c                  C   s„   t t d¡d g d¢d�} t dƒ}| jdd� ¡ }t ||¡ t t¡� | jdd�}W d   ƒ n1 sj0    Y  t ||¡ d S )NrÀ   ù      ð?       @)r   r   r.   r.   ©rT   r(   )ri  y      @      $@r   rU  )	r   rC   rD   rH   r1   rK   rL   ry   rz   )r´   r   r   r   r   r   Útest_groupby_complex	  s    *rk  c                  C   sª   t dddœdddœdddœgƒ} t tjg d¢tjd�tg d¢d	d
d�tdgd	d�d�}| jd
dd� ¡ }t ||¡ tg d¢d	d
d�|_	| jd
dd� ¡ }t ||¡ d S )Nr.   ù      ð?      ð?r³   ri  rÀ   )r.   r.   r.   rƒ   )rl  ri  ù      ð?        Úobjectrµ   ©r    r>   r´   ©r(   rx   F©Úsort)rm  rl  ri  T)
r   rC   r  r!   r	   rH   r|   rK   re   r(   ©rj   r   r   r   r   r   Útest_groupby_complex_numbers  s     ýÿýrt  c                  C   sj   t g d¢tg d¢ƒd�} t g d¢tg d¢ƒd�}|  |¡}| ¡ }|  | | j¡j¡ ¡ }t ||¡ d S )N)ç      @g      "ÀrÂ   g      Y@g      Àg     €K@gÍÌÌÌÌÌ@)r´   rµ   rÈ   Údr’   r‹   r£   r¿   )r¸   r¸   rÂ   ru  ru  g      @)r´   rµ   rv  r‹   r£   Úh)	r   r	   rH   r?   rG   r(   r   rK   rL   )Ús1Ús2rU   rX   r  r   r   r   Ú'test_groupby_series_indexed_differently.  s    
þÿ
rz  c                  C   sN  t tg d¢g d¢gŽ ƒ} t | ¡}t g d¢¡}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� 	¡ }t
 |j|jd d… ¡ d S )N)r¾   r¾   rX  rX  r½   r½   r_  r_  )r7   r8   r7   r8   r7   r8   r7   r8   ))r   Úcat)r   Údog)r   r{  )r   r|  é   rÀ   rp  r   rU  r.   )r   r•   c                 S   s   |   ¡ S r/   rq   r*   r   r   r   r,   U  r-   z0test_groupby_with_hier_columns.<locals>.<lambda>c                 S   s
   |   d¡S )Nr.   rq   r*   r   r   r   r,   X  r-   r   r   r¾   )r   r½   re  )rº   r:  r
   r  r   rC   rE   r  rH   r?   rK   rB  rx   r(   rM   rN   r	   Z	sortlevel)Ztuplesr(   rx   rj   r   Zsorted_columnsÚ_r   r   r   Útest_groupby_with_hier_columns=  s6    þÿÿ
ÿr  c                 C   s:   |   | d j¡}| ¡ }|   d¡ ¡ }tj||dd� d S )Nr   FrŸ   )rH   rÅ   r1   rK   re   r<  r   r   r   Útest_grouping_ndarrayc  s    ÿr€  c                  C   sn   t g d¢dd�} tg d¢g d¢g d¢g d¢g d¢d	œ| d
�}| g d¢¡}| tj¡}| ¡ }t ||¡ d S )N)r   r.   r=   r&   rÀ   r(   r  )Úfoo1r�  Zfoo2r�  Zfoo3)Úbar1Úbar2rƒ  r‚  r‚  )Úbaz1r„  r„  Úbaz2r…  )Úspam2Zspam3r†  Úspam1r‡  )r:   r;   é(   r$  é<   )r½   r¾   rX  ÚspamrT   r¿   )r½   r¾   rX  rŠ  )r	   r   rH   rM   rC   r?   rK   re   )r(   rT   rU   r   r   r   r   r   Útest_groupby_wrong_multi_labelsm  s    ûør‹  c                 C   s¨   |   | d ¡ ¡ }| j | d dd� ¡ }|jjdks8J ‚d|v sDJ ‚|   | d | d g¡ ¡ }| j | d | d gdd� ¡ }|jjdksŒJ ‚d|v s˜J ‚d|v s¤J ‚d S )Nr   Fr�   r   ©r   r   )rH   r?   r(   r>   rÊ   )rj   r   r×   r   r   r   Útest_groupby_series_with_name‚  s    r�  c                 C   sR   |   d¡d }| ¡ jdks J ‚| ¡ jdks2J ‚dd„ }| |¡jdksNJ ‚d S )Nr   r†   c                 S   s   t  | ¡d S rB   )rC   r1   r*   r   r   r   r,   •  r-   z.test_seriesgroupby_name_attr.<locals>.<lambda>)rH   r|   r>   r?   rM   )rj   r   ZtestFuncr   r   r   Útest_seriesgroupby_name_attr�  s
    rŽ  c                  C   s`   t g d¢g d¢tj d¡d t d¡dœƒ} |  dg¡j ¡ }| j | j¡ ¡ }t	 
||¡ d S )N)r½   r¾   r½   r¾   r½   r¾   r½   r½   )r7   r7   r8   r8   r8   r8   r7   r8   r}  r¸   rë   r   )r   rC   rE   r  rD   rH   r   r|   r   rK   rL   rs  r   r   r   Útest_consistency_name™  s    üÿ	r�  c                 C   sx   ddd„}dd„ }|   d¡ |¡}|jjd u s2J ‚|   d¡ |d¡}|jjdksTJ ‚|   d¡ |¡}|jjd u stJ ‚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>   )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 )r9   )rC   rD   r¯   r   r   r   r¹   ¾  r-   z2test_groupby_nonstring_columns.<locals>.<listcomp>r9   r   )r   rg   rH   r?   rK   re   r<  r   r   r   Útest_groupby_nonstring_columns½  s
    
r–  c                  C   sp   t g d¢gg d¢d�} t ddggddgtdgdd	�d
�}|  d¡ ¡ }t ||¡ |  d¡ ¡ }t ||¡ d S )Nr<   )r   r   r   rw   r.   r=   r   r   r   r  rË   )r   r	   rH   rŽ   rK   re   r1   rs  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\J ‚d S )N)r#  r#  r   r9   )rC   rÌ   Úfillr�   r   Ztilerg   rH   rM   rO  Zisnarç   )Z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 )
Nr9   r#  r$  r=   r¿   r   rÓ   c                 S   s   t ttt| jƒƒƒS r/   )rI   ÚsetÚmapÚidr(   r*   r   r   r   r,   ç  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g d¢dd�}dd„ }dd„ }|  |¡}| |¡}|jtjksRJ ‚t|d	 t	ƒsdJ ‚| |¡}|jtjks~J ‚t|d	 t	ƒs�J ‚d S )
NrÓ   )r´   rµ   rÈ   rv  r’   r\   rƒ   c                 S   s   t t|  ¡ ƒƒS r/   )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J ‚tt|  ¡ ƒƒS r‡   )rI   rÅ   Úbaser   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   )rg  rÆ   r   r¢  rU   r   r   r   r   Ú(test_convert_objects_leave_decimal_aloneë  s    


r£  c                  C   st   t g tjddd�dœƒ} | d jtjks,J ‚|  d¡ ¡ }tg dtjd�}t dtg |dd�iƒ}t	j
||d	d
� d S )Nr   r!   rƒ   )r+   rg   r+   )r>   r    rg   r'   T)Z	by_blocks)r   rC   rD   r    r#   rH   rŽ   r	   r   rK   re   )rj   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 )	Nr.   l    4;PUÑ  )rŽ   r]  r]   rŽ   r]  r]   r  r  )r   rH   r&  r   r
   Úfrom_productrK   rL   r  r   r   r   Ú$test_groupby_unit64_float_conversion  s    ýr¦  c                 C   sÖ   |   t| d ƒ¡ ¡ }|   | d ¡ ¡ }tj||dd� tjtdd��* |   t| d d d… ƒ¡ W d   ƒ n1 sv0    Y  tddgd	d
gt	j
 d¡dœƒ} |   ddg¡ ¡ }|   | d | d g¡ ¡ dg }d S )Nr   FrŸ   z^'foo'$r5   re  r   r.   r&   rÀ   r=   )r½   r¾   Úvalr½   r¾   r§  )rH   rº   r?   rK   re   rQ   rR   ÚKeyErrorr   rC   rE   r  r  r   r   r   Ú"test_groupby_list_infer_array_like  s    8 r©  c                  C   st   d} t tdƒd| d�}tddgddggd	d
g|d�}| td| d�d	g¡ ¡ }| |jd	g¡ t	¡}t
 ||¡ d S )Nrg  z2015-09-29T11:34:44-0700r=   )Ústartr„   Úfreqr   r9   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_index)  s    
ÿr­  c                  C   s¬   d} t tj dd¡tdƒd�}tjt| d�� | d¡ W d   ƒ n1 sL0    Y  t tj dd¡tdƒd�}tjt| d�� | d¡ W d   ƒ n1 sž0    Y  d S )	Nz^'Z'$r.   rÀ   ÚABCDrw   r5   ÚZr=   )	r   rC   rE   r  rº   rQ   rR   r¨  rH   )rZ   r}   r~   r   r   r   Útest_groupby_one_row6  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˜J ‚t||ƒD ]\}}t |j	| |¡ q¢t |jjd j| ¡ |jdksâJ ‚tdƒtjdd	gtjd�tdƒtjd
dgtjd�i}|jD ]}t |j| || ¡ �qt | tdƒ¡| jdd	g ¡ t | tdƒ¡| jd
dg ¡ tjtdd�� | tj¡ W d   ƒ n1 �s¬0    Y  t tjtjtjgtjtjtjgdœƒ}|d jdk�sðJ ‚|d jdk�sJ ‚dD ]¸}| |¡}|j	i k�s&J ‚|jdk�s6J ‚|ji k�sFJ ‚tjtdd�� | tj¡ W d   ƒ n1 �sx0    Y  tjtdd�� | tj¡ W d   ƒ n1 �s´0    Y  �qd S )Nr}  z
2013-01-01z
2013-02-01r´   rµ   )rÅ   ÚdtrŸ  r±  r.   r2   r&   rÓ   r=   r   z2013-01-01 00:00:00rƒ   z2013-02-01 00:00:00z^NaT$r5   )r�   Únatr�   r#   r²  zdatetime64[ns]z^nan$) r   rC   rE   r  r�   r   rH   r	   Úsortedrã   r
  rI   r:  rK   rB  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_excludeA  sZ    
ø
ôÿ
þ
  , ÿ
,r¶  c                  C   sD   t tjtjgtjtjgddgdœƒ} |  ddg¡j}|i ks@J ‚d S )Nr.   r=   rÔ   r´   rµ   )r   rC   r�   rH   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g¡ ¡ }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Úlabelç        r¸   )r   rg   rH   r?   rC   r  rK   rB  rx   r	   rµ  rÅ   )rv  Ú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œƒ}| g d¢¡ ¡ }| g d¢¡ ¡ }t|ƒt|ƒks€J ‚d S )Ni'  iˆ  i¨a  )r   r   r†   rì   r  rë   )rì   r†   r   r   )	rC   ZconcatenaterD   r   rE   r  rH   r1   rI   )r   r   rj   r   r.  r   r   r   Útest_int32_overflow“  s    "
rÁ  c                  C   sn  t g d¢g d¢g d¢tj d¡dœƒ} dd„ | g d¢ jD ƒ}t |¡}| jg d¢d	d
� ¡ }t	 
|jj|g d¢ ¡ dd„ | g d¢ jD ƒ}t |¡}| jg d¢d	d
� ¡ }t	 
|jj|¡ dd„ | g d¢ jD ƒ}t |¡}| jg d¢d	d
� ¡ }t	 
|jj|g d¢ ¡ t g d¢g d¢tj d¡dœƒ} |  ddg¡d }| ¡ }dd„ fdd„}|| |ddgdƒ d S )N©r½   r¾   rX  )r&   r=   r.   r<   r&   ©r´   rµ   rÈ   rv  c                 S   s   g | ]}t |ƒ‘qS r   ©Útuple©r°   Úrowr   r   r   r¹   §  r-   z+test_groupby_sort_multi.<locals>.<listcomp>rÔ   Trq  )r.   r=   r   c                 S   s   g | ]}t |ƒ‘qS r   rÄ  rÆ  r   r   r   r¹   ¬  r-   )rÈ   r´   rµ   c                 S   s   g | ]}t |ƒ‘qS 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µ   rv  r´   rµ   rv  c                 S   s   |   ¡ S r/   r0   r*   r   r   r   r,   ¼  r-   z)test_groupby_sort_multi.<locals>.<lambda>c           	      S   sV   dd„ | | j D ƒ}t |¡}||  |¡| ƒ}| ¡ D ]\}}|| |ks8J ‚q8d S )Nc                 S   s   g | ]}t |ƒ‘qS r   rÄ  rÆ  r   r   r   r¹   ½  r-   zCtest_groupby_sort_multi.<locals>._check_groupby.<locals>.<listcomp>)rÅ   ÚcomÚasarray_tuplesaferH   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   r1   rK   rµ  r(   )rj   rË  r   rU   rÌ  r   r   r   Útest_groupby_sort_multi�  s4    
üÿ	


ÿrÍ  c                  C   s>   t g d¢g d¢d dœƒ} |  d¡ dd„ ¡}t || ¡ d S )N)r´   r´   r´   rµ   rµ   rµ   rÂ  r=   )r   r>   r   c                 S   s   | S r/   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 r/   rš   r*   r   r   r   r,   Ó  r-   z&test_skip_group_keys.<locals>.<lambda>F)Ú
group_keysc                 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¹   Ö  r-   z(test_skip_group_keys.<locals>.<listcomp>r   c                 S   s   | j S r/   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¹   Þ  r-   )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 u s6J ‚d S )Nr†   r   )rf   r>   rH   rM   rC   r1   )Zfloat_framerg  r   r   r   r   Útest_no_nonsense_nameä  s    rÖ  c                  C   s\   t t d¡ dd¡ƒ} d| d< g d¢| d< |  d¡}| ddd	œ¡}|d jtjksXJ ‚d S )
Nr%   r&   r   Útest)gÍÌÌÌÌÌô?g      ø?gš™™™™™ù?Úflr1   r2  )rØ  r=   )r   rC   rD   ÚreshaperH   rM   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ƒsFJ ‚t ||¡ d S )Nc                 S   s   |   ¡ |  ¡ dœS ©N©r&  rJ  rÜ  r`   r   r   r   r‹   ù  s    z(test_handle_dict_return_value.<locals>.fc                 S   s   t |  ¡ |  ¡ dœƒS rÛ  )r   r&  rJ  r`   r   r   r   r£   ü  s    z(test_handle_dict_return_value.<locals>.gr   r†   )rH   rN   r{   r   rK   rL   )rj   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„}|   |¡}| |¡ | ˆ ¡ | ˆ ˆ dœ¡ | |¡ |d  |¡ |d  ˆ ¡ |d  ˆ |g¡ |d  |¡ d S )	Nc                 S   s   | j d usJ ‚| S r/   r  r`   r   r   r   r‹     s    ztest_set_group_name.<locals>.fc                 S   s   | j d usJ ‚|  ¡ S r/   )r>   r1   r`   r   r   r   Úfreduce  s    z$test_set_group_name.<locals>.freducec                    s   ˆ | ƒS r/   r   r*   ©rÞ  r   r   r½     s    z test_set_group_name.<locals>.foorð   r†   )rH   rN   rJ   rO   )rj   r´  r‹   r½   rU   r   rß  r   Útest_set_group_name  s    



rà  c                     sV   t g d¢t d¡dœƒ} g ‰ ‡ fdd„}| jdddd� |¡ g d	¢}ˆ |ksRJ ‚d S )
N)r   r   r.   r.   r=   r=   ró   r³   c                    s   ˆ   | j¡ |  ¡ S r/   )r  r>   rf   r`   r  r   r   r‹   '  s    z6test_group_name_available_in_inference_pass.<locals>.fr´   F)rr  rÏ  r<   )r   rC   rD   rH   rN   )rj   r‹   Zexpected_namesr   r  r   Ú+test_group_name_available_in_inference_pass!  s    rá  c                 C   sV   |   | d j¡ ¡ }|jjd u s$J ‚|   | d j| d jg¡ ¡ }|jjdksRJ ‚d S )Nr   r   )NN)rH   rÅ   r1   r(   r>   rÊ   r·  r   r   r   Útest_no_dummy_key_names1  s    râ  c                  C   sÀ   t ddgddggg d¢g d¢gddgd�} tg d¢| d	�}t ddgddggg d
¢g d¢gddgd�} tg d¢| d	�}|jddgdd� ¡ }t ||¡ |jddgdd� ¡ }t || ¡ ¡ d S )Nr.   r=   )r   r   r   r   r.   r.   )r.   r.   r   r   r   r   r´   rµ   rÉ   )r   r.   r=   r&   rÀ   rÓ   r¿   rY  )r.   r   r   )r   r=   rÀ   F©r   rr  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   rv  ©Úfixrs   r   r   Ú_funcZ  s    zGtest_groupby_reindex_inside_function.<locals>.agg_before.<locals>._funcr   )rs   rë  rì  r   rê  r   Ú
agg_beforeU  s    z8test_groupby_reindex_inside_function.<locals>.agg_beforec                 S   s   t | j| j| jƒS r/   )r   r¬   r›   r®   r*   r   r   r   r,   d  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_functionO  s    
rï  c                  C   sˆ   t g d¢g d¢g d¢dœƒ} |  ddg¡} | jddgdd�}| d	¡}tjg d
¢ddgd�}t dgdgdgg|dgd�}t ||¡ d S )N)r´   r´   r´   rµ   )rÈ   rÈ   rv  rÈ   )r.   r.   r.   rÓ   )Úgroup1Úgroup2r]   rð  rñ  Trã  r1   ))r´   rÈ   )r´   rv  )rµ   rÈ   r  r=   r.   rÓ   r]   rp  )r   rÍ   rH   rM   r
   r  rK   re   )rj   r¤   r©   ré   r  r   r   r   Ú$test_groupby_multiindex_missing_pairk  s    ýÿ
ÿrò  c                  C   sŠ  t jg d¢ddgd�} tg d¢g| d�}|j ¡ s6J ‚tg d¢g d¢g d	¢gd
�}|jdddgdd�}| ¡ }|j ¡ r|J ‚t ||¡ | 	d¡ 
¡ }t t¡� | 	d¡ 
¡ }W d   ƒ n1 sÄ0    Y  t ||¡ tg d¢g d¢g d¢dœƒ ddg¡}|j ¡ �rJ ‚ddddgfD ]f}dD ]Z}|j	||d� tj¡}|}t ||¡ | ¡ j	||d� tj¡}| ¡ }t ||¡ �q&�qd S )N))r´   Ú )Úb1Úc1)Úb2Úc2rµ   rÈ   r  ©r.   r&   rÀ   rw   rÃ  )r.   rô  rõ  r&   )r.   rö  r÷  rÀ   )rx   rT   r´   rv  )r(   rx   rÅ   )r´   r´   rµ   r´   ©r.   r.   r=   r=   ©r.   r=   r&   rÀ   ©r+   rÏ   Úzr+   rÏ   r   r.   )FTrã  )r
   r  r   rx   Z_is_lexsortedÚ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   rr  r   r   r   Ú%test_groupby_multiindex_not_lexsorted€  sJ    ÿÿ
ÿ,ÿþÿþÿrþ  c                  C   s  t tdƒg d¢d�} |  tdƒ¡}| dd„ ¡}| jg d¢ }t ||¡ | d }| tdƒ¡}| d	d„ ¡}| g d¢¡}t ||¡ | j	 
t¡| _	|  tdƒ¡}| d
d„ ¡}| jg d¢ }t ||¡ | d }| tdƒ¡}| dd„ ¡}| g d¢¡}t ||¡ d S )NZABCDE)r=   r   r=   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   rZ  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                    sX   t g d¢g d¢g d¢g d¢g d¢dœƒ}|jˆ d�}| |¡}‡ fdd	„}| |¡ d S )
N)r&   r.   r   r.   r   r&   r&   r&   )rü  r´   rü  r´   r´   r£   r£   r£   )r}  r2   rÀ   rÓ   r=   r%   r.   r.   )gffffff@g333333@gÍÌÌÌÌÌ@g333333Àgš™™™™™@çš™™™™™ñ?r  rÓ   )rü  rv  r´   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_sortø  s    z.test_groupby_preserves_sort.<locals>.test_sort)r   rÒ  rH   rN   )r  r  rj   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 d   ƒ n1 s„0    Y  d S )Nr:   ÚM)r„   r«  r   )Ú	eventDateZthenamer  r¬   r›   z	'badname'r5   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_errorþ  s    þÿÿr  rx   r†   r
  rÅ   r¾  r´   r.   z
US/Eastern©ÚtzÚInt64rƒ   ZFloat64ÚbooleanÚmethod)r-  rM   rN   )r_   ÚidxminÚmadrJ  r&  r1   rM  rR  z-ignore:Dropping invalid columns:FutureWarningz(ignore:.*Select only valid:FutureWarningc                    s|  d }t |tƒrXt | tƒsXˆdv rX|rTˆdkrTd}d| }	tjjt|	d�}
|j |
¡ �n´t |tƒr–t	|ƒdkr–ˆdv r–tjjt
dd�}
|j |
¡ �nvt |tƒrÖt	|ƒdkrÖt | tƒsÖtjjtd	d�}
|j |
¡ �n6t |tƒ�rt	|ƒdk�rˆd
v �rtjjtdd�}
|j |
¡ nôt |tƒ�rZt	|ƒdk�rZˆdv �rZtjjtdd�}
|j |
¡ n²t |ttfƒ�ržˆdk�ržt | tƒ�ržtjjtdd�}
|j |
¡ nnˆdk�ròt | tƒ�sòt |tjƒ�rò|jd u�rò|�ròtjjtdd�}
|j |
¡ nt |tƒ�rˆd
v �rd}t |d tƒ�r*ˆdv �r*d}t|||dœtdƒd�}t|dƒ�rd|j|jk ¡ �sdJ ‚|jd d… }| |¡|  ‰ ‡ ‡‡fdd„}| dk�r„ˆdv �r|jd jdk�rˆdk�rÆd}	nd}	tjt|	d �� |ƒ  W d   ƒ n1 �sö0    Y  d S ˆd!v �r*t |tƒ�r*ˆdk�r*d"}	nˆdk�rBd#ˆ› d$�}	nd%}	tjt|	d �� |ƒ  W d   ƒ n1 �sr0    Y  d S �n¦ˆdv �rt|jd jdk�rÄ|ƒ }| |¡g  }t ||¡ d S t |tƒ�r@|ƒ }| |¡g  }t	|ƒdk�r0ˆd&k�r0tdg|jd'�}tj ||gd(d)gd*�}tg g |d+�}t ||¡ d S |jd t!k�rt|ƒ }| |¡g  }t ||¡ d S ˆd,v �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 u�rR| #|¡}t	|ƒdk�rl|d |j$_%t ||¡ d S ).N)r1   rM  rR  r  r  z3Cannot interpret 'CategoricalDtype.* as a data typez1Regex pattern "'Categorical' does not implement.*)rR   r6   r.   )r_   r  z0attempt to get arg(min|max) of an empty sequencez 'Categorical' does not implement)r1   rM  z (DataFrame|Series) are differentr=   )rJ  r&  r1   z(can only perform ops with numeric valuesz>Cannot interpret 'datetime64\[ns, US/Eastern\]' as a data typer  r   )rM  r1   r!   r…   ÚABCrw   r    c                      s&   ˆdkrt ˆ ˆƒƒ S t ˆ ˆƒˆƒS d S )Nr-  )rß   r   ©r¨   r  r  r   r   Ú
get_result�  s    z&test_empty_groupby.<locals>.get_resultr†   )rM  r1   rR  r  rR  z!does not support reduction 'skew'z datetime64 type does not supportr5   )rM  r1   rR  r  z!does not support reduction 'mean'zdoes not support reduction 'ú'zcategory type does not supportrM  rƒ   r   r   r  rË   )r  rJ  r&  rR  r  )&r{   r   rº   rQ   ÚmarkÚxfailrÕ   ÚnodeZ
add_markerrI   r@  r?  r   r   r�   ZDatetimeIndexr  r   Úboolr   Úhasattrrh   r    rç   rˆ   rH   ÚkindrR   rÍ   rK   Zassert_equalr
   r¥  rn  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_groupby  s"   ÿþýÿ
þýÿÿ
þýÿ$ÿÿ
þýÿÿþýÿÿþ
ýüûþ


&


&
ÿþ
ý

r+  c                  C   sd   t tj dd¡ƒ} | d  tj¡| d< g d¢| _|  | d ¡}| dd„ ¡}|j	| j	k 
¡ s`J ‚d S )Nr   rÀ   r&   )r   r.   r=   r   r.   c                 S   s   | S r/   r   r*   r   r   r   r,   ù  r-   z<test_empty_groupby_apply_nonunique_columns.<locals>.<lambda>)r   rC   rE   r  rd   r!   rx   rH   rN   rh   rç   )rj   r¨   r©   r   r   r   Ú*test_empty_groupby_apply_nonunique_columnsó  s    
r,  c                  C   sž   t g d¢g d¢g d¢g d¢dœƒ} tjtdd��" | g d¢  d¡ W d   ƒ n1 sX0    Y  |  d¡d  ¡ }td	gdtd
gdd�d�}t 	||¡ d S )N)r.   r.   r.   r.   )r=   r=   r=   r=   )r³   r´   rµ   rÈ   z
('a', 'b')r5   rÔ   r³   rÈ   rÀ   r.   r  r  )
r   rQ   rR   r¨  rH   r1   r   r	   rK   rL   r  r   r   r   Útest_tuple_as_groupingý  s    üÿ	0r-  c                  C   sd   t dtdƒt ddgddgg¡d�} tjtdd�� |  d¡ ¡  W d   ƒ n1 sV0    Y  d S )	Nr.   r&   r=   rÀ   rp  z
^\(7, 8\)$r5   )r2   r}  )	r   rg   r
   r¥  rQ   rR   r¨  rH   r?   r’  r   r   r   Útest_tuple_correct_keyerror  s    $r.  c               	   C   sŠ   t dgdggtdgdd�tddddd	�d
�} t g d¢g d¢gtjdg d¢d�tddddd	�d
�}|  tdd�¡ ddg¡}t 	||¡ d S )Nr.   r½   Úmycolsr  ú
2018-01-01r=   rì   Údti)r„   r«  r>   rË   )r.   r.   r.   r.   r.   ))r½   r1   r½   )r½   ÚohlcÚopen)r½   r2  ræ  )r½   r2  rç  )r½   r2  Úclose)r/  NNr  )r«  r1   r2  )
r   r	   r   r
   r  rH   r   rM   rK   re   rs  r   r   r   Útest_groupby_agg_ohlc_non_first  s    
ýø
ôr5  c                  C   sŒ   t jdftdddƒdftdddƒdftdddƒdfg} tj| dd gd�}tg d	¢|d
�}|jdd� ¡ }tddgddgd
�}t 	||¡ d S )Nr´   iÜ  r.   r=   rµ   r&   Údater  )r&   r=   ç      @rÀ   r¿   rU  r  r7  )
r�   r‘   r   r
   r  r   rH   r?   rK   rL   )rÅ   r  rZ  r   r   r   r   r   Útest_groupby_multiindex_nat3  s    ür8  c                  C   sd   t tdƒtdƒƒ} t| ddgd�}d}tjt|d�� | g g¡ W d   ƒ n1 sV0    Y  d S )Nr9   Úapplerµ   rw   z$Grouper and axis must be same lengthr5   )r:  rg   r   rQ   rR   r@  rH   )rÅ   rj   rZ   r   r   r   Útest_groupby_empty_list_raisesC  s
    r:  c                  C   sŽ   ddgddgddgg} g d¢}t j| |d�}tddg|d	�}| d
dg¡ ¡ }dgdgg} d
dg}t j| |d�}tdg|d�}t ||¡ d S )Nr+   r´   rµ   rV   )rŽ   r]  Úthirdr  r.   r=   rj  rŽ   r;  r&   r¿   )r
   Zfrom_arraysr   rH   r1   rK   rL   )Zindex_arrayZindex_namesÚrirg  r   Úeir   r   r   r   Ú8test_groupby_multiindex_series_keys_len_equal_group_axisL  s    r>  c                  C   s    t jddgddggddgd�} tg d¢g d	¢d
œ| d�}| tdd�dg¡}| ddg¡}|j|jksjJ ‚| dtdd�g¡}| ddg¡}|j|jksœJ ‚d S )Nr   r   r†   rì   r  Úbetar  )r.   r=   r.   r=   rú  rñ   r¿   rU  )r
   r¥  r   rH   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¡g d¢g d¢d�}d|j_d|j_|j| d	d
� ¡ }|j	 | ¡ ¡ j	}t
 ||¡ g d¢ddgg}tj|ddgd�}t t d¡ dd¡g d¢|d�}|j| d	d
� ¡ }|j	 | ¡ ¡ j	}t
 ||¡ d S )Nr3   r&   rÀ   )r   r.   r   )r9   r:   r9   r:   rp  rÏ   r+   r.   r”   )r¾   rX  r½   r7   r8   Úx1)Ú	iterablesrÊ   é   ró   )r   rC   rD   rÙ  r(   r>   rx   rH   r1   r§   rK   re   r
   r¥  )rA  rj   Úresultsr   rC  r  r   r   r   Útest_groupby_axis_1j  s    ÿ rF  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:00Zffillc                    s„   | ‰ g d¢t dƒt dƒd d t dƒt dƒgdœ}t|ƒj‡ fdd„d	�}| d
¡}t||ƒƒ }t|ƒj‡ fdd„d	�}t ||¡ d S )N)r   r   r   r   r   r   rI  rJ  rK  rL  )r�  rH  c                    s   | j j ˆ ¡S r/   ©rH  r±  Ztz_localizer*   r  r   r   r,   º  r-   z+test_shift_bfill_ffill_tz.<locals>.<lambda>)rH  r�  c                    s   | j j ˆ ¡S r/   rM  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    .úþ
rN  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+   r1   r  )r   rH   rO   r   rC   r�   rK   rL   )rj   r  r   r   r   r   Útest_groupby_only_none_groupÂ  s    rO  c                  C   sL   t g d¢g d¢d�} | jdd�}| ¡ }t g d¢g d¢d�}t ||¡ d S )N)r=   rÓ   ró   r}  )rÃ   rÂ   rÂ   ru  r¿   r   rU  )r=   g      @r}  )rÃ   rÂ   ru  )r   rH   r?   rK   rL   )rZ  r¨   r   r   r   r   r   Útest_groupby_duplicate_indexÌ  s
    rP  ré   r½   r  )©r´   r´   rQ  r¾   r  z)ignore:tshift is deprecated:FutureWarningc                 C   s´   | dv rt  d¡ t| ƒ} tddgg|d�}| dg¡}g }| dv rP| d¡ n6| dkrd| |¡ n"| dkr†td	ƒg|_| dd
g¡ t	|| ƒ|Ž }|j
dks¢J ‚t |j|¡ d S )N>   r1  r2  ZcumcountzNot applicabler.   rw   r   >   r)  Zfillnar0  Ztshiftr  rì   r¦   )rQ   r3  r   r   rH   r  r   r(   Úextendrß   ÚshaperK   rB  rx   )Zgroupby_funcré   rj   Zgrp_byÚargsr   r   r   r   Útest_dup_labels_output_shapeÖ  s     	
rU  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 )Nz
2016-01-01r=   r½   )r„   r>   r.   r&   r   )rŒ  )r   r†   )rì   r   )r¾   rX  )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•   r1  rj   Zaxis_numberr¨   r   r   r  r  r©   r   r   r   Útest_groupby_crash_on_nuniqueõ  s*    

rV  c                  C   s>   t t dd¡ dd¡td�} | jdgd� ¡ }t || ¡ d S )Nr   r%   r&   rƒ   rU  )	r   rC   rD   rÙ  rÁ   rH   r?   rK   re   )r   r   r   r   r   Útest_groupby_list_level	  s    rW  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   sŒ   t tj dd¡ƒ}|j|d< t d| ¡�P | d¡j 	¡ }||ksFJ ‚| t 
|j¡¡j 	¡ }||ksjJ ‚W d   ƒ n1 s~0    Y  d S )NrÓ   r.   r´   zdisplay.max_seq_items)r   rC   rE   r  r(   r�   Zoption_contextrH   rã   Ú__repr__r  r´   )Zmax_seq_itemsr   rj   r   r   r   r   Útest_groups_repr_truncates	  s    

rY  c                  C   s†   t ddddœddddœgƒ} |  ddg¡} |  ddg¡}|j}dtjd	dgtjd
�i}t|ƒdksfJ ‚d}|| || k ¡ s‚J ‚d S )Nr.   r=   éc   rÔ   éX   r´   rµ   r¦   r   rƒ   )	r   rÍ   rH   rä   rC   r  r!   rI   rç   )rj   rŠ   r   r   r   r   r   r   Ú6test_group_on_two_row_multiindex_returns_one_tuple_key4	  s    r\  zklass, attr, valuer   rr  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   sr   t dgdgdgdœƒ}|dkr(| d¡}|jdi ||i¤Ž}| t u rN|dg n|d }t||ƒt||ƒksnJ ‚d S )	Nr.   r=   r&   rÔ   r•   r´   rµ   )r´   )r   rÍ   rH   rß   )Úklassr-  r]   rj   r   r   r   r   r   Ú#test_subsetting_columns_keeps_attrsB	  s     
r_  c                  C   sj   t dgdgdgdœƒjg d¢dd�} d}tjt|d��  | d	d
g  ¡  W d   ƒ n1 s\0    Y  d S )Nr.   r=   r&   r…   rY  r”   z'Cannot subset columns when using axis=1r5   r   r   )r   rH   rQ   rR   r@  r1   )r£   r6   r   r   r   Útest_subsetting_columns_axis_1k	  s    $r`  rs   )r1   ÚanyrG  c                 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   rB  )rs   r   rj   r¤   r   r   r   r   Ú#test_groupby_column_index_name_losts	  s
    rb  c                  C   sd   t g d¢g d¢g d¢dœƒ t¡} g d¢| _|  g d¢¡ ¡ }t g d¢gg d¢d�}t ||¡ d S )	N)r‹   r’   r£   rw  rÃ  rú  r…   )r   r   r   )r   r   r   r   )r’   r´   r.   rw   )r   rd   rn  rx   rH   rJ  rK   re   r  r   r   r   Útest_groupby_duplicate_columns}	  s    ÿþ
rc  c                  C   s\   t g d¢g d¢dd�} d| j_| jdd� ¡ }t dd	gd
dgdd�}d|j_t ||¡ d S )Nrú  rù  rQ  )r(   r>   )rµ   rµ   r   rU  r=   rÀ   r.   )r   r(   r>   rH   ÚlastrK   rL   )rZ  r   r   r   r   r   Ú#test_groupby_series_with_tuple_nameˆ	  s    re  zGH#38778: fail on 32-bit systemzfunc, valuesr1   ç     @X@ç     €X@r?   g     @8@g     €8@c                 C   s`   g d¢}t ddgd ||dœƒ}t| d¡| ƒƒ }t ||dœtddgdd�d	�}t ||¡ d S )
N©ç €à7yÃACri  éa   éb   ç €à7yÃ1Ãrl  rl  rl  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
    rn  c                  C   sr   g d¢} t ddgd | | dœƒ}| d¡ ¡ }dgd dd	g d
dg ddg }t ||dœƒ}tj||dd� d S )Nrh  r.   r=   rÀ   rm  ra   ri  g0€à7yÃACg1€à7yÃACga€à7yÃ1Cgb€à7yÃ1Crf  rg  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     ÿro  c                 C   s4   | }|j dd� ¡ }|  |j¡ ¡ }t ||¡ d S )Nr   rU  )rH   r?   r(   rK   rL   )Z(rand_series_with_duplicate_datetimeindexZdupsr   r   r   r   r   Ú!test_groupby_mean_duplicate_index¬	  s    rp  c                  C   sT   t g d¢tjtjtjgƒ} |  | j¡ ¡ }t g tg tjd�tjd�}t	 
||¡ d S )Nr²   rƒ   r'   )r   rC   r�   rH   r(   r1   r	   r#   r!   rK   rL   )rg  r   r   r   r   r   Ú test_groupby_all_nan_groups_drop³	  s    rq  r  c                 C   s–   t g g d¢d�}|jddg| d�}|j|d�}| r\tg g gg g gddgd�}|sVdgng }ntd	ƒ}|spg d¢nddg}t g ||d
�}t ||¡ d S )Nr…   )rT   rx   r   r   r�   r  r  r†   r   rË   )r   rH   r1   r
   r   rK   re   )rž   r  rj   r¨   r   r(   rx   r   r   r   r   Útest_groupby_empty_multi_column»	  s    rr  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.   ÚWr9   r:   ZMWrW   rw   rn  ro  r¿   rÐ  )r   r	   rH   r1   rK   re   ©rj   r   r¨   r   r   r   r   Ú*test_groupby_aggregation_non_numeric_dtypeË	  s    (ÿÿüru  c                  C   sš   t g d¢dd„ tddƒD ƒdd„ tddƒD ƒdœƒ} t dd„ td	d
ƒD ƒdd„ td	d
ƒD ƒdœtddgddd�d�}| jdgd�}| ¡ }t ||¡ d S )N©r.   r   r.   r.   r   c                 S   s   g | ]}t |d ƒ‘qS ©Údays©r   ©r°   Úir   r   r   r¹   â	  r-   zDtest_groupby_aggregation_multi_non_numeric_dtype.<locals>.<listcomp>r.   ró   c                 S   s   g | ]}t |d  dƒ‘qS ©r9   rx  ry  rz  r   r   r   r¹   ã	  r-   rû  c                 S   s   g | ]}t |d ƒ‘qS rw  ry  rz  r   r   r   r¹   é	  r-   r2   r%   c                 S   s   g | ]}t |d  dƒ‘qS r|  ry  rz  r   r   r   r¹   ê	  r-   )rÏ   rü  r   r!   r+   ro  r¿   rÐ  )r   rg   r	   rH   r1   rK   re   rt  r   r   r   Ú0test_groupby_aggregation_multi_non_numeric_dtypeÝ	  s    ýÿþûr}  c                  C   sv   t g d¢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�}| ¡ }t ||¡ d S )Nrv  c                 S   s   g | ]}t |d ƒ‘qS rw  ry  rz  r   r   r   r¹   ù	  r-   zKtest_groupby_aggregation_numeric_with_non_numeric_dtype.<locals>.<listcomp>r.   ró   rû  rü  r2   r}  r   r!   r+   ro  r¿   rÐ  )r   rg   rº   r	   rH   r1   rK   re   rt  r   r   r   Ú7test_groupby_aggregation_numeric_with_non_numeric_dtypeô	  s    ýÿ
þr~  c                  C   s„   dddddœdddddœdddddœg} t | ƒ}||d dk }| d¡}| ¡ }t g d	¢gg d
¢tdgdd�d�}t ||¡ d S )NFTg      %@)Ú
filter_colÚgroupby_colÚbool_colÚ	float_colg     €4@g     €>@r  r€  )r¾  r¾  g$+¿ÆH@)r  r�  r‚  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g d¢ƒdd�tjg d¢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–J ‚d S )NÚabc)r0  z
2018-02-01z
2018-03-01Úcategoryrƒ   )re  r   r.   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   Ú2test_datetime_categorical_multikey_groupby_indices
  s    

þúÿ
ýr‡  c                  C   s    dgd dgd  } t jt jdddgt jddddg }t| |gƒj}dd	g|_d
}tjt|d��, | d¡d	 j	ddd� 
¡  W d   ƒ n1 s’0    Y  d S )NZAlicerÓ   ZBobr.   r=   r&   rÀ   r>   r§  z<__init__\(\) got an unexpected keyword argument 'min_period'r5   )ZwindowZ
min_period)rC   r�   r   r§   rx   rQ   rR   r?  rH   Zrollingr1   )Zname_lZval_lZtest_dfZresult_error_msgr   r   r   Ú#test_rolling_wrong_param_min_period1
  s    "
rˆ  c                  C   sŒ   t g d¢ƒ} tjtdd��  | jdd� ¡  W d   ƒ n1 s@0    Y  tjtdd��  | jdd� ¡  W d   ƒ n1 s~0    Y  d S )Nr²   Úbackfillr5   r   rU  Úpad)r   rK   ry   rz   rH   r‰  rŠ  )rg  r   r   r   Útest_pad_backfill_deprecation=
  s
    .r‹  )¢r   Údecimalr   ÚnumpyrC   rQ   Zpandas.compatr   Zpandas.errorsr   Zpandasr�   r   r   r   r	   r
   r   r   r   r   r   r   Zpandas._testingZ_testingrK   Zpandas.core.arraysr   r   r   Zpandas.core.baser   Zpandas.core.commonÚcoreÚcommonrÈ  Zpandas.core.groupby.baser   r   r#  Zparametrizer[   rk   r   r“   r¥   rª   r·   r¼   rÇ   rØ   rà   rê   rï   rò   r  r  r  r  r  r!  r/  r4  r5  r8  r;  r=  rA  rC  rE  rH  rL  rP  rS  rT  rV  rW  r\  r^  rc  rh  rk  rt  rz  r  r€  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.  r5  r8  r:  r>  r@  rF  rN  rO  rP  r  rU  rV  rW  rY  r\  Úparamr$  r_  r`  rb  rc  re  rn  ro  rp  rq  rr  ru  r}  r~  rƒ  r‡  rˆ  r‹  r   r   r   r   Ú<module>   s  4
0*>-
ÿ
8(@
 	8#	

þ

þ
	 &




?
)		
	2þÿöþÿ

 M
	
úÿþúÿþúÿþåþ,


þþ#þ





ÿü





êþÿ	
&ÿ	