a
    þd×$  ã                   @   st   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 ddl	m
Z ddlmZmZ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)ÚDatetimeArrayÚPeriodArrayÚTimedeltaArrayc                   @   sx   e Zd Zej deeje	g¡dd„ ƒZ
ej deejeg¡ej dg d¢¡dd„ ƒƒZej deejeg¡dd	„ ƒZd
S )ÚTestDatetimeLikeStatReductionsÚboxc                 C   s®   |}t jdd|d}| g d¢¡}|j}||ƒ}| ¡ t jd|dksJJ ‚|jddt jd|dkshJ ‚t j|d	< ||ƒ}| ¡ t jd
|dks”J ‚|jddt ju sªJ ‚d S )Nú
2001-01-01é   )ÚperiodsÚtz©é   é   é   é
   é	   é   é   é   r   é   é   z
2001-01-06)r   F©Zskipnaéþÿÿÿz2001-01-06 07:12:00)ÚpdÚ
date_rangeÚtakeÚ_dataÚmeanÚ	TimestampÚNaT)ÚselfZtz_naive_fixturer   r   ÚdtiZdtarrÚobj© r$   úu/var/www/html/stable-diffusion-webui/venv/lib/python3.9/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   sd  t jddd}| g d¢¡}|dkr(tnd }d}tj||d |j |¡}W d   ƒ n1 s`0    Y  ||ƒ}tj	t
dd | ¡  W d   ƒ n1 sž0    Y  tj	t
dd |jd	d
 W d   ƒ n1 sØ0    Y  t j|d< tj	t
dd | ¡  W d   ƒ n1 s0    Y  tj	t
dd |jd	d
 W d   ƒ n1 sV0    Y  d S )Nr	   r
   ©r   r   r,   zPeriodDtype\[B\] is deprecated©ÚmatchZ	ambiguousTr   r   )r   r   r   ÚFutureWarningÚtmZassert_produces_warningr   Z	to_periodÚpytestÚraisesÚ	TypeErrorr   r    )r!   r   r'   r"   ÚwarnÚmsgZparrr#   r$   r$   r%   Útest_period_mean+   s     *&*
(z/TestDatetimeLikeStatReductions.test_period_meanc                 C   s®   t jg d¢dd}|j}||dd}| ¡ }t |¡ ¡ }||ksFJ ‚t j|d< |jddt ju sfJ ‚|jdd}||d	d …  ¡ ksŠJ ‚| d
¡|d d  d
¡ksªJ ‚d S )N)r   r   r   iùÿÿÿr   r   éÿÿÿÿr   r   r   r   r*   )ÚunitF)Úcopyr   r   Tr   Úusg      &@r   )r   ZTimedeltaIndexr   r   ÚnpÚarrayr    Úround)r!   r   ZtdiZtdarrr#   ÚresultÚexpectedZresult2r$   r$   r%   Útest_td64_meanE   s    
z-TestDatetimeLikeStatReductions.test_td64_meanN)Ú__name__Ú
__module__Ú__qualname__r2   ÚmarkZparametrizer   r   ÚIndexr   r&   r   r7   r   rA   r$   r$   r$   r%   r      s   
r   c                   @   sn   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   sZ  t  dd¡6 tt|ƒ}tj|dd…< |dvr„tt jdddƒ}d	|› d
}tjt	|d ||ƒ W d   ƒ n1 sz0    Y  t  
||ƒ¡s–J ‚t  ||dd¡s¬J ‚| ¡ }	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Î0    Y  d}tjt|d ||dd W d   ƒ n1 s0    Y  dt |¡jv r6||dd W d   ƒ n1 sL0    Y  d S )NZ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©Zdtypez1/1/2000)ÚsumrJ   rI   Úabcz&No axis named 1 for object type Seriesr   )ZaxisÚnumeric_onlyT)rR   )r   Zoption_contextÚgetattrr   r<   Únanr   r2   r3   r4   ZnotnaÚisnaZdropnar1   Úassert_almost_equalÚvaluesÚisnanÚextendÚrangeÚfloatZbdate_rangeÚlistÚ
ValueErrorÚinspectÚgetfullargspecÚargs)r!   ÚnameÚ	alternateZstring_series_Úcheck_objectsÚcheck_allnaÚfZdsr6   ZnonaZallnaÚsÚitemsÚresÚexpr$   r$   r%   Ú_check_stat_op_   sF    
&

0,z'TestSeriesStatReductions._check_stat_opc                 C   s&   t  ¡  d¡}| jdtj|dd d S )NÚseriesrP   F)rd   )r1   ÚmakeStringSeriesÚrenamerj   r<   rP   ©r!   Ústring_seriesr$   r$   r%   Útest_sumœ   s    z!TestSeriesStatReductions.test_sumc                 C   s"   t  ¡  d¡}|  dtj|¡ d S )Nrk   r   )r1   rl   rm   rj   r<   r   rn   r$   r$   r%   Ú	test_mean    s    z"TestSeriesStatReductions.test_meanc                 C   sR   t  ¡  d¡}|  dtj|¡ ttjdtdt	dƒd}t  
t |¡| ¡ ¡ d S )Nrk   rK   r   rO   )Úindex)r1   rl   rm   rj   r<   rK   r   ÚonesÚintrZ   rV   )r!   ro   Zint_tsr$   r$   r%   Útest_median¤   s    z$TestSeriesStatReductions.test_medianc                 C   s"   t  ¡  d¡}|  dtj|¡ d S )Nrk   Úprod)r1   rl   rm   rj   r<   rv   rn   r$   r$   r%   Ú	test_prod¬   s    z"TestSeriesStatReductions.test_prodc                 C   s&   t  ¡  d¡}| jdtj|dd d S )Nrk   rJ   T©rc   )r1   rl   rm   rj   r<   rJ   rn   r$   r$   r%   Útest_min°   s    z!TestSeriesStatReductions.test_minc                 C   s&   t  ¡  d¡}| jdtj|dd d S )Nrk   rI   Trx   )r1   rl   rm   rj   r<   rI   rn   r$   r$   r%   Útest_max´   s    z!TestSeriesStatReductions.test_maxc                 C   sÜ   t  ¡  d¡}t  ¡  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 |¡s¾J ‚|jdd	}t |¡sØJ ‚d S )Nrk   Útsc                 S   s   t j| ddS ©Nr   ©Zddof)r<   rL   ©Úxr$   r$   r%   Ú<lambda>¼   ó    z7TestSeriesStatReductions.test_var_std.<locals>.<lambda>rL   c                 S   s   t j| ddS r|   )r<   Úvarr~   r$   r$   r%   r€   ¿   r   r‚   r   r}   r   r   )r1   rl   rm   ÚmakeTimeSeriesrj   rL   r<   rW   rV   r‚   Úilocr   rU   ©r!   ro   Zdatetime_seriesÚaltr?   r@   rf   r$   r$   r%   Útest_var_std¸   s"    z%TestSeriesStatReductions.test_var_stdc                 C   s”   t  ¡  d¡}t  ¡  d¡}dd„ }|  d||¡ |jdd}tj|jddt 	t
|jƒ¡ }t  ||¡ |jdg }|jd	d}t |¡sJ ‚d S )
Nrk   r{   c                 S   s   t j| ddt  t| ƒ¡ S r|   )r<   rL   ÚsqrtÚlenr~   r$   r$   r%   r€   Ö   r   z3TestSeriesStatReductions.test_sem.<locals>.<lambda>Úsemr   r}   r   r   )r1   rl   rm   rƒ   rj   rŠ   r<   rL   rW   rˆ   r‰   rV   r„   r   rU   r…   r$   r$   r%   Útest_semÒ   s    ÿz!TestSeriesStatReductions.test_semc                    sØ   t  d¡‰ t ¡  d¡}‡ fdd„}|  d||¡ d}td|d ƒD ]Ž}tt 	|¡ƒ}t
t 	||f¡ƒ}||k ršt | ¡ ¡s‚J ‚t | ¡ ¡ ¡ sÒJ ‚qDd| ¡ ksªJ ‚t| ¡ tjƒs¾J ‚| ¡ dk ¡ sDJ ‚qDd S )	Núscipy.statsrk   c                    s   ˆ j | ddS ©NF)Zbias)Úskewr~   ©Zsp_statsr$   r%   r€   é   r   z4TestSeriesStatReductions.test_skew.<locals>.<lambda>rŽ   r   r   r   )r2   Úimportorskipr1   rl   rm   rj   rZ   r   r<   rs   r   rX   rŽ   ÚallÚ
isinstanceÚfloat64)r!   ro   r†   Úmin_NÚirf   Údfr$   r   r%   Ú	test_skewä   s    
z"TestSeriesStatReductions.test_skewc                    s6   t  d¡‰ t ¡  d¡}‡ fdd„}|  d||¡ d S )NrŒ   rk   c                    s   ˆ j | ddS r   )Zkurtosisr~   r   r$   r%   r€   ÿ   r   z4TestSeriesStatReductions.test_kurt.<locals>.<lambda>Úkurt)r2   r   r1   rl   rm   rj   )r!   ro   r†   r$   r   r%   Ú	test_kurtú   s    
z"TestSeriesStatReductions.test_kurtc                 C   s¦   d}t d|d ƒD ]Ž}tt |¡ƒ}tt ||f¡ƒ}||k rht | ¡ ¡sPJ ‚t | ¡ ¡ ¡ s J ‚qd| ¡ ksxJ ‚t| ¡ tj	ƒsŒJ ‚| ¡ dk ¡ sJ ‚qd S )Nr   r   r   )
rZ   r   r<   rs   r   rX   r˜   r‘   r’   r“   )r!   r”   r•   rf   r–   r$   r$   r%   Útest_kurt_corner  s    z)TestSeriesStatReductions.test_kurt_cornerN)FF)rB   rC   rD   rj   rp   rq   ru   rw   ry   rz   r‡   r‹   r—   r™   rš   r$   r$   r$   r%   rG   Z   s    ÿ
=rG   )Ú__doc__r^   Únumpyr<   r2   Zpandasr   r   r   Zpandas._testingZ_testingr1   Zpandas.core.arraysr   r   r   r   rG   r$   r$   r$   r%   Ú<module>   s   D