o
    ҷhk                     @   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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minfinfomax)requestr   np_typemin_valmax_val r    U/var/www/html/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resultresult2expectedr    r    r!   test_intercept_builtin_sum8   s   r:   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'   r=   r>   columnsr@   joliez:The behavior of DataFrame.sum with axis=None is deprecatedF)r)   check_stacklevelraise_on_extra_warnings)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    rK   )npfuncr    r!   rN   f       T)inplacedrop)check_dtyper   rH   )r   randomdefault_rngr   integersstandard_normalr+   __name__r1   r.   r,   r-   r2   lendrop_duplicatesshapeassert_frame_equalr/   reset_index	set_indexr3   rJ   )r<   r;   rsdfgbwarnr6   r7   ngroups
assert_msgr9   	expected2r    )rM   rQ   r!   test_builtins_applyI   s6   

(rh   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'   rG   )      @      @      @abccategory)r?      	   20130101rG   periods
US/Eastern)ru   tzz1 sr4   )ru   freq)	groupintfloatstringcategory_stringcategory_intdatetime
datetimetz	timedeltarA   )r   listr   astyper
   pdtimedelta_rangeselfrb   r    r    r!   rb   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rz   r{   r~   ry   g      @rr         @rn   z1.5s3s      ?rG   z2013-01-01 12:00:00z2013-01-03 00:00:00rv   rw   )r~   r{   r   rz   r   r   r&   r'   nameindexrB   Tnumeric_only)r   r+   r   r   	Timedeltar	   rJ   r,   r^   reindex_likerB   _check)r   rb   r   expected_columns_numericrc   r9   r7   expected_columnsr    r    r!   test_averages   s*   


zTestNumericOnly.test_averagesr   r   c                 C   $   t g d}|}| |||| d S )N)rz   r{   r|   r~   r   r   r   r   r   r   rb   r   r   r   r    r    r!   test_extrema   s
   zTestNumericOnly.test_extremafirstlastc                 C   r   )N)rz   r{   r|   r}   r~   r   r   r   r   r   r    r    r!   test_first_last   s
   zTestNumericOnly.test_first_lastr1   cumsumc                 C   s@   t g d}t g d}|dkrt g d}| |||| d S )Nr   )rz   r{   r|   r~   r   r   )rz   r{   r~   r   r   )r   rb   r   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)rz   r{   r~   r   r   r   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 )Nry   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(   )r1   r   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raisesrJ   r,   assert_index_equalrB   )	r   rb   r   r   r   rc   	exceptionr6   r7   r    r    r!   r      sP   

	
	"zTestNumericOnly._checkN)rZ   
__module____qualname__r   fixturerb   markparametrizer   r   r   r   r   r   r   r    r    r    r!   ri   q   s     

#




ri   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&   barrG   bazABCrA   r   r   r*   r   r    r    r!   rb   1  s
   zTestGroupByNonCythonPaths.dfc                 C   s   | d}|S )Nr   r+   )r   rb   rc   r    r    r!   rc   9  s   
zTestGroupByNonCythonPaths.gbc                 C   s   |j ddd}|S )Nr   Fas_indexr   )r   rb   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&   rG   r   r   r   countr   stdr   25%50%75%r   r   rq   levelscodesr#   r$           r   )r   r   r   ranger   r   r*   describer,   r^   r_   )r   rb   rc   r   expected_indexexpected_colr9   r7   r    r    r!   test_describeC  s"    z'TestGroupByNonCythonPaths.test_describeN)	rZ   r   r   r   r   rb   rc   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'   rr   )rG      rr   r   rA   r   r   r   r   Fr   z1DataFrameGroupBy.cumsum with axis=1 is deprecatedr(   rH   z2DataFrameGroupBy.cumprod with axis=1 is deprecated)
r   r   r*   r+   r   r,   r^   r-   r.   r   )rb   r9   r7   r6   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   rV   rW   rY   r*   r   rX   r   r{   r+   r   r,   r-   r.   r/   	nanmedianr^   )arrrb   labelsr7   r6   expra   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 rP   )r   rK   r    r    r!   rN     rR   z(test_median_empty_bins.<locals>.<lambda>)r   r   rV   rW   rX   r   r   cutr+   r   r/   r,   r^   )r   rb   grpsbinsr7   r9   r    r    r!   test_median_empty_bins  s   r   r   )int8int16int32r   float32r   uint64zmethod,datar   rb   r&   abr'   rG   r   r   r   r   r   r   )rb   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'   rG   r   r   argsr   rb   r   T)rS   )r   r   r   r`   r+   rJ   r,   r^   )	r   r   datarb   r   r   df_out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   r9   )r9   r   r'   )r   r   r   r   nthr   r   r   )r   itemsr+   rJ   ilocr   )r   rb   grp_expr   r   r5   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'   rG   r   )gGz@g=
ףp=@gRQ @g?)2019201820162017)r   r	  r
  r  r  z
US/Pacific	c_date_tzr   c_timedeltaWc_periodr	  r   	c_Integerr
  r   
c_Floatingr   r   r   r   r   r   rA   )r   r   to_datetimedttz_localizer  	to_periodr   rJ   r+   r   rT   r,   r^   )funcvaluesr   rb   r7   r9   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   DrA   
r&   r'   rG   r&   r'   rG   r&   r'   rG   r   r   z1DataFrameGroupBy.idxmax with axis=1 is deprecatedr(   r&   rH   z
2016-01-01r@   rt   Ez>'>' not supported between instances of 'Timestamp' and 'float')r   r   rV   rW   rY   r+   r,   r-   r.   r  r  r   get_level_valuesr3   	droplevelr
   r   r   r   )rb   rc   warn_msgr  altindexergb2r6   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   rA   rL   r#  r"  rI   r&   r   )r   r   difffillna
pct_changerankshift)r   r   r/  r1  r2  r3  r   r   r  r  r0  zDataFrameGroupBy.z with axis=1 is deprecated1got an unexpected keyword argument 'numeric_only')r   r   r(   z)got an unexpected keyword argument 'axis')r0  r3  )z"not supported between instances ofz2can't multiply sequence by non-int of type 'float'unsupported operand type(r   )r3  )r   skipnode
add_markerr   xfailr   r   rV   rW   rY   r+   rJ   r   r   r   r,   r-   r.   r   rT   Tr   r{   assert_equal)r   groupby_funcr   r6   rb   groupsrc   r   r   kwargsno_argshas_axisr&  msgsr7   df_expectedr9   r    r    r!   test_axis1_numeric_only!  sj   



$"" $
rE  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valuerG  rH  F
group_keysc                 S   r   rP   r   rK   r    r    r!   rN   w  rR   z&test_groupby_cumprod.<locals>.<lambda>d   c                 S   r   rP   rK  rK   r    r    r!   rN   ~  rR   )	r   r+   r   r2   r   r,   r3   r   r{   )rb   actualr9   r    r    r!   test_groupby_cumprodr  s   rN  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   順 rF  rG  rH  )rO  l    d(	 l     I5 l      Fx:^ r   FrI  c                 S   r   rP   rK  rK   r    r    r!   rN     rR   z/test_groupby_cumprod_overflow.<locals>.<lambda>)r   r+   r   r   r,   r3   r2   r   )rb   rM  r9   numpy_resultr    r    r!   test_groupby_cumprod_overflow  s   rQ  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'   rn   r   rS  )r   r   r*   r+   r   r,   r^   rb   r7   r9   r    r    r!   1test_groupby_cumprod_nan_influences_other_columns  s   
rW  c                  O   s   ddl m} || ddi|S )Nr   )semddofr&   )scipy.statsrX  )r   r@  rX  r    r    r!   	scipy_sem  s   r[  z	op,targopr   r   r   varr1   r   c                 C   
   | j d S )Nr   r  rK   r    r    r!   rN        
 rN   c                 C   r]  )Nr^  rK   r    r    r!   rN     r_  rX  )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   rX  zusing DataFrameGroupBy.r(   )r   r   rV   rW   rY   rX   r   r{   rJ   r+   r.   r,   r-   r/   r^   )optargoprb   r   r7   rd   r6   r9   r    r    r!   test_ops_general  s   
rd  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   )parse_datesDateFile)r,   r-   UserWarningr   read_csvr   r+   r   to_framer^   isnaany)rawrb   rc   rer    r    r!   test_max_nan_bug  s   
rp  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&   rG   r   r?   r'   rr   r   r      r@   
aaaaabbbbbrG   )r?   r   rG   r@   rr   rs  aaabbb)rG   r'   r&   rr   r   rq   r  
r&   r&   rG   r'   r   rG   rG   r'   r&   r   )rG   r'   r&   rG   rG   r'   )r'   rG   r&   rs  r   r?   r   keep)r   r   r+   nlargestr   from_arraysr,   r3   r   r   rc   rn  ro  r    r    r!   test_nlargest      


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'   20180101r@   rt   onetwor   second)names   r  r&   r   rG   r   r   rs  r?   rq   rr   )r   r   r  )
g. 2?gooڿg?g?gSL	[?g;H?gjsտg1Au?gf+Qs?g;?FgMbP?)check_exactrtol)r   rV   rW   r
   r   from_productr   rY   r+   ry  from_tuplesr,   r3   )	nprdts	iterablesidxr4   r7   exp_idx
exp_valuesr9   r    r    r!   test_nlargest_mi_grouper  s.   r  c                  C   rq  )Nrr  rt  rG   )r&   r'   rG   r   r   rs  ru  )r   r   r&   rs  r?   rq   r  rv  )r   r&   r&   r   r&   r'   )r   r&   r   rr   rq   r?   r   rw  )r   r   r+   	nsmallestr   rz  r,   r3   r{  r    r    r!   test_nsmallest  r}  r  zdata, groupsr   r&   r'   rG   r   r   r&   r&   r   ry  r  c                 C   s   |d urt j| |d} |dkrtt| } t| dd}t|||dd}t|tr2t j|tdn|}t| t	
||jgdd}t|| d S )Nr   ry  r   r   r'   )nr   r   )r   arrayr   reversedr   rJ   r+   
isinstancerz   r   rz  r   r,   r3   )r   r?  r   r   serr7   expidxr9   r    r    r!   test_nlargest_and_smallest_noop)  s   
r  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&   rk   r   r   r   z+numpy operations are not valid with groupbyr(   r&   r'   rG   )r   )r   r+   r   r   r   rJ   )r  rb   gr6   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'   rG   r   rG   r'   r'   rG   r'   r&   r  )rG   rG   rG   r'   r'   r'   r'   r&   r   r   FrI  c                 S   r   rP   r   rK   r    r    r!   rN   Y  rR   ztest_cummin.<locals>.<lambda>r'   rs  r   r'   rG   rs  r?   T)r  c                 S   r   rP   r  rK   r    r    r!   rN   d  rR   r{   r   r'   r   rs  r   rG   c                 S   r   rP   r  rK   r    r    r!   rN   p  rR   2001r   r   r  r   r  )r&   r'   r'   r   )r   r   r+   r   r,   r^   r   r2   rj  locr   r*   r   r  r   r3   r   )r"   r   r   base_dfexpected_minsrb   r9   r7   r    r    r!   test_cumminL  sF   
$r  r   r   )UInt64r   r   r{   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  rq   r  r   r   r  )	r   r   r*   r   r+   rJ   r,   r^   rj  )r   r   r  r5   r9   r7   r    r    r!   test_cummin_max_all_nan_column  s   
r  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  )rG   r   r   r   r'   rG   rG   rG   r   r   FrI  c                 S   r   rP   r   rK   r    r    r!   rN     rR   ztest_cummax.<locals>.<lambda>rs  r  c                 S   r   rP   r  rK   r    r    r!   rN     rR   r{   r  r   rG   c                 S   r   rP   r  rK   r    r    r!   rN     rR   r&   r  r   r   r  r   r  )r'   r&   r&   )r'   r&   r'   r   )r   r   r+   r   r,   r^   r   r2   rj  r  r   r*   r   r  r   r3   r   )r"   r   r   r  expected_maxsrb   r9   r7   r    r    r!   test_cummax  sB   
$r  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    )r   NaT_value).0r  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,   r^   )r  rb   rc   r  r   r    r    r!   &test_cummax_i8_at_implementation_bound  s   
r  )r{   r   r   zgroups,expected_datar&   r&   r&   )r&   NNrk   r&   Nr'   )r&   rG   rG   c           	      C   sh   t dtg d|di}| }||d }t|| dd}t||dd}t|| t|| d S )Nr   r  r  FrT  )r   r   )r   r   copyr+   rJ   r,   r^   r3   )	r   r   r?  expected_datarb   origrc   r7   r9   r    r    r!   test_cummin_max_skipna  s   r  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   r  r   r   Fr  )r   r   r*   r+   rJ   r,   r^   )r   rb   rc   r7   r9   r    r    r!   $test_cummin_max_skipna_multiple_cols  s
   r  z	dtype,valr  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   r  r  r   )r   NAr   r+   	transformr,   r^   )r   r   valr   rb   r5   r7   r9   r    r    r!   #test_nullable_int_not_cast_as_float  s   


r  zin_vals, out_vals)r&   r'   r   rG   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1011r   r   r   r   r   r   rS  rS  rS  dr  r   r   abcdr   r   r   r   r   c                 S      | j S rP   )is_monotonic_increasingrK   r    r    r!   rN   &      z.test_is_monotonic_increasing.<locals>.<lambda>)
r   r+   r   r  r   r   r   r,   r3   r2   in_valsout_valssource_dictrb   r7   r   r9   r    r    r!   test_is_monotonic_increasing  s   r  )r@   rr   r?   rG   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   is_monotonic_decreasingr   r   r   r,   r3   r  r    r    r!   test_is_monotonic_decreasing*  s   r  c                 C   s   | j dd}|  d S )Nr   level)r+   r   )mframer5   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  rP   yearrK   r    r    r!   rN   V  r  z/test_series_describe_multikey.<locals>.<lambda>c                 S   r  rP   monthrK   r    r    r!   rN   V  r  r   F)check_namesr   r   )r,   makeTimeSeriesr+   r   r3   r   r   r   )tsr5   r7   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  rP   r  rK   r    r    r!   rN   _  r  z-test_series_describe_single.<locals>.<lambda>c                 S   r   rP   )r   rK   r    r    r!   rN   `  rR   T)future_stack)r,   r  r+   r2   r   stackr3   )r  r5   r7   r9   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)r  r  r  threer  )r&   r'   r   r   rs  )r  r  foo2r   r  )r  r  r  )r#   r#   r%   )r#   rl   rl   r$   )r#   rl   r$   )r#   rl   r%   )r#   rl   rm   )r#   rl   rn   )	r  r   r   r   r   r   r   r   r   r'   r&   r  r  )
r   r+   r   r   r*   r[   insertr`   r,   r^   )r   r<   rb   rc   r7   r9   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   rP   )r   rK   r    r    r!   rN     rR   z(test_series_index_name.<locals>.<lambda>)r  r+   r/   r   r   )rb   r5   r7   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  rP   r  rK   r    r    r!   rN     r  z.test_frame_describe_multikey.<locals>.<lambda>c                 S   r  rP   r  rK   r    r    r!   rN     r  r   r   )rB   r   r&   rH   +DataFrame.groupby with axis=1 is deprecatedr(   r   r  )r+   r   r   rB   r[   r   r   r  r   appendr   concatr,   r^   r-   r.   r<  )
tsframer5   r7   desc_groupscolry   	group_colr9   r6   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'   rG   r   r   rG   )r@   r     (   r   )rL     i,  i  r   )rL   yz)r   r   r&   )r   r&   r   r&   r   r   r   krG  rA   z*Names should be list-like for a MultiIndexr(   )r   renamer   r   
ValueErrorr+   r   )df1df2r6   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,   r^   )pricesvolumesrb   r7   r   r9   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'   rG   r   r   rs  )r@   r  r  r  r   <   )r  r  r   rS  )r  r  r   r   F)rB   r  r  r  rA   )r   r   r%   r%   r   r   rm   r$   r   r   r#   r#   r   r   rl   r#   r   r   r   r   r   r   rm   r$   r   r   g      @g      @r   r   rn   r%   r  r  r  r  r  r  r  r  r   r&   r'   r  r  )r   r   r  r   r   )r   rT   from_recordsr`   r<  rB   r  r[   r   r   r   r_   r+   r   r,   r^   )r   r<   rb   r9   r7   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 )Nr  )r   r&   r'   r   r&   )percentiles)r   r   r   r   r   r   c              	      s,   g | ]}t d |tj|||ggdg dqS )r#   r&   r   r   )r  r  rA   r    r!   r    s    z3test_describe_duplicate_columns.<locals>.<listcomp>)r   r$   r%   rH   r   r'   rs  rG   r   )r   rB   r+   r   r   r  r   r   r   r   r  r,   r^   )rb   rc   r7   framesr9   r    rA   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+   r   )rb   r    r    r!   test_groupby_mean_no_overflow'  s   "r%  r  )	r&   r&   r&   r'   r'   r'   rG   rG   rG   )r&   r&   r'   r'   rG   rG   )r&   r'   r&   r'   r&   r'   function)r   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   rG   r  rk   r   r   r   r   r   r  r   )r   r  r{   r   r   r   r+   rJ   r,   r^   r/   r   r  rB   )r  r&  outputr   r  r9   r?  r7   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 )NTFr  r  )r&   r&   r'   r'   rG   rG   r&   r  r   r*  r   r   )rG   r   r   r   rk   r   r  rG   )r   r*   r   r  r   r+   r1   r   r,   r^   r  )r*  r   r   nadfgrb   r7   r9   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'   rR  r   r  r   r'  r   r'   r+  rG   )r   r   r   rU  )r   r   )
r   r+   r   r1   r   r   r  r,   r3   r^   )rb   r5   r  r7   r9   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catr1  r0  r   r   )r   r   )
r   r   to_timedeltar   r+   r   r   r   r,   r3   rV  r    r    r!   test_mean_on_timedeltaw  s    r3  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'   1d2d3dr   rG   )daysr   r   r&   r'   r   r  r+  zm8[ns])r   r   r   )r   r   r   r  r+   r1   r   r,   r^   r3   r   r   )rb   td3rc   r  r9   r    r    r!   #test_groupby_sum_timedelta_with_nat  s   
 r9  zkernel, has_arg))allF)rl  F)bfillF)corrT)r+  T)covT)r   T)r   T)r   T)r   T)r/  F)ffillF)r0  F)r   T)r  T)r  T)r   T)r   T)r   T)r   T)r   T)r  F)nuniqueF)r1  F)r   T)quantileT)rX  T)r,  T)r   T)r1   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   rs  )r  r  a3r   r   Tr   r   )rl  r:  r;  r>  r0  r  r?  r   r   znot allowed for this dtype+cannot be performed against 'object' dtypeszmust be a string or a.* numberr5  r   r   r   r  z8'<' not supported between instances of 'type' and 'type'r  z8'>' not supported between instances of 'type' and 'type'r(   r4  )r/  r1  )r   objectr   r   
no_defaultr+   rJ   rB   r   r   r   r   r   r   r   r   )kernelhas_argr   r<   rb   r   r@  rc   r   r7   r   r6   r    r    r!   test_numeric_only  sV   $*



"""rG  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  r  r+  )r<  r=  r   r   r   r   r@  )r   r   r  r;  r>  r3  r1   r/  r1  r\  r   r   r   r   r   r,  r@  rB  z!is not supported for object dtyper(   )r   r   r   r   r   r   r   r@  rX  r,  r   r1   r\  r   r   r   r   r4  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+   hasattrrJ   r   rC  r   r   r   r   r,   r3   r   boolr-   r.   )r   r>  r   grouperr  rc   r   expected_serexpected_gbexpected_methodr   fails_on_numeric_object
obj_resultr6   r7   r9   has_numeric_onlyr    r    r!   "test_deprecate_numeric_only_series  sd   







""rQ  r@  )g?g?g333333?r:  )r   includeexcluderz   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 )Nrk   r   )rB   r   r   r   r   r   T)rT   r    )r   r   rz   r{   r  r+   r   r_   r,   r^   r   r   r   )r   r@  rb   r7   r9   r    r    r!   test_groupby_empty_datasetp  s    ("*
rT  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 )Nrj   )rG   r?   r   r   r   z3DataFrameGroupBy.corrwith with axis=1 is deprecatedr(   r&   rH   ))r&   r   )r&   r&   )r&   r'   )r'   r'   )r'   r   )r'   r&   )r   N)r   r   rs  r  )r   r+   r,   r-   r.   r+  r   r   r   r*   r3   )rb   rc   r6   r7   r   r9   r    r    r!   test_corrwith_with_1_axis  s   
rU  c                 C   s`   t g g g dg d}|jg ddd}t|| }t| |}|| j}|j}t|| d S )NrR  FrI  )r   r`   r+   rJ   r   r   r,   r   )r>  rb   rc   r   r   r7   r9   r    r    r!   ,test_multiindex_group_all_columns_when_empty  s   


rV  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&   rG   rs  )r&   r   r?   )r'   r   rq   abbrA   r   r   rR  r&   rH   )r   ngroupcumcountrS  r   )r9  r:  r   r   r;  r   r   r   r+   rJ   set_axisr  r,   r=  )r   r>  r   r6   rb   r   rc   r7   expected_dfexpected_argsrL  r9   r    r    r!   test_duplicate_columns  s   "

r]  rb  )
r1   r   r   r   r   r   r,  r   r\  rX  rI   rT  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  rI   r^  r,  r  r  c                    s   t |  dS )N)rI   rT  rJ   hrI   rb  rT  r    r!   rN     rO   z3test_regression_allowlist_methods.<locals>.<lambda>rH   c                    s   t |  dS )NrH   r_  r`  )rI   rb  r    r!   rN     s    )
r   r<  r,   r-   r.   r+   rJ   r2   
sort_indexr^   )
rb  rI   rT  r^  	raw_frameframer6   r5   r7   r9   r    rb  r!   !test_regression_allowlist_methods  s,   
rf  )qr0   ior   r   numpyr   r   pandas._libsr   pandas.errorsr   pandasr   r   r   r   r   r	   r
   pandas._testing_testingr,   pandas.tests.groupbyr   pandas.utilr   tdr   r   r   r   r   r"   r:   r   r   r   r   r1   rh   ri   r   r   r   r   r  r  r  r*  rE  rN  rQ  rW  r[  r   r   r   r\  r   r   r   skip_if_no_scipyrd  rp  r|  r  r  ALL_INT_NUMPY_DTYPESr  r  r  r  r  r  r  r  skip_if_32bitr   r  infr*   r  r  r  r  r  r  r  r  r
  r  filterwarningsr  r"  r%  r  r)  r.  r/  r3  r9  rD  rG  rI  rz   r{   rC  rQ  rT  rU  rV  r]  rf  r    r    r    r!   <module>   s    
& =-


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