
    bMh%                     ~    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m	Z	 ddl
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
date_rangec                   z   e Zd Zej                            deej        ej	        g          d             Z
ej                            deej        ej	        g          ej                            dg d          d                         Zej                            deej        ej	        g          d             ZdS )TestDatetimeLikeStatReductionsboxc                    |}t          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)r   take_datameanpd	TimestampNaT)selftz_naive_fixturer   r   dtidtarrobjs          l/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pandas/tests/reductions/test_stat_reductions.pytest_dt64_meanz-TestDatetimeLikeStatReductions.test_dt64_mean   s   rb999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          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   r/   zPeriodDtype\[B\] is deprecatedmatch	ambiguousTr   r   )r   r   FutureWarningtmassert_produces_warningr   	to_periodpytestraises	TypeErrorr   r   r!   )r"   r   r*   r$   warnmsgparrr&   s           r'   test_period_meanz/TestDatetimeLikeStatReductions.test_period_mean'   s    r222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   A77A;>A;(C		CC/DDDE((E,/E,F22F69F6c                 l   t          j        g dd          }t          j        |                              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   zm8[D]nsF)copyr   r   Tr   usg      &@r   )	nparrayr   TimedeltaIndexas_unitr   r   r!   round)	r"   r   m8valuestditdarrr&   resultexpectedresult2s	            r'   test_td64_meanz-TestDatetimeLikeStatReductions.test_td64_meanA   s&   8AAA7KK))11$77	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   IndexrF   r(   r?   rP    r)   r'   r   r      s        [UVRXrx$@AA0 0 BA0& [UVRXrx$@AA[V%>%>%>??" " @? BA"0 [UVRXrx$@AAG G BA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           	      v   t          j        dd          5  t          t          |          }t          j        |dd<   |dvrbt          t          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   r1   zdoes not support reduction ''r2   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)rh   )r   option_contextgetattrr   rE   nanr   r9   r:   r;   notnaisnadropnar6   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allnar+   itemsresexps                  r'   _check_stat_opz'TestSeriesStatReductions._check_stat_op\   sQ    /77 8	5 8	5%%A $&6N1R4  BBBJz2>>>??<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*L. BL.B	L.B	 GL.:&J, L.,J0	0L.3J0	4 L.K."L..K2	2L.5K2	6+L..L25L2c                     t          t          d          t          j        d          }|                     dt          j        |d           d S )N   seriesrd   r{   re   F)r   )r   rs   rE   float64r   re   r"   string_seriess     r'   test_sumz!TestSeriesStatReductions.test_sum   sC    uRyy
JJJE26=eLLLLLr)   c                     t          t          d          t          j        d          }|                     dt          j        |           d S )Nr   r   r   r   )r   rs   rE   r   r   r   r   s     r'   	test_meanz"TestSeriesStatReductions.test_mean   >    uRyy
JJJFBG];;;;;r)   c                 z   t          t          d          t          j        d          }|                     dt          j        |           t          t          j        dt                    t          d                    }t          j	        t          j        |          |                                           d S )Nr   r   r   r_   r   rc   )index)
r   rs   rE   r   r   r_   onesintr6   ro   )r"   r   int_tss      r'   test_medianz$TestSeriesStatReductions.test_median   s    uRyy
JJJHbi??? #...eBii@@@
ry00&--//BBBBBr)   c                     t          t          d          t          j        d          }|                     dt          j        |           d S )Nr   r   r   prod)r   rs   rE   r   r   r   r   s     r'   	test_prodz"TestSeriesStatReductions.test_prod   r   r)   c                     t          t          d          t          j        d          }|                     dt          j        |d           d S )Nr   r   r   r^   Tr~   )r   rs   rE   r   r   r^   r   s     r'   test_minz!TestSeriesStatReductions.test_min   C    uRyy
JJJE26=MMMMMr)   c                     t          t          d          t          j        d          }|                     dt          j        |d           d S )Nr   r   r   r]   Tr   )r   rs   rE   r   r   r]   r   s     r'   test_maxz!TestSeriesStatReductions.test_max   r   r)   c                 "   t          t          d          t          j        d          }t          t          j        dt          j                  t          dd          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   r   r   r   rc   
2020-01-01r1   tsr   r{   c                 .    t          j        | d          S Nr   ddof)rE   r`   xs    r'   <lambda>z7TestSeriesStatReductions.test_var_std.<locals>.<lambda>       qq))) r)   r`   c                 .    t          j        | d          S r   )rE   varr   s    r'   r   z7TestSeriesStatReductions.test_var_std.<locals>.<lambda>   r   r)   r   r   r   r   r   )r   rs   rE   r   aranger   r   r`   rp   r6   ro   r   ilocr   rm   r"   r   datetime_seriesaltrM   rN   r+   s          r'   test_var_stdz%TestSeriesStatReductions.test_var_std   s|   uRyy
JJJ Ib
+++\2666
 
 
 *)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                 X   t          t          d          t          j        d          }t          t          j        dt          j                  t          dd          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   r   r   rc   r   r1   r   r   c                 r    t          j        | d          t          j        t          |                     z  S r   )rE   r`   sqrtlenr   s    r'   r   z3TestSeriesStatReductions.test_sem.<locals>.<lambda>   s(    qq)))BGCFFOO; r)   semr   r   r   r   )r   rs   rE   r   r   r   r   r   r`   rp   r   r   r6   ro   r   r   rm   r   s          r'   test_semz!TestSeriesStatReductions.test_sem   s   uRyy
JJJ Ib
+++\2666
 
 
 <;E3666 $$!$,,6/0q999BG&''=
 =
 
 	vx000  !%Awvr)   c                 0   t          j        d          t          t          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   r   r   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   )r9   importorskipr   rs   rE   r   r   r   r   rq   r   all
isinstance)r"   r   r   min_Nir+   dfr   s          @r'   	test_skewz"TestSeriesStatReductions.test_skew   sa   &}55uRyy
JJJ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          t          d          t          j        d          }fd}|                     d||           d S )Nr   r   r   r   c                 2                         | d          S r   )kurtosisr   s    r'   r   z4TestSeriesStatReductions.test_kurt.<locals>.<lambda>  s    ))!%)88 r)   kurt)r9   r   r   rs   rE   r   r   )r"   r   r   r   s      @r'   	test_kurtz"TestSeriesStatReductions.test_kurt   s[    &}55uRyy
JJJ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   )
rs   r   rE   r   r   rq   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)rQ   rR   rS   r   r   r   r   r   r   r   r   r   r   r   r   rW   r)   r'   rY   rY   W   s         QV;5 ;5 ;5 ;5zM M M< < <C C C< < <N N NN N N  <  ,. . .,8 8 8. . . . .r)   rY   )__doc__rx   numpyrE   r9   pandasr   r   r   r   pandas._testing_testingr6   r   rY   rW   r)   r'   <module>r      s                       
      BG BG BG BG BG BG BG BGJ}. }. }. }. }. }. }. }. }. }.r)   