o
    Û­j›  ã                   @   sZ   d dl Zd dlZd dlmZ d dlZd dlmZ d dlm	Z
 d dlmZ G dd„ dƒZdS )é    N)ÚDatetimeTZDtype)ÚNaT)ÚDatetimeArrayc                   @   sà   e Zd Zejg d¢d�dd„ ƒZejdd„ ƒZdd„ Zej 	d	d
dg¡ej 	dddg¡dd„ ƒƒZ
ej 	d	d
dg¡ej 	dddg¡dd„ ƒƒZdd„ Zdd„ Zej d¡dd„ ƒZdd„ Zdd„ Zej 	dddg¡dd„ ƒZd
S ) ÚTestReductions)ÚsÚmsÚusÚns)Úparamsc                 C   s   |j S )N)Úparam)ÚselfÚrequest© r   új/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/arrays/datetimes/test_reductions.pyÚunit   s   zTestReductions.unitc                 C   s6   |}|durt |d�nt d¡}tjg d¢|d�}|S )z;Fixture returning DatetimeArray with parametrized timezonesN©ÚtzúM8[ns])ú
2000-01-03r   r   ú
2000-01-02ú
2000-01-05z
2000-01-04©Údtype)r   Únpr   r   Ú_from_sequence)r   Útz_naive_fixturer   r   Úarrr   r   r   Úarr1d   s   ÷zTestReductions.arr1dc                 C   s¸   |}|  |¡}|j}| ¡ }tjd|d�  |¡}||ksJ ‚|j|jks&J ‚| ¡ }tjd|d�  |¡}||ks:J ‚|j|jksBJ ‚|jdd�}|tu sNJ ‚|jdd�}|tu sZJ ‚d S )Nr   r   r   F©Úskipna)Úas_unitr   ÚminÚpdÚ	Timestampr   Úmaxr   )r   r   r   r   r   ÚresultÚexpectedr   r   r   Útest_min_max#   s   
zTestReductions.test_min_maxr   Nz
US/Centralr   TFc                 C   s^   |d ur	t |d�nt d¡}tjg |d�}|j|d�}|tu s!J ‚|j|d�}|tu s-J ‚d S )Nr   r   r   r   )r   r   r   r   r   r!   r   r$   )r   r   r   r   r   r%   r   r   r   Útest_min_max_empty8   s   z!TestReductions.test_min_max_emptyc                 C   s´   |d ur	t |d�nt d¡}tjg |d�}|j|d�}|tu s!J ‚| dd¡}|jd|d�}t|ƒjtttg|jd�}t	 
||¡ |jd|d�}t|ƒjg |jd�}t	 
||¡ d S )	Nr   r   r   r   r   é   ©Úaxisr   é   )r   r   r   r   r   Úmedianr   ÚreshapeÚtypeÚtmÚassert_equal)r   r   r   r   r   r%   r&   r   r   r   Útest_median_emptyC   s   z TestReductions.test_median_emptyc                 C   st   |}|  ¡ }||d ksJ ‚|j dd�}|tu sJ ‚| ¡ j dd�}||d ks*J ‚|j dd�}||d ks8J ‚d S )Nr   Fr   ©r+   )r-   r   Údropna)r   r   r   r%   r   r   r   Útest_medianT   s   zTestReductions.test_medianc                 C   sv   |}|j dd�|  ¡ ksJ ‚|j ddd�tu sJ ‚d}tjt|d�� |j dd� W d   ƒ d S 1 s4w   Y  d S )Nr   r3   Fr*   z"abs\(axis\) must be less than ndim)Úmatchr,   )r-   r   ÚpytestÚraisesÚ
ValueError)r   r   r   Úmsgr   r   r   Útest_median_axisb   s   "ÿzTestReductions.test_median_axisz/ignore:All-NaN slice encountered:RuntimeWarningc                 C   sÔ   |  dd¡}| ¡ | ¡ ksJ ‚|jdd�tu sJ ‚|jdd�}|}t ||¡ |jddd�}|}t ||¡ |jdd�}t|ƒj| ¡ g|jd�}t ||¡ |jddd�}t|ƒjtg|jd�}t ||¡ d S )	Nr,   éÿÿÿÿFr   r   r3   r*   r   )r.   r-   r   r0   r1   r/   r   r   )r   r   r   r%   r&   r   r   r   Útest_median_2dk   s   zTestReductions.test_median_2dc                 C   s€   |}|d dt jdd�  }| ¡ }||ksJ ‚|jdd�}|tu s$J ‚| ¡ jdd�}||ks2J ‚|jdd�}||ks>J ‚d S )Nr   gš™™™™™Ù?r,   )ÚdaysFr   r3   )r"   Ú	TimedeltaÚmeanr   r4   )r   r   r   r&   r%   r   r   r   Ú	test_mean†   s   zTestReductions.test_meanc                 C   s–   t jdddd�}|j dd¡}|jdd�}|d	 }t ||¡ |jd	d�}|d d …df t jd
d� }t ||¡ |jd d�}| ¡ }||ksIJ ‚d S )Nz
2016-01-01é   z
US/Pacific)Úperiodsr   r)   é   r   r3   r,   é   )Úhours)r"   Ú
date_rangeÚ_datar.   r@   r0   Úassert_datetime_array_equalr?   )r   ÚdtiÚdtar%   r&   r   r   r   Útest_mean_2d—   s   zTestReductions.test_mean_2dc                 C   s˜   |d d… }|j |d�tu sJ ‚| dd¡}|j d|d�}tjtttg|jd�}t ||¡ |j d|d�}|}t ||¡ |j d |d�}|tu sJJ ‚d S )Nr   r   r)   r*   r   r,   )r@   r   r.   r   r   r   r0   rI   )r   r   r   r   Úarr2dr%   r&   r   r   r   Útest_mean_empty§   s   zTestReductions.test_mean_empty)Ú__name__Ú
__module__Ú__qualname__r7   Úfixturer   r   r'   ÚmarkÚparametrizer(   r2   r5   r;   Úfilterwarningsr=   rA   rL   rN   r   r   r   r   r      s(    

	
	
r   )Únumpyr   r7   Úpandas.core.dtypes.dtypesr   Úpandasr"   r   Úpandas._testingÚ_testingr0   Úpandas.core.arraysr   r   r   r   r   r   Ú<module>   s    