a
    +ñ»jØæ  ã                   @   s  d dl m Z mZ d dlmZ d dlZd dlZd dlZd dlm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ d dlmZ d dlmZ d dlm Z  dd„ Z!G d	d
„ d
ƒZ"G dd„ dƒZ#G dd„ dƒZ$G dd„ dƒZ%G dd„ dƒZ&G dd„ dƒZ'dS )é    )ÚdatetimeÚ	timedelta)ÚDecimalN)ÚCategoricalÚ	DataFrameÚDatetimeIndexÚIndexÚNaTÚPeriodÚPeriodIndexÚ
RangeIndexÚSeriesÚ	TimedeltaÚTimedeltaIndexÚ	TimestampÚ
date_rangeÚisnaÚperiod_rangeÚtimedelta_rangeÚto_timedelta)Únanops)ÚArrowStringArrayNumpySemanticsc                     sÆ   t ddgd dd�t t d¡tjdd�t t d¡tjdd�ttddd	�dd�ttddd	�dd�jd
d�tt	dddd�dd�t dd„ t
dƒD ƒdd�g} tj d¡ d¡‰ ‡ fdd„| D ƒ}| | }|S )NTFé   Úa)Únameé
   ©Údtyper   ú
2020-01-01©Úperiodsz
US/Eastern©ÚtzÚD©r    Úfreqc                 S   s   g | ]}t |ƒ‘qS © )Ústr©Ú.0Úir&   r&   úME:\soccer\ml_env\Lib\site-packages\pandas/tests/reductions/test_reductions.pyÚ
<listcomp>-   ó    zget_objs.<locals>.<listcomp>é   c                    s   g | ]}t ˆ |d d�‘qS )r   ©Úindexr   )r   )r)   Úidx©Úarrr&   r+   r,   1   r-   )r   ÚnpÚarangeÚint64Úfloat64r   r   Útz_localizer   r   ÚrangeÚrandomÚdefault_rngÚstandard_normal)ZindexesÚseriesZobjsr&   r2   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ƒsHt|jtƒr8t t |j¡|ƒƒ }q`t |j|ƒƒ }ntt |j|ƒƒ |j	d�}t |dd ƒd ur�| 
d¡ 
d¡}|j|ksœJ ‚n||ksœJ ‚d S )N)Zordinalr%   r"   úM8[ns]r6   )ÚgetattrÚ
isinstancer   Úvaluesr   r4   Úarrayr
   Zasi8r%   ÚastypeÚ_value)Úselfr@   rC   ÚresultÚexpectedr&   r&   r+   Útest_ops8   s    
zTestReductions.test_opsz
dtype, val)Úobjectç       @)r7   rP   údatetime64[ns]éÛ  é   é   )ÚInt64r.   )ÚbooleanTc                    s  |}‡ fdd„}|d gˆ d�}|t ||ƒƒ ƒs2J ‚|t ||ƒdd�ƒsJJ ‚|g ˆ d�}|t ||ƒƒ ƒsjJ ‚|t ||ƒdd�ƒs‚J ‚ˆ dkrŽd S |d |gˆ d�}t ||ƒƒ |ks²J ‚|t ||ƒdd�ƒsÊJ ‚|d |d gˆ d�}t ||ƒƒ |ksðJ ‚|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 )NrQ   )rU   rV   )r	   ÚpdÚNAr   )Úres©r   r&   r+   Úcheck_missing^   s
    
z4TestReductions.test_nanminmax.<locals>.check_missingrZ   F©ÚskipnarO   )rE   )rK   r@   r   ÚvalÚindex_or_seriesÚklassr[   rC   r&   rZ   r+   Útest_nanminmaxO   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 sˆ0    Y  |tu rªt 	|¡s¶J ‚n|dks¶J ‚|ttdddƒtgƒ}t||ƒƒ dksàJ ‚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Úargr1   rR   rS   rT   zNThe behavior of (DatetimeIndex|Series).argmax/argmin with skipna=False and NAsz2The behavior of Series.(idxmax|idxmin) with all-NA©ÚmatchFr\   éÿÿÿÿ)
r   r	   r   rE   r   ÚtmÚassert_produces_warningÚFutureWarningr4   Úisnan)rK   r@   r_   r`   Úarg_oprC   ÚmsgrL   r&   r&   r+   Útest_nanargminmaxz   s(    ÿ.0
z TestReductions.test_nanargminmaxr   rD   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 s„0    Y  tjtdd��  t||ƒdd� W d   ƒ n1 sÂ0    Y  d S )Nrb   r1   rZ   Fr\   zempty sequencerc   )r   rE   r	   ÚpytestÚraisesÚ
ValueError)rK   r@   r_   r   r`   rj   rC   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sŽJ ‚W d   ƒ n1 s¢0    Y  tjt|d
��$ |jdd�dksÐJ ‚W d   ƒ n1 sä0    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�s¤J ‚W d   ƒ n1 �sº0    Y  tjt|d
��& |jdd�dk�sêJ ‚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 �sŽ0    Y  tjt|d
��& |jdd�dk�s¾J ‚W d   ƒ n1 �sÔ0    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�s’J ‚W d   ƒ n1 �s¨0    Y  tjt|d
��& |jdd�dk�sØJ ‚W d   ƒ n1 �sî0    Y  d S )Nr   r6   rZ   r   é   rT   r.   é   z=The behavior of Index.argmax/argmin with skipna=False and NAsrc   Fr\   re   zEThe behavior of DatetimeIndex.argmax/argmin with skipna=False and NAsrR   rS   )r   r4   r5   ÚargminÚargmaxÚnanrf   rg   rh   r	   r   )rK   rC   rk   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:00rr   ÚUTC)r    r"   r   )Úcolumnsi  ©Úsecondsrw   rT   ©Úaxis)	r   r   r   Úsubtractr   rE   Úrenamerf   Úassert_series_equal)rK   ÚopZexpected_colÚdfrL   rM   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)rW   Úto_datetimer8   r   rE   r4   rf   r€   )rK   Ztz_aware_fixturer„   r"   rb   rM   rL   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 )NrT   r.   útimedelta64[ns]rZ   rU   ©ÚAÚBrr   )	r   r   r	   r4   ru   r   Úsumrf   r€   )rK   r‚   rM   rL   r&   r&   r+   Útest_nan_int_timedelta_sumé   s    þÿz)TestReductions.test_nan_int_timedelta_sumN)Ú__name__Ú
__module__Ú__qualname__rm   ÚmarkÚfilterwarningsÚparametrizer>   rN   r   ra   rl   rp   rv   rƒ   rˆ   rŽ   r&   r&   r&   r+   r?   7   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�  rr   )iô  r   iúÿÿÿ)éÀ½ðÿé@B rq   )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| ¡ ƒs–J ‚t| ¡ ƒs¦J ‚d S ©NFr\   )r   Z_valuesrA   rB   r   )rK   ÚstartÚstopÚstepr1   rM   rL   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_increasingr4   ru   rB   r   rA   rs   rt   ©rK   Úidx1Úidx2r1   r&   r&   r+   Útest_minmax_timedelta64  s    

z+TestIndexReductions.test_minmax_timedelta64r�   rB   rA   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   rE   r	   ©rK   r�   rC   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 s¬0    Y  t |¡dksÈJ ‚t 	|¡d	ksÚJ ‚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 daysr#   ©r%   ú$the 'out' parameter is not supportedrc   r   ©Úoutr   )
r   r4   rB   r   rA   rm   rn   ro   rs   rt   )rK   ÚtdÚerrmsgr&   r&   r+   Útest_numpy_minmax_timedelta648  s    ,,.z1TestIndexReductions.test_numpy_minmax_timedelta64c                 C   s¦  t dd„ tdƒD ƒƒ}| ¡ }| ¡ }ttdd�ƒ}||ks@J ‚| ¡  ¡ }|d |ks\J ‚| d¡}tt	 
dd	¡ƒ}||ks‚J ‚| ¡ }td
ƒ}||ksžJ ‚| ¡  ¡ }|d |ksºJ ‚| ¡ }tdƒ}||ksÖJ ‚| ¡  ¡ }|d |ksòJ ‚| ¡ }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�s¢J ‚d S )Nc                 S   s"   g | ]}t d ƒt|| d� ‘qS ©Z20130101rz   ©r   r   r(   r&   r&   r+   r,   Q  r-   z:TestIndexReductions.test_timedelta_ops.<locals>.<listcomp>r   é	   rz   r   gš™™™™™¹?i(
  Úmsz00:00:09z00:01:21z
2015-02-03z
2015-02-07rq   )Údaysz
2015-02-15é   )r   r9   ÚdiffÚmeanr   r   Úto_frameZquantiler   r4   Ztimedelta64Úmedianr�   ÚstdÚdropnarG   r   )rK   Úsr®   rL   rM   r&   r&   r+   Útest_timedelta_opsM  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 s¸0    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 'ú'rc   F)Znumeric_only)	r   r9   r·   Újoinrm   rn   Ú	TypeErrorrE   r¹   )rK   r@   r½   r®   rk   r&   r&   r+   Útest_invalid_td64_reductions‚  s    ÿ


ýÿ*z0TestIndexReductions.test_invalid_td64_reductionsc                 C   s    |}t g d¢|d�}|jsJ ‚t dtddtg|d�}|jr>J ‚||fD ]T}| ¡ td|d�ksbJ ‚| ¡ td|d�kszJ ‚| ¡ dksŠJ ‚| ¡ dksFJ ‚qFd S )N)ú
2011-01-01ú
2011-01-02ú
2011-01-03r!   rÆ   rÈ   rÇ   r   r.   )r   r¢   r	   rB   r   rA   rs   rt   )rK   Ztz_naive_fixturer"   r¤   r¥   r1   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   rE   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 s‚0    Y  tjt|d�� tj|dd� W d   ƒ n1 s¾0    Y  |j ¡ }t |¡}||ksèJ ‚|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 �s€0    Y  d S )N©rT   r.   rr   r«   rc   r   r¬   )
r   rG   rA   r4   rB   rm   rn   ro   rt   rs   )rK   r1   rM   rL   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 sª0    Y  d S )Nr   r   rr   r³   r«   rc   r¬   )r   r4   rA   rB   rm   rn   ro   )rK   r1   rL   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 sª0    Y  t |¡dksÆJ ‚t 	|¡d
ksØJ ‚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«   rc   r   r¬   r   )
r   r4   rB   r   rA   rm   rn   ro   rs   rt   )rK   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sžJ ‚| ¡ dks®J ‚| ¡ dks¾J ‚| ¡ d	ksÎJ ‚d S )
NrÆ   rÇ   rÈ   r#   rª   rT   r   rr   r.   )r   r	   r¢   rB   r
   rA   rs   rt   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   rE   r	   )rK   r�   rÔ   rC   rL   r&   r&   r+   Útest_minmax_period_empty_nat  s    z0TestIndexReductions.test_minmax_period_empty_natc                 C   sd  t ddd�}t |¡tddd�ks&J ‚t |¡tddd�ks@J ‚d}tjt|d�� tj|dd	� W d   ƒ n1 sv0    Y  tjt|d�� tj|dd	� W d   ƒ n1 s²0    Y  t |¡dksÎJ ‚t 	|¡d
ksàJ ‚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 �sV0    Y  d S )NrÎ   rÏ   rÐ   r#   rª   r«   rc   r   r¬   r   )
r   r4   rB   r
   rA   rm   rn   ro   rs   rt   )rK   Ú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 s‚0    Y  t jtdƒtdƒdd�}| ¡ d	ks´J ‚| ¡ d
ksÄJ ‚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\nrc   zwCategorical is not ordered for operation max\nyou can use .as_ordered\(\) to change the Categorical to an ordered one\nTÚcrw   )rW   ZCategoricalIndexÚlistrm   rn   rÄ   rB   rA   )rK   Úcirk   r&   r&   r+   Útest_min_max_categorical0  s    ÿ&ÿ&z,TestIndexReductions.test_min_max_categoricalN)r�   r�   r‘   rm   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 sÀ0    Y  W d   ƒ n1 sÞ0    Y  tj|dd�}t |¡ ¡ �s
J ‚d S )Nr.   r   r   é   )éd   râ   Zf4ú"use_inf_as_na option is deprecatedrc   úmode.use_inf_as_naTrT   r|   )r   r4   r:   r;   r<   ÚcopyÚinfru   Úisinfr�   rI   rf   rg   rh   rW   Úoption_contextÚassert_almost_equalr   ÚnansumÚall)rK   r½   Ús2r3   rk   rY   r&   r&   r+   Útest_sum_infI  s    Pz!TestSeriesReductions.test_sum_infr   )r7   ZFloat32rU   rV   rO   Ú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s¢J ‚t||ƒddd�}t|ƒsÀJ ‚t||ƒd	dd�}||ksÞJ ‚t||ƒd	dd�}t|ƒsüJ ‚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�sšJ ‚t||ƒddd�}t|ƒ�sºJ ‚ttjdg|d�}t||ƒƒ }|d
k�sæJ ‚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 	¡ �sŽJ ‚tdg|d�}t||ƒdd�}t|ƒ�sºJ ‚t||ƒd	dd�}t|ƒ�sÚJ ‚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î   rZ   r   )Ú	min_countrT   Tr\   )r]   rñ   Frð   )r   r   r.   )
rW   rè   r   rE   r   r4   ru   r   Úemptyrë   )rK   ÚmethodÚunitrî   r   r½   rL   r‚   r&   r&   r+   Ú
test_empty]  sn    zTestSeriesReductions.test_emptyró   r¸   rÀ   )ÚFloat64rU   rV   c                 C   sT   t g |d�}t||ƒƒ }|tju s&J ‚t tjg|d�}t||ƒƒ }|tju sPJ ‚d S ©NrZ   )r   rE   rW   rX   r4   ru   )rK   ró   r   ZeserrL   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   ƒ q”1 sp0    Y  nt ||ƒƒ }|tu s”J ‚d S )NrZ   úm8[ns]rÀ   rÁ   )zoperation 'var' not allowedz.cannot perform var with type timedelta64\[ns\]z does not support reduction 'var'rc   )	rE   r   Úfloatr   rÃ   rm   rn   rÄ   r	   )rK   ró   rL   Ztdserrk   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   rT   ©r0   )r   r4   ru   rê   rf   ré   )rK   ÚserrL   r&   r&   r+   Útest_nansum_bugletë  s    
z'TestSeriesReductions.test_nansum_bugletZint32r6   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s„J ‚W d   ƒ n1 s˜0    Y  d S )	Nrî   é@KL rZ   Fr\   r6   r   re   )	rW   rè   r4   r5   r   r�   ÚintrB   rA   ©rK   rî   r   Úvr½   rL   r&   r&   r+   Útest_sum_overflow_intð  s    z*TestSeriesReductions.test_sum_overflow_intZfloat32r7   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 ¡sˆJ ‚W d   ƒ n1 sœ0    Y  d S )Nrî   rÿ   rZ   Fr\   rï   re   )
rW   rè   r4   r5   r   r�   rB   Zallcloserú   rA   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â   rU   rZ   r   g  Ø…W4vC)r4   rH   r   r¸   )rK   r^   Z
n_elementsÚnarý   Zresult_numpyZresult_maskedr&   r&   r+   Útest_mean_masked_overflow  s    
z.TestSeriesReductions.test_mean_masked_overflowz	ddof, exp)rT   ç      @)r   rP   c                 C   sT   t g d¢dd�}t g d¢dd�}|j|d�}|j|d�}||ksDJ ‚||ksPJ ‚d S )N)rT   r.   rr   rq   r   rU   rZ   r6   )Úddof)r   rÀ   )rK   r  Úexprý   Zser_numpy_dtyperL   Zresult_numpy_dtyper&   r&   r+   Útest_var_masked_array  s    z*TestSeriesReductions.test_var_masked_array)rù   rù   rD   zM8[ns, UTC]r]   c                 C   s<   t g |d�j|d�tu sJ ‚t g |d�j|d�tu s8J ‚d S )NrZ   r\   )r   rB   r	   rA   )rK   r   r]   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 s‚0    Y  d S ©NrT   rS   rü   r«   rc   r¬   )r4   r5   r   rs   rm   rn   ro   )rK   rÔ   r½   rL   rM   rk   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 s‚0    Y  d S r  )r4   r5   r   rt   rm   rn   ro   )rK   rÔ   rý   rL   rM   rk   r&   r&   r+   Útest_numpy_argmax=  s    

z&TestSeriesReductions.test_numpy_argmaxc                 C   s˜  t g d¢ƒ |¡}tddtjg|d�}d}tjt|d�� |jdd�}W d   ƒ n1 sZ0    Y  |t	u spJ ‚d	}tjt|d�� |j
dd�}W d   ƒ n1 s¤0    Y  |t	u sºJ ‚| ¡ }d
}tjt|d�� |jdd�}W d   ƒ n1 sö0    Y  |jd|› d�k�sJ ‚| ¡  ¡ �s*J ‚d}tjt|d�� |j
dd�}W d   ƒ n1 �s`0    Y  |jd|› d�k�s‚J ‚| ¡  ¡ �s”J ‚d S )N)r	   z
2015-02-08r	   rð   rP   rü   ú0The behavior of Series.idxmin with all-NA valuesrc   Fr\   ú0The behavior of Series.idxmax with all-NA valuesz3The behavior of DataFrame.idxmin with all-NA valueszM8[ú]z3The behavior of DataFrame.idxmax with all-NA values)r   Zas_unitr   r4   ru   rf   rg   rh   Úidxminr	   Úidxmaxr¹   r   r   rë   )rK   rô   Údtirý   rk   rY   r‚   r&   r&   r+   Útest_idxmin_dt64indexN  s*    ***,z*TestSeriesReductions.test_idxmin_dt64indexc                 C   sX  t tdƒtjdd�}tj|dd…< || ¡  | ¡ ks:J ‚d}tjt	|d��$ t
|jdd	�ƒsbJ ‚W d   ƒ n1 sv0    Y  | ¡ }|| ¡  | ¡ ks J ‚|jj ¡  | ¡ ¡|j ¡ ksÄJ ‚|tj }tjt	|d��  t
| ¡ ƒsîJ ‚W d   ƒ n1 �s0    Y  t td
dd�ƒ}| ¡ }|dk�s4J ‚tj|d< | ¡ }|dk�sTJ ‚d S )Nr™   r=   r   r   é   zThe behavior of Series.idxminrc   Fr\   Ú20130102r¶   r   r   rT   )r   r9   r4   r7   ru   r  rB   rf   rg   rh   r   r¼   r0   rG   Útolistrs   r   ©rK   Zstring_seriesrk   ZnonaZallnar½   rL   r&   r&   r+   Útest_idxming  s$    2$
0
z TestSeriesReductions.test_idxminc                 C   sÔ  t tdƒtjdd�}tj|dd…< || ¡  | ¡ ks:J ‚d}tjt	|d��$ t
|jdd	�ƒsbJ ‚W d   ƒ n1 sv0    Y  | ¡ }|| ¡  | ¡ ks J ‚|jj ¡  | ¡ ¡|j ¡ ksÄJ ‚|tj }d}tjt	|d��  t
| ¡ ƒsòJ ‚W d   ƒ n1 �s0    Y  t td
dd�ƒ}| ¡ }|dk�s8J ‚tj|d< | ¡ }|dk�sXJ ‚t g d¢g d¢ƒ}| ¡ }|dk�s€J ‚| ¡ }|dk�s–J ‚t |j|jƒ}| ¡ }|dk�sºJ ‚| ¡ }|dk�sÐJ ‚d S )Nr™   r=   r   r   r  r  rc   Fr\   r  r¶   r   rq   rË   )çš™™™™™ñ?gÍÌÌÌÌÌ @çÍÌÌÌÌÌ@r  r  )r   r9   r4   r7   ru   r  rA   rf   rg   rh   r   r¼   r0   rG   r  rt   r   r  r  r&   r&   r+   Útest_idxmaxˆ  s:    2$
0
z TestSeriesReductions.test_idxmaxc                 C   s^   t tjdtjd�tddd�dd�}|dk}| ¡ r6J ‚| ¡ sBJ ‚t dd	gƒ}| ¡ sZJ ‚d S )
Nr   rZ   r   r   Útsr/   r   ÚabcT)r   r4   r5   r7   r   rë   Úany)rK   r  Z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   rT   r.   rË   )r4   rë   r   r   )rK   r_   r1   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 )NTFr\   )r   r4   ru   rë   r   )rK   Ú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   rT   rT   r.   r.   rü   T)Ú	bool_only)r   r   rë   )rK   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   rw   rÜ   ÚdÚerZ   r\   T)r   rO   rE   )rK   r'  r]   rý   rL   rM   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 )NFr\   r   )r   rE   )rK   rÔ   r'  rý   rL   rM   r&   r&   r+   Ú!test_any_all_object_dtype_missingç  s    z6TestSeriesReductions.test_any_all_object_dtype_missing)rV   rU   ZUInt64rö   zdata,expected_data)r   r   r   )rT   rT   rT   r   rT   c           	      C   sP   t ||d�}|| |dk }t||ƒ|d�}|tju r@|tju sL||ksLJ ‚d S )NrZ   rë   r\   )r   rE   rW   rX   )	rK   r'  r]   rÔ   r   Zexpected_datarý   rM   rL   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 )NTFrT   r.   rŠ   )r}   r%  )r   r   r   rf   r€   )rK   r‚   rL   rM   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 ‚| ¡  ¡ s‚J ‚W d   ƒ n1 s–0    Y  | 	d¡}t|ƒ}t|ƒ}tjt|d��d | ¡ sÖJ ‚| ¡ sâJ ‚| ¡ sîJ ‚| ¡ súJ ‚| ¡  ¡ �sJ ‚| ¡  ¡ �sJ ‚W d   ƒ n1 �s40    Y  ||d  }t|ƒ}t|ƒ}| ¡ �shJ ‚| ¡ �rvJ ‚| ¡ �s„J ‚| ¡ �r’J ‚| ¡  ¡ �s¤J ‚| ¡  ¡ �r¶J ‚d S )Nz
1995-01-02rr   r   z0'(any|all)' with datetime64 dtypes is deprecatedrc   rx   r   )
r   Ú_datar   r   rf   rg   rh   rë   r   r8   )rK   Zdtarý   r‚   rk   Ztdar&   r&   r+   Útest_any_all_datetimelike  s<    .
2z.TestSeriesReductions.test_any_all_datetimelikec                 C   s¸  t |tjƒr�|jtju r�tddg|d�}t t¡� | 	¡  W d   ƒ n1 sP0    Y  t t¡� | 
¡  W d   ƒ n1 s‚0    Y  d S tddg|d�}| 	¡ s¬J ‚| 
¡ r¸J ‚|j	dd�sÈJ ‚|j
dd�rØJ ‚ttjdg|d�}| 	¡ söJ ‚| 
¡ �sJ ‚|j	dd��sJ ‚|j
dd��s(J ‚ttjdg|d�}| 	¡ �rHJ ‚| 
¡ �rVJ ‚|j	dd��shJ ‚|j
dd��rzJ ‚tddg|d�}| 	¡ �s˜J ‚| 
¡ �s¦J ‚|j	dd��s¸J ‚|j
dd��sÊJ ‚tg |d�}| 	¡ �räJ ‚| 
¡ �sòJ ‚|j	dd��rJ ‚|j
dd��sJ ‚tdg|d�}| 	¡ �r2J ‚| 
¡ �r@J ‚|j	dd��rRJ ‚|j
dd��rdJ ‚ttjg|d�}| 	¡ �r‚J ‚| 
¡ �s�J ‚|j	dd��s¢J ‚|j
dd��s´J ‚d S )Nr   rw   rZ   Ú Fr\   )rF   rW   ZStringDtypeZna_valuerX   r   rm   rn   rÄ   r   rë   r4   ru   )rK   Úany_string_dtyperý   r&   r&   r+   Útest_any_all_string_dtypeD  sZ    
ÿ
þ&&z.TestSeriesReductions.test_any_all_string_dtypec                 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sòJ ‚| ¡ }tdƒ}||k�sJ ‚d S )Nz2012-1-1rr   r#   r$   Z20120101r   r.   rT   r   Z20120102r    rŸ   )r   r   r   r  r  r4   ru   Úabsrf   r€   rA   r   rB   )rK   r  r®   rL   r#  rì   rM   r&   r&   r+   Útest_timedelta64_analytics}  s0    
z/TestSeriesReductions.test_timedelta64_analyticsztest_input,error_typerZ   ©ÚfooÚbarÚbaz©rT   ©r.   r6  r7  r8  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 s°0    Y  tjt|d�� |jdd� W d  ƒ n1 sê0    Y  dS )	zU
        Cases where ``Series.argmax`` and related should raise an exception
        r7   rZ   z*attempt to get argmin of an empty sequencerc   NFr\   z*attempt to get argmax of an empty sequence)r   rm   rn   ro   r  r  )rK   Z
test_inputZ
error_typerk   r&   r&   r+   Ú"test_assert_idxminmax_empty_raises¦  s    &*&z7TestSeriesReductions.test_assert_idxminmax_empty_raisesc                 C   s¸  t g d¢ƒ}| ¡ dksJ ‚|jdd�dks0J ‚| ¡ dks@J ‚|jdd�dksTJ ‚t ddgƒ}| ¡ dkspJ ‚|jdd�dks„J ‚| ¡ dks”J ‚|jdd�dks¨J ‚|�s´t ddd	d	d tjd
gƒ}d}tjt|d�� | ¡  W d   ƒ n1 sö0    Y  tjt|d�� |jdd� W d   ƒ n1 �s20    Y  d}tjt|d�� | ¡  W d   ƒ n1 �sn0    Y  tjt|d�� |jdd� W d   ƒ n1 �sª0    Y  d S )Nr5  r   Fr\   rT   r9  r:  r6  r7  r8  z8'>' not supported between instances of 'float' and 'str'rc   z8'<' not supported between instances of 'float' and 'str')r   r  r  r4   ru   rm   rn   rÄ   )rK   Zusing_infer_stringrý   Zser2Zser3rk   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   rf   r€   )rK   r‚   rY   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))rT   rr   )r.   r.   )rr   rT   r.   r   Fr\   )r   r  r  ©rK   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   rT   z8.68z42.23z7.11z79.61)r1   ÚxÚy)r   r   r  r   rf   r€   r  )rK   r‚   rY   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   rT   rO   rZ   Fr\   )r   rt   rs   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s€J ‚d}tjt|d��& t |j	dd�¡sªJ ‚W d   ƒ n1 s¾0    Y  d	}tjt|d��Š t
 d
d¡�\ | ¡ dksúJ ‚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   rT   r  rc   Fr\   r.   r  rã   rä   T)r   r4   ræ   ru   r  rf   rg   rh   ri   r  rW   rè   )rK   r½   rk   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 Úuint64rZ   )r   r�   r4   rF  rf   ré   )rK   r½   rL   rM   r&   r&   r+   Útest_sum_uint64  s    
z$TestSeriesReductions.test_sum_uint64)/r�   r�   r‘   rí   rm   r’   r”   rõ   rø   rû   rþ   r  r  r  r
  r  r  r  r  r  r  r!  r"  r$  r&  r*  r4   ru   r+  rW   rX   r,  r-  r/  r2  r4  r   ro   rÄ   r;  r<  r>  r@  rC  rD  rE  rG  r&   r&   r&   r+   rà   D  s˜   ÿ`

	!/	 ÿ	"úü
/9)úþ
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š   ©rB   r	   rA   )rK   rI  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   Fr\   rJ  )rK   rL  r&   r&   r+   Útest_minmax_nat_dataframe9  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s†J ‚| ¡ |d ksšJ ‚d S )Nú1/1/2000z
12/31/2000r.   r   re   )r   Ztaker4   r:   r;   ZpermutationÚlenrB   rA   rF   r   )rK   ÚrngZrng2Zthe_minZthe_maxr&   r&   r+   Útest_min_maxH  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	ƒs”J ‚||ks J ‚d S )
NrN  r   Z4hr$   )
r‹   r‹   r‹   rŒ   rŒ   rŒ   ÚCrR  rR  rR  r.   )ÚTSÚVÚLre   r   )r   r   r4   r:   r;   r<   rO  rS  rA   r   ZiatrF   rB   )rK   rP  Zlvlsr‚   rL   r	  r&   r&   r+   Útest_min_max_seriesV  s     ýÿ

z2TestDatetime64SeriesReductions.test_min_max_seriesN)r�   r�   r‘   rm   r’   r”   r   r	   r   rK  r   rM  rQ  rV  r&   r&   r&   r+   rH  %  s$   
ýþ

ýþ
rH  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ÚfunctionrB   rA   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   rw   rÜ   r(  F)rÛ   z)Categorical is not ordered for operation rc   )r   r   rm   rn   rÄ   rE   )rK   rX  Úcatrk   r&   r&   r+   Útest_min_max_unordered_raisesq  s    
z=TestCategoricalSeriesReductions.test_min_max_unordered_raiseszvalues, categoriesr  ZcbarË   ©rr   r.   rT   rT   r.   rr   c                 C   sJ   t t||dd�ƒ}t||ƒdd�}|dkr2|d n|d }||ksFJ ‚d S )NTrÙ   r\   rB   r   r.   )r   r   rE   )rK   rG   rÚ   rX  rY  rL   rM   r&   r&   r+   Útest_min_max_orderedy  s    z4TestCategoricalSeriesReductions.test_min_max_orderedr]   TFc                 C   s<   t ttjgddgdd�ƒ}t||ƒ|d�}|tju s8J ‚d S )NrT   r.   TrÙ   r\   ©r   r   r4   ru   rE   )rK   rX  r]   rY  rL   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u rV|dkrDdnd}||ksdJ ‚n|tju sdJ ‚d S )Nr   rw   TrÙ   r\   rB   r]  )rK   rX  r]   rY  rL   rM   r&   r&   r+   Útest_min_max_skipna“  s    ÿz3TestCategoricalSeriesReductions.test_min_max_skipnaN)r�   r�   r‘   rm   r’   r”   rZ  rÝ   r4   ru   r\  r^  r_  r&   r&   r&   r+   rW  l  s&   
ûþ
rW  c                   @   sj  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fddgej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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d0gd	d0gfdd0gd	d0gfg¡d1d2„ ƒZd3d4„ Zd5d6„ Zej d7g d8¢ed	gejd�ejfg d8¢ed	gejd�ejfg d9¢ed:gejd�ejfg¡d;d<„ ƒZej d7g d=¢eg d>¢ejd�ejfg d?¢ed@d:gejd�ejfg¡dAdB„ ƒZdCS )DÚTestSeriesModezdropna, expectedTrZ   Fc                 C   s(   t g tjd�}| |¡}t ||¡ d S r÷   )r   r4   r7   Úmoderf   r€   ©rK   r¼   rM   r½   rL   r&   r&   r+   Útest_mode_empty§  s    
zTestSeriesMode.test_mode_emptyzdropna, data, expected)rT   rT   rT   r.   rT   )rT   rT   rT   r.   rr   rr   rr   rr   ÚdtZ
AllIntegerÚFloatc                 C   s2   t ||d�}| |¡}t ||d�}t ||¡ d S r÷   ©r   ra  rf   r€   )rK   r¼   rÔ   rM   rd  r½   rL   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 )NrT   r.   )r   r4   ru   ra  rf   r€   rb  r&   r&   r+   Útest_mode_numerical_nanÂ  s    
z&TestSeriesMode.test_mode_numerical_nanzdropna, expected1, expected2rw   r7  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 S )	Nr   r.   rw   rr   rÜ   rZ   r6  r7  )r   ra  rf   r€   r4   ru   rO   )rK   r¼   Ú	expected1Ú	expected2rÔ   r½   rL   r&   r&   r+   Útest_mode_objectÉ  s    	

zTestSeriesMode.test_mode_objectc                 C   sŠ   dgd dgd  }t ||d�}| |¡}t ||d�}t ||¡ dddtjtjtjg}t ||d�}| |¡}t ||d�}t ||¡ d S )Nr   r.   rw   rr   rZ   r6  r7  )r   ra  rf   r€   r4   ru   )rK   r¼   ri  rj  r1  rÔ   r½   rL   r&   r&   r+   Útest_mode_stringà  s    	

zTestSeriesMode.test_mode_stringr6  c                 C   sn   t g d¢ƒ}| |¡}t |td�}t ||¡ t dddtjtjtjgƒ}| |¡}t |td�}t ||¡ d S )N)rT   r6  r6  rZ   rT   r6  )r   ra  rO   rf   r€   r4   ru   )rK   r¼   ri  rj  r½   rL   rM   r&   r&   r+   Útest_mode_mixeddtype÷  s    

z#TestSeriesMode.test_mode_mixeddtype)ú
1900-05-03rÈ   ú
2013-01-02rÈ   ro  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È   ro  rn  ru   ru   rD   rZ   )rÈ   ro  rn  rÈ   ro  ru   ru   rf  ©rK   r¼   ri  rj  r½   rL   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Ÿ   rr  rs  ru   ru   r‰   rZ   )ru  ru  z-1 dayz-1 day 2 minrt  rt  ru   ru   rf  rp  r&   r&   r+   Útest_mode_timedelta)  s    
ÿ

õ
z"TestSeriesMode.test_mode_timedeltaz'dropna, expected1, expected2, expected3r.   )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 )
NrT   r.   ÚcategoryrZ   r   rr   r[  TrÙ   )r   r   r4   ru   ra  rf   r€   )rK   r¼   ri  rj  Z	expected3r½   rL   r&   r&   r+   Útest_mode_categoryK  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)rT   ry  ry  rZ   rT   ry  )r   r4   rF  ra  rf   r€   rp  r&   r&   r+   Útest_mode_intoverflowp  s    

z$TestSeriesMode.test_mode_intoverflowc                 C   sD   t dddtjtjgƒ}t dtjgtd�}|jdd�}t ||¡ d S )NrT   r6  rZ   F)r¼   )r   r4   ru   rO   ra  rf   r€   )rK   r½   rM   rL   r&   r&   r+   Útest_mode_sort_with_na€  s    z%TestSeriesMode.test_mode_sort_with_nac                 C   s>   t dddtjgdd�}| ¡ }t ddidd�}t ||¡ d S )NTFrV   rZ   r   )r   rW   rX   ra  rf   r€   )rK   rý   rL   rM   r&   r&   r+   Útest_mode_boolean_with_na†  s    z(TestSeriesMode.test_mode_boolean_with_nazarray,expected,dtype)r   ù              ð?rT   rT   ù      ð?      ð?ù      ð?       @)r~  ù               @r~  r~  c                 C   s    t ||d� ¡ }t ||¡ d S r÷   rf  ©rK   rH   rM   r   rL   r&   r&   r+   Útest_single_mode_value_complex�  s    z-TestSeriesMode.test_single_mode_value_complex)r   r}  rT   r~  r  )y                r}  y      ð?        r~  r  )r~  r€  r~  r€  rr   r€  c                 C   s    t ||d� ¡ }t ||¡ d S r÷   rf  r�  r&   r&   r+   Útest_multimode_complex¥  s    z%TestSeriesMode.test_multimode_complexN)r�   r�   r‘   rm   r’   r”   r   r4   r7   rc  rÝ   Ú	typecodesrg  ru   rh  rk  rl  rm  rq  rv  r   rx  rz  r{  r|  Z
complex128Z	complex64r‚  rƒ  r&   r&   r&   r+   r`  ¢  sÖ   "þ
üþ	ÿ 
þþ
þþ
þ
ýúþ
þþ
üüùþ
þ
ýýýõþ
üýùþr`  )(r   r   Údecimalr   Únumpyr4   rm   ZpandasrW   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   Zpandas._testingZ_testingrf   Zpandas.corer   Zpandas.core.arrays.string_arrowr   r>   r?   r•   rà   rH  rW  r`  r&   r&   r&   r+   Ú<module>   s.   L @  P     fG6