o
    ҷh@                     @   s   d dl m Z mZ d dlmZ d dlZd dlZd dlZd dlm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZ d dlmZ d dlmZ dd ZG dd	 d	ZG d
d dZ G dd dZ!G dd dZ"G dd dZ#G dd dZ$dS )    )datetime	timedelta)DecimalN)Categorical	DataFrameDatetimeIndexIndexNaTPeriodPeriodIndex
RangeIndexSeries	TimedeltaTimedeltaIndex	Timestamp
date_rangeisnatimedelta_rangeto_timedelta)nanopsc               
      s   t jdddt jdddt jdddt jdddt jdddjddt jdddt jdddg} tj	
dd  fdd| D }| | }|S )	N
   a)namez
US/Easterntz   c                    s   g | ]	}t  |d dqS )r   )indexr   )r   ).0idxarr Z/var/www/html/venv/lib/python3.10/site-packages/pandas/tests/reductions/test_reductions.py
<listcomp>-   s    zget_objs.<locals>.<listcomp>)tmmakeBoolIndexmakeIntIndexmakeFloatIndexmakeDateIndextz_localizemakePeriodIndexmakeStringIndexnprandomdefault_rngstandard_normal)indexesseriesobjsr!   r   r"   get_objs!   s   
r3   c                   @   s  e Zd Zejdejdddgejde dd Zejdddgejdd	d
de	dddfddgdd Z
ejdddgdd Zejdddgejdddgdd Zdd Zejdddgddggdd  Zejd!d"d#gd$d% Zd&d' Zd(S ))TestReductionsz8ignore:Period with BDay freq is deprecated:FutureWarningopnamemaxminobjc                 C   s   t || }t|tst |j| }ntt |j| |jd}t |dd d ur8|dd}|j|ks6J d S ||ks>J d S )N)ordinalfreqr   M8[ns]int64)	getattr
isinstancer   valuesr
   asi8r:   astype_value)selfr5   r8   resultexpectedr!   r!   r"   test_ops4   s   
zTestReductions.test_opsz
dtype, val)object       @)float64rH   datetime64[ns]        )Int64r   )booleanTc                    s  |} fdd}|d g d}|t || sJ |t ||dds%J |g  d}|t || s5J |t ||ddsAJ  dkrGd S |d |g d}t || |ksYJ |t ||ddseJ |d |d g d}t || |ksxJ |t ||ddsJ d S )Nc                    s*    dkr| t u S  dv r| tju S t| S )NrJ   )rN   rO   )r	   pdNAr   )resdtyper!   r"   check_missingV   s
   
z4TestReductions.test_nanminmax.<locals>.check_missingrS   FskipnarG   )r=   )rC   r5   rT   valindex_or_seriesklassrU   r8   r!   rS   r"   test_nanminmaxG   s    zTestReductions.test_nanminmaxc                 C   sH  |}|t u r
d| nd| }|ttdddg}t|| dks"J d}|tu r*d}tjt|d t||d	d
}W d    n1 sDw   Y  |tu rUt	|sTJ n|dks[J |ttdddtg}t|| dkspJ tjt|d t||d	d
}W d    n1 sw   Y  |tu rt	|sJ d S |dksJ d S )Nargr   rK   rL   rM   zNThe behavior of (DatetimeIndex|Series).argmax/argmin with skipna=False and NAsz2The behavior of Series.(idxmax|idxmin) with all-NAmatchFrV   )
r   r	   r   r=   r   r$   assert_produces_warningFutureWarningr,   isnan)rC   r5   rY   rZ   arg_opr8   msgrD   r!   r!   r"   test_nanargminmaxr   s,   z TestReductions.test_nanargminmaxrT   r;   zdatetime64[ns, UTC]c                 C   s   |}|t u r
d| nd| }|g |d}t|| tu sJ t||ddtu s*J tjtdd t||  W d    n1 sBw   Y  tjtdd t||dd W d    d S 1 sbw   Y  d S )Nr\   r   rS   FrV   zempty sequencer]   )r   r=   r	   pytestraises
ValueError)rC   r5   rY   rT   rZ   rc   r8   r!   r!   r"   test_nanops_empty_object   s   "z'TestReductions.test_nanops_empty_objectc                 C   s  t tjddd}| dksJ | dksJ t tjdtjdg}| dks+J | dks3J d	}tjt|d
 |jdddksGJ W d    n1 sQw   Y  tjt|d
 |jdddkshJ W d    n1 srw   Y  t tjg}tjt|d
 | dksJ W d    n1 sw   Y  tjt|d
 | dksJ W d    n1 sw   Y  tjt|d
 |jdddksJ W d    n1 sw   Y  tjt|d
 |jdddksJ W d    n1 sw   Y  d}t t	t
dddt
dddt	g}| dksJ | dks!J tjt|d
 |jdddks4J W d    n	1 s?w   Y  tjt|d
 |jdddksWJ W d    n	1 sbw   Y  t t	g}tjt|d
 | dks}J W d    n	1 sw   Y  tjt|d
 | dksJ W d    n	1 sw   Y  tjt|d
 |jdddksJ W d    n	1 sw   Y  tjt|d
 |jdddksJ W d    d S 1 sw   Y  d S )N   r<   rS   r      rM   r      z=The behavior of Index.argmax/argmin with skipna=False and NAsr]   FrV   r_   zEThe behavior of DatetimeIndex.argmax/argmin with skipna=False and NAsrK   rL   )r   r,   arangeargminargmaxnanr$   r`   ra   r	   r   )rC   r8   rd   r!   r!   r"   test_argminmax   sb    
$zTestReductions.test_argminmaxzop, expected_colr   bc                 C   s\   t tdddddgd}|jtdd|d	< t||d
d}|| d }t|| d S )Nz2016-01-01 00:00:00rl   UTC)periodsr   r   )columnsi  secondsrr   rM   axis)	r   r   r   subtractr   r=   renamer$   assert_series_equal)rC   opexpected_coldfrD   rE   r!   r!   r"   test_same_tz_min_max_axis_1   s   z*TestReductions.test_same_tz_min_max_axis_1funcmaximumminimumc                 C   s>   |}t dg|}t|}tt|||}t|| d S )N2019)rP   to_datetimer)   r   r=   r,   r$   r|   )rC   tz_aware_fixturer   r   r\   rE   rD   r!   r!   r"   (test_numpy_reduction_with_tz_aware_dtype   s
   z7TestReductions.test_numpy_reduction_with_tz_aware_dtypec                 C   sV   t tddtgddtddtjgddd}ttddd}| }t|| d S )NrM   r   timedelta64[ns]rS   rN   ABrl   )	r   r   r	   r,   rp   r   sumr$   r|   )rC   r   rE   rD   r!   r!   r"   test_nan_int_timedelta_sum   s   z)TestReductions.test_nan_int_timedelta_sumN)__name__
__module____qualname__rf   markfilterwarningsparametrizer3   rF   r   r[   re   ri   rq   r   r   r   r!   r!   r!   r"   r4   3   s:    
 
+


r4   c                	   @   s   e Zd Zejdg ddd Zdd Zejddd	gd
d Zdd Z	dd Z
ejdg ddd Zdd Zejddd	gdd Zdd Zdd Zdd Zdd Zejddd	gejd g egeeeggd!d" Zd#d$ Zd%d& Zd'S )(TestIndexReductionszstart,stop,step))r   i  rl   )i  r   i)@B rk   )r   r   )r   r      c                 C   s   t |||}|j }| }||ksJ |jdd}||ks!J |j }| }||ks0J |jdd}||ks<J t ||| }t| sKJ t| sSJ d S NFrV   )r   _valuesr6   r7   r   )rC   startstopstepr   rE   rD   result2r!   r!   r"   test_max_min_range   s   

z&TestIndexReductions.test_max_min_rangec                 C   s   t g d}|jsJ t dtjddg}|jrJ ||fD ]&}| tdks)J | tdks3J | dks;J | dksCJ qd S )N)1 days2 days3 daysr   r   r	   r   r   )	r   is_monotonic_increasingr,   rp   r7   r   r6   rn   ro   rC   idx1idx2r   r!   r!   r"   test_minmax_timedelta64  s   

z+TestIndexReductions.test_minmax_timedelta64r}   r7   r6   c                 C   s`   t g }t|| tu sJ t tg}t|| tu sJ t tttg}t|| tu s.J d S N)r   r=   r	   rC   r}   r8   r!   r!   r"   !test_minmax_timedelta_empty_or_na$     
z5TestIndexReductions.test_minmax_timedelta_empty_or_nac                 C   s\  t dddd}t|tdksJ t|tdksJ d}tjt|d tj|dd W d    n1 s8w   Y  tjt|d tj|dd W d    n1 sVw   Y  t|dksdJ t	|d	ksmJ d}tjt|d tj|dd W d    n1 sw   Y  tjt|d tj	|dd W d    d S 1 sw   Y  d S )
Nz
16815 daysz
16820 daysDr:   $the 'out' parameter is not supportedr]   r   outrj   )
r   r,   r7   r   r6   rf   rg   rh   rn   ro   )rC   tderrmsgr!   r!   r"   test_numpy_minmax_timedelta640  s&   "z1TestIndexReductions.test_numpy_minmax_timedelta64c                 C   s  t dd tdD }| }| }ttdd}||ks J |  }|d |ks.J |d}tt	
dd	}||ksAJ | }td
}||ksOJ |  }|d |ks]J | }td}||kskJ |  }|d |ksyJ | }tt | j }||ksJ |  }|d |ksJ t tdtdg}|  tddksJ t tdtdtdg}|  tddksJ d S )Nc                 S   "   g | ]}t d t|| d qS 20130101rv   r   r   r   ir!   r!   r"   r#   I     " z:TestIndexReductions.test_timedelta_ops.<locals>.<listcomp>r   	   rv   r   g?i(
  msz00:00:09z00:01:21z
2015-02-03z
2015-02-07rk   )daysz
2015-02-15   )r   rangediffmeanr   r   to_framequantiler   r,   timedelta64medianr   stddropnar?   r   )rC   sr   rD   rE   r!   r!   r"   test_timedelta_opsE  sB   
z&TestIndexReductions.test_timedelta_opsr5   )skewkurtsemprodvarc                 C   s   t dd tdD }| }dd| dd| dd	| d
g}tjt|d t||  W d    n1 s;w   Y  tjt|d t| |dd W d    d S 1 s]w   Y  d S )Nc                 S   r   r   r   r   r!   r!   r"   r#   }  r   zDTestIndexReductions.test_invalid_td64_reductions.<locals>.<listcomp>r   |zreduction operation 'z' not allowed for this dtypezcannot perform z with type timedelta64\[ns\]zdoes not support reduction ''r]   F)numeric_only)	r   r   r   joinrf   rg   	TypeErrorr=   r   )rC   r5   r   r   rd   r!   r!   r"   test_invalid_td64_reductionsz  s    


"z0TestIndexReductions.test_invalid_td64_reductionsc                 C   s   |}t g d|d}|jsJ t dtddtg|d}|jrJ ||fD ]*}| td|dks1J | td|dks=J | dksEJ | dksMJ q#d S )N)
2011-01-01
2011-01-02
2011-01-03r   r   r   r   r   r   )r   r   r	   r7   r   r6   rn   ro   )rC   tz_naive_fixturer   r   r   r   r!   r!   r"   test_minmax_tz  s   

z"TestIndexReductions.test_minmax_tzc                 C   s`   t g }tt|| sJ t tg}tt|| sJ t tttg}tt|| s.J d S r   )r   r   r=   r	   r   r!   r!   r"   test_minmax_nat_datetime64  r   z.TestIndexReductions.test_minmax_nat_datetime64c                 C   s  t g d}|j }t|}||ksJ |j }t|}||ks&J d}tjt|d tj|dd W d    n1 sAw   Y  tjt|d tj|dd W d    n1 s_w   Y  |j }t|}||kstJ |j	 }t	|}||ksJ d}tjt|d tj	|dd W d    n1 sw   Y  tjt|d tj|dd W d    d S 1 sw   Y  d S )NrM   r   rl   r   r]   r   r   )
r   r?   r6   r,   r7   rf   rg   rh   ro   rn   )rC   r   rE   rD   r   r!   r!   r"   test_numpy_minmax_integer  s6   







"z-TestIndexReductions.test_numpy_minmax_integerc                 C   s   t ddd}t|}|dksJ t|}|dksJ d}tjt|d tj|dd W d    n1 s7w   Y  tjt|d tj|dd W d    d S 1 sVw   Y  d S )Nr   r   rl   r   r   r]   r   )r   r,   r6   r7   rf   rg   rh   )rC   r   rD   r   r!   r!   r"   test_numpy_minmax_range  s   

"z+TestIndexReductions.test_numpy_minmax_rangec                 C   sZ  t ddd}t|tdksJ t|tdksJ d}tjt|d tj|dd	 W d    n1 s7w   Y  tjt|d tj|dd	 W d    n1 sUw   Y  t|dkscJ t	|d
kslJ d}tjt|d tj|dd	 W d    n1 sw   Y  tjt|d tj	|dd	 W d    d S 1 sw   Y  d S )N
2016-01-15
2016-01-20r   endz2016-01-15 00:00:00z2016-01-20 00:00:00r   r]   r   r   rj   )
r   r,   r7   r   r6   rf   rg   rh   rn   ro   )rC   drr   r!   r!   r"   test_numpy_minmax_datetime64  s&   "z0TestIndexReductions.test_numpy_minmax_datetime64c                 C   s   t tdddgdd}|jrJ |dd  jsJ t dtddtgdd}|jr(J ||fD ]}| tdddks:J | tdddksFJ q,| dksOJ | dksWJ | dks_J | d	ksgJ d S )
Nr   r   r   r   r   rM   r   rl   r   )r   r	   r   r7   r
   r6   rn   ro   r   r!   r!   r"   test_minmax_period  s   

z&TestIndexReductions.test_minmax_perioddatac                 C   s(   t |dd}t|| }|tu sJ d S )NMr   )r   r=   r	   )rC   r}   r   r8   rD   r!   r!   r"   test_minmax_period_empty_nat  s   z0TestIndexReductions.test_minmax_period_empty_natc                 C   sd  t jddd}t|tdddksJ t|tdddks!J d}tjt|d tj|dd	 W d    n1 s<w   Y  tjt|d tj|dd	 W d    n1 sZw   Y  t	|dkshJ t
|d
ksqJ d}tjt|d tj	|dd	 W d    n1 sw   Y  tjt|d tj
|dd	 W d    d S 1 sw   Y  d S )Nr   r   r   r   r   r   r]   r   r   rj   )rP   period_ranger,   r7   r
   r6   rf   rg   rh   rn   ro   )rC   prr   r!   r!   r"   test_numpy_minmax_period  s&   "z,TestIndexReductions.test_numpy_minmax_periodc                 C   s   t jtdtddd}d}tjt|d |  W d    n1 s$w   Y  d}tjt|d |  W d    n1 sAw   Y  t jtdtddd}| d	ksZJ | d
ksbJ d S )NaabbcacabF
categoriesorderedzwCategorical is not ordered for operation min\nyou can use .as_ordered\(\) to change the Categorical to an ordered one\nr]   zwCategorical is not ordered for operation max\nyou can use .as_ordered\(\) to change the Categorical to an ordered one\nTcrr   )rP   CategoricalIndexlistrf   rg   r   r7   r6   )rC   cird   r!   r!   r"   test_min_max_categorical(  s   

z,TestIndexReductions.test_min_max_categoricalN)r   r   r   rf   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r!   r!   r!   r"   r      s2    


5

 r   c                   @   s  e Zd Zdd Zejdg dejdddgejdd	d
gdd Zejdddgejdg ddd Zejdg ddd Z	dd Z
ejdddgejdddgdd Zejdddgejdddgdd Zd d! Zejd"d#d$gd%d& Zejdd'ejd(ddgd)d* Zd+d, Zd-d. Zd/d0 Zd1d2 Zd3d4 Zd5d6 Zd7d8 Zd9d: Zd;d< Zejd=d>d?gejd(ddgd@dA Zejd=d>d?gejdBddCgdCdgdejgejdggdDdE Zejdg dFejd=d>d?gejd(ddgejdGg dHddgddggfg dIddgddggfejejejgejejgddggfdJejdJgejdgddggfdKejdKgdejgddggfdKejdJgddgddggfgdLdM ZdNdO Z dPdQ Z!dRdS Z"dTdU Z#ejdVe$g ddWe%fe$g dXe&fe$dYdZge&fe$d[d[d\d\dCejd]ge&fgd^d_ Z'd`da Z(dbdc Z)ddde Z*dfdg Z+dhdi Z,djdk Z-dldm Z.dCS )nTestSeriesReductionsc              	   C   s  t tjdd}| }tj|dd< tj|dd< t|	 s&J tjdd
d}tj|d d df< d}tjt|d( td	d
 t|	 |	  W d    n1 s`w   Y  W d    n1 sow   Y  tj|dd}t| sJ d S )Nr   r   rj      )d   r   f4"use_inf_as_na option is deprecatedr]   mode.use_inf_as_naTrM   rx   )r   r,   r-   r.   r/   copyinfrp   isinfr   rA   r$   r`   ra   rP   option_contextassert_almost_equalr   nansumall)rC   r   s2r    rd   rR   r!   r!   r"   test_sum_infA  s    z!TestSeriesReductions.test_sum_infrT   )rI   Float32rN   rO   rG   use_bottleneckTFzmethod, unit)r           )r         ?c                 C   sP  t d| tg |d}t|| }||ksJ t||dd}||ks(J t||dd}t|s6J t||dd}||k t||ddd}||ksQJ t||ddd}t|s`J t||d	dd}||ksoJ t||d	dd}t|s~J ttjg|d}t|| }||ksJ t||dd}||ksJ t||dd}t|sJ t||dd}||k t||ddd}||ksJ t||ddd}t|sJ ttjdg|d}t|| }|d
ksJ t||dd}|d
ksJ t||dd}|d
ks
J t||dd}|d
ksJ t||ddd}|d
ks)J ttd|d}t||d|k	 s@J tdg|d}t||dd}t|sVJ t||d	dd}t|sfJ ttjg|d}t||dd}t|s}J ttjdg|d}t||dd}t|sJ W d    d S 1 sw   Y  d S )Nr  rS   r   )	min_countrM   TrV   )rW   r  Fr  )r   r   r   )
rP   r   r   r=   r   r,   rp   r   emptyr  )rC   methodunitr  rT   r   rD   r   r!   r!   r"   
test_emptyU  sp   $zTestSeriesReductions.test_emptyr
  r   r   )Float64rN   rO   c                 C   sT   t g |d}t|| }|tju sJ t tjg|d}t|| }|tju s(J d S NrS   )r   r=   rP   rQ   r,   rp   )rC   r
  rT   eserrD   nserr!   r!   r"   &test_ops_consistency_on_empty_nullable  s   z;TestSeriesReductions.test_ops_consistency_on_empty_nullable)r   r   r   r   c                 C   s   t ttd| }t|sJ tg dd}|dkr@dg d}tjt|d t ||  W d    d S 1 s9w   Y  d S t || }|tu sLJ d S )NrS   m8[ns]r   r   )zoperation 'var' not allowedz.cannot perform var with type timedelta64\[ns\]z does not support reduction 'var'r]   )	r=   r   floatr   r   rf   rg   r   r	   )rC   r
  rD   tdserrd   r!   r!   r"   test_ops_consistency_on_empty  s   "z2TestSeriesReductions.test_ops_consistency_on_emptyc                 C   s0   t dtjgddgd}t|}t|d d S )Nr  r   rM   r   )r   r,   rp   r   r$   r   )rC   serrD   r!   r!   r"   test_nansum_buglet  s   
z'TestSeriesReductions.test_nansum_bugletint32r<   c                 C   s   t d|D tjd|d}t|}|jdd}t||jddks$J |jdd}t|dks2J |jdd}t||d ksBJ W d    d S 1 sMw   Y  d S )	Nr  @KL rS   FrV   r<   r   r_   )	rP   r   r,   rm   r   r   intr7   r6   rC   r  rT   vr   rD   r!   r!   r"   test_sum_overflow_int  s   "z*TestSeriesReductions.test_sum_overflow_intfloat32rI   c                 C   s   t d|F tjd|d}t|}|jdd}||j|dks"J |jdd}tt|ds2J |j	dd}tt||d sDJ W d    d S 1 sOw   Y  d S )Nr  r  rS   FrV   r  r_   )
rP   r   r,   rm   r   r   r7   allcloser  r6   r  r!   r!   r"   test_sum_overflow_float  s   "z,TestSeriesReductions.test_sum_overflow_floatc                 C   s\   d}d}t |g| }t|g| dd}t |}| }|| dks&J |dks,J d S )Nl     ;r   rN   rS   r   g ؅W4vC)r,   arrayr   r   )rC   rX   
n_elementsnar  result_numpyresult_maskedr!   r!   r"   test_mean_masked_overflow  s   
z.TestSeriesReductions.test_mean_masked_overflowz	ddof, exp)rM         @)r   rH   c                 C   sT   t g ddd}t g ddd}|j|d}|j|d}||ks"J ||ks(J d S )N)rM   r   rl   rk   rj   rN   rS   r<   )ddof)r   r   )rC   r)  expr  ser_numpy_dtyperD   result_numpy_dtyper!   r!   r"   test_var_masked_array  s   z*TestSeriesReductions.test_var_masked_array)r  r  r;   zM8[ns, UTC]rW   c                 C   s<   t g |dj|dtu sJ t g |dj|dtu sJ d S )NrS   rV   )r   r7   r	   r6   )rC   rT   rW   r!   r!   r"   +test_empty_timeseries_reductions_return_nat  s    z@TestSeriesReductions.test_empty_timeseries_reductions_return_natc                 C      t dd}t||d}t |}t |}||ksJ | }||ks&J d}tjt|d t j||d W d    d S 1 sBw   Y  d S NrM   rL   r  r   r]   r   )r,   rm   r   rn   rf   rg   rh   rC   r   r   rD   rE   rd   r!   r!   r"   test_numpy_argmin#  s   

"z&TestSeriesReductions.test_numpy_argminc                 C   r/  r0  )r,   rm   r   ro   rf   rg   rh   r1  r!   r!   r"   test_numpy_argmax5  s   

"z&TestSeriesReductions.test_numpy_argmaxc                 C   st  t ddtjgtg dd}d}tjt|d |jdd}W d    n1 s(w   Y  |tu s3J d	}tjt|d |j	dd}W d    n1 sMw   Y  |tu sXJ |
 }d
}tjt|d |jdd}W d    n1 svw   Y  |jdksJ |  sJ d}tjt|d |j	dd}W d    n1 sw   Y  |jdksJ |  sJ d S )Nr  rH   )r	   z
2015-02-08r	   r  0The behavior of Series.idxmin with all-NA valuesr]   FrV   0The behavior of Series.idxmax with all-NA valuesz3The behavior of DataFrame.idxmin with all-NA valuesr;   z3The behavior of DataFrame.idxmax with all-NA values)r   r,   rp   r   r$   r`   ra   idxminr	   idxmaxr   rT   r   r  )rC   r  rd   rR   r   r!   r!   r"   test_idxmin_dt64indexF  s4   z*TestSeriesReductions.test_idxmin_dt64indexc                 C   sL  t  d}tj|dd< ||  | ksJ d}t jt|d t	|jdds.J W d    n1 s8w   Y  |
 }||  | ksMJ |jj | |j ks_J |tj }t jt|d t	| stJ W d    n1 s~w   Y  ttdd	d
}| }|dksJ tj|d< | }|dksJ d S )Nr1   rj      zThe behavior of Series.idxminr]   FrV   20130102r   rt   r   rM   )r$   makeStringSeriesr{   r,   rp   r6  r7   r`   ra   r   r   r   r?   tolistrn   r   r   rC   string_seriesrd   nonaallnar   rD   r!   r!   r"   test_idxmin`  s(   $

z TestSeriesReductions.test_idxminc                 C   s  t  d}tj|dd< ||  | ksJ d}t jt|d t	|jdds.J W d    n1 s8w   Y  |
 }||  | ksMJ |jj | |j ks_J |tj }d}t jt|d t	| svJ W d    n1 sw   Y  ttdd	d
}| }|dksJ tj|d< | }|dksJ tg dg d}| }|dksJ | }|dksJ t|j|j}| }|dksJ | }|dksJ d S )Nr1   rj   r9  r5  r]   FrV   r:  r   r;  rk   r   )皙?g @@rD  rC  )r$   r<  r{   r,   rp   r7  r6   r`   ra   r   r   r   r?   r=  ro   r   r   r6  r>  r!   r!   r"   test_idxmax  s>   $

z TestSeriesReductions.test_idxmaxc                 C   sD   t  }|dk}| rJ | sJ tddg}| s J d S )Nr   abcT)r$   makeTimeSeriesr  anyr   )rC   tsbool_seriesr   r!   r!   r"   test_all_any  s   z!TestSeriesReductions.test_all_anyc                 C   sF   |g d}t |rJ t |sJ tg d}t |s!J d S )N)r   rM   r   r   )r,   r  rH  r   )rC   rY   r   r!   r!   r"   test_numpy_all_any  s
   z'TestSeriesReductions.test_numpy_all_anyc                 C   s`   t tjdg}t tjdg}|jddsJ |jddsJ |jdds&J |jddr.J d S )NTFrV   )r   r,   rp   r  rH  )rC   s1r  r!   r!   r"   test_all_any_skipna  s   z(TestSeriesReductions.test_all_any_skipnac                 C   s8   t g dg dd}|jddsJ |jddrJ d S )N)FFTTFT)r   r   rM   rM   r   r   r  T)	bool_only)r   rH  r  )rC   r   r!   r!   r"   test_all_any_bool_only  s   z+TestSeriesReductions.test_all_any_bool_onlybool_agg_funcrH  r  c                 C   s4   t g dtd}t|||d}d}||ksJ d S )N)r   rr   r   derS   rV   T)r   rG   r=   )rC   rQ  rW   r  rD   rE   r!   r!   r"   test_any_all_object_dtype  s   z.TestSeriesReductions.test_any_all_object_dtyper   Nc                 C   s8   t |}t||dd}|dkod |v}||ksJ d S )NFrV   rH  )r   r=   )rC   r   rQ  r  rD   rE   r!   r!   r"   !test_any_all_object_dtype_missing  s   z6TestSeriesReductions.test_any_all_object_dtype_missing)rO   rN   UInt64r  zdata,expected_data)r   r   r   )rM   rM   rM   r   rM   c           	      C   sT   t ||d}|| |dk }t|||d}|tju r |tju s(||ks&J d S d S )NrS   r  rV   )r   r=   rP   rQ   )	rC   rQ  rW   r   rT   expected_datar  rE   rD   r!   r!   r"   "test_any_all_nullable_kleene_logic  s   (z7TestSeriesReductions.test_any_all_nullable_kleene_logicc                 C   s@   t ddgddgd}|jddd}tddg}t|| d S )NTFrM   r   r   )ry   rO  )r   rH  r   r$   r|   )rC   r   rD   rE   r!   r!   r"   test_any_axis1_bool_only  s   z-TestSeriesReductions.test_any_axis1_bool_onlyc                 C   s  t dddj}t|}t|}d}tjt|d0 | sJ | s%J | s+J | s1J |  s9J |  sAJ W d    n1 sKw   Y  |	d}t|}t|}tjt|d0 | skJ | sqJ | swJ | s}J |  sJ |  sJ W d    n1 sw   Y  ||d  }t|}t|}| sJ | rJ | sJ | rJ |  sJ |  rJ d S )Nz
1995-01-02rl   r;  z0'(any|all)' with datetime64 dtypes is deprecatedr]   rs   r   )
r   _datar   r   r$   r`   ra   r  rH  r)   )rC   dtar  r   rd   tdar!   r!   r"   test_any_all_datetimelike
  s@   
z.TestSeriesReductions.test_any_all_datetimelikec                 C   s   t d tddgdd}| sJ | rJ td dgdd}| s'J | s-J |jddr5J td dgdd}| rCJ | rIJ tddgdd}| sWJ | s]J d S )	Npyarrow r   zstring[pyarrow_numpy]rS   FrV   rr   )rf   importorskipr   rH  r  rC   r  r!   r!   r"   test_any_all_pyarrow_string9  s   
z0TestSeriesReductions.test_any_all_pyarrow_stringc                 C   s  t dddd}t|td }| }|dksJ | }|dks#J tj|d< | }|dks2J | }|dks<J tt ddd	}tt d
dd	}t|| }t|| }t	|| ||  }t	|| |
 }td}||ksyJ | }td}||ksJ d S )Nz2012-1-1rl   r   rt   r:   20120101r   r   rM   r;  20120102r   r   )r   r   r   r6  r7  r,   rp   absr$   r|   r6   r   r7   )rC   dtir   rD   rM  r  rE   r!   r!   r"   test_timedelta64_analyticsM  s0   
z/TestSeriesReductions.test_timedelta64_analyticsztest_input,error_typerS   foobarbazrM   r   rj  rk  rl  c                 C   s   t g dd}d}tjt|d |  W d   n1 sw   Y  tjt|d |jdd W d   n1 s;w   Y  d}tjt|d |  W d   n1 sXw   Y  tjt|d |jdd W d   dS 1 svw   Y  dS )	zU
        Cases where ``Series.argmax`` and related should raise an exception
        rI   rS   z*attempt to get argmin of an empty sequencer]   NFrV   z*attempt to get argmax of an empty sequence)r   rf   rg   rh   r6  r7  )rC   
test_input
error_typerd   r!   r!   r"   "test_assert_idxminmax_empty_raisesv  s   

"z7TestSeriesReductions.test_assert_idxminmax_empty_raisesc                 C   s  t g d}| dksJ |jdddksJ | dks J |jdddks*J t ddg}| dks8J |jdddksBJ | dksJJ |jdddksTJ t ddd	d	d tjd
g}d}tjt|d |  W d    n1 sxw   Y  tjt|d |jdd W d    n1 sw   Y  d}tjt|d |  W d    n1 sw   Y  tjt|d |jdd W d    d S 1 sw   Y  d S )Nri  r   FrV   rM   rm  rn  rj  rk  rl  z8'>' not supported between instances of 'float' and 'str'r]   z8'<' not supported between instances of 'float' and 'str')r   r7  r6  r,   rp   rf   rg   r   )rC   r  ser2ser3rd   r!   r!   r"   test_idxminmax_object_dtype  s2   

"z0TestSeriesReductions.test_idxminmax_object_dtypec                 C   s>   t ddgddgddgg}| }tddg}t|| d S )	Nzimmr(  biffr  bidg      (@r   r   )r   r7  r   r$   r|   )rC   r   rR   r*  r!   r!   r"   test_idxminmax_object_frame  s   z0TestSeriesReductions.test_idxminmax_object_framec                 C   sX   t g d}| dksJ | dksJ |jdddks J |jdddks*J d S )N))rM   rl   )r   r   )rl   rM   r   r   FrV   )r   r7  r6  ra  r!   r!   r"   test_idxminmax_object_tuples  s
   z1TestSeriesReductions.test_idxminmax_object_tuplesc                 C   sp   t ddgtdtdgtdtdgd}| }tdddd}t|| | }|d }t|| d S )Nr   rM   z8.68z42.23z7.11z79.61)r   xy)r   r   r7  r   r$   r|   r6  )rC   r   rR   r*  res2exp2r!   r!   r"   test_idxminmax_object_decimals  s   z3TestSeriesReductions.test_idxminmax_object_decimalsc                 C   s\   t ddgdd}| dksJ | dksJ |jdddks"J |jdddks,J d S )Nr   rM   rG   rS   FrV   )r   ro   rn   ra  r!   r!   r"   test_argminmax_object_ints  s
   z/TestSeriesReductions.test_argminmax_object_intsc              	   C   s  t dtj tjtjg}| dksJ d}tjt|d t|jdds)J W d    n1 s3w   Y  |	 dks@J d}tjt|d t|j	ddsUJ W d    n1 s_w   Y  d	}tjt|dK t
d
d, | dks}J t|jddsJ |	 dksJ t|j	dd W d    n1 sw   Y  W d    d S W d    d S 1 sw   Y  d S )Nr   rM   r4  r]   FrV   r   r5  r   r   T)r   r,   r   rp   r6  r$   r`   ra   rb   r7  rP   r   )rC   r   rd   r!   r!   r"   test_idxminmax_with_inf  s,   "z,TestSeriesReductions.test_idxminmax_with_infc                 C   s0   t dgdd}| }td}t|| d S )Nl     9V uint64rS   )r   r   r,   r  r$   r   )rC   r   rD   rE   r!   r!   r"   test_sum_uint64  s   
z$TestSeriesReductions.test_sum_uint64)/r   r   r   r  rf   r   r   r  r  r  r  r  r!  r'  r-  r.  r2  r3  r8  rB  rE  rK  rL  rN  rP  rT  r,   rp   rU  rP   rQ   rX  rY  r]  rb  rh  r   rh   r   rq  rt  rx  ry  r~  r  r  r  r!   r!   r!   r"   r   <  s    `

	!/
	 	"
/)
r   c                	   @   s   e Zd Zejdeeegeeedgeededggdd Z	ejde
eege
eedge
ededggdd Zdd	 Zd
d ZdS )TestDatetime64SeriesReductionsnat_sernatc                 C   sL   |  tu sJ | tu sJ |j ddtu sJ |jddtu s$J d S r   r7   r	   r6   )rC   r  r!   r!   r"   test_minmax_nat_series  s   
z5TestDatetime64SeriesReductions.test_minmax_nat_seriesnat_dfc                 C   s\   |  d tu s
J | d tu sJ |j ddd tu s J |jddd tu s,J d S )Nr   FrV   r  )rC   r  r!   r!   r"   test_minmax_nat_dataframe  s   
z8TestDatetime64SeriesReductions.test_minmax_nat_dataframec                 C   s   t dd}|tjdt|}| }| }t	|t
s"J t	|t
s)J ||d ks1J ||d ks9J | |d ksCJ | |d ksMJ d S )N1/1/2000z
12/31/2000r   r   r_   )r   taker,   r-   r.   permutationlenr7   r6   r>   r   )rC   rngrng2the_minthe_maxr!   r!   r"   test_min_max  s   
z+TestDatetime64SeriesReductions.test_min_maxc                 C   s   t dddd}g d}t|tjdt||d}|j }t	|jj
d }t|t	s0J ||ks6J |j }t	|jj
d	 }t|t	sJJ ||ksPJ d S )
Nr  r   4hrc  )
r   r   r   r   r   r   Cr  r  r  r   )TSVLr_   r   )r   r   r,   r-   r.   r/   r  r  r6   r   iatr>   r7   )rC   r  lvlsr   rD   r*  r!   r!   r"   test_min_max_series%  s    

z2TestDatetime64SeriesReductions.test_min_max_seriesN)r   r   r   rf   r   r   r   r	   r   r  r   r  r  r  r!   r!   r!   r"   r    s&    



r  c                   @   s   e Zd Zejdddgdd Zejdededfededfedej	g edfg d	g d
fdddej	gg d
fgejdddgdd Z
ejdddgejdddgdd Zejdddgejdddgdd ZdS )TestCategoricalSeriesReductionsfunctionr7   r6   c                 C   s^   t tg ddd}d| }tjt|d t||  W d    d S 1 s(w   Y  d S )N)r   rr   r   rR  F)r   z)Categorical is not ordered for operation r]   )r   r   rf   rg   r   r=   )rC   r  catrd   r!   r!   r"   test_min_max_unordered_raises@  s
   
"z=TestCategoricalSeriesReductions.test_min_max_unordered_raiseszvalues, categoriesrF  cbar   rl   r   rM   rM   r   rl   c                 C   sJ   t t||dd}t||dd}|dkr|d n|d }||ks#J d S )NTr   rV   r7   r   r   )r   r   r=   )rC   r?   r   r  r  rD   rE   r!   r!   r"   test_min_max_orderedH  s   z4TestCategoricalSeriesReductions.test_min_max_orderedrW   TFc                 C   s<   t ttjgddgdd}t|||d}|tju sJ d S )NrM   r   Tr   rV   r   r   r,   rp   r=   )rC   r  rW   r  rD   r!   r!   r"   "test_min_max_ordered_with_nan_onlyZ  s   zBTestCategoricalSeriesReductions.test_min_max_ordered_with_nan_onlyc                 C   sj   t tddtjdgddgdd}t|||d}|du r,|dkr"dnd}||ks*J d S |tju s3J d S )Nr   rr   Tr   rV   r7   r  )rC   r  rW   r  rD   rE   r!   r!   r"   test_min_max_skipnab  s   z3TestCategoricalSeriesReductions.test_min_max_skipnaN)r   r   r   rf   r   r   r  r   r,   rp   r  r  r  r!   r!   r!   r"   r  ;  s(    

r  c                   @   sB  e Zd Zejddeg ejdfdeg ejdfgdd Z	ejddg dd	gfdg d
d	dgfdg dd	gfdg d
d	dgfgejde
ejd ejd  dd Zejdddgfdd	ejgfgdd Zejdddgdgdgfddgejgdgfgdd Zejdddgdgfddgejgfgdd Zejddg ddd gfdejgejdd gfgd!d" Zejddg d#d$d%gfdejgejd$d%gfgd&d' Zejdded	d(gd	d(gd)ed*gd	d*gd)edd	gg d+dd,fdeejgd	d(gd)eejd*gd	d*gd)eejdd	gg d+dd,fgd-d. Zejddd/gd	d/gfdd/gd	d/gfgd0d1 Zd2d3 Zd4d5 Zejd6g d7ed	gejdejfg d7ed	gejdejfg d8ed9gejdejfgd:d; Zejd6g d<eg d=ejdejfg d>ed?d9gejdejfgd@dA ZdBS )CTestSeriesModezdropna, expectedTrS   Fc                 C   s(   t g tjd}||}t|| d S r  )r   r,   rI   moder$   r|   rC   r   rE   r   rD   r!   r!   r"   test_mode_emptyv  s   
zTestSeriesMode.test_mode_emptyzdropna, data, expected)rM   rM   rM   r   rM   )rM   rM   rM   r   rl   rl   rl   rl   dt
AllIntegerFloatc                 C   s2   t ||d}||}t ||d}t|| d S r  r   r  r$   r|   )rC   r   r   rE   r  r   rD   r!   r!   r"   test_mode_numerical  s   
z"TestSeriesMode.test_mode_numericalr  c                 C   s8   t dddtjtjg}||}t |}t|| d S )NrM   r   )r   r,   rp   r  r$   r|   r  r!   r!   r"   test_mode_numerical_nan  s   
z&TestSeriesMode.test_mode_numerical_nanz'dropna, expected1, expected2, expected3rr   rk  rp   c                 C   s   dgd dgd  }t |dd}||}t |dd}t|| dddtjtjtjg}t |td}||}t |td}t|| dddtjtjtjg}t |tdt}||}t |td}t|| d S )	Nr   r   rr   rl   r   rS   rj  rk  )	r   r  r$   r|   r,   rp   rG   rA   str)rC   r   	expected1	expected2	expected3r   r   rD   r!   r!   r"   test_mode_str_obj  s   


z TestSeriesMode.test_mode_str_objzdropna, expected1, expected2rj  c                 C   sj   t g d}||}t |}t|| t dddtjtjtjg}||}t |td}t|| d S )N)rM   rj  rj  rM   rj  rS   )r   r  r$   r|   r,   rp   rG   )rC   r   r  r  r   rD   rE   r!   r!   r"   test_mode_mixeddtype  s   

z#TestSeriesMode.test_mode_mixeddtype)
1900-05-03r   
2013-01-02r   r  c                 C   h   t g ddd}||}t |dd}t|| t g ddd}||}t |dd}t|| d S )N)r   r  r  rp   rp   r;   rS   )r   r  r  r   r  rp   rp   r  rC   r   r  r  r   rD   r!   r!   r"   test_mode_datetime  s   
	
z!TestSeriesMode.test_mode_datetime)-1 days0 daysr   2 min1 dayc                 C   r  )N)r   r  r  rp   rp   r   rS   )r  r  z-1 dayz-1 day 2 minr  r  rp   rp   r  r  r!   r!   r"   test_mode_timedelta  s   



z"TestSeriesMode.test_mode_timedeltar   )r   r   r  r   c              	   C   s   t tddtjtjg}||}t |dd}t|| t tdddtjtjg}||}t |dd}t|| t tdddddtjtjgg ddd	}||}t |dd}t|| d S )
NrM   r   categoryrS   r   rl   r  Tr   )r   r   r,   rp   r  r$   r|   )rC   r   r  r  r  r   rD   r!   r!   r"   test_mode_category  s    


z!TestSeriesMode.test_mode_category            c                 C   sp   t g dtjd}||}t |tjd}t|| t ddgtjd}||}t |tjd}t|| d S )N)rM   r  r  rS   rM   r  )r   r,   r  r  r$   r|   r  r!   r!   r"   test_mode_intoverflow,  s   

z$TestSeriesMode.test_mode_intoverflowc                 C   sz   t dtjg}t dddtjtjg}tt |jdd}| jdd}W d    n1 s0w   Y  t	|| d S )Nrj  rM   F)r   T)drop)
r   r,   rp   r$   r`   UserWarningr  sort_valuesreset_indexr|   )rC   rE   r   rD   r!   r!   r"   test_mode_sortwarning<  s   z$TestSeriesMode.test_mode_sortwarningc                 C   s>   t dddtjgdd}| }t ddidd}t|| d S )NTFrO   rS   r   )r   rP   rQ   r  r$   r|   )rC   r  rD   rE   r!   r!   r"   test_mode_boolean_with_naI  s   z(TestSeriesMode.test_mode_boolean_with_nazarray,expected,dtype)r                 ?rM   rM         ?      ?      ?       @)r                 @r  r  c                 C       t ||d }t|| d S r  r  rC   r"  rE   rT   rD   r!   r!   r"   test_single_mode_value_complexP  s   z-TestSeriesMode.test_single_mode_value_complex)r   r  rM   r  r  )y                r  y      ?        r  r  )r  r  r  r  rl   r  c                 C   r  r  r  r  r!   r!   r"   test_multimode_complexh  s   z%TestSeriesMode.test_multimode_complexN)r   r   r   rf   r   r   r   r,   rI   r  r   	typecodesr  rp   r  r  r  r  r  r   r  r  r  r  
complex128	complex64r  r  r!   r!   r!   r"   r  q  s    "
	 
$






r  )%r   r   decimalr   numpyr,   rf   pandasrP   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   pandas._testing_testingr$   pandas.corer   r3   r4   r   r   r  r  r  r!   r!   r!   r"   <module>   s.    H <  P     =G6