
    o[we$                         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          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          Llib/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          }|dk    rt          nd }d}t	          j        ||          5  |j                            |          }d d d            n# 1 swxY w Y    ||          }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   r2   zPeriodDtype\[B\] is deprecatedmatch	ambiguousTr   r   )r   r   r    FutureWarningtmassert_produces_warningr!   	to_periodpytestraises	TypeErrorr"   r$   )r%   r
   r-   r'   warnmsgparrr)   s           r*   test_period_meanz/TestDatetimeLikeStatReductions.test_period_mean+   s    mL"555hh999:: $}}/'C888 	- 	-9&&t,,D	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-c$ii]9K888 	 	HHJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9K888 	" 	"HHDH!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 6R]9K888 	 	HHJJJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	]9K888 	" 	"HHDH!!!	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	" 	"sZ   A<<B B -CCC4DDDE--E14E1F77F;>F;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_meanE   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__r<   markparametrizer   r   Indexr   r+   r   rB   r   rQ    r,   r*   r	   r	      s        [UVRX}$EFF0 0 GF0& [UVRX{$CDD[V%>%>%>??" " @? ED"0 [UVRX~$FGGG G HGG G Gr,   r	   c                   Z    e Zd Z	 ddZd Zd Zd Zd Zd Zd Z	d	 Z
d
 Zd Z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t/          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 ''r5   r   )r   r   r   Nr   r   l        l      int64dtypez1/1/2000)sumr_   r^   abcz&No axis named 1 for object type Seriesr   )axisnumeric_onlyT)ri   )r   option_contextgetattrr   rI   nanr   r<   r=   r>   notnaisnadropnar9   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dsr@   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seriesrf   F)r   )r9   makeStringSeriesrenamer   rI   rf   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"   )r9   r   r   r   rI   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   rd   )index)r9   r   r   r   rI   r`   r   onesintrt   rp   )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)r9   r   r   r   rI   r   r   s     r*   	test_prodz"TestSeriesStatReductions.test_prod   r   r,   c                     t          j                                        d          }|                     dt          j        |d           d S )Nr   r_   Tr   )r9   r   r   r   rI   r_   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   r^   Tr   )r9   r   r   r   rI   r^   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)rI   ra   xs    r*   <lambda>z7TestSeriesStatReductions.test_var_std.<locals>.<lambda>       qq))) r,   ra   c                 .    t          j        | d          S r   )rI   varr   s    r*   r   z7TestSeriesStatReductions.test_var_std.<locals>.<lambda>   r   r,   r   r   r   r   r   )r9   r   r   makeTimeSeriesr   ra   rI   rq   rp   r   ilocr   rn   r%   r   datetime_seriesaltrN   rO   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   )rI   ra   sqrtlenr   s    r*   r   z3TestSeriesStatReductions.test_sem.<locals>.<lambda>   s(    qq)))BGCFFOO; r,   semr   r   r   r   )r9   r   r   r   r   r   rI   ra   rq   r   r   rp   r   r   rn   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                 *   t          j        d          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 t          |                                t          j                  sJ |                                dk                                    sJ &d S )Nscipy.statsr   c                 2                         | d          S NF)bias)skewr   sp_statss    r*   r   z4TestSeriesStatReductions.test_skew.<locals>.<lambda>   s    ae44 r,   r   r   r   r   )r<   importorskipr9   r   r   r   rt   r   rI   r   r   rr   r   all
isinstancefloat64)r%   r   r   min_Nir   dfr   s          @r*   	test_skewz"TestSeriesStatReductions.test_skew   sa   &}55+--44X>>4444FC777 q%!)$$ 		. 		.Arwqzz""A27Aq6??++B5yyx)))))x		**..000000AFFHH}}}}!!&&((BJ77777		Q++------		. 		.r,   c                     t          j        d          t          j                                        d          }fd}|                     d||           d S )Nr   r   c                 2                         | d          S r   )kurtosisr   s    r*   r   z4TestSeriesStatReductions.test_kurt.<locals>.<lambda>   s    ))!%)88 r,   kurt)r<   r   r9   r   r   r   )r%   r   r   r   s      @r*   	test_kurtz"TestSeriesStatReductions.test_kurt   s[    &}55+--44X>>8888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 t          |                                t          j	                  sJ |                                dk                                    sJ &d S )Nr   r   r   )
rt   r   rI   r   r   rr   r   r   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}}}}!!&&((BJ77777		Q++------		. 		.r,   N)FF)rR   rS   rT   r   r   r   r   r   r   r   r   r   r   r   r   rX   r,   r*   rZ   rZ   Z   s         QV;5 ;5 ;5 ;5zM M M< < <C C C< < <N N NN N N  4  $. . .,8 8 8. . . . .r,   rZ   )__doc__ry   numpyrI   r<   pandasr   r   r   pandas._testing_testingr9   pandas.core.arraysr   r   r   r	   rZ   rX   r,   r*   <module>r      s                                   AG AG AG AG AG AG AG AGHu. u. u. u. u. u. u. u. u. u.r,   