
    d#                         d Z ddlZddlZddlZddlmc 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          Z G d d          ZdS )	zP
Tests for statistical reductions of 2nd moment or higher: var, skew, kurt, ...
    N)	DataFrameSeries)DatetimeArrayPeriodArrayTimedeltaArrayc                   \   e Zd Zej                            deej        e	g          d             Z
ej                            deej        eg          ej                            dg d          d                         Zej                            deej        eg          d             ZdS )TestDatetimeLikeStatReductionsboxc                    |}t          j        dd|          }|                    g d          }|j        } ||          }|                                t          j        d|          k    sJ |                    d          t          j        d|          k    sJ t           j        |d	<    ||          }|                                t          j        d
|          k    sJ |                    d          t           j        u sJ d S )N
2001-01-01   )periodstz         
   	            r         z
2001-01-06)r   Fskipnaz2001-01-06 07:12:00)pd
date_rangetake_datamean	TimestampNaT)selftz_naive_fixturer
   r   dtidtarrobjs          h/var/www/html/t/fyr/venv311/lib/python3.11/site-packages/pandas/tests/reductions/test_stat_reductions.pytest_dt64_meanz-TestDatetimeLikeStatReductions.test_dt64_mean   s	   mL"<<<hh999::	c%jjxxzzR\,2>>>>>>>xxux%%lr)J)J)JJJJJ Fb	c%jjxxzzR\*?BGGGGGGGxxux%%//////    freq)SHDWBc                 
   t          j        dd          }|                    g d          }|j                            |          } ||          }t          j        t          d          5  |                                 d d d            n# 1 swxY w Y   t          j        t          d          5  |                    d           d d d            n# 1 swxY w Y   t           j	        |d	<   t          j        t          d          5  |                                 d d d            n# 1 swxY w Y   t          j        t          d          5  |                    d           d d d            d S # 1 swxY w Y   d S )
Nr   r   r   r   	ambiguousmatchTr   r   )
r   r   r    r!   	to_periodpytestraises	TypeErrorr"   r$   )r%   r
   r-   r'   parrr)   s         r*   test_period_meanz/TestDatetimeLikeStatReductions.test_period_mean-   sX    mL"555hh999::y""4((c$ii]9K888 	 	HHJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9K888 	" 	"HHDH!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 6R]9K888 	 	HHJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9K888 	" 	"HHDH!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"sH   .BBB5CCCD..D25D2E88E<?E<c                     t          j        g dd          }|j        } ||d          }|                                }t	          j        |                                          }||k    sJ t           j        |d<   |                    d          t           j        u sJ |                    d          }||d	d                                          k    sJ |                    d
          |dz  dz                      d
          k    sJ d S )N)r   r   r   ir   r   r   r   r   r   r0   )unitF)copyr   r   Tr   usg      &@r   )r   TimedeltaIndexr!   r"   nparrayr$   round)r%   r
   tditdarrr)   resultexpectedresult2s           r*   test_td64_meanz-TestDatetimeLikeStatReductions.test_td64_meanD   s    E E ECPPP	c%e$$$8E??''))!!!!6axxux%%////(($(''#abb',,..(((( }}T""v}r'9&@&@&F&FFFFFFFr,   N)__name__
__module____qualname__r9   markparametrizer   r   Indexr   r+   r   r=   r   rL    r,   r*   r	   r	      s        [UVRX}$EFF0 0 GF0& [UVRX{$CDD[V%>%>%>??" " @? ED"* [UVRX~$FGGG G HGG G Gr,   r	   c                       e Zd Z	 ddZd Zd Zd Zd Zd Zd Z	d	 Z
d
 Zej        d             Zej        d             Zd ZdS )TestSeriesStatReductionsFc           	         t          j        dd          5  t          t          |          }t          j        |dd<   |dvrgt          t          j        dd                    }d	| d
}t          j        t          |          5   ||           d d d            n# 1 swxY w Y   t          j
         ||                    sJ t          j         ||d                    sJ |                                }	t          j         ||	           ||	j                             t          j         ||           ||	j                             |t          j        z  }
|rt	          j         ||
                    sJ t          g d          } ||           dg}|                    t'          dd                     t          |d          }t          j        t)           ||                    t)           ||j                                       |rAt          t          j        dd                    } ||          } ||          }||k    sJ |dvrXt          j        t          d           5   |t          t-          d                               d d d            n# 1 swxY w Y   d}t          j        t.          |          5   ||d           d d d            n# 1 swxY w Y   dt1          j        |          j        v r ||d           d d d            d S # 1 swxY w Y   d S )Nuse_bottleneckFr      )maxminr"   medianstdz1/1/2001r   r4   zdoes not support reduction ''r6   r   )r   r   r   Nr   r   l        l      int64dtypez1/1/2000)sumrZ   rY   abcz&No axis named 1 for object type Seriesr   )axisnumeric_onlyT)rd   )r   option_contextgetattrr   rD   NaNr   r9   r:   r;   notnaisnadropnatmassert_almost_equalvaluesnanisnanextendrangefloatbdate_rangelist
ValueErrorinspectgetfullargspecargs)r%   name	alternatestring_series_check_objectscheck_allnafdsmsgnonaallnasitemsresexps                  r*   _check_stat_opz'TestSeriesStatReductions._check_stat_op^   sS    /77 8	5 8	5%%A $&6N1R4  BBBBM*bAAABB<T<<<]9C888  AbEEE               8AAn--.....711^E:::;;;;; "((**D"11T77IIdk,B,BCCC"11^#4#4ii6L6LMMM"RV+E *x%))))) )))**AAaDDD CELLul33444uG,,,A"51;;ii6I6I0J0JKKK  "2>*bAAABBaddillczzzz 000]9D999 + +AfT%[[))***+ + + + + + + + + + + + + + + ;Cz555 * *.q))))* * * * * * * * * * * * * * * !7!:!:!???.t4444q8	5 8	5 8	5 8	5 8	5 8	5 8	5 8	5 8	5 8	5 8	5 8	5 8	5 8	5 8	5 8	5 8	5 8	5s   A/L3BL3B!	!L3$B!	%GL3?&J1%L31J5	5L38J5	9 L3K3'L33K7	7L3:K7	;+L33L7:L7c                     t          j                                        d          }|                     dt          j        |d           d S )Nseriesra   F)r}   )rk   makeStringSeriesrenamer   rD   ra   r%   string_seriess     r*   test_sumz!TestSeriesStatReductions.test_sum   sC    +--44X>>E26=eLLLLLr,   c                     t          j                                        d          }|                     dt          j        |           d S )Nr   r"   )rk   r   r   r   rD   r"   r   s     r*   	test_meanz"TestSeriesStatReductions.test_mean   >    +--44X>>FBG];;;;;r,   c                 t   t          j                                        d          }|                     dt          j        |           t          t	          j        dt                    t          d                    }t          j
        t	          j        |          |                                           d S )Nr   r[   r   r_   )index)rk   r   r   r   rD   r[   r   onesintrq   rl   )r%   r   int_tss      r*   test_medianz$TestSeriesStatReductions.test_median   s    +--44X>>Hbi??? #...eBii@@@
ry00&--//BBBBBr,   c                     t          j                                        d          }|                     dt          j        |           d S )Nr   prod)rk   r   r   r   rD   r   r   s     r*   	test_prodz"TestSeriesStatReductions.test_prod   r   r,   c                     t          j                                        d          }|                     dt          j        |d           d S )Nr   rZ   Tr|   )rk   r   r   r   rD   rZ   r   s     r*   test_minz!TestSeriesStatReductions.test_min   C    +--44X>>E26=MMMMMr,   c                     t          j                                        d          }|                     dt          j        |d           d S )Nr   rY   Tr   )rk   r   r   r   rD   rY   r   s     r*   test_maxz!TestSeriesStatReductions.test_max   r   r,   c                    t          j                                        d          }t          j                                        d          }d }|                     d||           d }|                     d||           |                    d          }t          j        |j        d          }t          j        ||           |	                    d          }t          j	        |j        d          }t          j        ||           |j
        d	g         }|	                    d
          }t          j        |          sJ |                    d
          }t          j        |          sJ d S )Nr   tsc                 .    t          j        | d          S Nr   ddof)rD   r\   xs    r*   <lambda>z7TestSeriesStatReductions.test_var_std.<locals>.<lambda>       qq))) r,   r\   c                 .    t          j        | d          S r   )rD   varr   s    r*   r   z7TestSeriesStatReductions.test_var_std.<locals>.<lambda>   r   r,   r   r   r   r   r   )rk   r   r   makeTimeSeriesr   r\   rD   rm   rl   r   ilocr   ri   r%   r   datetime_seriesaltrI   rJ   r   s          r*   test_var_stdz%TestSeriesStatReductions.test_var_std   s[   +--44X>>+--44T::))E3666))E3666 $$!$,,6/0q999
vx000 $$!$,,6/0q999
vx000  !%AwvAwvr,   c                     t          j                                        d          }t          j                                        d          }d }|                     d||           |                    d          }t          j        |j        d          t          j	        t          |j                            z  }t          j        ||           |j        dg         }|                    d          }t          j        |          sJ d S )	Nr   r   c                 r    t          j        | d          t          j        t          |                     z  S r   )rD   r\   sqrtlenr   s    r*   r   z3TestSeriesStatReductions.test_sem.<locals>.<lambda>   s(    qq)))BGCFFOO; r,   semr   r   r   r   )rk   r   r   r   r   r   rD   r\   rm   r   r   rl   r   r   ri   r   s          r*   test_semz!TestSeriesStatReductions.test_sem   s    +--44X>>+--44T::;;E3666 $$!$,,6/0q999BG&''=
 =
 
 	vx000  !%Awvr,   c                    ddl m t          j                                        d          }fd}|                     d||           d}t          d|dz             D ]}t          t          j	        |                    }t          t          j	        ||f                    }||k     rct          j        |                                          sJ t          j        |                                                                          sJ d|                                k    sJ |                                dk                                    sJ d S )Nr   )skewr   c                      | d          S NF)biasrS   )r   r   s    r*   r   z4TestSeriesStatReductions.test_skew.<locals>.<lambda>   s    QU+++ r,   r   r   r   )scipy.statsr   rk   r   r   r   rq   r   rD   r   r   ro   all)r%   r   r   min_Nir   dfr   s          @r*   	test_skewz"TestSeriesStatReductions.test_skew   sC   $$$$$$+--44X>>++++FC777 q%!)$$ 	. 	.Arwqzz""A27Aq6??++B5yyx)))))x		**..000000AFFHH}}}}		Q++------	. 	.r,   c                     ddl m t          j                                        d          }fd}|                     d||           d S )Nr   )kurtosisr   c                      | d          S r   rS   )r   r   s    r*   r   z4TestSeriesStatReductions.test_kurt.<locals>.<lambda>   s    /// r,   kurt)r   r   rk   r   r   r   )r%   r   r   r   s      @r*   	test_kurtz"TestSeriesStatReductions.test_kurt   s]    ((((((+--44X>>////FC77777r,   c                    d}t          d|dz             D ]}t          t          j        |                    }t	          t          j        ||f                    }||k     rct          j        |                                          sJ t          j        |                                                                          sJ d|                                k    sJ |                                dk                                    sJ d S )Nr   r   r   )rq   r   rD   r   r   ro   r   r   )r%   r   r   r   r   s        r*   test_kurt_cornerz)TestSeriesStatReductions.test_kurt_corner  s     q%!)$$ 	. 	.Arwqzz""A27Aq6??++B5yyx)))))x		**..000000AFFHH}}}}		Q++------	. 	.r,   N)FF)rM   rN   rO   r   r   r   r   r   r   r   r   r   tdskip_if_no_scipyr   r   r   rS   r,   r*   rU   rU   Y   s        QV;5 ;5 ;5 ;5zM M M< < <C C C< < <N N NN N N  4  $ . . .* 8 8 8. . . . .r,   rU   )__doc__rv   numpyrD   r9   pandas.util._test_decoratorsutil_test_decoratorsr   pandasr   r   r   pandas._testing_testingrk   pandas.core.arraysr   r   r   r	   rU   rS   r,   r*   <module>r      s1          ) ) ) ) ) ) ) ) )                          >G >G >G >G >G >G >G >GBu. u. u. u. u. u. u. u. u. u.r,   