3
Ud                 @   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	j
Zd dlmZ G dd dZdS )    N)
is_integer)IndexSeries)	Timestampc               @   sX  e Zd Zdd Zdd Zdd Zdd Zd	d
 Zej	j
dejdejdejdgejdddejdddejdddgejdejdejdgejdejdejdejgejdddejdddejdddejgejdejdejdejggdd Zdd Zdd Zej	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d!S ))TestSeriesQuantilec          
   C   s&  |j d}|tj|j dks"t|j d}|tj|j dksDtt|tdj d}|tj|j dksnt|jj }|j d}|t	dkst|j
 }|j d}|tjd	kstttjd
gj }|tjdkstd}x@ddddgddggD ](}tjt|d |j | W d Q R X qW d S )Ng?
   g?Z   )dtypeg?z2000-01-10 19:12:00g      ?z24:00:00NaTr   z2percentiles should all be in the interval \[0, 1\]      g      ?)matchr   )quantilenp
percentiledropnaAssertionErrorr   objectindex	to_seriesr   ZdiffpdZto_timedeltaZtimedelta64sum	TimedeltapytestZraises
ValueError)selfdatetime_seriesqdtsZtdsresultmsginvalid r#   ]/var/www/html/virt/lib64/python3.6/site-packages/pandas/tests/series/methods/test_quantile.pytest_quantile   s$    




z TestSeriesQuantile.test_quantilec             C   s   ddg}|j |}tjtj|j dtj|j dg||jd}tj|| |j	j
 }d|_|j d}ttdtdgddgdd}tj|| |j g }tjg |jtg td	d
d}tj|| d S )Ng?g?r   r   )r   nameZxxx皙?z2000-01-10 19:12:00)r	   float64)r&   r   r	   )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,   s(    




z&TestSeriesQuantile.test_quantile_multic             C   sX   |j ddd}|tj|j dks&t|j d}|tj|j dksHt||ksTtd S )Ng?Zlinear)interpolationr   )r   r   r   r   r   )r   r   r   Zq1r#   r#   r$   test_quantile_interpolationJ   s
    
z.TestSeriesQuantile.test_quantile_interpolationc             C   s   t jdddgjddd}|tjtjdddgdks:tt|sFtt jdddgjddd}|tjtjdddgdkstt|std S )	Nr         g      ?lower)r/   2   Zhigher)r   r   r   r   r   arrayr   r   )r   r   r#   r#   r$   !test_quantile_interpolation_dtypeV   s      z4TestSeriesQuantile.test_quantile_interpolation_dtypec             C   s   t jddddtjg}|jd}d}||ks0ttg td}|ttjtjgg}x||D ]t}|jd}tj|srt|jdg}tj	|t jtjgdgd |jd	d
g}tj	|t jtjtjgd	d
gd qVW d S )Nr   r   r1   r2   g      ?g      @)r	   )r   g?g333333?)
r   r   r   nanr   r   r   isnanr)   r*   )r   sr    r-   s1Zcasesresr#   r#   r$   test_quantile_nanb   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   s\   t j|dd}|jd}||d ks(t|jdg}t j|d gdgdd}tj|| d S )NZXXX)r&   g      ?r   )r   r&   )r   r   r   r   r)   r*   )r   r=   r9   r;   expr#   r#   r$   test_quantile_boxx   s    $
z$TestSeriesQuantile.test_quantile_boxc             C   s<   t jtg ddjdstt jtg ddjds8td S )NzM8[ns])r	   g      ?zm8[ns])r   Zisnar   r   r   )r   r#   r#   r$   !test_datetime_timedelta_quantiles   s    z4TestSeriesQuantile.test_datetime_timedelta_quantilesc             C   s\   t tjtjgjd}|tjks$tt tjtjgjdg}tj|tj tjgdgd d S )Ng      ?)r   )r   r   r
   r   r   r)   r*   )r   r;   r#   r#   r$   test_quantile_nat   s    z$TestSeriesQuantile.test_quantile_natzvalues, dtyper   r   r   r1   zSparse[int]g        Ng      ?g       @zSparse[float]c             C   sB   t j||d}|jdg}t jtj|jdg}tj|| d S )N)r	   g      ?)r   r   r   r   Zasarrayr)   r*   )r   valuesr	   Zserr    r-   r#   r#   r$   test_quantile_sparse   s    z'TestSeriesQuantile.test_quantile_sparsec             C   s   t g dd}|jd}tj|s$t|jdg}t tjgdgd}tj|| t g dd}|jd}tj|srt|jdg}t tjgdgd}tj|| t g dd}|jd}|tj	kst|jdg}t tj	gdgd}tj|| d S )Nr(   )r	   g      ?)r   Zint64zdatetime64[ns])
r   r   r   r8   r   r7   r)   r*   r   r
   )r   r9   r;   r?   r#   r#   r$   test_quantile_empty   s$    


z&TestSeriesQuantile.test_quantile_empty)__name__
__module____qualname__r%   r.   r0   r6   r<   r   markZparametrizer   r   r   r
   r@   rA   rB   rD   rE   r#   r#   r#   r$   r      s@   
.r   )Znumpyr   r   Zpandas.core.dtypes.commonr   Zpandasr   r   r   Zpandas._testingZ_testingr)   Zpandas.core.indexes.datetimesr   r   r#   r#   r#   r$   <module>   s   
