a
    Pf\                      @   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                   @   sp  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g ddfg ddfgdd  Zd!d" Zd#d$ Zd%d& Zej	
d'eed(gd)d* Zd+d, Zd-d. Zd/S )0TestSeriesQuantilec           
   	   C   s  | d}|t| dks"J | d}|t| dksDJ t|td d}|t| dksnJ |j }| d}|tdksJ |	 }| d}|t
d	ksJ ttd
g }|t
dksJ d}ddddgddgfD ]>}tjt|d | | W d    q1 s(0    Y  qttjdd}g d}	tjt|d | |	 W d    n1 s0    Y  d S )N皙?
   ?Z   dtype皙?2000-01-10 19:12:00      ?z24:00:00NaTr   z2percentiles should all be in the interval \[0, 1\]         ?)matchd   )g      r   g      ?)quantilenp
percentiledropnar   objectindex	to_seriesr   diffpdZto_timedeltaZtimedelta64sum	TimedeltapytestZraises
ValueErrorrandomZdefault_rngZstandard_normal)
selfdatetime_seriesqdtsZtdsresultmsginvalidsZpercentile_array r,   b/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pandas/tests/series/methods/test_quantile.pytest_quantile   s,    




,z TestSeriesQuantile.test_quantilec                 C   s   |j ||_ 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
| 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   zM8[])r   r0   r   r   float64)r0   r   r   )r   Zas_unitr   r   r   r   r   r0   tmassert_series_equalr   r   r   float)r$   r%   unitqsr(   expectedr'   r,   r,   r-   test_quantile_multi3   s4    




z&TestSeriesQuantile.test_quantile_multic                 C   sX   |j ddd}|t| dks&J | d}|t| dksHJ ||ksTJ d S )Nr   Zlinearinterpolationr   )r   r   r   r   )r$   r%   r&   q1r,   r,   r-   test_quantile_interpolationR   s
    
z.TestSeriesQuantile.test_quantile_interpolationc                 C   s   t g djddd}|ttg ddks4J t|s@J t g djddd}|ttg ddkstJ t|sJ d S )N)         r   lowerr:   2   Zhigher)r   r   r   r   arrayr   )r$   r&   r,   r,   r-   !test_quantile_interpolation_dtype^   s    z4TestSeriesQuantile.test_quantile_interpolation_dtypec                 C   s   t ddddtjg}|d}d}||ks.J t g td}|t tjtjgg}|D ]p}|d}t|snJ |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   isnanr3   r4   )r$   serr(   r8   s1Zcasesresr,   r,   r-   test_quantile_nanj   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&J |dg}t |d gdgdd}t|| d S )NXXX)r0   r   r>   r/   )r   r   r3   r4   )r$   rL   rH   rJ   expr,   r,   r-   test_quantile_box   s    $
z$TestSeriesQuantile.test_quantile_boxc                 C   s<   t tg dddsJ t tg ddds8J d S )NzM8[ns]r   r   zm8[ns])r   Zisnar   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u s$J t tjtjgdg}t|t tjgdgd d S )Nr   rE   )r   r   r   r   r3   r4   )r$   rJ   r,   r,   r-   test_quantile_nat   s    z$TestSeriesQuantile.test_quantile_natzvalues, dtype)r   r   r   r>   r   r?   zSparse[int])g        Ng      ?g       @Sparse[float]c                 C   sD   t ||d}|dg}t t|dgd}t|| d S )Nr   r   rS   )r   r   r   Zasarrayastyper3   r4   )r$   valuesr   rH   r(   r8   r,   r,   r-   test_quantile_sparse   s    z'TestSeriesQuantile.test_quantile_sparsec                 C   sR   t g dd}|d}t|s$J |dg}t tjgdgd}t|| d S )Nr2   r   r   rE   r   r   r   rG   rF   r3   r4   r$   rH   rJ   rO   r,   r,   r-   test_quantile_empty_float64   s    
z.TestSeriesQuantile.test_quantile_empty_float64c                 C   sR   t g dd}|d}t|s$J |dg}t tjgdgd}t|| d S )NZint64r   r   rE   rW   rX   r,   r,   r-   test_quantile_empty_int64   s    
z,TestSeriesQuantile.test_quantile_empty_int64c                 C   sV   t g dd}|d}|tju s$J |dg}t tjgdg|jd}t|| d S )Nzdatetime64[ns]r   r   )r   r   )r   r   r   r   r   r3   r4   rX   r,   r,   r-   test_quantile_empty_dt64   s    
z+TestSeriesQuantile.test_quantile_empty_dt64r   Int64c                 C   sb   t g d|dtddd}t tdddtdddd}|d	krR|d
}t|| d S )N)r>   r   r?   r   r   r>   r   r?   r   rE   r\   ZFloat64)r   r   r   ZarangerT   r3   r4   )r$   r   r(   r8   r,   r,   r-   test_quantile_dtypes   s
      
z'TestSeriesQuantile.test_quantile_dtypesc                 C   sv   t tjtjg|d}td  |ddg}W d    n1 sB0    Y  t tjtjg|ddgd}t|| d S )Nr   r   r   r   r   )r   r   NAr3   Zassert_produces_warningr   r4   r$   Zany_int_ea_dtyperH   r(   r8   r,   r,   r-   test_quantile_all_na   s
    ,z'TestSeriesQuantile.test_quantile_all_nac                 C   sJ   t tjtjdg|d}|ddg}t ddg|ddgd}t|| d S )Nr>   r   r   r   r^   )r   r   r_   r   r3   r4   r`   r,   r,   r-   test_quantile_dtype_size   s    z+TestSeriesQuantile.test_quantile_dtype_sizeN)__name__
__module____qualname__r.   r9   r=   rD   rK   r!   markZparametrizer   r   r    r   rP   rQ   rR   rV   rY   rZ   r[   intr5   r]   ra   rb   r,   r,   r,   r-   r      s`   #





#
	

r   )numpyr   r!   Zpandas.core.dtypes.commonr   Zpandasr   r   r   Zpandas._testingZ_testingr3   Zpandas.core.indexes.datetimesr   r   r,   r,   r,   r-   <module>   s   