a
    d                     @   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 p/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/pandas/tests/reductions/test_reductions.py
<listcomp>-       zget_objs.<locals>.<listcomp>)tmZmakeBoolIndexZmakeIntIndexZmakeFloatIndexZmakeDateIndextz_localizeZmakePeriodIndexZmakeStringIndexnprandomdefault_rngstandard_normal)Zindexesseriesobjsr!   r   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| }ntt |j| |jd}t |dd d urn|dd}|j|kszJ n||kszJ d S )N)Zordinalfreqr   M8[ns]int64)	getattr
isinstancer   valuesr
   Zasi8r3   astype_value)selfr/   r2   resultexpectedr!   r!   r"   test_ops4   s    
zTestReductions.test_opsz
dtype, val)object       @)float64r@   datetime64[ns]        )Int64r   )booleanTc                    s  |} fdd}|d g d}|t || s2J |t ||ddsJJ |g  d}|t || sjJ |t ||ddsJ  dkrd S |d |g d}t || |ksJ |t ||ddsJ |d |d g d}t || |ksJ |t ||dds
J d S )Nc                    s.    dkr| t u S  dv r"| tju S t| S d S )NrB   )rF   rG   )r	   pdNAr   )resdtyper!   r"   check_missingV   s
    
z4TestReductions.test_nanminmax.<locals>.check_missingrK   Fskipnar?   )r6   )r;   r/   rL   valindex_or_seriesklassrM   r2   r!   rK   r"   test_nanminmaxG   s     zTestReductions.test_nanminmaxc                 C   sN  |}|t u rd| nd| }|ttdddg}t|| dksDJ d}|tu rTd}tjt|d  t||d	d
}W d    n1 s0    Y  |tu rt	|sJ n|dksJ |ttdddtg}t|| dksJ tjt|d  t||d	d
}W d    n1 s0    Y  |tu r<t	|sJJ n|dksJJ d S )Nargr   rC   rD   rE   zNThe behavior of (DatetimeIndex|Series).argmax/argmin with skipna=False and NAsz2The behavior of Series.(idxmax|idxmin) with all-NAmatchFrN   )
r   r	   r   r6   r   r%   assert_produces_warningFutureWarningr'   isnan)r;   r/   rQ   rR   arg_opr2   msgr<   r!   r!   r"   test_nanargminmaxr   s(    .0
z TestReductions.test_nanargminmaxrL   r4   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 sTJ tjtdd t||  W d    n1 s0    Y  tjtdd  t||dd W d    n1 s0    Y  d S )NrT   r   rK   FrN   zempty sequencerU   )r   r6   r	   pytestraises
ValueError)r;   r/   rQ   rL   rR   r[   r2   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s2J t tjdtjdg}| dksVJ | dksfJ d	}tjt|d
$ |jdddksJ W d    n1 s0    Y  tjt|d
$ |jdddksJ W d    n1 s0    Y  t tjg}tjt|d
" | dksJ W d    n1 s20    Y  tjt|d
" | dks^J W d    n1 st0    Y  tjt|d
& |jdddksJ W d    n1 s0    Y  tjt|d
& |jdddksJ W d    n1 s 0    Y  d}t t	t
dddt
dddt	g}| dks@J | dksRJ tjt|d
& |jdddksxJ W d    n1 s0    Y  tjt|d
& |jdddksJ W d    n1 s0    Y  t t	g}tjt|d
" | dks
J W d    n1 s 0    Y  tjt|d
" | dksLJ W d    n1 sb0    Y  tjt|d
& |jdddksJ W d    n1 s0    Y  tjt|d
& |jdddksJ W d    n1 s0    Y  d S )N   r5   rK   r      rE   r      z=The behavior of Index.argmax/argmin with skipna=False and NAsrU   FrN   rW   zEThe behavior of DatetimeIndex.argmax/argmin with skipna=False and NAsrC   rD   )r   r'   arangeargminargmaxnanr%   rX   rY   r	   r   )r;   r2   r\   r!   r!   r"   test_argminmax   sJ    222266 66
226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:00rd   UTC)periodsr   r   )columnsi  secondsrj   rE   axis)	r   r   r   subtractr   r6   renamer%   assert_series_equal)r;   opZexpected_coldfr<   r=   r!   r!   r"   test_same_tz_min_max_axis_1   s    z*TestReductions.test_same_tz_min_max_axis_1funcmaximumZminimumc                 C   s>   |}t dg|}t|}tt|||}t|| d S )NZ2019)rH   to_datetimer&   r   r6   r'   r%   rt   )r;   Ztz_aware_fixturerx   r   rT   r=   r<   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 )NrE   r   timedelta64[ns]rK   rF   ABrd   )	r   r   r	   r'   rh   r   sumr%   rt   )r;   rv   r=   r<   r!   r!   r"   test_nan_int_timedelta_sum   s    z)TestReductions.test_nan_int_timedelta_sumN)__name__
__module____qualname__r^   markfilterwarningsparametrizer-   r>   r   rS   r]   ra   ri   rw   r{   r   r!   r!   r!   r"   r.   3   s8   
 
+


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  rd   )i  r   i)@B rc   )r   r   )r   r      c                 C   s   t |||}|j }| }||ks*J |jdd}||ksBJ |j }| }||ks`J |jdd}||ksxJ t ||| }t| sJ t| sJ d S NFrN   )r   Z_valuesr0   r1   r   )r;   startstopstepr   r=   r<   Z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r2J ||fD ]L}| tdksRJ | tdksfJ | dksvJ | dks:J q:d S )N)1 days2 days3 daysr   r   r	   r   r   )	r   is_monotonic_increasingr'   rh   r1   r   r0   rf   rg   r;   idx1idx2r   r!   r!   r"   test_minmax_timedelta64  s    

z+TestIndexReductions.test_minmax_timedelta64ru   r1   r0   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   r6   r	   r;   ru   r2   r!   r!   r"   !test_minmax_timedelta_empty_or_na$  s    
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 sp0    Y  tjt|d tj|dd W d    n1 s0    Y  t|dksJ t	|d	ksJ d}tjt|d tj|dd W d    n1 s0    Y  tjt|d tj	|dd W d    n1 sP0    Y  d S )
Nz
16815 daysz
16820 daysDr3   $the 'out' parameter is not supportedrU   r   outrb   )
r   r'   r1   r   r0   r^   r_   r`   rf   rg   )r;   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sJ | }td
}||ksJ |  }|d |ksJ | }td}||ksJ |  }|d |ksJ | }tt | j }||ksJ |  }|d |ks<J t tdtdg}|  tddkslJ t tdtdtdg}|  tddksJ d S )Nc                 S   s"   g | ]}t d t|| d qS Z20130101rn   r   r   r   ir!   r!   r"   r#   I  r$   z:TestIndexReductions.test_timedelta_ops.<locals>.<listcomp>r   	   rn   r   g?i(
  msz00:00:09z00:01:21z
2015-02-03z
2015-02-07rc   )daysz
2015-02-15   )r   rangediffmeanr   r   to_frameZquantiler   r'   Ztimedelta64medianr   stddropnar8   r   )r;   sr   r<   r=   r!   r!   r"   test_timedelta_opsE  sB    
z&TestIndexReductions.test_timedelta_opsr/   )ZskewZkurtZ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 sv0    Y  tjt|d$ t| |dd W d    n1 s0    Y  d S )Nc                 S   s"   g | ]}t d t|| d qS 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 ''rU   F)Znumeric_only)	r   r   r   joinr^   r_   	TypeErrorr6   r   )r;   r/   r   r   r\   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}| td|dksbJ | td|dkszJ | dksJ | dksFJ qFd S )N)
2011-01-01
2011-01-02
2011-01-03r   r   r   r   r   r   )r   r   r	   r1   r   r0   rf   rg   )r;   Z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   r6   r	   r   r!   r!   r"   test_minmax_nat_datetime64  s    
z.TestIndexReductions.test_minmax_nat_datetime64c                 C   s  t g d}|j }t|}||ks,J |j }t|}||ksLJ d}tjt|d tj|dd W d    n1 s0    Y  tjt|d tj|dd W d    n1 s0    Y  |j }t|}||ksJ |j	 }t	|}||ks
J d}tjt|d tj	|dd W d    n1 sB0    Y  tjt|d tj|dd W d    n1 s0    Y  d S )NrE   r   rd   r   rU   r   r   )
r   r8   r0   r'   r1   r^   r_   r`   rg   rf   )r;   r   r=   r<   r   r!   r!   r"   test_numpy_minmax_integer  s.    



,,



.z-TestIndexReductions.test_numpy_minmax_integerc                 C   s   t ddd}t|}|dks"J t|}|dks8J d}tjt|d tj|dd W d    n1 sn0    Y  tjt|d tj|dd W d    n1 s0    Y  d S )Nr   r   rd   r   r   rU   r   )r   r'   r0   r1   r^   r_   r`   )r;   r   r<   r   r!   r!   r"   test_numpy_minmax_range  s    

,z+TestIndexReductions.test_numpy_minmax_rangec                 C   s\  t ddd}t|tdks"J t|tdks8J d}tjt|d tj|dd	 W d    n1 sn0    Y  tjt|d tj|dd	 W d    n1 s0    Y  t|dksJ t	|d
ksJ d}tjt|d tj|dd	 W d    n1 s0    Y  tjt|d tj	|dd	 W d    n1 sN0    Y  d S )N
2016-01-15
2016-01-20r   endz2016-01-15 00:00:00z2016-01-20 00:00:00r   rU   r   r   rb   )
r   r'   r1   r   r0   r^   r_   r`   rf   rg   )r;   Z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s0J t dtddtgdd}|jrPJ ||fD ]4}| tdddkstJ | tdddksXJ qX| dksJ | dksJ | dksJ | d	ksJ d S )
Nr   r   r   r   r   rE   r   rd   r   )r   r	   r   r1   r
   r0   rf   rg   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   r6   r	   )r;   ru   r   r2   r<   r!   r!   r"   test_minmax_period_empty_nat  s    z0TestIndexReductions.test_minmax_period_empty_natc                 C   sf  t jddd}t|tdddks(J t|tdddksBJ d}tjt|d tj|dd	 W d    n1 sx0    Y  tjt|d tj|dd	 W d    n1 s0    Y  t	|dksJ t
|d
ksJ d}tjt|d tj	|dd	 W d    n1 s0    Y  tjt|d tj
|dd	 W d    n1 sX0    Y  d S )Nr   r   r   r   r   r   rU   r   r   rb   )rH   Zperiod_ranger'   r1   r
   r0   r^   r_   r`   rf   rg   )r;   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 sH0    Y  d}tjt|d |  W d    n1 s0    Y  t jtdtddd}| d	ksJ | d
ksJ d S )NZaabbcaZcabF
categoriesorderedzwCategorical is not ordered for operation min\nyou can use .as_ordered\(\) to change the Categorical to an ordered one\nrU   zwCategorical is not ordered for operation max\nyou can use .as_ordered\(\) to change the Categorical to an ordered one\nTcrj   )rH   ZCategoricalIndexlistr^   r_   r   r1   r0   )r;   cir\   r!   r!   r"   test_min_max_categorical(  s    &&z,TestIndexReductions.test_min_max_categoricalN)r   r   r   r^   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	   r   r   r   r!   r!   r!   r"   r      s0   


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|	 sLJ tjdd
d}tj|d d df< d}tjt|dP td	d
$ t|	 |	  W d    n1 s0    Y  W d    n1 s0    Y  tj|dd}t| s
J d S )Nr   r   rb      )d   r   Zf4"use_inf_as_na option is deprecatedrU   mode.use_inf_as_naTrE   rp   )r   r'   r(   r)   r*   copyinfrh   isinfr   r9   r%   rX   rY   rH   option_contextassert_almost_equalr   nansumall)r;   r   s2r    r\   rJ   r!   r!   r"   test_sum_infA  s    Pz!TestSeriesReductions.test_sum_infrL   )rA   ZFloat32rF   rG   r?   use_bottleneckTFzmethod, unit)r           )r         ?c                 C   s\  t d|8 tg |d}t|| }||ks4J t||dd}||ksPJ t||dd}t|slJ t||dd}||k t||ddd}||ksJ t||ddd}t|sJ t||d	dd}||ksJ t||d	dd}t|sJ ttjg|d}t|| }||ks&J t||dd}||ksDJ t||dd}t|sbJ 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sJ 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	 sJ tdg|d}t||dd}t|sJ t||d	dd}t|sJ ttjg|d}t||dd}t|sJ ttjdg|d}t||dd}t|s8J W d    n1 sN0    Y  d S )Nr   rK   r   )	min_countrE   TrN   )rO   r   Fr   )r   r   r   )
rH   r   r   r6   r   r'   rh   r   emptyr   )r;   methodunitr   rL   r   r<   rv   r!   r!   r"   
test_emptyU  sn    zTestSeriesReductions.test_emptyr   r   r   )Float64rF   rG   c                 C   sT   t g |d}t|| }|tju s&J t tjg|d}t|| }|tju sPJ d S NrK   )r   r6   rH   rI   r'   rh   )r;   r   rL   Zeserr<   Z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    q1 sp0    Y  nt || }|tu sJ d S )NrK   m8[ns]r   r   )zoperation 'var' not allowedz.cannot perform var with type timedelta64\[ns\]z does not support reduction 'var'rU   )	r6   r   floatr   r   r^   r_   r   r	   )r;   r   r<   Ztdserr\   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   rE   r   )r   r'   rh   r   r%   r   )r;   serr<   r!   r!   r"   test_nansum_buglet  s    
z'TestSeriesReductions.test_nansum_bugletint32r5   c                 C   s   t d| tjd|d}t|}|jdd}t||jddksHJ |jdd}t|dksdJ |jdd}t||d ksJ W d    n1 s0    Y  d S )	Nr   @KL rK   FrN   r5   r   rW   )	rH   r   r'   re   r   r   intr1   r0   r;   r   rL   vr   r<   r!   r!   r"   test_sum_overflow_int  s    z*TestSeriesReductions.test_sum_overflow_intfloat32rA   c                 C   s   t d| tjd|d}t|}|jdd}||j|dksDJ |jdd}tt|dsdJ |j	dd}tt||d sJ W d    n1 s0    Y  d S )Nr   r   rK   FrN   r   rW   )
rH   r   r'   re   r   r   r1   Zallcloser   r0   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sLJ |dksXJ d S )Nl     ;r   rF   rK   r   g ؅W4vC)r'   arrayr   r   )r;   rP   Z
n_elementsnar   Zresult_numpyZresult_maskedr!   r!   r"   test_mean_masked_overflow  s    
z.TestSeriesReductions.test_mean_masked_overflowz	ddof, exp)rE         @)r   r@   c                 C   sT   t g ddd}t g ddd}|j|d}|j|d}||ksDJ ||ksPJ d S )N)rE   r   rd   rc   rb   rF   rK   r5   )ddof)r   r   )r;   r  expr   Zser_numpy_dtyper<   Zresult_numpy_dtyper!   r!   r"   test_var_masked_array  s    z*TestSeriesReductions.test_var_masked_array)r   r   r4   zM8[ns, UTC]rO   c                 C   s<   t g |dj|dtu sJ t g |dj|dtu s8J d S )NrK   rN   )r   r1   r	   r0   )r;   rL   rO   r!   r!   r"   +test_empty_timeseries_reductions_return_nat  s    z@TestSeriesReductions.test_empty_timeseries_reductions_return_natc                 C   s   t dd}t||d}t |}t |}||ks8J | }||ksLJ d}tjt|d t j||d W d    n1 s0    Y  d S NrE   rD   r   r   rU   r   )r'   re   r   rf   r^   r_   r`   r;   r   r   r<   r=   r\   r!   r!   r"   test_numpy_argmin#  s    

z&TestSeriesReductions.test_numpy_argminc                 C   s   t dd}t||d}t |}t |}||ks8J | }||ksLJ d}tjt|d t j||d W d    n1 s0    Y  d S r  )r'   re   r   rg   r^   r_   r`   r  r!   r!   r"   test_numpy_argmax5  s    

z&TestSeriesReductions.test_numpy_argmaxc                 C   s~  t ddtjgtg dd}d}tjt|d |jdd}W d    n1 sP0    Y  |tu sfJ d	}tjt|d |j	dd}W d    n1 s0    Y  |tu sJ |
 }d
}tjt|d |jdd}W d    n1 s0    Y  |jdksJ |  sJ d}tjt|d |j	dd}W d    n1 sN0    Y  |jdkshJ |  szJ d S )Nr   r@   )r	   z
2015-02-08r	   r   0The behavior of Series.idxmin with all-NA valuesrU   FrN   0The behavior of Series.idxmax with all-NA valuesz3The behavior of DataFrame.idxmin with all-NA valuesr4   z3The behavior of DataFrame.idxmax with all-NA values)r   r'   rh   r   r%   rX   rY   idxminr	   idxmaxr   rL   r   r   )r;   r   r\   rJ   rv   r!   r!   r"   test_idxmin_dt64indexF  s,    ***,z*TestSeriesReductions.test_idxmin_dt64indexc                 C   sP  t  d}tj|dd< ||  | ks4J d}t jt|d$ t	|jdds\J W d    n1 sp0    Y  |
 }||  | ksJ |jj | |j ksJ |tj }t jt|d  t	| sJ W d    n1 s0    Y  ttdd	d
}| }|dks,J tj|d< | }|dksLJ d S )Nr+   rb      zThe behavior of Series.idxminrU   FrN   20130102r   rl   r   rE   )r%   makeStringSeriesrs   r'   rh   r  r1   rX   rY   r   r   r   r8   tolistrf   r   r   r;   Zstring_seriesr\   ZnonaZallnar   r<   r!   r!   r"   test_idxmin`  s$    2$
.
z TestSeriesReductions.test_idxminc                 C   s  t  d}tj|dd< ||  | ks4J d}t jt|d$ t	|jdds\J W d    n1 sp0    Y  |
 }||  | ksJ |jj | |j ksJ |tj }d}t jt|d  t	| sJ W d    n1 s0    Y  ttdd	d
}| }|dks2J tj|d< | }|dksRJ tg dg d}| }|dkszJ | }|dksJ t|j|j}| }|dksJ | }|dksJ d S )Nr+   rb   r  r  rU   FrN   r  r   r  rc   r   )皙?g @@r  r  )r%   r  rs   r'   rh   r  r0   rX   rY   r   r   r   r8   r  rg   r   r   r  r  r!   r!   r"   test_idxmax  s:    2$
0
z TestSeriesReductions.test_idxmaxc                 C   sD   t  }|dk}| rJ | s(J tddg}| s@J d S )Nr   abcT)r%   ZmakeTimeSeriesr   anyr   )r;   tsZ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 |sBJ d S )N)r   rE   r   r   )r'   r   r  r   )r;   rQ   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sLJ |jddr\J d S )NTFrN   )r   r'   rh   r   r  )r;   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r4J d S )N)FFTTFT)r   r   rE   rE   r   r   r   T)	bool_only)r   r  r   )r;   r   r!   r!   r"   test_all_any_bool_only  s    z+TestSeriesReductions.test_all_any_bool_onlybool_agg_funcr  r   c                 C   s4   t g dtd}t|||d}d}||ks0J d S )N)r   rj   r   derK   rN   T)r   r?   r6   )r;   r"  rO   r   r<   r=   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s4J d S )NFrN   r  )r   r6   )r;   r   r"  r   r<   r=   r!   r!   r"   !test_any_all_object_dtype_missing  s    z6TestSeriesReductions.test_any_all_object_dtype_missing)rG   rF   ZUInt64r   zdata,expected_data)r   r   r   )rE   rE   rE   r   rE   c           	      C   sP   t ||d}|| |dk }t|||d}|tju r@|tju sL||ksLJ d S )NrK   r   rN   )r   r6   rH   rI   )	r;   r"  rO   r   rL   Zexpected_datar   r=   r<   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 )NTFrE   r   r}   )rq   r   )r   r  r   r%   rt   )r;   rv   r<   r=   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` | s>J | sJJ | sVJ | sbJ |  srJ |  sJ W d    n1 s0    Y  |	d}t|}t|}tjt|dd | sJ | sJ | sJ | sJ |  sJ |  sJ W d    n1 s40    Y  ||d  }t|}t|}| shJ | rvJ | sJ | rJ |  sJ |  rJ d S )Nz
1995-01-02rd   r  z0'(any|all)' with datetime64 dtypes is deprecatedrU   rk   r   )
r   _datar   r   r%   rX   rY   r   r  r&   )r;   Zdtar   rv   r\   Ztdar!   r!   r"   test_any_all_datetimelike
  s<    .
2z.TestSeriesReductions.test_any_all_datetimelikec                 C   s   t d tddgdd}| s&J | r2J td dgdd}| sNJ | rZJ td dgdd}| rvJ | rJ tddgdd}| sJ | sJ d S )NZpyarrow r   zstring[pyarrow_numpy]rK   rj   )r^   Zimportorskipr   r  r   r;   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s2J | }|dksFJ tj|d< | }|dksdJ | }|dksxJ tt ddd	}tt d
dd	}t|| }t|| }t	|| ||  }t	|| |
 }td}||ksJ | }td}||ksJ d S )Nz2012-1-1rd   r   rl   r3   Z20120101r   r   rE   r  Z20120102r   r   )r   r   r   r  r  r'   rh   absr%   rt   r0   r   r1   )r;   Zdtir   r<   r  r   r=   r!   r!   r"   test_timedelta64_analyticsL  s0    
z/TestSeriesReductions.test_timedelta64_analyticsztest_input,error_typerK   foobarbazrE   r   r2  r3  r4  c                 C   s   t g dd}d}tjt|d |  W d   n1 s<0    Y  tjt|d |jdd W d   n1 sv0    Y  d}tjt|d |  W d   n1 s0    Y  tjt|d |jdd W d   n1 s0    Y  dS )	zU
        Cases where ``Series.argmax`` and related should raise an exception
        rA   rK   z*attempt to get argmin of an empty sequencerU   NFrN   z*attempt to get argmax of an empty sequence)r   r^   r_   r`   r  r  )r;   Z
test_inputZ
error_typer\   r!   r!   r"   "test_assert_idxminmax_empty_raisesu  s    &*&z7TestSeriesReductions.test_assert_idxminmax_empty_raisesc                 C   s  t g d}| dksJ |jdddks0J | dks@J |jdddksTJ t ddg}| dkspJ |jdddksJ | dksJ |jdddksJ t ddd	d	d tjd
g}d}tjt|d |  W d    n1 s0    Y  tjt|d |jdd W d    n1 s,0    Y  d}tjt|d |  W d    n1 sh0    Y  tjt|d |jdd W d    n1 s0    Y  d S )Nr1  r   FrN   rE   r5  r6  r2  r3  r4  z8'>' not supported between instances of 'float' and 'str'rU   z8'<' not supported between instances of 'float' and 'str')r   r  r  r'   rh   r^   r_   r   )r;   r   Zser2Zser3r\   r!   r!   r"   test_idxminmax_object_dtype  s*    &,(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 )	NZzimmr  Zbiffr   bidg      (@r   r   )r   r  r   r%   rt   )r;   rv   rJ   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sTJ d S )N))rE   rd   )r   r   )rd   rE   r   r   FrN   )r   r  r  r,  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   rE   z8.68z42.23z7.11z79.61)r   xy)r   r   r  r   r%   rt   r  )r;   rv   rJ   r  Zres2Z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s0J |jdddksDJ |jdddksXJ d S )Nr   rE   r?   rK   FrN   )r   rg   rf   r,  r!   r!   r"   test_argminmax_object_ints  s
    z/TestSeriesReductions.test_argminmax_object_intsc              	   C   sz  t dtj tjtjg}| dks(J d}tjt|d& t|jddsRJ W d    n1 sf0    Y  |	 dksJ d}tjt|d& t|j	ddsJ W d    n1 s0    Y  d	}tjt|d t
d
d\ | dksJ t|jddsJ |	 dks$J t|j	dd W d    n1 sL0    Y  W d    n1 sl0    Y  d S )Nr   rE   r
  rU   FrN   r   r  r   r   T)r   r'   r   rh   r  r%   rX   rY   rZ   r  rH   r   )r;   r   r\   r!   r!   r"   test_idxminmax_with_inf  s     44z,TestSeriesReductions.test_idxminmax_with_infc                 C   s0   t dgdd}| }td}t|| d S )Nl     9V uint64rK   )r   r   r'   rA  r%   r   )r;   r   r<   r=   r!   r!   r"   test_sum_uint64  s    
z$TestSeriesReductions.test_sum_uint64)/r   r   r   r   r^   r   r   r   r   r   r   r   r   r   r  r  r  r	  r  r  r  r  r  r  r!  r%  r'   rh   r&  rH   rI   r'  r(  r*  r-  r0  r   r`   r   r7  r8  r:  r;  r>  r?  r@  rB  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_serZnatc                 C   sL   |  tu sJ | tu s J |j ddtu s4J |jddtu sHJ d S r   r1   r	   r0   )r;   rD  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 sXJ d S )Nr   FrN   rE  )r;   rG  r!   r!   r"   test_minmax_nat_dataframe  s    
z8TestDatetime64SeriesReductions.test_minmax_nat_dataframec                 C   s   t dd}|tjdt|}| }| }t	|t
sDJ t	|t
sRJ ||d ksbJ ||d ksrJ | |d ksJ | |d ksJ d S )N1/1/2000z
12/31/2000r   r   rW   )r   Ztaker'   r(   r)   Zpermutationlenr1   r0   r7   r   )r;   rngZrng2Zthe_minZ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	s`J ||kslJ |j }t	|jj
d	 }t|t	sJ ||ksJ d S )
NrI  r   Z4hr.  )
r~   r~   r~   r   r   r   CrM  rM  rM  r   )TSVLrW   r   )r   r   r'   r(   r)   r*   rJ  rN  r0   r   Ziatr7   r1   )r;   rK  Zlvlsrv   r<   r  r!   r!   r"   test_min_max_series$  s     

z2TestDatetime64SeriesReductions.test_min_max_seriesN)r   r   r   r^   r   r   r   r	   r   rF  r   rH  rL  rQ  r!   r!   r!   r"   rC    s$   



rC  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functionr1   r0   c                 C   s\   t tg ddd}d| }tjt|d t||  W d    n1 sN0    Y  d S )N)r   rj   r   r#  F)r   z)Categorical is not ordered for operation rU   )r   r   r^   r_   r   r6   )r;   rS  catr\   r!   r!   r"   test_min_max_unordered_raises?  s    
z=TestCategoricalSeriesReductions.test_min_max_unordered_raiseszvalues, categoriesr  Zcbar   rd   r   rE   rE   r   rd   c                 C   sJ   t t||dd}t||dd}|dkr2|d n|d }||ksFJ d S )NTr   rN   r1   r   r   )r   r   r6   )r;   r8   r   rS  rT  r<   r=   r!   r!   r"   test_min_max_orderedG  s    z4TestCategoricalSeriesReductions.test_min_max_orderedrO   TFc                 C   s<   t ttjgddgdd}t|||d}|tju s8J d S )NrE   r   Tr   rN   r   r   r'   rh   r6   )r;   rS  rO   rT  r<   r!   r!   r"   "test_min_max_ordered_with_nan_onlyY  s    zBTestCategoricalSeriesReductions.test_min_max_ordered_with_nan_onlyc                 C   sh   t tddtjdgddgdd}t|||d}|du rV|dkrDdnd}||ksdJ n|tju sdJ d S )Nr   rj   Tr   rN   r1   rX  )r;   rS  rO   rT  r<   r=   r!   r!   r"   test_min_max_skipnaa  s    z3TestCategoricalSeriesReductions.test_min_max_skipnaN)r   r   r   r^   r   r   rU  r   r'   rh   rW  rY  rZ  r!   r!   r!   r"   rR  :  s&   

rR  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, expectedTrK   Fc                 C   s(   t g tjd}||}t|| d S r   )r   r'   rA   moder%   rt   r;   r   r=   r   r<   r!   r!   r"   test_mode_emptyu  s    
zTestSeriesMode.test_mode_emptyzdropna, data, expected)rE   rE   rE   r   rE   )rE   rE   rE   r   rd   rd   rd   rd   dtZ
AllIntegerZFloatc                 C   s2   t ||d}||}t ||d}t|| d S r   r   r\  r%   rt   )r;   r   r   r=   r_  r   r<   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 )NrE   r   )r   r'   rh   r\  r%   rt   r]  r!   r!   r"   test_mode_numerical_nan  s    
z&TestSeriesMode.test_mode_numerical_nanz'dropna, expected1, expected2, expected3rj   r3  rh   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   rj   rd   r   rK   r2  r3  )	r   r\  r%   rt   r'   rh   r?   r9   str)r;   r   	expected1	expected2	expected3r   r   r<   r!   r!   r"   test_mode_str_obj  s    


z TestSeriesMode.test_mode_str_objzdropna, expected1, expected2r2  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)rE   r2  r2  rE   r2  rK   )r   r\  r%   rt   r'   rh   r?   )r;   r   rd  re  r   r<   r=   r!   r!   r"   test_mode_mixeddtype  s    

z#TestSeriesMode.test_mode_mixeddtype)
1900-05-03r   
2013-01-02r   rj  c                 C   sh   t g ddd}||}t |dd}t|| t g ddd}||}t |dd}t|| d S )N)r   rj  ri  rh   rh   r4   rK   )r   rj  ri  r   rj  rh   rh   r`  r;   r   rd  re  r   r<   r!   r!   r"   test_mode_datetime  s    
	
z!TestSeriesMode.test_mode_datetime)-1 days0 daysr   2 min1 dayc                 C   sh   t g ddd}||}t |dd}t|| t g ddd}||}t |dd}t|| d S )N)r   rm  rn  rh   rh   r|   rK   )rp  rp  z-1 dayz-1 day 2 minro  ro  rh   rh   r`  rk  r!   r!   r"   test_mode_timedelta  s    



z"TestSeriesMode.test_mode_timedeltar   )r   r   rV  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 )
NrE   r   categoryrK   r   rd   rV  Tr   )r   r   r'   rh   r\  r%   rt   )r;   r   rd  re  rf  r   r<   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)rE   rt  rt  rK   rE   rt  )r   r'   rA  r\  r%   rt   rk  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 s`0    Y  t	|| d S )Nr2  rE   F)r   T)Zdrop)
r   r'   rh   r%   rX   UserWarningr\  Zsort_valuesZreset_indexrt   )r;   r=   r   r<   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 )NTFrG   rK   r   )r   rH   rI   r\  r%   rt   )r;   r   r<   r=   r!   r!   r"   test_mode_boolean_with_naH  s    z(TestSeriesMode.test_mode_boolean_with_nazarray,expected,dtype)r                 ?rE   rE         ?      ?      ?       @)rz                 @rz  rz  c                 C   s    t ||d }t|| d S r   r`  r;   r   r=   rL   r<   r!   r!   r"   test_single_mode_value_complexO  s    z-TestSeriesMode.test_single_mode_value_complex)r   ry  rE   rz  r{  )y                ry  y      ?        rz  r{  )rz  r|  rz  r|  rd   r|  c                 C   s    t ||d }t|| d S r   r`  r}  r!   r!   r"   test_multimode_complexg  s    z%TestSeriesMode.test_multimode_complexN)r   r   r   r^   r   r   r   r'   rA   r^  r   	typecodesra  rh   rb  rg  rh  rl  rq  r   rs  ru  rw  rx  Z
complex128Z	complex64r~  r  r!   r!   r!   r"   r[  p  s   "
	 
$






r[  )%r   r   decimalr   numpyr'   r^   ZpandasrH   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   Zpandas._testingZ_testingr%   Zpandas.corer   r-   r.   r   r   rC  rR  r[  r!   r!   r!   r"   <module>   s,   H <  P     <G6