a
    nÝEb_%  ã                   @   s†   d Z ddlZddlZddlZddlm  m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$   úl/home/ja/django-apps/lartica_env/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   s   t jddd�}| g d¢¡}|j |¡}||ƒ}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 �s0    Y  d S )
Nr	   r
   ©r   r   Z	ambiguous©ÚmatchTr   r   )
r   r   r   r   Z	to_periodÚpytestÚraisesÚ	TypeErrorr   r    )r!   r   r'   r"   Zparrr#   r$   r$   r%   Útest_period_mean-   s    &*
&z/TestDatetimeLikeStatReductions.test_period_meanc                 C   sª   t jg d¢dd�}|j}||ƒ}| ¡ }t |¡ ¡ }||ksBJ ‚t j|d< |jdd�t ju sbJ ‚|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*   )Úunitr   Fr   Tr   Úusg      &@r   )r   ZTimedeltaIndexr   r   ÚnpÚarrayr    Úround)r!   r   ZtdiZtdarrr#   ÚresultÚexpectedZresult2r$   r$   r%   Útest_td64_meanD   s    
z-TestDatetimeLikeStatReductions.test_td64_meanN)Ú__name__Ú
__module__Ú__qualname__r0   ÚmarkZparametrizer   r   ÚIndexr   r&   r   r3   r   r<   r$   r$   r$   r%   r      s   
r   c                   @   sr   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ejdd„ ƒZejdd„ ƒZdS )ÚTestSeriesStatReductionsFc              	   C   sŠ  t  dd¡��f 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 �rftjt|d�� ||dd� W d   ƒ n1 �s\0    Y  W d   ƒ n1 �s|0    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   è   Zint64©Zdtypez1/1/2000)ÚsumrE   rD   Úabcz&No axis named 1 for object type Seriesr   )ZaxisÚnumeric_onlyT)rL   )r   Zoption_contextÚgetattrr   r7   ÚNaNr   r0   r1   r2   ZnotnaÚisnaZdropnaÚtmÚassert_almost_equalÚvaluesÚnanÚisnanÚextendÚrangeÚfloatZbdate_rangeÚlistÚ
ValueErrorÚinspectÚgetfullargspecÚargsÚNotImplementedError)r!   ÚnameÚ	alternateZstring_series_Úcheck_objectsÚcheck_allnaÚfZdsÚmsgZnonaZallnaÚsÚitemsÚresÚexpr$   r$   r%   Ú_check_stat_op^   sH    
&

0,z'TestSeriesStatReductions._check_stat_opc                 C   s&   t  ¡  d¡}| jdtj|dd� d S )NÚseriesrJ   F)ra   )rP   ÚmakeStringSeriesÚrenamerh   r7   rJ   ©r!   Ústring_seriesr$   r$   r%   Útest_sum�   s    z!TestSeriesStatReductions.test_sumc                 C   s"   t  ¡  d¡}|  dtj|¡ d S )Nri   r   )rP   rj   rk   rh   r7   r   rl   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 )Nri   rF   r   rI   ©Úindex)rP   rj   rk   rh   r7   rF   r   ÚonesÚintrV   rQ   )r!   rm   Zint_tsr$   r$   r%   Útest_median¥   s    z$TestSeriesStatReductions.test_medianc                 C   s"   t  ¡  d¡}|  dtj|¡ d S )Nri   Úprod)rP   rj   rk   rh   r7   ru   rl   r$   r$   r%   Ú	test_prod­   s    z"TestSeriesStatReductions.test_prodc                 C   s&   t  ¡  d¡}| jdtj|dd� d S )Nri   rE   T©r`   )rP   rj   rk   rh   r7   rE   rl   r$   r$   r%   Útest_min±   s    z!TestSeriesStatReductions.test_minc                 C   s&   t  ¡  d¡}| jdtj|dd� d S )Nri   rD   Trw   )rP   rj   rk   rh   r7   rD   rl   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 )Nri   Útsc                 S   s   t j| dd�S ©Nr   ©Zddof)r7   rG   ©Úxr$   r$   r%   Ú<lambda>½   ó    z7TestSeriesStatReductions.test_var_std.<locals>.<lambda>rG   c                 S   s   t j| dd�S r{   )r7   Úvarr}   r$   r$   r%   r   À   r€   r�   r   r|   r   r   )rP   rj   rk   ÚmakeTimeSeriesrh   rG   r7   rR   rQ   r�   Úilocr   rO   ©r!   rm   Zdatetime_seriesÚaltr:   r;   rd   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 |¡s�J ‚d S )
Nri   rz   c                 S   s   t j| dd�t  t| ƒ¡ S r{   )r7   rG   ÚsqrtÚlenr}   r$   r$   r%   r   ×   r€   z3TestSeriesStatReductions.test_sem.<locals>.<lambda>Úsemr   r|   r   r   )rP   rj   rk   r‚   rh   r‰   r7   rG   rR   r‡   rˆ   rQ   rƒ   r   rO   r„   r$   r$   r%   Útest_semÓ   s    ÿz!TestSeriesStatReductions.test_semc                    sÆ   ddl m‰  t ¡  d¡}‡ fdd„}|  d||¡ d}td|d ƒD ]z}tt 	|¡ƒ}t
t 	||f¡ƒ}||k rœt | ¡ ¡s„J ‚t | ¡ ¡ ¡ sÀJ ‚qFd| ¡ ks¬J ‚| ¡ dk ¡ sFJ ‚qFd S )	Nr   ©Úskewri   c                    s   ˆ | dd�S ©NF)Zbiasr$   r}   r‹   r$   r%   r   ë   r€   z4TestSeriesStatReductions.test_skew.<locals>.<lambda>rŒ   r   r   )Úscipy.statsrŒ   rP   rj   rk   rh   rV   r   r7   rr   r   rT   Úall)r!   rm   r…   Úmin_NÚird   Údfr$   r‹   r%   Ú	test_skewå   s    z"TestSeriesStatReductions.test_skewc                    sX  ddl m‰  t ¡  d¡}‡ fdd„}|  d||¡ tjdgg d¢dd	ggg d
¢g d¢g d¢gd�}tt	j
 d¡|d�}t t¡�, t | ¡ |jdd�d ¡ W d   ƒ n1 s´0    Y  d}td	|d	 ƒD ]‚}tt	 |¡ƒ}tt	 ||f¡ƒ}||k �r,t	 | ¡ ¡�sJ ‚t	 | ¡ ¡ ¡ �sRJ ‚qÐd| ¡ k�s>J ‚| ¡ dk ¡ sÐJ ‚qÐd S )Nr   ©Úkurtosisri   c                    s   ˆ | dd�S r�   r$   r}   r”   r$   r%   r     r€   z4TestSeriesStatReductions.test_kurt.<locals>.<lambda>ÚkurtÚbar)ÚoneÚtwoÚthreer   )r   r   r   r   r   r   )r   r   r   r   r   r   )r   r   r   r   r   r   )ZlevelsÚcodesr   rp   )Úlevelr   )rŽ   r•   rP   rj   rk   rh   r   Z
MultiIndexr   r7   ÚrandomZrandnZassert_produces_warningÚFutureWarningrQ   r–   rV   rr   r   rT   r�   )r!   rm   r…   rq   rd   r�   r‘   r’   r$   r”   r%   Ú	test_kurtû   s(    þ:
z"TestSeriesStatReductions.test_kurtN)FF)r=   r>   r?   rh   rn   ro   rt   rv   rx   ry   r†   rŠ   ÚtdZskip_if_no_scipyr“   rŸ   r$   r$   r$   r%   rB   Y   s    ÿ
?
rB   )Ú__doc__rZ   Únumpyr7   r0   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsr    Zpandasr   r   r   Zpandas._testingZ_testingrP   Zpandas.core.arraysr   r   r   r   rB   r$   r$   r$   r%   Ú<module>   s   A