o
    Û­j\   ã                   @   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s"J ‚t|td�  d¡}|t | ¡ d¡ks7J ‚|j ¡ }|  d¡}|tdƒksIJ ‚| 	¡ }|  d¡}|t
 d	¡ks[J ‚tt d
¡gƒ ¡ }|t
 d¡ksnJ ‚d}ddddgddgfD ]}tjt|d�� |  |¡ W d   ƒ n1 s“w   Y  qzttj d¡ d¡ƒ}g d¢}	tjt|d�� |  |	¡ W d   ƒ d S 1 sÀw   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\]éÿÿÿÿé   ç      à?)Úmatchéd   )g      à¿r   g      ø?)ÚquantileÚnpÚ
percentileÚdropnar   ÚobjectÚindexÚ	to_seriesr   ÚdiffÚpdÚto_timedeltaÚtimedelta64ÚsumÚ	TimedeltaÚpytestÚraisesÚ
ValueErrorÚrandomÚdefault_rngÚstandard_normal)
ÚselfÚdatetime_seriesÚqÚdtsÚtdsÚresultÚmsgÚinvalidÚsÚpercentile_array© r3   úf/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/series/methods/test_quantile.pyÚtest_quantile   s2   




ÿ€"ÿ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   ÚnameÚxxx)r   r   r   r   zM8[ú])r   r7   r   r   Úfloat64)r7   r   r   )r   Úas_unitr   r   r   r   r   r7   ÚtmÚassert_series_equalr   r   r   Úfloat)r)   r*   ÚunitÚqsr.   Úexpectedr,   r3   r3   r4   Útest_quantile_multi3   s4   
þú


ü
ÿz&TestSeriesQuantile.test_quantile_multic                 C   sX   |j ddd�}|t | ¡ d¡ksJ ‚|  d¡}|t | ¡ d¡ks$J ‚||ks*J ‚d S )Nr   Úlinear©Úinterpolationr   )r   r   r   r   )r)   r*   r+   Úq1r3   r3   r4   Útest_quantile_interpolationR   s
   
z.TestSeriesQuantile.test_quantile_interpolationc                 C   s„   t g d¢ƒjddd�}|t t g d¢¡d¡ksJ ‚t|ƒs J ‚t g d¢ƒjddd�}|t t g d¢¡d¡ks:J ‚t|ƒs@J ‚d S )N)é   é   é   r   ÚlowerrD   é2   Úhigher)r   r   r   r   Úarrayr   )r)   r+   r3   r3   r4   Ú!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 ]8}| d¡}t |¡s7J ‚| dg¡}t |t tjgdgd�¡ | d	d
g¡}t |t tjtjgd	d
gd�¡ q)d S )NrH   r   rI   rJ   r   g      @r   ©r   r   g333333Ó?)r   r   Únanr   r   Úisnanr<   r=   )r)   Úserr.   rA   Ús1ÚcasesÚresr3   r3   r4   Ú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)r7   r   rH   r6   )r   r   r<   r=   )r)   rX   rS   rV   Úexpr3   r3   r4   Ú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¡¡sJ ‚d S )NzM8[ns]r   r   zm8[ns])r   Úisnar   r   )r)   r3   r3   r4   Ú!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   rP   )r   r   r   r   r<   r=   )r)   rV   r3   r3   r4   Útest_quantile_nat°   s   z$TestSeriesQuantile.test_quantile_natzvalues, dtype)r   r   r   rH   r   rI   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   r`   )r   r   r   ÚasarrayÚastyper<   r=   )r)   Úvaluesr   rS   r.   rA   r3   r3   r4   Útest_quantile_sparse·   s   z'TestSeriesQuantile.test_quantile_sparsec                 C   óR   t g dd�}| d¡}t |¡sJ ‚| dg¡}t tjgdgd�}t ||¡ d S )Nr:   r   r   rP   ©r   r   r   rR   rQ   r<   r=   ©r)   rS   rV   r[   r3   r3   r4   Útest_quantile_empty_float64Á   ó   
z.TestSeriesQuantile.test_quantile_empty_float64c                 C   re   )NÚint64r   r   rP   rf   rg   r3   r3   r4   Útest_quantile_empty_int64Ì   ri   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   r<   r=   rg   r3   r3   r4   Ú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r)| d
¡}t ||¡ d S )N)rH   r   rI   r   r   rH   r   rI   r   rP   rm   ÚFloat64)r   r   r   Úarangerb   r<   r=   )r)   r   r.   rA   r3   r3   r4   Ú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 s!w   Y  t tjtjg|ddgd�}t ||¡ d S )Nr   r   r   ©r   r   )r   r   ÚNAr<   Úassert_produces_warningr   r=   ©r)   Úany_int_ea_dtyperS   r.   rA   r3   r3   r4   Ú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 )NrH   r   r   r   rq   )r   r   rr   r   r<   r=   rt   r3   r3   r4   Útest_quantile_dtype_sizeò   s   z+TestSeriesQuantile.test_quantile_dtype_sizeN)Ú__name__Ú
__module__Ú__qualname__r5   rB   rG   rO   rW   r#   ÚmarkÚparametrizer   r   r"   r   r\   r^   r_   rd   rh   rk   rl   Úintr>   rp   rv   rw   r3   r3   r3   r4   r      sb    #ý


ýü


üüçþ
#	þ

r   )Únumpyr   r#   Úpandas.core.dtypes.commonr   Úpandasr   r   r   Úpandas._testingÚ_testingr<   Úpandas.core.indexes.datetimesr   r   r3   r3   r3   r4   Ú<module>   s    