o
    Tio                     @   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   )paramsZidsc                 C   s   | j }|}|dkrtj}n|dkrtj}t|jdkr"t|jnt|j}t|jdkr6t|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   b/var/www/html/evchargy.com/venv/lib/python3.10/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 s*w   Y  d}tjt|d |
tj	}W d    n1 sIw   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   r6   fkeysjimjoec                    s  t jd}t|dddddgd}|d|d	< || }|j |tur(d nt	}d
}t
j||ddd ||}W d    n1 sEw   Y  t|j| d}d|j d| d}	|j|dfksgJ |	 fdd|}
t
||
 t
d  |fdd}W d    n1 sw   Y  t
|| |tkr|  }
|
j| ddd t
j||
dd t
t| ddt| dd d S )Nr$   r#      )
   r$   r9   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   rC   )npfuncr   r   rF   f       T)inplacedrop)Zcheck_dtyper   r@   )r   randomdefault_rngr   integersstandard_normalr(   __name__r.   r+   r)   r*   r/   lenZdrop_duplicatesshapeassert_frame_equalr,   reset_index	set_indexr0   rB   )r8   r7   rsdfgbwarnr3   r4   ZngroupsZ
assert_msgr5   Z	expected2r   )rE   rI   r   test_builtins_applyI   s6   

(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 sr1   )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	   rB   r)   rT   Zreindex_liker>   _check)rx   rX   ry   expected_columns_numericrY   r5   r4   expected_columnsr   r   r   test_averages   s*   


zTestNumericOnly.test_averagesr   r   c                 C   $   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   r   )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   r   )Nr|   r   r   r   r   r   test_prod_cumprod   s   z!TestNumericOnly.test_prod_cumprodcummincummaxc                 C   r   )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 rDddd| dtd| d	d
g}tj||d t	||  W d    n1 s>w   Y  n=|dv rtddtd| d	g}tj||d t	||  W d    n1 snw   Y  nt	|| }t
|j| |dvrdddd
d| dtd| d	g}tj||d t	||dd W d    d S 1 sw   Y  d S 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raisesrB   r)   assert_index_equalr>   )	rx   rX   ry   r   r   rY   	exceptionr3   r4   r   r   r   r      sP   

	
	"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_colr5   r4   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   sD  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 saw   Y  | jdd}t|| d}tjt|d | d
j	dd}W d    n1 sw   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%   r@   z2DataFrameGroupBy.cumprod with axis=1 is deprecated)
r   r   r'   r(   r   r)   rT   r*   r+   r   )rX   r5   r4   r3   r   r   r   test_cython_api2Z  s$   *&r   c                  C   s.  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 sPw   Y  t|| tt jdd	}d}tjt|d |	|t j
}W d    n1 sw   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   labelsr4   r3   exprW   Zxpr   r   r   test_cython_medianu  s$   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 rH   )r{   rC   r   r   r   rF     rJ   z(test_median_empty_bins.<locals>.<lambda>)r   r   rM   rN   rO   r   rv   cutr(   r{   r,   r)   rT   )r   rX   ZgrpsZbinsr4   r5   r   r   r   test_median_empty_bins  s   r   r   )Zint8Z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r$g |d< d|v r-|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(   rB   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 ]&\}}d|vrAg |d< |d	}t|||d  }|jd j|d ks[J q5d S )
Nr#   r   r   r5   )r5   r   r$   )r   r   r   r   nthr   r   r   )r   itemsr(   rB   ilocr   )r   rX   Zgrp_expry   r   r2   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}|rn|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   rB   r(   r   rL   r)   rT   )funcvaluesr   rX   r4   r5   r   r   r   $test_idxmin_idxmax_returns_int_types  s.   
r   c               	   C   sN  t tjddg dd} g d| d< | d}d}tjt|d |j	d	d
}W d    n1 s4w   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. tjt|d |j	d	d
 W d    n1 sw   Y  W d    d S W d    d S 1 sw   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#   r@   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_valuesr0   Z	droplevelr
   r   r   r   )rX   rY   warn_msgr   ZaltZindexerZgb2r3   r   r   r   test_idxmin_idxmax_axis1  s,   

"r   )TFNc              	   C   s
  |dv r	t d |dv rd}| jt jj|d ttj	d
dg dd	}d
|d< g d}||}t||}t||}ddi}	|d urL||	d< d}
d}d| d}|d ur||
v rd}|dv rt jt|d& tjt|d ||i |	 W d    n1 sw   Y  W d    n
1 sw   Y  d S d S t jt|d ||i |	 W d    d S 1 sw   Y  d S ||vrd}t jt|d ||i |	 W d    d S 1 sw   Y  d S |d u s|s<|dvr<d}t jtdd| dd0 tjt|d ||i |	 W d    n1 sw   Y  W d    d S W d    d S 1 s5w   Y  d S tjt|d ||i |	}W d    n	1 sVw   Y  |re|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=   rD   r   r   rA   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(   rB   r   r   r   r)   r*   r+   r   rL   Tru   rm   assert_equal)r   groupby_funcr   r3   rX   groupsrY   ry   r   kwargsZno_argsZhas_axisr   Zmsgsr4   Zdf_expectedr5   r   r   r   test_axis1_numeric_only!  sj   



$"" $
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   r   rH   r   rC   r   r   r   rF   w  rJ   z&test_groupby_cumprod.<locals>.<lambda>d   c                 S   r   rH   r  rC   r   r   r   rF   ~  rJ   )	r   r(   r   r/   r   r)   r0   ru   rm   )rX   actualr5   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   r   rH   r  rC   r   r   r   rF     rJ   z/test_groupby_cumprod_overflow.<locals>.<lambda>)r   r(   r   r   r)   r0   r/   r   )rX   r  r5   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   r4   r5   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   
   | j d S )Nr   r   rC   r   r   r   rF        
 rF   c                 C   r(  )Nr)  rC   r   r   r   rF     r*  r%  )Zmarksc                 C   s   t tjdd}tjdjddddt}t|	||  }| dv r)d nt
}d|  }tj||d |	||}W d    n1 sJw   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   rB   r(   r+   r)   r*   r,   rT   )opZtargoprX   r   r4   rZ   r3   r5   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w   Y  |d}|dg  }|d   }t 	|| |d 
  rGJ 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   
r6  c                  C      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   r9  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#   r9  r   r;   r   Zkeep)r   rt   r(   nlargestr   from_arraysr)   r0   r   r   rY   r4  r5  r   r   r   test_nlargest      


rA  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   r9  r;   rd   re   )r   r   rE  )
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(   r>  from_tuplesr)   r0   )	Znprdts	iterablesidxr1   r4   Zexp_idxZ
exp_valuesr5   r   r   r   test_nlargest_mi_grouper  s.   rM  c                  C   r7  )Nr8  r:  r?   )r#   r$   r?   r   r   r9  r;  )r   r   r#   r9  r;   rd   r   r<  )r   r#   r#   r   r#   r$   )r   r#   r   re   rd   r;   r   r=  )r   rt   r(   	nsmallestr   r?  r)   r0   r@  r   r   r   test_nsmallest  rB  rO  zdata, groupsr   r#   r$   r?   r   r   r#   r#   ry   r>  rN  c                 C   s   |d urt j| |d} |dkrtt| } t| dd}t|||dd}t|tr3t j|t jdn|}t| t	
||jgdd}t|| d S )Nr   r>  r   r   r$   )nr   r   )r   arrayrt   reversedr   rB   r(   
isinstanceint_r   r?  r   r)   r0   )r   r  r   ry   serr4   Zexpidxr5   r   r   r   test_nlargest_and_smallest_noop)  s   
rZ  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 s-w   Y  tjt|d t|| dd
 W d    d S 1 sMw   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   rB   )r   rX   gr3   r   r   r   test_numpy_compat>  s   
"r^  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#   r\  )r?   r?   r?   r$   r$   r$   r$   r#   r   r   Fr  c                 S   r   rH   r   rC   r   r   r   rF   Y  rJ   ztest_cummin.<locals>.<lambda>r$   r9  r   r$   r?   r9  r;   T)rH  c                 S   r   rH   ra  rC   r   r   r   rF   d  rJ   rm   r   r$   r   r9  r   r?   c                 S   r   rH   ra  rC   r   r   r   rF   p  rJ   2001r   r   rT  r   r[  )r#   r$   r$   r   )r   ru   r(   r   r)   rT   r   r/   r1  locr   r'   rv   r   r   r0   r   )r   r   r   base_dfZexpected_minsrX   r5   r4   r   r   r   test_cumminL  sF   
$rg  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 )Nr_  rd   r\  r   r   rR  )	r   r   r'   ru   r(   rB   r)   rT   r1  )ry   r   rf  r2   r5   r4   r   r   r   test_cummin_max_all_nan_column  s   
rj  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$   r_  r`  r\  )r?   r   r   r   r$   r?   r?   r?   r   r   Fr  c                 S   r   rH   r   rC   r   r   r   rF     rJ   ztest_cummax.<locals>.<lambda>r9  rb  c                 S   r   rH   rk  rC   r   r   r   rF     rJ   rm   rc  r   r?   c                 S   r   rH   rk  rC   r   r   r   rF     rJ   r#   rd  r   r   rT  r   r[  )r$   r#   r#   )r$   r#   r$   r   )r   ru   r(   r   r)   rT   r   r/   r1  re  r   r'   rv   r   r   r0   r   )r   r   r   rf  Zexpected_maxsrX   r5   r4   r   r   r   test_cummax  sB   
$rl  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).0rS  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   viewr(   r   r)   rT   )rY  rX   rY   r   r   r   r   r   &test_cummax_i8_at_implementation_bound  s   
rr  )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   rt  rR  Fr!  )r   r   )r   r   copyr(   rB   r)   rT   r0   )	ry   r   r  Zexpected_datarX   origrY   r4   r5   r   r   r   test_cummin_max_skipna  s   rx  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   rs  r   r   Fru  )r   r   r'   r(   rB   r)   rT   )ry   rX   rY   r4   r5   r   r   r   $test_cummin_max_skipna_multiple_cols  s
   ry  z	dtype,valrh  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   rR  rz  r   )rv   NAr   r(   	transformr)   rT   )ry   r   valr   rX   r2   r4   r5   r   r   r   #test_nullable_int_not_cast_as_float  s   


r~  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      | j S rH   )is_monotonic_increasingrC   r   r   r   rF   &      z.test_is_monotonic_increasing.<locals>.<lambda>)
r   r(   r   r  r   rt   r   r)   r0   r/   Zin_valsZout_valsZsource_dictrX   r4   r   r5   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 )	Nr  r  r   r   r  r   r   r  )	r   r(   r   Zis_monotonic_decreasingr   rt   r   r)   r0   r  r   r   r   test_is_monotonic_decreasing*  s   r  c                 C   s   | j dd}|  d S )Nr   level)r(   r   )Zmframer2   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   r  rH   yearrC   r   r   r   rF   V  r  z/test_series_describe_multikey.<locals>.<lambda>c                 S   r  rH   monthrC   r   r   r   rF   V  r  rz   F)Zcheck_namesr   r   )r)   makeTimeSeriesr(   r   r0   rz   r   r   )tsr2   r4   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   r  rH   r  rC   r   r   r   rF   _  r  z-test_series_describe_single.<locals>.<lambda>c                 S   r   rH   )r   rC   r   r   r   rF   `  rJ   T)Zfuture_stack)r)   r  r(   r/   r   stackr0   )r  r2   r4   r5   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rM|dd|d  | rT||}t	|| d S )N)rC  rD  rD  threerD  )r#   r$   r   r   r9  )r  r  foo2r   r  )rC  r  rD  )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   r8   rX   rY   r4   r5   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   r   rH   )rz   rC   r   r   r   rF     rJ   z(test_series_index_name.<locals>.<lambda>)re  r(   r,   r   r   )rX   r2   r4   r   r   r   test_series_index_name  s   r  c           
      C   s2  |  dd dd g}| }g }| D ]-}||  }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 snw   Y  |	 }|  j}tddg|jgg dtt|jgd|_t|| d S )Nc                 S   r  rH   r  rC   r   r   r   rF     r  z.test_frame_describe_multikey.<locals>.<lambda>c                 S   r  rH   r  rC   r   r   r   rF     r  r   r   )r>   r   r#   r@   +DataFrame.groupby with axis=1 is deprecatedr%   r   rQ  )r(   r   r   r>   rR   r   r   r   r   appendrv   concatr)   rT   r*   r+   r  )
Ztsframer2   r4   Zdesc_groupscolrk   Z	group_colr5   r3   ZgroupedTr   r   r   test_frame_describe_multikey  s0   

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?w   Y  tjt|d |d	  W d    d S 1 s^w   Y  d S )N)r#   r$   r?   r   r   r?   )r<   rG     (   r   )r     i,  i  r   )rD   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df2r3   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   r4   r   r5   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r!|jd	d
}t g dddgj}d d g|j_t|dkrQt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   r9  )r<   rG  r  r  r   <   )r  r  r   r   )r  r  r   r   F)r>   rv  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   rF  r   r   )r   rL   Zfrom_recordsrV   r  r>   rF  rR   r   r   r   rU   r(   r   r)   rT   )r   r8   rX   r5   r4   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 )NrP  )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   )ro  r}  r=   r   r   rp    s    z3test_describe_duplicate_columns.<locals>.<listcomp>)r   r!   r"   r@   r   r$   r9  r?   r   )r   r>   r(   r   rv   r  r   rt   r   r   rF  r)   rT   )rX   rY   r4   framesr5   r   r=   r   test_describe_duplicate_columns  s   


,
r  c                  C   s8   t g dg dd} | dd  d dksJ 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?   rR  r^   r   r   r   r   r   r   r   )r   rU  rm   r   r   ru   r(   rB   r)   rT   r,   r   rI  r>   )r   r  outputr   rL  r5   r  r4   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rHtd
tjg ddditg dddd}t	|| d S td
tjtj
gd dditg dddd}t	|| d S )NTFri  rR  )r#   r#   r$   r$   r?   r?   r#   r\  r   r  r   r   )r?   r   r   r   r^   r   r   r?   )r   r'   rv   rU  r   r(   r.   r   r)   rT   r{  )r  r   r   naZdfgrX   r4   r5   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   rR  r   r  r   r$   r  r?   )r   r   r   r"  )r   r   )
r   r(   r   r.   r   rv   r{  r)   r0   rT   )rX   r2   rL  r4   r5   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)   r0   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   rm  r(   r.   r   r)   rT   r0   r   r   )rX   Ztd3rY   r   r5   r   r   r   #test_groupby_sum_timedelta_with_nat  s   
 r  zkernel, has_arg))allF)r2  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|| }|rB|du rB||i |}	d|	jvs@J d S | d	v sO| d
v r_|tju r_||i |}	d|	jv s]J d S |r|dusgJ | drnt	nt
}
ddddddtd|  dg}| dkrd}n| dkrd}tj|
|d ||i | W d    d S 1 sw   Y  d S |s|tjurtjt
dd ||i | W d    d S 1 sw   Y  d S | dv sJ |tju sJ tjt
dd ||i | W d    d S 1 sw   Y  d S )Nr#   r$   r   r9  )r  r  a3r   r   Tr   r   )r2  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(   rB   r>   r   r   r   r   r   r   r   r   )ZkernelZhas_argr   r8   rX   r   r  rY   ry   r4   r   r3   r   r   r   test_numeric_only  sV   $*



"""r  c                 C   sR  g d}t g d| d}||}|dkrt||rJ d S t||}t g d}||}t||}	t||}
d}d}||v ri| tu ri|dkrKd}nd	}tjt|d
 ||
  W d    n1 scw   Y  n| tu r||
 }|	|
 }||v r~|	t}t
|| d}||vrd}tjt|d
 ||
ddi W d    d S 1 sw   Y  d S | tu rdg d}tjt|d
 ||
ddi W d    d S 1 sw   Y  d S | tkr|dkrd}t
jt|d
 ||
ddi}||
ddi}W d    n	1 sw   Y  t
|| d S ||
ddi}||
ddi}t
|| d S )Nr  r  rR  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(   hasattrrB   r   r  r   r   r   ru   r)   r0   r   boolr*   r+   )r   r  r   ZgrouperrY  rY   ry   Zexpected_serexpected_gbZexpected_methodr   Zfails_on_numeric_objectZ
obj_resultr3   r4   r5   Zhas_numeric_onlyr   r   r   "test_deprecate_numeric_only_series  sd   







""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d
i |}|djd
i |jdd	jd d }t	|| |jd d dj
jd
i |}|dj
jd
i |jdd	jd d }tg |_t	|| d S )Nr^   r   )r>   r   r   r   r   r   T)rL   r   )r   ru   rl   rm   r   r(   r   rU   r)   rT   r   r   r   )r   r  rX   r4   r5   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 s+w   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#   r@   ))r#   r   )r#   r#   )r#   r$   )r$   r$   )r$   r   )r$   r#   )r   N)r   r   r9  r   )r   r(   r)   r*   r+   r   r   r   r   r'   r0   )rX   rY   r3   r4   r   r5   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(   rB   r   r   r)   r   )r  rX   rY   ry   r   r4   r5   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?   r9  )r#   r   r;   )r$   r   rd   Zabbr=   r   r   r  r#   r@   )r   ZngroupZcumcountr   r   )r  r  r   r   r  r   rt   r   r(   rB   Zset_axisr  r)   r  )r   r  r   r3   rX   r   rY   r4   Zexpected_dfZexpected_argsr  r5   r   r   r   test_duplicate_columns  s   "

r  r,  )
r.   r   r   r   r{   rz   r   r   r'  r%  rA   r!  sortc           
         s  t dg} dkr|}d}n|j}d}tjt|d |jd |d}W d    n1 s-w   Y  dkr]t|d}|jdd fd	d
}	|rU|	j d}	t	||	 d S t| }|jdd fdd
}	|ry|	j d}	t	||	 d S )Nr   zAThe 'axis' keyword in DataFrame.groupby is deprecated and will ber  r%   )r  rA   r  r   ru  r  c                    s   t |  dS )N)rA   r!  rB   hrA   r,  r!  r   r   rF     rG   z3test_regression_allowlist_methods.<locals>.<lambda>r@   c                    s   t |  dS )Nr@   r  r  )rA   r,  r   r   rF     s    )
r   r  r)   r*   r+   r(   rB   r/   Z
sort_indexrT   )
r,  rA   r!  r  Z	raw_frameframer3   r2   r4   r5   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   r6   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-  r6  rA  rM  rO  ZALL_INT_NUMPY_DTYPESrZ  r^  rg  rj  rl  rr  rx  ry  Zskip_if_32bitr   r~  infr'   r  r  r  r  r  r  r  r  r  r  filterwarningsr  r  r  r{  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