a
    do                     @   s
  d dl Z d dlmZ d dl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 ejejejejejdd	gg d
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 g d!ej"#d"d#d$d%d%d&d'd(d&gifd)d$d%d'd&d'd*d&gifd+d$d%d%d&d'd(d&gifd,d$d%d'd&d'd*d&gifd-d%d'd&d'd'd&gd.d/fgd0d1 Z-ej"#d2ed3ed4fd5gd6d7 Z.ej"#d8d9d d'gd%d(gd%d'gd:fd;d%d(gd d'gd d(gd:fgej"#d<d=d>gd?d@ Z/dAdB Z0ej"#d<g dCdDdE Z1dFdG Z2dHdI Z3dJdK Z4dLdM Z5ej"#dNdOej6fdPej7fdQej8fdRej9fdSej&fdTej:fd+ej%fd,ej$fd#dUdV fd)dWdV fd-ej;fej<dXe5ej=dYgdZd[ Z>d\d] Z?d^d_ Z@d`da ZAdbdc ZBej"#ddg deg dffd gd gfgej"#d dgejCej"#dgdhdigdjdk ZDej"#dldmdngdodp ZEdqdr ZFej"#dgdsdtgej"#d g dudvdw ZGdxdy ZHdzd{ ZIej"#dgdsdtgej"#d g d|ej"#d}g d~g dfg dg dfg dg dfgdd ZJej"#dgdsdtgdd ZKejLej"#dgdsdtgej"#ddeMdj$fdgdd ZNej"#dg dg dfd%dejOd(d'ejOejO ddd%ejO gg dfd%d'ejPd(d'ejPejPdejO d%ejPgg dfgdd ZQej"#dg dg dfejOd%ejO ejOd'dejO ddejO ejO gg dfd%d'ejPd(d'ejPejPdejO d%ejPgg dfgdd ZRdd ZSdd ZTdd ZUej"#ddddggdd ZVdd ZWdd ZXdd ZYdd ZZej"[dej"#dd=d>gej"#ddgddggdd Z\dd Z]dd Z^ej"#dg dd%ej_d'd%ej_d'd%ej_d'g	d&g dg dd&gej"#dg ddd Z`ej"#dd dgddÄ Zaddń ZbddǄ ZcddɄ Zdej"#dg dˢej"#d<d=d>ejegej"#ddgddggdd̈́ Zfej"#d egeheiejgddτ Zkej"#d eheiejgej"#dg dѢdddӜg dѢddgdӜg dѢdgddӜgddք Zldd؄ Zmddڄ Zndd܄ Zoej"#dg dޢej"#dd d%gej"#dd=d>gej"#dd=d>gdd ZpdS )    N)StringIO)lib)UnsupportedFunctionCall)	DataFrameIndex
MultiIndexSeries	Timestamp
date_range)get_groupby_method_args)_test_decoratorsInt64Float64)znp.int32znp.int64z
np.float32z
np.float64r   r   )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   k/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/pandas/tests/groupby/test_function.pydtypes_for_minmax   s    	

r    c                  C   s   t ddtjdg} | g d}d}tjt|d |tj	}W d    n1 sT0    Y  d}tjt|d |
tj	}W d    n1 s0    Y  |	 }t|| t|| d S )N      ?       @      @)r         r%   zusing SeriesGroupBy.summatchzusing np.sum)r   r   nangroupbytmassert_produces_warningFutureWarningaggbuiltinssumapplyassert_series_equal)sgroupedmsgresultZresult2expectedr   r   r   test_intercept_builtin_sum8   s    **r7   fkeysjimjoec                    s  t jd}t|dddddgd}|d|d	< || }|j |turPd nt	}d
}t
j||ddd ||}W d    n1 s0    Y  t|j| d}d|j d| d}	|j|dfksJ |	 fdd|}
t
||
 t
d " |fdd}W d    n1 s$0    Y  t
|| |tkrr|  }
|
j| ddd t
j||
dd t
t| ddt| dd d S )Nr%   r$      )
   r%   r:   r;   columnsr=   Zjoliez:The behavior of DataFrame.sum with axis=None is deprecatedF)r'   Zcheck_stacklevelZraise_on_extra_warnings)Zsubsetzinvalid frame shape: z (expected (z, 3))   c                    s   t t | ddS )Nr   axis)getattrr   x)fnamer   r   <lambda>a       z%test_builtins_apply.<locals>.<lambda>c                    s    | S Nr   rD   )npfuncr   r   rG   f   rH   T)inplacedrop)Zcheck_dtyper   rA   )r   randomdefault_rngr   integersstandard_normalr)   __name__r/   r,   r*   r+   r0   lenZdrop_duplicatesshapeassert_frame_equalr-   reset_index	set_indexr1   rC   )r9   r8   rsdfgbwarnr4   r5   ZngroupsZ
assert_msgr6   Z	expected2r   )rF   rJ   r   test_builtins_applyI   s2    
(
2
r[   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   sh   t g dg dg dtdttddg dtddd	tddd
dtjddddd	g dd}|S )Nr$   r$   r%   r$   r%   r@   )      @      @      @abccategory)r<      	   Z20130101r@   periods
US/Eastern)rg   tzz1 sr2   )rg   freq)	groupintfloatstringcategory_stringcategory_intdatetime
datetimetz	timedeltar>   )r   listr   astyper
   pdZtimedelta_rangeselfrX   r   r   r   rX   t   s    
zTestNumericOnly.dfmethodmeanmedianc                 C   s   t g d}|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g dd}t||dd}t|	|| |j
}| |||| d S )Nrl   rm   rp   rk   g      @re         @ra   z1.5sZ3s      ?r@   z2013-01-01 12:00:00z2013-01-03 00:00:00rh   ri   )rp   rm   rs   rl   rq   rr   r$   r%   nameindexr?   Tnumeric_only)r   r)   r   rv   	Timedeltar	   rC   r*   rT   Zreindex_liker?   _check)rx   rX   ry   expected_columns_numericrY   r6   r5   expected_columnsr   r   r   test_averages   s*    


zTestNumericOnly.test_averagesr   r   c                 C   s$   t g d}|}| |||| d S )N)rl   rm   rn   rp   rq   rr   rs   r   r   rx   rX   ry   r   r   r   r   r   test_extrema   s
    zTestNumericOnly.test_extremafirstlastc                 C   s$   t g d}|}| |||| d S )N)rl   rm   rn   ro   rp   rq   rr   rs   r   r   r   r   r   test_first_last   s
    zTestNumericOnly.test_first_lastr/   cumsumc                 C   s@   t g d}t g d}|dkr,t g d}| |||| d S )Nr|   )rl   rm   rn   rp   rs   r   )rl   rm   rp   rs   r   )rx   rX   ry   r   r   r   r   r   test_sum_cumsum   s    zTestNumericOnly.test_sum_cumsumprodcumprodc                 C   s$   t g d}|}| |||| d S )Nr|   r   r   r   r   r   test_prod_cumprod   s    z!TestNumericOnly.test_prod_cumprodcummincummaxc                 C   s$   t g d}|}| |||| d S )N)rl   rm   rp   rq   rr   rs   r   r   r   r   r   test_cummin_cummax   s
    z"TestNumericOnly.test_cummin_cummaxc           	      C   s  | d}|drtnt}|dv rddd| dtd| d	d
g}tj||d t	||  W d    n1 s|0    Y  nz|dv rddtd| d	g}tj||d t	||  W d    n1 s0    Y  nt	|| }t
|j| |dvrxdddd
d| dtd| d	g}tj||d  t	||dd W d    n1 sl0    Y  nt	||dd}t
|j| d S )Nrk   cum)r   r   r   r   r   r   |zCategorical is not orderedzCannot perform z with non-ordered Categoricalagg function failed [how->,dtype->object]*function is not implemented for this dtyper&   )r/   rz   r{   r   z-category type does not support sum operationsr   r   zcategory type does not supportFr   )r)   
startswithNotImplementedError	TypeErrorjoinreescapepytestraisesrC   r*   assert_index_equalr?   )	rx   rX   ry   r   r   rY   	exceptionr4   r5   r   r   r   r      sF    

	,,

	2zTestNumericOnly._checkN)rQ   
__module____qualname__r   fixturerX   markparametrizer   r   r   r   r   r   r   r   r   r   r   r\   q   s   

#




r\   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   s.   t g ddtjdgdtjdggg dd}|S )N)r$   r%   foor$   barr@   ZbazABCr>   r   r   r(   rw   r   r   r   rX   1  s
    zTestGroupByNonCythonPaths.dfc                 C   s   | d}|S )Nr   r)   )rx   rX   rY   r   r   r   rY   9  s    
zTestGroupByNonCythonPaths.gbc                 C   s   |j ddd}|S )Nr   Fas_indexr   )rx   rX   gnir   r   r   r   >  s    zTestGroupByNonCythonPaths.gnic              
   C   s   t ddgdd}tdgg d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   r   r   countrz   stdr   25%50%75%r   r   rd   levelscodesr!   r"           r   )r   r   rt   ranger   r   r(   describer*   rT   rU   )rx   rX   rY   r   Zexpected_indexZexpected_colr6   r5   r   r   r   test_describeC  s"     z'TestGroupByNonCythonPaths.test_describeN)	rQ   r   r   r   r   rX   rY   r   r   r   r   r   r   r   -  s   


r   c                  C   sF  t ddtjgdtjdgg dgg d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}tjt|d" | d
jdd}W d    n1 s0    Y  | jdd}t|| d}tjt|d" | d
j	dd}W d    n1 s 0    Y  | j	dd}t|| d S )Nr$   r%   re   )r@      re   r   r>   r   r   r   r   Fr   z1DataFrameGroupBy.cumsum with axis=1 is deprecatedr&   rA   z2DataFrameGroupBy.cumprod with axis=1 is deprecated)
r   r   r(   r)   r   r*   rT   r+   r,   r   )rX   r6   r5   r4   r   r   r   test_cython_api2Z  s     *&02r   c                  C   s0  t jdd} t j| d d d< t| }t jdjddddt}t j|d d d< |	|
 }d}tjt|d" |	|t j}W d    n1 s0    Y  t|| tt jdd	}d}tjt|d" |	|t j
}W d    n1 s0    Y  |	|
 }t|| d S )
Nr%     r   2   size   zusing DataFrameGroupBy.medianr&   )r      )r   rM   rN   rP   r(   r   rO   ru   rm   r)   r{   r*   r+   r,   r-   Z	nanmedianrT   )arrrX   labelsr5   r4   exprW   Zxpr   r   r   test_cython_medianu  s     02r   c                 C   sp   t tjdddd}tddd}t|d |}|j|| d	 }|j|| d
dd	 }t|| d S )
Nr%   r   ,     7   r   )observedc                 S   s   |   S rI   )r{   rD   r   r   r   rG     rH   z(test_median_empty_bins.<locals>.<lambda>)r   r   rM   rN   rO   r   rv   Zcutr)   r{   r-   r*   rT   )r   rX   ZgrpsZbinsr5   r6   r   r   r   test_median_empty_bins  s    r   r   )Zint8int16int32r   float32r   uint64zmethod,datar   rX   r$   abr%   r@   r   r   r   r   r   r   )rX   out_typec           	      C   s   t ddddddddddddg}|j| |d< d|vrHg |d< d|v rZ|d }n| }|d	 }t |}|j||d< |jd
dd |d
}t|||d  }t|| d S )Nr$   r   r%   r@   r   r   argsr   rX   r   T)rK   )r   r   ru   rV   r)   rC   r*   rT   )	r   ry   datarX   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|vrg |d< |d	}t|||d  }|jd j|d ksjJ qjd S )
Nr$   r   r   r6   )r6   r   r%   )r   r   r   r   nthr   r   r   )r   itemsr)   rC   ilocr   )r   rX   Zgrp_expry   r   r3   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   s(  t g dg dg dg d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 )N)r   r   r   r   )r$   r%   r@   r   )gGz@g=
ףp=@gRQ @g?)Z2019Z2018Z2016Z2017)r   r   r   r   r   z
US/PacificZ	c_date_tzr   Zc_timedeltaWZc_periodr   r   Z	c_Integerr   r   Z
c_Floatingr   r   r   r   r   r   r>   )r   rv   to_datetimedtZtz_localizer   Z	to_periodru   rC   r)   r   rL   r*   rT   )funcvaluesr   rX   r5   r6   r   r   r   $test_idxmin_idxmax_returns_int_types  s.    
r   c               	   C   s@  t tjddg dd} g d| d< | d}d}tjt|d |j	d	d
}W d    n1 sh0    Y  | j
d d d	d f j	d	d
}|jd	}t|| |d tddd| d< | d}d}tjt|dL tjt|d |j	d	d
 W d    n1 s0    Y  W d    n1 s20    Y  d S )Nr%   r=   r   r   r   r   Dr>   
r$   r%   r@   r$   r%   r@   r$   r%   r@   r   r   z1DataFrameGroupBy.idxmax with axis=1 is deprecatedr&   r$   rA   z
2016-01-01r=   rf   Ez>'>' not supported between instances of 'Timestamp' and 'float')r   r   rM   rN   rP   r)   r*   r+   r,   r   r   r   Zget_level_valuesr1   Z	droplevelr
   r   r   r   )rX   rY   warn_msgr   ZaltZindexerZgb2r4   r   r   r   test_idxmin_idxmax_axis1  s"    
*
r   )TFNc              	   C   s  |dv rt d |dv r4d}| jt jj|d ttj	d
dg dd	}d
|d< g d}||}t||}t||}ddi}	|d ur||	d< d}
d}d| d}|d ur||
v rd}|dv r>t jt|dN tjt|d ||i |	 W d    n1 s0    Y  W d    n1 s20    Y  n>t jt|d ||i |	 W d    n1 sr0    Y  nz||vrd}t jt|d ||i |	 W d    n1 s0    Y  n*|d u s|sl|dvrld}t jtdd| ddN tjt|d ||i |	 W d    n1 s@0    Y  W d    n1 s`0    Y  ntjt|d ||i |	}W d    n1 s0    Y  |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>   rE   r   r   rB   r$   r   )r   r   difffillna
pct_changerankshift)r   r   r   r  r  r  r   r   r   r   r  zDataFrameGroupBy.z with axis=1 is deprecated1got an unexpected keyword argument 'numeric_only')r   r   r&   z)got an unexpected keyword argument 'axis')r  r  )z"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   rM   rN   rP   r)   rC   r   r   r   r*   r+   r,   r   rL   Tru   rm   assert_equal)r   groupby_funcr   r4   rX   groupsrY   ry   r   kwargsZno_argsZhas_axisr   Zmsgsr5   Zdf_expectedr6   r   r   r   test_axis1_numeric_only!  sV    




P2
2P.
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 rI   r   rD   r   r   r   rG   w  rH   z&test_groupby_cumprod.<locals>.<lambda>d   c                 S   s   |   S rI   r  rD   r   r   r   rG   ~  rH   )	r   r)   r   r0   r   r*   r1   ru   rm   )rX   actualr6   r   r   r   test_groupby_cumprodr  s    r  c                  C   st   t dgd dd} | dd  }tg ddd}t|| | jdd	d
d dd }d|_t|| d S )Nr   r   順 r  r  r  )r  l    d(	 l     I5 l      Fx:^ r   Fr  c                 S   s   |   S rI   r  rD   r   r   r   rG     rH   z/test_groupby_cumprod_overflow.<locals>.<lambda>)r   r)   r   r   r*   r1   r0   r   )rX   r  r6   Znumpy_resultr   r   r   test_groupby_cumprod_overflow  s    r  c                  C   s\   t ddtjdgg dd} | djddd}t dtjtjgg d	d
}t|| d S )Nr$   r%   )r$   r%   r#   r   r   cr   TF)r   skipna)r$   r%   ra   r   r  )r   r   r(   r)   r   r*   rT   rX   r5   r6   r   r   r   1test_groupby_cumprod_nan_influences_other_columns  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,targoprz   r{   r   varr/   r   c                 C   s
   | j d S )Nr   r   rD   r   r   r   rG     rH   rG   c                 C   s
   | j d S )Nr&  rD   r   r   r   rG     rH   r#  )Zmarksc                 C   s   t tjdd}tjdjddddt}t|	||  }| dv rRd nt
}d|  }tj||d  |	||}W d    n1 s0    Y  t|| d S )	Nr%   r   r   r   r   )r   r   r   r#  zusing DataFrameGroupBy.r&   )r   r   rM   rN   rP   rO   ru   rm   rC   r)   r,   r*   r+   r-   rT   )opZtargoprX   r   r5   rZ   r4   r6   r   r   r   test_ops_general  s    
.r)  c                  C   s   d} t jtdd$ tjt| dgd}W d    n1 s<0    Y  |d}|dg  }|d   }t 	|| |d 
  rJ 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*   r+   UserWarningrv   Zread_csvr   r)   r   to_framerT   Zisnaany)rawrX   rY   rer   r   r   test_max_nan_bug  s    2
r2  c                  C   s   t g d} t td}| |}|d}t g dttdg dgd}t|| t g d} | |}t g d	ttdg d
gd}t|jddd| d S )N
r$   r@   r   r<   r%   re   r   r      r=   
aaaaabbbbbr@   )r<   r   r@   r=   re   r4  aaabbb)r@   r%   r$   re   r   rd   r   
r$   r$   r@   r%   r   r@   r@   r%   r$   r   )r@   r%   r$   r@   r@   r%   )r%   r@   r$   r4  r   r<   r   Zkeep)r   rt   r)   nlargestr   from_arraysr*   r1   r   r   rY   r0  r1  r   r   r   test_nlargest  s     


r<  c            	      C   s4  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
g dd	}g d}t||d}tj||ddd d S )Nr%   Z20180101r=   rf   onetwor   second)names   r   r$   r   r@   r   r   r4  r<   rd   re   )r   r   r?  )
g. 2?gooڿg?g?gSL	[?g;H?gjsտg1Au?gf+Qs?g;?FgMbP?)check_exactZrtol)r   rM   rN   r
   r   Zfrom_productr   rP   r)   r9  from_tuplesr*   r1   )	ZnprZdts	iterablesidxr2   r5   Zexp_idxZ
exp_valuesr6   r   r   r   test_nlargest_mi_grouper  s.    rF  c                  C   s   t g d} t td}| |}|d}t g dttdg dgd}t|| t g d} | |}t g d	ttdg d
gd}t|jddd| d S )Nr3  r5  r@   )r$   r%   r@   r   r   r4  r6  )r   r   r$   r4  r<   rd   r   r7  )r   r$   r$   r   r$   r%   )r   r$   r   re   rd   r<   r   r8  )r   rt   r)   	nsmallestr   r:  r*   r1   r;  r   r   r   test_nsmallest  s     


rH  zdata, groupsr   r$   r%   r@   r   r   r$   r$   ry   r9  rG  c                 C   s   |d u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   r9  r   r   r%   )nr   r   )r   arrayrt   reversedr   rC   r)   
isinstanceint_r   r:  r   r*   r1   )r   r  r   ry   serr5   Zexpidxr6   r   r   r   test_nlargest_and_smallest_noop)  s    
rS  r   r   r   c                 C   s   t g dg dd}|d}d}tjt|d" t|| ddd	 W d    n1 sZ0    Y  tjt|d  t|| dd
 W d    n1 s0    Y  d S )Nr$   r%   r$   r^   r   r   r   z+numpy operations are not valid with groupbyr&   r$   r%   r@   )r   )r   r)   r   r   r   rC   )r   rX   gr4   r   r   r   test_numpy_compat>  s    
0rW  c              
   C   sF  | d }| d }t g dg dd}g d}||}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	g d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	g d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 g dg dd}|dj }tg ddd }t|| d S )!Nr   r$   r$   r$   r$   r$   r%   r%   r%   r%   r@   r   r@   r%   r%   r@   r%   r$   rU  )r@   r@   r@   r%   r%   r%   r%   r$   r   r   Fr  c                 S   s   |   S rI   r   rD   r   r   r   rG   Y  rH   ztest_cummin.<locals>.<lambda>r%   r4  r   r%   r@   r4  r<   T)rB  c                 S   s   |   S rI   rZ  rD   r   r   r   rG   d  rH   rm   r   r%   r   r4  r   r@   c                 S   s   |   S rI   rZ  rD   r   r   r   rG   p  rH   2001r   r   rM  r   rT  )r$   r%   r%   r   )r   ru   r)   r   r*   rT   r   r0   r-  locr   r(   rv   r   r   r1   r   )r    r   r   base_dfZexpected_minsrX   r6   r5   r   r   r   test_cumminL  sF    
$r`  r   r   )UInt64r   r   rm   booleanc                 C   s   t g dtjgd d}|d ||d< |d}t dtjgd i|d}t||  }t|| t|d |   }t|| d S )NrX  rd   rU  r   r   rK  )	r   r   r(   ru   r)   rC   r*   rT   r-  )ry   r   r_  r3   r6   r5   r   r   r   test_cummin_max_all_nan_column  s    
rc  c              
   C   s  | d }| d }t g dg dd}g d}||}t d|i|}|d }t|| |jdd	d
jdd  }t|| ||j	ddgdf< ||j	g ddf< |d }t|| |jdd	d
jdd  }t|| |ddi}t
j|j	g d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 g dg dd}|dj }tg ddd}t|| d S )Nr   r%   rX  rY  rU  )r@   r   r   r   r%   r@   r@   r@   r   r   Fr  c                 S   s   |   S rI   r   rD   r   r   r   rG     rH   ztest_cummax.<locals>.<lambda>r4  r[  c                 S   s   |   S rI   rd  rD   r   r   r   rG     rH   rm   r\  r   r@   c                 S   s   |   S rI   rd  rD   r   r   r   rG     rH   r$   r]  r   r   rM  r   rT  )r%   r$   r$   )r%   r$   r%   r   )r   ru   r)   r   r*   rT   r   r0   r-  r^  r   r(   rv   r   r   r1   r   )r    r   r   r_  Zexpected_maxsrX   r6   r5   r   r   r   test_cummax  sB    
$re  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   )rv   NaT_value).0rL  r   r   r   
<listcomp>  rH   z:test_cummax_i8_at_implementation_bound.<locals>.<listcomp>r   r$   zM8[ns]r   r   r   r   )r   r   r   viewr)   r   r*   rT   )rR  rX   rY   r   r   r   r   r   &test_cummax_i8_at_implementation_bound  s    
rk  )rm   r   r   zgroups,expected_datar$   r$   r$   )r$   NNr^   r$   Nr%   )r$   r@   r@   c           	      C   sh   t dtg d|di}| }||d }t|| dd}t||dd}t|| t|| d S )Nr   rm  rK  Fr  )r   r   )r   r   copyr)   rC   r*   rT   r1   )	ry   r   r  Zexpected_datarX   origrY   r5   r6   r   r   r   test_cummin_max_skipna  s    rq  c                 C   sn   t tjddgg dd}|g dddg }t|| dd}t tjtjtjgg dd}t|| d S )	Nr"   )r"   r"   r"   r   rl  r   r   Frn  )r   r   r(   r)   rC   r*   rT   )ry   rX   rY   r5   r6   r   r   r   $test_cummin_max_skipna_multiple_cols  s
    rr  z	dtype,valra  r   )r   l         c                 C   sT   |t jg}tddg|d|d}|d}|| }td|i|d}t|| d S )Nr$   )grpr   rK  rs  r   )rv   NAr   r)   Z	transformr*   rT   )ry   r   valr   rX   r3   r5   r6   r   r   r   #test_nullable_int_not_cast_as_float  s    


rv  zin_vals, out_vals)r$   r%   r   r@   r%   r   r   r   ir$   r$   )TFFTg @r      )TFTF)FFFFc                 C   s|   g dg d| 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10Z11r   r   r   r   r   r   r  r  r  dr  r   r   abcdr   r   r   r   r   c                 S   s   | j S rI   )is_monotonic_increasingrD   r   r   r   rG   &  rH   z.test_is_monotonic_increasing.<locals>.<lambda>)
r   r)   r   r  r   rt   r   r*   r1   r0   Zin_valsZout_valsZsource_dictrX   r5   r   r6   r   r   r   test_is_monotonic_increasing  s    r  )r=   re   r<   r@   r   r   r%   r   r$   r$   r  )TTFTc                 C   sX   g dg d| d}t |}|djj}ttddd}t||dd}t|| d S )	Nrx  r  r   r   r  r   r   r  )	r   r)   r   Zis_monotonic_decreasingr   rt   r   r*   r1   r  r   r   r   test_is_monotonic_decreasing*  s    r  c                 C   s   | j dd}|  d S )Nr   level)r)   r   )Zmframer3   r   r   r   test_apply_describe_bugO  s    r  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 rI   yearrD   r   r   r   rG   V  rH   z/test_series_describe_multikey.<locals>.<lambda>c                 S   s   | j S rI   monthrD   r   r   r   rG   V  rH   rz   F)Zcheck_namesr   r   )r*   makeTimeSeriesr)   r   r1   rz   r   r   )tsr3   r5   r   r   r   test_series_describe_multikeyT  s    r  c                  C   sD   t  } | dd }|dd }| jdd}t || d S )Nc                 S   s   | j S rI   r  rD   r   r   r   rG   _  rH   z-test_series_describe_single.<locals>.<lambda>c                 S   s   |   S rI   )r   rD   r   r   r   rG   `  rH   T)Zfuture_stack)r*   r  r)   r0   r   stackr1   )r  r3   r5   r6   r   r   r   test_series_describe_single]  s
    r  key1key2c                 C   s   t g dg dg dd}|j|| dd }| }t g dg dg dtjtjd	gg d
g dg dg dg dd	}t|dkr|dd|d  | r||}t	|| d S )N)r=  r>  r>  threer>  )r$   r%   r   r   r4  )r  r  foo2r   r  )r=  r  r>  )r!   r!   r#   )r!   r_   r_   r"   )r!   r_   r"   )r!   r_   r#   )r!   r_   r`   )r!   r_   ra   )	r  r   rz   r   r   r   r   r   r   r%   r$   r  r  )
r   r)   r   r   r(   rR   insertrV   r*   rT   )r   r9   rX   rY   r5   r6   r   r   r   test_series_describe_as_indexe  s2    
r  c                 C   s@   | j d d dgf | d }|dd }|jjdks<J d S )Nr   r   c                 S   s   |   S rI   )rz   rD   r   r   r   rG     rH   z(test_series_index_name.<locals>.<lambda>)r^  r)   r-   r   r   )rX   r3   r5   r   r   r   test_series_index_name  s    r  c           
      C   s2  |  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|| d	}tjt|d
( | j ddddddd}	W d    n1 s0    Y  |	 }|  j}tddg|jgg dtt|jgd|_t|| d S )Nc                 S   s   | j S rI   r  rD   r   r   r   rG     rH   z.test_frame_describe_multikey.<locals>.<lambda>c                 S   s   | j S rI   r  rD   r   r   r   rG     rH   r   r   )r?   r   r$   rA   +DataFrame.groupby with axis=1 is deprecatedr&   r   rJ  )r)   r   r   r?   rR   r   r   r   r   appendrv   concatr*   rT   r+   r,   r  )
Ztsframer3   r5   Zdesc_groupscolrk   Z	group_colr6   r4   ZgroupedTr   r   r   test_frame_describe_multikey  s.    
6
r  c                  C   s   t g dd g dd g dd d} g dd | d< | jdd	id
}d}tjt|d | d  W d    n1 s~0    Y  tjt|d |d	  W d    n1 s0    Y  d S )N)r$   r%   r@   r   r   r@   )r=   rA     (   r   )r     i,  i  r   )rE   yz)r   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df2r4   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g dd}t	
|| d S )Nz2011-01-06 10:59:05r   ia  z2011-01-06 12:43:33ic  z2011-01-06 12:54:09i /hYl    rT i )PRICEVOLUMEr  r   r   r   )r	   r   r)   r  r   r  r   tolistr   r*   rT   )ZpricesZvolumesrX   r5   r   r6   r   r   r   $test_frame_describe_unstacked_format  s&    r  zZignore:indexing past lexsort depth may impact performance:pandas.errors.PerformanceWarningr   a1a2c                 C   s   t g dg dg dg ddg ddd}|dgkrB|jd	d
}t g dddgj}d d g|j_t|dkrt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   r  r  X   r  r  )r$   r%   r@   r   r   r4  )r=   rA  r  r  r   <   )r  r  r   r  )r  r  r   r   F)r?   ro  r  r  r>   )r   r   r#   r#   r   rz   r`   r"   r   r   r!   r!   r   r   r_   r!   r   r   r}   r~   r   r   r`   r"   r   r   g      @g      @r   r   ra   r#   r  r  r  r  r  r  r  r  r   r$   r%   r  r  )r   r   r@  r   r   )r   rL   Zfrom_recordsrV   r  r?   r@  rR   r   r   r   rU   r)   r   r*   rT   )r   r9   rX   r6   r5   r   r   r   0test_describe_with_duplicate_output_column_names  s6    	

"
r  c                     s   t g dg} g d| _| | d }|jg d}g d  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 )NrI  )r   r$   r%   r   r$   )percentiles)r   rz   r   r   r   r   c              	      s,   g | ]$}t d |tj|||ggdg dqS )r!   r$   r   r   )rh  ru  r>   r   r   ri    s   z3test_describe_duplicate_columns.<locals>.<listcomp>)r   r"   r#   rA   r   r%   r4  r@   r   )r   r?   r)   r   rv   r  r   rt   r   r   r@  r*   rT   )rX   rY   r5   framesr6   r   r>   r   test_describe_duplicate_columns  s    


,
r  c                  C   s8   t g dg dd} | dd  d dks4J d S )N)r   r   r   r   r   )ij  i  io  i`  l    @~ )userconnectionsr  r  r   l    ,fL )r   r)   rz   )rX   r   r   r   test_groupby_mean_no_overflow'  s    r  r   )	r$   r$   r$   r%   r%   r%   r@   r@   r@   )r$   r$   r%   r%   r@   r@   )r$   r%   r$   r%   r$   r%   function)rz   r{   r%  c                 C   s   |dkrdnd}t j|gd td}tg d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      ?r~   r@   rK  r^   r   r   r   r   r   r   r   )r   rN  rm   r   r   ru   r)   rC   r*   rT   r-   r   rC  r?   )r   r  outputr   rE  r6   r  r5   r   r   r   ,test_apply_to_nullable_integer_returns_float2  s    
r  	min_countr=   c                 C   s   d}d}t j}tj|||||||gdd}tg d|d}|dj| d}| d	krtd
tjg ddditg dddd}t	|| n:td
tjtj
gd dditg dddd}t	|| d S )NTFrb  rK  )r$   r$   r%   r%   r@   r@   r$   rU  r   r  r   r   )r@   r   r   r   r^   r   r   r@   )r   r(   rv   rN  r   r)   r/   r   r*   rT   rt  )r  r   r   naZdfgrX   r5   r6   r   r   r   !test_groupby_sum_mincount_booleanQ  s"    r  c                  C   s   t g dg dg dddd} | d}tg d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 )N)r   r$   r%   r  r   rK  r   r  r   r%   r  r@   )r   r   r   r   )r   r   )
r   r)   r   r/   r   rv   rt  r*   r1   rT   )rX   r3   rE  r5   r6   r   r   r   0test_groupby_sum_below_mincount_nullable_integerh  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   r   )r   r   )
r   rv   Zto_timedeltar   r)   rz   r   r   r*   r1   r!  r   r   r   test_mean_on_timedeltaw  s     r  c                  C   s   t g d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 )N)r$   r$   r%   r%   Z1dZ2dZ3dr   r@   )daysr   r   r$   r%   r   r   r  zm8[ns])r   r   r   )r   rv   r   rf  r)   r/   r   r*   rT   r1   r   r   )rX   Ztd3rY   r   r6   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)rz   T)r{   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u r<i nd|i}||}t|| }|r|du r||i |}	d|	jvsJ n| d	v s| d
v r|tju r||i |}	d|	jv sJ nT|rd|dusJ | drt	nt
}
ddddddtd|  dg}| dkrd}n| dkr$d}tj|
|d ||i | W d    n1 sX0    Y  n|s|tjurtjt
dd ||i | W d    n1 s0    Y  n\| dv sJ |tju sJ tjt
dd ||i | W d    n1 s0    Y  d S )Nr$   r%   r   r4  )r  r  a3r   r   Tr   r   )r.  r  r  r  r  r   r  r   r   znot allowed for this dtype+cannot be performed against 'object' dtypeszmust be a string or a.* numberr  r   r   r   r   z8'<' not supported between instances of 'type' and 'type'r   z8'>' not supported between instances of 'type' and 'type'r&   r  )r   r  )r   objectr   r   
no_defaultr)   rC   r?   r   r   r   r   r   r   r   r   )kernelhas_argr   r9   rX   r   r  rY   ry   r5   r   r4   r   r   r   test_numeric_only  sV    *$


	

00r  c                 C   sR  g d}t g d| d}||}|dkr<t||r8J d S t||}t g d}||}t||}	t||}
d}d}||v r| tu r|dkrd}nd	}tjt|d
 ||
  W d    n1 s0    Y  n8| tu r
||
 }|	|
 }||v r|	t}t
|| d}||vr\d}tjt|d
 ||
ddi W d    n1 sP0    Y  n| tu rdg d}tjt|d
 ||
ddi W d    n1 s0    Y  n| tkr&|dkr&d}t
jt|d
, ||
ddi}||
ddi}W d    n1 s0    Y  t
|| n(||
ddi}||
ddi}t
|| d S )Nr  r  rK  r   )r  r  r   r   r   r   r  )r   r   r   r  r  r  r/   r   r  r%  rz   r{   r   r   r   r   r  r  z!is not supported for object dtyper&   )r   r   r   rz   r{   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-numericz-Allowing bool dtype in SeriesGroupBy.quantileF)r   r)   hasattrrC   r   r  r   r   r   ru   r*   r1   r   boolr+   r,   )r   r  r   ZgrouperrR  rY   ry   Zexpected_serexpected_gbZexpected_methodr   Zfails_on_numeric_objectZ
obj_resultr4   r5   r6   Zhas_numeric_onlyr   r   r   "test_deprecate_numeric_only_series  sZ    





(


0
0.r  r  )g?g?g333333?r  )r  includeexcluderl   c                 C   s   t g dgg d| d}|d t|d< |d t|d< |jd d djf i |}|djf i |jdd	jd d }t	|| |jd d dj
jf i |}|dj
jf i |jdd	jd d }tg |_t	|| d S )
Nr^   r   )r?   r   r   r   r   r   T)rL   )r   ru   rl   rm   r   r)   r   rU   r*   rT   r   r   r   )r   r  rX   r5   r6   r   r   r   test_groupby_empty_datasetp  s     ("*
r  c                  C   s   t g dg dd} | d}d}tjt|d |j| dd}W d    n1 sV0    Y  tg d	d
d}ttj	gd |d}t
|| d S )Nr]   )r@   r<   r   r   r   z3DataFrameGroupBy.corrwith with axis=1 is deprecatedr&   r$   rA   ))r$   r   )r$   r$   )r$   r%   )r%   r%   )r%   r   )r%   r$   )r   N)r   r   r4  r   )r   r)   r*   r+   r,   r   r   r   r   r(   r1   )rX   rY   r4   r5   r   r6   r   r   r   test_corrwith_with_1_axis  s    
,r  c                 C   s`   t g g g dg d}|jg ddd}t|| }t| |}|| j}|j}t|| d S )Nr  Fr  )r   rV   r)   rC   r   r   r*   r   )r  rX   rY   ry   r   r5   r6   r   r   r   ,test_multiindex_group_all_columns_when_empty  s    


r  c                 C   s   |dkr"d}| j tjj|d tg dg dg dgtdd}t||}|jd	|d
}t	||| }|j
g ddd}t||}	|jd	|d
}
t	|
||	 }|dvr|jddid}t|| d S )Nr   z:GH#50845 - corrwith fails when there are duplicate columnsr   )r$   r@   r4  )r$   r   r<   )r%   r   rd   Zabbr>   r   r   r  r$   rA   )r   ZngroupZcumcountr  r   )r
  r  r   r   r  r   rt   r   r)   rC   Zset_axisr  r*   r  )r   r  r   r4   rX   r   rY   r5   Zexpected_dfZexpected_argsr  r6   r   r   r   test_duplicate_columns  s    "

r  r(  )
r/   r   r   r   r{   rz   r   r   r%  r#  rB   r  sortc           
         s   t dg} dkr|}d}n
|j}d}tjt|d  |jd |d}W d    n1 sZ0    Y  dkrt|d}|jdd fd	d
}	|r|	j d}	t	||	 nDt| }|jdd fdd
}	|r|	j d}	t	||	 d S )Nr   zAThe 'axis' keyword in DataFrame.groupby is deprecated and will ber  r&   )r  rB   r  r   rn  r  c                    s   t |  dS )N)rB   r  rC   hrB   r(  r  r   r   rG     rH   z3test_regression_allowlist_methods.<locals>.<lambda>rA   c                    s   t |  dS )NrA   r  r  )rB   r(  r   r   rG     rH   )
r   r  r*   r+   r,   r)   rC   r0   Z
sort_indexrT   )
r(  rB   r  r  Z	raw_frameframer4   r3   r5   r6   r   r  r   !test_regression_allowlist_methods  s*    
.r  )qr.   ior   r   numpyr   r   Zpandas._libsr   Zpandas.errorsr   Zpandasrv   r   r   r   r   r	   r
   Zpandas._testingZ_testingr*   Zpandas.tests.groupbyr   Zpandas.utilr   tdr   r   r   r   r   r    r7   r   r   r   r   r/   r[   r\   r   r   r   r   r   r   r   r   r  r  r  r"  r$  rz   r{   r   r%  r   r   r   Zskip_if_no_scipyr)  r2  r<  rF  rH  ZALL_INT_NUMPY_DTYPESrS  rW  r`  rc  re  rk  rq  rr  Zskip_if_32bitr   rv  infr(   r  r  r  r  r  r  r  r  r  r  filterwarningsr  r  r  rt  r  r  r  r  r  r  r  r  rl   rm   r  r  r  r  r  r  r  r   r   r   r   <module>   s   
& =-


 
P


-
64
$$
,$
	
7


$@
p