U
    ÎZjÇ  ã                   @   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© új/var/www/html/TRUCKING_PROJECT/venv/lib/python3.8/site-packages/pandas/tests/reductions/test_reductions.pyÚ
<listcomp>,   s     zget_objs.<locals>.<listcomp>)ÚtmZmakeBoolIndexZmakeIntIndexZmakeFloatIndexZmakeDateIndexÚtz_localizeZmakePeriodIndexZmakeStringIndexÚnpÚrandomÚrandn)ZindexesÚseriesÚobjsr   r   r    Úget_objs    s    ù
r)   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 k	rn| d¡ d¡}|j|kszt	‚n||kszt	‚d S )N)ZordinalÚfreqr   úM8[ns]Úint64)
ÚgetattrÚ
isinstancer
   Úvaluesr	   Zasi8r/   ÚastypeÚvalueÚAssertionError)Úselfr+   r.   ÚresultÚexpectedr   r   r    Útest_ops6   s    
zTestReductions.test_opsz
dtype, val)Úobjectç       @)Úfloat64r=   údatetime64[ns]éÛ  é   é   )ÚInt64é   )ÚbooleanTc                    s  |}‡ fdd„}|d gˆ d�}|t ||ƒƒ ƒs2t‚|t ||ƒdd�ƒsJt‚|g ˆ d�}|t ||ƒƒ ƒsjt‚|t ||ƒdd�ƒs‚t‚ˆ dkrŽd S |d |gˆ d�}t ||ƒƒ |ks²t‚|t ||ƒdd�ƒsÊt‚|d |d gˆ d�}t ||ƒƒ |ksðt‚|t ||ƒdd�ƒ�s
t‚d S )Nc                    s.   ˆ dkr| t kS ˆ dkr"| tjkS t| ƒS d S )Nr?   )rC   rE   )r   ÚpdÚNAr   )Úres©Údtyper   r    Úcheck_missingU   s
    
z4TestReductions.test_nanminmax.<locals>.check_missingrI   F©Úskipnar<   )r2   r7   )r8   r+   rJ   ÚvalÚindex_or_seriesÚklassrK   r.   r   rI   r    Útest_nanminmaxF   s     zTestReductions.test_nanminmaxc                 C   sÚ   |}|t krd| nd| }|ttdddƒgƒ}t||ƒƒ dksDt‚t||ƒdd�}|tkrlt |¡sxt‚n|dksxt‚|ttdddƒtgƒ}t||ƒƒ dks¢t‚t||ƒdd�}|tkrÊt |¡sÖt‚n|dksÖt‚d S )	NÚargr   r@   rA   rB   FrL   éÿÿÿÿ)r   r   r   r2   r7   r   r$   Úisnan)r8   r+   rO   rP   Úarg_opr.   r9   r   r   r    Útest_nanargminmaxq   s    z TestReductions.test_nanargminmaxrJ   r0   zdatetime64[ns, UTC]c              	   C   s¨   |}|t krd| nd| }|g |d�}t||ƒƒ tks<t‚t||ƒdd�tksTt‚tjtdd�� t||ƒƒ  W 5 Q R X tjtdd�� t||ƒdd� W 5 Q R X d S )NrR   r   rI   FrL   zempty sequence©Úmatch)r   r2   r   r7   ÚpytestÚraisesÚ
ValueError)r8   r+   rO   rJ   rP   rU   r.   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"t‚| ¡ dks2t‚t tjdtjdgƒ}| ¡ dksVt‚| ¡ dksft‚|jd	d
�dkszt‚|jd	d
�dksŽt‚t tjgƒ}| ¡ dksªt‚| ¡ dksºt‚|jd	d
�dksÎt‚|jd	d
�dksât‚t ttdddƒtdddƒtgƒ}| ¡ dk�st‚| ¡ dk�s&t‚|jd	d
�dk�s<t‚|jd	d
�dk�sRt‚t tgƒ}| ¡ dk�snt‚| ¡ dk�s€t‚|jd	d
�dk�s–t‚|jd	d
�dk�s¬t‚d S )Né   r1   rI   r   é   rB   rD   é   FrL   rS   r@   rA   )	r   r$   ÚarangeÚargminr7   ÚargmaxÚnanr   r   )r8   r.   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:00r_   ÚUTC)Úperiodsr   r   )Úcolumnsi  ©Úsecondsre   rB   ©Úaxis)	r   r   r   Úsubtractr   r2   Úrenamer"   Úassert_series_equal)r8   ÚopZexpected_colÚdfr9   r:   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 )NZ2019)rF   Úto_datetimer#   r   r2   r$   r"   ro   )r8   Ztz_aware_fixturers   r   rR   r:   r9   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 )NrB   rD   útimedelta64[ns]rI   rC   ©ÚAÚBr_   )	r   r   r   r$   rc   r   Úsumr"   ro   )r8   rq   r:   r9   r   r   r    Útest_nan_int_timedelta_sumÉ   s    þÿz)TestReductions.test_nan_int_timedelta_sumN)Ú__name__Ú
__module__Ú__qualname__rY   ÚmarkÚparametrizer(   r;   r   rQ   rV   r\   rd   rr   rw   r}   r   r   r   r    r*   5   s2   ûþ
 



r*   c                	   @   s  e Zd Zej ddddddg¡dd„ ƒZd	d
„ Zej dddg¡dd„ ƒZdd„ Z	dd„ Z
ej ddddddg¡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 )0ÚTestIndexReductionszstart,stop,step)r   i�  r_   )iô  r   iúÿÿÿ)éÀ½ðÿé@B r^   )r…   r„   éüÿÿÿ)r   r   é   c                 C   sª   t |||ƒ}|j ¡ }| ¡ }||ks*t‚|jdd�}||ksBt‚|j ¡ }| ¡ }||ks`t‚|jdd�}||ksxt‚t ||| ƒ}t| ¡ ƒs–t‚t| ¡ ƒs¦t‚d S ©NFrL   )r   Z_valuesr,   r7   r-   r   )r8   ÚstartÚstopÚstepr   r:   r9   Zresult2r   r   r    Útest_max_min_rangeÛ   s    

z&TestIndexReductions.test_max_min_rangec                 C   sŽ   t dddgƒ}|jst‚t dtjddgƒ}|jr4t‚||fD ]L}| ¡ tdƒksTt‚| ¡ tdƒksht‚| ¡ dksxt‚| 	¡ dks<t‚q<d S )Nú1 daysú2 daysz3 daysr   r   rD   )
r   Úis_monotonic_increasingr7   r$   rc   r-   r   r,   ra   rb   ©r8   Úidx1Úidx2r   r   r   r    Útest_minmax_timedelta64ý   s    

z+TestIndexReductions.test_minmax_timedelta64rp   r-   r,   c                 C   s`   t g ƒ}t||ƒƒ tkst‚t tgƒ}t||ƒƒ tks:t‚t tttgƒ}t||ƒƒ tks\t‚d S ©N)r   r2   r   r7   ©r8   rp   r.   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$t‚t |¡tdƒks:t‚d}tjt|d�� tj|dd� W 5 Q R X tjt|d�� tj|dd� W 5 Q R X t 	|¡dks t‚t 
|¡d	ks²t‚d}tjt|d�� tj	|dd� W 5 Q R X tjt|d�� tj
|dd� W 5 Q R X d S )
Nz
16815 daysz
16820 daysÚD©r/   ú$the 'out' parameter is not supportedrW   r   ©Úoutr]   )r   r$   r-   r   r7   r,   rY   rZ   r[   ra   rb   )r8   Ú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@t‚| ¡  ¡ }|d |ks\t‚| d¡}t	t
 dd	¡ƒ}||ks‚t‚| ¡ }td
ƒ}||ksžt‚| ¡  ¡ }|d |ksºt‚| ¡ }tdƒ}||ksÖt‚| ¡  ¡ }|d |ksòt‚| ¡ }tt | ¡ jƒ ¡ ƒ}||k�st‚| ¡  ¡ }|d |k�s<t‚t tdƒtdƒgƒ}| ¡  ¡ tdd�k�slt‚t tdƒtdƒtdƒgƒ}| ¡  ¡ tdd�k�s¢t‚d S )Nc                 S   s"   g | ]}t d ƒt|| d� ‘qS ©Z20130101ri   ©r   r   ©r   Úir   r   r    r!   2  s     z:TestIndexReductions.test_timedelta_ops.<locals>.<listcomp>r   é	   ri   r   gš™™™™™¹?i(
  Úmsz00:00:09z00:01:21z
2015-02-03z
2015-02-07r^   )Údaysz
2015-02-15é   )r   ÚrangeÚdiffÚmeanr   r   r7   Úto_frameZquantiler   r$   Ztimedelta64Úmedianr|   ÚstdÚdropnar4   r   )r8   Úsrœ   r9   r:   r   r   r    Útest_timedelta_ops.  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 5 Q R X tjt|d�� t| ¡ |ƒdd� W 5 Q R X d S )Nc                 S   s"   g | ]}t d ƒt|| d� ‘qS rŸ   r    r¡   r   r   r    r!   f  s     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 'ú'rW   F)Znumeric_only)	r   r§   r¨   ÚjoinrY   rZ   Ú	TypeErrorr2   rª   )r8   r+   r®   rœ   Úmsgr   r   r    Útest_invalid_td64_reductionsc  s    ÿ


ýÿz0TestIndexReductions.test_invalid_td64_reductionsc                 C   s¢   |}t dddg|d�}|js t‚t dtddtg|d�}|jr@t‚||fD ]T}| ¡ td|d�ksdt‚| ¡ td|d�ks|t‚| ¡ dksŒt‚| ¡ dksHt‚qHd S )Nú
2011-01-01ú
2011-01-02ú
2011-01-03r   r   rD   )	r   r�   r7   r   r-   r   r,   ra   rb   )r8   Ztz_naive_fixturer   r‘   r’   r   r   r   r    Útest_minmax_tzx  s    
 ÿ
z"TestIndexReductions.test_minmax_tzc                 C   s`   t g ƒ}tt||ƒƒ ƒst‚t tgƒ}tt||ƒƒ ƒs:t‚t tttgƒ}tt||ƒƒ ƒs\t‚d S r”   )r   r   r2   r7   r   r•   r   r   r    Útest_minmax_nat_datetime64Š  s    
z.TestIndexReductions.test_minmax_nat_datetime64c              	   C   s:  t dddgƒ}|j ¡ }t |¡}||ks.t‚|j ¡ }t |¡}||ksNt‚d}tjt|d�� tj|dd� W 5 Q R X tjt|d�� tj|dd� W 5 Q R X |j 	¡ }t 	|¡}||ksÂt‚|j 
¡ }t 
|¡}||ksât‚d}tjt|d�� tj
|dd� W 5 Q R X tjt|d�� tj	|dd� W 5 Q R X d S )NrB   rD   r_   r™   rW   r   rš   )r   r4   r,   r$   r7   r-   rY   rZ   r[   rb   ra   )r8   r   r:   r9   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"t‚t |¡}|dks8t‚d}tjt|d�� tj|dd� W 5 Q R X tjt|d�� tj|dd� W 5 Q R X d S )Nr   r   r_   r£   r™   rW   rš   )r   r$   r,   r7   r-   rY   rZ   r[   )r8   r   r9   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"t‚t |¡tdƒks8t‚d}tjt|d�� tj|dd	� W 5 Q R X tjt|d�� tj|dd	� W 5 Q R X t 	|¡dksžt‚t 
|¡d
ks°t‚d}tjt|d�� tj	|dd	� W 5 Q R X tjt|d�� tj
|dd	� W 5 Q R X d S )Nú
2016-01-15ú
2016-01-20©r‰   Úendz2016-01-15 00:00:00z2016-01-20 00:00:00r™   rW   r   rš   r]   )r   r$   r-   r   r7   r,   rY   rZ   r[   ra   rb   )r8   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t‚|dd … js0t‚t dtddtgdd�}|jrPt‚||fD ]4}| ¡ tddd�kstt‚| ¡ tddd�ksXt‚qX| ¡ dksžt‚| ¡ dks®t‚| ¡ dks¾t‚| ¡ d	ksÎt‚d S )
Nr¸   r¹   rº   r—   r˜   rB   r   r_   rD   )	r
   r   r�   r7   r-   r	   r,   ra   rb   r�   r   r   r    Útest_minmax_periodà  s    
 ÿ
z&TestIndexReductions.test_minmax_periodÚdatac                 C   s(   t |dd�}t||ƒƒ }|tks$t‚d S )NÚMr˜   )r
   r2   r   r7   )r8   rp   rÅ   r.   r9   r   r   r    Útest_minmax_period_empty_natõ  s    z0TestIndexReductions.test_minmax_period_empty_natc              	   C   s  t jddd�}t |¡tddd�ks(t‚t |¡tddd�ksBt‚d}tjt	|d�� tj|dd	� W 5 Q R X tjt	|d�� tj|dd	� W 5 Q R X t 
|¡dks¨t‚t |¡d
ksºt‚d}tjt	|d�� tj
|dd	� W 5 Q R X tjt	|d�� tj|dd	� W 5 Q R X d S )Nr¿   rÀ   rÁ   r—   r˜   r™   rW   r   rš   r]   )rF   Zperiod_ranger$   r-   r	   r7   r,   rY   rZ   r[   ra   rb   )r8   Ú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 5 Q R X d}tjt|d�� | ¡  W 5 Q R X t jtdƒtdƒdd�}| ¡ d	ksŒt‚| ¡ d
ksœt‚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\nrW   zwCategorical is not ordered for operation max\nyou can use .as_ordered\(\) to change the Categorical to an ordered one\nTÚcre   )	rF   ZCategoricalIndexÚlistrY   rZ   rµ   r-   r,   r7   )r8   Úcir¶   r   r   r    Útest_min_max_categorical  s    ÿÿz,TestIndexReductions.test_min_max_categoricalN)r~   r   r€   rY   r�   r‚   rŒ   r“   r–   rž   r¯   r·   r»   r¼   r½   r¾   rÃ   rÄ   r   rÇ   rÉ   rÐ   r   r   r   r    rƒ   Ö   s:   ûþ


5

 rƒ   c                   @   sœ  e Zd Zdd„ Zej ddddddg¡ej d	d
dg¡ej dddg¡dd„ ƒƒƒZej dddg¡dd„ ƒZej ddg¡ej ddddg¡dd„ ƒƒZ	ej dddddg¡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ej dd&¡ej d'd
dg¡d(d)„ ƒƒZd*d+„ Zd,d-„ Zd.d/„ Zd0d1„ Zd2d3„ Zej d4eeg¡d5d6„ ƒZd7d8„ Zej d9d:d;g¡ej d'd
dg¡d<d=„ ƒƒZej d9d:d;g¡ej d>dd?gd?dgdejgejdgg¡d@dA„ ƒƒZej ddddBdg¡ej d9d:d;g¡ej d'd
dg¡ej dCdDdDdDgddgddggfdEdEdEg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dDejdDgejdgddggfdEejdEgd
ejgd
d
ggfdEejdDgd
dgd
dggfg¡dFdG„ ƒƒƒƒZej dHd;dd
dgfd:dd
d
gfg¡dIdJ„ ƒZdKdL„ Z dMdN„ Z!dOdP„ Z"ej dQeg ddR�e#fedSdTdUgƒe$fedVdWgƒe$fedSdSdTdTd?ejdUgƒe$fg¡dXdY„ ƒZ%dZd[„ Z&d?S )\ÚTestSeriesReductionsc              	   C   s¼   t tj d¡ƒ}| ¡ }tj|dd…< tj|dd…< t | ¡ ¡sFt	‚tj dd¡ 
d¡}tj|d d …df< t dd¡� t | ¡ | ¡ ¡ W 5 Q R X tj|d	d
�}t |¡ ¡ s¸t	‚d S )Nr   r]   é   éd   Zf4rD   úmode.use_inf_as_naTrB   rk   )r   r$   r%   r&   ÚcopyÚinfrc   Úisinfr|   r7   r5   rF   Úoption_contextr"   Úassert_almost_equalr   ÚnansumÚall)r8   r®   Ús2r   rH   r   r   r    Útest_sum_inf,  s    z!TestSeriesReductions.test_sum_infrJ   r>   ZFloat32rC   rE   r<   Úuse_bottleneckTFzmethod, unit)r|   ç        )r°   ç      ð?c              	   C   sF  t  d|¡��. tg |d�}t||ƒƒ }||ks4t‚t||ƒdd�}||ksPt‚t||ƒdd�}t|ƒslt‚t||ƒdd�}||k t||ƒddd�}||ks¢t‚t||ƒddd�}t|ƒsÀt‚t||ƒd	dd�}||ksÞt‚t||ƒd	dd�}t|ƒsüt‚ttjg|d�}t||ƒƒ }||k�s&t‚t||ƒdd�}||k�sDt‚t||ƒdd�}t|ƒ�sbt‚t||ƒdd�}||k t||ƒddd�}||k�sšt‚t||ƒddd�}t|ƒ�sºt‚ttjdg|d�}t||ƒƒ }|d
k�sæt‚t||ƒdd�}|d
k�st‚t||ƒdd�}|d
k�s"t‚t||ƒdd�}|d
k�s@t‚t||ƒddd�}|d
k�s`t‚tt 	d¡|d�}t||ƒdƒ|k 
¡ �sŽt‚tdg|d�}t||ƒdd�}t|ƒ�sºt‚t||ƒd	dd�}t|ƒ�sÚt‚ttjg|d�}t||ƒdd�}t|ƒ�st‚ttjdg|d�}t||ƒdd�}t|ƒ�s8t‚W 5 Q R X d S )NrÞ   rI   r   )Ú	min_countrB   TrL   )rM   rá   Frà   )r   r   rD   )rF   rØ   r   r2   r7   r   r$   rc   r   ÚemptyrÛ   )r8   ÚmethodÚunitrÞ   rJ   r®   r9   rq   r   r   r    Ú
test_empty>  sn    zTestSeriesReductions.test_emptyc              	   C   s  t dtjtjtjgtj ddg¡d�}t t¡� t	||ƒdd�}W 5 Q R X t d|gddgd�}t 
||¡ t t¡� t	||ƒddd	�}W 5 Q R X t d|gddgd�}t 
||¡ t t¡� t	||ƒddd	�}W 5 Q R X t dtjgddgd�}t 
||¡ d S )
NrB   )r   re   )r   rB   ©r   r   ©Úlevelr   re   )rè   rá   )r   r$   rc   rF   Z
MultiIndexZfrom_productr"   Úassert_produces_warningÚFutureWarningr2   ro   )r8   rã   rä   r®   r9   r:   r   r   r    Útest_empty_multi£  s     þz%TestSeriesReductions.test_empty_multirã   r©   ZFloat64c                 C   sT   t g |d�}t||ƒƒ }|tjks&t‚t tjg|d�}t||ƒƒ }|tjksPt‚d S ©NrI   )r   r2   rF   rG   r7   r$   rc   )r8   rã   rJ   Zeserr9   Znserr   r   r    Ú&test_ops_consistency_on_empty_nullable»  s    z;TestSeriesReductions.test_ops_consistency_on_empty_nullabler«   r¬   r±   c              	   C   s†   t ttd�|ƒƒ }t|ƒst‚tg dd�}|dkrjd dddg¡}tjt|d�� t ||ƒƒ  W 5 Q R X nt ||ƒƒ }|t	ks‚t‚d S )	NrI   úm8[ns]r±   r²   zoperation 'var' not allowedz.cannot perform var with type timedelta64\[ns\]z does not support reduction 'var'rW   )
r2   r   Úfloatr   r7   r´   rY   rZ   rµ   r   )r8   rã   r9   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   rB   ræ   )r   r$   rc   rÚ   r"   rÙ   )r8   Úserr9   r   r   r    Útest_nansum_bugletæ  s    
z'TestSeriesReductions.test_nansum_bugletZint32r1   c              	   C   s’   t  d|¡�| tjd|d�}t|ƒ}|jdd�}t|ƒ|jdd�ksHt‚|jdd�}t|ƒdksdt‚|j	dd�}t|ƒ|d ks„t‚W 5 Q R X d S )	NrÞ   é@KL rI   FrL   r1   r   rS   )
rF   rØ   r$   r`   r   r|   Úintr7   r-   r,   ©r8   rÞ   rJ   Úvr®   r9   r   r   r    Útest_sum_overflow_intë  s    z*TestSeriesReductions.test_sum_overflow_intZfloat32c              	   C   s–   t  d|¡�€ tjd|d�}t|ƒ}|jdd�}||j|d�ksDt‚|jdd�}t t	|ƒd¡sdt‚|j
dd�}t t	|ƒ|d ¡sˆt‚W 5 Q R X d S )NrÞ   ró   rI   FrL   rß   rS   )rF   rØ   r$   r`   r   r|   r7   r-   Zallcloserï   r,   rõ   r   r   r    Útest_sum_overflow_floatü  s    z,TestSeriesReductions.test_sum_overflow_float)rî   rî   r0   zM8[ns, UTC]rM   c                 C   s<   t g |d�j|d�tkst‚t g |d�j|d�tks8t‚d S )NrI   rL   )r   r-   r   r7   r,   )r8   rJ   rM   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s8t‚| ¡ }||ksLt‚d}tjt|d�� t j||d� W 5 Q R X d S ©NrB   rA   ræ   r™   rW   rš   )r$   r`   r   ra   r7   rY   rZ   r[   ©r8   rÅ   r®   r9   r:   r¶   r   r   r    Útest_numpy_argmin  s    

z&TestSeriesReductions.test_numpy_argminc              	   C   s|   t  dd¡}t||d�}t  |¡}t  |¡}||ks8t‚| ¡ }||ksLt‚d}tjt|d�� t j||d� W 5 Q R X d S rú   )r$   r`   r   rb   r7   rY   rZ   r[   rû   r   r   r    Útest_numpy_argmax#  s    

z&TestSeriesReductions.test_numpy_argmaxc                 C   sì   t  ¡  d¡}tj|dd…< || ¡  | ¡ ks4t‚t|jdd�ƒsHt‚| 	¡ }|| ¡  | ¡ ksht‚|j
j ¡  
| ¡ ¡|j ¡ ksŒt‚|tj }t| ¡ ƒs¦t‚ttddd�ƒ}| ¡ }|d	ksÊt‚tj|d	< | ¡ }|d
ksèt‚d S )Nr'   r]   é   FrL   Ú20130102r¦   ©rg   r   rB   )r"   ÚmakeStringSeriesrn   r$   ÚNaNÚidxminr-   r7   r   r­   r   r4   Útolistra   rc   r   r   )r8   Ústring_seriesÚnonaÚallnar®   r9   r   r   r    Útest_idxmin4  s    $

z TestSeriesReductions.test_idxminc                 C   st  t  ¡  d¡}tj|dd…< || ¡  | ¡ ks4t‚t|jdd�ƒsHt‚| 	¡ }|| ¡  | ¡ ksht‚|j
j ¡  
| ¡ ¡|j ¡ ksŒt‚|tj }t| ¡ ƒs¦t‚ddlm} t|dd	d
�ƒ}| ¡ }|dksÖt‚tj|d< | ¡ }|dksôt‚tdddgdddgƒ}| ¡ }|dk�s t‚| ¡ }|dk�s6t‚t|j
|j
ƒ}| ¡ }|dk�sZt‚| ¡ }|dk�spt‚d S )Nr'   r]   rþ   FrL   r   )r   rÿ   r¦   r   r^   rB   rD   r_   gš™™™™™ñ?gÍÌÌÌÌÌ @gÍÌÌÌÌÌ@)r"   r  rn   r$   r  Úidxmaxr,   r7   r   r­   r   r4   r  rb   rc   Úpandasr   r   r  )r8   r  r  r  r   r®   r9   r   r   r    Útest_idxmaxR  s4    $

z TestSeriesReductions.test_idxmaxc                 C   sD   t  ¡ }|dk}| ¡ rt‚| ¡ s(t‚tddgƒ}| ¡ s@t‚d S )Nr   ÚabcT)r"   ZmakeTimeSeriesrÛ   r7   Úanyr   )r8   ÚtsZbool_seriesr®   r   r   r    Útest_all_any  s    z!TestSeriesReductions.test_all_anyrP   c                 C   sJ   |dddgƒ}t  |¡rt‚t  |¡s*t‚tdddgƒ}t  |¡sFt‚d S )Nr   rB   rD   r_   )r$   rÛ   r7   r  r   )r8   rP   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,t‚|jdd�s<t‚|jdd�sLt‚|jdd�r\t‚t ddddddgddddddgd�}t t¡�$ t 	|jdd�t dddgƒ¡ W 5 Q R X t t¡�$ t 	|jdd�t dddgƒ¡ W 5 Q R X d	}t
jt|d
��* t t¡� |jddd� W 5 Q R X W 5 Q R X t
jt|d
��* t t¡� |jddd� W 5 Q R X W 5 Q R X |jdd��szt‚|jdd��rŒt‚d S )NTFrL   r   rB   rD   ræ   rç   z5Option bool_only is not implemented with option levelrW   )Ú	bool_onlyrè   )r  )r   r$   rc   rÛ   r7   r  r"   ré   rê   ro   rY   rZ   ÚNotImplementedError)r8   Ús1rÜ   r®   r¶   r   r   r    Útest_all_any_params’  s(    $((""z(TestSeriesReductions.test_all_any_paramsÚbool_agg_funcr  rÛ   c                 C   s:   t dddddgtd�}t||ƒ|d�}d}||ks6t‚d S )	Nr   re   rÍ   ÚdÚerI   rL   T)r   r<   r2   r7   )r8   r  rM   rñ   r9   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 |k}||ks4t‚d S )NFrL   r  )r   r2   r7   )r8   rÅ   r  rñ   r9   r:   r   r   r    Ú!test_any_all_object_dtype_missing¸  s    z6TestSeriesReductions.test_any_all_object_dtype_missingZUInt64zdata,expected_datar   rB   c           	      C   sP   t ||d�}|| |dk }t||ƒ|d�}|tjkr@|tjksL||ksLt‚d S )NrI   rÛ   rL   )r   r2   rF   rG   r7   )	r8   r  rM   rÅ   rJ   Zexpected_datarñ   r:   r9   r   r   r    Ú"test_any_all_nullable_kleene_logicÅ  s    z7TestSeriesReductions.test_any_all_nullable_kleene_logiczbool_agg_func,expectedc              	   C   sh   t ddddddgddddddgdd�}t t¡� t||ƒdd�}W 5 Q R X t |dd	�}t ||¡ d S )
NFTr   rB   rD   rE   )r   rJ   rç   rI   )r   r"   ré   rê   r2   ro   )r8   r  r:   rñ   r9   r   r   r    Útest_any_all_boolean_levelß  s    ýz/TestSeriesReductions.test_any_all_boolean_levelc                 C   s@   t ddgddgdœƒ}|jddd�}tddgƒ}t ||¡ d S )NTFrB   rD   ry   )rl   r  )r   r  r   r"   ro   )r8   rq   r9   r:   r   r   r    Útest_any_axis1_bool_onlyï  s    z-TestSeriesReductions.test_any_axis1_bool_onlyc                 C   sT  t ddd�j}t|ƒ}t|ƒ}| ¡ s*t‚| ¡ s6t‚| ¡ sBt‚| ¡ sNt‚| ¡  ¡ s^t‚| ¡  ¡ snt‚| d¡}t|ƒ}t|ƒ}| ¡ s”t‚| ¡ s t‚| ¡ s¬t‚| ¡ s¸t‚| ¡  ¡ sÈt‚| ¡  ¡ sØt‚||d  }t|ƒ}t|ƒ}| ¡ �st‚| ¡ �rt‚| ¡ �st‚| ¡ �r,t‚| ¡  ¡ �s>t‚| ¡  ¡ �rPt‚d S )Nz
1995-01-02r_   r   rf   r   )r   Ú_datar   r   rÛ   r7   r  r#   )r8   Zdtarñ   rq   Ztdar   r   r    Útest_any_all_datetimelikeö  s6    
z.TestSeriesReductions.test_any_all_datetimelikec                 C   s  t dddd�}t|ƒtdƒ }| ¡ }|dks2t‚| ¡ }|dksFt‚tj|d< | ¡ }|dksdt‚| ¡ }|dksxt‚tt ddd	�ƒ}tt d
dd	�ƒ}t|| ƒ}t || ¡}t	 
||¡ ||  ¡ }t	 
||¡ | ¡ }tdƒ}||ksòt‚| ¡ }tdƒ}||k�st‚d S )Nz2012-1-1r_   r—   ©rg   r/   Z20120101r   rD   rB   r   Z20120102rŽ   r�   )r   r   r   r  r7   r	  r$   rc   Úabsr"   ro   r,   r   r-   )r8   Zdtirœ   r9   r  rÜ   r:   r   r   r    Útest_timedelta64_analytics   s0    
z/TestSeriesReductions.test_timedelta64_analyticsztest_input,error_typerI   ÚfooÚbarZbaz)rB   )rD   c              	   C   sœ   d}t j||d�� | ¡  W 5 Q R X t j||d�� |jdd� W 5 Q R X d}t j||d�� | ¡  W 5 Q R X t j||d�� |jdd� W 5 Q R X 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 sequencerW   FrL   zbreduction operation 'argmax' not allowed for this dtype|attempt to get argmax of an empty sequenceN)rY   rZ   r  r	  )r8   Z
test_inputZ
error_typer¶   r   r   r    Útest_assert_idxminmax_raisesJ  s    ÿÿz1TestSeriesReductions.test_assert_idxminmax_raisesc              	   C   sÈ   t dtj tjtjgƒ}| ¡ dks(t‚t |jdd�¡s>t‚| ¡ dksNt‚t |jdd�¡sdt‚t 	dd¡�N | ¡ dks‚t‚t |jdd�¡s˜t‚| ¡ dks¨t‚t |jdd�¡ W 5 Q R X d S )Nr   rB   FrL   rD   rÔ   T)
r   r$   rÖ   rc   r  r7   rT   r	  rF   rØ   )r8   r®   r   r   r    Útest_idxminmax_with_infj  s    z,TestSeriesReductions.test_idxminmax_with_inf)'r~   r   r€   rÝ   rY   r�   r‚   rå   rë   rí   rð   rò   r÷   rø   rù   rü   rý   r  r  r  r   r   r  r  r  r$   rc   r  rF   rG   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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kst‚| ¡ tks t‚|j dd�tks4t‚|jdd�tksHt‚d S rˆ   ©r-   r   r7   r,   )r8   r'  r   r   r    Útest_minmax_nat_series‚  s    
z5TestDatetime64SeriesReductions.test_minmax_nat_seriesÚnat_dfc                 C   s\   |  ¡ d tkst‚| ¡ d tks(t‚|j dd�d tks@t‚|jdd�d tksXt‚d S )Nr   FrL   r(  )r8   r*  r   r   r    Útest_minmax_nat_dataframe‘  s    
z8TestDatetime64SeriesReductions.test_minmax_nat_dataframec                 C   s˜   t ddƒ}| tj t|ƒ¡¡}| ¡ }| ¡ }t|t	ƒs>t
‚t|t	ƒsLt
‚||d ks\t
‚||d kslt
‚| ¡ |d ks€t
‚| ¡ |d ks”t
‚d S )Nú1/1/2000z
12/31/2000r   rS   )r   Ztaker$   r%   ZpermutationÚlenr-   r,   r3   r   r7   )r8   ÚrngZrng2Zthe_minZthe_maxr   r   r    Útest_min_max   s    
z+TestDatetime64SeriesReductions.test_min_maxc              
   C   s®   t dddd�}ddddddddddg
}t|tj t|ƒ¡|dœƒ}|j ¡ }t|jj	d	 ƒ}t
|tƒsjt‚||ksvt‚|j ¡ }t|jj	d
 ƒ}t
|tƒsžt‚||ksªt‚d S )Nr,  r   Z4hr  rz   r{   ÚC)ÚTSÚVÚLrS   r   )r   r   r$   r%   r&   r-  r1  r,   r   Ziatr3   r7   r-   )r8   r.  Zlvlsrq   r9   Úexpr   r   r    Útest_min_max_series®  s    

z2TestDatetime64SeriesReductions.test_min_max_seriesN)r~   r   r€   rY   r�   r‚   r   r   r   r)  r   r+  r/  r5  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d	d
dgdd
d	gfd	d
dej	gdd
d	g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Úfunctionr-   r,   c              	   C   sL   t tddddgdd�ƒ}d|› �}tjt|d�� t||ƒƒ  W 5 Q R X d S )	Nr   re   rÍ   r  F)rÌ   z)Categorical is not ordered for operation rW   )r   r   rY   rZ   rµ   r2   )r8   r7  Úcatr¶   r   r   r    Útest_min_max_unordered_raisesÃ  s    
z=TestCategoricalSeriesReductions.test_min_max_unordered_raiseszvalues, categoriesr  ZcbarB   rD   r_   c                 C   sJ   t t||dd�ƒ}t||ƒdd�}|dkr2|d n|d }||ksFt‚d S )NTrÊ   rL   r-   r   rD   )r   r   r2   r7   )r8   r4   rË   r7  r8  r9   r:   r   r   r    Útest_min_max_orderedË  s    z4TestCategoricalSeriesReductions.test_min_max_orderedrM   TFc                 C   s<   t ttjgddgdd�ƒ}t||ƒ|d�}|tjks8t‚d S )NrB   rD   TrÊ   rL   ©r   r   r$   rc   r2   r7   )r8   r7  rM   r8  r9   r   r   r    Ú"test_min_max_ordered_with_nan_onlyÝ  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krV|dkrDdnd}||ksdt‚n|tjksdt‚d S )Nr   re   TrÊ   rL   r-   r;  )r8   r7  rM   r8  r9   r:   r   r   r    Útest_min_max_skipnaå  s    ÿz3TestCategoricalSeriesReductions.test_min_max_skipnaN)r~   r   r€   rY   r�   r‚   r9  rÎ   r$   rc   r:  r<  r=  r   r   r   r    r6  ¾  s&   
ûþ
r6  c                   @   sŠ  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dddd	gdgfddddd	d
d
d
gdd
gfddddd	gdgfddddd	d
d
d
g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dddgddgfdejgejddgfg¡d d!„ ƒZej ddd"d#d$g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d
d	dg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d
d	dg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¡d/d0„ ƒZd1d2„ Zd3d4„ Zej d5d6d7ddd8d9gedgejd�ejfd6d7ddd8d9gedgejd�ejfd8d:d8ged8gejd�ejfg¡d;d<„ ƒZej d5d6d7dd8d9ged=d7d>d8d9gejd�ejfd8d:d8d:d
ged:d8gejd�ejfg¡d?d@„ ƒZdAS )BÚTestSeriesModezdropna, expectedTrI   Fc                 C   s(   t g tjd�}| |¡}t ||¡ d S rì   )r   r$   r>   Úmoder"   ro   ©r8   r­   r:   r®   r9   r   r   r    Útest_mode_emptyù  s    
zTestSeriesMode.test_mode_emptyzdropna, data, expectedrB   rD   r_   ÚdtZ
AllIntegerÚFloatc                 C   s2   t ||d�}| |¡}t ||d�}t ||¡ d S rì   ©r   r?  r"   ro   )r8   r­   rÅ   r:   rB  r®   r9   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 )NrB   rD   )r   r$   rc   r?  r"   ro   r@  r   r   r    Útest_mode_numerical_nan  s    
z&TestSeriesMode.test_mode_numerical_nanz'dropna, expected1, expected2, expected3re   r#  rc   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   rD   re   r_   rÍ   rI   r"  r#  )	r   r?  r"   ro   r$   rc   r<   r5   Ústr)r8   r­   Ú	expected1Ú	expected2Ú	expected3rÅ   r®   r9   r   r   r    Útest_mode_str_obj  s    


z TestSeriesMode.test_mode_str_objzdropna, expected1, expected2r"  c                 C   sl   t dddgƒ}| |¡}t |ƒ}t ||¡ t dddtjtjtjgƒ}| |¡}t |td�}t ||¡ d S )NrB   r"  rI   )r   r?  r"   ro   r$   rc   r<   )r8   r­   rH  rI  r®   r9   r:   r   r   r    Útest_mode_mixeddtype6  s    

z#TestSeriesMode.test_mode_mixeddtypeú
1900-05-03rº   ú
2013-01-02c                 C   sx   t dddddgdd�}| |¡}t |dd�}t ||¡ t dddddddgdd�}| |¡}t |dd�}t ||¡ d S )Nrº   rN  rM  rc   r0   rI   rD  ©r8   r­   rH  rI  r®   r9   r   r   r    Útest_mode_datetimeE  s*     ÿ
ù	ö
z!TestSeriesMode.test_mode_datetimeú-1 daysú0 daysr�   ú2 minú1 dayc              	   C   sz   t dddddgdd�}| |¡}t |dd�}t ||¡ t dddd	d
d
ddgdd�}| |¡}t |dd�}t ||¡ d S )Nr�   rQ  rR  rc   rx   rI   rT  z-1 dayz-1 day 2 minrS  rD  rO  r   r   r    Útest_mode_timedeltah  s,    
 ÿ
ø
õ
z"TestSeriesMode.test_mode_timedelta)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dddgdd�ƒ}| |¡}t |dd�}t ||¡ d S )	NrB   rD   ÚcategoryrI   r   r_   TrÊ   )r   r   r$   rc   r?  r"   ro   )r8   r­   rH  rI  rJ  r®   r9   r   r   r    Útest_mode_categoryŠ  s$    

  ÿÿ
z!TestSeriesMode.test_mode_categoryì            c                 C   sr   t dddgtjd�}| |¡}t |tjd�}t ||¡ t ddgtjd�}| |¡}t |tjd�}t ||¡ d S )NrB   rX  rI   )r   r$   Zuint64r?  r"   ro   rO  r   r   r    Útest_mode_intoverflow¯  s    

z$TestSeriesMode.test_mode_intoverflowc              	   C   sf   t dtjgƒ}t dddtjtjgƒ}t t¡�" |jdd�}| ¡ jdd�}W 5 Q R X t 	||¡ d S )Nr"  rB   F)r­   T)Zdrop)
r   r$   rc   r"   ré   ÚUserWarningr?  Zsort_valuesZreset_indexro   )r8   r:   r®   r9   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 )NTFrE   rI   r   )r   rF   rG   r?  r"   ro   )r8   rñ   r9   r:   r   r   r    Útest_mode_boolean_with_naÌ  s    z(TestSeriesMode.test_mode_boolean_with_nazarray,expected,dtyper   y              ð?y      ð?      ð?y      ð?       @y               @c                 C   s    t ||d� ¡ }t ||¡ d S rì   rD  ©r8   Úarrayr:   rJ   r9   r   r   r    Útest_single_mode_value_complexÓ  s    z-TestSeriesMode.test_single_mode_value_complexy                y      ð?        c                 C   s    t ||d� ¡ }t ||¡ d S rì   rD  r]  r   r   r    Útest_multimode_complexë  s    z%TestSeriesMode.test_multimode_complexN)r~   r   r€   rY   r�   r‚   r   r$   r>   rA  rÎ   Ú	typecodesrE  rc   rF  rK  rL  rP  rU  r   rW  rY  r[  r\  Z
complex128Z	complex64r_  r`  r   r   r   r    r>  ô  sÆ   "þ
üþ	 ÿ 
$þ
þ
ýúþ
þþ
üüùþ
þ
ýýýõþ
üýùþr>  )$r   r   Únumpyr$   rY   r
  rF   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ƒ   rÑ   r&  r6  r>  r   r   r   r    Ú<module>   s*   H "  S    ZA6