U
    *if                     @   s^   d dl Zd dlZd dlmZ d dlZd dlmZmZ d dl	m
Z d dlmZ G dd dZdS )    N)
is_integer)IndexSeries)	Timestampc                   @   s\  e Zd Zdd Zdd Zdd Zdd Zd	d
 Zej	
dedededgedddedddedddgedededgedededejgedddedddedddejgedededejggdd Zdd Zdd Zej	
dddddddgdfd d!d"d#gd$fgd%d& Zd'd( Zej	
d)eed*gd+d, Zd!S )-TestSeriesQuantilec              
   C   s"  | d}|t| dks"t| d}|t| dksDtt|td d}|t| dksnt|j }| d}|t	dkst|
 }| d}|td	kstttd
g }|tdkstd}ddddgddgfD ](}tjt|d | | W 5 Q R X qd S )N皙?
   ?Z   dtype皙?2000-01-10 19:12:00      ?z24:00:00NaTr   z2percentiles should all be in the interval \[0, 1\]         ?)match)quantilenp
percentiledropnaAssertionErrorr   objectindex	to_seriesr   diffpdZto_timedeltaZtimedelta64sum	TimedeltapytestZraises
ValueError)selfdatetime_seriesqdtsZtdsresultmsginvalid r*   \/home/mars/bis/venv/lib/python3.8/site-packages/pandas/tests/series/methods/test_quantile.pytest_quantile   s$    




z TestSeriesQuantile.test_quantilec                 C   s   ddg}| |}tt| dt| dg||jd}t|| |j	 }d|_| d}tt
dt
dgd	d	gdd}t|| | g }tg |jtg td
dd}t|| d S )Nr   r	   r   r
   r   nameZxxx)r   r   r   r   r   float64)r.   r   r   )r   r   r   r   r   r.   tmassert_series_equalr   r   r   r   float)r#   r$   qsr'   expectedr&   r*   r*   r+   test_quantile_multi/   s6    



  
 z&TestSeriesQuantile.test_quantile_multic                 C   sX   |j ddd}|t| dks&t| d}|t| dksHt||ksTtd S )Nr   Zlinearinterpolationr   )r   r   r   r   r   )r#   r$   r%   q1r*   r*   r+   test_quantile_interpolationM   s
    
z.TestSeriesQuantile.test_quantile_interpolationc                 C   s   t dddgjddd}|ttdddgdks8tt|sDtt dddgjddd}|ttdddgdks|tt|std S )	N         r   lowerr6   2   Zhigher)r   r   r   r   arrayr   r   )r#   r%   r*   r*   r+   !test_quantile_interpolation_dtypeY   s      z4TestSeriesQuantile.test_quantile_interpolation_dtypec                 C   s   t ddddtjg}|d}d}||ks.tt g td}|t tjtjgg}|D ]p}|d}t|snt|dg}t|t tjgdgd |d	d
g}t|t tjtjgd	d
gd qRd S )Nr:   r   r;   r<   r   g      @r   r   r   g333333?)	r   r   nanr   r   r   isnanr0   r1   )r#   sr'   r4   s1Zcasesresr*   r*   r+   test_quantile_nane   s    

z$TestSeriesQuantile.test_quantile_nancasez
2011-01-01z
2011-01-02z
2011-01-03z
US/Eastern)tzz1 daysz2 daysz3 daysc                 C   sX   t |dd}|d}||d ks&t|dg}t |d gdgdd}t|| d S )NXXX)r.   r   r:   r-   )r   r   r   r0   r1   )r#   rH   rD   rF   expr*   r*   r+   test_quantile_box{   s    $
z$TestSeriesQuantile.test_quantile_boxc                 C   s<   t tg dddstt tg ddds8td S )NzM8[ns]r   r   zm8[ns])r   Zisnar   r   r   )r#   r*   r*   r+   !test_datetime_timedelta_quantiles   s    z4TestSeriesQuantile.test_datetime_timedelta_quantilesc                 C   sZ   t tjtjgd}|tjks$tt tjtjgdg}t|t tjgdgd d S )Nr   rA   )r   r   r   r   r   r0   r1   )r#   rF   r*   r*   r+   test_quantile_nat   s    z$TestSeriesQuantile.test_quantile_natzvalues, dtyper   r:   r   r;   zSparse[int]g        Ng      ?g       @zSparse[float]c                 C   s>   t ||d}|dg}t t|dg}t|| d S )Nr   r   )r   r   r   Zasarrayr0   r1   )r#   valuesr   Zserr'   r4   r*   r*   r+   test_quantile_sparse   s    z'TestSeriesQuantile.test_quantile_sparsec                 C   s   t g dd}|d}t|s$t|dg}t tjgdgd}t|| t g dd}|d}t|srt|dg}t tjgdgd}t|| t g dd}|d}|tj	kst|dg}t tj	gdgd}t|| d S )Nr/   r   r   rA   Zint64zdatetime64[ns])
r   r   r   rC   r   rB   r0   r1   r   r   )r#   rD   rF   rK   r*   r*   r+   test_quantile_empty   s$    


z&TestSeriesQuantile.test_quantile_emptyr   ZInt64c                 C   sR   t dddg|dtddd}t tdddtdddd}t|| d S )	Nr:   r   r;   r   r   r   r   rA   )r   r   r   Zaranger0   r1   )r#   r   r'   r4   r*   r*   r+   test_quantile_dtypes   s    " z'TestSeriesQuantile.test_quantile_dtypes)__name__
__module____qualname__r,   r5   r9   r@   rG   r!   markZparametrizer   r   r    r   rL   rM   rN   rP   rQ   intr2   rR   r*   r*   r*   r+   r      sX   





#
	"
 r   )numpyr   r!   Zpandas.core.dtypes.commonr   Zpandasr   r   r   Zpandas._testingZ_testingr0   Zpandas.core.indexes.datetimesr   r   r*   r*   r*   r+   <module>   s   