3
UdlF                 @   sH   d dl Zd dlZd dlZd dlmZmZmZ d dlj	Z
G dd dZdS )    N)	DataFrameSeries	Timestampc            	   @   s  e Zd Zejjdejejej	j
ddgejej	j
ddgdejddgd	d
gejejddddgddejdgd	d
ggdd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 ZdS )1TestDataFrameQuantilezdf,expected            )r   r   g      ?g      @g      ?)nameg        Ng      ?g       @zSparse[float])dtypec             C   s   |j  }tj|| d S )N)quantiletmassert_series_equal)selfdfexpectedresult r   \/var/www/html/virt/lib64/python3.6/site-packages/pandas/tests/frame/methods/test_quantile.pytest_quantile_sparse
   s    z*TestDataFrameQuantile.test_quantile_sparsec       	      C   s  ddl m} |}|jddd}|d ||d dks8ttj|j|j |jddd}|d	 ||jd	 d
ksrttj|j|j t	g g djddd}t
j|d rt
j|d stt	ddddgddddgd}|jd}|j jd}tj|| t	dddgdddgddddgd}|jddd}tdddgdddgdd}tj|| |jddgdd}t	ddgddgddgdddgd}tj||dd  t	dddgd!d"dgg}|jddd}td#d$gddgdd}tj|| d S )%Nr   )
percentileg?)axisA
   g?r   z
2000-01-17Z   )xyr   r   Br   r   r	   )Zcol1Zcol2g      ?)r   r   )indexg      ?g      @g      @)r   r
   g      ?g      ?g      @g      @)r   r   r   T)Zcheck_index_typeabg      @g      @)numpyr   r   AssertionErrorr   Zassert_index_equalr   columnslocr   npisnanZmedianrenamer   r   assert_frame_equal)	r   datetime_framer   r   qrsZxpr   r   r   r   r   test_quantile#   s4     
$"z#TestDataFrameQuantile.test_quantilec             C   sR   t jdddd}t j|}t j|}|jdd}t jdgdd	d
}tj|| d S )Nz
2016-01-01r   z
US/Pacific)periodstzF)numeric_onlyz2016-01-02 00:00:00g      ?zdatetime64[ns, US/Pacific])r
   r   )pd
date_ranger   r   r   r   r   )r   ZdtiZserr   r   r   r   r   r   test_quantile_date_rangeM   s    

z.TestDataFrameQuantile.test_quantile_date_rangec             C   s   t dddgdddgtjdddd	d
dgd}|jddd}tdddgdd}tj|| d}tjt	|d |jdddd W d Q R X d S )Nr   r   r   g       @g      @g      @Z20130101)r-   ZfoobarZbaz)r   r   CDg      ?)r   g      ?g      @g      @)r
   z>'<' not supported between instances of 'Timestamp' and 'float')matchF)r   r/   )
r   r0   r1   r   r   r   r   pytestraises	TypeError)r   r   r   r   msgr   r   r   test_quantile_axis_mixed[   s    z.TestDataFrameQuantile.test_quantile_axis_mixedc             C   s  t dddgdddgddddgd}|jddd	}td
dgddgdd}tj|| |jddd	}tj|| |jddd	}tdddgdddgdd}tj|| |jddd	}tj|| d}tjt|d |jddd	 W d Q R X d}tjt|d |jddd	 W d Q R X d S )Nr   r   r   r	   )r   r   )r   g      ?r   )r   g       @g      @r   r   )r   r
   r   g      ?g      @g      @r#   z*No axis named -1 for object type DataFrame)r6   g?z.No axis named column for object type DataFramecolumn)r   r   r   r   r   r7   r8   
ValueError)r   r   r   r   r:   r   r   r   test_quantile_axis_parametero   s"    $z2TestDataFrameQuantile.test_quantile_axis_parameterc             C   sB  t dddgdddgddddgd}|jdddd	}tdddgdddgdd
}tj|| tjtjdddgdddggdddd	}t|dddgddd}tj|| t dddgdddgddddgd}|jdddd	}tdddgdddgdd
}tj|| tjtjdddgdddggdddd	}t|dddgddd}tj|| |jddgddd	}t ddgddgddgdddgd}tj|| t g g d}|jdddd	}tj	|d rtj	|d st
t dddgdddgdddggdddgd}|jddgd d!}t d"d"d"gdddggddgdddgd#}tj|| d S )$Nr   r   r   r	   )r   r   )r   g      ?Znearest)r   interpolation)r   r
   r   int64)r   r
   r   g      ?g       @g      @g      @float64g      ?lower)r   r   r   )r   r   g?Zhigherr   r   r   r    c)r#   g      ?Zmidpoint)r@   g      ?)r   r#   )r   r   r   r   r   r%   r   arrayr(   r&   r"   )r   r   r   r   expr*   r   r   r   test_quantile_interpolation   sB    $$$"$*z1TestDataFrameQuantile.test_quantile_interpolationc             C   s4   |}|j dddd}|d tj|d dks0td S )Ng?r   linear)r   r@   r   r   )r   r%   r   r"   )r   r)   r   r*   r   r   r   $test_quantile_interpolation_datetime   s    z:TestDataFrameQuantile.test_quantile_interpolation_datetimec             C   sf   |}|j d}|d tj|d dks*t|j dddd}|d tj|d dksVttj|| d S )Ng?r   r   r   rH   )r   r@   )r   r%   r   r"   r   r   )r   Z	int_framer   r*   Zq1r   r   r   test_quantile_interpolation_int   s    
z5TestDataFrameQuantile.test_quantile_interpolation_intc             C   s   t dddgdddgdddggdddgd}|jdd	g}t d
d
d
gdddggdd	gdddgd}tj|| |jdd	gdd}t d
d
d
gdddggdd	gdddgd}t g g djddgdd}t tjtjgtjtjgdddgd}tj|| d S )Nr   r   r   r   r    rD   )r#   g      ?g      ?g      ?g       @)r   r#   )r   r   )r   r   g?g?)r   )r   r   r   r(   r%   nan)r   r   r   r   r   r   r   test_quantile_multi   s    *&$z)TestDataFrameQuantile.test_quantile_multic             C   sD  t tjddgddgd}|jd}tdgdgd	}|jdd
d}ttddgddgdd}tj|| |jdgd
d}t tddggdgddgd}tj|| tjddg|d< |ddg jddd
d}ttdtdgddgdd}tj|| |ddg jdgdd
d}t tdtdggdgddgd}tj|| d S )NZ2010Z2011r      )r   r    g      ?g      @r    )r   F)r/   z2010-07-02 12:00:00r   )r   r
   )r   r#   Z2012rD   r   )r   r/   z2011-07-02 12:00:00)	r   r0   to_datetimer   r   r   r   r   r(   )r   r   r   r   r   r   r   test_quantile_datetime   s0    
z,TestDataFrameQuantile.test_quantile_datetimec          
   C   sJ   d}x@ddddgddggD ](}t jt|d |j| W d Q R X qW d S )Nz2percentiles should all be in the interval \[0, 1\]r   r   g      ?)r6   r=   r=   )r7   r8   r>   r   )r   r)   r:   invalidr   r   r   test_quantile_invalid  s    z+TestDataFrameQuantile.test_quantile_invalidc             C   s  t tjdtjdtjdgtjdddtjdddtjdddgtjdtjdtjdgd	}|jd
dd}tjtjdtjdddtjdgd
dddgd}tj|| |jd
gdd}tj tjdtjdddtjdggd
gdddgd}tj|| t tjdtj	tjdtjdgtjdtjdtj	tjdgtjdddtj	tjdddtjdddgtjdddtjdddtj	tjdddgtjdtjdtjdtj	gtj	tjdtjdtjdgdt
dd}|jd
dd}tjtjdtjdtjdddtjdddtjdtjdgd
t
dd}tj|| |jd
gdd}tj tjdtjdtjdddtjdddtjdtjdggd
gt
dd}tj|| d S )Nz
2011-01-01z
2011-01-02z
2011-01-03z
US/Eastern)r.   z1 daysz2 daysz3 days)r   r   r4   g      ?F)r/   r   r   r4   )r
   r   )r   r#   )r   r   r   r    r4   rD   ZAaBbCc)r#   )r   r0   r   Z	Timedeltar   r   r   r   r(   NaTlist)r   r   resrF   r   r   r   test_quantile_box  s    




z'TestDataFrameQuantile.test_quantile_boxc             C   sp  t tjddtjddd}tj|jd< |jd}tddgddgdd	}tj|| |jdd
g}t ddgddgddd
gd}tj	|| |jddd}ttjdddd}tj|| |jdd
gdd}t tjddgd dd
gd}tj	|| tj|d< |jd}tdtjgddgdd	}tj|| |jdd
g}t ddgtjtjgddd
gd}tj	|| d S )Nr   g      @)r   r    g      ?g      @g      @r   r    )r   r
   g      ?g      @g      
@)r   )r   g      ?)r
   r   r=   )r=   r   )
r   r%   ZarangerK   Zilocr   r   r   r   r(   )r   r   rT   rF   r   r   r   test_quantile_nan  s*    


"z'TestDataFrameQuantile.test_quantile_nanc             C   s$  t dtjtjtjgi}|jddd}ttjgdgdd}tj|| |jdgdd}t dtjgidgd}tj|| t tjdtjdtjd	gtjtjtjgd
}|jddd}ttjdtjgddgdd}tj|| |jdgdd}t tjdtjggdgddgd}tj|| d S )Nr   g      ?F)r/   )r   r
   )r   z
2012-01-01z
2012-01-02z
2012-01-03)r   r    r    )r   r#   )	r   r0   rR   r   r   r   r   r(   r   )r   r   rT   rF   r   r   r   test_quantile_nat  s&    
 z'TestDataFrameQuantile.test_quantile_natc             C   s   t ddgdd}|jd}ttjtjgddgdd}tj|| |jdg}t tjtjggddgdgd}tj|| t ddgdd}t ddgd	d}d S )
Nr   r    rB   )r#   r   g      ?)r   r
   )r#   r   rA   zdatetime64[ns])r   r   r   r%   rK   r   r   r(   )r   r   rT   rF   r   r   r   test_quantile_empty_no_rows  s    
z1TestDataFrameQuantile.test_quantile_empty_no_rowsc             C   s   t jt jddd}d|j_|jd}t jg g dtjd}d|j	_t
j|| |jdg}t jg dgg d}d|j_t
j|| d S )Nz1/1/18rM   )r-   zcaptain tightpantsg      ?)r   r
   r   )r   r#   )r0   r   r1   r#   r
   r   r   r%   rB   r   r   r   r(   )r   r   r   r   r   r   r   test_quantile_empty_no_columns  s    
z4TestDataFrameQuantile.test_quantile_empty_no_columns)__name__
__module____qualname__r7   markZparametrizer0   r   r   ZarraysZSparseArrayr   r,   r2   r;   r?   rG   rI   rJ   rL   rO   rQ   rU   rV   rW   rX   rY   r   r   r   r   r   	   s.   *6,{!#r   )r!   r%   r7   Zpandasr0   r   r   r   Zpandas._testingZ_testingr   r   r   r   r   r   <module>   s
   
