U
    Mf                     @   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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 ejejejejejddgdd	d
dddg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!d"d#d$d%d&d'd(gej !d)d*d+d,d,d-d.d/d-gifd0d+d,d.d-d.d1d-gifd2d+d,d,d-d.d/d-gifd3d+d,d.d-d.d1d-gifd4d,d.d-d.d1d-gd,gd5fd6d,d.d-d.d.d-gd%d7fgd8d9 Z+ej !d:ed;ed<fd=gd>d? Z,ej !d@dAd d.gd,d/gd,d.gdBfdCd,d/gd d.gd d/gdBfgej -dDdEdF Z.dGdH Z/dIdJ Z0dKdL Z1ej !dMdNej2fdOej3fdPej4fdQej5fdRej$fdSej6fd2ej#fd3ej"fd*dTdU fd0dVdU fd6ej7fej8dWe1ej9dXgdYdZ Z:d[d\ Z;d]d^ Z<d_d` Z=dadb Z>ej !dcd d,d.d/gd d d,d,gfd gd gfgej !dddedfgdgdh Z?ej !didjdkgdldm Z@dndo ZAej !dddpdqgej !d!drdddsdtgdudv ZBdwdx ZCej !dddpdqgej !d!dsddgej !dyd,d,d,gd,ddgfd,d.d/gd,dd.gfd,d/d/gd,ddgfgdzd{ ZDej !dddpdqgd|d} ZEejFej !dddpdqgej !d~dreGd(j"fdgdd ZHej !dd,d.dd/d.d d1ddd,d,gddddgfd,dejId/d.ejIejI ddd,ejI gddddgfd,d.ejJd/d.ejJejJdejI d,ejJgddddgfgdd ZKej !ddddd/d1ddd.d d,d,gddddgfejId,ejI ejId.dejI ddejI ejI gddddgfd,d.ejJd/d.ejJejJdejI d,ejJgddddgfgdd ZLdd ZMdd ZNdd ZOdd ZPdd ZQdd ZRdd ZSej -dej !dddgdd ZTdd ZUej !dd,d,d,d.d.d.d/d/d/g	d,e	jVd.d,e	jVd.d,e	jVd.g	d-d,d,d.d.d/d/gd,d.d,d.d,d.gd-gej !ddNdOdQgdd ZWdd ZXdd ZYdd ZZdS )    N)StringIO)UnsupportedFunctionCall)	DataFrameIndex
MultiIndexSeries	Timestamp
date_range)_test_decoratorsInt64Float64znp.int32znp.int64z
np.float32z
np.float64)params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   F/tmp/pip-unpacked-wheel-eb6vo0j3/pandas/tests/groupby/test_function.pydtypes_for_minmax   s    	

r   c                  C   s`   t ddtjdg} | ddddg}|tj}|tj}| }t	|| t	|| d S )N      ?       @      @r         )
r   r   nangroupbyaggbuiltinssumapplytmassert_series_equal)sgroupedresultZresult2expectedr   r   r   test_intercept_builtin_sum6   s    r0   fkeysjimjoec              	      sb  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st|tt| |ttfkrt}nd }d}	tj||	dd | }
W 5 Q R X t||
 td  | fdd}W 5 Q R X t|| |tkrB|| }
|
j| ddd tj||
dd tt|| t||  d S )Nr"   2   )  r#   r3   r4   columnsr6   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   Z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AssertionErrorgetattrr   r   FutureWarningr*   assert_produces_warningassert_frame_equalr(   r&   reset_index	set_indexr+   )r2   r1   dfgbfnamer.   ZngroupsZ
assert_msgwarnmsgr/   Z	expected2r   r>   r   test_builtins_applyA   s0    



rU   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   s~   t dddgdddgdddgtdttddd	d
dgtdddtddddtjddddd	dddddddddg	d}|S )Nr"   r#   r9         @      @      @abccategory      	   Z20130101periods
US/Eastern)r`   tzz1 sr,   )r`   freq)	groupintfloatstringcategory_stringcategory_intdatetime
datetimetz	timedeltard   re   rf   rg   rh   ri   rj   rk   rl   r7   )r   listr   astyper	   pdZtimedelta_rangeselfrP   r   r   r   rP   l   s.    
zTestNumericOnly.dfmethodmeanmedianc                 C   s   t dddg}|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ddddddgd}tjtdd t	||dd}W 5 Q R X t
||| |j}| |||| d S )Nre   rf   ri   rd   g      @r^         @rY   z1.5sZ3s      ?r9   z2013-01-01 12:00:00z2013-01-03 00:00:00ra   rb   )ri   rf   rl   re   rj   rk   r"   r#   namerj   rk   rl   indexr8   zDropping invalidr:   FZnumeric_only)r   r%   r   ro   	Timedeltar   r*   rL   rK   rJ   rM   Zreindex_liker8   _check)rq   rP   rr   expected_columns_numericrQ   r/   r.   expected_columnsr   r   r   test_averages   s8    


zTestNumericOnly.test_averagesr   r   c                 C   s.   t dddddddg}|}| |||| d S )Nre   rf   rg   ri   rj   rk   rl   r   r   rq   rP   rr   r   r   r   r   r   test_extrema   s    zTestNumericOnly.test_extremafirstlastc              	   C   s0   t ddddddddg}|}| |||| d S )	Nre   rf   rg   rh   ri   rj   rk   rl   r   r   r   r   r   test_first_last   s    zTestNumericOnly.test_first_lastr(   cumsumc                 C   sL   t dddg}t dddddg}|dkr8t ddddg}| |||| d S )Nre   rf   ri   rg   rl   r   r   )rq   rP   rr   r   r   r   r   r   test_sum_cumsum   s    zTestNumericOnly.test_sum_cumsumprodcumprodc                 C   s&   t dddg}|}| |||| d S )Nre   rf   ri   r   r   r   r   r   test_prod_cumprod   s    z!TestNumericOnly.test_prod_cumprodcummincummaxc                 C   s,   t ddddddg}|}| |||| d S )Nre   rf   ri   rj   rk   rl   r   r   r   r   r   test_cummin_cummax   s
    z"TestNumericOnly.test_cummin_cummaxc              	   C   s   | d}d }|dkrt}n|dkr(t}tj|dd t|| }W 5 Q R X t|j| d }t|t|jjk rxt}tj|dd t||dd}W 5 Q R X t|j| d S )Nrd   )r   r   )r   r   zDropping invalid columnsr|   Fr}   )	r%   rK   r*   rL   rJ   Zassert_index_equalr8   rG   Z_obj_with_exclusions)rq   rP   rr   r   r   rQ   rS   r.   r   r   r   r      s    
zTestNumericOnly._checkN)rF   
__module____qualname__pytestfixturerP   markparametrizer   r   r   r   r   r   r   r   r   r   r   rV   i   s   

'




rV   c                   @   sn   e Zd Zejdd Zejdd Zejdd Zej	ddd	 Z
ej	dd
d Zdd Zdd ZdS )TestGroupByNonCythonPathsc                 C   s2   t dddgdtjdgdtjdggddd	gd
}|S )Nr"   r#   foobarr9   ZbazABCr7   )r   r   r$   rp   r   r   r   rP     s
    zTestGroupByNonCythonPaths.dfc                 C   s   | d}|S )Nr   r%   )rq   rP   rQ   r   r   r   rQ   !  s    
zTestGroupByNonCythonPaths.gbc                 C   s   |j ddd}|S )Nr   Fas_indexr   )rq   rP   gnir   r   r   r   &  s    zTestGroupByNonCythonPaths.gni(ignore:.*Select only valid:FutureWarningc                 C   s>   t dgtjggdgddgd}d|j_| }t|| d S N        r   r"   r9   r8   r{   r   )r   r   r$   r{   ry   idxmaxr*   rM   rq   rQ   r/   r.   r   r   r   test_idxmax,  s    z%TestGroupByNonCythonPaths.test_idxmaxc                 C   s>   t dgtjggdgddgd}d|j_| }t|| d S r   )r   r   r$   r{   ry   idxminr*   rM   r   r   r   r   test_idxmin6  s    z%TestGroupByNonCythonPaths.test_idxminc                 C   sv   t dgtjggdgddgd}d|j_| }t|| t ddgdtjggddgddgd}| }t|| d S )Nr   r   r"   r9   r   r   r   )r   r   r$   r{   ry   Zmadr*   rM   )rq   rQ   r   r/   r.   r   r   r   test_mad@  s    $z"TestGroupByNonCythonPaths.test_madc              
   C   s   t ddgdd}tdgdddd	d
dddg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"   r9   r   rx   r   countrs   stdr   25%50%75%r   r   r]   levelscodesr   r    r   rz   )r   r   rm   ranger   r   r$   describer*   rM   ro   concatr   Zunstackto_frameTr{   )rq   rP   rQ   r   Zexpected_indexZexpected_colr/   r.   r   r   r   test_describeK  s,     z'TestGroupByNonCythonPaths.test_describeN)rF   r   r   r   r   rP   rQ   r   r   filterwarningsr   r   r   r   r   r   r   r   r     s   




	

	r   c                  C   s   t ddtjgdtjdgdddggdddg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#   r^   r9      r   r   r   r7   Fr   r;   )r   r   r$   r%   r   r*   rM   r   )rP   r/   r.   r   r   r   test_cython_api2h  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 )Nr6   r#   r   r5   size      )r   r   rC   rE   r$   valuesrD   rn   rf   r%   rt   r&   nanopsZ	nanmedianr*   rM   )rP   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)rt   r<   r   r   r   r?     r@   z(test_median_empty_bins.<locals>.<lambda>)r   r   rC   rD   r   ro   Zcutr%   rt   r&   r*   rM   )r   rP   ZgrpsZbinsr.   r/   r   r   r   test_median_empty_bins  s    r   r   Zint8Zint16int32r   float32r   Zuint64zmethod,datar   rP   r"   abr#   r9   r   r   r   r   nth)rP   argsr   )rP   out_typec           	      C   s   t ddddddddddddg}|j| |d< d|krHg |d< d|krZ|d }n| }|d	 }t |}|j||d< |jd
dd |d
}t|||d  }t|| d S )Nr"   r   r#   r9   r   r   r   r   rP   r   T)rA   )r   r   rn   rO   r%   rJ   r*   rM   )	r   rr   datarP   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|krg |d< |d	}t|||d  }|jd j|d ksjtqjd S )
Nr"   r   r   r/   )r/   r   r#   )r   r   r   r   r   r   r   r   )r   itemsr%   rJ   ilocr   rI   )r   rP   Zgrp_exprr   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   c                 C   s   t ddddgddddgddd	d
gddddg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|  }t |t
ddgddd}|d |d< |d |d< |d |d< |d |d< |d |d< t|| d S ) Nr   r   r"   r#   r9   r   gGz@g=
ףp=@gRQ @g?Z2019Z2018Z2016Z2017)ry   r   r   r   r   z
US/PacificZ	c_date_tzr   Zc_timedeltaWZc_periodr   r   Z	c_Integerr   r   Z
c_Floatingry   rx   r{   )r   ro   to_datetimedtZtz_localizer   Z	to_periodrn   rJ   r%   r   r*   rM   )funcr   rP   r.   r/   r   r   r   $test_idxmin_idxmax_returns_int_types  s*    




r   c               
   C   s   t tjddddddgd} dd	d
dd	d
dd	d
dg
| 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 5 Q R X d S )N
   r   r   r   r   Dr7   r"   r#   r9   r;   z
2016-01-01r_   Ez7reduction operation 'argmax' not allowed for this dtyper|   )r   r   rC   rE   r%   r   r   r{   Zget_level_valuesr*   r+   Z	droplevelr	   r   raises	TypeError)rP   rQ   r   ZaltZindexerZgb2rT   r   r   r   test_idxmin_idxmax_axis1
  s    

r   c                  C   s   t dgd dd} | dd  }| dd dd }d|_t|| t dgd	 dd} | dd  }| d t| d< | dd d
d }d|_t|| d S )Nr   r   r#   )keyvaluer   r   c                 S   s   |   S r   r   r<   r   r   r   r?   $  r@   z&test_groupby_cumprod.<locals>.<lambda>d   c                 S   s   |   S r   r   r<   r   r   r   r?   -  r@   )	r   r%   r   r)   ry   r*   r+   rn   rf   )rP   actualr/   r   r   r   test_groupby_cumprod  s    r   c                  O   s   ddl m} || ddi|S )Nr   )semZddofr"   )Zscipy.statsr   )r   kwargsr   r   r   r   	scipy_sem2  s    r   z	op,targoprs   rt   r   varr(   r   c                 C   s
   | j d S )Nr   r   r<   r   r   r   r?   C  r@   r?   c                 C   s
   | j d S )Nr   r<   r   r   r   r?   D  r@   r   )Zmarksc                 C   sZ   t tjd}tjjddddt}t|||  }||	|}t
|| d S )Nr6   r   r5   r   )r   r   rC   rE   rD   rn   rf   rJ   r%   r&   r*   rM   )opZtargoprP   r   r.   r/   r   r   r   test_ops_general8  s
    r   c                  C   sd   d} t jt| dgd}|d}|dg  }|d   }t|| |d  	 r`t
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DateZFile)ro   Zread_csvr   r%   r   r   r*   rM   ZisnaanyrI   )rawrP   rQ   rer   r   r   test_max_nan_bugR  s    
r   c                  C   s   t ddddddddd	d
g
} t td}| |}|d}t dddd
dd	gttdddddddggd}t|| t ddddddddddg
} | |}t ddddddgttddddd	ddggd}t|jddd| d S Nr"   r9   r   r\   r#   r^   r   r      r   Z
aaaaabbbbbZaaabbbr]   r   r   )Zkeep)r   rm   r%   nlargestr   from_arraysr*   r+   r   r   rQ   r   r   r   r   r   test_nlargest`  s     


r  c            	      C   sF  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
dddgd	}ddddddddddg
}t||d}tj||d d!d" d S )#Ni[Z20180101r   r_   ZoneZtwor   second)names   r   r"   r   r#   r9   r   r   r   r\   r]   r^   g-r@g-`w?g@f|?gp?g=J-?g],l;?g]f$?gM8r g4Y?g
F;FgMbP?)check_exactZrtol)r   rC   ZRandomStater	   r   Zfrom_productr   rE   r%   r   from_tuplesr*   r+   )	ZnprZdts	iterablesidxr,   r.   Zexp_idxZ
exp_valuesr/   r   r   r   test_nlargest_mi_groupert  sB    r  c                  C   s   t ddddddddd	d
g
} t td}| |}|d}t dddddd	gttddddd	ddggd}t|| t ddddddddddg
} | |}t ddddddgttdddddddggd}t|jddd| d S r   )r   rm   r%   	nsmallestr   r  r*   r+   r  r   r   r   test_nsmallest  s     


r  zdata, groupsrr   r   r  c                 C   s`   |dkrt t| } t| dd}t|||dd}t| t||jgdd}t	|| d S )Nr   r   rx   r#   )nr{   ry   )
rm   reversedr   rJ   r%   r   r  r{   r*   r+   )r   groupsrr   Zserr.   r/   r   r   r   test_nlargest_and_smallest_noop  s    	r  r   r   r   c              	   C   s   t dddgdddgd}|d}d}tjt|d t|| ddd W 5 Q R X tjt|d t|| dd W 5 Q R X d S )	Nr"   r#   r9   r   r   r   z+numpy operations are not valid with groupbyr|   )r   )r   r%   r   r   r   rJ   )r   rP   grT   r   r   r   test_numpy_compat  s    
r  c              
   C   s^  | d }| d }t ddddddddgddddddddgd}ddddddddg}||}t d|i|}|d }t|| |djd	d
  }t|| ||j	ddgdf< |d |j	ddgdf< ||j	ddddgdf< |d |j	ddgdf< |d }tj||dd |djdd
  }tj||dd t
j|j	ddddgdf< t dt
jdt
jdt
jdt
jdgi}|d }t|| |djdd
  }t|| t dgtdgd}ttddgdd}|dd  }t|| t dddgdddgd}|dj }tdddgdd}t|| d S )Nr   r"   r#   r9   r   r  r   r   c                 S   s   |   S r   r   r<   r   r   r   r?     r@   ztest_cummin.<locals>.<lambda>r   r   r\   T)r  c                 S   s   |   S r   r  r<   r   r   r   r?     r@   c                 S   s   |   S r   r  r<   r   r   r   r?     r@   2001r   r   r  r   rx   )r   rn   r%   r   r*   rM   r   r)   r   locr   r$   ro   r   r   r+   r   )r   r   r   base_dfZexpected_minsrP   r/   r.   r   r   r   test_cummin  s@    .
$r  r   r   ZUInt64rf   booleanc              	   C   s   t ddddddddgtjgd d}|d ||d< |d}t dtjgd i|d}t||  }t|| t|d |   }t|| d S )Nr"   r#   r]   r  r   r   r   )	r   r   r$   rn   r%   rJ   r*   rM   r   )rr   r   r  r-   r/   r.   r   r   r   test_cummin_max_all_nan_column  s    &
r  c              
   C   s*  | d }| d }t ddddddddgddddddddgd}ddddddddg}||}t d|i|}|d }t|| |djd	d
  }t|| ||j	ddgdf< ||j	ddddgdf< |d }t|| |djdd
  }t|| t
j|j	ddddgdf< t dt
jdt
jdt
jdt
jdgi}|d }t|| |djdd
  }t|| t dgtdgd}ttddgdd}|dd  }t|| t dddgdddgd}|dj }tdddgdd}t|| d S )Nr   r#   r"   r9   r   r  r   r   c                 S   s   |   S r   r   r<   r   r   r   r?      r@   ztest_cummax.<locals>.<lambda>r   r\   c                 S   s   |   S r   r  r<   r   r   r   r?   (  r@   c                 S   s   |   S r   r  r<   r   r   r   r?   0  r@   r  r   r   r  r   rx   )r   rn   r%   r   r*   rM   r   r)   r   r  r   r$   ro   r   r   r+   r   )r   r   r   r  Zexpected_maxsrP   r/   r.   r   r   r   test_cummax  s<    .
$r  zgroups,expected_datac                 C   sV   t dtdd dg|di}||d }t|| dd}t||dd}t|| d S )Nr   r"   r#   r  FZskipna)r   ry   )r   r   r%   rJ   r*   r+   )rr   r   r  Zexpected_datarP   rQ   r.   r/   r   r   r   test_cummin_max_skipnaA  s
    r!  c                 C   st   t tjddgdddgd}|dddgddg }t|| dd}t tjtjtjgdddgd}t|| d S )Nr    r   r"   r   r   Fr   )r   r   r$   r%   rJ   r*   rM   )rr   rP   rQ   r.   r/   r   r   r   $test_cummin_max_skipna_multiple_colsV  s
     r"  z	dtype,val)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   )ro   NAr   r%   Z	transformr*   rM   )rr   r   valr   rP   r-   r.   r/   r   r   r   #test_nullable_int_not_cast_as_floatb  s    


r&  zin_vals, out_valsr   iTFg @   c                 C   s   ddddddddd	d
dgdddddddddddg| 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11r   r   cdr   r   r   r   abcdrx   r   r{   r   ry   c                 S   s   | j S r   )is_monotonic_increasingr<   r   r   r   r?     r@   z.test_is_monotonic_increasing.<locals>.<lambda>)
r   r%   r   r8  r   rm   r   r*   r+   r)   Zin_valsZout_valsZsource_dictrP   r.   r{   r/   r   r   r   test_is_monotonic_increasingr  s    r:  r   r^   r\   c                 C   s|   ddddddddd	d
dgdddddddddddg| d}t |}|djj}ttddd}t||dd}t|| d S )Nr(  r)  r*  r+  r,  r-  r.  r/  r0  r1  r2  r   r   r3  r4  r5  r   r6  rx   r   r7  )	r   r%   r   Zis_monotonic_decreasingr   rm   r   r*   r+   r9  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   r?     r@   z/test_series_describe_multikey.<locals>.<lambda>c                 S   s   | j S r   monthr<   r   r   r   r?     r@   rs   F)Zcheck_namesr   r   )r*   makeTimeSeriesr%   r   r+   rs   r   r   )tsr-   r.   r   r   r   test_series_describe_multikey  s    rE  c                  C   s@   t  } | dd }|dd }|  }t || d S )Nc                 S   s   | j S r   rA  r<   r   r   r   r?     r@   z-test_series_describe_single.<locals>.<lambda>c                 S   s   |   S r   )r   r<   r   r   r   r?     r@   )r*   rC  r%   r)   r   stackr+   )rD  r-   r.   r/   r   r   r   test_series_describe_single  s
    rG  c                 C   s@   | j d d dgf | d }|dd }|jjdks<td S )Nr   r   c                 S   s   |   S r   )rs   r<   r   r   r   r?     r@   z(test_series_index_name.<locals>.<lambda>)r  r%   r&   r{   ry   rI   )rP   r-   r.   r   r   r   test_series_index_name  s    rH  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 S )
Nc                 S   s   | j S r   r?  r<   r   r   r   r?     r@   z.test_frame_describe_multikey.<locals>.<lambda>c                 S   s   | j S r   rA  r<   r   r   r   r?     r@   r   r   r   r"   r;   )r   r   r   r   )r%   r   r   r8   rG   r   r   r   r{   appendro   r   r*   rM   r   )	Ztsframer-   r.   Zdesc_groupscolrd   Z	group_colr/   ZgroupedTr   r   r   test_frame_describe_multikey  s"    

rK  c               	   C   s   t dddddgd dddd	d
gd dddddgd d} dddgd | d< | jddid}d}tjt|d | d  W 5 Q R X tjt|d |d  W 5 Q R X d S )Nr"   r#   r9   r   r   r   r     (   r5   r      i,  i  r   )r=   yz)r   r   r"   )r   r"   r   )r"   r   r   kr   r7   z*Names should be list-like for a MultiIndexr|   )r   renamer   r   
ValueErrorr%   r   )Zdf1Zdf2rT   r   r   r   test_frame_describe_tupleindex  s    rT  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ddddddddgd}t	
|| d S )Nz2011-01-06 10:59:05rw   ia  z2011-01-06 12:43:33ic  z2011-01-06 12:54:09i /hYl    rT i )PRICEVOLUMErU  rx   r   rs   r   r   r   r   r   r   rz   )r   r   r%   rV  r   rU  r   tolistr   r*   rM   )ZpricesZvolumesrP   r.   r   r/   r   r   r   $test_frame_describe_unstacked_format   s2    
 
 
 
 
 
 rX  zZignore:indexing past lexsort depth may impact performance:pandas.errors.PerformanceWarningr   c                 C   s   t ddddddgddddddgd	d
ddddgddddgdd}t ddddddddddddd d!d"d#ddddd d!d"d#g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 )*Nc   X   r"   r#   r9   r   r   r   r   r  rL  rM  r5   <   r   r   r3  r   r   F)r8   copy)r   r   r!   r!   )r   rs         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   rs   rX   r    )r   r   r   r   )r   r   rW   r   )r   r   ru   rv   )r   r   rX   r    )r   r   g      @g      @)r   r   rY   r!   r   rx   )r8   r=  T)rB   r   )r   Zfrom_recordsrO   r   r8   r  r   r{   rB   rN   r%   r   r*   rM   )r   rP   r/   r.   r   r   r   0test_describe_with_duplicate_output_column_names  sZ     r`  c                  C   sD   t dddddgdddddgd} | dd	  d d
ks@td S )Nr   ij  i  io  i`  l    @~ )userconnectionsra  rb  l    ,fL )r   r%   rs   rI   )rP   r   r   r   test_groupby_mean_no_overflowY  s    rc  r   functionc                 C   s   |dkrdnd}t j|gd td}tdddg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      ?rv   r9   r  r"   r#   r   r   ry   r   r   r   r   )r   arrayrf   r   r   rn   r%   rJ   r*   rM   r&   r   r  r8   )r   rd  outputZarrr
  r/   r  r.   r   r   r   ,test_apply_to_nullable_integer_returns_floatd  s    
rh  c                  C   s   t dddgdddgdddgddd} | d}tdddg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 )Nr   r"   r#   r\  r   r  r   re  r   Z	min_countr9   )r   r{   ry   )r   r3  )r   r{   )
r   r%   r   r(   r   ro   r$  r*   r+   rM   )rP   r-   r
  r.   r/   r   r   r   0test_groupby_sum_below_mincount_nullable_integer  s    &
$rj  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catrl  rk  r   rx   )ry   r{   )
r   ro   Zto_timedeltar   r%   rs   r   r   r*   r+   )rP   r.   r/   r   r   r   test_mean_on_timedelta  s       rm  c                  C   s   t ddddg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 )Nr"   r#   Z1dZ2dZ3dr   r9   )daysr   r   rx   r   ri  zm8[ns])r   ry   r{   )r   ro   r~   ZNaTr%   r(   r   r*   rM   r+   r   r{   )rP   Ztd3rQ   r   r/   r   r   r   #test_groupby_sum_timedelta_with_nat  s    

 ro  )[r'   ior   Znumpyr   r   Zpandas.errorsr   Zpandasro   r   r   r   r   r   r	   Zpandas._testingZ_testingr*   Zpandas.core.nanopscorer   Zpandas.utilr
   tdr   r   r   r   r   r   r0   r   r   r   r   r(   rU   rV   r   r   r   r   r   r   r   r   r   r   r   rs   rt   r   r   r   r   r   Zskip_if_no_scipyr   r   r  r  r  r  r  r  r  r  r!  r"  Zskip_if_32bitr   r&  infr$   r:  r<  r>  rE  rG  rH  rK  rT  rX  r`  rc  r$  rh  rj  rm  ro  r   r   r   r   <module>   sD   
& -S 





	-"
0.
 $$
$

$,
$

	9 

