U
    ùQ”iCÒ  ã                "   @   sn  d dl 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 d dlmZ d dlmZ d dlmZ d dlmZ ejejejejej d	d
gddddd	d
gd�dd„ ƒZ!dd„ Z"ej# $de%e&e'g¡ej# $ddddgg¡dd„ ƒƒZ(G dd„ dƒZ)G dd„ dƒZ*dd„ Z+d d!„ Z,d"d#„ Z-ej# $d$d%d&d'd(d)d*d+g¡ej# $d,d-d.d/d/d0œd1d2d0œgifd3d.d/d1d0œd1d4d0œgifd5d.d/d/d0œd1d2d0œgifd6d.d/d1d0œd1d4d0œgifd7d/d1d0œd1d1d0œgd(d8œfg¡d9d:„ ƒƒZ.ej# $d;ed<ƒed=ƒfd>g¡d?d@„ ƒZ/ej# $dAdBd d1gd/d2gd/d1gdCœfdDd/d2gd d1gd d2gdCœfg¡ej# $dEdFdGg¡dHdI„ ƒƒZ0dJdK„ Z1ej# $dEdFdGdg¡dLdM„ ƒZ2dNdO„ Z3dPdQ„ Z4dRdS„ Z5dTdU„ Z6ej# $dVdWej7fdXej8fdYej9fdZej:fd[ej'fd\ej;fd5ej&fd6ej%fd-d]d^„ fd3d_d^„ fd7ej<fej=d`e6ej>da�g¡dbdc„ ƒZ?ddde„ Z@dfdg„ ZAdhdi„ ZBdjdk„ ZCej# $dld d/d1d2gd d d/d/gfd gd gfg¡ej# $d$dóejD•¡ej# $dmdndog¡dpdq„ ƒƒƒZEej# $drdsdtg¡dudv„ ƒZFdwdx„ ZGej# $dmdydzg¡ej# $d$d{d	d
d|d}g¡d~d„ ƒƒZHd€d�„ ZId‚dƒ„ ZJej# $dmdydzg¡ej# $d$d|d	d
g¡ej# $d„d/d/d/gd/ddgfd/d1d2gd/dd1gfd/d2d2gd/ddgfg¡d…d†„ ƒƒƒZKej# $dmdydzg¡d‡dˆ„ ƒZLejMej# $dmdydzg¡ej# $d‰d{e Nd+¡j%fdŠg¡d‹dŒ„ ƒƒƒZOej# $d�d/d1dŽd2d1d d4dŽd�d/d/gdFdGdGdFgfd/d�ejPd2d1ejPejP dŽd‘d/ejP gdFdGdFdGgfd/d1ejQd2d1ejQejQdŽejP d/ejQgdGdGdGdGgfg¡d’d“„ ƒZRej# $d�d”d•d–d2d4dŽd—d1d d/d/gdFdGdGdFgfejPd/ejP ejPd1d—ejP dŽd—ejP ejP gdFdFdGdFgfd/d1ejQd2d1ejQejQdŽejP d/ejQgdGdGdGdGgfg¡d˜d™„ ƒZSdšd›„ ZTdœd�„ ZUdždŸ„ ZVej# $dd d d¡gg¡d¢d£„ ƒZWd¤d¥„ ZXd¦d§„ ZYd¨d©„ ZZdªd«„ Z[ej# \d¬¡ej# $d­dFdGg¡ej# $dd®gd®d¯gg¡d°d±„ ƒƒƒZ]d²d³„ Z^d´dµ„ Z_ej# $d¶d/d/d/d1d1d1d2d2d2g	d/ej`d1d/ej`d1d/ej`d1g	d0œd/d/d1d1d2d2gd/d1d/d1d/d1gd0œg¡ej# $d·dWdXdZg¡d¸d¹„ ƒƒZadºd»„ Zbd¼d½„ Zcd¾d¿„ Zdej# $dÀdÁdÂdÃdÄdÅdÆdÇdÈdÉdÊdËdÌdÍdÎdÏdÐdÑdÒdÓdÔdÕdÖd×dØdÙdÚdÛdÜdÝdÞdßg¡ej# $dEdFdGejeg¡ej# $dd®gd®d¯gg¡dàdá„ ƒƒƒZfej# $d$egeheiejg¡dâdã„ ƒZkej# $d$eheiejg¡ej# $dädådædçgdèddéœdådædçgddêgdéœdådædçgdêgddéœg¡dëdì„ ƒƒZldídî„ Zmdïdð„ Zndñdò„ ZodS )ôé    N)ÚStringIO)Úlib)ÚUnsupportedFunctionCall)Ú	DataFrameÚIndexÚ
MultiIndexÚSeriesÚ	TimestampÚ
date_range)Únanops)Úget_groupby_method_args)Ú_test_decoratorsÚInt64ÚFloat64znp.int32znp.int64z
np.float32z
np.float64)ÚparamsÚidsc                 C   s‚   | j }|}|dkrtj}n|dkr(tj}t |¡jdkrDt |¡jn
t |¡j}t |¡jdkrlt |¡j	n
t |¡j	}|||fS )zZ
    Fixture of dtypes with min and max values used for testing
    cummin and cummax
    r   r   Úi)
ÚparamÚnpÚint64Úfloat64ÚdtypeÚkindÚiinfoÚminZfinfoÚmax)Úrequestr   Znp_typeÚmin_valÚmax_val© r   úF/tmp/pip-unpacked-wheel-58ppya8e/pandas/tests/groupby/test_function.pyÚdtypes_for_minmax   s    	ÿ
ýÿ
ýr!   c                  C   s`   t ddtjdgƒ} |  ddddg¡}| tj¡}| tj¡}| ¡ }t 	||¡ t 	||¡ d S )Nç      ð?ç       @ç      @r   é   é   )
r   r   ÚnanÚgroupbyÚaggÚbuiltinsÚsumÚapplyÚtmÚassert_series_equal)ÚsÚgroupedÚresultZresult2Úexpectedr   r   r    Útest_intercept_builtin_sum8   s    r3   ÚfÚkeysÚjimÚjoec           	   	      s6  t tj ddd¡ddgd�}tj d¡|d< | | ¡}|j‰ | |¡}t|j	| d	�ƒ}d
|j
› d|› d�}|j
|dfks€t|ƒ‚‡ fdd„‰| ˆ¡}t ||¡ t d ¡� | ‡fdd„¡}W 5 Q R X t ||¡ |tk�r| ˆ ¡ ¡ }|j| ddd� tj||dd� t t|ˆ ƒdd�t|ˆ ƒdd�¡ d S )Nr%   é2   )éè  r&   r6   r7   ©Úcolumnsr9   Zjolie)Zsubsetzinvalid frame shape: z (expected (z, 3))é   c                    s   t tˆ ƒ| dd�S )Nr   ©Úaxis)Úgetattrr   ©Úx)Úfnamer   r    Ú<lambda>S   ó    z%test_builtins_apply.<locals>.<lambda>c                    s   ˆ | ƒS ©Nr   r@   )Únpfuncr   r    rC   X   rD   TF)ÚinplaceÚdrop)Zcheck_dtyper   r=   )r   r   ÚrandomÚrandintÚrandnr(   Ú__name__r,   ÚlenZdrop_duplicatesÚshapeÚAssertionErrorr-   Úassert_frame_equalÚassert_produces_warningr+   r)   Úreset_indexÚ	set_indexr.   r?   )	r5   r4   ÚdfÚgbr1   ZngroupsZ
assert_msgr2   Z	expected2r   )rB   rF   r    Útest_builtins_applyC   s&    



rV   c                   @   s¾   e Zd Zejdd„ ƒZej dddg¡dd„ ƒZej ddd	g¡d
d„ ƒZ	ej dddg¡dd„ ƒZ
ej dddg¡dd„ ƒZej dddg¡dd„ ƒZej dddg¡dd„ ƒZdd„ ZdS )ÚTestNumericOnlyc                 C   s~   t dddgdddgdddgtdƒttdƒƒ d¡d	d
dgtddd�tdddd�tjdddd�dœ	dddddddddg	d�}|S )Nr%   r&   r<   ç      @ç      @ç      @ÚabcÚcategoryé   é   é	   Z20130101©Úperiodsú
US/Eastern)ra   Útzz1 sr/   )ra   Úfreq)	ÚgroupÚintÚfloatÚstringÚcategory_stringÚcategory_intÚdatetimeÚ
datetimetzÚ	timedeltare   rf   rg   rh   ri   rj   rk   rl   rm   r:   )r   Úlistr   Úastyper
   ÚpdZtimedelta_range©ÚselfrT   r   r   r    rT   f   s.    
÷÷ôzTestNumericOnly.dfÚmethodÚmeanÚmedianc                 C   s¾   t dddgƒ}| d¡}tddgddgt d	¡t d
¡gddgtdƒtdƒgtddd�tddd�gdœt ddgdd�dddgd�}t||ƒdd�}t | 	|¡|¡ |j
}|  ||||¡ d S )Nrf   rg   rj   re   g      @r_   ç      @rZ   z1.5sZ3sç      ø?r<   z2013-01-01 12:00:00z2013-01-03 00:00:00rb   ©rc   )rj   rg   rm   rf   rk   rl   r%   r&   ©Úname©Úindexr;   T©Únumeric_only)r   r(   r   rp   Ú	Timedeltar	   r?   r-   rP   Zreindex_liker;   Ú_check)rr   rT   rs   Úexpected_columns_numericrU   r2   r1   Úexpected_columnsr   r   r    Útest_averages„   s0    
þ

þ÷ýðzTestNumericOnly.test_averagesr   r   c                 C   s.   t dddddddgƒ}|}|  ||||¡ d S )Nrf   rg   rh   rj   rk   rl   rm   ©r   r€   ©rr   rT   rs   r‚   r�   r   r   r    Útest_extrema¨   s    ùÿzTestNumericOnly.test_extremaÚfirstÚlastc              	   C   s0   t ddddddddgƒ}|}|  ||||¡ d S )	Nrf   rg   rh   ri   rj   rk   rl   rm   r„   r…   r   r   r    Útest_first_last¼   s    øÿzTestNumericOnly.test_first_lastr+   Úcumsumc                 C   sL   t dddgƒ}t dddddgƒ}|dkr8t ddddgƒ}|  ||||¡ d S )Nrf   rg   rj   rh   rm   rŠ   r„   )rr   rT   rs   r�   r‚   r   r   r    Útest_sum_cumsumÎ   s    ÿzTestNumericOnly.test_sum_cumsumÚprodÚcumprodc                 C   s&   t dddgƒ}|}|  ||||¡ d S )Nrf   rg   rj   r„   r…   r   r   r    Útest_prod_cumprodÚ   s    z!TestNumericOnly.test_prod_cumprodÚcumminÚcummaxc                 C   s,   t ddddddgƒ}|}|  ||||¡ d S )Nrf   rg   rj   rk   rl   rm   r„   r…   r   r   r    Útest_cummin_cummaxá   s
    ÿz"TestNumericOnly.test_cummin_cummaxc           	   
   C   s4  |  d¡}| d¡rtnt}|dkrdd ddd|› d�g¡}tj||d	�� t||ƒƒ  W 5 Q R X nZ|d
kr¤d dddg¡}tj||d	�� t||ƒƒ  W 5 Q R X nt||ƒƒ }t 	|j
|¡ |dk�rd dddddd|› d�g¡}tj||d	�� t||ƒdd� W 5 Q R X nt||ƒdd�}t 	|j
|¡ d S )Nre   Úcum)r   r   r�   r�   rŠ   r�   ú|zCategorical is not orderedú*function is not implemented for this dtypezCannot perform z with non-ordered Categorical©Úmatch)r+   rt   ru   rŒ   z-category type does not support sum operationsz[Cc]ould not convertz0can't multiply sequence by non-int of type 'str'©r‡   rˆ   zcategory type does not supportzcan't multiply sequenceFr}   )r(   Ú
startswithÚNotImplementedErrorÚ	TypeErrorÚjoinÚpytestÚraisesr?   r-   Úassert_index_equalr;   )	rr   rT   rs   r‚   r�   rU   Ú	exceptionÚmsgr1   r   r   r    r€   í   sH    

ýÿýÿ

úÿ
zTestNumericOnly._checkN)rL   Ú
__module__Ú__qualname__rœ   ÚfixturerT   ÚmarkÚparametrizerƒ   r†   r‰   r‹   rŽ   r‘   r€   r   r   r   r    rW   c   s   

#




rW   c                   @   s>   e Zd Zejdd„ ƒZejdd„ ƒZejdd„ ƒZdd„ Zd	S )
ÚTestGroupByNonCythonPathsc                 C   s2   t dddgdtjdgdtjdggddd	gd
�}|S )Nr%   r&   ÚfooÚbarr<   ZbazÚAÚBÚCr:   ©r   r   r'   rq   r   r   r    rT   #  s
    þzTestGroupByNonCythonPaths.dfc                 C   s   |  d¡}|S )Nr©   ©r(   )rr   rT   rU   r   r   r    rU   +  s    
zTestGroupByNonCythonPaths.gbc                 C   s   |j ddd�}|S )Nr©   F©Úas_indexr­   )rr   rT   Úgnir   r   r    r°   0  s    zTestGroupByNonCythonPaths.gnic              
   C   sº   t ddgdd�}tdgdddd	d
dddggdgd ttdƒƒgd�}tddtjdddddgdtjtjtjtjtjtjtjgg||d�}| ¡ }t 	||¡ | 
¡ }| ¡ }t 	||¡ d S )Nr%   r<   r©   ry   rª   Úcountrt   Ústdr   ú25%ú50%ú75%r   r   r^   ©ÚlevelsÚcodesr"   r#   ç        r{   )r   r   rn   Úranger   r   r'   Údescriber-   rP   rR   )rr   rT   rU   r°   Zexpected_indexZexpected_colr2   r1   r   r   r    Útest_describe5  s"    þ þúz'TestGroupByNonCythonPaths.test_describeN)	rL   r¡   r¢   rœ   r£   rT   rU   r°   r¼   r   r   r   r    r¦     s   


r¦   c                  C   sä   t ddtjgdtjdgdddggdddgd	�} t dtjgtjdgddggddgd	�}|  d¡ ¡ }t ||¡ | jdd
d� ¡ }t ||¡ |  d¡jdd�}| jdd�}t ||¡ |  d¡jdd�}| jdd�}t ||¡ d S )Nr%   r&   r_   r<   é   r©   rª   r«   r:   Fr®   r=   )r   r   r'   r(   rŠ   r-   rP   r�   )rT   r2   r1   r   r   r    Útest_cython_api2L  s    .&r¾   c                  C   sº   t j d¡} t j| d d d…< t| ƒ}t jjdddd� t¡}t j|d d d…< | |¡ 	¡ }| |¡ 
tj¡}t ||¡ tt j dd¡ƒ}| |¡ 
t j	¡}| |¡ 	¡ }t ||¡ d S )Nr9   r&   r   r8   ©Úsizeé   é   )r   rI   rK   r'   r   rJ   ro   rg   r(   ru   r)   r   Z	nanmedianr-   rP   )ÚarrrT   Úlabelsr1   ÚexpÚrsZxpr   r   r    Útest_cython_medianb  s    rÇ   c                 C   sj   t tj ddd¡ƒ}tdddƒ}t |d |¡}|j|| d� ¡ }|j|| d� 	dd„ ¡}t
 ||¡ d S )	Nr   é,   éô  é7   rÂ   )Úobservedc                 S   s   |   ¡ S rE   )ru   r@   r   r   r    rC   {  rD   z(test_median_empty_bins.<locals>.<lambda>)r   r   rI   rJ   rº   rp   Zcutr(   ru   r)   r-   rP   )rË   rT   ZgrpsZbinsr1   r2   r   r   r    Útest_median_empty_binst  s    rÌ   r   Zint8Zint16Úint32r   Úfloat32r   Zuint64zmethod,datar‡   rT   r%   ©ÚaÚbr&   r<   rˆ   r½   r   r   r±   )rT   Úout_typec           	      C   s¸   t dddœdddœdddœdddœgƒ}|j | ¡|d< d|krHg |d< d|krZ|d }n| }|d	 }t |ƒ}|j |¡|d< |jd
dd� | d
¡}t||ƒ|d Ž }t ||¡ d S )Nr%   rÏ   r&   r<   r½   rÑ   ÚargsrÒ   rT   rÐ   T)rG   )r   rÑ   ro   rS   r(   r?   r-   rP   )	r   rs   ÚdatarT   rÒ   rÅ   Zdf_outZgrpdÚtr   r   r    Ú%test_groupby_non_arithmetic_agg_types  s     "ÿ

rÖ   r   z2011-01-15 12:50:28.502376z2011-01-20 12:50:28.593448)l    m;-L¼l    m;-L¼c                 C   s¼   t d| d dœd| d dœgƒ}d| d id| d id| d id| d i| d dgdœddidœ}| ¡ D ]L\}}d|kr‚g |d< | d	¡}t||ƒ|d Ž }|jd j|d ksjt‚qjd S )
Nr%   r   rÏ   r2   )r2   rÓ   r&   )r‡   rˆ   r   r   Únthr±   rÓ   rÐ   )r   Úitemsr(   r?   ÚilocrÑ   rO   )r   rT   Zgrp_exprs   rÔ   r0   Úresr   r   r    Ú2test_groupby_non_arithmetic_agg_int_like_precision§  s     



ú	
rÛ   zfunc, valuesÚidxmin)Úc_intÚc_floatÚc_dateÚidxmaxr~   TFc                 C   s8  t ddddgddddgddd	d
gddddgdœƒ}t |d ¡|d< |d j d¡|d< |d |d jd  |d< |d j d¡|d< |d  d¡|d< |d  d¡|d< t| 	d¡| ƒ|d�}t |t
ddgdd�d �}|rì|jdgd!�}n$|d |d< |d |d< |d |d< |d |d< |d |d< t ||¡ d S )"Nr©   rª   r%   r&   r<   r½   g®Gáz@g=
×£p=@gR¸…ëQ @gÍÌÌÌÌÌð?Z2019Z2018Z2016Z2017)rz   rÝ   rÞ   rß   rß   z
US/PacificZ	c_date_tzr   Zc_timedeltaÚWZc_periodrÝ   r   Z	c_IntegerrÞ   r   Z
c_Floatingrz   r}   ry   ©r|   r:   )r   rp   Úto_datetimeÚdtZtz_localizerÙ   Z	to_periodro   r?   r(   r   rH   r-   rP   )ÚfuncÚvaluesr~   rT   r1   r2   r   r   r    Ú$test_idxmin_idxmax_returns_int_typesÈ  s.    




üÿrç   c               
   C   sØ   t tj dd¡ddddgd�} dd	d
dd	d
dd	d
dg
| d< |  d¡}|jdd�}| jd d …dd …f jdd�}|j d¡}t	 
|| | d¡¡ tddd�| d< |  d¡}d}tjt|d�� |jdd� W 5 Q R X d S )Né
   r½   r©   rª   r«   ÚDr:   r%   r&   r<   r=   z
2016-01-01r`   ÚEz7reduction operation 'argmax' not allowed for this dtyper•   )r   r   rI   rK   r(   rà   rÙ   r|   Zget_level_valuesr-   r.   Z	droplevelr
   rœ   r�   rš   )rT   rU   rÚ   ZaltZindexerZgb2r    r   r   r    Útest_idxmin_idxmax_axis1ð  s    

rë   c              
   C   sÎ  |dkrt  d¡ |dkr4d}| j t jj|d�¡ ttj 	dd¡dd	d
dgd�}d|d< ddddddddddg
}| 
|¡}t||ƒ}t||ƒ}ddi}	|d k	r¨||	d< d}
d}|d k	rê||
krêd}t jt|d�� |||	Ž W 5 Q R X nà||k�rd}t jt|d�� |||	Ž W 5 Q R X n¬|d k�s.|�sp|dk�rpd}t jtdd |¡› d�d�� |||	Ž W 5 Q R X nZ|||	Ž}|�rŽ|jdd�jn|j}t||ƒ|Ž j}|dk�r¾|�s¾| t¡}t ||¡ d S )N©rà   rÜ   z5idxmax and idx_min tested in test_idxmin_idxmax_axis1)ÚcorrwithÚskewzDGH#47723 groupby.corrwith and skew do not correctly implement axis=1©Úreasonrè   r½   r©   rª   r«   ré   r:   rA   rê   r%   r&   r<   r>   r~   )r�   rŠ   ÚdiffÚfillnaÚ
pct_changeÚrankÚshift)r�   rŠ   rñ   ró   rô   rõ   r�   r�   rÜ   rà   rò   ú1got an unexpected keyword argument 'numeric_only'r•   z)got an unexpected keyword argument 'axis')rò   rõ   )ú"not supported between instances ofz2can't multiply sequence by non-int of type 'float'úunsupported operand typeú(r“   ú)rõ   )rœ   ÚskipÚnodeÚ
add_markerr¤   Úxfailr   r   rI   rK   r(   r?   r   r�   rš   r›   rH   ÚTro   rg   r-   Úassert_equal)r   Úgroupby_funcr~   r    rT   ÚgroupsrU   rs   rÓ   ÚkwargsZno_argsZhas_axisZmsgsr1   Zdf_expectedr2   r   r   r    Útest_axis1_numeric_only  sD    






r  c                  C   s¾   t dgd ddœƒ} |  d¡d  ¡ }| jddd�d  d	d
„ ¡}d|_t ||¡ t dgd ddœƒ} | d  t¡| d< |  d¡d  ¡ }| jddd�d  dd
„ ¡}d|_t ||¡ d S )NrÑ   rè   r&   ©ÚkeyÚvaluer  r  F©Z
group_keysc                 S   s   |   ¡ S rE   ©r�   r@   r   r   r    rC   Q  rD   z&test_groupby_cumprod.<locals>.<lambda>éd   c                 S   s   |   ¡ S rE   r	  r@   r   r   r    rC   X  rD   )	r   r(   r�   r,   rz   r-   r.   ro   rg   )rT   Úactualr2   r   r   r    Útest_groupby_cumprodL  s    r  c                  C   sx   t dgd ddœƒ} |  d¡d  ¡ }tdddd	gdd
�}t ||¡ | jddd�d  dd„ ¡}d|_t ||¡ d S )NrÑ   r½   i † r  r  r  l    d(	 l     �Iú5 l      Fµx:^ ry   Fr  c                 S   s   |   ¡ S rE   r	  r@   r   r   r    rC   h  rD   z/test_groupby_cumprod_overflow.<locals>.<lambda>)r   r(   r�   r   r-   r.   r,   rz   )rT   r  r2   Znumpy_resultr   r   r    Útest_groupby_cumprod_overflow]  s    
þÿr  c                  C   s`   t ddtjdgdddgdœƒ} |  d¡jddd�}t dtjtjgddd	gd
œƒ}t ||¡ d S )Nr%   r&   r$   ©rÐ   rÑ   ÚcrÐ   TF)r~   ÚskipnarZ   ©rÑ   r  )r   r   r'   r(   r�   r-   rP   ©rT   r1   r2   r   r   r    Ú1test_groupby_cumprod_nan_influences_other_columnsn  s    
ýÿr  c                  O   s   ddl m} || ddi|—ŽS )Nr   )ÚsemZddofr%   )Zscipy.statsr  )rÓ   r  r  r   r   r    Ú	scipy_sem|  s    r  z	op,targoprt   ru   r²   Úvarr+   rŒ   c                 C   s
   | j d S )Nr   ©rÙ   r@   r   r   r    rC   �  rD   rC   c                 C   s
   | j d S )Néÿÿÿÿr  r@   r   r   r    rC   Ž  rD   r  )Zmarksc                 C   sZ   t tj d¡ƒ}tjjdddd� t¡}t| |¡| ƒƒ }| |¡ 	|¡}t
 ||¡ d S )Nr9   r   r8   r¿   )r   r   rI   rK   rJ   ro   rg   r?   r(   r)   r-   rP   )ÚopZtargoprT   rÄ   r1   r2   r   r   r    Útest_ops_general‚  s
    r  c               	   C   s~   d} t jtdd�� tjt| ƒdgd�}W 5 Q R X | d¡}|dg  ¡ }|d  ¡  ¡ }t  	||¡ |d  
¡  ¡ rzt‚d S )Nz,Date,app,File
-04-23,2013-04-23 00:00:00,,log080001.log
-05-06,2013-05-06 00:00:00,,log.log
-05-07,2013-05-07 00:00:00,OE,xlsxzCould not infer formatr•   r   )Zparse_datesÚDateZFile)r-   rQ   ÚUserWarningrp   Zread_csvr   r(   r   Úto_framerP   ZisnaÚanyrO   )ÚrawrT   rU   ÚrÚer   r   r    Útest_max_nan_bugœ  s    
r"  c                  C   sì   t ddddddddd	d
g
ƒ} t tdƒƒ}|  |¡}| d¡}t dddd
dd	gt tdƒddddddgg¡d�}t ||¡ t ddddddddddg
ƒ} |  |¡}t ddddddgt tdƒdddd	ddgg¡d�}t |jddd�|¡ d S ©Nr%   r<   rÂ   r]   r&   r_   r   r½   é   rè   Z
aaaaabbbbbZaaabbbr^   râ   rˆ   )Zkeep)r   rn   r(   Únlargestr   Úfrom_arraysr-   r.   ©rÐ   rÑ   rU   r   r!  r   r   r    Útest_nlargest«  s     

þ
þr(  c            	      C   sF  t j d¡} tddd�}|ddgg}tj|ddgd	�}t|  d
¡|d�}| d¡ 	d¡}tj
|d |d df|d |d df|d |d df|d |d df|d |d df|d |d df|d |d df|d |d df|d |d df|d |d dfg
dddgd	�}ddddddddddg
}t||d�}tj||d d!d"� d S )#NiÍ[Z20180101rè   r`   ÚoneÚtwor‡   Úsecond)Únamesé   râ   r%   r   r&   r<   r½   rÂ   r$  r]   r^   r_   g-rö´@g-µ`¦wý?g@Ñf¡|ë?gé‡p—¿ö?g=±J-î?g©],l;óà?g]£f˜$žê?gM8r‰ ë¿gÅ«­4YØ?g¯
F;±é¿Fgü©ñÒMbP?)Úcheck_exactZrtol)r   rI   ZRandomStater
   r   Zfrom_productr   rK   r(   r%  Úfrom_tuplesr-   r.   )	ZnprZdtsÚ	iterablesÚidxr/   r1   Zexp_idxZ
exp_valuesr2   r   r   r    Útest_nlargest_mi_grouper¿  sB    öóör2  c                  C   sì   t ddddddddd	d
g
ƒ} t tdƒƒ}|  |¡}| d¡}t dddddd	gt tdƒdddd	ddgg¡d�}t ||¡ t ddddddddddg
ƒ} |  |¡}t ddddddgt tdƒddddddgg¡d�}t |jddd�|¡ d S r#  )r   rn   r(   Ú	nsmallestr   r&  r-   r.   r'  r   r   r    Útest_nsmallestì  s     

þ
þr4  zdata, groupsrs   r%  r3  c                 C   s”   |d k	rt j| |d�} |dkr*tt| ƒƒ} t| dd�}t| |¡|ƒdd�}t|tƒrft j|t jd�n|}t| t	 
||jg¡dd�}t ||¡ d S )N©r   r%  rÐ   ry   r&   )Ún©r|   rz   )r   Úarrayrn   Úreversedr   r?   r(   Ú
isinstanceÚint_r   r&  r|   r-   r.   )rÔ   r  r   rs   Úserr1   Zexpidxr2   r   r   r    Útest_nlargest_and_smallest_noop   s    
r=  rå   r�   rŠ   c              	   C   s‚   t dddgdddgdœƒ}| d¡}d}tjt|d�� t|| ƒdddƒ W 5 Q R X tjt|d�� t|| ƒdd� W 5 Q R X d S )	Nr%   r&   r<   ©r©   rª   r©   z+numpy operations are not valid with groupbyr•   )r§   )r   r(   rœ   r�   r   r?   )rå   rT   Úgr    r   r   r    Útest_numpy_compat  s    
r@  c              
   C   sx  | d }| d }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dg}| |¡}t d|iƒ |¡}| d¡ ¡ }t ||¡ |jdd	d
�j dd„ ¡ ¡ }t ||¡ ||j	ddgdf< |d |j	ddgdf< ||j	ddddgdf< |d |j	ddgdf< | d¡ ¡ }tj||dd� |jdd	d
�j dd„ ¡ ¡ }tj||dd� | ddi¡}t
j|j	ddddgdf< t dt
jdt
jdt
jdt
jdgiƒ}| d¡ ¡ }t ||¡ |jdd	d
�j dd„ ¡ ¡ }t ||¡ t dgt dg¡dœƒ}tt d¡dgdd�}| d¡d  ¡ }t ||¡ t dddgdddgdœƒ}| d¡j ¡ }tdddgdd�}t ||¡ d S )Nr   r%   r&   r<   r½   r>  rª   r©   Fr  c                 S   s   |   ¡ S rE   ©r�   r@   r   r   r    rC   0  rD   ztest_cummin.<locals>.<lambda>r$  rÂ   r]   T)r.  c                 S   s   |   ¡ S rE   rA  r@   r   r   r    rC   ;  rD   rg   c                 S   s   |   ¡ S rE   rA  r@   r   r   r    rC   G  rD   Ú2001rÏ   rÑ   r7  rÐ   ry   )r   ro   r(   r�   r-   rP   rª   r,   r  Úlocr   r'   rp   rã   r   r.   rÑ   )r!   r   r   Úbase_dfZexpected_minsrT   r2   r1   r   r   r    Útest_cummin#  sF    .
ÿ$ÿrE  r�   r�   ZUInt64rg   Úbooleanc              	   C   s–   t ddddddddgtjgd dœƒ}|d  |¡|d< | d¡}t dtjgd i|d�}t|| ƒƒ }t ||¡ t|d | ƒƒ  ¡ }t ||¡ d S )Nr%   r&   r^   r>  rª   r©   r5  )	r   r   r'   ro   r(   r?   r-   rP   r  )rs   r   rD  r0   r2   r1   r   r   r    Útest_cummin_max_all_nan_columnY  s    &
rG  c              
   C   sD  | d }| d }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dg}| |¡}t d|iƒ |¡}| d¡ ¡ }t ||¡ |jdd	d
�j dd„ ¡ ¡ }t ||¡ ||j	ddgdf< ||j	ddddgdf< | d¡ ¡ }t ||¡ |jdd	d
�j dd„ ¡ ¡ }t ||¡ | ddi¡}t
j|j	ddddgdf< t dt
jdt
jdt
jdt
jdgiƒ}| d¡ ¡ }t ||¡ |jdd	d
�j dd„ ¡ ¡ }t ||¡ t dgt dg¡dœƒ}tt d¡dgdd�}| d¡d  ¡ }t ||¡ t dddgdddgdœƒ}| d¡j ¡ }tdddgdd�}t ||¡ d S )Nr   r&   r%   r<   r½   r>  rª   r©   Fr  c                 S   s   |   ¡ S rE   ©r�   r@   r   r   r    rC   u  rD   ztest_cummax.<locals>.<lambda>r$  r]   c                 S   s   |   ¡ S rE   rH  r@   r   r   r    rC   ~  rD   rg   c                 S   s   |   ¡ S rE   rH  r@   r   r   r    rC   Š  rD   rB  rÏ   rÑ   r7  rÐ   ry   )r   ro   r(   r�   r-   rP   rª   r,   r  rC  r   r'   rp   rã   r   r.   rÑ   )r!   r   r   rD  Zexpected_maxsrT   r2   r1   r   r   r    Útest_cummaxh  sB    .
ÿ$ÿrI  c                  C   sZ   t dd„ tdƒD ƒƒ} td| |  d¡dœƒ}| d¡}| ¡ }|dd	g }t ||¡ d S )
Nc                 S   s   g | ]}t jj| ‘qS r   )rp   ÚNaTÚ_value)Ú.0r6  r   r   r    Ú
<listcomp>Ÿ  s     z:test_cummax_i8_at_implementation_bound.<locals>.<listcomp>rÂ   r%   zM8[ns]©r©   rª   r«   r©   rª   r«   )r   rº   r   Úviewr(   r�   r-   rP   )r<  rT   rU   rÚ   rÅ   r   r   r    Ú&test_cummax_i8_at_implementation_boundœ  s    
rP  zgroups,expected_datac           	      C   sj   t dtdd dg|d�iƒ}| ¡ }| |¡d }t|| ƒdd�}t||dd�}t ||¡ t ||¡ d S )NrÐ   r%   r&   r5  F©r  )r   rz   )r   r   Úcopyr(   r?   r-   rP   r.   )	rs   r   r  Zexpected_datarT   ÚorigrU   r1   r2   r   r   r    Útest_cummin_max_skipna¨  s    rT  c                 C   st   t tjddgdddgdœƒ}| dddg¡ddg }t|| ƒdd�}t tjtjtjgdddgdœƒ}t ||¡ d S )Nr#   rÏ   r%   rÐ   rÑ   FrQ  )r   r   r'   r(   r?   r-   rP   )rs   rT   rU   r1   r2   r   r   r    Ú$test_cummin_max_skipna_multiple_colsÁ  s
     rU  z	dtype,val)r   l         c                 C   sT   |t jg}tddg|dœ|d�}| d¡}| | ¡}td|i|d�}t ||¡ d S )Nr%   )ÚgrprÑ   r5  rV  rÑ   )rp   ÚNAr   r(   Z	transformr-   rP   )rs   r   ÚvalrÔ   rT   r0   r1   r2   r   r   r    Ú#test_nullable_int_not_cast_as_floatÍ  s    


rY  zin_vals, out_valsrÂ   iúÿÿÿgÍÌÌÌÌÌ @é   c                 C   s    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œ}t |ƒ}| d¡jj}ttdƒdd�}t||dd�}t ||¡ | dg¡j 	dd„ ¡}t ||¡ d S )NÚ1Ú2Ú3Ú4Ú5Ú6Ú7Ú8Ú9Ú10Ú11rÐ   rÑ   r  ÚdrN  rª   Úabcdry   r«   ©r|   rÔ   rz   c                 S   s   | j S rE   )Úis_monotonic_increasingr@   r   r   r    rC   ý  rD   z.test_is_monotonic_increasing.<locals>.<lambda>)
r   r(   r«   ri  r   rn   r   r-   r.   r,   ©Zin_valsZout_valsZsource_dictrT   r1   r|   r2   r   r   r    Útest_is_monotonic_increasingÝ  s    ýrk  rè   r_   r]   éýÿÿÿc                 C   s|   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œ}t |ƒ}| d¡jj}ttdƒdd�}t||dd�}t ||¡ d S )Nr[  r\  r]  r^  r_  r`  ra  rb  rc  rd  re  rÐ   rÑ   r  rf  rN  rª   rg  ry   r«   rh  )	r   r(   r«   Zis_monotonic_decreasingr   rn   r   r-   r.   rj  r   r   r    Útest_is_monotonic_decreasing  s    ýrm  c                 C   s   | j dd�}| ¡  d S )Nr‡   )Úlevel)r(   r»   )Zmframer0   r   r   r    Útest_apply_describe_bug&  s    ro  c                  C   sr   t  ¡ } |  dd„ dd„ g¡}| ¡ }t j|d | ¡ dd� t j|d | ¡ dd� t j|d | ¡ dd� d S )	Nc                 S   s   | j S rE   ©Úyearr@   r   r   r    rC   -  rD   z/test_series_describe_multikey.<locals>.<lambda>c                 S   s   | j S rE   ©Úmonthr@   r   r   r    rC   -  rD   rt   F)Zcheck_namesr²   r   )r-   ÚmakeTimeSeriesr(   r»   r.   rt   r²   r   )Útsr0   r1   r   r   r    Útest_series_describe_multikey+  s    rv  c                  C   s@   t  ¡ } |  dd„ ¡}| dd„ ¡}| ¡  ¡ }t  ||¡ d S )Nc                 S   s   | j S rE   rr  r@   r   r   r    rC   6  rD   z-test_series_describe_single.<locals>.<lambda>c                 S   s   |   ¡ S rE   )r»   r@   r   r   r    rC   7  rD   )r-   rt  r(   r,   r»   Ústackr.   )ru  r0   r1   r2   r   r   r    Útest_series_describe_single4  s
    rx  Úkey1Úkey2c                 C   sÚ   t dddddgdddddgdddddgdœƒ}|j|| d	�d
 }| ¡ }t dddgdddgdddgtjtjdgdddgdddgdddgdddgdddgdœ	ƒ}t|ƒdkr¼| dd|d ¡ | rÊ| |¡}t 	||¡ d S )Nr)  r*  Zthreer%   r&   r½   r$  )ry  rz  Úfoo2r®   r{  r"   r$   rX   r#   rY   rZ   )	ry  r±   rt   r²   r   r³   r´   rµ   r   rz  ry  )
r   r(   r»   r   r'   rM   ÚinsertrS   r-   rP   )r¯   r5   rT   rU   r1   r2   r   r   r    Útest_series_describe_as_index<  s2    ýÿ÷ÿ
r}  c                 C   s@   | j d d …dgf  | d ¡}| dd„ ¡}|jjdks<t‚d S )Nr«   r©   c                 S   s   |   ¡ S rE   )rt   r@   r   r   r    rC   ^  rD   z(test_series_index_name.<locals>.<lambda>)rC  r(   r)   r|   rz   rO   )rT   r0   r1   r   r   r    Útest_series_index_name\  s    r~  c           	      C   s  |   dd„ dd„ g¡}| ¡ }g }| D ]Z}||  ¡ }t|g|jgdgt|jƒ tt|jƒƒgd�}t|j||jd�}| 	|¡ q&t
j|dd�}t ||¡ | j ddddd	œdd�}| ¡ }|  ¡ j}tddg|jgddddgtt|jƒƒgd�|_t ||¡ d S )
Nc                 S   s   | j S rE   rp  r@   r   r   r    rC   c  rD   z.test_frame_describe_multikey.<locals>.<lambda>c                 S   s   | j S rE   rr  r@   r   r   r    rC   c  rD   r   r¶   )r;   r|   r%   r=   )r©   rª   r«   ré   )r(   r»   r   r;   rM   rº   r   ræ   r|   Úappendrp   Úconcatr-   rP   rÿ   )	Ztsframer0   r1   Zdesc_groupsÚcolre   Z	group_colr2   ZgroupedTr   r   r    Útest_frame_describe_multikeyb  s*    
þ
þr‚  c               	   C   s´   t dddddgd dddd	d
gd dddddgd dœƒ} dddgd | d< | jddid�}d}tjt|d�� |  d¡ ¡  W 5 Q R X tjt|d�� | d¡ ¡  W 5 Q R X d S )Nr%   r&   r<   r½   rÂ   rè   r-  é   é(   r8   r
  éÈ   i,  i�  rÉ   )rA   ÚyÚz)r   r   r%   )r   r%   r   )r%   r   r   Úkr  r:   z*Names should be list-like for a MultiIndexr•   )r   Úrenamerœ   r�   Ú
ValueErrorr(   r»   )Zdf1Zdf2r    r   r   r    Útest_frame_describe_tupleindex}  s    ýÿr‹  c                  C   sÜ   t dd d�dt dd d�dt dd d�di} t dd d�dt dd d�dt dd d�d	i}t| |d
œƒ}| d¡j ¡ }||jdk j ¡ j ¡ ||jdk j ¡ j ¡ g}t|tddgdd�ddddddddgd�}t	 
||¡ d S )Nz2011-01-06 10:59:05rx   iža  z2011-01-06 12:43:33i›c  z2011-01-06 12:54:09i /hYl    rT i áõ)ÚPRICEÚVOLUMErŒ  ry   r±   rt   r²   r   r³   r´   rµ   r   r{   )r	   r   r(   r�  r»   rŒ  ræ   Útolistr   r-   rP   )ZpricesZvolumesrT   r1   rÔ   r2   r   r   r    Ú$test_frame_describe_unstacked_format�  s2    
 
 
 ý
 
 
 ýþýr�  zZignore:indexing past lexsort depth may impact performance:pandas.errors.PerformanceWarningr¯   Úa1Úa2c                 C   s$  t ddddddgddddddgddddddgd	d
ddddgdœddddgdd�}|dgkrf|jdd�}t  ddddddddddddddddg¡ ddg¡j}d d g|j_t|ƒdkrâtddgddggddgddggddgd�|_	nt
ddgdd �|_	| �s| ¡ }|j|| d!� ¡ }t ||¡ d S )"Néc   éX   r%   r&   r<   r½   rÂ   r$  rè   r-  rƒ  r„  r8   é<   )r�  r‘  rÑ   r  r�  r‘  rÑ   F)r;   rR  r:   )rÑ   r±   r$   r$   )rÑ   rt   rY   r#   )rÑ   r²   r"   r"   )rÑ   r   rX   r"   )rÑ   r³   rv   rw   )rÑ   r´   rY   r#   )rÑ   rµ   g      @g      @)rÑ   r   rZ   r$   r   )r·   r¸   r,  ry   r®   )r   rH   Zfrom_recordsrS   rÿ   r;   r,  rM   r   r|   r   rR   r(   r»   r-   rP   )r¯   r5   rT   r2   r1   r   r   r    Ú0test_describe_with_duplicate_output_column_names©  sZ    	ü
ø

ðÿìÿ  ÿ
r•  c                     sÄ   t ddddggƒ} ddddg| _|  | d ¡}|jg d�}dddd	d
dg‰ ‡ fdd„dD ƒ}tj|dd�}tddgˆ gddg ddg  ddg  dttdƒƒ gd�|_dg|j	_
t ||¡ d S )Nr   r%   r&   r<   )Úpercentilesr±   rt   r²   r   r´   r   c              	      s,   g | ]$}t d |tj|||ggdgˆ d�‘qS )r"   r%   r{   r¬   )rL  rX  r:   r   r    rM  ï  s   ÿz3test_describe_duplicate_columns.<locals>.<listcomp>)r¹   r#   r$   r=   r$  r¶   )r   r;   r(   r»   rp   r€  r   rn   rº   r|   r,  r-   rP   )rT   rU   r1   Úframesr2   r   r:   r    Útest_describe_duplicate_columnsç  s    
þ
,þ
r˜  c                  C   sD   t dddddgdddddgdœƒ} |  d¡d	  ¡ d d
ks@t‚d S )Nr©   ij  i�  io  i`  l    @Ü~ÿÿ )ÚuserÚconnectionsr™  rš  l    ,fÌL™ )r   r(   rt   rO   )rT   r   r   r    Útest_groupby_mean_no_overflowü  s    þÿr›  ræ   Úfunctionc                 C   s¼   |dkrdnd}t j|gd td�}tdddgdd	d
�}td|i|d� d¡}t| d	d� d¡}t||ƒƒ }t 	||¡ | 
|¡}t 	||¡ | 
|g¡}t d|fg¡|_t 	||¡ d S )Nr  g      à?rw   r<   r5  r%   r&   rÐ   r   ©rz   r   rÑ   râ   r   )r   r8  rg   r   r   ro   r(   r?   r-   rP   r)   r   r/  r;   )ræ   rœ  ÚoutputrÃ   r1  r2   r  r1   r   r   r    Ú,test_apply_to_nullable_integer_returns_float  s    
rŸ  c                  C   s¸   t dddgdddgdddgdœdd�} |  d¡}tdddgddd�}|d	 jdd
�}ttjgd d|d	d�}t ||¡ |jdd
�}t tjgd tjgd dœd|d�}t 	||¡ d S )Nr   r%   r&   r  r   r5  rÐ   r�  rÑ   ©Z	min_countr<   )r   r|   rz   r  )r   r|   )
r   r(   r   r+   r   rp   rW  r-   r.   rP   )rT   r0   r1  r1   r2   r   r   r    Ú0test_groupby_sum_below_mincount_nullable_integer&  s    &
$r¡  c                  C   sf   t t tdƒ¡ddgd dœƒ} |  d¡d  ¡ }tt ddg¡dtddgdd	�d
�}t 	||¡ d S )Nrè   r©   rª   rÂ   )ÚtimeÚcatr£  r¢  r½   ry   )rz   r|   )
r   rp   Zto_timedeltarº   r(   rt   r   r   r-   r.   r  r   r   r    Útest_mean_on_timedelta5  s       ÿr¤  c                  C   sÐ   t ddddgt d¡t d¡t d¡tjgdœƒ} tjdd�}|  d	¡}| ¡ }t d
||gitddgd	d�d�}t ||¡ |d
  ¡ }t 	||d
 ¡ |d
 jdd�}t
|tjgdd
|jd�}t 	||¡ d S )Nr%   r&   Z1dZ2dZ3drÏ   r<   )ÚdaysrÐ   rÑ   ry   râ   r   zm8[ns])r   rz   r|   )r   rp   r   rJ  r(   r+   r   r-   rP   r.   r   r|   )rT   Ztd3rU   rÚ   r2   r   r   r    Ú#test_groupby_sum_timedelta_with_nat?  s    
þÿ
 r¦  zkernel, has_arg)ÚallF)r  F)ÚbfillF)ÚcorrT)rí   T)ÚcovT)r�   T)r�   T)r�   T)rŠ   T)rñ   F)ÚffillF)rò   F)r‡   T)rà   T)rÜ   T)rˆ   T)r   T)rt   T)ru   T)r   T)r×   F)ÚnuniqueF)ró   F)rŒ   T)ÚquantileT)r  T)rî   T)r²   T)r+   T)r  Tc              	   C   sœ  t ddgddgddgdtg dœƒ}t| |ƒ}|tjkr<i nd|i}| |¡}t|| ƒ}|r€|dkr€|||Ž}	d|	jks|t‚�n| d	ksš| d
kr´|tjkr´|||Ž}	d|	jks²t‚nä|sÂ| dk�r|dk	sÎt‚|  	d¡rÜt
nt}
d dddddddg¡}tj|
|d�� |||Ž W 5 Q R X nz|�sV|tjk	�rVtjtdd�� |||Ž W 5 Q R X nB| dk�sdt‚|tjk�stt‚tjtdd�� |||Ž W 5 Q R X d S )Nr%   r&   rÂ   r$  )r�  r‘  Úa3rÑ   r~   TrÑ   r—   )r  r§  r¨  r«  rò   r×   r¬  rì   r’   r“   únot allowed for this dtypezmust be a string or a numberú+cannot be performed against 'object' dtypesz!must be a string or a real numberrø   r÷   r”   r•   rö   )rñ   ró   )r   Úobjectr   r   Ú
no_defaultr(   r?   r;   rO   r˜   r™   rš   r›   rœ   r�   )ÚkernelÚhas_argr~   r5   rT   rÓ   r  rU   rs   r1   rŸ   r    r   r   r    Útest_numeric_onlyW  sR    *$



þûú	
ùÿ ÿrµ  c              	   C   sÂ  |dkr"d}|j  tjj|d�¡ dddg}tdddg| d�}| |¡}t||ƒ}tdddgƒ}| |¡}	t|	|ƒ}
t||ƒ}d}d}||krÚ| t	krÚ|d	kr¤d
}n|dkr²d}nd}tj
t|d�� ||Ž  W 5 Q R X n:| t	k�r||Ž }|
|Ž }||k�r| t	¡}t ||¡ d}||k�rPd}tj
t|d�� ||ddiŽ W 5 Q R X nn| t	k�r–d ddddg¡}tj
t|d�� ||ddiŽ W 5 Q R X n(||ddiŽ}||ddiŽ}t ||¡ d S )Nrí   z,corrwith is not implemented on SeriesGroupByrï   r   r%   r5  )	r©  rª  r�   r�   r�   rŠ   rà   rÜ   r­  )r‡   rˆ   r×   r¨  r«  rõ   r+   rñ   ró   r  rt   ru   r   r   rŒ   rì   r¯  r­  r°  z!is not supported for object dtyper•   )r‡   rˆ   r   rt   ru   r   rŒ   r­  r  rî   r²   r+   r  r�   r�   r�   rŠ   rö   r~   Tr“   z@SeriesGroupBy.sem called with numeric_only=True and dtype objectz=Series.skew does not allow numeric_only=True with non-numericz7cum(sum|prod|min|max) is not supported for object dtypezCCannot use numeric_only=True with SeriesGroupBy\..* and non-numericF)rü   rý   rœ   r¤   rþ   r   r(   r?   r   r±  r�   rš   ro   r-   r.   r›   )r   r  r   r    Zgrouperr<  rU   rs   Zexpected_serÚexpected_gbZexpected_methodrÓ   Zfails_on_numeric_objectZ
obj_resultr1   r2   Zhas_numeric_onlyr   r   r    Ú"test_deprecate_numeric_only_series¹  sZ    










üÿr·  r  gš™™™™™¹?gš™™™™™É?g333333Ó?r§  )r–  ÚincludeÚexcluderf   c                 C   sê   t dddggdddg| d�}|d  t¡|d< |d  t¡|d< |jd d…  d¡jf |Ž}| d¡jf |Žjd	d
�jd d… }t 	||¡ |jd d…  d¡j
jf |Ž}| d¡j
jf |Žjd	d
�jd d… }tg ƒ|_t 	||¡ d S )Nr%   r&   r<   r©   rª   r«   )r;   r   r   T)rH   )r   ro   rf   rg   rÙ   r(   r»   rR   r-   rP   rª   r   r|   )r   r  rT   r1   r2   r   r   r    Útest_groupby_empty_dataset$  s    $&
rº  c                  C   sj   t dddgdddgdœƒ} |  d¡j| dd�}td	d
ddddgdd�}ttj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Ð   N)rÔ   rz   r$  râ   )	r   r(   rí   r   r   r   r'   r-   r.   )rT   r1   r|   r2   r   r   r    Útest_corrwith_with_1_axis=  s    þr»  c                 C   sd   t g g g dœƒ dddg¡}|jdddgdd�}t|| ƒ}t| |ƒ}||Ž j}|j}t ||¡ d S )Nr  rÐ   rÑ   r  Fr  )r   rS   r(   r?   r   r|   r-   rž   )r  rT   rU   rs   rÓ   r1   r2   r   r   r    Ú,test_multiindex_group_all_columns_when_emptyI  s    


r¼  c                 C   sÒ   |dkr"d}| j  tjj|d�¡ tdddgdddgd	d
dggtdƒd�}t||ƒ}|jd|d�}t	||ƒ|Ž }|j
dddgdd�}t||ƒ}	|jd|d�}
t	|
|ƒ|	Ž }|dkrÂ|jddid�}t ||¡ d S )Nrí   z:GH#50845 - corrwith fails when there are duplicate columnsrï   r%   r<   r$  r½   r]   r&   rÂ   r^   Zabbr:   rÐ   r®   rÑ   r  r=   )rÀ   ZngroupZcumcount)rü   rý   rœ   r¤   rþ   r   rn   r   r(   r?   Zset_axisr‰  r-   r   )r   r  r¯   r    rT   rÓ   rU   r1   Zexpected_dfZexpected_argsr¶  r2   r   r   r    Útest_duplicate_columnsU  s    (

r½  )N)pr*   Úior   Znumpyr   rœ   Zpandas._libsr   Zpandas.errorsr   Zpandasrp   r   r   r   r   r	   r
   Zpandas._testingZ_testingr-   Zpandas.corer   Zpandas.tests.groupbyr   Zpandas.utilr   Útdr£   rÍ   r   rÎ   r   r!   r3   r¤   r¥   r   r   r+   rV   rW   r¦   r¾   rÇ   rÌ   rÖ   rÛ   rç   rë   r  r  r  r  r  rt   ru   r²   r  rŒ   rÀ   r   Zskip_if_no_scipyr  r"  r(  r2  r4  ZALL_INT_NUMPY_DTYPESr=  r@  rE  rG  rI  rP  rT  rU  Zskip_if_32bitr   rY  Úinfr'   rk  rm  ro  rv  rx  r}  r~  r‚  r‹  r�  Úfilterwarningsr•  r˜  r›  rW  rŸ  r¡  r¤  r¦  r²  rµ  Úboolrf   rg   r±  r·  rº  r»  r¼  r½  r   r   r   r    Ú<module>   sÂ   þ
 =- ÿûþ
þûþ

þþ 
F

ôþ
	-"þ
64ýþ
 ÿ$$
þ$
þöþ
$,
þ$
þöþ
	
ÿ7þ ûþ

áþ$<
jýþ