o
    dC                     @   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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/d0fgd1d2 Z.ej#$d3ed4ed5fd6gd7d8 Z/ej#$d9d: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d@dA Z0dBdC Z1ej#$d=g dDdEdF Z2dGdH Z3dIdJ Z4dKdL Z5dMdN Z6ej#$dOdPej7fdQej8fdRej9f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=dYe6ej>dZgd[d\ Z?d]d^ Z@d_d` ZAdadb ZBdcdd ZCej#$deg dfg dgfd gd gfgej#$d!dgejD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 ZVej#$ddddggdd ZWdd ZXdd ZYdd ZZdd Z[e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 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ل ZodS )    N)StringIO)lib)UnsupportedFunctionCall)	DataFrameIndex
MultiIndexSeries	Timestamp
date_range)nanops)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!   g/var/www/html/visualizacion-main/env/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   r6   fkeysjimjoec           	         sH  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 | fdd|}t|| td  |fdd}W d    n1 sjw   Y  t|| |tkr|  }|j| ddd tj||dd tt| ddt| dd d S )Nr'   2   )  r(   r9   r:   columnsr<   jolie)subsetzinvalid frame shape: z (expected (z, 3))   c                    s   t t | ddS )Nr   axis)getattrr   x)fnamer!   r"   <lambda>S   s    z%test_builtins_apply.<locals>.<lambda>c                    s    | S Nr!   rE   )npfuncr!   r"   rH   X       TF)inplacedrop)check_dtyper   rB   )r   r   randomrandintrandnr*   __name__r.   lendrop_duplicatesshaper/   assert_frame_equalassert_produces_warningr-   r+   reset_index	set_indexr0   rD   )	r8   r7   dfgbr3   ngroups
assert_msgr5   	expected2r!   )rG   rJ   r"   test_builtins_applyC   s(   


(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(   rA   )      @      @      @abccategory)      	   20130101rA   periods
US/Eastern)rm   tzz1 sr1   )rm   freq)	groupintfloatstringcategory_stringcategory_intdatetime
datetimetz	timedeltar=   )r   listr   astyper
   pdtimedelta_rangeselfrZ   r!   r!   r"   rZ   f   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rr   rs   rv   rq   g      @rj         @re   z1.5s3s      ?rA   z2013-01-01 12:00:00z2013-01-03 00:00:00rn   ro   )rv   rs   ry   rr   rw   rx   r'   r(   nameindexr>   Tnumeric_only)r   r*   r   r|   	Timedeltar	   rD   r/   rV   reindex_liker>   _check)r   rZ   r   expected_columns_numericr[   r5   r3   expected_columnsr!   r!   r"   test_averages   s*   


zTestNumericOnly.test_averagesr   r   c                 C   $   t g d}|}| |||| d S )N)rr   rs   rt   rv   rw   rx   ry   r   r   r   rZ   r   r   r   r!   r!   r"   test_extrema   s
   zTestNumericOnly.test_extremafirstlastc                 C   r   )N)rr   rs   rt   ru   rv   rw   rx   ry   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   )rr   rs   rt   rv   ry   r   )rr   rs   rv   ry   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   )N)rr   rs   rv   rw   rx   ry   r   r   r!   r!   r"   test_cummin_cummax   s
   z"TestNumericOnly.test_cummin_cummaxc           	   
   C   sp  | d}|drtnt}|dv r<dddd| dg}tj||d	 t||  W d    n1 s6w   Y  n6|d
v redg d}tj||d	 t||  W d    n1 s_w   Y  nt|| }t	|j
| |dvrdddddd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 )Nrq   cum)r   r   r   r   r   r   |zCategorical is not ordered*function is not implemented for this dtypezCannot perform z with non-ordered Categoricalmatch)r-   r   r   r   )z-category type does not support sum operations[Cc]ould not convertz0can't multiply sequence by non-int of type 'str'r   r   r   zcategory type does not supportzcan't multiply sequenceFr   )r*   
startswithNotImplementedError	TypeErrorjoinpytestraisesrD   r/   assert_index_equalr>   )	r   rZ   r   r   r   r[   	exceptionmsgr3   r!   r!   r"   r      sL   



"zTestNumericOnly._checkN)rR   
__module____qualname__r   fixturerZ   markparametrizer   r   r   r   r   r   r   r!   r!   r!   r"   r`   c   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'   barrA   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   0  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'   rA   r   r   r   countr   stdr   25%50%75%r   r   ri   levelscodesr$   r%           r   )r   r   rz   ranger   r   r)   describer/   rV   rX   )r   rZ   r[   r   expected_indexexpected_colr5   r3   r!   r!   r"   test_describe5  s"    z'TestGroupByNonCythonPaths.test_describeN)	rR   r   r   r   r   rZ   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(   rj   )rA      rj   r   r=   r   r   r   r   Fr   rB   )r   r   r)   r*   r   r/   rV   r   )rZ   r5   r3   r!   r!   r"   test_cython_api2L  s   *&r   c                  C   s   t jd} t j| d d d< t| }t jjddddt}t j|d d d< ||	 }||
tj}t|| tt jdd}||
t j	}||	 }t|| d S )Nr<   r(   r   r;   size      )r   rO   rQ   r)   r   rP   r{   rs   r*   r   r+   r   	nanmedianr/   rV   )arrrZ   labelsr3   exprsxpr!   r!   r"   test_cython_medianb  s   r   c                 C   sj   t tjddd}tddd}t|d |}|j|| d }|j|| d	dd }t
|| d S )	Nr   ,     7   r   )observedc                 S      |   S rI   )r   rE   r!   r!   r"   rH   {  rK   z(test_median_empty_bins.<locals>.<lambda>)r   r   rO   rP   r   r|   cutr*   r   r+   r/   rV   )r   rZ   grpsbinsr3   r5   r!   r!   r"   test_median_empty_binst  s   r   r   )int8int16int32r   float32r   uint64zmethod,datar   rZ   r'   abr(   rA   r   r   r   r   r   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(   rA   r   r   argsr   rZ   r   T)rL   )r   r   r{   rY   r*   rD   r/   rV   )	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   r5   )r5   r   r(   )r   r   r   r   nthr   r   r   )r   itemsr*   rD   ilocr   )r   rZ   grp_expr   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(   rA   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{   rD   r*   r   rM   r/   rV   )funcvaluesr   rZ   r3   r5   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(   rA   r'   r(   rA   r'   r(   rA   r   r   r'   rB   z
2016-01-01rl   Ez7reduction operation 'argmax' not allowed for this dtyper   )r   r   rO   rQ   r*   r  r   r   get_level_valuesr/   r0   	droplevelr
   r   r   r   )rZ   r[   r   altindexergb2r   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rJ||	d< d}
d}|d ury||
v ryd}t jt|d ||i |	 W d    d S 1 srw   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rd}t jtdd| dd ||i |	 W d    d S 1 sw   Y  d S ||i |	}|r|jdd	jn|j}t||| j}|dkr|s|t}t|| d S )Nr  r   z5idxmax and idx_min tested in test_idxmin_idxmax_axis1)corrwithskewzDGH#47723 groupby.corrwith and skew do not correctly implement axis=1reasonr  r   r  r=   rF   r  r  rC   r'   r   )r   r   difffillna
pct_changerankshift)r   r   r&  r(  r)  r*  r   r   r   r  r'  1got an unexpected keyword argument 'numeric_only'r   z)got an unexpected keyword argument 'axis')r'  r*  )"not supported between instances ofz2can't multiply sequence by non-int of type 'float'unsupported operand type(r   )r*  )r   skipnode
add_markerr   xfailr   r   rO   rQ   r*   rD   r   r   r   r   rM   Tr{   rs   r/   assert_equal)r   groupby_funcr   r   rZ   groupsr[   r   r   kwargsno_argshas_axismsgsr3   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
group_keysc                 S   r   rI   r   rE   r!   r!   r"   rH   Q  rK   z&test_groupby_cumprod.<locals>.<lambda>d   c                 S   r   rI   rC  rE   r!   r!   r"   rH   X  rK   )	r   r*   r   r.   r   r/   r0   r{   rs   )rZ   actualr5   r!   r!   r"   test_groupby_cumprodL  s   rF  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@  )rG  l    d(	 l     I5 l      Fx:^ r   FrA  c                 S   r   rI   rC  rE   r!   r!   r"   rH   h  rK   z/test_groupby_cumprod_overflow.<locals>.<lambda>)r   r*   r   r   r/   r0   r.   r   )rZ   rE  r5   numpy_resultr!   r!   r"   test_groupby_cumprod_overflow]  s   rI  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(   re   r   rK  )r   r   r)   r*   r   r/   rV   rZ   r3   r5   r!   r!   r"   1test_groupby_cumprod_nan_influences_other_columnsn  s   
rO  c                  O   s   ddl m} || ddi|S )Nr   )semddofr'   )scipy.statsrP  )r   r8  rP  r!   r!   r"   	scipy_sem|  s   rS  z	op,targopr   r   r   varr-   r   c                 C   
   | j d S )Nr   r   rE   r!   r!   r"   rH        
 rH   c                 C   rU  )NrV  rE   r!   r!   r"   rH     rW  rP  )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   rO   rQ   rP   r{   rs   rD   r*   r+   r/   rV   )optargoprZ   r   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   )parse_datesDateFile)r/   rW   UserWarningr|   read_csvr   r*   r   to_framerV   isnaany)rawrZ   r[   rer!   r!   r"   test_max_nan_bug  s   
rh  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'   rA   r   rh   r(   rj   r   r      r  
aaaaabbbbbrA   )rh   r   rA   r  rj   rk  aaabbb)rA   r(   r'   rj   r   ri   r  
r'   r'   rA   r(   r   rA   rA   r(   r'   r   )rA   r(   r'   rA   rA   r(   )r(   rA   r'   rk  r   rh   r   keep)r   rz   r*   nlargestr   from_arraysr/   r0   r   r   r[   rf  rg  r!   r!   r"   test_nlargest      


rt  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  rl   onetwor   second)names   r  r'   r   r(   rA   r   r   rk  rh   ri   rj   )r   r   ry  )
g-r@g-`w?g@f|?gp?g=J-?g],l;?g]f$?gM8r g4Y?g
F;FgMbP?)check_exactrtol)r   rO   RandomStater
   r   from_productr   rQ   r*   rq  from_tuplesr/   r0   )	nprdts	iterablesidxr1   r3   exp_idx
exp_valuesr5   r!   r!   r"   test_nlargest_mi_grouper  s.   r  c                  C   ri  )Nrj  rl  rA   )r'   r(   rA   r   r   rk  rm  )r   r   r'   rk  rh   ri   r  rn  )r   r'   r'   r   r'   r(   )r   r'   r   rj   ri   rh   r   ro  )r   rz   r*   	nsmallestr   rr  r/   r0   rs  r!   r!   r"   test_nsmallest  ru  r  zdata, groupsr   r'   r(   rA   r   r   r'   r'   r   rq  r  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   rq  r   r   r(   )nr   r   )r   arrayrz   reversedr   rD   r*   
isinstanceint_r   rr  r   r/   r0   )r   r7  r   r   serr3   expidxr5   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'   rb   r   r   r   z+numpy operations are not valid with groupbyr   r'   r(   rA   )r   )r   r*   r   r   r   rD   )r  rZ   gr   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(   rA   r   rA   r(   r(   rA   r(   r'   r  )rA   rA   rA   r(   r(   r(   r(   r'   r   r   FrA  c                 S   r   rI   r   rE   r!   r!   r"   rH   0  rK   ztest_cummin.<locals>.<lambda>r(   rk  r   r(   rA   rk  rh   T)r|  c                 S   r   rI   r  rE   r!   r!   r"   rH   ;  rK   rs   r   r(   r   rk  r   rA   c                 S   r   rI   r  rE   r!   r!   r"   rH   G  rK   2001r   r   r  r   r  )r'   r(   r(   r   )r   r{   r*   r   r/   rV   r   r.   rb  locr   r)   r|   r  r   r0   r   )r#   r   r   base_dfexpected_minsrZ   r5   r3   r!   r!   r"   test_cummin#  sF   
$r  r   r   )UInt64r   r   rs   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  ri   r  r   r   r  )	r   r   r)   r{   r*   rD   r/   rV   rb  )r   r   r  r2   r5   r3   r!   r!   r"   test_cummin_max_all_nan_columnY  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  )rA   r   r   r   r(   rA   rA   rA   r   r   FrA  c                 S   r   rI   r   rE   r!   r!   r"   rH   u  rK   ztest_cummax.<locals>.<lambda>rk  r  c                 S   r   rI   r  rE   r!   r!   r"   rH   ~  rK   rs   r  r   rA   c                 S   r   rI   r  rE   r!   r!   r"   rH     rK   r'   r  r   r   r  r   r  )r(   r'   r'   )r(   r'   r(   r   )r   r{   r*   r   r/   rV   r   r.   rb  r  r   r)   r|   r  r   r0   r   )r#   r   r    r  expected_maxsrZ   r5   r3   r!   r!   r"   test_cummaxh  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/   rV   )r  rZ   r[   r   r   r!   r!   r"   &test_cummax_i8_at_implementation_bound  s   
r  )rs   r   r   zgroups,expected_datar'   r'   r'   )r'   NNrb   r'   Nr(   )r'   rA   rA   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rL  )r   r   )r   r   copyr*   rD   r/   rV   r0   )	r   r   r7  expected_datarZ   origr[   r3   r5   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*   rD   r/   rV   )r   rZ   r[   r3   r5   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/   rV   )r   r   valr   rZ   r2   r3   r5   r!   r!   r"   #test_nullable_int_not_cast_as_float  s   


r  zin_vals, out_vals)r'   r(   r   rA   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   rK  rK  rK  dr  r   r   abcdr   r   r   r   r   c                 S      | j S rI   )is_monotonic_increasingrE   r!   r!   r"   rH         z.test_is_monotonic_increasing.<locals>.<lambda>)
r   r*   r   r  r   rz   r   r/   r0   r.   in_valsout_valssource_dictrZ   r3   r   r5   r!   r!   r"   test_is_monotonic_increasing  s   r  )r  rj   rh   rA   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   rz   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   )mframer2   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  rI   yearrE   r!   r!   r"   rH   -  r  z/test_series_describe_multikey.<locals>.<lambda>c                 S   r  rI   monthrE   r!   r!   r"   rH   -  r  r   F)check_namesr   r   )r/   makeTimeSeriesr*   r   r0   r   r   r   )tsr2   r3   r!   r!   r"   test_series_describe_multikey+  s   r  c                  C   s@   t  } | dd }|dd }|  }t || d S )Nc                 S   r  rI   r  rE   r!   r!   r"   rH   6  r  z-test_series_describe_single.<locals>.<lambda>c                 S   r   rI   )r   rE   r!   r!   r"   rH   7  rK   )r/   r  r*   r.   r   stackr0   )r  r2   r3   r5   r!   r!   r"   test_series_describe_single4  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)rw  rx  rx  threerx  )r'   r(   r   r   rk  )r  r  foo2r   r  )rw  r  rx  )r$   r$   r&   )r$   rc   rc   r%   )r$   rc   r%   )r$   rc   r&   )r$   rc   rd   )r$   rc   re   )	r  r   r   r   r   r   r   r   r   r(   r'   r  r  )
r   r*   r   r   r)   rS   insertrY   r/   rV   )r   r8   rZ   r[   r3   r5   r!   r!   r"   test_series_describe_as_index<  s2   
r  c                 C   s@   | j d d dgf | d }|dd }|jjdksJ d S )Nr   r   c                 S   r   rI   )r   rE   r!   r!   r"   rH   ^  rK   z(test_series_index_name.<locals>.<lambda>)r  r*   r+   r   r   )rZ   r2   r3   r!   r!   r"   test_series_index_name\  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  rI   r  rE   r!   r!   r"   rH   c  r  z.test_frame_describe_multikey.<locals>.<lambda>c                 S   r  rI   r  rE   r!   r!   r"   rH   c  r  r   r   )r>   r   r'   rB   r  r  )r*   r   r   r>   rS   r   r   r  r   appendr|   concatr/   rV   r4  )	tsframer2   r3   desc_groupscolrq   	group_colr5   groupedTr!   r!   r"   test_frame_describe_multikeyb  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(   rA   r   r   rA   )r  r{     (   r;   )rD     i,  i  r   )rF   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   )df1df2r   r!   r!   r"   test_frame_describe_tupleindex}  s   


"r  c                  C   s   t dd ddt dd ddt dd ddi} t dd ddt dd ddt dd dd	i}t| |d
}|dj }||jdk j j ||jdk j j g}t|tddgdd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/   rV   )pricesvolumesrZ   r3   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(   rA   r   r   rk  )r  r{  r  r  r;   <   )r  r	  r   rK  )r  r	  r   r   F)r>   r  r  r	  r=   )r   r   r&   r&   r   r   rd   r%   r   r   r$   r$   r   r   rc   r$   r   r   r   r   r   r   rd   r%   r   r   g      @g      @r   r   re   r&   r  r  r  r  r  r  r  r  r   r'   r(   r  r
  )r   r   rz  r   r   )r   rM   from_recordsrY   r4  r>   rz  rS   r   r   r   rX   r*   r   r/   rV   )r   r8   rZ   r5   r3   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  r=   r!   r"   r    s    z3test_describe_duplicate_columns.<locals>.<listcomp>)r   r%   r&   rB   r   r(   rk  rA   r   )r   r>   r*   r   r|   r  r   rz   r   r   rz  r/   rV   )rZ   r[   r3   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*   r   )rZ   r!   r!   r"   test_groupby_mean_no_overflow  s   "r  r  )	r'   r'   r'   r(   r(   r(   rA   rA   rA   )r'   r'   r(   r(   rA   rA   )r'   r(   r'   r(   r'   r(   function)r   r   rT  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 )NrT  g      ?r   rA   r  rb   r   r   r   r   r   r  r   )r   r  rs   r   r   r{   r*   rD   r/   rV   r+   r   r  r>   )r  r  outputr   r  r5   r7  r3   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(   rJ  r   r  r   r  r   r(   	min_countrA   )r   r   r   rM  )r   r   )
r   r*   r   r-   r   r|   r  r/   r0   rV   )rZ   r2   r  r3   r5   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/   r0   rN  r!   r!   r"   test_mean_on_timedelta5  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   rA   )daysr   r   r'   r(   r   r  r!  zm8[ns])r   r   r   )r   r|   r   r  r*   r-   r   r/   rV   r0   r   r   )rZ   td3r[   r   r5   r!   r!   r"   #test_groupby_sum_timedelta_with_nat?  s   
 r-  zkernel, has_arg))allF)rd  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)r   T)r   T)r   T)r   F)nuniqueF)r(  F)r   T)quantileT)rP  T)r#  T)r   T)r-   T)rT  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 |se| dv r|duskJ | drrt	nt
}
dg d}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   rk  )r  r	  a3r   r   Tr   r   )rd  r.  r/  r2  r'  r   r3  r!  r   r   )not allowed for this dtypezmust be a string or a number+cannot be performed against 'object' dtypesz!must be a string or a real numberr-  r,  r   r   r+  )r&  r(  r-  )r   objectr   r   
no_defaultr*   rD   r>   r   r   r   r   r   r   )kernelhas_argr   r8   rZ   r   r8  r[   r   r3   r   r   r!   r!   r"   test_numeric_onlyW  sH   $*


	"""r<  c                 C   s  |dkrd}|j tjj|d g d}tg d| d}||}t||}tg d}||}	t|	|}
t||}d}d}||v rt| t	u rt|d	v rOd
}n	|dkrVd}nd}tj
t|d ||  W d    n1 snw   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 ||ddi}||ddi}t|| d S )Nr"  z,corrwith is not implemented on SeriesGroupByr$  r  r  r  )	r0  r1  r   r   r   r   r  r   r4  )r   r   r   r/  r2  r*  r-   r&  r(  rT  r   r   r   r   r   r!  r6  r4  r7  z!is not supported for object dtyper   )r   r   r   r   r   r   r   r4  rP  r#  r   r-   rT  r   r   r   r   r+  r   Tr   )z@SeriesGroupBy.sem called with numeric_only=True and dtype objectz=Series.skew does not allow numeric_only=True with non-numericz7cum(sum|prod|min|max) is not supported for object dtypezCCannot use numeric_only=True with SeriesGroupBy\..* and non-numericF)r1  r2  r   r   r3  r   r*   rD   r   r8  r   r   r{   r/   r0   r   )r   r6  r   r   grouperr  r[   r   expected_serexpected_gbexpected_methodr   fails_on_numeric_object
obj_resultr3   r5   has_numeric_onlyr!   r!   r"   "test_deprecate_numeric_only_series  sZ   






""rD  r8  )g?g?g333333?r.  )r  includeexcluderr   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 )Nrb   r   )r>   r   r   r   r   r   T)rM   r!   )r   r{   rr   rs   r   r*   r   rX   r/   rV   r   r   r   )r   r8  rZ   r3   r5   r!   r!   r"   test_groupby_empty_dataset$  s    ("*
rG  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 )Nra   )rA   rh   r   r   r   r'   rB   ))r'   r   )r'   r'   )r'   r(   )r(   r(   )r(   r   )r(   r'   )r   N)r   r   rk  r  )	r   r*   r"  r   r   r   r)   r/   r0   )rZ   r3   r   r5   r!   r!   r"   test_corrwith_with_1_axis=  s   rH  c                 C   s`   t g g g dg d}|jg ddd}t|| }t| |}|| j}|j}t|| d S )NrJ  FrA  )r   rY   r*   rD   r   r   r/   r   )r6  rZ   r[   r   r   r3   r5   r!   r!   r"   ,test_multiindex_group_all_columns_when_emptyI  s   


rI  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'   rA   rk  )r'   r   rh   )r(   r   ri   abbr=   r   r   rJ  r'   rB   )r   ngroupcumcountrK  r   )r1  r2  r   r   r3  r   rz   r   r*   rD   set_axisr  r/   r5  )r   r6  r   r   rZ   r   r[   r3   expected_dfexpected_argsr?  r5   r!   r!   r"   test_duplicate_columnsU  s   "

rP  )pr,   ior   numpyr   r   pandas._libsr   pandas.errorsr   pandasr|   r   r   r   r   r	   r
   pandas._testing_testingr/   pandas.corer   pandas.tests.groupbyr   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=  rF  rI  rO  rS  r   r   r   rT  r   r   r   skip_if_no_scipyr\  rh  rt  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'  r-  r9  r<  boolrr   rs   r8  rD  rG  rH  rI  rP  r!   r!   r!   r"   <module>   s    
 =-


 
F


	-
64
$$
,$
	
7

$<
j