o
    Û­jú%  ã                   @   sd   d Z ddlZddlZddlZddlZddlmZmZm	Z	 ddl
mZ G dd„ dƒZG dd„ dƒZdS )zP
Tests for statistical reductions of 2nd moment or higher: var, skew, kurt, ...
é    N)Ú	DataFrameÚSeriesÚ
date_rangec                   @   s~   e Zd Zej deejej	g¡dd„ ƒZ
ej deejej	g¡ej dg d¢¡dd„ ƒƒZej deejej	g¡dd	„ ƒZd
S )ÚTestDatetimeLikeStatReductionsÚboxc                 C   s¬   |}t dd|d�}| g d¢¡}|j}||ƒ}| ¡ tjd|d�ks$J ‚|jdd�tjd|d�ks3J ‚tj|d	< ||ƒ}| ¡ tjd
|d�ksIJ ‚|jdd�tju sTJ ‚d S )Nú
2001-01-01é   )ÚperiodsÚtz©é   é   é   é
   é	   é   é   é   r   é   é   z
2001-01-06)r
   F©Úskipnaéþÿÿÿz2001-01-06 07:12:00)r   ÚtakeÚ_dataÚmeanÚpdÚ	TimestampÚNaT)ÚselfÚtz_naive_fixturer   r
   ÚdtiÚdtarrÚobj© r$   úi/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/reductions/test_stat_reductions.pyÚtest_dt64_mean   s   
z-TestDatetimeLikeStatReductions.test_dt64_meanÚfreq)ÚsÚhÚDÚWÚBc                 C   s`  t ddd�}| g d¢¡}|dkrtnd }d}tj||d�� |j |¡}W d   ƒ n1 s/w   Y  ||ƒ}tjt	dd�� | 
¡  W d   ƒ n1 sNw   Y  tjt	dd�� |j
d	d
� W d   ƒ n1 skw   Y  tj|d< tjt	dd�� | 
¡  W d   ƒ n1 s‹w   Y  tjt	dd�� |j
d	d
� W d   ƒ d S 1 s©w   Y  d S )Nr   r   ©r	   r   r,   zPeriodDtype\[B\] is deprecated©ÚmatchÚ	ambiguousTr   r   )r   r   ÚFutureWarningÚtmÚassert_produces_warningr   Ú	to_periodÚpytestÚraisesÚ	TypeErrorr   r   r   )r   r   r'   r!   ÚwarnÚmsgÚparrr#   r$   r$   r%   Útest_period_mean'   s*   ÿ
ÿÿ

ÿ"ÿz/TestDatetimeLikeStatReductions.test_period_meanc           	      C   s¼   t  g d¢d¡}t |¡ d¡}|j}||dd�}| ¡ }t  |¡ ¡ }||ks*J ‚tj|d< |jdd�tju s:J ‚|jdd�}||d	d …  ¡ ksLJ ‚| d
¡|d d  d
¡ks\J ‚d S )N)r   r   r   iùÿÿÿr   r   éÿÿÿÿr   r   r   r   zm8[D]ÚnsF)Úcopyr   r   Tr   Úusg      &@r   )	ÚnpÚarrayr   ÚTimedeltaIndexÚas_unitr   r   r   Úround)	r   r   Úm8valuesÚtdiÚtdarrr#   ÚresultÚexpectedÚresult2r$   r$   r%   Útest_td64_meanA   s   
$z-TestDatetimeLikeStatReductions.test_td64_meanN)Ú__name__Ú
__module__Ú__qualname__r5   ÚmarkÚparametrizer   r   ÚIndexrA   r&   r;   rK   r$   r$   r$   r%   r      s    
r   c                   @   sp   e Zd Z	d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S )ÚTestSeriesStatReductionsFc              	   C   s\  t  dd¡�� tt|ƒ}tj|dd…< |dvrAttddd�ƒ}d	|› d
�}tjt	|d�� ||ƒ W d   ƒ n1 s<w   Y  t  
||ƒ¡sJJ ‚t  ||dd�¡sUJ ‚| ¡ }	t ||	ƒ||	jƒ¡ t ||ƒ||	jƒ¡ |tj }
|rt ||
ƒ¡sJ ‚tg d¢ƒ}||ƒ dg}| tddƒ¡ t|dd�}t t||ƒƒt||jƒƒ¡ |rÂtt jddd�ƒ}||ƒ}||ƒ}||ksÂJ ‚|dvråtjt	d d�� |ttdƒƒƒ W d   ƒ n1 sàw   Y  d}tjt|d�� ||dd� W d   ƒ n1 sÿw   Y  dt |¡jv �r||dd� W d   ƒ d S W d   ƒ d S 1 �s'w   Y  d S )NÚuse_bottleneckFr   é   )ÚmaxÚminr   ÚmedianÚstdz1/1/2001r   r-   zdoes not support reduction 'ú'r.   r   )r   r   r   Nr   r   l        l   è   Úint64©Údtypez1/1/2000)ÚsumrV   rU   Úabcz&No axis named 1 for object type Seriesr   )ÚaxisÚnumeric_onlyT)r`   )r   Úoption_contextÚgetattrr   r@   Únanr   r5   r6   r7   ÚnotnaÚisnaÚdropnar2   Úassert_almost_equalÚvaluesÚisnanÚextendÚrangeÚfloatÚbdate_rangeÚlistÚ
ValueErrorÚinspectÚgetfullargspecÚargs)r   ÚnameÚ	alternateÚstring_series_Úcheck_objectsÚcheck_allnaÚfÚdsr9   ÚnonaÚallnar(   ÚitemsÚresÚexpr$   r$   r%   Ú_check_stat_op\   sR   

ÿ
ÿÿÈ6$Êz'TestSeriesStatReductions._check_stat_opc                 C   ó,   t tdƒtjdd�}| jdtj|dd� d S )Né   Úseries©r\   rs   r]   F)rw   )r   rk   r@   Úfloat64r   r]   ©r   Ústring_seriesr$   r$   r%   Útest_sum™   ó   z!TestSeriesStatReductions.test_sumc                 C   ó(   t tdƒtjdd�}|  dtj|¡ d S )Nr�   r‚   rƒ   r   )r   rk   r@   r„   r   r   r…   r$   r$   r%   Ú	test_mean�   ó   z"TestSeriesStatReductions.test_meanc                 C   sX   t tdƒtjdd�}|  dtj|¡ t tjdtd�tdƒd�}t 	t |¡| ¡ ¡ d S )Nr�   r‚   rƒ   rW   r   r[   )Úindex)
r   rk   r@   r„   r   rW   ÚonesÚintr2   rg   )r   r†   Úint_tsr$   r$   r%   Útest_median¡   s   z$TestSeriesStatReductions.test_medianc                 C   r‰   )Nr�   r‚   rƒ   Úprod)r   rk   r@   r„   r   r‘   r…   r$   r$   r%   Ú	test_prod©   r‹   z"TestSeriesStatReductions.test_prodc                 C   r€   )Nr�   r‚   rƒ   rV   T©rv   )r   rk   r@   r„   r   rV   r…   r$   r$   r%   Útest_min­   rˆ   z!TestSeriesStatReductions.test_minc                 C   r€   )Nr�   r‚   rƒ   rU   Tr“   )r   rk   r@   r„   r   rU   r…   r$   r$   r%   Útest_max±   rˆ   z!TestSeriesStatReductions.test_maxc                 C   sö   t tdƒtjdd�}t tjdtjd�tddd�dd	�}d
d„ }|  d||¡ dd„ }|  d||¡ |jdd�}tj|jdd�}t	 
||¡ |jdd�}tj|jdd�}t	 
||¡ |jdg }|jdd�}t |¡slJ ‚|jdd�}t |¡syJ ‚d S )Nr�   r‚   rƒ   r   r[   ú
2020-01-01r-   Úts©rŒ   rs   c                 S   ó   t j| dd�S ©Nr   ©Úddof)r@   rX   ©Úxr$   r$   r%   Ú<lambda>½   ó    z7TestSeriesStatReductions.test_var_std.<locals>.<lambda>rX   c                 S   r™   rš   )r@   Úvarr�   r$   r$   r%   rŸ   À   r    r¡   r   r›   r   r   )r   rk   r@   r„   Úaranger   r   rX   rh   r2   rg   r¡   Úilocr   re   ©r   r†   Údatetime_seriesÚaltrH   rI   r(   r$   r$   r%   Útest_var_stdµ   s*   
ýz%TestSeriesStatReductions.test_var_stdc                 C   s®   t tdƒtjdd�}t tjdtjd�tddd�dd	�}d
d„ }|  d||¡ |jdd�}tj|j	dd�t 
t|j	ƒ¡ }t ||¡ |jdg }|jdd�}t |¡sUJ ‚d S )Nr�   r‚   rƒ   r   r[   r–   r-   r—   r˜   c                 S   s   t j| dd�t  t| ƒ¡ S rš   )r@   rX   ÚsqrtÚlenr�   r$   r$   r%   rŸ   Û   s    z3TestSeriesStatReductions.test_sem.<locals>.<lambda>Úsemr   r›   r   r   )r   rk   r@   r„   r¢   r   r   rª   rX   rh   r¨   r©   r2   rg   r£   r   re   r¤   r$   r$   r%   Útest_semÓ   s    
ýÿz!TestSeriesStatReductions.test_semc                    sÞ   t  d¡‰ ttdƒtjdd�}‡ fdd„}|  d||¡ d}td	|d	 ƒD ]G}tt |¡ƒ}tt ||f¡ƒ}||k rPt 	| 
¡ ¡sDJ ‚t 	| 
¡ ¡ ¡ sOJ ‚q%d
| 
¡ ksXJ ‚t| 
¡ tjƒsbJ ‚| 
¡ d
k ¡ slJ ‚q%d S )Núscipy.statsr�   r‚   rƒ   c                    ó   ˆ j | dd�S ©NF)Úbias)Úskewr�   ©Úsp_statsr$   r%   rŸ   î   r    z4TestSeriesStatReductions.test_skew.<locals>.<lambda>r°   r   r   r   )r5   Úimportorskipr   rk   r@   r„   r   r�   r   ri   r°   ÚallÚ
isinstance)r   r†   r¦   Úmin_NÚir(   Údfr$   r±   r%   Ú	test_skewé   s   
÷z"TestSeriesStatReductions.test_skewc                    s<   t  d¡‰ ttdƒtjdd�}‡ fdd„}|  d||¡ d S )Nr¬   r�   r‚   rƒ   c                    r­   r®   )Úkurtosisr�   r±   r$   r%   rŸ     r    z4TestSeriesStatReductions.test_kurt.<locals>.<lambda>Úkurt)r5   r³   r   rk   r@   r„   r   )r   r†   r¦   r$   r±   r%   Ú	test_kurtÿ   s   
z"TestSeriesStatReductions.test_kurtc                 C   s¦   d}t d|d ƒD ]G}tt |¡ƒ}tt ||f¡ƒ}||k r4t | ¡ ¡s(J ‚t | ¡ ¡ ¡ s3J ‚q	d| ¡ ks<J ‚t| ¡ tj	ƒsFJ ‚| ¡ dk ¡ sPJ ‚q	d S )Nr   r   r   )
rk   r   r@   r�   r   ri   r»   r´   rµ   r„   )r   r¶   r·   r(   r¸   r$   r$   r%   Útest_kurt_corner  s   ÷z)TestSeriesStatReductions.test_kurt_cornerN)FF)rL   rM   rN   r   r‡   rŠ   r�   r’   r”   r•   r§   r«   r¹   r¼   r½   r$   r$   r$   r%   rR   W   s    
ÿ=rR   )Ú__doc__rp   Únumpyr@   r5   Úpandasr   r   r   r   Úpandas._testingÚ_testingr2   r   rR   r$   r$   r$   r%   Ú<module>   s    E