
    Owg%                     p    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y)zP
Tests for statistical reductions of 2nd moment or higher: var, skew, kurt, ...
    N)	DataFrameSeries
date_rangec                      e Zd Zej                  j                  deej                  ej                  g      d        Z
ej                  j                  deej                  ej                  g      ej                  j                  dg d      d               Zej                  j                  deej                  ej                  g      d        Zy)TestDatetimeLikeStatReductionsboxc                    |}t        dd|      }|j                  g d      }|j                  } ||      }|j                         t	        j
                  d|      k(  sJ |j                  d      t	        j
                  d|      k(  sJ t        j                  |d	<    ||      }|j                         t	        j
                  d
|      k(  sJ |j                  d      t        j                  u sJ y )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          c/var/www/horilla/myenv/lib/python3.12/site-packages/pandas/tests/reductions/test_stat_reductions.pytest_dt64_meanz-TestDatetimeLikeStatReductions.test_dt64_mean   s    rb9hh9:		%jxxzR\\,2>>>>xxux%lr)JJJJ FFb	%jxxzR\\*?BGGGGxxux%///    freq)shDWBc                 .   t        dd      }|j                  g d      }|dk(  rt        nd }d}t        j                  ||      5  |j
                  j                  |      }d d d         |      }t        j                  t        d      5  |j                          d d d        t        j                  t        d      5  |j                  d	
       d d d        t        j                  |d<   t        j                  t        d      5  |j                          d d d        t        j                  t        d      5  |j                  d	
       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   dxY w# 1 sw Y   y xY w)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'   sA    r2hh9: $}/''C8 	-99&&t,D	-$i]]9K8 	HHJ	]]9K8 	"HHDH!	" 66R]]9K8 	HHJ	]]9K8 	"HHDH!	" 	"	- 	-	 		" 	"	 		" 	"s<   EE'E3E??FE$'E03E<?FFc                 4   t        j                  g dd      }t        j                  |      j	                  d      }|j
                  } ||d      }|j                         }t        j                  |      j                         }||k(  sJ t        j                  |d<   |j                  d      t        j                  u sJ |j                  d      }||d	d  j                         k(  sJ |j                  d
      |dz  dz  j                  d
      k(  sJ y )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    88A7K)11$7		%e$88E?'')!!!66axxux%///(($('#ab',,.((( }}T"v}r'9&@&@&FFFFr)   N)__name__
__module____qualname__r9   markparametrizer   r   IndexrF   r(   r?   rP    r)   r'   r   r      s    [[UVRXXrxx$@A0 B0& [[UVRXXrxx$@A[[V%>?" @ B"0 [[UVRXXrxx$@AG BGr)   r   c                   X    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y)TestSeriesStatReductionsc           	         t        j                  dd      5  t        t        |      }t        j
                  |dd |dvrHt        t        dd            }d	| d
}t        j                  t        |      5   ||       d d d        t        j                   ||            sJ t        j                   ||d            sJ |j                         }	t        j                   ||	       ||	j                               t        j                   ||       ||	j                               |t        j
                  z  }
|rt	        j                    ||
            sJ t        g d      } ||       dg}|j#                  t%        dd             t        |d      }t        j                  t'         ||            t'         ||j                                     |r7t        t        j(                  dd            } ||      } ||      }||k(  sJ |dvr>t        j                  t        d       5   |t        t+        d                   d d d        d}t        j                  t,        |      5   ||d       d d d        dt/        j0                  |      j2                  v r
 ||d       d d d        y # 1 sw Y   =xY w# 1 sw Y   zxY w# 1 sw Y   VxY w# 1 sw Y   y xY w)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\   sz    /7 8	5%A $&66N1R  BBJz2>?4TF!<]]9C8 bE 88An-...771^E:;;; "((*D""1T7Idkk,BC""1^#4i6LM"RVV+Exx%))) )*AaD CELLul34uG,A""51;i6I0JK 2>>*bABdlcz!z 00]]9D9 +fT%[)*+ ;Cz5 *.q)* !7!7!:!?!??.t4q8	5 8	5 H+ +
* *g8	5 8	5sU   AK6	J:?F4K3K%K3K>3K:K	?KK	KK	KK(c                     t        t        d      t        j                  d      }| j	                  dt        j
                  |d       y )N   seriesrd   r{   re   F)r   )r   rs   rE   float64r   re   r"   string_seriess     r'   test_sumz!TestSeriesStatReductions.test_sum   s3    uRy

JE266=eLr)   c                     t        t        d      t        j                  d      }| j	                  dt        j
                  |       y )Nr   r   r   r   )r   rs   rE   r   r   r   r   s     r'   	test_meanz"TestSeriesStatReductions.test_mean   .    uRy

JFBGG];r)   c                 \   t        t        d      t        j                  d      }| j	                  dt        j
                  |       t        t        j                  dt              t        d            }t        j                  t        j
                  |      |j                                y )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   sj    uRy

JHbii? #.eBi@
ryy0&--/Br)   c                     t        t        d      t        j                  d      }| j	                  dt        j
                  |       y )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      }| j	                  dt        j
                  |d       y )Nr   r   r   r^   Tr~   )r   rs   rE   r   r   r^   r   s     r'   test_minz!TestSeriesStatReductions.test_min   3    uRy

JE266=Mr)   c                     t        t        d      t        j                  d      }| j	                  dt        j
                  |d       y )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
 }| j                  d||       d }| j                  d||       |j                  d      }t        j                  |j                  d      }t        j                  ||       |j                  d      }t        j                  |j                  d      }t        j                  ||       |j                  dg   }|j                  d      }t        j                  |      sJ |j                  d      }t        j                  |      sJ y )Nr   r   r   r   rc   
2020-01-01r1   tsr   r{   c                 0    t        j                  | d      S Nr   ddof)rE   r`   xs    r'   <lambda>z7TestSeriesStatReductions.test_var_std.<locals>.<lambda>       qq) r)   r`   c                 0    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   s5   uRy

J IIb

+\26
 *E36)E36 $$!$,66/00q9
vx0 $$!$,66/00q9
vx0   !%AwwvAwwvr)   c                 H   t        t        d      t        j                  d      }t        t        j                  dt        j                        t        dd      d	      }d
 }| j                  d||       |j                  d      }t        j                  |j                  d      t        j                  t        |j                              z  }t        j                  ||       |j                  dg   }|j                  d      }t        j                   |      sJ y )Nr   r   r   r   rc   r   r1   r   r   c                 n    t        j                  | d      t        j                  t        |             z  S r   )rE   r`   sqrtlenr   s    r'   r   z3TestSeriesStatReductions.test_sem.<locals>.<lambda>   s"    qq)BGGCFO; 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    uRy

J IIb

+\26
 <E36 $$!$,66/00q9BGG&&'=
 
 	vx0   !%Awwvr)   c                    t        j                  d      t        t        d      t        j
                  d      }fd}| j                  d||       d}t        d|dz         D ]  }t        t	        j                  |            }t        t	        j                  ||f            }||k  rYt	        j                  |j                               sJ t	        j                  |j                               j                         rJ d	|j                         k(  sJ t        |j                         t        j
                        sJ |j                         d	k(  j                         rJ  y )
Nscipy.statsr   r   r   c                 *    j                  | d      S NF)bias)skewr   sp_statss    r'   r   z4TestSeriesStatReductions.test_skew.<locals>.<lambda>   s    ae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   s   &&}5uRy

J4FC7 q%!)$ 		.Arwwqz"A277Aq6?+B5yxx)))xx	*..000AFFH}$}!!&&(BJJ777	Q++---		.r)   c                     t        j                  d      t        t        d      t        j
                  d      }fd}| j                  d||       y )Nr   r   r   r   c                 *    j                  | d      S r   )kurtosisr   s    r'   r   z4TestSeriesStatReductions.test_kurt.<locals>.<lambda>  s    ))!%)8 r)   kurt)r9   r   r   rs   rE   r   r   )r"   r   r   r   s      @r'   	test_kurtz"TestSeriesStatReductions.test_kurt   s@    &&}5uRy

J8FC7r)   c                 0   d}t        d|dz         D ]  }t        t        j                  |            }t	        t        j                  ||f            }||k  rYt        j
                  |j                               sJ t        j
                  |j                               j                         rJ d|j                         k(  sJ t        |j                         t        j                        sJ |j                         dk(  j                         rJ  y )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rwwqz"A277Aq6?+B5yxx)))xx	*..000AFFH}$}!!&&(BJJ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   sJ     QV;5zM<C<NN<,.,8.r)   rY   )__doc__rx   numpyrE   r9   pandasr   r   r   r   pandas._testing_testingr6   r   rY   rW   r)   r'   <module>r      sB        
 BG BGJ}. }.r)   