a
    oÝEbOú  ã                   @   sÞ  d dl mZ d dlmZ d dlZd dlmZ d dlZd dl	Z	d dl
mZ d dlm  mZ d dlm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 d dlm Z! d dl"m#  m$Z$ d dl%m#  m&Z& d8dd„Z'd9dd„Z(d:dd„Z)d;dd„Z*G dd„ dƒZ+G dd„ dƒZ,G dd„ dƒZ-dd„ Z.dd„ Z/e	j0 1dg d¢¡e	j0 1d d!d"g¡d#d$„ ƒƒZ2d%d&„ Z3e	j0j4d'd(�d)d*„ ƒZ5e	j0 1d+g d,¢¡d-d.„ ƒZ6e	j0 1d/ed0ƒej7g¡d1d2„ ƒZ8d3d4„ Z9e	j0 1d g d5¢¡d6d7„ ƒZ:dS )<é    )Ú	timedelta)ÚDecimalN)Útzlocal)Úis_platform_windows©Úis_categorical_dtype)ÚCategoricalÚ	DataFrameÚIndexÚ
MultiIndexÚSeriesÚ	TimestampÚ
date_rangeÚisnaÚnotnaÚto_datetimeÚto_timedeltaTFçñhãˆµøä>ç:Œ0âŽyE>c	                    s–  t || ƒ}	|rÖ| dv rtnd}
tdtddd�iƒ}t |
¡� t || ƒƒ }W d  ƒ n1 s^0    Y  t|tƒsvJ ‚tt	|ƒƒ|d< t |
¡� t || ƒƒ }W d  ƒ n1 s²0    Y  t|tƒsÊJ ‚t	|ƒsÖJ ‚|�rD‡ fdd	„}t 
ˆ |¡}|	d
dd�}|	ddd�}tj|| |¡|||d� tj||j|dd�||d� nˆ }|	d
d�}|	dd�}tj|| |¡|||d� | dv �r¢|j|dd�}tj||d||d� |�rÐ|jj}||jk�sÀJ ‚||jk�sÐJ ‚tjtdd�� |	dd� W d  ƒ n1 �s 0    Y  |�r’|tj }t || ƒd
d�}t || ƒdd�}| dv �r’| dk�rRdnd
}t||j|jd�}t ||¡ t||j|jd�}t ||¡ dS )aš  
    Check that operator opname works as advertised on frame

    Parameters
    ----------
    opname : str
        Name of the operator to test on frame
    alternative : function
        Function that opname is tested against; i.e. "frame.opname()" should
        equal "alternative(frame)".
    frame : DataFrame
        The object that the tests are executed on
    has_skipna : bool, default True
        Whether the method "opname" has the kwarg "skip_na"
    check_dtype : bool, default True
        Whether the dtypes of the result of "frame.opname()" and
        "alternative(frame)" should be checked.
    check_dates : bool, default false
        Whether opname should be tested on a Datetime Series
    rtol : float, default 1e-5
        Relative tolerance.
    atol : float, default 1e-8
        Absolute tolerance.
    skipna_alternative : function, default None
        NaN-safe version of alternative
    )ÚmeanÚmedianNÚbz1/1/2001é   ©ÚperiodsÚac                    s
   ˆ | j ƒS ©N©Úvalues©Úx©Úalternative© úb/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/frame/test_reductions.pyÚwrapperW   s    z$assert_stat_op_calc.<locals>.wrapperr   F©ÚaxisÚskipnaé   )Úcheck_dtypeÚrtolÚatol©r'   )r+   r,   ©ÚsumÚprodúNo axis named 2©Úmatchr0   ©ÚindexÚdtype)ÚgetattrÚFutureWarningr	   r   ÚtmÚassert_produces_warningÚ
isinstancer   ÚrangeÚlenZ_make_skipna_wrapperÚassert_series_equalÚapplyr   r6   ÚpytestÚraisesÚ
ValueErrorÚnpÚNaNr5   )Úopnamer"   ÚframeÚ
has_skipnar*   Úcheck_datesr+   r,   Úskipna_alternativeÚfZexpected_warningÚdfÚresultr%   Úskipna_wrapperÚresult0Úresult1ÚexpectedZ	lcd_dtypeÚall_naÚr0Úr1Úunitr#   r!   r$   Úassert_stat_op_calc!   sr    %
**ÿü

û

ÿ*

rU   c                 C   sp   t || ƒdd� t || ƒdd� |rlt || ƒddd� t || ƒddd� t || ƒddd� t || ƒddd� dS )a´  
    Check that API for operator opname works as advertised on frame

    Parameters
    ----------
    opname : str
        Name of the operator to test on frame
    float_frame : DataFrame
        DataFrame with columns of type float
    float_string_frame : DataFrame
        DataFrame with both float and string columns
    has_numeric_only : bool, default False
        Whether the method "opname" has the kwarg "numeric_only"
    r   r-   r)   T©r'   Únumeric_onlyFN)r7   )rE   Úfloat_frameÚfloat_string_frameÚhas_numeric_onlyr#   r#   r$   Úassert_stat_op_api�   s    r[   c                    s`  t || ƒ}|rh‡ fdd„}‡ fdd„}|ddd�}|ddd�}t || |¡¡ t ||j|dd	�¡ nˆ }ˆ }|dd	�}|dd	�}t || |¡¡ tj||j|dd	�dd
� tjtdd�� |dd	� W d  ƒ n1 sÞ0    Y  |�r\|tj }	t |	| ƒdd	�}
t |	| ƒdd	�}| dk�r@|
 	¡ �r0J ‚| 	¡ �r\J ‚n|
 
¡ �sNJ ‚| 
¡ �s\J ‚dS )aØ  
    Check that bool operator opname works as advertised on frame

    Parameters
    ----------
    opname : str
        Name of the operator to test on frame
    alternative : function
        Function that opname is tested against; i.e. "frame.opname()" should
        equal "alternative(frame)".
    frame : DataFrame
        The object that the tests are executed on
    has_skipna : bool, default True
        Whether the method "opname" has the kwarg "skip_na"
    c                    s   |   ¡ j}ˆ |ƒS r   )Údropnar   )r    Znonar!   r#   r$   rM   ¾   s    
z+assert_bool_op_calc.<locals>.skipna_wrapperc                    s
   ˆ | j ƒS r   r   r   r!   r#   r$   r%   Â   s    z$assert_bool_op_calc.<locals>.wrapperr   Fr&   r)   r-   )r*   r1   r2   r   NÚany)r7   r9   r>   r?   r@   rA   rB   rC   rD   r]   Úall)rE   r"   rF   rG   rJ   rM   r%   rN   rO   rQ   rR   rS   r#   r!   r$   Úassert_bool_op_calcª   s6    


ÿ(

r_   c                 C   sŒ   |}t j t|ƒ¡dk|d< t|| ƒdd� t|| ƒdd� |rˆt|| ƒddd� t|| ƒddd� t|| ƒddd� t|| ƒddd� d	S )
a¶  
    Check that API for boolean operator opname works as advertised on frame

    Parameters
    ----------
    opname : str
        Name of the operator to test on frame
    float_frame : DataFrame
        DataFrame with columns of type float
    float_string_frame : DataFrame
        DataFrame with both float and string columns
    has_bool_only : bool, default False
        Whether the method "opname" has the kwarg "bool_only"
    g      à?Z_bool_r   r-   r)   T)r'   Ú	bool_onlyFN)rC   ÚrandomÚrandnr=   r7   )rE   Úbool_frame_with_narY   Úhas_bool_onlyÚmixedr#   r#   r$   Úassert_bool_op_apiç   s    rf   c                -   @   sž  e Zd Zej d¡dd„ ƒZej d¡ejdd„ ƒƒZ	dd„ Z
ejdd	„ ƒZej d
¡dd„ ƒZej dg d¢¡dd„ ƒZej dg d¢¡dd„ ƒZdd„ Zdd„ Zej dddg¡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+„ ƒZej d,d-d.gd/gd0gd1ged1gd1gd2�ed3gƒed4gƒd5œfd6d.gd/gejgejejged7�eejgd1gd2�e j!gee j!gƒd5œfd-d8d9ejejgd8d9ejejgd:ejejejged1ejejejgd1gd2�eg d;¢ƒeg d<¢ƒg d=¢d>œfd6d8d9ejejgd8d9ejejgd:ejejejgeejd1ejejgd1gd2�eg d?¢ƒeg d@¢ƒg d=¢d>œfg¡dAdB„ ƒZ"dCdD„ Z#dEdF„ Z$dGdH„ Z%dIdJ„ Z&dKdL„ Z'ej dMdNdOg¡ej dPg dQ¢¡dRdS„ ƒƒZ(dTdU„ Z)dVdW„ Z*dXdY„ Z+dZd[„ Z,d\d]„ Z-d^d_„ Z.d`da„ Z/dbdc„ Z0ddde„ Z1dfdg„ Z2dhdi„ Z3djdk„ Z4dldm„ Z5dndo„ Z6ej dpdqdrdsgfdtdrdugfg¡dvdw„ ƒZ7dxdy„ Z8ej dzd{d|g¡d}d~„ ƒZ9ej dzd{d|g¡dd€„ ƒZ:d�d‚„ Z;ej dƒdrd:g¡ej d„d{d|g¡ej d…d-d6g¡d†d‡„ ƒƒƒZ<dˆd‰„ Z=dŠd‹„ Z>ej dŒej?i d6fej@i d-fej?d�g id6fej@d�g id-fej?d�d6d6gid6fej@d�d6d6gid6fej?d�d-d6gid-fej@d�d-d6gid6fej?d�d-d-gid-fej@d�d-d-gid-fej?d6gd6gdŽœd6fej@d6gd6gdŽœd6fej?d6d6gd6d-gdŽœd-fej@d6d6gd6d-gdŽœd6fej@d�eAd�d0gd�d7�id6fej?d�eAd�d0gd�d7�id-fej@d�eAdrd:geBd7�id6fej?d�eAdrd:geBd7�id-fe Cej@d�eAdrd:gd‘d7�id6¡e Cej@d�eAdrd:gd’d7�id6¡e Cej?d�eAdrd:gd‘d7�id-¡e Cej?d�eAdrd:gd’d7�id-¡e Cej@d�eAd:d“gd‘d7�id-¡e Cej@d�eAd:d“gd’d7�id-¡e Cej?d�eAd:d“gd‘d7�id-¡e Cej?d�eAd:d“gd’d7�id-¡e Cej@d�eAdrd:gd”d7�id6¡e Cej?d�eAdrd:gd”d7�id-¡e Cej@d�eAd:d“gd”d7�id-¡e Cej?d�eAd:d“gd”d7�id-¡ej@d�eAdrd:gd•d7�id-fej?d�eAdrd:gd•d7�id6fej@d�eAd:d“gd•d7�id-fej?d�eAd:d“gd•d7�id6fe Cej@eAd–d—gd‘d7�eAd–d—gd”d7�dŽœd-¡g#¡d˜d™„ ƒZDdšd›„ ZEdœd�„ ZFej dd{d|g¡dždŸ„ ƒZGd d¡„ ZHdS )¢ÚTestDataFrameAnalyticsz)ignore:Dropping of nuisance:FutureWarningc                 C   s¨   t d||ƒ t d||ƒ t d||dd� t d||ƒ t d||ƒ t d||ƒ t d	||ƒ t d
||ƒ t d||dd� t d||ƒ t d||ƒ t d||ƒ t d||ƒ d S )NÚcountr/   ÚnuniqueF)rZ   r   Úproductr   ÚminÚmaxÚmadÚvarÚstdÚsem©r[   ©ÚselfrX   rY   r#   r#   r$   Útest_stat_op_api  s"    ÿÿz'TestDataFrameAnalytics.test_stat_op_apic                 C   s   t d||ƒ t d||ƒ d S )NÚskewÚkurtrq   rr   r#   r#   r$   Útest_stat_op_api_skew_kurt   s    z1TestDataFrameAnalytics.test_stat_op_api_skew_kurtc           	      C   sà   dd„ }dd„ }dd„ }dd„ }d	d
„ }dd„ }t d||dddd� t dtj| d¡ddd� t dtj|tjd� t dtj|dd� t dtj|tjd� t d||ƒ t d||ƒ t d||ƒ t d||ƒ t d||dddd� d S )Nc                 S   s   t | ƒ ¡ S r   )r   r/   ©Úsr#   r#   r$   rh   '  s    z7TestDataFrameAnalytics.test_stat_op_calc.<locals>.countc                 S   s   t t |  ¡ ¡ƒS r   )r=   Ú
algorithmsZunique1dr\   rx   r#   r#   r$   ri   *  s    z9TestDataFrameAnalytics.test_stat_op_calc.<locals>.nuniquec                 S   s   t  | |  ¡  ¡ ¡ S r   )rC   Úabsr   r   r#   r#   r$   rm   -  s    z5TestDataFrameAnalytics.test_stat_op_calc.<locals>.madc                 S   s   t j| dd�S ©Nr)   ©Zddof)rC   rn   r   r#   r#   r$   rn   0  s    z5TestDataFrameAnalytics.test_stat_op_calc.<locals>.varc                 S   s   t j| dd�S r|   )rC   ro   r   r#   r#   r$   ro   3  s    z5TestDataFrameAnalytics.test_stat_op_calc.<locals>.stdc                 S   s   t j| dd�t  t| ƒ¡ S r|   )rC   ro   Úsqrtr=   r   r#   r#   r$   rp   6  s    z5TestDataFrameAnalytics.test_stat_op_calc.<locals>.semri   FT)rG   r*   rH   r/   Zfloat32gü©ñÒMbP?)r*   r+   )rI   r   ©rH   rj   rm   rn   ro   rp   rh   )rU   rC   r/   ÚastypeZnansumr   r0   Znanprod)	rs   Úfloat_frame_with_naZmixed_float_framerh   ri   rm   rn   ro   rp   r#   r#   r$   Útest_stat_op_calc&  sP    úûÿÿúz(TestDataFrameAnalytics.test_stat_op_calcc                 C   s,   dd„ }dd„ }t d||ƒ t d||ƒ d S )Nc                 S   s*   ddl m} t| ƒdk rtjS || dd�S )Nr   )ru   é   F©Zbias)Úscipy.statsru   r=   rC   Únan)r    ru   r#   r#   r$   Úskewnesse  s    zHTestDataFrameAnalytics.test_stat_op_calc_skew_kurtosis.<locals>.skewnessc                 S   s*   ddl m} t| ƒdk rtjS || dd�S )Nr   )Úkurtosisé   Fr„   )r…   rˆ   r=   rC   r†   )r    rˆ   r#   r#   r$   rv   l  s    zDTestDataFrameAnalytics.test_stat_op_calc_skew_kurtosis.<locals>.kurtru   rv   ©rU   )rs   r�   r‡   rv   r#   r#   r$   Útest_stat_op_calc_skew_kurtosisc  s    z6TestDataFrameAnalytics.test_stat_op_calc_skew_kurtosiszignore::RuntimeWarningc                 C   s.   dd„ }t d||dd� t d||ddd� d S )Nc                 S   s   t | ƒ ¡ rtjS t | ¡S r   )r   r]   rC   r†   r   r   r#   r#   r$   r%   z  s    z3TestDataFrameAnalytics.test_median.<locals>.wrapperr   Tr   F)r*   rH   rŠ   )rs   r�   Ú	int_framer%   r#   r#   r$   Útest_medianx  s
    
ÿz"TestDataFrameAnalytics.test_medianÚmethod)r/   r   r0   rn   ro   ru   rk   rl   c                 C   sª   g d¢g d¢g d¢dœ}t |g d¢dd�}t tjdgtjd	gtjd
gdœtd�}||fD ]L}|jjtjksnJ ‚t||ƒdƒ}t| d¡|ƒdƒ}|dv rXt	 
||¡ qXd S )N)gÈƒw@Ba@¿gCùVÞúZ¿g
?ZÁ½.F?)r   r   ç        )gê94­³c4?gÏ@ð}�jX?gþïœÕN¿©r   r   Úc©ÚfooÚbarÚbazÚOr4   r   rƒ   r‰   ©r   r)   r   ©r6   r)   Zf8r.   )r	   rC   r†   Úobjectr   r6   Zobject_r7   r€   r9   r>   )rs   rŽ   ÚdataÚdf1Údf2rK   rL   rP   r#   r#   r$   Ú%test_stat_operators_attempt_obj_array„  s    ù&z<TestDataFrameAnalytics.test_stat_operators_attempt_obj_arrayÚop)r   ro   rn   ru   rv   rp   c              	   C   sà   t g d¢g d¢g d¢dœƒ}tjtdd�� t||ƒƒ }W d   ƒ n1 sL0    Y  t|ƒdksfJ ‚t dd	¡�Z tjtdd�� t||ƒƒ }W d   ƒ n1 s¤0    Y  t|ƒdks¾J ‚W d   ƒ n1 sÒ0    Y  d S )
N©r)   r   rƒ   r‰   )ç      ð?ç       @g      @g      @©r   r   r‘   Úd)ÚintÚfloatÚstrúSelect only valid columnsr2   r   Úuse_bottleneckF)r	   r9   r:   r8   r7   r=   ÚpdÚoption_context)rs   rž   rK   rL   r#   r#   r$   Útest_mixed_ops¢  s"    ýÿÿ*ÿ*z%TestDataFrameAnalytics.test_mixed_opsc                 C   sr   t g d¢g d¢g d¢dœƒ}|jg d¢d� |jdd�}t |jtjg d¢td	�¡ |j	jd
d�}t 
||¡ d S )N)TTFFF)é
   é   é   é(   é2   )r   r   r‘   r£   Úe)Z	bool_dataZint_dataZstring_data©Úcolumnsr   r-   )r   é–   Zabcder˜   r)   )r	   Úreindexr/   r9   Zassert_numpy_array_equalr   rC   Úarrayr™   ÚTr>   )rs   rK   ÚtestZaltr#   r#   r$   Útest_reduce_mixed_frame¹  s    ýÿÿz.TestDataFrameAnalytics.test_reduce_mixed_framec                 C   s¢   t g d¢g d¢dtjdgdœƒ}t | ¡ tddddœƒ¡ t |jdd�tddddœƒ¡ t |jdd	�tdddd
œƒ¡ t |jddd�tdddd
œƒ¡ d S )N©r)   r)   r)   ©r)   r   rƒ   r)   rƒ   ©ÚAÚBÚCr   F©r\   r-   r—   )r'   r\   )r	   rC   r†   r9   r>   ri   r   )rs   rK   r#   r#   r$   Útest_nuniqueÊ  s     ÿ ÿz#TestDataFrameAnalytics.test_nuniqueÚtzNÚUTCc                 C   sr   t ddgtd|d�gd dœƒ}t t¡� | ¡ }W d   ƒ n1 sH0    Y  tdgdgd�}t ||¡ d S )	Nr)   Ú2000©rÂ   r   ©r½   r¾   r    r½   ©r5   )r	   r   r9   r:   r8   r   r   r>   ©rs   rÂ   rK   rL   rP   r#   r#   r$   Ú test_mean_mixed_datetime_numericÕ  s
     &z7TestDataFrameAnalytics.test_mean_mixed_datetime_numericc                 C   sh   t dtd|d�gd iƒ}t t¡� | ¡ }W d   ƒ n1 sB0    Y  ttjd�}t 	||¡ d S )Nr½   rÄ   rÅ   r   r˜   )
r	   r   r9   r:   r8   r   r   rC   Úfloat64r>   rÈ   r#   r#   r$   Útest_mean_excludes_datetimesÞ  s
    &z3TestDataFrameAnalytics.test_mean_excludes_datetimesc                 C   sò   dd t dƒdœdd t dƒdœdd t dƒdœdd t dƒdœd	d t d
ƒdœddt dƒdœdd t dƒdœd	d t dƒdœdd t dƒdœdd t dƒdœg
}t|ƒ}tjtdd�� | ¡ }W d   ƒ n1 sÄ0    Y  tddgddgd�}t ||¡ d S )Nr   z628.00r¼   r)   z383.00rƒ   z651.00z575.00r‰   z1114.00ÚTESTz241.00z572.00z609.00z820.00é   z1223.00r§   r2   gš™™™™™@gÍÌÌÌÌL…@r½   r¿   rÇ   )r   r	   r9   r:   r8   r   r   r>   )rs   r£   rK   rL   rP   r#   r#   r$   Útest_mean_mixed_string_decimalê  s$    öÿ&z5TestDataFrameAnalytics.test_mean_mixed_string_decimalc                 C   sÎ   |j dd�}| dd„ ¡}t ||¡ |jdd�}| dd„ ¡}t ||¡ t tj d¡dd¡}tj	|dd	�}|dk  
¡ r€J ‚t d
d¡�. tj	|dd	�}|dk  
¡ r¬J ‚W d   ƒ n1 sÀ0    Y  d S )Nr‰   r}   c                 S   s   | j dd�S ©Nr‰   r}   )ro   r   r#   r#   r$   Ú<lambda>  ó    z5TestDataFrameAnalytics.test_var_std.<locals>.<lambda>c                 S   s   | j dd�S rÏ   )rn   r   r#   r#   r$   rÐ   
  rÑ   ©r)   éè  rÓ   r   r-   r¨   F)ro   r?   r9   Úassert_almost_equalrn   rC   Úrepeatra   ÚnanopsZnanvarr]   r©   rª   ©rs   Zdatetime_framerL   rP   Úarrr#   r#   r$   Útest_var_std  s    z#TestDataFrameAnalytics.test_var_stdÚmeth)rp   rn   ro   c                 C   sB  t tj dd¡g d¢d�}d|jd< t tj dd¡g d¢d�}d|jd< t||ƒdd	d
�}t|ddg |ƒdd�}t ||¡ t||ƒdd	d
�}t|ddg |ƒdd�}t ||¡ d}tj	t
|d��" t||ƒddd
� W d   ƒ n1 sî0    Y  d}tj	t
|d��" t||ƒddd
� W d   ƒ n1 �s40    Y  d S )NrÍ   rƒ   r’   r²   Ú100)r   r“   r   r)   TrV   r”   r•   r-   z6unsupported operand type\(s\) for -: 'float' and 'str'r2   Fz&could not convert string to float: 'a')r	   rC   ra   rb   Úlocr7   r9   r>   r@   rA   Ú	TypeError)rs   rÚ   r›   rœ   rL   rP   Úmsgr#   r#   r$   Útest_numeric_only_flag  s     

0z-TestDataFrameAnalytics.test_numeric_only_flagc                 C   s¨   |j dd�}| dd„ ¡}t ||¡ t tj d¡dd¡}tj|dd�}|dk  	¡ rZJ ‚t
 d	d
¡�. tj|dd�}|dk  	¡ r†J ‚W d   ƒ n1 sš0    Y  d S )Nr‰   r}   c                 S   s   | j dd�t t| ƒ¡ S rÏ   )ro   rC   r~   r=   r   r#   r#   r$   rÐ   2  rÑ   z1TestDataFrameAnalytics.test_sem.<locals>.<lambda>rÒ   rÓ   r   r-   r¨   F)rp   r?   r9   rÔ   rC   rÕ   ra   rÖ   Znansemr]   r©   rª   r×   r#   r#   r$   Útest_sem0  s    zTestDataFrameAnalytics.test_semc                 C   s¸   t dgg d¢ddggg d¢g d¢g d¢gd�}ttj d	d
¡|d�}| ¡ }t t¡�" |jdd� 	d¡}W d   ƒ n1 s~0    Y  tj
||dd� |jd u s¦J ‚|jdks´J ‚d S )Nr”   )ÚoneÚtwoÚthreer   r)   )r   r   r   r   r   r   )r   r)   r   r   r)   r   )r   r)   r   r)   r   r)   )ZlevelsÚcodesé   rƒ   rÇ   ©ÚlevelF)Zcheck_names)r   r	   rC   ra   rb   rv   r9   r:   r8   Úxsr>   Úname)rs   r5   rK   rv   Zkurt2r#   r#   r$   Ú	test_kurt=  s    þ0z TestDataFrameAnalytics.test_kurtzdropna, expectedTé   g      $@r    r   )Ú
categoriesú2000-1-2ú1 days)r½   r¾   r¿   ÚDÚEÚFÚGFr˜   é   é	   r)   )rí   ÚNaTrõ   rõ   ©rî   r†   r†   r†   )r   r)   r   rƒ   )ÚHÚIÚJÚKÚLÚMÚN©rõ   rí   rõ   rõ   )r†   rî   r†   r†   c                 C   sà   t g d¢ddtjdgdtjtjtjgtjtjdtjgttjtjdtjgƒtg d¢ƒtg d¢ƒg d¢g d	¢ddtjtjgtdtjdtjgƒtg d
¢ƒtg d¢ƒtjddd�dœƒ}|t| ¡ ƒ j	|d�}t |ƒ}t
 ||¡ d S )N)rë   rë   é   é   r¬   rƒ   r)   r   rþ   rö   )ró   ró   rô   rô   )rô   rô   ró   ró   )rí   rí   rõ   rõ   )rî   r†   rî   r†   r‰   Úint64r˜   )r½   r¾   r¿   rï   rð   rñ   rò   r÷   rø   rù   rú   rû   rü   rý   rÀ   )r	   rC   r†   r   r   r   ÚarangeÚsortedÚkeysÚmoder9   Úassert_frame_equal)rs   r\   rP   rK   rL   r#   r#   r$   Útest_mode_dropnaL  s(    7



òÿz'TestDataFrameAnalytics.test_mode_dropnac                 C   s„   t dtjtjddgiƒ}t ddtjgiƒ}t t¡�0 |jdd�}|jdd�jdd�}W d   ƒ n1 sj0    Y  t 	||¡ d S )Nr½   r   FrÀ   )ZbyT)Zdrop)
r	   rC   r†   r9   r:   ÚUserWarningr  Zsort_valuesZreset_indexr  )rs   rK   rP   rL   r#   r#   r$   Útest_mode_sortwarningš  s    2z,TestDataFrameAnalytics.test_mode_sortwarningc                 C   sB   t g ddgd�}| ¡ }t g ddgtg td�d�}t ||¡ d S )Nr   r   r²   r˜   )r³   r5   )r	   r  r
   r¤   r9   r  ©rs   rK   rL   rP   r#   r#   r$   Útest_mode_empty_df§  s    z)TestDataFrameAnalytics.test_mode_empty_dfc                 C   s"  t tdddd�tdddd�tdƒtddd� d	œƒ}t |d
 |d  |d
 |d  dœƒ}| ¡ }|d |jd ksxJ ‚|d |jd ksŽJ ‚|jdd�}||jd k ¡ s°J ‚| ¡ }|d |jd ksÎJ ‚|d |jd ksäJ ‚|jdd�}||d
 k ¡ �sJ ‚| ¡ }t|ƒ}t |d
 |d  |d |d
  dœƒ}t	 
||¡ t	 
||¡ | ¡ }d|d< d|d< d|d< tdƒ|d< | ¡ }tt tdd�¡t tdd�¡dddtdƒg|jd�}t	 ||¡ t	jtdd �� |jdd�}W d   ƒ n1 �sü0    Y  tg d!¢g d"¢d�}t	 ||¡ |d
dg  d¡}ttdd�gd ƒ}t	 ||¡ |d
dg  ¡ }ttdd�tdd�gd
dgd�}t	 ||¡ t td#dd$�td%dd$�d&œƒ}|d' |d(  |d)< |d) jd*k�sÚJ ‚|d( |d'  |d+< | ¡  |d) jd*k�s
J ‚|d+ jd*k�sJ ‚d S ),Nz2012-1-1rƒ   rï   ©r   Úfreqz2012-1-2Z20120101rÍ   )ÚminutesÚsecondsr¼   r½   r¿   r¾   rÆ   r   )r   r½   r)   )r   r¾   r-   )r   r½   )r   r¾   r“   r    rð   Z20130101rñ   i1  ©r  éÿÿÿÿ)ÚdaysrÇ   úSelect only validr2   )r)   r)   r    r—   Z20130102r   Z20130105)ÚtimeÚtime2r  r  Zoff1útimedelta64[ns]Zoff2)r	   r   r   r   rk   rÜ   r^   rl   r{   r9   r  Úcopyr   r©   Ú	Timedeltar³   r>   r:   r8   r6   Ú_consolidate_inplace)rs   rK   ZdiffsrL   Zresult2rP   re   r#   r#   r$   Útest_operators_timedelta64­  s|    ýÿ&&ú÷,ÿ

þÿz1TestDataFrameAnalytics.test_operators_timedelta64c                 C   sª   t jddd�}t||dœƒ}| ¡ }t j|jd< |jdd�}t|d  ¡ t jgdd	gd
d�}t 	||¡ |jddd�}tt  
d¡gd t jt  
d¡g ƒ}t 	||¡ d S )Nz1 Dayr¬   r   rÆ   )éþÿÿÿr  F©r(   r½   r¾   r  r4   r)   r&   r   ró   )r©   Útimedelta_ranger	   r  rõ   Úilocro   r   r9   r>   r  )rs   ZtdirK   rL   rP   r#   r#   r$   Ú!test_std_timedelta64_skipna_false  s    ÿ$z8TestDataFrameAnalytics.test_std_timedelta64_skipna_falsec                 C   sZ   t ƒ }| d¡}| d¡}t|tƒs(J ‚t|tƒs6J ‚t|ƒdksFJ ‚t|ƒdksVJ ‚d S )Nr   r)   )r	   r/   r;   r   r=   )rs   Zempty_frameZaxis0Zaxis1r#   r#   r$   Útest_sum_corner  s    

z&TestDataFrameAnalytics.test_sum_cornerzmethod, unit)r/   r   )r0   r)   rW   )NTFc                 C   s‚  g d¢}t ||g|tjgtjtjgdœƒ}t||ƒ|d�}t|||g|dd�}t ||¡ t||ƒ|dd�}t||tjg|d�}t ||¡ t||ƒ|dd�}t|||g|dd�}t ||¡ t|jdd … |ƒ|dd�}t|tjtjg|d�}t ||¡ t |gd	 |gd
 tjgd
  dœƒ}t||ƒ|d
d�}t|ddgd�}t ||¡ t||ƒ|dd�}t|ddgd�}t ||¡ d S )Nr�   ©rW   rÊ   r4   r)   )rW   Ú	min_countrÇ   r   r¬   rÍ   rÆ   r½   r¾   rå   )r	   rC   r†   r7   r   r9   r>   r  )rs   rŽ   rT   rW   ÚidxrK   rL   rP   r#   r#   r$   Útest_sum_prod_nanops#  s*    "&z+TestDataFrameAnalytics.test_sum_prod_nanopsc                 C   s¤   g d¢}t ddgdtjgtjtjgdœƒ}| t¡}| ¡ }tg d¢d|d�}t ||¡ |jdd�}t ||¡ |jdd�}tddtjgd|d�}t ||¡ d S )Nr�   r   )r   r   r   úm8[ns])r6   r5   ©r"  r)   )	r	   rC   r†   r?   r   r/   r   r9   r>   )rs   r#  rK   rœ   rL   rP   r#   r#   r$   Útest_sum_nanops_timedeltaE  s    "
z0TestDataFrameAnalytics.test_sum_nanops_timedeltac                 C   sJ   t g d¢g d¢dœƒ}|jdd�}ttjtjgddgd�}t ||¡ d S )	Nr»   ©r‰   rÍ   rå   )r    Úyr¬   r&  r    r)  rÇ   )r	   r/   r   rC   r†   r9   r>   r
  r#   r#   r$   Útest_sum_nanops_min_countZ  s    z0TestDataFrameAnalytics.test_sum_nanops_min_countc                 C   s6   |j  t¡}t||j|jd�}|tdƒ }| ¡  d S )N©r5   r³   r)   )r   r€   r¤   r	   r5   r³   r   r/   )rs   rX   r   rF   Zdeltasr#   r#   r$   Útest_sum_objecta  s    z&TestDataFrameAnalytics.test_sum_objectc                 C   s"   t  |¡}| d¡ | d¡ d S )Nr)   r   )rC   Úisnanr/   )rs   rX   Úboolsr#   r#   r$   Útest_sum_boolg  s    

z$TestDataFrameAnalytics.test_sum_boolc                 C   sv   t tddd�g d¢dœƒ g d¢¡}tjtdd�� | ¡ }W d   ƒ n1 sP0    Y  td	d
iƒ}t ||¡ d S )NrÄ   r‰   r   rŸ   rÆ   )r   rƒ   r‰   r  r2   r¾   g      @)	r	   r   rµ   r9   r:   r8   r/   r   r>   r
  r#   r#   r$   Útest_sum_mixed_datetimem  s    ÿ&z.TestDataFrameAnalytics.test_sum_mixed_datetimec                 C   s   t jtdd�� |jdd�}W d   ƒ n1 s00    Y  |jddd�}t  |j|j¡ t|jƒt|jƒk spJ ‚t jtdd�� |jdd�}W d   ƒ n1 s 0    Y  |jddd�}t  |j|j¡ |d dk|d	< | d¡}|d	 |d	 j	 ¡ ksüJ ‚d S )
Nr  r2   r   r-   TrV   r)   r½   Úbool)
r9   r:   r8   r   r/   Zassert_index_equalr5   r=   r³   r   )rs   rX   rY   Zthe_meanZthe_sumZmeansr#   r#   r$   Útest_mean_cornerx  s    **
z'TestDataFrameAnalytics.test_mean_cornerc              	   C   s°   t t d¡tddd�tjddd�tjdddd�dœƒ}|jd	d
�}tddiƒ}t	 
||¡ t	 t¡� | ¡ }W d   ƒ n1 s‚0    Y  td|jd dœƒ}t	 
||¡ d S )Nrƒ   ú
2016-01-01r   Ú1DÚ2016r½   r  )r½   r¾   r¿   rï   Tr!  r    ©r)   r¿   )r½   r¿   )r	   rC   r  r   r©   r  Úperiod_ranger   r   r9   r>   r:   r8   rÜ   r
  r#   r#   r$   Útest_mean_datetimelike‹  s    
üÿ&z-TestDataFrameAnalytics.test_mean_datetimelikec                 C   s®   t t d¡tddd�tjddd�dœƒ}|jdd�}td|jd	 |jd
 dœƒ}t	 
||¡ tjdddd�|d< tjtdd�� |jdd� W d   ƒ n1 s 0    Y  d S )Nrƒ   r3  r   r4  r¼   Fr!  r)   )r)   r¾   r6  r5  r½   r  rï   z"mean is not implemented for Periodr2   )r	   rC   r  r   r©   r  r   r   rÜ   r9   r>   r7  r@   rA   rÝ   r
  r#   r#   r$   Ú)test_mean_datetimelike_numeric_only_false¡  s    
ýÿ	z@TestDataFrameAnalytics.test_mean_datetimelike_numeric_only_falsec                 C   sD   t jjddd�}t|dd�}|jdd�}t|ƒ ¡ }t ||¡ d S )NrÓ   )r¬   rÍ   )ÚsizeÚInt64r˜   Tr!  )rC   ra   Úrandintr	   r   r9   r>   )rs   rØ   rK   rL   rP   r#   r#   r$   Ú*test_mean_extensionarray_numeric_only_trueµ  s
    zATestDataFrameAnalytics.test_mean_extensionarray_numeric_only_truec                 C   sZ   t jtdd��8 | d¡ | d¡ | d¡ | d¡ W d   ƒ n1 sL0    Y  d S )Nr§   r2   r)   )r9   r:   r8   ro   rn   r   ru   )rs   rY   r#   r#   r$   Útest_stats_mixed_type½  s    ÿ


z,TestDataFrameAnalytics.test_stats_mixed_typec                 C   s8   t tdƒtdƒd�}t|ƒ}|jdd�d dks4J ‚d S )Nr)   r¬   r+  r-   r   )r	   r<   r   r/   )rs   rK   r.  r#   r#   r$   Útest_sum_boolsÇ  s    z%TestDataFrameAnalytics.test_sum_boolsc           
      C   s¼   |}t j|jdd…< t j|jdd…dd …f< dD ]H}dD ]>}||fD ]0}|j||d�}|jtj||d�}t ||¡ qDq8q0d	}	tj	t
|	d
�� |jdd� W d   ƒ n1 s®0    Y  d S ©NrÍ   r¬   é   r­   r  )TF)r   r)   r&   z)No axis named 2 for object type DataFramer2   r   r-   )rC   r†   r  Úidxminr?   r   r9   r>   r@   rA   rB   ©
rs   rX   rŒ   rF   r(   r'   rK   rL   rP   rÞ   r#   r#   r$   Útest_idxminÏ  s    z"TestDataFrameAnalytics.test_idxminc           
      C   s¼   |}t j|jdd…< t j|jdd…dd …f< dD ]H}dD ]>}||fD ]0}|j||d�}|jtj||d�}t ||¡ qDq8q0d	}	tj	t
|	d
�� |jdd� W d   ƒ n1 s®0    Y  d S r@  )rC   r†   r  Úidxmaxr?   r   r9   r>   r@   rA   rB   rC  r#   r#   r$   Útest_idxmaxÞ  s    z"TestDataFrameAnalytics.test_idxmaxc                 C   sP  t ddd�}tg d¢tdƒd d d… |jdd�dœƒ}| ¡ }tg d	¢g d¢d
�}t ||¡ | ¡ }tg d¢g d¢d
�}t ||¡ t	j
|jd< | ¡ }tg d	¢g d¢d
�}t ||¡ | ¡ }tg d¢g d¢d
�}t ||¡ |d d d… |d< | ¡  | ¡ }tg d¢g d¢d
�}t ||¡ | ¡ }tg d¢g d¢d
�}t ||¡ d S )Nr3  rƒ   r   )r   r   r)   r  T)Údeepr»   )r)   r   r   rÇ   )r   r   r   )r   rƒ   r‰   )r)   r   r   r   rŸ   )r   r   r)   r   )r   r	   r<   r  rE  r   r9   r>   rB  r©   rõ   rÜ   r  ©rs   ZdtirK   rL   rP   r#   r#   r$   Útest_idxmax_mixed_dtypeí  s.    *z.TestDataFrameAnalytics.test_idxmax_mixed_dtypezop, expected_valuerE  r   r‰   rB  rÍ   c                 C   s^   t g d¢g d¢dœdd�}| d¡}t||ƒƒ }t d|itdd	gddd
�d�}t ||¡ d S )N)éd   rJ  rJ  éÈ   rK  rK  )r   r   r   r)   r   r   )ÚIDÚvaluer;  r˜   rL  rM  rJ  rK  )ré   r6   rÇ   )r	   Úgroupbyr7   r
   r9   r  )rs   rž   Zexpected_valuerK   rL   rP   r#   r#   r$   Ú!test_idxmax_idxmin_convert_dtypes  s    þû
þz8TestDataFrameAnalytics.test_idxmax_idxmin_convert_dtypesc                 C   sŒ   t ddd�}t||d d d… dœƒ}| ¡ }tj|jd< | ¡  |jdd�}tg d	¢ƒ}t	 
||¡ |jdd�}tg d
¢ƒ}t	 
||¡ d S )Nr3  rƒ   r   r  )rƒ   r‰   )r   r   r)   r-   )r‰   rƒ   rƒ   )r‰   rƒ   r‰   )r   r	   r  r©   rõ   r  r  rE  r   r9   r>   rB  rH  r#   r#   r$   Ú"test_idxmax_dt64_multicolumn_axis1)  s    z9TestDataFrameAnalytics.test_idxmax_dt64_multicolumn_axis1rE   r]   r^   c                 C   s   t |||dd� d S )NT)rd   )rf   )rs   rE   rc   rY   r#   r#   r$   Útest_any_all?  s    ÿz#TestDataFrameAnalytics.test_any_allc                 C   s$   |  d¡}t|tt|ƒ|dd� d S )NT)rG   )Zfillnar_   r7   rC   )rs   rE   rc   rK   r#   r#   r$   Útest_any_all_bool_frameE  s    
z.TestDataFrameAnalytics.test_any_all_bool_framec                 C   s  t g d¢g d¢g d¢dœg d¢d�}|ddg  d	¡}tg d¢g d¢d�}t ||¡ |ddg jd	d
d�}t ||¡ | d	¡}tg d¢g d¢d�}t ||¡ |jd	d
d�}t ||¡ |jd d� ¡ }|du sØJ ‚|jd d� ¡ }|d
u sôJ ‚|dg jd d� ¡ }|d
u �sJ ‚d S )N)TFF)TTF)TTTr¼   r�   rÇ   r½   r¾   r)   T©r`   r-   Fr¿   )r	   r]   r   r9   r>   r^   Úitemr
  r#   r#   r$   Útest_any_all_extraL  s.    ýú
z)TestDataFrameAnalytics.test_any_all_extrar'   Úbool_agg_funcr(   c                 C   st   t dtjtjdgtjdtjdgtjtjtjdgtjtjdtjggd�}t||ƒ||d�}tg d¢ƒ}t ||¡ d S )Nr)   Tr   Ú5©rš   r&   )TTTT)r	   rC   r†   r7   r   r9   r>   )rs   r'   rV  r(   rK   rL   rP   r#   r#   r$   Útest_any_all_object_dtypem  s    üÿz0TestDataFrameAnalytics.test_any_all_object_dtypec                 C   s\   dt jdt jg}tdƒtdƒtjtjg}t||dœƒ}| d¡}tg d¢ƒ}t 	||¡ d S )Nr)   rƒ   z
1960-02-15z
1960-02-16rÆ   )TTTF)
rC   r†   r   r©   rõ   r	   r]   r   r9   r>   )rs   Z
float_dataZdatetime_datarK   rL   rP   r#   r#   r$   Útest_any_datetime~  s    ü
z(TestDataFrameAnalytics.test_any_datetimec                 C   sŠ   t g d¢g d¢g d¢dœƒ}|jdd�}ttjd�}t ||¡ t g d¢g d¢g d¢g d¢d	œƒ}|jdd�}td
diƒ}t ||¡ d S )Nr»   r(  )NNN)Úcol1Úcol2Úcol3TrS  r˜   )FFT)r[  r\  r]  Úcol4r^  F)r	   r^   r   rC   Úbool_r9   r>   r
  r#   r#   r$   Útest_any_all_bool_onlyŽ  s     ÿüÿ	z-TestDataFrameAnalytics.test_any_all_bool_onlyzfunc, data, expectedr½   rÆ   r�   r¥   zM8[ns]zM8[ns, UTC]r   r%  Úcategoryr¬   r­   c                 C   sæ   t |ƒ}d }tdd„ |jD ƒƒr$t}tj|ddd�� ||ƒ}W d   ƒ n1 sR0    Y  t|tjƒslJ ‚| 	¡ |u s|J ‚tj|ddd��& t
t |ƒ|jƒd d�}W d   ƒ n1 s¸0    Y  t|tjƒsÒJ ‚| 	¡ |u sâJ ‚d S )Nc                 s   s   | ]}t |ƒV  qd S r   r   )Ú.0r    r#   r#   r$   Ú	<genexpr>Þ  rÑ   z>TestDataFrameAnalytics.test_any_all_np_func.<locals>.<genexpr>r§   F©r3   Zcheck_stacklevelr-   )r	   r]   Zdtypesr8   r9   r:   r;   rC   r_  rT  r7   Ú__name__)rs   Úfuncrš   rP   ÚwarnrL   r#   r#   r$   Útest_any_all_np_func¦  s     5ÿ&ÿ4z+TestDataFrameAnalytics.test_any_all_np_funcc                 C   sL   t  tddgd�¡ ¡ }|du s$J ‚t  tddgd�¡ ¡ }|du sHJ ‚d S )Nr   r   r²   TF)rC   r^   r	   rT  r]   )rs   rL   r#   r#   r$   Útest_any_all_objectð  s    z*TestDataFrameAnalytics.test_any_all_objectc                 C   s0  t ddgddgdœƒ t¡}| ¡  tddgƒ|d< |d  d¡|d< | ¡ }|d	dg }t ||¡ |jdd
d�}tddgd	dgd�}t 	||¡ |d	dg jdd
d�}t 	||¡ |jdd d�rÈJ ‚|j
dd
d�}tddgd	dgd�}t 	||¡ |d	dg j
dd
d�}t 	||¡ |j
dd d��s,J ‚d S )Nr“   r   TFrÆ   r¿   ra  rï   r¾   r   )r`   r'   rÇ   )r	   r€   r™   r  r   Z_get_bool_datar9   r  r^   r>   r]   )rs   rK   ÚresrP   r#   r#   r$   Útest_any_all_object_bool_onlyø  s&    z4TestDataFrameAnalytics.test_any_all_object_bool_onlyc              	   C   sœ   t dditjddgddggddgd�d	�}d
}tjt|d��L t t¡�" t	||ƒd dd� W d   ƒ n1 sp0    Y  W d   ƒ n1 sŽ0    Y  d S )Nr½   r)   r¾   r   r   ÚoutÚin)ÚnamesrÇ   z.Must specify 'axis' when aggregating by level.r2   )r'   rç   )
r	   r   Zfrom_productr@   rA   rB   r9   r:   r8   r7   )rs   rŽ   rK   Zxprr#   r#   r$   Ú#test_any_all_level_axis_none_raises  s    ÿþz:TestDataFrameAnalytics.test_any_all_level_axis_none_raisesc                 C   s˜   t g d¢ƒ}t dtjdtjgiƒ}tg d¢ƒ}ttjtjdgƒ}t d ¡�: |j|dd� dD ]}t||ƒ|dd	� q^W d   ƒ n1 sŠ0    Y  d S )
N)r    r    r    r½   r¡   rº   r)   r   )Úlowerr'   )ÚltÚleÚgtÚgeÚeqÚner-   )r	   rC   r†   r   r9   r:   Zclipr7   )rs   rK   Zdf_nanry   Zs_nanrž   r#   r#   r$   Útest_series_broadcasting*  s    z/TestDataFrameAnalytics.test_series_broadcasting)Ire  Ú
__module__Ú__qualname__r@   ÚmarkÚfilterwarningsrt   ÚtdZskip_if_no_scipyrw   r‚   r‹   r�   Úparametrizer�   r«   r¹   rÁ   rÉ   rË   rÎ   rÙ   rß   rà   rê   r   r   r   rC   r†   r¶   r™   r©   rõ   r  r	  r  r  r  r   r$  r'  r*  r,  r/  r0  r2  r8  r9  r=  r>  r?  rD  rF  rI  rO  rP  rQ  rR  rU  rY  rZ  r`  r]   r^   r   r¤   Úparamrh  ri  rk  ro  rw  r#   r#   r#   r$   rg     sH  


=


ÿ





ùþ
ùþ

ùþ

ùþÛþ5
X
 
&þ


!

þúÙþ3
"
rg   c                   @   s†   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zej 	d	d
dg¡ej 	dddg¡e
dœdd„ƒƒZdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚTestDataFrameReductionsc                 C   sÎ   t dtjtjtdƒgiƒ}| ¡ }ttdƒgdgd�}t ||¡ | ¡ }ttdƒgdgd�}t ||¡ t dtjtjgiƒ}| ¡ }ttjgdgd�}t ||¡ | ¡ }ttjgdgd�}t ||¡ d S )Nr“   z
2012-05-01rÇ   )	r	   r©   rõ   r   rk   r   r9   r>   rl   )rs   rK   rj  Úexpr#   r#   r$   Útest_min_max_dt64_with_NaT9  s    z2TestDataFrameReductions.test_min_max_dt64_with_NaTc                 C   sÖ   |}t |tƒrtƒ rt d¡ ttd|d�td|d�gtd|d�tjgdœƒ}|j	ddd	�}t
|jd
 tjgƒ}|j|d jks„J ‚t ||¡ |jddd	�}t
|jd tjgƒ}|j|d jksÆJ ‚t ||¡ d S )NzSGH#37659 OSError raised within tzlocal bc Windows chokes in times before 1970-01-01z2020-01-01 08:00:00rÅ   z1920-02-01 09:00:00z2020-02-01 08:00:00©r   r   r)   Fr&   )r   r   r   )r   r   )r;   r   r   r@   Úskipr	   r   r©   rõ   rk   r   rÜ   r6   r9   r>   rl   )rs   ÚrequestZtz_naive_fixturerÂ   rK   rj  rP   r#   r#   r$   Ú'test_min_max_dt64_with_NaT_skipna_falseP  s(    ÿ

þûÿ	z?TestDataFrameReductions.test_min_max_dt64_with_NaT_skipna_falsec                 C   s”   t dtg ƒiƒ}ttg ƒƒ}|jdd�jtju | ¡ tju ksBJ ‚|jdd�jtju | ¡ tju kshJ ‚t 	|jdd�|¡ t 	|jdd�|¡ d S )Nr    r   r-   r)   )
r	   r   r   rk   r    r©   rõ   rl   r9   r>   )rs   rK   Zexpected_dt_seriesr#   r#   r$   Ú*test_min_max_dt64_api_consistency_with_NaTn  s    &&zBTestDataFrameReductions.test_min_max_dt64_api_consistency_with_NaTc                 C   s�   t dg iƒ}tg td�}t |jdd�j¡t | ¡ ¡ks>J ‚t |jdd�j¡t | ¡ ¡ksdJ ‚t 	|jdd�|¡ t 	|jdd�|¡ d S )Nr    r˜   r   r-   r)   )
r	   r   r¥   rC   r-  rk   r    rl   r9   r>   )rs   rK   Zexpected_float_seriesr#   r#   r$   Ú*test_min_max_dt64_api_consistency_empty_df}  s    &&zBTestDataFrameReductions.test_min_max_dt64_api_consistency_empty_dfÚinitialz2018-10-08 13:36:45+00:00z2018-10-08 13:36:45+03:00rŽ   rk   rl   )rˆ  c                 C   s<   t |ƒ}t|gƒ}t|gƒ}t||ƒdd�}t ||¡ d S )Nr)   r-   )r   r   r	   r7   r9   r>   )rs   rˆ  rŽ   Z
initial_dtrP   rK   rL   r#   r#   r$   Útest_preserve_timezone‰  s
    

z.TestDataFrameReductions.test_preserve_timezonec                 C   sà   t dg d¢ig d¢g d¢gd�}tjtdd�� |jdd	�}W d   ƒ n1 sP0    Y  t dd
dgiddgd�}t ||¡ tjtdd�� |jdd	�}W d   ƒ n1 s®0    Y  t dd
d
giddgd�}t ||¡ d S )Nrš   )FFTFTFT)rá   rá   râ   rá   râ   râ   râ   )r   r)   r   r   r)   r   rƒ   rÇ   zUsing the levelr2   r   ræ   FTrá   râ   )r	   r9   r:   r8   r]   r  r^   )rs   rK   rL   Úexr#   r#   r$   Útest_frame_any_all_with_level–  s    
þþ**z5TestDataFrameReductions.test_frame_any_all_with_levelc                 C   s€   t tddgƒttddƒtddƒgƒdœƒ}|jdd�}tddgd	d
gd�}t ||¡ |jdd�}tddgd�}t ||¡ d S )Nr   ry   r)   Úms)r   Útr-   FTr   r�  )rš   r5   rX  )r	   r   r   r]   r9   r>   r
  r#   r#   r$   Útest_frame_any_with_timedelta©  s    
þÿz5TestDataFrameReductions.test_frame_any_with_timedeltac                 C   sJ   |g d¢ƒ}t jtdd�� |jd d� W d   ƒ n1 s<0    Y  d S )Nr»   r(   r2   r  )r9   r:   r8   rm   )rs   Úframe_or_seriesÚobjr#   r#   r$   Ú'test_reductions_deprecation_skipna_noneº  s    z?TestDataFrameReductions.test_reductions_deprecation_skipna_nonec                 C   sd   |g d¢t  g d¢g d¢g¡d�}tjtdd��  t||ƒdd� W d   ƒ n1 sV0    Y  d S )Nr»   r(  rÇ   rç   r2   r   ræ   )r   Zfrom_arraysr9   r:   r8   r7   )rs   r�  Úreduction_functionsr�  r#   r#   r$   Ú*test_reductions_deprecation_level_argumentÀ  s
    ÿzBTestDataFrameReductions.test_reductions_deprecation_level_argumentc                 C   sd   |dv rt  d¡ |g d¢ƒ}d}t jt|d��  t||ƒd d� W d   ƒ n1 sV0    Y  d S )N)rh   rm   z<Count does not accept skipna. Mad needs a deprecation cycle.r»   zAFor argument "skipna" expected type bool, received type NoneType.r2   r  )r@   rƒ  rA   rB   r7   )rs   r�  r’  r�  rÞ   r#   r#   r$   Ú"test_reductions_skipna_none_raisesÊ  s    
z:TestDataFrameReductions.test_reductions_skipna_none_raisesN)re  rx  ry  r�  r…  r†  r‡  r@   rz  r}  r¦   r‰  r‹  rŽ  r‘  r“  r”  r#   r#   r#   r$   r  8  s   þ
r  c                   @   sP   e Zd Zej dddg¡dd„ ƒZdd„ Zej ddd	g¡d
d„ ƒZdd„ Z	dS )ÚTestNuisanceColumnsrŽ   r]   r^   c                 C   s€  t ddgddd�}| ¡ }tjtdd�� t||ƒƒ  W d   ƒ n1 sJ0    Y  tjtdd�� tt|ƒ|ƒ W d   ƒ n1 s†0    Y  tjtdd��  t||ƒdd	� W d   ƒ n1 sÄ0    Y  tjt	d
d��  t||ƒd d	�}W d   ƒ n1 �s0    Y  t g t
g ƒtd�}t ||¡ tjt	d
dd��" tt|ƒ|dd�}W d   ƒ n1 �sf0    Y  t ||¡ d S )Nr   r)   ra  r½   )r6   ré   údoes not support reductionr2   FrS  r§   r4   rd  r-   )r   Úto_framer@   rA   rÝ   r7   rC   r9   r:   r8   r
   r1  r>   )rs   rŽ   ÚserrK   rL   rP   r#   r#   r$   Ú.test_any_all_categorical_dtype_nuisance_columnÔ  s&    *,.ÿ0ÿ2zBTestNuisanceColumns.test_any_all_categorical_dtype_nuisance_columnc                 C   sˆ  t dtg d¢ƒiƒ}|d }tjtdd�� | ¡  W d   ƒ n1 sH0    Y  tjtdd�� |jdd� W d   ƒ n1 s‚0    Y  tjtdd�� | ¡ }W d   ƒ n1 s¸0    Y  t	g t
g ƒtjd�}t ||¡ |d  t¡|d	< tjtdd�� |jdd� W d   ƒ n1 �s&0    Y  tjtdd�� | ¡ }W d   ƒ n1 �s^0    Y  t	d
gd	gd�}t ||¡ d S )Nr½   )r)   r   r   r   rƒ   r–  r2   Fr!  r§   r4   r¾   r¡   rÇ   )r	   r   r@   rA   rÝ   r   r9   r:   r8   r   r
   rC   rÊ   r>   r€   r¤   )rs   rK   r˜  rL   rP   r#   r#   r$   Ú-test_median_categorical_dtype_nuisance_columnó  s*    &*ÿ&,ÿ(zATestNuisanceColumns.test_median_categorical_dtype_nuisance_columnrk   rl   c                 C   sT  t g d¢dd�}t|ƒ}| d¡}tjtdd�� t||ƒƒ  W d   ƒ n1 sR0    Y  tjtdd�� tt|ƒ|ƒ W d   ƒ n1 sŽ0    Y  tjtdd��  t||ƒdd� W d   ƒ n1 sÌ0    Y  tj	t
dd�� t||ƒƒ }W d   ƒ n1 �s0    Y  tg tg ƒtjd	�}t ||¡ tj	t
ddd
�� tt|ƒ|ƒ}W d   ƒ n1 �sh0    Y  t ||¡ |d  t¡|d< tj	t
dd�� t||ƒƒ }W d   ƒ n1 �sÂ0    Y  |dk�rètdgdgd�}ntdgdgd�}t ||¡ tj	t
ddd
�� tt|ƒ|ƒ}W d   ƒ n1 �s:0    Y  t ||¡ d S )N)r   r   r‘   r   F)Zorderedr½   zis not ordered for operationr2   r!  r§   r4   rd  r¾   rk   r   rÇ   r‘   )r   r   r—  r@   rA   rÝ   r7   rC   r9   r:   r8   r
   rÊ   r>   r€   r™   )rs   rŽ   Úcatr˜  rK   rL   rP   r#   r#   r$   Ú:test_min_max_categorical_dtype_non_ordered_nuisance_column  sD    
*,.ÿ,ÿ.ÿ,
ÿ.zNTestNuisanceColumns.test_min_max_categorical_dtype_non_ordered_nuisance_columnc                 C   sÜ   t g d¢g d¢dœtd�}tjtdd�� | ¡ }W d   ƒ n1 sF0    Y  tdgdgd	�}t ||¡ |d  t	¡d
 |d< tjtdd�� | ¡ }W d   ƒ n1 s®0    Y  tddgddgd	�}t ||¡ d S )Nr—   r�   rÆ   r˜   r§   r2   r    r½   rÇ   r‰   r¿   g      @)
r	   r™   r9   r:   r8   r   r   r>   r€   r¤   r
  r#   r#   r$   Ú3test_reduction_object_block_splits_nuisance_columnsF  s    ÿ&ÿ&zGTestNuisanceColumns.test_reduction_object_block_splits_nuisance_columnsN)
re  rx  ry  r@   rz  r}  r™  rš  rœ  r�  r#   r#   r#   r$   r•  Ó  s   
#
/r•  c                  C   sÀ   t  d¡ t j¡ d¡ dd¡} d| d< t| ƒ}|jdd�}tt	j
d	d
�t	jgƒ}t ||¡ |jddd�}t ||¡ |jddd�}tt	j
dd
�t	j
dd
�t	j
dd
�t	jgƒ}t ||¡ d S )Nró   zm8[s]r‰   r   ZNat)r  r  Fr  rë   r  r   r&   r)   rÍ   rô   )rC   r  r€   r  ÚviewZreshaper	   r/   r   r©   r  rõ   r9   r>   )rØ   rK   rL   rP   r#   r#   r$   Ú!test_sum_timedelta64_skipna_false]  s"     


üÿrŸ  c                  C   sP   t ddggtdƒd�} |  ddi¡} |  ¡ }tddgddgd�}t ||¡ d S )Nr   r)   Úabr²   r   r;  rÇ   )r	   Úlistr€   r/   r   r9   r>   )rK   rL   rP   r#   r#   r$   Ú!test_mixed_frame_with_integer_sumw  s
    r¢  rW   )TFNrŽ   rk   rl   c                 C   sn   t  d¡}t|jd |jgt ¡ d�}td|iƒ}t|| ƒ|d�}tt|| ƒgt	dgdd�d�}t
 ||¡ d S )Nr  r˜   r;  r!  r™   rÇ   )rC   Ziinfor   rl   rk   r©   Z
Int64Dtyper	   r7   r
   r9   r>   )rŽ   rW   Z
int64_infor˜  rK   rL   rP   r#   r#   r$   Útest_minmax_extensionarray€  s    
ÿr£  c                 C   s  t tj dd¡ tj¡ƒ}| | ¡}| ¡ }| ¡ }t ||¡ |jdd�}|jdd�}t ||¡ t	j
|jd d d…df< | ¡ }| ¡ }|jdd d…df  ¡ |d< t ||¡ |jdd�}|jdd�}|jjg d¢d d d…f  ¡ |d d d…< t ||¡ d S )NrJ  r‰   r)   r-   r   )r   r   rƒ   )r	   rC   ra   rb   r€   r  rm   r9   r>   r©   ÚNAr  r·   rÜ   ©Zany_signed_int_ea_dtyperK   rœ   rL   rP   r#   r#   r$   Útest_mad_nullable_integerŽ  s"    
(r¦  z GH#42895 caused by lack of 2D EA)Úreasonc                 C   sŠ   t tj dd¡ tj¡ƒ}| | ¡}tj|jd d …df< tj	tjgt
|ƒ | d�|jd d …df< | ¡ }| ¡ }tj|d< t ||¡ d S )NrJ  r‰   r)   r˜   )r	   rC   ra   rb   r€   r  r©   r¤  r  r¶   r=   rm   r9   r>   r¥  r#   r#   r$   Ú test_mad_nullable_integer_all_na©  s    
(
r¨  rÚ   )rl   rk   r/   r   r   c                 C   sœ   t tjdd�tjdd�gddgdœƒ}| ¡ }t t¡�  t|| ƒdd�}W d   ƒ n1 s^0    Y  t ||¡ t|j	dd�| ƒd	d
�}t ||¡ d S )Nrå   )Úhoursé   g333333(@gš™™™™™*@r‚  r   ræ   Fr!  )
r	   r©   r  r  r9   r:   r8   r7   r  rN  )rÚ   rK   rP   rL   r#   r#   r$   Ú*test_groupby_regular_arithmetic_equivalent¸  s     ÿ.r«  Úts_valuez
2000-01-01c                 C   st   t dgdgdg| gdœƒ}tjtdd�� | ¡ }W d   ƒ n1 sF0    Y  tg d¢tdƒd	�}t ||¡ d S )
Nr)   çš™™™™™ñ?r“   r¢   zDropping of nuisancer2   )r)   r­  r“   ÚabcrÇ   )r	   r9   r:   r8   r/   r   r¡  r>   )r¬  rK   rL   rP   r#   r#   r$   Ú.test_frame_mixed_numeric_object_with_timestampÈ  s
    &r¯  c                  C   s~   t g d¢ƒ} | jdddd�}tdgƒ}t ||¡ t d¡}tjt	|d��  | j
dddd� W d   ƒ n1 sp0    Y  d S )	N)r)   r   Tr   r)   F)r'   r"  rW   r   z2unsupported operand type(s) for +: 'int' and 'str'r2   )r	   r0   r   r9   r>   ÚreÚescaper@   rA   rÝ   r/   )rK   rL   rP   rÞ   r#   r#   r$   Ú$test_prod_sum_min_count_mixed_objectÒ  s    

r²  )rk   rl   r   r   ru   rv   c                 C   s²   t tj dd¡ƒ}t|| ƒ}d| › d�}tjt|d�� |d d�}W d   ƒ n1 sV0    Y  t d ¡� |ƒ }W d   ƒ n1 s†0    Y  t ||¡ t ||dd�¡ d S )Nr‰   zscalar z over the entire DataFramer2   r-   r   )	r	   rC   ra   rb   r7   r9   r:   r8   r>   )rŽ   rK   rÚ   rÞ   rj  rP   r#   r#   r$   Ú$test_reduction_axis_none_deprecationß  s    
($r³  )TTFr   r   N)T)T)F);Údatetimer   Údecimalr   r°  Zdateutil.tzr   ÚnumpyrC   r@   Zpandas.compatr   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsr|  Zpandas.core.dtypes.commonr   Zpandasr©   r   r	   r
   r   r   r   r   r   r   r   r   Zpandas._testingZ_testingr9   Zpandas.core.algorithmsÚcorerz   Zpandas.core.nanopsrÖ   rU   r[   r_   rf   rg   r  r•  rŸ  r¢  rz  r}  r£  r¦  Zxfailr¨  r«  rõ   r¯  r²  r³  r#   r#   r#   r$   Ú<module>   sh   4      ÷
o

> ÿ
        :  	


	