o
    dD                     @   s   d dl m Z 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e 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	timedeltaN)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  fdd| D }| | }|S )N
   a)namez
US/Easterntzc                    s   g | ]	}t  |d dqS )r   )indexr   )r   ).0idxarr l/var/www/html/visualizacion-main/env/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randn)indexesseriesobjsr   r   r    get_objs    s   
r0   c                   @   s  e Zd Z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 )(TestReductions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	   asi8r7   astype_value)selfr2   r5   resultexpectedr   r   r    test_ops6   s   
zTestReductions.test_opsz
dtype, val)object       @)float64rE   datetime64[ns]        )Int64   )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 )NrG   )rK   rM   )r   pdNAr   )resdtyper   r    check_missingU   s
   
z4TestReductions.test_nanminmax.<locals>.check_missingrQ   FskipnarD   )r:   )r@   r2   rR   valindex_or_seriesklassrS   r5   r   rQ   r    test_nanminmaxF   s    zTestReductions.test_nanminmaxc                 C   s   |}|t u r
d| nd| }|ttdddg}t|| dks"J t||dd}|tu r6t|s5J n|dks<J |ttdddtg}t|| dksQJ t||dd}|tu rft|sdJ d S |dkslJ d S )	Nargr   rH   rI   rJ   FrT   )r   r   r   r:   r   r*   isnan)r@   r2   rW   rX   arg_opr5   rA   r   r   r    test_nanargminmaxq   s   z TestReductions.test_nanargminmaxrR   r8   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 )NrZ   r   rQ   FrT   zempty sequencematch)r   r:   r   pytestraises
ValueError)r@   r2   rW   rR   rX   r]   r5   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 |jd	d
dks=J |jd	d
dksGJ t tjg}| dksUJ | dks]J |jd	d
dksgJ |jd	d
dksqJ t ttdddtdddtg}| dksJ | dksJ |jd	d
dksJ |jd	d
dksJ t tg}| dksJ | dksJ |jd	d
dksJ |jd	d
dksJ d S )N   r9   rQ   r      rJ   rL      FrT   r[   rH   rI   )r   r*   arangeargminargmaxnanr   r   )r@   r5   r   r   r    test_argminmax   s.    
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:00rg   UTC)periodsr   r   )columnsi  secondsrm   rJ   axis)	r   r   r   subtractr   r:   renamer"   assert_series_equal)r@   opexpected_coldfrA   rB   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)rN   to_datetimer'   r   r:   r*   r"   rw   )r@   tz_aware_fixturer|   r   rZ   rB   rA   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 )NrJ   rL   timedelta64[ns]rQ   rK   ABrg   )	r   r   r   r*   rk   r   sumr"   rw   )r@   rz   rB   rA   r   r   r    test_nan_int_timedelta_sum   s   z)TestReductions.test_nan_int_timedelta_sumN)__name__
__module____qualname__ra   markparametrizer/   rC   r   rY   r^   rd   rl   r{   r   r   r   r   r   r    r1   5   s4    
 



r1   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  rg   )i  r   i)@B rf   )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 NFrT   )r   _valuesr3   r4   r   )r@   startstopstepr   rB   rA   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   rL   )	r   is_monotonic_increasingr*   rk   r4   r   r3   ri   rj   r@   idx1idx2r   r   r   r    test_minmax_timedelta64   s   

z+TestIndexReductions.test_minmax_timedelta64rx   r4   r3   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   r@   rx   r5   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r7   $the 'out' parameter is not supportedr_   r   outre   )
r   r*   r4   r   r3   ra   rb   rc   ri   rj   )r@   tderrmsgr   r   r    test_numpy_minmax_timedelta64  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 20130101rq   r   r   r   ir   r   r    r!   1     " z:TestIndexReductions.test_timedelta_ops.<locals>.<listcomp>r   	   rq   r   g?i(
  msz00:00:09z00:01:21z
2015-02-03z
2015-02-07rf   )daysz
2015-02-15   )r   rangediffmeanr   r   to_framequantiler   r*   timedelta64medianr   stddropnar<   r   )r@   sr   rA   rB   r   r   r    test_timedelta_ops-  sB   
z&TestIndexReductions.test_timedelta_opsr2   )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!   e  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   joinra   rb   	TypeErrorr:   r   )r@   r2   r   r   msgr   r   r    test_invalid_td64_reductionsb  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   rL   )r   r   r   r4   r   r3   ri   rj   )r@   tz_naive_fixturer   r   r   r   r   r   r    test_minmax_tzw  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rJ   rL   rg   r   r_   r   r   )
r   r<   r3   r*   r4   ra   rb   rc   rj   ri   )r@   r   rB   rA   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   rg   r   r   r_   r   )r   r*   r3   r4   ra   rb   rc   )r@   r   rA   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   re   )
r   r*   r4   r   r3   ra   rb   rc   ri   rj   )r@   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   rJ   r   rg   rL   )r
   r   r   r4   r	   r3   ri   rj   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   )r@   rx   r   r5   rA   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   re   )rN   period_ranger*   r4   r	   r3   ra   rb   rc   ri   rj   )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 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crm   )rN   CategoricalIndexlistra   rb   r   r4   r3   )r@   cir   r   r   r    test_min_max_categorical  s   

z,TestIndexReductions.test_min_max_categoricalN)r   r   r   ra   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                   @   sX  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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dAgdAdgdejgejdggdBdC Zejdg dDejd;d<d=gejd(ddgejdEg dFddgddggfg dG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dHejdHgejdgddggfdIejdIgdejgddggfdIejdHgddgddggfgdJdK ZdLdM ZdNdO Z dPdQ Z!ejdRe"g ddSe#fe"g dTe$fe"dUdVge$fe"dWdWdXdXdAejdYge$fgdZd[ Z%d\d] Z&dAS )^TestSeriesReductionsc                 C   s   t tjd}| }tj|dd< tj|dd< t| s#J tjdd	d}tj|d d df< t
dd t| |  W d    n1 sQw   Y  tj|d	d
}t| sfJ d S )Nr   re      d   f4rL   mode.use_inf_as_naTrJ   rs   )r   r*   r+   r,   copyinfrk   isinfr   r>   rN   option_contextr"   assert_almost_equalr   nansumall)r@   r   s2r   rP   r   r   r    test_sum_inf)  s   z!TestSeriesReductions.test_sum_infrR   )rF   Float32rK   rM   rD   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   rQ   r   )	min_countrJ   TrT   )rU   r  Fr  )r   r   rL   )
rN   r   r   r:   r   r*   rk   r   emptyr   )r@   methodunitr   rR   r   rA   rz   r   r   r    
test_empty;  sp   $zTestSeriesReductions.test_emptyr  r   r   )Float64rK   rM   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 NrQ   )r   r:   rN   rO   r*   rk   )r@   r  rR   eserrA   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 )NrQ   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   ra   rb   r   r   )r@   r  rA   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   rJ   r   )r   r*   rk   r   r"   r   )r@   serrA   r   r   r    test_nansum_buglet  s   
z'TestSeriesReductions.test_nansum_bugletint32r9   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 rQ   FrT   r9   r   r[   )	rN   r   r*   rh   r   r   intr4   r3   r@   r   rR   vr   rA   r   r   r    test_sum_overflow_int  s   "z*TestSeriesReductions.test_sum_overflow_intfloat32rF   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  rQ   FrT   r   r[   )
rN   r   r*   rh   r   r   r4   allcloser  r3   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   rK   rQ   r   g ؅W4vC)r*   arrayr   r   )r@   rV   
n_elementsnar  result_numpyresult_maskedr   r   r    test_mean_masked_overflow  s   
z.TestSeriesReductions.test_mean_masked_overflowz	ddof, exp)rJ   g      @)r   rE   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)rJ   rL   rg   rf   re   rK   rQ   r9   )ddof)r   r   )r@   r"  expr  ser_numpy_dtyperA   result_numpy_dtyper   r   r    test_var_masked_array  s   z*TestSeriesReductions.test_var_masked_array)r  r  r8   zM8[ns, UTC]rU   c                 C   s<   t g |dj|dtu sJ t g |dj|dtu sJ d S )NrQ   rT   )r   r4   r   r3   )r@   rR   rU   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 NrJ   rI   r  r   r_   r   )r*   rh   r   ri   ra   rb   rc   r@   r   r   rA   rB   r   r   r   r    test_numpy_argmin	  s   

"z&TestSeriesReductions.test_numpy_argminc                 C   r(  r)  )r*   rh   r   rj   ra   rb   rc   r*  r   r   r    test_numpy_argmax  s   

"z&TestSeriesReductions.test_numpy_argmaxc                 C   s   t  d}tj|dd< ||  | ksJ t|jdds$J | }||  | ks4J |j	j
 	| |j
 ksFJ |tj }t| sSJ ttddd}| }|d	kseJ tj|d	< | }|d
kstJ d S )Nr.   re      FrT   20130102r   ro   r   rJ   )r"   makeStringSeriesrv   r*   NaNidxminr4   r   r   r   r<   tolistri   rk   r   r   r@   string_seriesnonaallnar   rA   r   r   r    test_idxmin,  s   $

z TestSeriesReductions.test_idxminc                 C   s\  t  d}tj|dd< ||  | ksJ t|jdds$J | }||  | ks4J |j	j
 	| |j
 ksFJ |tj }t| sSJ ttddd}| }|dkseJ tj|d< | }|d	kstJ tg d
g d}| }|dksJ | }|dksJ t|j	|j	}| }|dksJ | }|dksJ d S )Nr.   re   r-  FrT   r.  r   r/  rf   r   )皙?g @@r:  r9  )r"   r0  rv   r*   r1  idxmaxr3   r   r   r   r<   r3  rj   rk   r   r   r2  r4  r   r   r    test_idxmaxJ  s2   $

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   )r@   tsbool_seriesr   r   r   r    test_all_anyu  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   rJ   rL   r   )r*   r   r?  r   )r@   rW   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 )NTFrT   )r   r*   rk   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rJ d S )N)FFTTFT)r   r   rJ   rJ   rL   rL   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sJ d S )N)r   rm   r   derQ   rT   T)r   rD   r:   )r@   rI  rU   r  rA   rB   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 )NFrT   r?  )r   r:   )r@   r   rI  r  rA   rB   r   r   r    !test_any_all_object_dtype_missing  s   z6TestSeriesReductions.test_any_all_object_dtype_missing)rM   rK   UInt64r  zdata,expected_data)r   r   r   )rJ   rJ   rJ   r   rJ   c           	      C   sT   t ||d}|| |dk }t|||d}|tju r |tju s(||ks&J d S d S )NrQ   r   rT   )r   r:   rN   rO   )	r@   rI  rU   r   rR   expected_datar  rB   rA   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 )NTFrJ   rL   r   )rt   rF  )r   r?  r   r"   rw   )r@   rz   rA   rB   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-02rg   r/  z0'(any|all)' with datetime64 dtypes is deprecatedr_   rn   r   )
r   _datar   r   r"   assert_produces_warningFutureWarningr   r?  r'   )r@   dtar  rz   r   tdar   r   r    test_any_all_datetimelike  s@   
z.TestSeriesReductions.test_any_all_datetimelikec                 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-1rg   r   ro   r7   20120101r   rL   rJ   r/  20120102r   r   )r   r   r   r2  r;  r*   rk   absr"   rw   r3   r   r4   )r@   dtir   rA   rD  r   rB   r   r   r    test_timedelta64_analytics  s0   
z/TestSeriesReductions.test_timedelta64_analyticsztest_input,error_typerQ   )foobarbaz)rJ   )rL   r^  r_  r`  c                 C   s   d}t j||d |  W d   n1 sw   Y  t j||d |jdd W d   n1 s5w   Y  d}t j||d |  W d   n1 sRw   Y  t j||d |jdd W d   dS 1 spw   Y  dS )zU
        Cases where ``Series.argmax`` and related should raise an exception
        zbreduction operation 'argmin' not allowed for this dtype|attempt to get argmin of an empty sequencer_   NFrT   zbreduction operation 'argmax' not allowed for this dtype|attempt to get argmax of an empty sequence)ra   rb   r2  r;  )r@   
test_input
error_typer   r   r   r    test_assert_idxminmax_raises'  s    

"z1TestSeriesReductions.test_assert_idxminmax_raisesc                 C   s   t dtj tjtjg}| dksJ t|jddsJ | dks'J t|jdds2J tdd- | dksAJ t|jddsLJ | dksTJ t|jdd W d    d S 1 shw   Y  d S )Nr   rJ   FrT   rL   r   T)	r   r*   r   rk   r2  r\   r;  rN   r   rG  r   r   r    test_idxminmax_with_infG  s   "z,TestSeriesReductions.test_idxminmax_with_inf)'r   r   r   r   ra   r   r   r  r  r  r  r  r  r!  r&  r'  r+  r,  r8  r<  rB  rC  rE  rH  rL  r*   rk   rM  rN   rO   rP  rQ  rW  r]  r   rc   r   rc  rd  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   r4   r   r3   )r@   rf  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   FrT   rh  )r@   rj  r   r   r    test_minmax_nat_dataframen  s   
z8TestDatetime64SeriesReductions.test_minmax_nat_dataframec                 C   s   t dd}|tjt|}| }| }t|t	sJ t|t	s&J ||d ks.J ||d ks6J | |d ks@J | |d ksJJ d S )N1/1/2000z
12/31/2000r   r[   )
r   taker*   r+   permutationlenr4   r3   r;   r   )r@   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t||d}|j }t|jj	d }t
|ts-J ||ks3J |j }t|jj	d }t
|tsGJ ||ksMJ d S )	Nrl  r   4hrX  )
r   r   r   r   r   r   Crv  rv  rv  )TSVLr[   r   )r   r   r*   r+   r,   ro  rw  r3   r   iatr;   r4   )r@   rp  lvlsrz   rA   r#  r   r   r    test_min_max_series  s   

z2TestDatetime64SeriesReductions.test_min_max_seriesN)r   r   r   ra   r   r   r   r   r   ri  r   rk  rt  r|  r   r   r   r    re  Z  s&    



re  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functionr4   r3   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   rm   r   rJ  F)r   z)Categorical is not ordered for operation r_   )r   r   ra   rb   r   r:   )r@   r~  catr   r   r   r    test_min_max_unordered_raises  s
   
"z=TestCategoricalSeriesReductions.test_min_max_unordered_raiseszvalues, categoriesr=  cbar   rg   rL   rJ   rJ   rL   rg   c                 C   sJ   t t||dd}t||dd}|dkr|d n|d }||ks#J d S )NTr   rT   r4   r   rL   )r   r   r:   )r@   r<   r   r~  r  rA   rB   r   r   r    test_min_max_ordered  s   z4TestCategoricalSeriesReductions.test_min_max_orderedrU   TFc                 C   s<   t ttjgddgdd}t|||d}|tju sJ d S )NrJ   rL   Tr   rT   r   r   r*   rk   r:   )r@   r~  rU   r  rA   r   r   r    "test_min_max_ordered_with_nan_only  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   rm   Tr   rT   r4   r  )r@   r~  rU   r  rA   rB   r   r   r    test_min_max_skipna  s   z3TestCategoricalSeriesReductions.test_min_max_skipnaN)r   r   r   ra   r   r   r  r   r*   rk   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, expectedTrQ   Fc                 C   s(   t g tjd}||}t|| d S r  )r   r*   rF   moder"   rw   r@   r   rB   r   rA   r   r   r    test_mode_empty  s   
zTestSeriesMode.test_mode_emptyzdropna, data, expected)rJ   rJ   rJ   rL   rJ   )rJ   rJ   rJ   rL   rg   rg   rg   rg   dt
AllIntegerFloatc                 C   s2   t ||d}||}t ||d}t|| d S r  r   r  r"   rw   )r@   r   r   rB   r  r   rA   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 )NrJ   rL   )r   r*   rk   r  r"   rw   r  r   r   r    test_mode_numerical_nan  s   
z&TestSeriesMode.test_mode_numerical_nanz'dropna, expected1, expected2, expected3rm   r_  rk   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   rL   rm   rg   r   rQ   r^  r_  )	r   r  r"   rw   r*   rk   rD   r>   str)r@   r   	expected1	expected2	expected3r   r   rA   r   r   r    test_mode_str_obj  s   


z TestSeriesMode.test_mode_str_objzdropna, expected1, expected2r^  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)rJ   r^  r^  rJ   r^  rQ   )r   r  r"   rw   r*   rk   rD   )r@   r   r  r  r   rA   rB   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  rk   rk   r8   rQ   )r   r  r  r   r  rk   rk   r  r@   r   r  r  r   rA   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  rk   rk   r   rQ   )r  r  z-1 dayz-1 day 2 minr  r  rk   rk   r  r  r   r   r    test_mode_timedeltaE  s   



z"TestSeriesMode.test_mode_timedeltarL   )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 )
NrJ   rL   categoryrQ   r   rg   r  Tr   )r   r   r*   rk   r  r"   rw   )r@   r   r  r  r  r   rA   r   r   r    test_mode_categoryg  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)rJ   r  r  rQ   rJ   r  )r   r*   uint64r  r"   rw   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 )Nr^  rJ   F)r   T)drop)
r   r*   rk   r"   rS  UserWarningr  sort_valuesreset_indexrw   )r@   rB   r   rA   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 )NTFrM   rQ   r   )r   rN   rO   r  r"   rw   )r@   r  rA   rB   r   r   r    test_mode_boolean_with_na  s   z(TestSeriesMode.test_mode_boolean_with_nazarray,expected,dtype)r                 ?rJ   rJ         ?      ?      ?       @)r                 @r  r  c                 C       t ||d }t|| d S r  r  r@   r  rB   rR   rA   r   r   r    test_single_mode_value_complex  s   z-TestSeriesMode.test_single_mode_value_complex)r   r  rJ   r  r  )y                r  y      ?        r  r  )r  r  r  r  rg   r  c                 C   r  r  r  r  r   r   r    test_multimode_complex  s   z%TestSeriesMode.test_multimode_complexN)r   r   r   ra   r   r   r   r*   rF   r  r   	typecodesr  rk   r  r  r  r  r  r   r  r  r  r  
complex128	complex64r  r  r   r   r   r    r    s    "
	 
$






r  )$r   r   numpyr*   ra   pandasrN   r   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   pandas._testing_testingr"   pandas.corer   r0   r/   r1   r   r   re  r}  r  r   r   r   r    <module>   s,    H "  P    :A6