o
    _~#gf                     @   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mZ d dl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period_rangetimedelta_rangeto_timedelta)nanops)ArrowStringArrayNumpySemanticsc                     s   t ddgd ddt tdtjddt tdtjddttddd	ddttddd	ddjd
dtt	ddddddt dd t
dD ddg} tjdd  fdd| D }| | }|S )NTF   a)name
   dtyper   
2020-01-01periodsz
US/EasterntzDr    freqc                 S   s   g | ]}t |qS  )str.0ir&   r&   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/site-packages/pandas/tests/reductions/test_reductions.py
<listcomp>-   s    zget_objs.<locals>.<listcomp>   c                    s   g | ]	}t  |d dqS )r   indexr   )r   )r)   idxarrr&   r+   r,   1   s    )r   nparangeint64float64r   r   tz_localizer   r   rangerandomdefault_rngstandard_normal)indexesseriesobjsr&   r1   r+   get_objs#   s   r?   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trt t|j| }nt |j| }ntt |j| |j	d}t |dd d urI|
d
d}|j|ksGJ d S ||ksOJ d S )N)ordinalr%   r"   M8[ns]r5   )getattr
isinstancer   valuesr   r3   arrayr
   asi8r%   astype_value)selfrA   rD   resultexpectedr&   r&   r+   test_ops8   s   
zTestReductions.test_opsz
dtype, val)object       @)r6   rS   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 )NrT   )rX   rY   )r	   pdNAr   )resr   r&   r+   check_missing^   s
   
z4TestReductions.test_nanminmax.<locals>.check_missingr]   FskipnarR   )rG   )rN   rA   r   valindex_or_seriesklassr^   rD   r&   r]   r+   test_nanminmaxO   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argr0   rU   rV   rW   zNThe behavior of (DatetimeIndex|Series).argmax/argmin with skipna=False and NAsz2The behavior of Series.(idxmax|idxmin) with all-NAmatchFr_   )
r   r	   r   rG   r   tmassert_produces_warningFutureWarningr3   isnan)rN   rA   rb   rc   arg_oprD   msgrO   r&   r&   r+   test_nanargminmaxz   s,   z TestReductions.test_nanargminmaxr   rF   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 )Nre   r0   r]   Fr_   zempty sequencerf   )r   rG   r	   pytestraises
ValueError)rN   rA   rb   r   rc   rm   rD   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 )Nr   r5   r]   r      rW   r-      z=The behavior of Index.argmax/argmin with skipna=False and NAsrf   Fr_   rh   zEThe behavior of DatetimeIndex.argmax/argmin with skipna=False and NAsrU   rV   )r   r3   r4   argminargmaxnanri   rj   rk   r	   r   )rN   rD   rn   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:00ru   UTC)r    r"   r   )columnsi  secondsrz   rW   axis)	r   r   r   subtractr   rG   renameri   assert_series_equal)rN   opexpected_coldfrO   rP   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)rZ   to_datetimer7   r   rG   r3   ri   r   )rN   tz_aware_fixturer   r"   re   rP   rO   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 )NrW   r-   timedelta64[ns]r]   rX   ABru   )	r   r   r	   r3   rx   r   sumri   r   )rN   r   rP   rO   r&   r&   r+   test_nan_int_timedelta_sum   s   z)TestReductions.test_nan_int_timedelta_sumN)__name__
__module____qualname__rp   markfilterwarningsparametrizer?   rQ   r   rd   ro   rs   ry   r   r   r   r&   r&   r&   r+   r@   7   s:    
 
+


r@   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  ru   )i  r   i)@B rt   )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 NFr_   )r   _valuesrB   rC   r   )rN   startstopstepr0   rP   rO   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_increasingr3   rx   rC   r   rB   rv   rw   rN   idx1idx2r0   r&   r&   r+   test_minmax_timedelta64  s   

z+TestIndexReductions.test_minmax_timedelta64r   rC   rB   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   rG   r	   rN   r   rD   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 daysr#   r%   $the 'out' parameter is not supportedrf   r   outr   )
r   r3   rC   r   rB   rp   rq   rr   rv   rw   )rN   tderrmsgr&   r&   r+   test_numpy_minmax_timedelta648  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 20130101r}   r   r   r(   r&   r&   r+   r,   Q     " z:TestIndexReductions.test_timedelta_ops.<locals>.<listcomp>r   	   r}   r   g?i(
  msz00:00:09z00:01:21z
2015-02-03z
2015-02-07rt   )daysz
2015-02-15   )r   r8   diffmeanr   r   to_framequantiler   r3   timedelta64medianr   stddropnarI   r   )rN   sr   rO   rP   r&   r&   r+   test_timedelta_opsM  sB   
z&TestIndexReductions.test_timedelta_opsrA   )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 ''rf   F)numeric_only)	r   r8   r   joinrp   rq   	TypeErrorrG   r   )rN   rA   r   r   rn   r&   r&   r+   test_invalid_td64_reductions  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	   rC   r   rB   rv   rw   )rN   tz_naive_fixturer"   r   r   r0   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   rG   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rW   r-   ru   r   rf   r   r   )
r   rI   rB   r3   rC   rp   rq   rr   rw   rv   )rN   r0   rP   rO   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   ru   r   r   rf   r   )r   r3   rB   rC   rp   rq   rr   )rN   r0   rO   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   rf   r   r   r   )
r   r3   rC   r   rB   rp   rq   rr   rv   rw   )rN   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   rW   r   ru   r-   )r   r	   r   rC   r
   rB   rv   rw   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   rG   r	   )rN   r   r   rD   rO   r&   r&   r+   test_minmax_period_empty_nat  s   z0TestIndexReductions.test_minmax_period_empty_natc                 C   sb  t 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 sYw   Y  t|dksgJ t	|d
kspJ 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   rf   r   r   r   )
r   r3   rC   r
   rB   rp   rq   rr   rv   rw   )rN   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\nrf   zwCategorical is not ordered for operation max\nyou can use .as_ordered\(\) to change the Categorical to an ordered one\nTcrz   )rZ   CategoricalIndexlistrp   rq   r   rC   rB   )rN   cirn   r&   r&   r+   test_min_max_categorical0  s   

z,TestIndexReductions.test_min_max_categoricalN)r   r   r   rp   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   r      )d   r   f4"use_inf_as_na option is deprecatedrf   mode.use_inf_as_naTrW   r   )r   r3   r9   r:   r;   copyinfrx   isinfr   rL   ri   rj   rk   rZ   option_contextassert_almost_equalr   nansumall)rN   r   s2r2   rn   r\   r&   r&   r+   test_sum_infI  s    z!TestSeriesReductions.test_sum_infr   )r6   Float32rX   rY   rR   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  r]   r   )	min_countrW   Tr_   )r`   r
  Fr	  )r   r   r-   )
rZ   r   r   rG   r   r3   rx   r   emptyr  )rN   methodunitr  r   r   rO   r   r&   r&   r+   
test_empty]  sp   $zTestSeriesReductions.test_emptyr  r   r   )Float64rX   rY   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 Nr]   )r   rG   rZ   r[   r3   rx   )rN   r  r   eserrO   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 )Nr]   m8[ns]r   r   )zoperation 'var' not allowedz.cannot perform var with type timedelta64\[ns\]z does not support reduction 'var'rf   )	rG   r   floatr   r   rp   rq   r   r	   )rN   r  rO   tdserrn   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   rW   r/   )r   r3   rx   r  ri   r  )rN   serrO   r&   r&   r+   test_nansum_buglet  s   
z'TestSeriesReductions.test_nansum_bugletint32r5   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 r]   Fr_   r5   r   rh   )	rZ   r   r3   r4   r   r   intrC   rB   rN   r  r   vr   rO   r&   r&   r+   test_sum_overflow_int  s   "z*TestSeriesReductions.test_sum_overflow_intfloat32r6   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  r]   Fr_   r  rh   )
rZ   r   r3   r4   r   r   rC   allcloser  rB   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   rX   r]   r   g ؅W4vC)r3   rJ   r   r   )rN   ra   
n_elementsnar  result_numpyresult_maskedr&   r&   r+   test_mean_masked_overflow  s   
z.TestSeriesReductions.test_mean_masked_overflowz	ddof, exp)rW         @)r   rS   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)rW   r-   ru   rt   r   rX   r]   r5   )ddof)r   r   )rN   r*  expr  ser_numpy_dtyperO   result_numpy_dtyper&   r&   r+   test_var_masked_array  s   z*TestSeriesReductions.test_var_masked_array)r  r  rF   zM8[ns, UTC]r`   c                 C   s<   t g |dj|dtu sJ t g |dj|dtu sJ d S )Nr]   r_   )r   rC   r	   rB   )rN   r   r`   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 NrW   rV   r  r   rf   r   )r3   r4   r   rv   rp   rq   rr   )rN   r   r   rO   rP   rn   r&   r&   r+   test_numpy_argmin+  s   

"z&TestSeriesReductions.test_numpy_argminc                 C   r0  r1  )r3   r4   r   rw   rp   rq   rr   )rN   r   r  rO   rP   rn   r&   r&   r+   test_numpy_argmax=  s   

"z&TestSeriesReductions.test_numpy_argmaxc                 C   s  t g d|}tddtjg|d}d}tjt|d |jdd}W d    n1 s-w   Y  |t	u s8J d	}tjt|d |j
dd}W d    n1 sRw   Y  |t	u s]J | }d
}tjt|d |jdd}W d    n1 s{w   Y  |jd| dksJ |  sJ d}tjt|d |j
dd}W d    n1 sw   Y  |jd| dksJ |  sJ d S )N)r	   z
2015-02-08r	   r	  rS   r  0The behavior of Series.idxmin with all-NA valuesrf   Fr_   0The behavior of Series.idxmax with all-NA valuesz3The behavior of DataFrame.idxmin with all-NA valueszM8[]z3The behavior of DataFrame.idxmax with all-NA values)r   as_unitr   r3   rx   ri   rj   rk   idxminr	   idxmaxr   r   r   r  )rN   r  dtir  rn   r\   r   r&   r&   r+   test_idxmin_dt64indexN  s2   z*TestSeriesReductions.test_idxmin_dt64indexc                 C   sR  t tdtjdd}tj|dd< ||  | ksJ d}tjt	|d t
|jdd	s1J W d    n1 s;w   Y  | }||  | ksPJ |jj | |j ksbJ |tj }tjt	|d t
| swJ W d    n1 sw   Y  t td
dd}| }|dksJ tj|d< | }|dksJ d S )Nr   r=   r   r      zThe behavior of Series.idxminrf   Fr_   20130102r   r   r   rW   )r   r8   r3   r6   rx   r8  rC   ri   rj   rk   r   r   r/   rI   tolistrv   r   rN   string_seriesrn   nonaallnar   rO   r&   r&   r+   test_idxming  s(   $

z TestSeriesReductions.test_idxminc                 C   s  t tdtjdd}tj|dd< ||  | ksJ d}tjt	|d t
|jdd	s1J W d    n1 s;w   Y  | }||  | ksPJ |jj | |j ksbJ |tj }d}tjt	|d t
| syJ 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 )Nr   r=   r   r   r<  r5  rf   Fr_   r=  r   r   rt   r   )皙?g @@rE  rD  )r   r8   r3   r6   rx   r9  rB   ri   rj   rk   r   r   r/   rI   r>  rw   r   r8  r?  r&   r&   r+   test_idxmax  s>   $

z TestSeriesReductions.test_idxmaxc                 C   s^   t tjdtjdtddddd}|dk}| rJ | s!J t dd	g}| s-J d S )
Nr   r]   r   r   tsr.   r   abcT)r   r3   r4   r6   r   r  any)rN   rG  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   rW   r-   r   )r3   r  rI  r   )rN   rb   r0   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 )NTFr_   )r   r3   rx   r  rI  )rN   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   rW   rW   r-   r-   r  T)	bool_only)r   rI  r  )rN   r   r&   r&   r+   test_all_any_bool_only  s   z+TestSeriesReductions.test_all_any_bool_onlybool_agg_funcrI  r  c                 C   s4   t g dtd}t|||d}d}||ksJ d S )N)r   rz   r   der]   r_   T)r   rR   rG   )rN   rQ  r`   r  rO   rP   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 )NFr_   rI  )r   rG   )rN   r   rQ  r  rO   rP   r&   r&   r+   !test_any_all_object_dtype_missing  s   z6TestSeriesReductions.test_any_all_object_dtype_missing)rY   rX   UInt64r  zdata,expected_data)r   r   r   )rW   rW   rW   r   rW   c           	      C   sT   t ||d}|| |dk }t|||d}|tju r |tju s(||ks&J d S d S )Nr]   r  r_   )r   rG   rZ   r[   )	rN   rQ  r`   r   r   expected_datar  rP   rO   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 )NTFrW   r-   r   )r   rO  )r   rI  r   ri   r   )rN   r   rO   rP   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-02ru   r   z0'(any|all)' with datetime64 dtypes is deprecatedrf   r{   r   )
r   _datar   r   ri   rj   rk   r  rI  r7   )rN   dtar  r   rn   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]r]   Fr_   rz   )rp   importorskipr   rI  r  rN   r  r&   r&   r+   test_any_all_pyarrow_stringD  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-1ru   r#   r$   20120101r   r-   rW   r   20120102r   r   )r   r   r   r8  r9  r3   rx   absri   r   rB   r   rC   )rN   r:  r   rO   rM  r  rP   r&   r&   r+   test_timedelta64_analyticsX  s0   
z/TestSeriesReductions.test_timedelta64_analyticsztest_input,error_typer]   foobarbazrW   r-   rh  ri  rj  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
        r6   r]   z*attempt to get argmin of an empty sequencerf   NFr_   z*attempt to get argmax of an empty sequence)r   rp   rq   rr   r8  r9  )rN   
test_input
error_typern   r&   r&   r+   "test_assert_idxminmax_empty_raises  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 |st ddd	d	d tjd
g}d}tjt|d |  W d    n1 szw   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 d S )Nrg  r   Fr_   rW   rk  rl  rh  ri  rj  z8'>' not supported between instances of 'float' and 'str'rf   z8'<' not supported between instances of 'float' and 'str')r   r9  r8  r3   rx   rp   rq   r   )rN   using_infer_stringr  ser2ser3rn   r&   r&   r+   test_idxminmax_object_dtype  s6   

"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   r9  r   ri   r   )rN   r   r\   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))rW   ru   )r-   r-   )ru   rW   r-   r   Fr_   )r   r9  r8  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   rW   z8.68z42.23z7.11z79.61)r0   xy)r   r   r9  r   ri   r   r8  )rN   r   r\   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   rW   rR   r]   Fr_   )r   rw   rv   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   rW   r4  rf   Fr_   r-   r5  r   r   T)r   r3   r   rx   r8  ri   rj   rk   rl   r9  rZ   r   )rN   r   rn   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 uint64r]   )r   r   r3   r  ri   r  )rN   r   rO   rP   r&   r&   r+   test_sum_uint64  s   
z$TestSeriesReductions.test_sum_uint64)/r   r   r   r  rp   r   r   r  r  r  r  r   r#  r(  r.  r/  r2  r3  r;  rC  rF  rK  rL  rN  rP  rT  r3   rx   rU  rZ   r[   rX  rY  r]  rb  rf  r   rr   r   ro  rs  rw  rx  r}  r~  r  r  r&   r&   r&   r+   r   D  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   rC   r	   rB   )rN   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   Fr_   r  )rN   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   rh   )r   taker3   r9   r:   permutationlenrC   rB   rH   r   )rN   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   4hr$   )
r   r   r   r   r   r   Cr  r  r  r-   )TSVLrh   r   )r   r   r3   r9   r:   r;   r  r  rB   r   iatrH   rC   )rN   r  lvlsr   rO   r+  r&   r&   r+   test_min_max_series1  s    

z2TestDatetime64SeriesReductions.test_min_max_seriesN)r   r   r   rp   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functionrC   rB   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   rz   r   rR  F)r   z)Categorical is not ordered for operation rf   )r   r   rp   rq   r   rG   )rN   r  catrn   r&   r&   r+   test_min_max_unordered_raisesL  s
   
"z=TestCategoricalSeriesReductions.test_min_max_unordered_raiseszvalues, categoriesrH  cbar   ru   r-   rW   rW   r-   ru   c                 C   sJ   t t||dd}t||dd}|dkr|d n|d }||ks#J d S )NTr   r_   rC   r   r-   )r   r   rG   )rN   rI   r   r  r  rO   rP   r&   r&   r+   test_min_max_orderedT  s   z4TestCategoricalSeriesReductions.test_min_max_orderedr`   TFc                 C   s<   t ttjgddgdd}t|||d}|tju sJ d S )NrW   r-   Tr   r_   r   r   r3   rx   rG   )rN   r  r`   r  rO   r&   r&   r+   "test_min_max_ordered_with_nan_onlyf  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   rz   Tr   r_   rC   r  )rN   r  r`   r  rO   rP   r&   r&   r+   test_min_max_skipnan  s   z3TestCategoricalSeriesReductions.test_min_max_skipnaN)r   r   r   rp   r   r   r  r   r3   rx   r  r  r  r&   r&   r&   r+   r  G  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, expectedTr]   Fc                 C   s(   t g tjd}||}t|| d S r  )r   r3   r6   moderi   r   rN   r   rP   r   rO   r&   r&   r+   test_mode_empty  s   
zTestSeriesMode.test_mode_emptyzdropna, data, expected)rW   rW   rW   r-   rW   )rW   rW   rW   r-   ru   ru   ru   ru   dt
AllIntegerFloatc                 C   s2   t ||d}||}t ||d}t|| d S r  r   r  ri   r   )rN   r   r   rP   r  r   rO   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 )NrW   r-   )r   r3   rx   r  ri   r   r  r&   r&   r+   test_mode_numerical_nan  s   
z&TestSeriesMode.test_mode_numerical_nanz'dropna, expected1, expected2, expected3rz   ri  rx   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 ||dgkr@d ntd}t|| dddtjtjtjg}t |tdt}||}t |}t|| d S )	Nr   r-   rz   ru   r   r]   rh  ri  )	r   r  ri   r   r3   rx   rR   rL   r'   )rN   r   	expected1	expected2	expected3r   r   rO   r&   r&   r+   test_mode_str_obj  s   


z TestSeriesMode.test_mode_str_objzdropna, expected1, expected2rh  c                 C   sx   t g d}||}t |}t|| t dddtjtjtjg}||}t ||dgkr0d ntd}t|| d S )N)rW   rh  rh  rW   rh  r]   )r   r  ri   r   r3   rx   rR   )rN   r   r  r  r   rO   rP   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  rx   rx   rF   r]   )r   r  r  r   r  rx   rx   r  rN   r   r  r  r   rO   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  rx   rx   r   r]   )r  r  z-1 dayz-1 day 2 minr  r  rx   rx   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 )
NrW   r-   categoryr]   r   ru   r  Tr   )r   r   r3   rx   r  ri   r   )rN   r   r  r  r  r   rO   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)rW   r  r  r]   rW   r  )r   r3   r  r  ri   r   r  r&   r&   r+   test_mode_intoverflow8  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 )Nrh  rW   F)r   T)drop)
r   r3   rx   ri   rj   UserWarningr  sort_valuesreset_indexr   )rN   rP   r   rO   r&   r&   r+   test_mode_sortwarningH  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 )NTFrY   r]   r   )r   rZ   r[   r  ri   r   )rN   r  rO   rP   r&   r&   r+   test_mode_boolean_with_naU  s   z(TestSeriesMode.test_mode_boolean_with_nazarray,expected,dtype)r                 ?rW   rW         ?      ?      ?       @)r                 @r  r  c                 C       t ||d }t|| d S r  r  rN   rJ   rP   r   rO   r&   r&   r+   test_single_mode_value_complex\  s   z-TestSeriesMode.test_single_mode_value_complex)r   r  rW   r  r  )y                r  y      ?        r  r  )r  r  r  r  ru   r  c                 C   r  r  r  r  r&   r&   r+   test_multimode_complext  s   z%TestSeriesMode.test_multimode_complexN)r   r   r   rp   r   r   r   r3   r6   r  r   	typecodesr  rx   r  r  r  r  r  r   r  r  r  r  
complex128	complex64r  r  r&   r&   r&   r+   r  }  s    "
	 
$






r  )(r   r   decimalr   numpyr3   rp   pandasrZ   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   pandas._testing_testingri   pandas.corer   pandas.core.arrays.string_arrowr   r?   r@   r   r   r  r  r  r&   r&   r&   r+   <module>   s0    L @  P     AG6