a
    j=ic                     @   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   )paramsZidsc                 C   s   | j }|}|dkrtj}n|dkr(tj}t|jdkrDt|jn
t|j}t|jdkrlt|j	n
t|j	}|||fS )zZ
    Fixture of dtypes with min and max values used for testing
    cummin and cummax
    r   r   i)
paramnpint64float64dtypekindiinfominZfinfomax)requestr   Znp_typemin_valmax_val r   s/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/lib/python3.9/site-packages/pandas/tests/groupby/test_function.pydtypes_for_minmax   s    	

r   c                  C   s\   t ddtjdg} | g d}|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resultZresult2expectedr   r   r   test_intercept_builtin_sum8   s    r1   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sJ |tt| |ttfv rt}nd }d}	tj||	dd | }
W d    n1 s0    Y  t||
 td " | fdd}W d    n1 s0    Y  t|| |tkrl|| }
|
j| ddd tj||
dd tt|| t||  d S )Nr#   2   )  r$   r4   r5   columnsr7   Zjolie)Zsubsetzinvalid frame shape: z (expected (z, 3))   z*scalar (max|min) over the entire DataFrameF)matchZcheck_stacklevelc                    s    | ddS )Nr   axisr   xZnpfuncr   r   <lambda>`       z%test_builtins_apply.<locals>.<lambda>T)inplacedrop)Zcheck_dtype)r   r   randomrandintrandnr&   __name__r*   lenZdrop_duplicatesshapegetattrr   r   FutureWarningr+   assert_produces_warningassert_frame_equalr)   r'   reset_index	set_indexr,   )r3   r2   dfgbfnamer/   ZngroupsZ
assert_msgwarnmsgr0   Z	expected2r   r@   r   test_builtins_applyC   s0    


(2
rV   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)      	   Z20130101r:   periods
US/Eastern)rc   tzz1 sr-   )rc   freq)	groupintfloatstringcategory_stringcategory_intdatetime
datetimetz	timedeltar8   )r   listr   astyper
   pdZtimedelta_rangeselfrQ   r   r   r   rQ   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 s0    Y  t
||| |j}| |||| d S )Nrh   ri   rl   rg   g      @ra         @r\   z1.5sZ3s      ?r:   z2013-01-01 12:00:00z2013-01-03 00:00:00rd   re   )rl   ri   ro   rh   rm   rn   r#   r$   namerh   ri   rl   rm   rn   ro   indexr9   zDropping invalidr;   Fnumeric_only)r   r&   r   rr   	Timedeltar	   r+   rM   rL   rK   rN   Zreindex_liker9   _check)rt   rQ   ru   expected_columns_numericrR   r0   r/   expected_columnsr   r   r   test_averages   s,    


.zTestNumericOnly.test_averagesr   r   c                 C   s$   t g d}|}| |||| d S )N)rh   ri   rj   rl   rm   rn   ro   r   r   rt   rQ   ru   r   r   r   r   r   test_extrema   s
    zTestNumericOnly.test_extremafirstlastc                 C   s$   t g d}|}| |||| d S )N)rh   ri   rj   rk   rl   rm   rn   ro   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 )Nrx   )rh   ri   rj   rl   ro   r   )rh   ri   rl   ro   r   )rt   rQ   ru   r   r   r   r   r   test_sum_cumsum   s    zTestNumericOnly.test_sum_cumsumprodcumprodc                 C   s$   t g d}|}| |||| d S )Nrx   r   r   r   r   r   test_prod_cumprod   s    z!TestNumericOnly.test_prod_cumprodcummincummaxc                 C   s$   t g d}|}| |||| d S )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 sZ0    Y  t|j| d }t|t|jjk rt}tj|dd  t||dd}W d    n1 s0    Y  t|j| d S )	Nrg   )r   r   )r   r   zDropping invalid columnsF)r;   Zraise_on_extra_warningsr   r   )	r&   rL   r+   rM   rK   assert_index_equalr9   rI   Z_obj_with_exclusions)rt   rQ   ru   r   r   rR   rT   r/   r   r   r   r      s"    
*.zTestNumericOnly._checkN)rH   
__module____qualname__pytestfixturerQ   markparametrizer   r   r   r   r   r   r   r   r   r   r   rW   k   s   

'




rW   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:   ZbazABCr8   )r   r   r%   rs   r   r   r   rQ     s
    zTestGroupByNonCythonPaths.dfc                 C   s   | d}|S )Nr   r&   )rt   rQ   rR   r   r   r   rR   %  s    
zTestGroupByNonCythonPaths.gbc                 C   s   |j ddd}|S )Nr   Fas_indexr   )rt   rQ   gnir   r   r   r   *  s    zTestGroupByNonCythonPaths.gnic                 C   sp   t dgtjggdgddgd}d|j_d}tjt|d | }W d    n1 sV0    Y  t	|| d S )	N        r   r#   r:   r9   r   r   z<The default value of numeric_only in DataFrameGroupBy.idxmaxr   )
r   r   r%   r   r}   r+   rM   rL   idxmaxrN   rt   rR   r0   rU   r/   r   r   r   test_idxmax0  s    &z%TestGroupByNonCythonPaths.test_idxmaxc                 C   sp   t dgtjggdgddgd}d|j_d}tjt|d | }W d    n1 sV0    Y  t	|| d S )	Nr   r   r#   r:   r   r   z<The default value of numeric_only in DataFrameGroupBy.idxminr   )
r   r   r%   r   r}   r+   rM   rL   idxminrN   r   r   r   r   test_idxmin;  s    &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 sR0    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 s0    Y  t	|| d S )
Nr   r   r#   r:   r   r   zThe 'mad' method is deprecatedr   r   )
r   r   r%   r   r}   r+   rM   rL   madrN   )rt   rR   r   r0   r/   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   countrv   stdr   25%50%75%r   r   r`   levelscodesr    r!   r   r   )r   r   rp   ranger   r   r%   describer+   rN   rr   concatr   Zunstackto_frameTr   )rt   rQ   rR   r   Zexpected_indexZexpected_colr0   r/   r   r   r   test_describeW  s,     z'TestGroupByNonCythonPaths.test_describeN)rH   r   r   r   r   rQ   rR   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$   ra   )r:      ra   r   r8   r   r   r   r   Fr   r<   )r   r   r%   r&   r   r+   rN   r   )rQ   r0   r/   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 )Nr7   r$   r   r6   size      )r   r   rE   rG   r%   valuesrF   rq   ri   r&   rw   r'   nanopsZ	nanmedianr+   rN   )rQ   labelsr/   exprsZ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   |   S N)rw   r>   r   r   r   rA     rB   z(test_median_empty_bins.<locals>.<lambda>)r   r   rE   rF   r   rr   cutr&   rw   r'   r+   rN   )r   rQ   ZgrpsZbinsr/   r0   r   r   r   test_median_empty_bins  s    r   r   )Zint8int16int32r   float32r   uint64zmethod,datar   rQ   r#   abr$   r:   r   r   r   r   nth)rQ   argsr   r   )rQ   out_typec           	      C   s   t ddddddddddddg}|j| |d< d|vrHg |d< d|v rZ|d }n| }|d	 }t |}|j||d< |jd
dd |d
}t|||d  }t|| d S )Nr#   r   r$   r:   r   r   r   r   rQ   r   T)rC   )r   r   rq   rP   r&   rK   r+   rN   )	r   ru   datarQ   r   r   Zdf_outZgrpdtr   r   r   %test_groupby_non_arithmetic_agg_types  s     "

r   r   z2011-01-15 12:50:28.502376z2011-01-20 12:50:28.593448)l    m;-Ll    m;-Lc                 C   s   t d| d dd| d dg}d| d id| d id| d id| d i| d dgdddid}| D ]L\}}d|vrg |d< |d	}t|||d  }|jd j|d ksjJ qjd S )
Nr#   r   r   r0   )r0   r   r$   )r   r   r   r   r   r   r   r   )r   itemsr&   rK   ilocr   )r   rQ   Zgrp_expru   r   r.   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}|r|jdgd}n$|d |d< |d |d
< |d |d< |d |d< |d |d< t|| d S )N)r   r   r   r   )r#   r$   r:   r   )gGz@g=
ףp=@gRQ @g?)Z2019Z2018Z2016Z2017)r}   r   r   r   r   z
US/PacificZ	c_date_tzr   Zc_timedeltaWZc_periodr   r   Z	c_Integerr   r   Z
c_Floatingr}   r   r   r   r|   r   r8   )r   rr   to_datetimedtZtz_localizer   Z	to_periodrq   rK   r&   r   rD   r+   rN   )funcr   r   rQ   r/   r0   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    n1 s0    Y  d S )N
   r   r   r   r   Dr8   
r#   r$   r:   r#   r$   r:   r#   r$   r:   r   r   r#   r<   z
2016-01-01rb   Ez7reduction operation 'argmax' not allowed for this dtyper   )r   r   rE   rG   r&   r   r   r   Zget_level_valuesr+   r,   Z	droplevelr
   r   raises	TypeError)rQ   rR   r   ZaltZindexerZgb2rU   r   r   r   test_idxmin_idxmax_axis1  s    

r   )TFNc              	   C   sj  |dv rt d |dv r$t d |dv rFd}| jt jj|d ttj	dd	g d
d}d|d< g d}|
|}t||}t||}ddi}	|d ur||	d< d}
d}|d ur||
v rd}t jt|d ||i |	 W d    n1 s0    Y  n`||vrd}|dkr(|s(tnd }tj|ddN t jt|d ||i |	 W d    n1 sp0    Y  W d    n1 s0    Y  n|d u s|s|dvrd}t jtdd| dd ||i |	 W d    n1 s0    Y  n^||i |	}|r*|jddjn|j}t||| j}|dkrZ|sZ|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   r8   r?   r   r   r=   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   zDropping of nuisance columns)r   r   )z"not supported between instances ofz2can't multiply sequence by non-int of type 'float'unsupported operand type(|)r   )r   skipnode
add_markerr   xfailr   r   rE   rG   r&   rK   r   r   r   rL   r+   rM   joinrD   r   rq   ri   Zassert_equal)r   groupby_funcr   rU   rQ   groupsrR   ru   r   kwargsZno_argsZhas_axisrT   Zmsgsr/   Zdf_expectedr0   r   r   r   test_axis1_numeric_only/  sL    




0
P0
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d  }| d t| d< | jdddd dd
 }d|_t|| d S )Nr   r   r$   )keyvaluer  r  FZ
group_keysc                 S   s   |   S r   r   r>   r   r   r   rA     rB   z&test_groupby_cumprod.<locals>.<lambda>d   c                 S   s   |   S r   r  r>   r   r   r   rA     rB   )	r   r&   r   r*   r}   r+   r,   rq   ri   )rQ   actualr0   r   r   r   test_groupby_cumprodz  s    r  c                  C   s\   t ddtjdgg dd} | djddd}t dtjtjgg d	d
}t|| d S )Nr#   r$   )r#   r$   r"   r   r   cr   TF)r   skipna)r#   r$   r\   r   r  )r   r   r%   r&   r   r+   rN   rQ   r/   r0   r   r   r   1test_groupby_cumprod_nan_influences_other_columns  s    
r  c                  O   s   ddl m} || ddi|S )Nr   )semZddofr#   )Zscipy.statsr  )r   r  r  r   r   r   	scipy_sem  s    r  z	op,targoprv   rw   r   varr)   r   c                 C   s
   | j d S )Nr   r   r>   r   r   r   rA     rB   rA   c                 C   s
   | j d S )Nr  r>   r   r   r   rA     rB   r  )Zmarksc                 C   sZ   t tjd}tjjddddt}t|||  }||	|}t
|| d S )Nr7   r   r6   r   )r   r   rE   rG   rF   rq   ri   rK   r&   r'   r+   rN   )opZtargoprQ   r   r/   r0   r   r   r   test_ops_general  s
    r"  c                  C   sd   d} t jt| dgd}|d}|dg  }|d   }t|| |d  	 r`J 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   )Zparse_datesDateFile)
rr   Zread_csvr   r&   r   r   r+   rN   Zisnaany)rawrQ   rR   rer   r   r   test_max_nan_bug  s    
r)  c                  C   s   t g d} t td}| |}|d}t g dttdg dgd}t|| t g d} | |}t g d	ttdg d
gd}t|jddd| d S )N
r#   r:   r   r_   r$   ra   r   r      r   
aaaaabbbbbr:   )r_   r   r:   r   ra   r+  aaabbb)r:   r$   r#   ra   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   Zkeep)r   rp   r&   nlargestr   from_arraysr+   r,   r   r   rR   r'  r(  r   r   r   test_nlargest  s     


r3  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[Z20180101r   rb   onetwor   second)names   r   r#   r   r$   r:   r   r   r+  r_   r`   ra   )r   r   r6  )
g-r@g-`w?g@f|?gp?g=J-?g],l;?g]f$?gM8r g4Y?g
F;FgMbP?)check_exactZrtol)r   rE   ZRandomStater
   r   Zfrom_productr   rG   r&   r0  from_tuplesr+   r,   )	Znprdts	iterablesidxr-   r/   Zexp_idxZ
exp_valuesr0   r   r   r   test_nlargest_mi_grouper  s.    r>  c                  C   s   t g d} t td}| |}|d}t g dttdg dgd}t|| t g d} | |}t g d	ttdg d
gd}t|jddd| d S )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   ra   r`   r_   r   r/  )r   rp   r&   	nsmallestr   r1  r+   r,   r2  r   r   r   test_nsmallest
  s     


r@  zdata, groups)r   r#   r$   r:   r   r   r#   r#   ru   r0  r?  c                 C   s`   |dkrt t| } t| dd}t|||dd}t| t||jgdd}t	|| d S )Nr0  r   r|   r$   )nr   r}   )
rp   reversedr   rK   r&   r   r1  r   r+   r,   )r   r  ru   serr/   r0   r   r   r   test_nlargest_and_smallest_noop  s    	rF  r   r   r   c                 C   s   t g dg dd}|d}d}tjt|d" t|| ddd	 W d    n1 sZ0    Y  tjt|d  t|| dd
 W d    n1 s0    Y  d S )Nr#   r$   r#   rY   r   r   r   z+numpy operations are not valid with groupbyr   r#   r$   r:   )r   )r   r&   r   r   r   rK   )r   rQ   grU   r   r   r   test_numpy_compat/  s    
0rJ  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#   rH  )r:   r:   r:   r$   r$   r$   r$   r#   r   r   Fr  c                 S   s   |   S r   r   r>   r   r   r   rA   J  rB   ztest_cummin.<locals>.<lambda>r$   r+  r   r$   r:   r+  r_   T)r9  c                 S   s   |   S r   rM  r>   r   r   r   rA   U  rB   r   r$   r   r+  r   r:   c                 S   s   |   S r   rM  r>   r   r   r   rA   _  rB   2001r   r   rC  r   rG  )r#   r$   r$   r|   )r   rq   r&   r   r+   rN   r   r*   r   locr   r%   rr   r   r   r,   r   )r   r   r   base_dfZexpected_minsrQ   r0   r/   r   r   r   test_cummin=  sD    
$rS  r   r   )UInt64r   r   ri   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 )NrK  r`   rH  r   r   r   )	r   r   r%   rq   r&   rK   r+   rN   r   )ru   r   rR  r.   r0   r/   r   r   r   test_cummin_max_all_nan_columnq  s    
rW  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$   rK  rL  rH  )r:   r   r   r   r$   r:   r:   r:   r   r   Fr  c                 S   s   |   S r   r   r>   r   r   r   rA     rB   ztest_cummax.<locals>.<lambda>r+  rN  c                 S   s   |   S r   rX  r>   r   r   r   rA     rB   rO  r   r:   c                 S   s   |   S r   rX  r>   r   r   r   rA     rB   r#   rP  r   r   rC  r   rG  )r$   r#   r#   )r$   r#   r$   r|   )r   rq   r&   r   r+   rN   r   r*   r   rQ  r   r%   rr   r   r   r,   r   )r   r   r   rR  Zexpected_maxsrQ   r0   r/   r   r   r   test_cummax  s@    
$rY  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   )rr   NaTr  ).0rB  r   r   r   
<listcomp>  rB   z:test_cummax_i8_at_implementation_bound.<locals>.<listcomp>r   r#   zM8[ns]r   r   r   r   )r   r   r   viewr&   r   r+   rN   )rE  rQ   rR   r   r   r   r   r   &test_cummax_i8_at_implementation_bound  s    
r^  )ri   r   r   zgroups,expected_datar#   r#   r#   )r#   NNrY   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`  rV  Fr  )r   r}   )r   r   copyr&   rK   r+   rN   r,   )	ru   r   r  Zexpected_datarQ   origrR   r/   r0   r   r   r   test_cummin_max_skipna  s    rd  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   Fra  )r   r   r%   r&   rK   r+   rN   )ru   rQ   rR   r/   r0   r   r   r   $test_cummin_max_skipna_multiple_cols  s
    re  z	dtype,valrT  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   rV  rf  r   )rr   NAr   r&   Z	transformr+   rN   )ru   r   valr   rQ   r.   r/   r0   r   r   r   #test_nullable_int_not_cast_as_float  s    


ri  zin_vals, out_vals)r#   r$   r   r:   r$   r   r   r   ir#   r#   )TFFTg @r      )TFTF)FFFFc                 C   s|   g dg d| d}t |}|djj}ttddd}t||dd}t|| |dgj	d	d
 }t|| d S )N12345678910Z11r   r   r   r   r   r   r  r  r  drw  r   r   abcdr|   r   r   r   r}   c                 S   s   | j S r   )is_monotonic_increasingr>   r   r   r   rA     rB   z.test_is_monotonic_increasing.<locals>.<lambda>)
r   r&   r   rz  r   rp   r   r+   r,   r*   Zin_valsZout_valsZsource_dictrQ   r/   r   r0   r   r   r   test_is_monotonic_increasing  s    r|  )r   ra   r_   r:   r   r   r$   r   r#   r#   r}  )TTFTc                 C   sX   g dg d| d}t |}|djj}ttddd}t||dd}t|| d S )	Nrk  rv  r   r   rx  r|   r   ry  )	r   r&   r   Zis_monotonic_decreasingr   rp   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   )Zmframer.   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   s   | j S r   yearr>   r   r   r   rA   C  rB   z/test_series_describe_multikey.<locals>.<lambda>c                 S   s   | j S r   monthr>   r   r   r   rA   C  rB   rv   F)Zcheck_namesr   r   )r+   makeTimeSeriesr&   r   r,   rv   r   r   )tsr.   r/   r   r   r   test_series_describe_multikeyA  s    r  c                  C   s@   t  } | dd }|dd }|  }t || d S )Nc                 S   s   | j S r   r  r>   r   r   r   rA   L  rB   z-test_series_describe_single.<locals>.<lambda>c                 S   s   |   S r   )r   r>   r   r   r   rA   M  rB   )r+   r  r&   r*   r   stackr,   )r  r.   r/   r0   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   s   |   S r   )rv   r>   r   r   r   rA   T  rB   z(test_series_index_name.<locals>.<lambda>)rQ  r&   r'   r   r}   )rQ   r.   r/   r   r   r   test_series_index_nameR  s    r  c           	      C   s   |  dd dd g}| }g }| D ]Z}||  }t|g|jgdgt|j tt|jgd}t|j||jd}|	| q&t
j|dd}t|| | 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   s   | j S r   r  r>   r   r   r   rA   Y  rB   z.test_frame_describe_multikey.<locals>.<lambda>c                 S   s   | j S r   r  r>   r   r   r   rA   Y  rB   r   r   r   r#   r<   r   rA  )r&   r   r   r9   rI   r   r   r   r   appendrr   r   r+   rN   r   )	Ztsframer.   r/   Zdesc_groupscolrg   Z	group_colr0   Z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~0    Y  tjt|d |d	  W d    n1 s0    Y  d S )N)r#   r$   r:   r   r   r:   )r   r8     (   r6   )r     i,  i  r   )r?   yz)r   r   r#   )r   r#   r   r#   r   r   r   kr  r8   z*Names should be list-like for a MultiIndexr   )r   renamer   r   
ValueErrorr&   r   )Zdf1Zdf2rU   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+   rN   )ZpricesZvolumesrQ   r/   r   r0   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|_| rt|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   r+  )r   r8  r  r  r6   <   r  )r   r   r   F)r9   rb  ))r   r   r"   r"   )r   rv         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   rv   r[   r!   r   r   r    r    r   r   rZ   r    r   r   ry   rz   r   r   r[   r!   r   r   g      @g      @r   r   r\   r"   r  r  r  r  r  r  r  r  r   r#   r  r  r   r|   )r9   r  TrD   r   )r   Zfrom_recordsrP   r   r9   r7  r   r   rD   rO   r&   r   r+   rN   )r   rQ   r0   r/   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s4J d S )N)r   r   r   r   r   )ij  i  io  i`  l    @~ )userconnectionsr  r  r   l    ,fL )r   r&   rv   )rQ   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)rv   rw   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      ?rz   r:   rV  rY   r   r   r}   r   r   r   r   )r   arrayri   r   r   rq   r&   rK   r+   rN   r'   r   r:  r9   )r   r  outputZarrr=  r0   r  r/   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$   r  r   rV  r   r  r   r$   Z	min_countr:   )r   r   r}   r  )r   r   )
r   r&   r   r)   r   rr   rg  r+   r,   rN   )rQ   r.   r=  r/   r0   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   rr   Zto_timedeltar   r&   rv   r   r   r+   r,   r  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$   Z1dZ2dZ3dr   r:   )daysr   r   r#   r$   r|   r   r  zm8[ns])r   r}   r   )r   rr   r   rZ  r&   r)   r   r+   rN   r,   r   r   )rQ   Ztd3rR   r   r0   r   r   r   #test_groupby_sum_timedelta_with_nat"  s    
 r  z5kernel, numeric_only_default, drops_nuisance, has_arg))allFFF)r%  FFF)bfillFFF)corrTFT)r   TFT)covTFT)r   FTT)r   FTT)r   TTT)r   TTT)r   FFF)ffillFFF)r   FFF)r   FFT)r   TFT)r   TFT)r   FFT)r   FTT)rv   TTT)rw   TTT)r   FTT)r   FFF)nuniqueFFF)r   FFF)r   TTT)quantileTFT)r  TTT)r   TFT)r   TTT)r)   TTT)r  TFTa1a2c                 C   sx  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 sz|tju rt|sz|r|du s|s|sd }nt}|tju r|rd|  }n
d	|  }tj	||d
 |
|i |}W d    n1 s0    Y  d|j
vstJ nl| dv s(| dv rJ|tju rJ|
|i |}d|j
v stJ n*|r|dus^J |tjusx|du sxJ |rJ d}tjt|d
 |
|i | W d    n1 s0    Y  n|s|tjurtjtdd
 |
|i | W d    n1 s0    Y  n\| dv s&J |tju s6J tjtdd
 |
|i | W d    n1 sj0    Y  d S )Nr#   r$   r   r+  )r  r  a3r   r   Tz6The default value of numeric_only in DataFrameGroupBy.z-Dropping invalid columns in DataFrameGroupBy.r   r   )r   r   )r%  r  r  r  r   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)r  )r   r   r  )r   objectr   r   
no_defaultr&   rK   rL   r+   rM   r9   r   r   r   )ZkernelZnumeric_only_defaultZdrops_nuisancehas_argr   r3   rQ   r   r  rR   ru   rT   rU   r/   r   r   r   test_deprecate_numeric_only:  s`    ,$



,	
00r  c              	   C   s|  |dv rt d n"|dkr6d}|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 rd}n|dkrd}nd}t jt|d ||  W d    n1 s0    Y  n:| t
u r6|| }|
| }||v r*|t
}t|| d}||vrd}t jt|d ||ddi W d    n1 s|0    Y  n| t
u rPt}| d}|drd }d}t}| d}n|dkrt}d}nt}d}tj||dN t j||d ||ddi W d    n1 s$0    Y  W d    n1 sD0    Y  n(||ddi}||ddi}t|| d S )N)Zbackfillr   padr   zmethod is deprecatedr   z,corrwith is not implemented on SeriesGroupByr   r  r  rV  )	r  r  r   r   r   r   r   r   r  )	r   r   r   r  r  r   r)   r   r   r   znot allowed for this dtyper  z+cannot be performed against 'object' dtypesz!is not supported for object dtyper   )r   r   r   rv   rw   r   r   r  r  r   r   r)   r  r   r   r   r   r  r   Tz  does not implement numeric_onlyZcum z" is not supported for object dtyper   z$will raise a TypeError in the futurezThis will raise a TypeErrorF)r   r  r  r  r   r	  r   r&   rK   r   r  r   r   rq   r+   r,   NotImplementedError
startswithrL   rM   )r   r  r   rU   ZgrouperrE  rR   ru   Zexpected_serZexpected_gbZexpected_methodr   Zfails_on_numeric_objectZ
obj_resultr/   r0   Zhas_numeric_onlyZerr_categoryerr_msgZwarn_categoryZwarn_msgr   r   r   "test_deprecate_numeric_only_series  sj    




(



0


Pr  r  )g?g?g333333?r  )Zpercentilesincludeexcluderh   c                 C   s   t g dgg d| d}|d t|d< |d t|d< |jd d djf i |}|djf i |jdd	jd d }t	|| |jd d dj
jf i |}|dj
jf i |jdd	jd d }tg |_t	|| d S )
NrY   r   )r9   r   r   r   r   r   Tr  )r   rq   rh   ri   r   r&   r   rO   r+   rN   r   r   r   )r   r  rQ   r/   r0   r   r   r   test_groupby_empty_dataset  s     ("*
r  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 )NrX   )r:   r_   r   r   r   r#   r<   ))r#   r   )r#   r#   )r#   r$   )r$   r$   )r$   r   )r$   r#   )r   N)r   r}   r+  r   )	r   r&   r   r   r   r   r%   r+   r,   )rQ   r/   r   r0   r   r   r   test_corrwith_with_1_axis-  s    r  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 )Nr  Fr  )r   rP   r&   rK   r   r   r+   r   )r  rQ   rR   ru   r   r/   r0   r   r   r   ,test_multiindex_group_all_columns_when_empty9  s    


r  )lr(   ior   numpyr   r   Zpandas._libsr   Zpandas.errorsr   Zpandasrr   r   r   r   r   r	   r
   Zpandas._testingZ_testingr+   Zpandas.core.nanopscorer   Zpandas.tests.groupbyr   Zpandas.utilr   tdr   r   r   r   r   r   r1   r   r   r   r   r)   rV   rW   r   r   r   r   r   r   filterwarningsr   r   r  r  r  r  rv   rw   r   r  r   r   r   Zskip_if_no_scipyr"  r)  r3  r>  r@  rF  rJ  rS  rW  rY  r^  rd  re  Zskip_if_32bitr   ri  infr%   r|  r~  r  r  r  r  r  r  r  r  r  rg  r  r  r  r  r  r  boolrh   ri   r  r  r  r  r  r   r   r   r   <module>   sx   
& /[

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