U
    f/e                     @   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 !dcdddegdfdg Z?dhdi Z@ej !djdkdlgej !d!dmdddndogdpdq ZAdrds ZBejCej !djdkdlgej !dtdmeDd(j"fdugdvdw ZEej !dxd,d.dyd/d.d d1dydzd,d,gd{d|d|d{gfd,d}ejFd/d.ejFejF dyd~d,ejF gd{d|d{d|gfd,d.ejGd/d.ejGejGdyejF d,ejGgd|d|d|d|gfgdd ZHej !dxdddd/d1dydd.d d,d,gd{d|d|d{gfejFd,ejF ejFd.dejF dydejF ejF gd{d{d|d{gfd,d.ejGd/d.ejGejGdyejF d,ejGgd|d|d|d|gfgdd ZIdd ZJdd ZKdd ZLdd ZMdd ZNdd ZOdd ZPej -dej !dd{d|gdd ZQdd ZRej !dd,d,d,d.d.d.d/d/d/g	d,e	jSd.d,e	jSd.d,e	jSd.g	d-d,d,d.d.d/d/gd,d.d,d.d,d.gd-gej !ddNdOdQgdd ZTdd ZUd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-tiezk1ph/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                 C   s   t tjdddddgd}tjd|d< |j}|| |}t|j	| d	}d
|j
 d| d}|j
|dfks|t|t||| tt| |tkr|| | }|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))   TF)inplacedropZcheck_dtype)r   r   randomrandintrandn__name__r%   r)   lenZdrop_duplicatesshapeAssertionErrorr*   assert_frame_equalgetattrr(   r&   reset_index	set_indexr+   )r2   r1   dffnamer.   ZngroupsZ
assert_msgr/   r   r   r   test_builtins_applyA   s     rJ   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)rU   tzz1 sr,   )rU   freq)	groupintfloatstringcategory_stringcategory_intdatetime
datetimetz	timedeltarY   rZ   r[   r\   r]   r^   r_   r`   ra   r7   )r   listr   astyper	   pdZtimedelta_rangeselfrH   r   r   r   rH   _   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d t	||dd}W 5 Q R X t
||| |j}| |||| d S )NrZ   r[   r^   rY   g      @rS         @rN   z1.5sZ3s      ?r9   z2013-01-01 12:00:00z2013-01-03 00:00:00rV   rW   )r^   r[   ra   rZ   r_   r`   r"   r#   namer_   r`   ra   indexr8   zDropping invalidF)matchZcheck_stacklevelZnumeric_only)r   r%   r   rd   Z	Timedeltar   r*   assert_produces_warningFutureWarningrE   rD   Zreindex_liker8   _check)rf   rH   rg   expected_columns_numericgbr/   r.   expected_columnsr   r   r   test_averages}   s@    


  zTestNumericOnly.test_averagesr   r   c                 C   s.   t dddddddg}|}| |||| d S )NrZ   r[   r\   r^   r_   r`   ra   r   ru   rf   rH   rg   rx   rv   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 )	NrZ   r[   r\   r]   r^   r_   r`   ra   rz   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 )NrZ   r[   r^   r\   ra   r   rz   )rf   rH   rg   rv   rx   r   r   r   test_sum_cumsum   s    zTestNumericOnly.test_sum_cumsumprodcumprodc                 C   s&   t dddg}|}| |||| d S )NrZ   r[   r^   rz   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 )NrZ   r[   r^   r_   r`   ra   rz   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 )NrY   )r   r   )r   r   zDropping invalid columnsrq   Frr   )	r%   rt   r*   rs   rE   Zassert_index_equalr8   rA   Z_obj_with_exclusions)rf   rH   rg   rx   rv   rw   warnr.   r   r   r   ru      s    
zTestNumericOnly._checkN)r@   
__module____qualname__pytestfixturerH   markparametrizery   r|   r   r   r   r   ru   r   r   r   r   rK   \   s   

)




rK   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$   re   r   r   r   rH     s
    zTestGroupByNonCythonPaths.dfc                 C   s   | d}|S )Nr   r%   )rf   rH   rw   r   r   r   rw     s    
zTestGroupByNonCythonPaths.gbc                 C   s   |j ddd}|S )Nr   Fas_indexr   )rf   rH   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   rp   r   )r   r   r$   rp   rn   idxmaxr*   rD   rf   rw   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$   rp   rn   idxminr*   rD   r   r   r   r   test_idxmin+  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$   rp   rn   Zmadr*   rD   )rf   rw   r   r/   r.   r   r   r   test_mad5  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   rm   r   countrh   stdr   25%50%75%r   r   rR   levelscodesr   r    r   ro   )r   r   rb   ranger   r   r$   describer*   rD   rd   concatr   Zunstackto_frameTrp   )rf   rH   rw   r   Zexpected_indexZexpected_colr/   r.   r   r   r   test_describe@  s,     z'TestGroupByNonCythonPaths.test_describeN)r@   r   r   r   r   rH   rw   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#   rS   r9      r   r   r   r7   Fr   Zaxis)r   r   r$   r%   r   r*   rD   r   )rH   r/   r.   r   r   r   test_cython_api2]  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   r=   r?   r$   valuesr>   rc   r[   r%   ri   r&   nanopsZ	nanmedianr*   rD   )rH   labelsr.   exprsZxpr   r   r   test_cython_mediant  s    r   c                 C   sn   t tjddd}tddd}t|d |}|j|| d }|j|| d	dd }t
j||d	d
 d S )Nr   ,     7   r   )observedc                 S   s   |   S N)ri   xr   r   r   <lambda>      z(test_median_empty_bins.<locals>.<lambda>Fr<   )r   r   r=   r>   r   rd   Zcutr%   ri   r&   r*   rD   )r   rH   ZgrpsZbinsr.   r/   r   r   r   test_median_empty_bins  s    r   r   Zint8Zint16int32r   float32r   Zuint64zmethod,datar}   rH   r"   abr#   r9   r~   r   r   r   nth)rH   argsr   )rH   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   rH   r   T)r:   )r   r   rc   rG   r%   rE   r*   rD   )	r   rg   datarH   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%   rE   ilocr   rC   )r   rH   Zgrp_exprg   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)rn   r   r   r   r   z
US/PacificZ	c_date_tzr   Zc_timedeltaWZc_periodr   r   Z	c_Integerr   r   Z
c_Floatingrn   rm   rp   )r   rd   to_datetimedtZtz_localizer   Z	to_periodrc   rE   r%   r   r*   rD   )funcr   rH   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-01rT   Ez7reduction operation 'argmax' not allowed for this dtyper   )r   r   r=   r?   r%   r   r   rp   Zget_level_valuesr*   r+   Z	droplevelr	   r   raises	TypeError)rH   rw   r   ZaltZindexerZgb2msgr   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)   rn   r*   r+   rc   r[   )rH   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_sem(  s    r   z	op,targoprh   ri   r   varr(   r   c                 C   s
   | j d S )Nr   r   r   r   r   r   r   9  r   r   c                 C   s
   | j d S )Nr   r   r   r   r   r   :  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   r=   r?   r>   rc   r[   rE   r%   r&   r*   rD   )opZtargoprH   r   r.   r/   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`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)rd   Zread_csvr   r%   r   r   r*   rD   ZisnaanyrC   )rawrH   rw   rer   r   r   test_max_nan_bugH  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   rQ   r#   rS   r   r      r   Z
aaaaabbbbbZaaabbbrR   r   r~   )Zkeep)r   rb   r%   nlargestr   from_arraysr*   r+   r   r   rw   r   r   r   r   r   test_nlargestV  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   rT   ZoneZtwor}   second)names   r   r"   r   r#   r9   r   r   r   rQ   rR   rS   g-r@g-`w?g@f|?gp?g=J-?g],l;?g]f$?gM8r g4Y?g
F;FgMbP?)check_exactZrtol)r   r=   ZRandomStater	   r   Zfrom_productr   r?   r%   r   from_tuplesr*   r+   )	ZnprZdts	iterablesidxr,   r.   Zexp_idxZ
exp_valuesr/   r   r   r   test_nlargest_mi_grouperj  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   rb   r%   	nsmallestr   r   r*   r+   r  r   r   r   test_nsmallest  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   rE   )r   rH   gr   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   rQ   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   rp   rn   r   rm   )r   rc   r%   r   r*   rD   r   r)   r   locr   r$   rd   r   r   r+   r   )r   r   r   base_dfZexpected_minsrH   r/   r.   r   r   r   test_cummin  s@    .
$r  rg   r   r   ZUInt64r[   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#   rR   r  r   r   r   )	r   r   r$   rc   r%   rE   r*   rD   r   )rg   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   rQ   c                 S   s   |   S r   r  r   r   r   r   r     r   c                 S   s   |   S r   r  r   r   r   r   r     r   r  r   r   r  r   rm   )r   rc   r%   r   r*   rD   r   r)   r   r  r   r$   rd   r   r   r+   r   )r   r   r   r  Zexpected_maxsrH   r/   r.   r   r   r   test_cummax  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   )rd   NAr   r%   Z	transformr*   rD   )rg   r   valr   rH   r-   r.   r/   r   r   r   #test_nullable_int_not_cast_as_float&  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   abcdrm   r   rp   r   rn   c                 S   s   | j S r   )is_monotonic_increasingr   r   r   r   r   V  r   z.test_is_monotonic_increasing.<locals>.<lambda>)
r   r%   r   r0  r   rb   r   r*   r+   r)   Zin_valsZout_valsZsource_dictrH   r.   rp   r/   r   r   r   test_is_monotonic_increasing6  s    r2  r   rS   rQ   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'  r(  r)  r*  r   r   r+  r,  r-  r   r.  rm   r   r/  )	r   r%   r   Zis_monotonic_decreasingr   rb   r   r*   r+   r1  r   r   r   test_is_monotonic_decreasingZ  s    r4  c                 C   s   | j dd}|  d S )Nr}   )level)r%   r   )Zmframer-   r   r   r   test_apply_describe_bug  s    r6  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   rh   F)Zcheck_namesr   r   )r*   makeTimeSeriesr%   r   r+   rh   r   r   )tsr-   r.   r   r   r   test_series_describe_multikey  s    r=  c                  C   s@   t  } | dd }|dd }|  }t || d S )Nc                 S   s   | j S r   r9  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*   r;  r%   r)   r   stackr+   )r<  r-   r.   r/   r   r   r   test_series_describe_single  s
    r?  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   )rh   r   r   r   r   r     r   z(test_series_index_name.<locals>.<lambda>)r  r%   r&   rp   rn   rC   )rH   r-   r.   r   r   r   test_series_index_name  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 S )
Nc                 S   s   | j S r   r7  r   r   r   r   r     r   z.test_frame_describe_multikey.<locals>.<lambda>c                 S   s   | j S r   r9  r   r   r   r   r     r   r   r   r   r"   r   )r   r   r   r   )r%   r   r   r8   rA   r   r   r   rp   appendrd   r   r*   rD   r   )	Ztsframer-   r.   Zdesc_groupscolrY   Z	group_colr/   ZgroupedTr   r   r   test_frame_describe_multikey  s"    

rC  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df2r   r   r   r   test_frame_describe_tupleindex  s    rL  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:05rl   ia  z2011-01-06 12:43:33ic  z2011-01-06 12:54:09i /hYl    rT i )PRICEVOLUMErM  rm   r   rh   r   r   r   r   r   r   ro   )r   r   r%   rN  r   rM  r   tolistr   r*   rD   )ZpricesZvolumesrH   r.   r   r/   r   r   r   $test_frame_describe_unstacked_format  s2    
 
 
 
 
 
 rP  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  rD  rE  r5   <   r   r   r+  r   r   F)r8   copy)r   r   r!   r!   )r   rh         V@     X@)r   r   r   r   )r   r   rV  rW  )r   r   rV  rW  )r   r   rV  rW  )r   r   rV  rW  )r   r   rV  rW  )r   r   r!   r!   )r   rh   rM   r    )r   r   r   r   )r   r   rL   r   )r   r   rj   rk   )r   r   rM   r    )r   r   g      @g      @)r   r   rN   r!   r   rm   )r8   r5  T)r;   r   )r   Zfrom_recordsrG   r   r8   r  r   rp   r;   rF   r%   r   r*   rD   )r   rH   r/   r.   r   r   r   0test_describe_with_duplicate_output_column_names  sZ     rX  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connectionsrY  rZ  l    ,fL )r   r%   rh   rC   )rH   r   r   r   test_groupby_mean_no_overflow  s    r[  r   functionc                 C   s   |dkrdnd}t j|gd td}tdddgtdd	}td
|i|dd}t| ddd}t|| }t	
|| ||}t	
|| ||g}td
|fg|_t	
|| d S )Nr   g      ?rk   r9   r  r"   r#   r   r   rn   r   r   r   r   )r   arrayr[   r   objectr   rc   r%   rE   r*   rD   r&   r   r  r8   )r   r\  outputZarrr	  r/   groupsr.   r   r   r   ,test_apply_to_nullable_integer_returns_float(  s    
rb  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t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#   rT  r   r  r   r]  r   )Z	min_countr9   )r   rp   rn   )r   r+  )r   rp   )r   r%   r   r_  r(   r   rd   r  r*   r+   rD   )rH   r-   r	  r.   r/   r   r   r   0test_groupby_sum_below_mincount_nullable_integerG  s    &
$rc  )Vr'   ior   Znumpyr   r   Zpandas.errorsr   Zpandasrd   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(   rJ   rK   r   r   r   r   r   r   r   r   r   r   r   rh   ri   r   r   r   r   r   Zskip_if_no_scipyr   r   r  r
  r  r  r  r  r  Zskip_if_32bitr   r  infr$   r2  r4  r6  r=  r?  r@  rC  rL  rP  rX  r[  r  rb  rc  r   r   r   r   <module>   s   
 /S 

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