o
    i                     @   s|  d dl Z d dlmZ d dlZd dlZd dlmZ d dlm	Z	 d dl
Zd dl
mZmZmZmZmZmZ d dlmZ d dlm  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%gd.fd/d%d'd&d'd'd&gd0d1fgd2d3 Z/ej$%d4ed5ed6fd7gd8d9 Z0ej$%d:d;d 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ej$1dAdBdC Z2dDdE Z3ej$%d>g dFdGdH Z4dIdJ Z5dKdL Z6dMdN Z7ej$%dOdPej8fdQej9fdRej:fdSej;fdTej(fdUej<fd+ej'fd,ej&fd#dVdW fd)dXdW fd/ej=fej>dYe7ej?dZgd[d\ Z@d]d^ ZAd_d` ZBdadb ZCdcdd ZDej$%deg dfg dgfd gd gfgej$%dhdidjgdkdl ZEej$%dmdndogdpdq ZFdrds ZGej$%dhdtdugej$%d g dvdwdx ZHdydz ZId{d| ZJej$%dhdtdug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 ZKej$%dhdtdugdd ZLejMej$%dhdtdugej$%ddeNdj&fdgdd ZOej$%dg dg dfd%dejPd(d'ejPejP ddd%ejP gg dfd%d'ejQd(d'ejQejQdejP d%ejQgg dfgdd ZRej$%dg dg dfejPd%ejP ejPd'dejP ddejP ejP gg dfd%d'ejQd(d'ejQejQdejP d%ejQgg dfgdd ZSdd ZTdd ZUdd ZVdd ZWdd ZXdd ZYdd ZZej$1dej$%dd?d@g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^dd Z_dd Z`dd Zaej$%dg dej$%d>d?d@ejbgej$%ddgddggddĄ Zcej$%d edeeefeggddƄ Zhej$%d eeefeggej$%dg dȢdddʜg dȢddgdʜg dȢdgddʜgdd̈́ Ziddτ Zjej$1dСdd҄ Zkd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    ]/var/www/edux/Edux_v2/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}|tj}|tj}| }t	|| t	|| d S )N      ?       @      @)r         r'   )
r   r   nangroupbyaggbuiltinssumapplytmassert_series_equal)sgroupedresultresult2expectedr    r    r!   test_intercept_builtin_sum8   s   r5   fkeysjimjoec                    s  t tjdddddgd}tjd|d< || }|j}||}t|j	| d	}d
|j
 d| d}|j
|dfks@J |tt| |ttfv rNt}nd }d}	tj||	dd | }
W d    n1 sjw   Y  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|| t||  d S )Nr&   2   )  r'   r8   r9   columnsr;   jolie)subsetzinvalid frame shape: z (expected (z, 3))   z*scalar (max|min) over the entire DataFrameF)matchcheck_stacklevelc                    s    | ddS )Nr   axisr    xnpfuncr    r!   <lambda>`   s    z%test_builtins_apply.<locals>.<lambda>T)inplacedrop)check_dtype)r   r   randomrandintrandnr)   __name__r-   lendrop_duplicatesshapegetattrr   r   FutureWarningr.   assert_produces_warningassert_frame_equalr,   r*   reset_index	set_indexr/   )r7   r6   dfgbfnamer2   ngroups
assert_msgwarnmsgr4   	expected2r    rG   r!   test_builtins_applyC   s4   


 rb   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)      	   20130101r@   periods
US/Eastern)rp   tzz1 sr0   )rp   freq)	groupintfloatstringcategory_stringcategory_intdatetime
datetimetz	timedeltar<   )r   listr   astyper
   pdtimedelta_rangeselfrZ   r    r    r!   rZ   n   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jtdd t	||dd}W d    n1 sYw   Y  t
||| |j}| |||| d S )Nru   rv   ry   rt   g      @rm         @rh   z1.5s3s      ?r@   z2013-01-01 12:00:00z2013-01-03 00:00:00rq   rr   )ry   rv   r|   ru   rz   r{   r&   r'   nameru   rv   ry   rz   r{   r|   indexr=   zDropping invalidrA   Fnumeric_only)r   r)   r   r   	Timedeltar	   r.   rV   rU   rT   rW   reindex_liker=   _check)r   rZ   r   expected_columns_numericr[   r4   r2   expected_columnsr    r    r!   test_averages   s.   


zTestNumericOnly.test_averagesr   r   c                 C   $   t g d}|}| |||| d S )N)ru   rv   rw   ry   rz   r{   r|   r   r   r   rZ   r   r   r   r    r    r!   test_extrema   s
   zTestNumericOnly.test_extremafirstlastc                 C   r   )N)ru   rv   rw   rx   ry   rz   r{   r|   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   )ru   rv   rw   ry   r|   r   )ru   rv   ry   r|   r   )r   rZ   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   )Nr   r   r   r    r    r!   test_cummin_cummax   s
   z"TestNumericOnly.test_cummin_cummaxc                 C   s   | d}d }|dv rt}n|dv rt}tj|ddd t|| }W d    n1 s-w   Y  t|j| d }t|t|jjk rGt}tj|dd t||dd}W d    n1 saw   Y  t|j| d S )	Nrt   )r   r   )r   r   zDropping invalid columnsF)rA   raise_on_extra_warningsr   r   )	r)   rU   r.   rV   rT   assert_index_equalr=   rQ   _obj_with_exclusions)r   rZ   r   r   r   r[   r_   r2   r    r    r!   r      s&   
zTestNumericOnly._checkN)rP   
__module____qualname__pytestfixturerZ   markparametrizer   r   r   r   r   r   r   r    r    r    r!   rc   k   s     

'




rc   c                   @   sV   e Zd Zejdd Zejdd Zejdd Zdd Zd	d
 Z	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@   bazABCr<   )r   r   r(   r   r    r    r!   rZ     s
   zTestGroupByNonCythonPaths.dfc                 C   s   | d}|S )Nr   r)   )r   rZ   r[   r    r    r!   r[   %  s   
zTestGroupByNonCythonPaths.gbc                 C   s   |j ddd}|S )Nr   Fas_indexr   )r   rZ   gnir    r    r!   r   *  s   zTestGroupByNonCythonPaths.gnic                 C   p   t dgtjggdgddgd}d|j_d}tjt|d | }W d    n1 s+w   Y  t	|| d S )	N        r   r&   r@   r=   r   r   z<The default value of numeric_only in DataFrameGroupBy.idxmaxr   )
r   r   r(   r   r   r.   rV   rU   idxmaxrW   r   r[   r4   r`   r2   r    r    r!   test_idxmax0     
z%TestGroupByNonCythonPaths.test_idxmaxc                 C   r   )	Nr   r   r&   r@   r   r   z<The default value of numeric_only in DataFrameGroupBy.idxminr   )
r   r   r(   r   r   r.   rV   rU   idxminrW   r   r    r    r!   test_idxmin;  r   z%TestGroupByNonCythonPaths.test_idxminc                 C   s   t dgtjggdgddgd}d|j_tjtdd | }W d    n1 s)w   Y  t	|| t dd	gdtjggddgddgd}tjtdd | }W d    n1 s\w   Y  t	|| d S )
Nr   r   r&   r@   r   r   zThe 'mad' method is deprecatedr   r   )
r   r   r(   r   r   r.   rV   rU   madrW   )r   r[   r   r4   r2   r    r    r!   test_madF  s   
$
z"TestGroupByNonCythonPaths.test_madc              
   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
||jdk    j||jdk    jg}t ddg|_| }t	|| d S )Nr&   r@   r   r   r   countr   stdr   25%50%75%r   r   rl   levelscodesr#   r$   r   r   )r   r   r}   ranger   r   r(   describer.   rW   r   concatr   unstackto_frameTr   )r   rZ   r[   r   expected_indexexpected_colr4   r2   r    r    r!   test_describeW  s,    z'TestGroupByNonCythonPaths.test_describeN)rP   r   r   r   r   rZ   r[   r   r   r   r   r   r    r    r    r!   r     s    


r   c                  C   s   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
jdd}| jdd}t|| | d
jdd}| jdd}t|| d S )Nr&   r'   rm   )r@      rm   r   r<   r   r   r   r   Fr   rC   )r   r   r(   r)   r   r.   rW   r   )rZ   r4   r2   r    r    r!   test_cython_api2t  s   *&r   c                  C   s   t tjd} tj| jd d d< tjjddddt}tj|d d d< | 	|
 }| 	|tj}t|| t tjdd} | 	|tj
}| 	|
 }t|| d S )Nr;   r'   r   r:   size      )r   r   rM   rO   r(   valuesrN   r~   rv   r)   r   r*   nanops	nanmedianr.   rW   )rZ   labelsr2   exprsxpr    r    r!   test_cython_median  s   r   c                 C   sj   t tjddd}tddd}t|d |}|j|| d }|j|| d	dd }t
|| d S )	Nr   ,     7   r   )observedc                 S      |   S N)r   rE   r    r    r!   rI         z(test_median_empty_bins.<locals>.<lambda>)r   r   rM   rN   r   r   cutr)   r   r*   r.   rW   )r   rZ   grpsbinsr2   r4   r    r    r!   test_median_empty_bins  s   r   r   )int8int16int32r   float32r   uint64zmethod,datar   rZ   r&   abr'   r@   r   r   r   r   nth)rZ   argsr   r   )rZ   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   r   r   rZ   r   T)rJ   )r   r   r~   rY   r)   rT   r.   rW   )	r   r   datarZ   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   r4   )r4   r   r'   )r   r   r   r   r   r   r   r   )r   itemsr)   rT   ilocr   )r   rZ   grp_expr   r   r1   resr    r    r!   2test_groupby_non_arithmetic_agg_int_like_precision  s    



	
r  zfunc, valuesr   )c_intc_floatc_dater   r   TFz(ignore:.*Select only valid:FutureWarningc                 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?)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   r<   )r   r   to_datetimedttz_localizer  	to_periodr~   rT   r)   r   rK   r.   rW   )funcr   r   rZ   r2   r4   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}|jdd}| jd d dd f jdd}|jd}t	
|| |d td	dd
| d< | d}d}tjt|d |jdd W d    d S 1 sfw   Y  d S )N
   r   r   r   r   Dr<   
r&   r'   r@   r&   r'   r@   r&   r'   r@   r   r   r&   rC   z
2016-01-01ro   Ez7reduction operation 'argmax' not allowed for this dtyper   )r   r   rM   rO   r)   r   r  r   get_level_valuesr.   r/   	droplevelr
   r   raises	TypeError)rZ   r[   r  altindexergb2r`   r    r    r!   test_idxmin_idxmax_axis1  s   

"r(  )TFNc              	   C   st  |dv r	t d |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rS||	d< d}
d}|d ur||
v rd}t jt|d ||i |	 W d    d S 1 s{w   Y  d S ||vrd}|dkr|stnd }tj|dd/ t jt|d ||i |	 W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S |d u s|s	|dvr	d}t jtdd| dd ||i |	 W d    d S 1 sw   Y  d S ||i |	}|r|jddjn|j}t||| j}|dkr2|s2|t}t|| d S )Nr   r   z5idxmax and idx_min tested in test_idxmin_idxmax_axis1)r   tshiftzmad and tshift are deprecated)corrwithskewzDGH#47723 groupby.corrwith and skew do not correctly implement axis=1reasonr  r   r  r<   rF   r   r  rD   r&   r   )r   r   difffillna
pct_changerankshift)r   r   r/  r1  r2  r3  r   r   r   r   r0  1got an unexpected keyword argument 'numeric_only'r   z)got an unexpected keyword argument 'axis'r,  zDropping of nuisance columns)r0  r3  )z"not supported between instances ofz2can't multiply sequence by non-int of type 'float'unsupported operand type(|)r3  )r   skipnode
add_markerr   xfailr   r   rM   rO   r)   rT   r   r#  r$  rU   r.   rV   joinrK   r   r~   rv   assert_equal)r   groupby_funcr   r`   rZ   groupsr[   r   r   kwargsno_argshas_axisr_   msgsr2   df_expectedr4   r    r    r!   test_axis1_numeric_only/  sX   




""$
rF  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d  }| d t| d< | jdddd dd
 }d|_t|| d S )Nr   r  r'   )keyvaluerG  rH  F
group_keysc                 S   r   r   r   rE   r    r    r!   rI     r   z&test_groupby_cumprod.<locals>.<lambda>d   c                 S   r   r   rK  rE   r    r    r!   rI     r   )	r   r)   r   r-   r   r.   r/   r~   rv   )rZ   actualr4   r    r    r!   test_groupby_cumprodz  s   rN  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'   rh   r   rP  )r   r   r(   r)   r   r.   rW   rZ   r2   r4   r    r    r!   1test_groupby_cumprod_nan_influences_other_columns  s   
rT  c                  O   s   ddl m} || ddi|S )Nr   )semddofr&   )scipy.statsrU  )r   rA  rU  r    r    r!   	scipy_sem  s   rX  z	op,targopr   r   r   varr,   r   c                 C   
   | j d S )Nr   r  rE   r    r    r!   rI        
 rI   c                 C   rZ  )Nr[  rE   r    r    r!   rI     r\  rU  )marksc                 C   sZ   t tjd}tjjddddt}t|||  }||	|}t
|| d S )Nr;   r   r:   r   )r   r   rM   rO   rN   r~   rv   rT   r)   r*   r.   rW   )optargoprZ   r   r2   r4   r    r    r!   test_ops_general  s
   ra  c                  C   sd   d} t jt| dgd}|d}|dg  }|d   }t|| |d  	 r0J 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,xlsxr   )parse_datesDateFile)
r   read_csvr   r)   r   r   r.   rW   isnaany)rawrZ   r[   rer    r    r!   test_max_nan_bug  s   
rk  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   rk   r'   rm   r   r      r  
aaaaabbbbbr@   )rk   r   r@   r  rm   rn  aaabbb)r@   r'   r&   rm   r   rl   r  
r&   r&   r@   r'   r   r@   r@   r'   r&   r   )r@   r'   r&   r@   r@   r'   )r'   r@   r&   rn  r   rk   r   keep)r   r}   r)   nlargestr   from_arraysr.   r/   r   r   r[   ri  rj  r    r    r!   test_nlargest      


rw  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 )Ni[20180101r  ro   onetwor   second)names   r  r&   r   r'   r@   r   r   rn  rk   rl   rm   )r   r   r|  )
g-r@g-`w?g@f|?gp?g=J-?g],l;?g]f$?gM8r g4Y?g
F;FgMbP?)check_exactrtol)r   rM   RandomStater
   r   from_productr   rO   r)   rt  from_tuplesr.   r/   )	nprdts	iterablesidxr0   r2   exp_idx
exp_valuesr4   r    r    r!   test_nlargest_mi_grouper  s.   r  c                  C   rl  )Nrm  ro  r@   )r&   r'   r@   r   r   rn  rp  )r   r   r&   rn  rk   rl   r  rq  )r   r&   r&   r   r&   r'   )r   r&   r   rm   rl   rk   r   rr  )r   r}   r)   	nsmallestr   ru  r.   r/   rv  r    r    r!   test_nsmallest
  rx  r  zdata, groups)r   r&   r'   r@   r   r   r&   r&   r   rt  r  c                 C   s`   |dkr
t t| } t| dd}t|||dd}t| t||jgdd}t	|| d S )Nrt  r   r   r'   )nr   r   )
r}   reversedr   rT   r)   r   ru  r   r.   r/   )r   r@  r   serr2   r4   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&   re   r   r   r   z+numpy operations are not valid with groupbyr   r&   r'   r@   )r   )r   r)   r   r#  r   rT   )r  rZ   gr`   r    r    r!   test_numpy_compat/  s   
"r  c              
   C   s8  | 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 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   FrI  c                 S   r   r   r   rE   r    r    r!   rI   J  r   ztest_cummin.<locals>.<lambda>r'   rn  r   r'   r@   rn  rk   T)r  c                 S   r   r   r  rE   r    r    r!   rI   U  r   r   r'   r   rn  r   r@   c                 S   r   r   r  rE   r    r    r!   rI   _  r   2001r   r   r  r   r  )r&   r'   r'   r   )r   r~   r)   r   r.   rW   r   r-   r   locr   r(   r   r  r   r/   r   )r"   r   r   base_dfexpected_minsrZ   r4   r2   r    r    r!   test_cummin=  sD   
$r  r   r   )UInt64r   r   rv   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  rl   r  r   r   r   )	r   r   r(   r~   r)   rT   r.   rW   r   )r   r   r  r1   r4   r2   r    r    r!   test_cummin_max_all_nan_columnq  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|| 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   FrI  c                 S   r   r   r   rE   r    r    r!   rI     r   ztest_cummax.<locals>.<lambda>rn  r  c                 S   r   r   r  rE   r    r    r!   rI     r   r  r   r@   c                 S   r   r   r  rE   r    r    r!   rI     r   r&   r  r   r   r  r   r  )r'   r&   r&   )r'   r&   r'   r   )r   r~   r)   r   r.   rW   r   r-   r   r  r   r(   r   r  r   r/   r   )r"   r   r   r  expected_maxsrZ   r4   r2   r    r    r!   test_cummax  s@   
$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   NaTrH  ).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.   rW   )r  rZ   r[   r  r   r    r    r!   &test_cummax_i8_at_implementation_bound  s   
r  )rv   r   r   zgroups,expected_datar&   r&   r&   )r&   NNre   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   r  r  FrQ  )r   r   )r   r   copyr)   rT   r.   rW   r/   )	r   r   r@  expected_datarZ   origr[   r2   r4   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)   rT   r.   rW   )r   rZ   r[   r2   r4   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.   rW   )r   r   valr   rZ   r1   r2   r4   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1011r   r   r   r   r   r   rP  rP  rP  dr  r   r   abcdr   r   r   r   r   c                 S      | j S r   )is_monotonic_increasingrE   r    r    r!   rI         z.test_is_monotonic_increasing.<locals>.<lambda>)
r   r)   r   r  r   r}   r   r.   r/   r-   in_valsout_valssource_dictrZ   r2   r   r4   r    r    r!   test_is_monotonic_increasing  s   r  )r  rm   rk   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   is_monotonic_decreasingr   r}   r   r.   r/   r  r    r    r!   test_is_monotonic_decreasing  s   r  c                 C   s   | j dd}|  d S )Nr   )level)r)   r   )mframer1   r    r    r!   test_apply_describe_bug<  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  r   yearrE   r    r    r!   rI   C  r  z/test_series_describe_multikey.<locals>.<lambda>c                 S   r  r   monthrE   r    r    r!   rI   C  r  r   F)check_namesr   r   )r.   makeTimeSeriesr)   r   r/   r   r   r   )tsr1   r2   r    r    r!   test_series_describe_multikeyA  s   r  c                  C   s@   t  } | dd }|dd }|  }t || d S )Nc                 S   r  r   r  rE   r    r    r!   rI   L  r  z-test_series_describe_single.<locals>.<lambda>c                 S   r   r   )r   rE   r    r    r!   rI   M  r   )r.   r  r)   r-   r   stackr/   )r  r1   r2   r4   r    r    r!   test_series_describe_singleJ  s
   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   r   )r   rE   r    r    r!   rI   T  r   z(test_series_index_name.<locals>.<lambda>)r  r)   r*   r   r   )rZ   r1   r2   r    r    r!   test_series_index_nameR  s   r  c           	      C   s   |  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|| | j ddddd	dd}| }|  j}tddg|jgg d
tt|jgd|_t|| d S )Nc                 S   r  r   r  rE   r    r    r!   rI   Y  r  z.test_frame_describe_multikey.<locals>.<lambda>c                 S   r  r   r  rE   r    r    r!   rI   Y  r  r   r   r   r&   rC   r  r  )r)   r   r   r=   rQ   r   r   r   r   appendr   r   r.   rW   r   )	tsframer1   r2   desc_groupscolrt   	group_colr4   groupedTr    r    r!   test_frame_describe_multikeyX  s*   

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  r~     (   r:   )rL     i,  i  r   )rF   yz)r   r   r&   )r   r&   r   r&   r   r   r   krG  r<   z*Names should be list-like for a MultiIndexr   )r   renamer   r#  
ValueErrorr)   r   )df1df2r`   r    r    r!   test_frame_describe_tupleindexs  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.   rW   )pricesvolumesrZ   r2   r   r4   r    r    r!   $test_frame_describe_unstacked_format  s&   r  zZignore:indexing past lexsort depth may impact performance:pandas.errors.PerformanceWarningr   c                 C   s   t g dg dg ddg ddd}t g dd	d
gj}d d g|j_tddgdd|_| r:|jdgd	d}n|j	dd}|j
d| d }t|| d S )N)c   r  r  X   r  r  )r&   r'   r@   r   r   rn  )r  r~  r  r  r:   <   rO  )r   r   r   F)r=   r  ))r   r   r%   r%   )r   r         V@     X@)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%   r   r   rg   r$   r   r   r#   r#   r   r   rf   r#   r   r   r   r   r   r   rg   r$   r   r   g      @g      @r   r   rh   r%   r  r  r  r  r  r  r	  r
  r   r&   r  r  r   r   )r=   r  TrK   r   )r   from_recordsrY   r   r=   r}  r   r   rK   rX   r)   r   r.   rW   )r   rZ   r4   r2   r    r    r!   0test_describe_with_duplicate_output_column_names  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   )rZ   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)r   r   rY  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 )NrY  g      ?r   r@   r  re   r   r   r   r   r   r  r   )r   arrayrv   r   r   r~   r)   rT   r.   rW   r*   r   r  r=   )r   r  outputarrr  r4   r@  r2   r    r    r!   ,test_apply_to_nullable_integer_returns_float  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'   rO  r   r  r   r  r   r'   	min_countr@   )r   r   r   rR  )r   r   )
r   r)   r   r,   r   r   r  r.   r/   rW   )rZ   r1   r  r2   r4   r    r    r!   0test_groupby_sum_below_mincount_nullable_integer	  s    
$r  c                  C   sf   t ttdddgd d} | dd  }ttddgdtddgdd	d
}t	|| d S )Nr  r   r   r   )timecatr  r  r   r   )r   r   )
r   r   to_timedeltar   r)   r   r   r   r.   r/   rS  r    r    r!   test_mean_on_timedelta  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'   1d2d3dr   r@   )daysr   r   r&   r'   r   r  r  zm8[ns])r   r   r   )r   r   r   r  r)   r,   r   r.   rW   r/   r   r   )rZ   td3r[   r  r4   r    r    r!   #test_groupby_sum_timedelta_with_nat"  s   
 r#  z5kernel, numeric_only_default, drops_nuisance, has_arg))allFFF)rg  FFF)bfillFFF)corrTFT)r+  TFT)covTFT)r   FTT)r   FTT)r   TTT)r   TTT)r/  FFF)ffillFFF)r0  FFF)r   FFT)r   TFT)r   TFT)r   FFT)r   FTT)r   TTT)r   TTT)r   FTT)r   FFF)nuniqueFFF)r1  FFF)r   TTT)quantileTFT)rU  TTT)r,  TFT)r   TTT)r,   TTT)rY  TFTa1a2c                 C   sf  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 s;|tju r9|s;|r|du sC|sF|sFd }nt}|tju rU|rUd|  }nd	|  }tj	||d
 |
|i |}W d    n1 ssw   Y  d|j
vsJ d S | dv s| dv r|tju r|
|i |}d|j
v sJ d S |r|dusJ |tjus|du sJ |rJ d}tjt|d
 |
|i | W d    d S 1 sw   Y  d S |s|tjurtjtdd
 |
|i | W d    d S 1 sw   Y  d S | dv s	J |tju sJ tjtdd
 |
|i | W d    d S 1 s,w   Y  d S )Nr&   r'   r   rn  )r+  r,  a3r   r   Tz6The default value of numeric_only in DataFrameGroupBy.z-Dropping invalid columns in DataFrameGroupBy.r   r   )r   r   )rg  r$  r%  r(  r0  r   r)  Fz(not allowed for this dtype|must be a string or a number|cannot be performed against 'object' dtypes|must be a string or a real number|unsupported operand type)r4  )r/  r1  r5  )r   objectr   r   
no_defaultr)   rT   rU   r.   rV   r=   r   r#  r$  )kernelnumeric_only_defaultdrops_nuisancehas_argr   r7   rZ   r   rA  r[   r   r_   r`   r2   r    r    r!   test_deprecate_numeric_only:  sZ   $,




""$r4  c              	   C   s  |dv r
t d n|dkrd}|jt jj|d g d}tg d| d}||}t||}tg d}||}	t|	|}
t	||}d	}d
}||v r~| t
u r~|dv rYd}n	|dkr`d}nd}t jt|d ||  W d    n1 sxw   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 r.t}| d}|drd }d}t}| d}n|dkrt}d}nt}d}tj||d0 t j||d ||ddi W d    n1 sw   Y  W d    d S W d    d S 1 s'w   Y  d S ||ddi}||ddi}t|| d S )N)backfillr   padr*  zmethod is deprecatedr+  z,corrwith is not implemented on SeriesGroupByr-  r  r  r  )	r&  r'  r   r   r   r   r   r   r*  )	r   r   r   r%  r(  r3  r,   r/  r1  r)  znot allowed for this dtyper*  z+cannot be performed against 'object' dtypesz!is not supported for object dtyper   )r   r   r   r   r   r   r   r*  rU  r,  r   r,   rY  r   r   r   r   r4  r   Tz  does not implement numeric_onlycum z" is not supported for object dtyper,  z$will raise a TypeError in the futurezThis will raise a TypeErrorF)r   r9  r:  r;  r   r<  r   r)   rT   r   r.  r#  r$  r~   r.   r/   NotImplementedError
startswithrU   rV   )r   r?  r   r`   grouperr  r[   r   expected_serexpected_gbexpected_methodr   fails_on_numeric_object
obj_resultr2   r4   has_numeric_onlyerr_categoryerr_msgwarn_categorywarn_msgr    r    r!   "test_deprecate_numeric_only_series  sx   






"


 $rF  rA  )g?g?g333333?r$  )percentilesincludeexcluderu   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 )Nre   r   )r=   r   r   r   r   r   Tr  r    )r   r~   ru   rv   r  r)   r   rX   r.   rW   r   r   r   )r   rA  rZ   r2   r4   r    r    r!   test_groupby_empty_dataset  s    ("*
rJ  c                  C   s^   t g dg dd} | dj| dd}tg ddd	}ttjgd
 |d}t|| d S )Nrd   )r@   rk   r   r   r   r&   rC   ))r&   r   )r&   r&   )r&   r'   )r'   r'   )r'   r   )r'   r&   )r   N)r   r   rn  r  )	r   r)   r+  r   r   r   r(   r.   r/   )rZ   r2   r   r4   r    r    r!   test_corrwith_with_1_axis-  s   rK  z%ignore:.* is deprecated:FutureWarningc                 C   s`   t g g g dg d}|jg ddd}t|| }t| |}|| j}|j}t|| d S )NrO  FrI  )r   rY   r)   rT   r   r   r.   r   )r?  rZ   r[   r   r   r2   r4   r    r    r!   ,test_multiindex_group_all_columns_when_empty9  s   


rL  )lr+   ior   numpyr   r   pandas._libsr   pandas.errorsr   pandasr   r   r   r   r   r	   r
   pandas._testing_testingr.   pandas.core.nanopscorer   pandas.tests.groupbyr   pandas.utilr   tdr   r   r   r   r   r"   r5   r   r   r   r   r,   rb   rc   r   r   r   r   r  r  filterwarningsr  r(  rF  rN  rT  rX  r   r   r   rY  r   r   r   skip_if_no_scipyra  rk  rw  r  r  r  r  r  r  r  r  r  r  skip_if_32bitr   r  infr(   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r#  r/  r4  boolru   rv   r.  rF  rJ  rK  rL  r    r    r    r!   <module>   sz    
& /[


 
J


	-
42
$$
,$
	9

$E
n
