o
    Û­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&   úd/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/reductions/test_reductions.pyÚ
<listcomp>-   s    zget_objs.<locals>.<listcomp>é   c                    s   g | ]	}t ˆ |d d�‘qS )r   ©Úindexr   )r   )r)   Úidx©Úarrr&   r+   r,   1   s    )r   ÚnpÚarangeÚint64Úfloat64r   r   Útz_localizer   r   ÚrangeÚrandomÚdefault_rngÚstandard_normal)ÚindexesÚseriesÚobjsr&   r1   r+   Úget_objs#   s   ÿ÷r?   c                   @   s  e Zd Zej d¡ej dddg¡ej deƒ ¡dd„ ƒƒƒZej dddg¡ej dd	d
de	dddƒfddg¡dd„ ƒƒZ
ej dddg¡dd„ ƒZej dddg¡ej dddg¡dd„ ƒƒZdd„ Zej dddgddgg¡dd „ ƒZej d!d"d#g¡d$d%„ ƒZd&d'„ Zd(S ))ÚTestReductionsz8ignore:Period with BDay freq is deprecated:FutureWarningÚopnameÚmaxÚminÚobjc                 C   s¢   t ||ƒƒ }t|tƒs$t|jtƒrt t |j¡|ƒƒ }nt |j|ƒƒ }ntt |j|ƒƒ |j	d�}t |dd ƒd urI| 
d¡ 
d¡}|j|ksGJ ‚d S ||ksOJ ‚d S )N)Úordinalr%   r"   úM8[ns]r5   )ÚgetattrÚ
isinstancer   Úvaluesr   r3   Úarrayr
   Úasi8r%   ÚastypeÚ_value)ÚselfrA   rD   ÚresultÚexpectedr&   r&   r+   Útest_ops8   s   
zTestReductions.test_opsz
dtype, val)Úobjectç       @)r6   rS   údatetime64[ns]éÛ  é   é   )ÚInt64r-   )ÚbooleanTc                    s  |}‡ fdd„}|d gˆ d�}|t ||ƒƒ ƒsJ ‚|t ||ƒdd�ƒs%J ‚|g ˆ d�}|t ||ƒƒ ƒs5J ‚|t ||ƒdd�ƒsAJ ‚ˆ dkrGd S |d |gˆ d�}t ||ƒƒ |ksYJ ‚|t ||ƒdd�ƒseJ ‚|d |d gˆ d�}t ||ƒƒ |ksxJ ‚|t ||ƒdd�ƒs„J ‚d S )Nc                    s*   ˆ dkr| t u S ˆ dv r| tju S t| ƒS )NrT   )rX   rY   )r	   ÚpdÚNAr   )Úres©r   r&   r+   Úcheck_missing^   s
   
z4TestReductions.test_nanminmax.<locals>.check_missingr]   F©ÚskipnarR   )rG   )rN   rA   r   ÚvalÚindex_or_seriesÚklassr^   rD   r&   r]   r+   Útest_nanminmaxO   s    zTestReductions.test_nanminmaxc                 C   sH  |}|t u r
d| nd| }|ttdddƒgƒ}t||ƒƒ dks"J ‚d}|tu r*d}tjt|d�� t||ƒd	d
�}W d   ƒ n1 sDw   Y  |tu rUt 	|¡sTJ ‚n|dks[J ‚|ttdddƒtgƒ}t||ƒƒ dkspJ ‚tjt|d�� t||ƒd	d
�}W d   ƒ n1 sŠw   Y  |tu rœt 	|¡sšJ ‚d S |dks¢J ‚d S )NÚargr0   rU   rV   rW   zNThe behavior of (DatetimeIndex|Series).argmax/argmin with skipna=False and NAsz2The behavior of Series.(idxmax|idxmin) with all-NA©ÚmatchFr_   éÿÿÿÿ)
r   r	   r   rG   r   ÚtmÚassert_produces_warningÚFutureWarningr3   Úisnan)rN   rA   rb   rc   Úarg_oprD   ÚmsgrO   r&   r&   r+   Útest_nanargminmaxz   s,   ÿÿÿz TestReductions.test_nanargminmaxr   rF   zdatetime64[ns, UTC]c                 C   sÒ   |}|t u r
d| nd| }|g |d�}t||ƒƒ tu sJ ‚t||ƒdd�tu s*J ‚tjtdd�� t||ƒƒ  W d   ƒ n1 sBw   Y  tjtdd�� t||ƒdd� W d   ƒ d S 1 sbw   Y  d S )Nre   r0   r]   Fr_   zempty sequencerf   )r   rG   r	   ÚpytestÚraisesÚ
ValueError)rN   rA   rb   r   rc   rm   rD   r&   r&   r+   Útest_nanops_empty_objectš   s   ÿ"ÿz'TestReductions.test_nanops_empty_objectc                 C   sî  t tjddd�ƒ}| ¡ dksJ ‚| ¡ dksJ ‚t tjdtjdgƒ}| ¡ dks+J ‚| ¡ dks3J ‚d	}tjt|d
�� |jdd�dksGJ ‚W d   ƒ n1 sQw   Y  tjt|d
�� |jdd�dkshJ ‚W d   ƒ n1 srw   Y  t tjgƒ}tjt|d
�� | ¡ dks�J ‚W d   ƒ n1 s—w   Y  tjt|d
�� | ¡ dks¬J ‚W d   ƒ n1 s¶w   Y  tjt|d
�� |jdd�dksÍJ ‚W d   ƒ n1 s×w   Y  tjt|d
�� |jdd�dksîJ ‚W d   ƒ n1 søw   Y  d}t t	t
dddƒt
dddƒt	gƒ}| ¡ dk�sJ ‚| ¡ dk�s!J ‚tjt|d
�� |jdd�dk�s4J ‚W d   ƒ n	1 �s?w   Y  tjt|d
�� |jdd�dk�sWJ ‚W d   ƒ n	1 �sbw   Y  t t	gƒ}tjt|d
�� | ¡ dk�s}J ‚W d   ƒ n	1 �sˆw   Y  tjt|d
�� | ¡ dk�sžJ ‚W d   ƒ n	1 �s©w   Y  tjt|d
�� |jdd�dk�sÁJ ‚W d   ƒ n	1 �sÌw   Y  tjt|d
�� |jdd�dk�säJ ‚W d   ƒ d S 1 �sðw   Y  d S )Nr   r5   r]   r   é   rW   r-   é   z=The behavior of Index.argmax/argmin with skipna=False and NAsrf   Fr_   rh   zEThe behavior of DatetimeIndex.argmax/argmin with skipna=False and NAsrU   rV   )r   r3   r4   ÚargminÚargmaxÚnanri   rj   rk   r	   r   )rN   rD   rn   r&   r&   r+   Útest_argminmaxª   sb   ÿÿÿÿÿÿ ÿÿ
ÿÿÿ$ÿzTestReductions.test_argminmaxzop, expected_colr   Úbc                 C   s\   t tdddd�dgd�}|j tdd�¡|d	< t||ƒd
d�}||  d ¡}t ||¡ d S )Nz2016-01-01 00:00:00ru   ÚUTC)r    r"   r   )Úcolumnsi  ©Úsecondsrz   rW   ©Úaxis)	r   r   r   Úsubtractr   rG   Úrenameri   Úassert_series_equal)rN   ÚopÚexpected_colÚdfrO   rP   r&   r&   r+   Útest_same_tz_min_max_axis_1Õ   s   ÿz*TestReductions.test_same_tz_min_max_axis_1ÚfuncÚmaximumÚminimumc                 C   s>   |}t  dg¡ |¡}t|ƒ}tt|ƒ||ƒ}t ||¡ d S )NÚ2019)rZ   Úto_datetimer7   r   rG   r3   ri   rƒ   )rN   Útz_aware_fixturerˆ   r"   re   rP   rO   r&   r&   r+   Ú(test_numpy_reduction_with_tz_aware_dtypeà   s
   z7TestReductions.test_numpy_reduction_with_tz_aware_dtypec                 C   sV   t tddtgdd�tddtjgdd�dœƒ}ttdƒddœƒ}| ¡ }t ||¡ d S )NrW   r-   útimedelta64[ns]r]   rX   ©ÚAÚBru   )	r   r   r	   r3   rx   r   Úsumri   rƒ   )rN   r†   rP   rO   r&   r&   r+   Útest_nan_int_timedelta_sumé   s   þÿz)TestReductions.test_nan_int_timedelta_sumN)Ú__name__Ú
__module__Ú__qualname__rp   ÚmarkÚfilterwarningsÚparametrizer?   rQ   r   rd   ro   rs   ry   r‡   rŽ   r”   r&   r&   r&   r+   r@   7   s:    ÿûþ
 
+


r@   c                	   @   sú   e Zd Zej dg d¢¡dd„ ƒZdd„ Zej ddd	g¡d
d„ ƒZdd„ Z	dd„ Z
ej dg d¢¡dd„ ƒZdd„ Zej ddd	g¡dd„ ƒZdd„ Zdd„ Zdd„ Zdd„ Zej ddd	g¡ej d g egeeegg¡d!d"„ ƒƒZd#d$„ Zd%d&„ Zd'S )(ÚTestIndexReductionszstart,stop,step))r   i�  ru   )iô  r   iúÿÿÿ)éÀ½ðÿé@B rt   )r�   rœ   éüÿÿÿ)r   r   é   c                 C   sª   t |||ƒ}|j ¡ }| ¡ }||ksJ ‚|jdd�}||ks!J ‚|j ¡ }| ¡ }||ks0J ‚|jdd�}||ks<J ‚t ||| ƒ}t| ¡ ƒsKJ ‚t| ¡ ƒsSJ ‚d S ©NFr_   )r   Ú_valuesrB   rC   r   )rN   ÚstartÚstopÚstepr0   rP   rO   Úresult2r&   r&   r+   Útest_max_min_rangeû   s   

z&TestIndexReductions.test_max_min_rangec                 C   sŒ   t g d¢ƒ}|jsJ ‚t dtjddgƒ}|jrJ ‚||fD ]&}| ¡ tdƒks)J ‚| ¡ tdƒks3J ‚| ¡ dks;J ‚| ¡ dksCJ ‚qd S )N)ú1 daysú2 daysú3 daysr§   r©   r	   r   r-   )	r   Úis_monotonic_increasingr3   rx   rC   r   rB   rv   rw   ©rN   Úidx1Úidx2r0   r&   r&   r+   Útest_minmax_timedelta64  s   

üz+TestIndexReductions.test_minmax_timedelta64r„   rC   rB   c                 C   s`   t g ƒ}t||ƒƒ tu sJ ‚t tgƒ}t||ƒƒ tu sJ ‚t tttgƒ}t||ƒƒ tu s.J ‚d S ©N)r   rG   r	   ©rN   r„   rD   r&   r&   r+   Ú!test_minmax_timedelta_empty_or_na,  ó   
z5TestIndexReductions.test_minmax_timedelta_empty_or_nac                 C   s\  t dddd�}t |¡tdƒksJ ‚t |¡tdƒksJ ‚d}tjt|d�� tj|dd� W d   ƒ n1 s8w   Y  tjt|d�� tj|dd� W d   ƒ n1 sVw   Y  t |¡dksdJ ‚t 	|¡d	ksmJ ‚d}tjt|d�� tj|dd� W d   ƒ n1 sˆw   Y  tjt|d�� tj	|dd� W d   ƒ d S 1 s§w   Y  d S )
Nz
16815 daysz
16820 daysr#   ©r%   ú$the 'out' parameter is not supportedrf   r   ©Úoutr   )
r   r3   rC   r   rB   rp   rq   rr   rv   rw   )rN   ÚtdÚerrmsgr&   r&   r+   Útest_numpy_minmax_timedelta648  s&   ÿÿÿ"ÿz1TestIndexReductions.test_numpy_minmax_timedelta64c                 C   sž  t dd„ tdƒD ƒƒ}| ¡ }| ¡ }ttdd�ƒ}||ks J ‚| ¡  ¡ }|d |ks.J ‚| d¡}tt	 
dd	¡ƒ}||ksAJ ‚| ¡ }td
ƒ}||ksOJ ‚| ¡  ¡ }|d |ks]J ‚| ¡ }tdƒ}||kskJ ‚| ¡  ¡ }|d |ksyJ ‚| ¡ }tt | ¡ jƒ ¡ ƒ}||ksŽJ ‚| ¡  ¡ }|d |ksœJ ‚t tdƒtdƒgƒ}| ¡  ¡ tdd�ks³J ‚t tdƒtdƒtdƒgƒ}| ¡  ¡ tdd�ksÍJ ‚d S )Nc                 S   ó"   g | ]}t d ƒt|| d� ‘qS ©Ú20130101r}   ©r   r   r(   r&   r&   r+   r,   Q  ó   " z:TestIndexReductions.test_timedelta_ops.<locals>.<listcomp>r   é	   r}   r   gš™™™™™¹?i(
  Úmsz00:00:09z00:01:21z
2015-02-03z
2015-02-07rt   )Údaysz
2015-02-15é   )r   r8   ÚdiffÚmeanr   r   Úto_frameÚquantiler   r3   Útimedelta64Úmedianr“   ÚstdÚdropnarI   r   )rN   Úsr·   rO   rP   r&   r&   r+   Útest_timedelta_opsM  sB   ÿ
ÿz&TestIndexReductions.test_timedelta_opsrA   )ÚskewÚkurtÚsemÚprodÚvarc                 C   sÈ   t dd„ tdƒD ƒƒ}| ¡ }d d|› d�d|› d�d	|› d
�g¡}tjt|d�� t||ƒƒ  W d   ƒ n1 s;w   Y  tjt|d�� t| ¡ |ƒdd� W d   ƒ d S 1 s]w   Y  d S )Nc                 S   rº   r»   r½   r(   r&   r&   r+   r,   …  r¾   zDTestIndexReductions.test_invalid_td64_reductions.<locals>.<listcomp>r   ú|zreduction operation 'z' not allowed for this dtypezcannot perform z with type timedelta64\[ns\]zdoes not support reduction 'ú'rf   F)Únumeric_only)	r   r8   rÃ   Újoinrp   rq   Ú	TypeErrorrG   rÅ   )rN   rA   rË   r·   rn   r&   r&   r+   Útest_invalid_td64_reductions‚  s    ÿ


ýÿÿ"ÿz0TestIndexReductions.test_invalid_td64_reductionsc                 C   s    |}t g d¢|d�}|jsJ ‚t dtddtg|d�}|jrJ ‚||fD ]*}| ¡ td|d�ks1J ‚| ¡ td|d�ks=J ‚| ¡ dksEJ ‚| ¡ dksMJ ‚q#d S )N)ú
2011-01-01ú
2011-01-02ú
2011-01-03r!   rØ   rÚ   rÙ   r   r-   )r   rª   r	   rC   r   rB   rv   rw   )rN   Útz_naive_fixturer"   r¬   r­   r0   r&   r&   r+   Útest_minmax_tz—  s   
ÿ
üz"TestIndexReductions.test_minmax_tzc                 C   s`   t g ƒ}tt||ƒƒ ƒsJ ‚t tgƒ}tt||ƒƒ ƒsJ ‚t tttgƒ}tt||ƒƒ ƒs.J ‚d S r¯   )r   r   rG   r	   r°   r&   r&   r+   Útest_minmax_nat_datetime64©  r²   z.TestIndexReductions.test_minmax_nat_datetime64c                 C   sŠ  t g d¢ƒ}|j ¡ }t |¡}||ksJ ‚|j ¡ }t |¡}||ks&J ‚d}tjt|d�� tj|dd� W d   ƒ n1 sAw   Y  tjt|d�� tj|dd� W d   ƒ n1 s_w   Y  |j ¡ }t |¡}||kstJ ‚|j 	¡ }t 	|¡}||k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   ƒ d S 1 s¾w   Y  d S )N©rW   r-   ru   r´   rf   r   rµ   )
r   rI   rB   r3   rC   rp   rq   rr   rw   rv   )rN   r0   rP   rO   r¸   r&   r&   r+   Útest_numpy_minmax_integerµ  s6   



ÿÿ



ÿ"ÿz-TestIndexReductions.test_numpy_minmax_integerc                 C   sº   t dddƒ}t |¡}|dksJ ‚t |¡}|dksJ ‚d}tjt|d�� tj|dd� W d   ƒ n1 s7w   Y  tjt|d�� tj|dd� W d   ƒ d S 1 sVw   Y  d S )Nr   r   ru   r¿   r´   rf   rµ   )r   r3   rB   rC   rp   rq   rr   )rN   r0   rO   r¸   r&   r&   r+   Útest_numpy_minmax_rangeÕ  s   

ÿ"ÿz+TestIndexReductions.test_numpy_minmax_rangec                 C   sZ  t ddd�}t |¡tdƒksJ ‚t |¡tdƒksJ ‚d}tjt|d�� tj|dd	� W d   ƒ n1 s7w   Y  tjt|d�� tj|dd	� W d   ƒ n1 sUw   Y  t |¡dkscJ ‚t 	|¡d
kslJ ‚d}tjt|d�� tj|dd	� W d   ƒ n1 s‡w   Y  tjt|d�� tj	|dd	� W d   ƒ d S 1 s¦w   Y  d S )Nú
2016-01-15ú
2016-01-20©r¢   Úendz2016-01-15 00:00:00z2016-01-20 00:00:00r´   rf   r   rµ   r   )
r   r3   rC   r   rB   rp   rq   rr   rv   rw   )rN   Údrr¸   r&   r&   r+   Útest_numpy_minmax_datetime64è  s&   ÿÿÿ"ÿz0TestIndexReductions.test_numpy_minmax_datetime64c                 C   sÒ   t tdddgdd�}|jrJ ‚|dd … jsJ ‚t dtddtgdd�}|jr(J ‚||fD ]}| ¡ tddd�ks:J ‚| ¡ tddd�ksFJ ‚q,| ¡ dksOJ ‚| ¡ dksWJ ‚| ¡ dks_J ‚| ¡ d	ksgJ ‚d S )
NrØ   rÙ   rÚ   r#   r³   rW   r   ru   r-   )r   r	   rª   rC   r
   rB   rv   rw   r«   r&   r&   r+   Útest_minmax_periodÿ  s   
ÿ
z&TestIndexReductions.test_minmax_periodÚdatac                 C   s(   t |dd�}t||ƒƒ }|tu sJ ‚d S )NÚMr³   )r   rG   r	   )rN   r„   rè   rD   rO   r&   r&   r+   Útest_minmax_period_empty_nat  s   z0TestIndexReductions.test_minmax_period_empty_natc                 C   sb  t ddd�}t |¡tddd�ksJ ‚t |¡tddd�ks J ‚d}tjt|d�� tj|dd	� W d   ƒ n1 s;w   Y  tjt|d�� tj|dd	� W d   ƒ n1 sYw   Y  t |¡dksgJ ‚t 	|¡d
kspJ ‚d}tjt|d�� tj|dd	� W d   ƒ n1 s‹w   Y  tjt|d�� tj	|dd	� W d   ƒ d S 1 sªw   Y  d S )Nrá   râ   rã   r#   r³   r´   rf   r   rµ   r   )
r   r3   rC   r
   rB   rp   rq   rr   rv   rw   )rN   Úprr¸   r&   r&   r+   Útest_numpy_minmax_period  s&   ÿÿÿ"ÿz,TestIndexReductions.test_numpy_minmax_periodc                 C   sÈ   t jtdƒtdƒdd�}d}tjt|d�� | ¡  W d   ƒ n1 s$w   Y  d}tjt|d�� | ¡  W d   ƒ n1 sAw   Y  t jtdƒtdƒdd�}| ¡ d	ksZJ ‚| ¡ d
ksbJ ‚d S )NÚaabbcaÚcabF©Ú
categoriesÚorderedzwCategorical is not ordered for operation min\nyou can use .as_ordered\(\) to change the Categorical to an ordered one\nrf   zwCategorical is not ordered for operation max\nyou can use .as_ordered\(\) to change the Categorical to an ordered one\nTÚcrz   )rZ   ÚCategoricalIndexÚlistrp   rq   rÖ   rC   rB   )rN   Úcirn   r&   r&   r+   Útest_min_max_categorical0  s   ÿ
ÿÿ
ÿz,TestIndexReductions.test_min_max_categoricalN)r•   r–   r—   rp   r˜   rš   r¦   r®   r±   r¹   rÌ   r×   rÜ   rÝ   rß   rà   ræ   rç   r	   rê   rì   rö   r&   r&   r&   r+   r›   ö   s2    þ


5

 r›   c                   @   s˜  e Zd Zdd„ Zej dg d¢¡ej dddg¡ej dd	d
g¡dd„ ƒƒƒZej dddg¡ej dg d¢¡dd„ ƒƒZej dg d¢¡dd„ ƒZ	dd„ Z
ej dddg¡ej dddg¡dd„ ƒƒZej dddg¡ej dddg¡dd„ ƒƒZd d!„ Zej d"d#d$g¡d%d&„ ƒZej dd'¡ej d(ddg¡d)d*„ ƒƒZd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zd9d:„ Zd;d<„ Zej d=d>d?g¡ej d(ddg¡d@dA„ ƒƒZej d=d>d?g¡ej dBddCgdCdgdejgejdgg¡dDdE„ ƒƒZej dg dF¢¡ej d=d>d?g¡ej d(ddg¡ej dGg dH¢ddgddggfg dI¢ddgddggfejejejgejejgddggfdJejdJgejdgddggfdKejdKgdejgddggfdKejdJgddgddggfg¡dLdM„ ƒƒƒƒZdNdO„ Z dPdQ„ Z!dRdS„ Z"dTdU„ Z#ej dVe$g ddW�e%fe$g dX¢ƒe&fe$dYdZgƒe&fe$d[d[d\d\dCejd]gƒe&fg¡d^d_„ ƒZ'd`da„ Z(dbdc„ Z)ddde„ Z*dfdg„ Z+dhdi„ Z,djdk„ Z-dldm„ Z.dCS )nÚTestSeriesReductionsc              	   C   s  t tj d¡ d¡ƒ}| ¡ }tj|dd…< tj|dd…< t | 	¡ ¡s&J ‚tj d¡ d¡ 
d¡}tj|d d …df< d}tjt|d��( t d	d
¡� t | 	¡ | 	¡ ¡ W d   ƒ n1 s`w   Y  W d   ƒ n1 sow   Y  tj|dd�}t |¡ ¡ s„J ‚d S )Nr-   r   r   é   )éd   rù   Úf4ú"use_inf_as_na option is deprecatedrf   úmode.use_inf_as_naTrW   r   )r   r3   r9   r:   r;   ÚcopyÚinfrx   Úisinfr“   rL   ri   rj   rk   rZ   Úoption_contextÚassert_almost_equalr   ÚnansumÚall)rN   rË   Ús2r2   rn   r\   r&   r&   r+   Útest_sum_infI  s    ÿ€ÿz!TestSeriesReductions.test_sum_infr   )r6   ÚFloat32rX   rY   rR   Úuse_bottleneckTFzmethod, unit)r“   ç        )rÐ   ç      ð?c                 C   sP  t  d|¡��– tg |d�}t||ƒƒ }||ksJ ‚t||ƒdd�}||ks(J ‚t||ƒdd�}t|ƒs6J ‚t||ƒdd�}||k t||ƒddd�}||ksQJ ‚t||ƒddd�}t|ƒs`J ‚t||ƒd	dd�}||ksoJ ‚t||ƒd	dd�}t|ƒs~J ‚ttjg|d�}t||ƒƒ }||ks’J ‚t||ƒdd�}||ks J ‚t||ƒdd�}t|ƒs®J ‚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|ƒ�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|ƒ�s•J ‚W d   ƒ d S 1 �s¡w   Y  d S )Nr  r]   r   )Ú	min_countrW   Tr_   )r`   r
  Fr	  )r   r   r-   )
rZ   r   r   rG   r   r3   rx   r   Úemptyr  )rN   ÚmethodÚunitr  r   rË   rO   r†   r&   r&   r+   Ú
test_empty]  sp   $£zTestSeriesReductions.test_emptyr  rÄ   rÑ   )ÚFloat64rX   rY   c                 C   sT   t g |d�}t||ƒƒ }|tju sJ ‚t tjg|d�}t||ƒƒ }|tju s(J ‚d S ©Nr]   )r   rG   rZ   r[   r3   rx   )rN   r  r   ÚeserrO   Únserr&   r&   r+   Ú&test_ops_consistency_on_empty_nullableÂ  s   z;TestSeriesReductions.test_ops_consistency_on_empty_nullable)rÄ   rÈ   rÉ   rÑ   c                 C   sœ   t ttd�|ƒƒ }t|ƒsJ ‚tg dd�}|dkr@d g d¢¡}tjt|d�� t ||ƒƒ  W d   ƒ d S 1 s9w   Y  d S t ||ƒƒ }|tu sLJ ‚d S )Nr]   úm8[ns]rÑ   rÒ   )zoperation 'var' not allowedz.cannot perform var with type timedelta64\[ns\]z does not support reduction 'var'rf   )	rG   r   Úfloatr   rÕ   rp   rq   rÖ   r	   )rN   r  rO   Útdserrn   r&   r&   r+   Útest_ops_consistency_on_emptyÒ  s   ÿ"ÿz2TestSeriesReductions.test_ops_consistency_on_emptyc                 C   s0   t dtjgddgd�}t |¡}t |d¡ d S )Nr	  r   rW   ©r/   )r   r3   rx   r  ri   r  )rN   ÚserrO   r&   r&   r+   Útest_nansum_bugletë  s   
z'TestSeriesReductions.test_nansum_bugletÚint32r5   c                 C   s¨   t  d|¡�D tjd|d�}t|ƒ}|jdd�}t|ƒ|jdd�ks$J ‚|jdd�}t|ƒdks2J ‚|jdd�}t|ƒ|d ksBJ ‚W d   ƒ d S 1 sMw   Y  d S )	Nr  é@KL r]   Fr_   r5   r   rh   )	rZ   r   r3   r4   r   r“   ÚintrC   rB   ©rN   r  r   ÚvrË   rO   r&   r&   r+   Útest_sum_overflow_intð  s   "õz*TestSeriesReductions.test_sum_overflow_intÚfloat32r6   c                 C   s¬   t  d|¡�F tjd|d�}t|ƒ}|jdd�}||j|d�ks"J ‚|jdd�}t t|ƒd¡s2J ‚|j	dd�}t t|ƒ|d ¡sDJ ‚W d   ƒ d S 1 sOw   Y  d S )Nr  r  r]   Fr_   r  rh   )
rZ   r   r3   r4   r   r“   rC   Úallcloser  rB   r  r&   r&   r+   Útest_sum_overflow_float   s   "÷z,TestSeriesReductions.test_sum_overflow_floatc                 C   s\   d}d}t  |g| ¡}t|g| dd�}t  |¡}| ¡ }|| dks&J ‚|dks,J ‚d S )Nl     ;árù   rX   r]   r   g  Ø…W4vC)r3   rJ   r   rÄ   )rN   ra   Ú
n_elementsÚnar  Úresult_numpyÚresult_maskedr&   r&   r+   Útest_mean_masked_overflow  s   
z.TestSeriesReductions.test_mean_masked_overflowz	ddof, exp)rW   ç      @)r   rS   c                 C   sT   t g d¢dd�}t g d¢dd�}|j|d�}|j|d�}||ks"J ‚||ks(J ‚d S )N)rW   r-   ru   rt   r   rX   r]   r5   )Úddof)r   rÑ   )rN   r*  Úexpr  Úser_numpy_dtyperO   Úresult_numpy_dtyper&   r&   r+   Útest_var_masked_array  s   z*TestSeriesReductions.test_var_masked_array)r  r  rF   zM8[ns, UTC]r`   c                 C   s<   t g |d�j|d�tu sJ ‚t g |d�j|d�tu sJ ‚d S )Nr]   r_   )r   rC   r	   rB   )rN   r   r`   r&   r&   r+   Ú+test_empty_timeseries_reductions_return_nat$  s    z@TestSeriesReductions.test_empty_timeseries_reductions_return_natc                 C   ó’   t  dd¡}t||d�}t  |¡}t  |¡}||ksJ ‚| ¡ }||ks&J ‚d}tjt|d�� t j||d� W d   ƒ d S 1 sBw   Y  d S ©NrW   rV   r  r´   rf   rµ   )r3   r4   r   rv   rp   rq   rr   )rN   rè   rË   rO   rP   rn   r&   r&   r+   Útest_numpy_argmin+  s   

"ÿz&TestSeriesReductions.test_numpy_argminc                 C   r0  r1  )r3   r4   r   rw   rp   rq   rr   )rN   rè   r  rO   rP   rn   r&   r&   r+   Útest_numpy_argmax=  s   

"ÿz&TestSeriesReductions.test_numpy_argmaxc                 C   sŽ  t g d¢ƒ |¡}tddtjg|d�}d}tjt|d�� |jdd�}W d   ƒ n1 s-w   Y  |t	u s8J ‚d	}tjt|d�� |j
dd�}W d   ƒ n1 sRw   Y  |t	u s]J ‚| ¡ }d
}tjt|d�� |jdd�}W d   ƒ n1 s{w   Y  |jd|› d�ks‹J ‚| ¡  ¡ s“J ‚d}tjt|d�� |j
dd�}W d   ƒ n1 s­w   Y  |jd|› d�ks½J ‚| ¡  ¡ sÅJ ‚d S )N)r	   z
2015-02-08r	   r	  rS   r  ú0The behavior of Series.idxmin with all-NA valuesrf   Fr_   ú0The behavior of Series.idxmax with all-NA valuesz3The behavior of DataFrame.idxmin with all-NA valueszM8[ú]z3The behavior of DataFrame.idxmax with all-NA values)r   Úas_unitr   r3   rx   ri   rj   rk   Úidxminr	   ÚidxmaxrÅ   r   r   r  )rN   r  Údtir  rn   r\   r†   r&   r&   r+   Útest_idxmin_dt64indexN  s2   ÿÿÿÿz*TestSeriesReductions.test_idxmin_dt64indexc                 C   sR  t tdƒtjdd�}tj|dd…< || ¡  | ¡ ksJ ‚d}tjt	|d�� t
|jdd	�ƒs1J ‚W d   ƒ n1 s;w   Y  | ¡ }|| ¡  | ¡ ksPJ ‚|jj ¡  | ¡ ¡|j ¡ ksbJ ‚|tj }tjt	|d�� t
| ¡ ƒswJ ‚W d   ƒ n1 s�w   Y  t td
dd�ƒ}| ¡ }|dks˜J ‚tj|d< | ¡ }|dks§J ‚d S )NrŸ   r=   r   r   é   zThe behavior of Series.idxminrf   Fr_   Ú20130102rÂ   r   r   rW   )r   r8   r3   r6   rx   r8  rC   ri   rj   rk   r   rÊ   r/   rI   Útolistrv   r   ©rN   Ústring_seriesrn   ÚnonaÚallnarË   rO   r&   r&   r+   Útest_idxming  s(   ÿ$
ÿ
z TestSeriesReductions.test_idxminc                 C   sÆ  t tdƒtjdd�}tj|dd…< || ¡  | ¡ ksJ ‚d}tjt	|d�� t
|jdd	�ƒs1J ‚W d   ƒ n1 s;w   Y  | ¡ }|| ¡  | ¡ ksPJ ‚|jj ¡  | ¡ ¡|j ¡ ksbJ ‚|tj }d}tjt	|d�� t
| ¡ ƒsyJ ‚W d   ƒ n1 sƒw   Y  t td
dd�ƒ}| ¡ }|dksšJ ‚tj|d< | ¡ }|dks©J ‚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<  r5  rf   Fr_   r=  rÂ   r   rt   rÞ   )çš™™™™™ñ?gÍÌÌÌÌÌ @çÍÌÌÌÌÌ@rE  rD  )r   r8   r3   r6   rx   r9  rB   ri   rj   rk   r   rÊ   r/   rI   r>  rw   r   r8  r?  r&   r&   r+   Útest_idxmaxˆ  s>   ÿ$
ÿ
z TestSeriesReductions.test_idxmaxc                 C   s^   t tjdtjd�tddd�dd�}|dk}| ¡ rJ ‚| ¡ s!J ‚t dd	gƒ}| ¡ s-J ‚d S )
Nr   r]   r   r   Útsr.   r   ÚabcT)r   r3   r4   r6   r   r  Úany)rN   rG  Úbool_seriesrË   r&   r&   r+   Útest_all_any·  s   
ýz!TestSeriesReductions.test_all_anyc                 C   sF   |g d¢ƒ}t  |¡rJ ‚t  |¡sJ ‚tg d¢ƒ}t  |¡s!J ‚d S )N)r   rW   r-   rÞ   )r3   r  rI  r   )rN   rb   r0   r&   r&   r+   Útest_numpy_all_anyÅ  s
   z'TestSeriesReductions.test_numpy_all_anyc                 C   s`   t tjdgƒ}t tjdgƒ}|jdd�sJ ‚|jdd�sJ ‚|jdd�s&J ‚|jdd�r.J ‚d S )NTFr_   )r   r3   rx   r  rI  )rN   Ús1r  r&   r&   r+   Útest_all_any_skipnaÍ  s   z(TestSeriesReductions.test_all_any_skipnac                 C   s8   t g d¢g d¢d�}|jdd�sJ ‚|jdd�rJ ‚d S )N)FFTTFT)r   r   rW   rW   r-   r-   r  T)Ú	bool_only)r   rI  r  )rN   rË   r&   r&   r+   Útest_all_any_bool_onlyÖ  s   z+TestSeriesReductions.test_all_any_bool_onlyÚbool_agg_funcrI  r  c                 C   s4   t g d¢td�}t||ƒ|d�}d}||ksJ ‚d S )N)r   rz   rò   ÚdÚer]   r_   T)r   rR   rG   )rN   rQ  r`   r  rO   rP   r&   r&   r+   Útest_any_all_object_dtypeÝ  s   z.TestSeriesReductions.test_any_all_object_dtyperè   Nc                 C   s8   t |ƒ}t||ƒdd�}|dkod |v}||ksJ ‚d S )NFr_   rI  )r   rG   )rN   rè   rQ  r  rO   rP   r&   r&   r+   Ú!test_any_all_object_dtype_missingç  s   z6TestSeriesReductions.test_any_all_object_dtype_missing)rY   rX   ÚUInt64r  zdata,expected_data)r   r   r   )rW   rW   rW   r   rW   c           	      C   sT   t ||d�}|| |dk }t||ƒ|d�}|tju r |tju s(||ks&J ‚d S d S )Nr]   r  r_   )r   rG   rZ   r[   )	rN   rQ  r`   rè   r   Úexpected_datar  rP   rO   r&   r&   r+   Ú"test_any_all_nullable_kleene_logicô  s   (z7TestSeriesReductions.test_any_all_nullable_kleene_logicc                 C   s@   t ddgddgdœƒ}|jddd�}tddgƒ}t ||¡ d S )NTFrW   r-   r�   )r€   rO  )r   rI  r   ri   rƒ   )rN   r†   rO   rP   r&   r&   r+   Útest_any_axis1_bool_only  s   z-TestSeriesReductions.test_any_axis1_bool_onlyc                 C   s¨  t ddd�j}t|ƒ}t|ƒ}d}tjt|d��0 | ¡ sJ ‚| ¡ s%J ‚| ¡ s+J ‚| ¡ s1J ‚| ¡  ¡ s9J ‚| ¡  ¡ sAJ ‚W d   ƒ n1 sKw   Y  | 	d¡}t|ƒ}t|ƒ}tjt|d��0 | ¡ skJ ‚| ¡ sqJ ‚| ¡ swJ ‚| ¡ s}J ‚| ¡  ¡ s…J ‚| ¡  ¡ s�J ‚W d   ƒ n1 s—w   Y  ||d  }t|ƒ}t|ƒ}| ¡ s°J ‚| ¡ r¶J ‚| ¡ s¼J ‚| ¡ rÂJ ‚| ¡  ¡ sÊJ ‚| ¡  ¡ rÒJ ‚d S )Nz
1995-01-02ru   r   z0'(any|all)' with datetime64 dtypes is deprecatedrf   r{   r   )
r   Ú_datar   r   ri   rj   rk   r  rI  r7   )rN   Údtar  r†   rn   Útdar&   r&   r+   Útest_any_all_datetimelike  s@   ÷
÷z.TestSeriesReductions.test_any_all_datetimelikec                 C   sœ  t |tjƒrI|jtju rItddg|d�}t t¡� | 	¡  W d   ƒ n1 s(w   Y  t t¡� | 
¡  W d   ƒ d S 1 sBw   Y  d S tddg|d�}| 	¡ sWJ ‚| 
¡ r]J ‚|j	dd�seJ ‚|j
dd�rmJ ‚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�}| 	¡ r¡J ‚| 
¡ r§J ‚|j	dd�s¯J ‚|j
dd�r·J ‚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�}| 	¡ �rJ ‚| 
¡ �rJ ‚|j	dd��rJ ‚|j
dd��r$J ‚ttjg|d�}| 	¡ �r3J ‚| 
¡ �s:J ‚|j	dd��sCJ ‚|j
dd��sLJ ‚d S )Nr   rz   r]   Ú Fr_   )rH   rZ   ÚStringDtypeÚna_valuer[   r   rp   rq   rÖ   rI  r  r3   rx   )rN   Úany_string_dtyper  r&   r&   r+   Útest_any_all_string_dtypeD  s`   
ÿ
ÿ

ÿþz.TestSeriesReductions.test_any_all_string_dtypec                 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s‡J ‚d S )Nz2012-1-1ru   r#   r$   Ú20120101r   r-   rW   r   Ú20120102r¨   r§   )r   r   r   r8  r9  r3   rx   Úabsri   rƒ   rB   r   rC   )rN   r:  r·   rO   rM  r  rP   r&   r&   r+   Útest_timedelta64_analytics}  s0   
z/TestSeriesReductions.test_timedelta64_analyticsztest_input,error_typer]   ©ÚfooÚbarÚbaz©rW   ©r-   rh  ri  rj  c                 C   sú   t g dd�}d}tjt|d�� | ¡  W d  ƒ n1 sw   Y  tjt|d�� |jdd� W d  ƒ n1 s;w   Y  d}tjt|d�� | ¡  W d  ƒ n1 sXw   Y  tjt|d�� |jdd� W d  ƒ dS 1 svw   Y  dS )	zU
        Cases where ``Series.argmax`` and related should raise an exception
        r6   r]   z*attempt to get argmin of an empty sequencerf   NFr_   z*attempt to get argmax of an empty sequence)r   rp   rq   rr   r8  r9  )rN   Ú
test_inputÚ
error_typern   r&   r&   r+   Ú"test_assert_idxminmax_empty_raises¦  s   
ÿÿ
ÿ"ÿz7TestSeriesReductions.test_assert_idxminmax_empty_raisesc                 C   s¶  t g d¢ƒ}| ¡ dksJ ‚|jdd�dksJ ‚| ¡ dks J ‚|jdd�dks*J ‚t ddgƒ}| ¡ dks8J ‚|jdd�dksBJ ‚| ¡ dksJJ ‚|jdd�dksTJ ‚|sÙt ddd	d	d tjd
gƒ}d}tjt|d�� | ¡  W d   ƒ n1 szw   Y  tjt|d�� |jdd� W d   ƒ n1 s—w   Y  d}tjt|d�� | ¡  W d   ƒ n1 s´w   Y  tjt|d�� |jdd� W d   ƒ d S 1 sÒw   Y  d S d S )Nrg  r   Fr_   rW   rk  rl  rh  ri  rj  z8'>' not supported between instances of 'float' and 'str'rf   z8'<' not supported between instances of 'float' and 'str')r   r9  r8  r3   rx   rp   rq   rÖ   )rN   Úusing_infer_stringr  Úser2Úser3rn   r&   r&   r+   Útest_idxminmax_object_dtypeÁ  s6   
ÿÿ
ÿ"ÿõz0TestSeriesReductions.test_idxminmax_object_dtypec                 C   s>   t ddgddgddggƒ}| ¡ }tddgƒ}t ||¡ d S )	NÚzimmr)  Úbiffr	  Úbidg      (@r   r-   )r   r9  r   ri   rƒ   )rN   r†   r\   r+  r&   r&   r+   Útest_idxminmax_object_frameÝ  s   z0TestSeriesReductions.test_idxminmax_object_framec                 C   sX   t g d¢ƒ}| ¡ dksJ ‚| ¡ dksJ ‚|jdd�dks J ‚|jdd�dks*J ‚d S )N))rW   ru   )r-   r-   )ru   rW   r-   r   Fr_   )r   r9  r8  ©rN   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   rW   z8.68z42.23z7.11z79.61)r0   ÚxÚy)r   r   r9  r   ri   rƒ   r8  )rN   r†   r\   r+  Úres2Úexp2r&   r&   r+   Útest_idxminmax_object_decimalsì  s   ýÿz3TestSeriesReductions.test_idxminmax_object_decimalsc                 C   s\   t ddgdd�}| ¡ dksJ ‚| ¡ dksJ ‚|jdd�dks"J ‚|jdd�dks,J ‚d S )Nr   rW   rR   r]   Fr_   )r   rw   rv   rx  r&   r&   r+   Útest_argminmax_object_intsý  s
   z/TestSeriesReductions.test_argminmax_object_intsc              	   C   s„  t dtj tjtjgƒ}| ¡ dksJ ‚d}tjt|d�� t |jdd�¡s)J ‚W d   ƒ n1 s3w   Y  | 	¡ dks@J ‚d}tjt|d�� t |j	dd�¡sUJ ‚W d   ƒ n1 s_w   Y  d	}tjt|d��K t
 d
d¡�, | ¡ dks}J ‚t |jdd�¡sˆJ ‚| 	¡ dks�J ‚t |j	dd�¡ W d   ƒ n1 s£w   Y  W d   ƒ d S W d   ƒ d S 1 s»w   Y  d S )Nr   rW   r4  rf   Fr_   r-   r5  rû   rü   T)r   r3   rþ   rx   r8  ri   rj   rk   rl   r9  rZ   r   )rN   rË   rn   r&   r&   r+   Útest_idxminmax_with_inf  s,   ÿÿüý"ýz,TestSeriesReductions.test_idxminmax_with_infc                 C   s0   t dgdd�}| ¡ }t d¡}t ||¡ d S )Nl     Ð9V Úuint64r]   )r   r“   r3   r�  ri   r  )rN   rË   rO   rP   r&   r&   r+   Útest_sum_uint64  s   
z$TestSeriesReductions.test_sum_uint64)/r•   r–   r—   r  rp   r˜   rš   r  r  r  r  r   r#  r(  r.  r/  r2  r3  r;  rC  rF  rK  rL  rN  rP  rT  r3   rx   rU  rZ   r[   rX  rY  r]  rb  rf  r   rr   rÖ   ro  rs  rw  ry  r~  r  r€  r‚  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_serÚnatc                 C   sL   |  ¡ tu sJ ‚| ¡ tu sJ ‚|j dd�tu sJ ‚|jdd�tu s$J ‚d S r    ©rC   r	   rB   )rN   r„  r&   r&   r+   Útest_minmax_nat_series*  s   
z5TestDatetime64SeriesReductions.test_minmax_nat_seriesÚnat_dfc                 C   s\   |  ¡ d tu s
J ‚| ¡ d tu sJ ‚|j dd�d tu s J ‚|jdd�d tu s,J ‚d S )Nr   Fr_   r†  )rN   rˆ  r&   r&   r+   Útest_minmax_nat_dataframe9  s   
z8TestDatetime64SeriesReductions.test_minmax_nat_dataframec                 C   sž   t ddƒ}| tj d¡ t|ƒ¡¡}| ¡ }| ¡ }t	|t
ƒs"J ‚t	|t
ƒs)J ‚||d ks1J ‚||d ks9J ‚| ¡ |d ksCJ ‚| ¡ |d ksMJ ‚d S )Nú1/1/2000z
12/31/2000r-   r   rh   )r   Útaker3   r9   r:   ÚpermutationÚlenrC   rB   rH   r   )rN   ÚrngÚrng2Úthe_minÚthe_maxr&   r&   r+   Útest_min_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	ƒs0J ‚||ks6J ‚|j ¡ }t	|jj
d	 ƒ}t|t	ƒsJJ ‚||ksPJ ‚d S )
NrŠ  r   Ú4hr$   )
r‘   r‘   r‘   r’   r’   r’   ÚCr”  r”  r”  r-   )ÚTSÚVÚLrh   r   )r   r   r3   r9   r:   r;   r�  r•  rB   r   ÚiatrH   rC   )rN   rŽ  Úlvlsr†   rO   r+  r&   r&   r+   Útest_min_max_seriesV  s    ýÿ

z2TestDatetime64SeriesReductions.test_min_max_seriesN)r•   r–   r—   rp   r˜   rš   r   r	   r   r‡  r   r‰  r’  rš  r&   r&   r&   r+   rƒ  %  s&    
ýþ

ýþ
rƒ  c                   @   sú   e Zd Zej dddg¡dd„ ƒZej dedƒedƒfedƒedƒfedƒej	g edƒfg d	¢g d
¢fdddej	gg d
¢fg¡ej dddg¡dd„ ƒƒZ
ej dddg¡ej dddg¡dd„ ƒƒZej dddg¡ej dddg¡dd„ ƒƒZdS )ÚTestCategoricalSeriesReductionsÚfunctionrC   rB   c                 C   s^   t tg d¢dd�ƒ}d|› �}tjt|d�� t||ƒƒ  W d   ƒ d S 1 s(w   Y  d S )N)r   rz   rò   rR  F)rñ   z)Categorical is not ordered for operation rf   )r   r   rp   rq   rÖ   rG   )rN   rœ  Úcatrn   r&   r&   r+   Útest_min_max_unordered_raisesq  s
   
"ÿz=TestCategoricalSeriesReductions.test_min_max_unordered_raiseszvalues, categoriesrH  ÚcbarÞ   ©ru   r-   rW   rW   r-   ru   c                 C   sJ   t t||dd�ƒ}t||ƒdd�}|dkr|d n|d }||ks#J ‚d S )NTrï   r_   rC   r   r-   )r   r   rG   )rN   rI   rð   rœ  r�  rO   rP   r&   r&   r+   Útest_min_max_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 sJ ‚d S )NrW   r-   Trï   r_   ©r   r   r3   rx   rG   )rN   rœ  r`   r�  rO   r&   r&   r+   Ú"test_min_max_ordered_with_nan_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   rz   Trï   r_   rC   r¢  )rN   rœ  r`   r�  rO   rP   r&   r&   r+   Útest_min_max_skipna“  s   ÿz3TestCategoricalSeriesReductions.test_min_max_skipnaN)r•   r–   r—   rp   r˜   rš   rž  rô   r3   rx   r¡  r£  r¤  r&   r&   r&   r+   r›  l  s(    
ûþ
r›  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, expectedTr]   Fc                 C   s(   t g tjd�}| |¡}t ||¡ d S r  )r   r3   r6   Úmoderi   rƒ   ©rN   rÊ   rP   rË   rO   r&   r&   r+   Útest_mode_empty§  s   
zTestSeriesMode.test_mode_emptyzdropna, data, expected)rW   rW   rW   r-   rW   )rW   rW   rW   r-   ru   ru   ru   ru   ÚdtÚ
AllIntegerÚFloatc                 C   s2   t ||d�}| |¡}t ||d�}t ||¡ d S r  ©r   r¦  ri   rƒ   )rN   rÊ   rè   rP   r©  rË   rO   r&   r&   r+   Útest_mode_numerical°  s   
z"TestSeriesMode.test_mode_numericalr	  c                 C   s8   t dddtjtjgƒ}| |¡}t |ƒ}t ||¡ d S )NrW   r-   )r   r3   rx   r¦  ri   rƒ   r§  r&   r&   r+   Útest_mode_numerical_nanÂ  s   
z&TestSeriesMode.test_mode_numerical_nanzdropna, expected1, expected2rz   ri  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-   rz   ru   rò   r]   rh  ri  )r   r¦  ri   rƒ   r3   rx   rR   )rN   rÊ   Ú	expected1Ú	expected2rè   rË   rO   r&   r&   r+   Útest_mode_objectÉ  ó   	

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-   rz   ru   r]   rh  ri  )r   r¦  ri   rƒ   r3   rx   )rN   rÊ   r¯  r°  ra  rè   rË   rO   r&   r&   r+   Útest_mode_stringà  r²  zTestSeriesMode.test_mode_stringrh  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)rW   rh  rh  r]   rW   rh  )r   r¦  rR   ri   rƒ   r3   rx   )rN   rÊ   r¯  r°  rË   rO   rP   r&   r&   r+   Útest_mode_mixeddtype÷  s   

z#TestSeriesMode.test_mode_mixeddtype)ú
1900-05-03rÚ   ú
2013-01-02rÚ   r¶  c                 C   óh   t g d¢dd�}| |¡}t |dd�}t ||¡ t g d¢dd�}| |¡}t |dd�}t ||¡ d S )N)rÚ   r¶  rµ  rx   rx   rF   r]   )rÚ   r¶  rµ  rÚ   r¶  rx   rx   r¬  ©rN   rÊ   r¯  r°  rË   rO   r&   r&   r+   Útest_mode_datetime  s   ÿ
	ö
z!TestSeriesMode.test_mode_datetime)ú-1 daysú0 daysr§   ú2 minú1 dayc                 C   r·  )N)r§   rº  r»  rx   rx   r�   r]   )r½  r½  z-1 dayz-1 day 2 minr¼  r¼  rx   rx   r¬  r¸  r&   r&   r+   Útest_mode_timedelta)  s   
ÿ

õ
z"TestSeriesMode.test_mode_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 )
NrW   r-   Úcategoryr]   r   ru   r   Trï   )r   r   r3   rx   r¦  ri   rƒ   )rN   rÊ   r¯  r°  Ú	expected3rË   rO   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)rW   rÂ  rÂ  r]   rW   rÂ  )r   r3   r�  r¦  ri   rƒ   r¸  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 )NrW   rh  r]   F)rÊ   )r   r3   rx   rR   r¦  ri   rƒ   )rN   rË   rP   rO   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 )NTFrY   r]   r   )r   rZ   r[   r¦  ri   rƒ   )rN   r  rO   rP   r&   r&   r+   Útest_mode_boolean_with_na†  s   z(TestSeriesMode.test_mode_boolean_with_nazarray,expected,dtype)r   ù              ð?rW   rW   ù      ð?      ð?ù      ð?       @)rÇ  ù               @rÇ  rÇ  c                 C   ó    t ||d� ¡ }t ||¡ d S r  r¬  ©rN   rJ   rP   r   rO   r&   r&   r+   Útest_single_mode_value_complex�  s   z-TestSeriesMode.test_single_mode_value_complex)r   rÆ  rW   rÇ  rÈ  )y                rÆ  y      ð?        rÇ  rÈ  )rÇ  rÉ  rÇ  rÉ  ru   rÉ  c                 C   rÊ  r  r¬  rË  r&   r&   r+   Útest_multimode_complex¥  s   z%TestSeriesMode.test_multimode_complexN)r•   r–   r—   rp   r˜   rš   r   r3   r6   r¨  rô   Ú	typecodesr­  rx   r®  r±  r³  r´  r¹  r¾  r   rÁ  rÃ  rÄ  rÅ  Ú
complex128Ú	complex64rÌ  rÍ  r&   r&   r&   r+   r¥  ¢  sØ    "þ
üþ	ÿ 
þþ
þþ
þ
ýúþ
þþ
üüùþ
þ
ýýýõþ
üýùþr¥  )(r   r   Údecimalr   Únumpyr3   rp   ÚpandasrZ   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   Úpandas._testingÚ_testingri   Úpandas.corer   Úpandas.core.arrays.string_arrowr   r?   r@   r›   r÷   rƒ  r›  r¥  r&   r&   r&   r+   Ú<module>   s0    L @  P     fG6