U
    ¾mœdCÒ  ã                "   @   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)ÚparamsZ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   ú[/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/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    r2   Ú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%   r5   r6   ©Úcolumnsr8   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   rB   X   rC   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>   )	r4   r3   ÚdfÚgbr0   ZngroupsZ
assert_msgr1   Z	expected2r   )rA   rE   r   Útest_builtins_applyC   s&    



rU   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)r`   Útzz1 sr.   )r`   Úfreq)	ÚgroupÚintÚfloatÚstringÚcategory_stringÚcategory_intÚdatetimeÚ
datetimetzÚ	timedeltard   re   rf   rg   rh   ri   rj   rk   rl   r9   )r   Úlistr   Úastyper
   ÚpdZtimedelta_range©ÚselfrS   r   r   r   rS   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 )Nre   rf   ri   rd   g      @r^   ç      @rY   z1.5sZ3sç      ø?r;   z2013-01-01 12:00:00z2013-01-03 00:00:00ra   ©rb   )ri   rf   rl   re   rj   rk   r$   r%   ©Úname©Úindexr:   T©Únumeric_only)r   r'   r   ro   Ú	Timedeltar	   r>   r,   rO   Zreindex_liker:   Ú_check)rq   rS   rr   Úexpected_columns_numericrT   r1   r0   Ú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 )Nre   rf   rg   ri   rj   rk   rl   ©r   r   ©rq   rS   rr   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 )	Nre   rf   rg   rh   ri   rj   rk   rl   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 )Nre   rf   ri   rg   rl   r‰   rƒ   )rq   rS   rr   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 )Nre   rf   ri   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 )Nre   rf   ri   rj   rk   rl   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 )Nrd   Ú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*   rs   rt   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:   )	rq   rS   rr   r�   r€   rT   Ú	exceptionÚmsgr0   r   r   r   r   í   sH    

ýÿýÿ

úÿ
zTestNumericOnly._checkN)rK   Ú
__module__Ú__qualname__r›   ÚfixturerS   ÚmarkÚparametrizer‚   r…   rˆ   rŠ   r�   r�   r   r   r   r   r   rV   c   s   

#




rV   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ÚCr9   ©r   r   r&   rp   r   r   r   rS   #  s
    þzTestGroupByNonCythonPaths.dfc                 C   s   |  d¡}|S )Nr¨   ©r'   )rq   rS   rT   r   r   r   rT   +  s    
zTestGroupByNonCythonPaths.gbc                 C   s   |j ddd�}|S )Nr¨   F©Úas_indexr¬   )rq   rS   Ú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¨   rx   r©   Úcountrs   Ústdr   ú25%ú50%ú75%r   r   r]   ©ÚlevelsÚcodesr!   r"   ç        rz   )r   r   rm   Úranger   r   r&   Údescriber,   rO   rQ   )rq   rS   rT   r¯   Zexpected_indexZexpected_colr1   r0   r   r   r   Útest_describe5  s"    þ þúz'TestGroupByNonCythonPaths.test_describeN)	rK   r    r¡   r›   r¢   rS   rT   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ª   r9   Fr­   r<   )r   r   r&   r'   r‰   r,   rO   rŒ   )rS   r1   r0   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 )Nr8   r%   r   r7   ©Úsizeé   é   )r   rH   rJ   r&   r   rI   rn   rf   r'   rt   r(   r   Z	nanmedianr,   rO   )ÚarrrS   Úlabelsr0   Ú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 rD   )rt   r?   r   r   r   rB   {  rC   z(test_median_empty_bins.<locals>.<lambda>)r   r   rH   rI   r¹   ro   Úcutr'   rt   r(   r,   rO   )rÊ   rS   ZgrpsZbinsr0   r1   r   r   r   Útest_median_empty_binst  s    rÌ   r   Zint8Zint16Úint32r   Úfloat32r   Zuint64zmethod,datar†   rS   r$   ©ÚaÚbr%   r;   r‡   r¼   r   r   r°   )rS   Ú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Ò   rS   rÐ   T)rF   )r   rÑ   rn   rR   r'   r>   r,   rO   )	r   rr   ÚdatarS   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Ï   r1   )r1   rÓ   r%   )r†   r‡   r   r   Únthr°   rÓ   rÐ   )r   Úitemsr'   r>   ÚilocrÑ   rN   )r   rS   Zgrp_exprr   rÔ   r/   Ú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)ry   rÝ   rÞ   rß   rß   z
US/PacificZ	c_date_tzr   Zc_timedeltaÚWZc_periodrÝ   r   Z	c_IntegerrÞ   r   Z
c_Floatingry   r|   rx   ©r{   r9   )r   ro   Úto_datetimeÚdtZtz_localizerÙ   Z	to_periodrn   r>   r'   r   rG   r,   rO   )ÚfuncÚvaluesr}   rS   r0   r1   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ª   ÚDr9   r$   r%   r;   r<   z
2016-01-01r_   ÚEz7reduction operation 'argmax' not allowed for this dtyper”   )r   r   rH   rJ   r'   rà   rÙ   r{   Zget_level_valuesr,   r-   Z	droplevelr
   r›   rœ   r™   )rS   rT   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é   r9   r@   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   rH   rJ   r'   r>   r   rœ   r™   rš   rG   ÚTrn   rf   r,   Úassert_equal)r   Úgroupby_funcr}   rŸ   rS   ÚgroupsrT   rr   rÓ   ÚkwargsZno_argsZhas_axisZmsgsr0   Zdf_expectedr1   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 rD   ©rŒ   r?   r   r   r   rB   Q  rC   z&test_groupby_cumprod.<locals>.<lambda>éd   c                 S   s   |   ¡ S rD   r	  r?   r   r   r   rB   X  rC   )	r   r'   rŒ   r+   ry   r,   r-   rn   rf   )rS   Úactualr1   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:^ rx   Fr  c                 S   s   |   ¡ S rD   r	  r?   r   r   r   rB   h  rC   z/test_groupby_cumprod_overflow.<locals>.<lambda>)r   r'   rŒ   r   r,   r-   r+   ry   )rS   r  r1   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}   ÚskipnarY   ©rÑ   r  )r   r   r&   r'   rŒ   r,   rO   ©rS   r0   r1   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,targoprs   rt   r±   Úvarr*   r‹   c                 C   s
   | j d S )Nr   ©rÙ   r?   r   r   r   rB   �  rC   rB   c                 C   s
   | j d S )Néÿÿÿÿr  r?   r   r   r   rB   Ž  rC   r  )Zmarksc                 C   sZ   t tj d¡ƒ}tjjdddd� t¡}t| |¡| ƒƒ }| |¡ 	|¡}t
 ||¡ d S )Nr8   r   r7   r¾   )r   r   rH   rJ   rI   rn   rf   r>   r'   r(   r,   rO   )ÚopZtargoprS   rÃ   r0   r1   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ÚDateÚFile)r,   rP   ÚUserWarningro   Zread_csvr   r'   r   Úto_framerO   ZisnaÚanyrN   )ÚrawrS   rT   Ú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   rm   r'   Únlargestr   Úfrom_arraysr,   r-   ©rÐ   rÑ   rT   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   rH   ZRandomStater
   r   Zfrom_productr   rJ   r'   r&  Úfrom_tuplesr,   r-   )	ZnprÚdtsÚ	iterablesÚidxr.   r0   Zexp_idxZ
exp_valuesr1   r   r   r   Útest_nlargest_mi_grouper¿  sB    öóör4  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   rm   r'   Ú	nsmallestr   r'  r,   r-   r(  r   r   r   Útest_nsmallestì  s     

þ
þr6  zdata, groupsrr   r&  r5  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Ð   rx   r%   )Ún©r{   ry   )r   Úarrayrm   Úreversedr   r>   r'   Ú
isinstanceÚint_r   r'  r{   r,   r-   )rÔ   r  r   rr   Úserr0   Zexpidxr1   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å   rS   ÚgrŸ   r   r   r   Útest_numpy_compat  s    
rB  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 rD   ©rŽ   r?   r   r   r   rB   0  rC   ztest_cummin.<locals>.<lambda>r%  rÁ   r\   T)r/  c                 S   s   |   ¡ S rD   rC  r?   r   r   r   rB   ;  rC   rf   c                 S   s   |   ¡ S rD   rC  r?   r   r   r   rB   G  rC   Ú2001rÏ   rÑ   r9  rÐ   rx   )r   rn   r'   rŽ   r,   rO   r©   r+   r  Úlocr   r&   ro   rã   r   r-   rÑ   )r    r   r   Úbase_dfZexpected_minsrS   r1   r0   r   r   r   Útest_cummin#  sF    .
ÿ$ÿrG  rŽ   r�   ZUInt64rf   Ú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¨   r7  )	r   r   r&   rn   r'   r>   r,   rO   r  )rr   r   rF  r/   r1   r0   r   r   r   Útest_cummin_max_all_nan_columnY  s    &
rI  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 rD   ©r�   r?   r   r   r   rB   u  rC   ztest_cummax.<locals>.<lambda>r%  r\   c                 S   s   |   ¡ S rD   rJ  r?   r   r   r   rB   ~  rC   rf   c                 S   s   |   ¡ S rD   rJ  r?   r   r   r   rB   Š  rC   rD  rÏ   rÑ   r9  rÐ   rx   )r   rn   r'   r�   r,   rO   r©   r+   r  rE  r   r&   ro   rã   r   r-   rÑ   )r    r   r   rF  Zexpected_maxsrS   r1   r0   r   r   r   Útest_cummaxh  sB    .
ÿ$ÿrK  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   )ro   ÚNaTÚ_value)Ú.0r8  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,   rO   )r>  rS   rT   rÚ   rÄ   r   r   r   Ú&test_cummax_i8_at_implementation_boundœ  s    
rR  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%   r7  F©r  )r   ry   )r   r   Úcopyr'   r>   r,   rO   r-   )	rr   r   r  Zexpected_datarS   ÚorigrT   r0   r1   r   r   r   Útest_cummin_max_skipna¨  s    rV  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Ñ   FrS  )r   r   r&   r'   r>   r,   rO   )rr   rS   rT   r0   r1   r   r   r   Ú$test_cummin_max_skipna_multiple_colsÁ  s
     rW  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Ñ   r7  rX  rÑ   )ro   ÚNAr   r'   Z	transformr,   rO   )rr   r   ÚvalrÔ   rS   r/   r0   r1   r   r   r   Ú#test_nullable_int_not_cast_as_floatÍ  s    


r[  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  ÚdrP  r©   Úabcdrx   rª   ©r{   rÔ   ry   c                 S   s   | j S rD   )Úis_monotonic_increasingr?   r   r   r   rB   ý  rC   z.test_is_monotonic_increasing.<locals>.<lambda>)
r   r'   rª   rk  r   rm   r   r,   r-   r+   ©Zin_valsZout_valsZsource_dictrS   r0   r{   r1   r   r   r   Útest_is_monotonic_increasingÝ  s    ýrm  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`  ra  rb  rc  rd  re  rf  rg  rÐ   rÑ   r  rh  rP  r©   ri  rx   rª   rj  )	r   r'   rª   Zis_monotonic_decreasingr   rm   r   r,   r-   rl  r   r   r   Útest_is_monotonic_decreasing  s    ýro  c                 C   s   | j dd�}| ¡  d S )Nr†   )Úlevel)r'   rº   )Zmframer/   r   r   r   Útest_apply_describe_bug&  s    rq  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 rD   ©Úyearr?   r   r   r   rB   -  rC   z/test_series_describe_multikey.<locals>.<lambda>c                 S   s   | j S rD   ©Úmonthr?   r   r   r   rB   -  rC   rs   F)Zcheck_namesr±   r   )r,   ÚmakeTimeSeriesr'   rº   r-   rs   r±   r   )Útsr/   r0   r   r   r   Útest_series_describe_multikey+  s    rx  c                  C   s@   t  ¡ } |  dd„ ¡}| dd„ ¡}| ¡  ¡ }t  ||¡ d S )Nc                 S   s   | j S rD   rt  r?   r   r   r   rB   6  rC   z-test_series_describe_single.<locals>.<lambda>c                 S   s   |   ¡ S rD   )rº   r?   r   r   r   rB   7  rC   )r,   rv  r'   r+   rº   Ústackr-   )rw  r/   r0   r1   r   r   r   Útest_series_describe_single4  s
    rz  Ú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+  Úthreer$   r%   r¼   r%  )r{  r|  Úfoo2r­   r~  r!   r#   rW   r"   rX   rY   )	r{  r°   rs   r±   r   r²   r³   r´   r   r|  r{  )
r   r'   rº   r   r&   rL   ÚinsertrR   r,   rO   )r®   r4   rS   rT   r0   r1   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 rD   )rs   r?   r   r   r   rB   ^  rC   z(test_series_index_name.<locals>.<lambda>)rE  r'   r(   r{   ry   rN   )rS   r/   r0   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 rD   rr  r?   r   r   r   rB   c  rC   z.test_frame_describe_multikey.<locals>.<lambda>c                 S   s   | j S rD   rt  r?   r   r   r   rB   c  rC   r   rµ   )r:   r{   r$   r<   )r¨   r©   rª   ré   )r'   rº   r   r:   rL   r¹   r   ræ   r{   Úappendro   Úconcatr,   rO   rÿ   )	Ztsframer/   r0   Zdesc_groupsÚcolrd   Z	group_colr1   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.  é   é(   r7   r
  éÈ   i,  i�  rÈ   )r@   ÚyÚz)r   r   r$   )r   r$   r   )r$   r   r   Úkr  r9   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:05rw   iža  z2011-01-06 12:43:33i›c  z2011-01-06 12:54:09i /hYl    rT i áõ)ÚPRICEÚVOLUMEr�  rx   r°   rs   r±   r   r²   r³   r´   r   rz   )r	   r   r'   r�  rº   r�  ræ   Útolistr   r,   rO   )ZpricesZvolumesrS   r0   rÔ   r1   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‡  r7   é<   )r“  r”  rÑ   r  r“  r”  rÑ   F)r:   rT  r9   )rÑ   r°   r#   r#   )rÑ   rs   rX   r"   )rÑ   r±   r!   r!   )rÑ   r   rW   r!   )rÑ   r²   ru   rv   )rÑ   r³   rX   r"   )rÑ   r´   g      @g      @)rÑ   r   rY   r#   r   )r¶   r·   r-  rx   r­   )r   rG   Zfrom_recordsrR   rÿ   r:   r-  rL   r   r{   r   rQ   r'   rº   r,   rO   )r®   r4   rS   r1   r0   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°   rs   r±   r   r³   r   c              	      s,   g | ]$}t d |tj|||ggdgˆ d�‘qS )r!   r$   rz   r«   )rN  rZ  r9   r   r   rO  ï  s   ÿz3test_describe_duplicate_columns.<locals>.<listcomp>)r¸   r"   r#   r<   r%  rµ   )r   r:   r'   rº   ro   rƒ  r   rm   r¹   r{   r-  r,   rO   )rS   rT   r0   Úframesr1   r   r9   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'   rs   rN   )rS   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      à?rv   r;   r7  r$   r%   rÐ   r   ©ry   r   rÑ   râ   r   )r   r:  rf   r   r   rn   r'   r>   r,   rO   r(   r   r0  r:   )ræ   rŸ  ÚoutputrÂ   r3  r1   r  r0   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   r7  rÐ   r   rÑ   ©Z	min_countr;   )r   r{   ry   r  )r   r{   )
r   r'   r   r*   r   ro   rY  r,   r-   rO   )rS   r/   r3  r0   r1   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¼   rx   )ry   r{   )
r   ro   Zto_timedeltar¹   r'   rs   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Ñ   rx   râ   r£  zm8[ns])r   ry   r{   )r   ro   r~   rL  r'   r*   r   r,   rO   r-   r   r{   )rS   Ztd3rT   rÚ   r1   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)rs   T)rt   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:   rN   r—   r˜   r™   rš   r›   rœ   )ZkernelÚhas_argr}   r4   rS   rÓ   r  rT   rr   r0   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$   r7  )	r¬  r­  r�   rŽ   rŒ   r‰   rà   rÜ   r°  )r†   r‡   r×   r«  r®  rõ   r*   rñ   ró   r  rs   rt   r   r   r‹   rì   r²  r°  r³  z!is not supported for object dtyper”   )r†   r‡   r   rs   rt   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™   rn   r,   r-   rš   )r   r  r   rŸ   Zgrouperr>  rT   rr   Zexpected_serÚexpected_gbZexpected_methodrÓ   Zfails_on_numeric_objectZ
obj_resultr0   r1   Zhas_numeric_onlyr   r   r   Ú"test_deprecate_numeric_only_series¹  sZ    










üÿr¹  r  gš™™™™™¹?gš™™™™™É?g333333Ó?rª  )r™  ÚincludeÚexcludere   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)rG   )r   rn   re   rf   rÙ   r'   rº   rQ   r,   rO   r©   r   r{   )r   r  rS   r0   r1   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Ô   ry   r%  râ   )	r   r'   rí   r   r   r   r&   r,   r-   )rS   r0   r{   r1   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   rR   r'   r>   r   r{   r,   r�   )r  rS   rT   rr   rÓ   r0   r1   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abbr9   rÐ   r­   rÑ   r  r<   )r¿   ZngroupZcumcount)rü   rý   r›   r£   rþ   r   rm   r   r'   r>   Zset_axisrŒ  r,   r   )r   r  r®   rŸ   rS   rÓ   rT   r0   Zexpected_dfZexpected_argsr¸  r1   r   r   r   Útest_duplicate_columnsU  s    (

r¿  )N)pr)   Úior   Únumpyr   r›   Zpandas._libsr   Zpandas.errorsr   Zpandasro   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    r2   r£   r¤   r   r   r*   rU   rV   r¥   r½   rÆ   rÌ   rÖ   rÛ   rç   rë   r  r  r  r  r  rs   rt   r±   r  r‹   r¿   r   Zskip_if_no_scipyr  r#  r)  r4  r6  ZALL_INT_NUMPY_DTYPESr?  rB  rG  rI  rK  rR  rV  rW  Zskip_if_32bitr   r[  Úinfr&   rm  ro  rq  rx  rz  r€  r�  r…  rŽ  r’  Úfilterwarningsr˜  r›  rž  rY  r¢  r¤  r§  r©  rµ  r·  Úboolre   rf   r´  r¹  r¼  r½  r¾  r¿  r   r   r   r   Ú<module>   sÂ   þ
 =- ÿûþ
þûþ

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