o
    Ti$                     @   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s%J |jddt jd|dks4J t j|d	< ||}| t jd
|dksJJ |jddt ju sUJ d S )N
2001-01-01   )periodstz         
   	            r         z
2001-01-06)r   FZskipnaz2001-01-06 07:12:00)pd
date_rangetake_datamean	TimestampNaT)selfZtz_naive_fixturer   r   dtiZdtarrobj r$   l/var/www/html/evchargy.com/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   sb  t jddd}|g d}|dkrtnd }d}tj||d |j|}W d    n1 s0w   Y  ||}tj	t
dd |  W d    n1 sOw   Y  tj	t
dd |jd	d
 W d    n1 slw   Y  t j|d< tj	t
dd |  W d    n1 sw   Y  tj	t
dd |jd	d
 W d    d S 1 sw   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s#J t j|d< |jddt ju s3J |jdd}||d	d   ksEJ |d
|d d d
ksUJ d S )N)r   r   r   ir   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                   @   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rBtt jddd}d	| d
}tjt	|d || W d    n1 s=w   Y  t 
||sKJ t ||ddsVJ | }	t||	||	j t||||	j |tj }
|rt||
sJ tg d}|| dg}|tdd t|dd}tt||t||j |rtt jddd}||}||}||ksJ |dvrtjt	d d |ttd W d    n1 sw   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 )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)sumrJ   rI   abcz&No axis named 1 for object type Seriesr   )Zaxisnumeric_onlyT)rQ   )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_   sR   


6$z'TestSeriesStatReductions._check_stat_opc                 C   &   t  d}| jdtj|dd d S )NseriesrO   F)rc   )r1   makeStringSeriesrenameri   r<   rO   r!   string_seriesr$   r$   r%   test_sum      z!TestSeriesStatReductions.test_sumc                 C   "   t  d}| dtj| d S )Nrk   r   )r1   rl   rm   ri   r<   r   rn   r$   r$   r%   	test_mean      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   rN   )index)r1   rl   rm   ri   r<   rK   r   onesintrY   rU   )r!   ro   Zint_tsr$   r$   r%   test_median   s   z$TestSeriesStatReductions.test_medianc                 C   rr   )Nrk   prod)r1   rl   rm   ri   r<   ry   rn   r$   r$   r%   	test_prod   rt   z"TestSeriesStatReductions.test_prodc                 C   rj   )Nrk   rJ   Trb   )r1   rl   rm   ri   r<   rJ   rn   r$   r$   r%   test_min   rq   z!TestSeriesStatReductions.test_minc                 C   rj   )Nrk   rI   Tr{   )r1   rl   rm   ri   r<   rI   rn   r$   r$   r%   test_max   rq   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|slJ d S )Nrk   tsc                 S      t j| ddS Nr   Zddof)r<   rL   xr$   r$   r%   <lambda>       z7TestSeriesStatReductions.test_var_std.<locals>.<lambda>rL   c                 S   r   r   )r<   varr   r$   r$   r%   r      r   r   r   r   r   r   )r1   rl   rm   makeTimeSeriesri   rL   r<   rV   rU   r   ilocr   rT   r!   ro   Zdatetime_seriesaltr?   r@   re   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|sHJ d S )
Nrk   r~   c                 S   s   t j| ddt t|  S r   )r<   rL   sqrtlenr   r$   r$   r%   r      s    z3TestSeriesStatReductions.test_sem.<locals>.<lambda>semr   r   r   r   )r1   rl   rm   r   ri   r   r<   rL   rV   r   r   rU   r   r   rT   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 ]G}tt	|}t
t	||f}||k rMt| sAJ t|  sLJ q"d| ksUJ t| tjs_J | dk siJ q"d S )	Nscipy.statsrk   c                        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   ri   rY   r   r<   rv   r   rW   r   all
isinstancefloat64)r!   ro   r   min_Nire   dfr$   r   r%   	test_skew   s   
z"TestSeriesStatReductions.test_skewc                    s6   t d t d} fdd}| d|| d S )Nr   rk   c                    r   r   )Zkurtosisr   r   r$   r%   r      r   z4TestSeriesStatReductions.test_kurt.<locals>.<lambda>kurt)r2   r   r1   rl   rm   ri   )r!   ro   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   )
rY   r   r<   rv   r   rW   r   r   r   r   )r!   r   r   re   r   r$   r$   r%   test_kurt_corner  s   z)TestSeriesStatReductions.test_kurt_cornerN)FF)rB   rC   rD   ri   rp   rs   rx   rz   r|   r}   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