U
    ¾mœd÷  ã                   @   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 d dlmZ  d dl!m"Z"m#Z# d9dd„Z$G dd„ dƒZ%G dd„ dƒZ&G dd„ dƒZ'dd„ Z(dd„ Z)e	j* +dd	d
dg¡e	j* +dddg¡dd„ ƒƒZ,e	j* +ded ƒej-g¡d!d"„ ƒZ.d#d$„ Z/e	j* +dddd%d&d'd(g¡e	j* +dd	d
g¡d)d*„ ƒƒZ0e	j* +d+d,d-d.d/d0d(dd%d&dd1d2d3d'd4d5d6g¡d7d8„ ƒZ1dS ):é    )Ú	timedelta)ÚDecimalN)Útzlocal)Úis_platform_windows©Úis_categorical_dtype)
ÚCategoricalÚ	DataFrameÚIndexÚSeriesÚ	TimestampÚ
date_rangeÚisnaÚnotnaÚto_datetimeÚto_timedelta)Ú
algorithmsÚnanopsTFçñhãˆµøä>ç:Œ0âŽyE>c	              	      sH  t || ƒ}	|ržtdtddd�iƒ}
t d¡� t |
| ƒƒ }W 5 Q R X t|tƒsRt‚tt	|
ƒƒ|
d< t d¡� t |
| ƒƒ }W 5 Q R X t|tƒs’t‚t	|ƒsžt‚|�r‡ 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k�rj|j|dd�}tj||d
||d� |�r˜|jj}||jk�sˆt‚||jk�s˜t‚tjtdd�� |	dd� W 5 Q R X |�rD|tj }t || ƒd	d�}t || ƒdd�}| dk�rD| dk�rd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
    Úbz1/1/2001é   ©ÚperiodsNÚac                    s
   ˆ | j ƒS ©N©Úvalues©Úx©Úalternative© ú[/home/sam/Atlas/atlas_env/lib/python3.8/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©Úmatchr.   ©ÚindexÚdtype)Úgetattrr	   r   ÚtmÚassert_produces_warningÚ
isinstancer   ÚAssertionErrorÚrangeÚlenZ_make_skipna_wrapperÚassert_series_equalÚapplyr   r4   ÚpytestÚraisesÚ
ValueErrorÚnpÚNaNr3   )Úopnamer!   ÚframeÚ
has_skipnar)   Úcheck_datesr*   r+   Úskipna_alternativeÚfÚdfÚresultr$   Úskipna_wrapperÚresult0Úresult1ÚexpectedZ	lcd_dtypeÚall_naÚr0Úr1Úunitr"   r    r#   Úassert_stat_op_calc"   s€    %
    ÿü

û
    ÿ

rS   c                -   @   s¶
  e Zd Zej dddg¡ej dddddd	d
dddddejdejd�ejdejd�g¡dd„ ƒƒZ	ej dddg¡ej dddddd	d
ddddejdejd�ejdejd�g¡dd„ ƒƒZ
dd„ Zejdd„ ƒZdd„ Zej dddddddd
dg¡ej ded d!d"gddd#gd$d%d&gd'œd(d)d*gd+d,�eejd-gejd.gejd/gd0œed1�g¡d2d3„ ƒƒZej d4ddddddg¡d5d6„ ƒZd7d8„ Zd9d:„ Zej d;d<d=g¡d>d?„ ƒZej d;d<d=g¡d@dA„ ƒZdBdC„ ZdDdE„ Zej dFdddg¡dGdH„ ƒZdIdJ„ Zej dKdLdMgdNgdOgdPgedPgdPgdQ�edRgƒedSgƒdTœfdUdMgdNgejgejejged1�eejgdPgdQ�e j!gee j!gƒdTœfdLdVdWejejgdVdWejejgdejejejgedPejejejgdPgdQ�edRdXdXdXgƒedSdYdYdYgƒddd-d.gdZœfdUdVdWejejgdVdWejejgdejejejgeejdPejejgdPgdQ�edXdRdXdXgƒedYdSdYdYgƒddd-d.gdZœfg¡d[d\„ ƒZ"d]d^„ Z#d_d`„ Z$dadb„ Z%dcdd„ Z&ej dedfdge j!dhgd/e j!g g¡didj„ ƒZ'dkdl„ Z(ej dme) *d¡e) +d¡e)j,de-d1�e)j,de.d1�e)j+ddndo�e) /d¡g¡dpdq„ ƒZ0ej drdsdtg¡ej dud<dLdUg¡dvdw„ ƒƒZ1dxdy„ Z2dzd{„ Z3ej d|d}d~dg¡ej d€dd-d�œd‚dƒej4gfdd.d�œej4ej4ej4gfddUd„œd‚dƒej4gfg¡d…d†„ ƒƒZ5ej d|d}d~dg¡ej d€dd-d�œd‡dˆej4gfdd.d�œej4ej4ej4gfddUd„œd‡dˆej4gfg¡d‰dŠ„ ƒƒZ6d‹dŒ„ Z7d�dŽ„ Z8d�d�„ Z9d‘d’„ Z:d“d”„ Z;d•d–„ Z<d—d˜„ Z=d™dš„ Z>d›dœ„ Z?ej d�dLdUg¡ej dddg¡dždŸ„ ƒƒZ@ej dudLdUg¡d d¡„ ƒZAd¢d£„ ZBej d�dLdUg¡ej dddg¡d¤d¥„ ƒƒZCej dudLdUg¡d¦d§„ ƒZDd¨d©„ ZEdªd«„ ZFej d¬d­dd/gfd®dd¯gfg¡d°d±„ ƒZGd²d³„ ZHej dd´dµg¡ej dddg¡ej d¶dUdLg¡d·d¸„ ƒƒƒZIej dd´dµg¡ej dddg¡d¹dº„ ƒƒZJej dd´dµg¡d»d¼„ ƒZKd½d¾„ ZLej dddg¡ej d¿d´dµg¡ej d�dLdUg¡dÀdÁ„ ƒƒƒZMej NdÂ¡dÃdÄ„ ƒZOdÅdÆ„ ZPej dÇejQi dUfejRi dLfejQdÈg idUfejRdÈg idLfejQdÈdUdUgidUfejRdÈdUdUgidUfejQdÈdLdUgidLfejRdÈdLdUgidUfejQdÈdLdLgidLfejRdÈdLdLgidLfejQdUgdUgdÉœdUfejRdUgdUgdÉœdUfejQdUdUgdUdLgdÉœdLfejRdUdUgdUdLgdÉœdUfejRdÈeSd#dOgdÊd1�idUfejQdÈeSd#dOgdÊd1�idLfejRdÈeSddge-d1�idUfejQdÈeSddge-d1�idLfe ejRdÈeSddgdËd1�idU¡e ejRdÈeSddgdÌd1�idU¡e ejQdÈeSddgdËd1�idL¡e ejQdÈeSddgdÌd1�idL¡e ejRdÈeSdd-gdËd1�idL¡e ejRdÈeSdd-gdÌd1�idL¡e ejQdÈeSdd-gdËd1�idL¡e ejQdÈeSdd-gdÌd1�idL¡e ejRdÈeSddgdÍd1�idU¡e ejQdÈeSddgdÍd1�idL¡e ejRdÈeSdd-gdÍd1�idL¡e ejQdÈeSdd-gdÍd1�idL¡ejRdÈeSddgdÎd1�idLfejQdÈeSddgdÎd1�idUfejRdÈeSdd-gdÎd1�idLfejQdÈeSdd-gdÎd1�idUfe ejReSdÏdÐgdËd1�eSdÏdÐgdÍd1�dÉœdL¡g#¡dÑdÒ„ ƒZTdÓdÔ„ ZUdÕdÖ„ ZVd×dØ„ ZWd<S )ÙÚTestDataFrameAnalyticsr&   r   r(   rC   Úcountr-   ÚmeanÚproductÚmedianÚminÚmaxÚnuniqueÚvarÚstdÚsemÚskew)ZmarksÚkurtc              	   C   s†   |dkr|dks|dkr*t ||ƒ|d� n>d dddd	d
g¡}tjt|d�� t ||ƒ|d� W 5 Q R X |dkr‚t ||ƒ|dd� d S )N)r-   rY   rZ   r   )rU   r[   r,   ú|úCould not convertúcould not convertú"can't multiply sequence by non-intúunsupported operand typeú"not supported between instances ofr0   r[   T©r&   Únumeric_only)r5   Újoinr>   r?   Ú	TypeError)ÚselfÚfloat_string_framer&   rC   Úmsgr"   r"   r#   Ú#test_stat_op_api_float_string_frame“   s    ûÿ	z:TestDataFrameAnalytics.test_stat_op_api_float_string_framec                 C   s   t ||ƒ|dd� d S )NFrg   ©r5   )rk   Úfloat_framer&   rC   r"   r"   r#   Útest_stat_op_api_float_frame»   s    z3TestDataFrameAnalytics.test_stat_op_api_float_framec                 C   sÌ   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||dddd� d S )Nc                 S   s   t | ƒ ¡ S r   )r   r-   ©Úsr"   r"   r#   rU   Ñ   s    z7TestDataFrameAnalytics.test_stat_op_calc.<locals>.countc                 S   s   t t |  ¡ ¡ƒS r   )r;   r   Zunique1dÚdropnarr   r"   r"   r#   r[   Ô   s    z9TestDataFrameAnalytics.test_stat_op_calc.<locals>.nuniquec                 S   s   t j| dd�S ©Nr(   ©Zddof)rA   r\   r   r"   r"   r#   r\   ×   s    z5TestDataFrameAnalytics.test_stat_op_calc.<locals>.varc                 S   s   t j| dd�S ru   )rA   r]   r   r"   r"   r#   r]   Ú   s    z5TestDataFrameAnalytics.test_stat_op_calc.<locals>.stdc                 S   s   t j| dd�t  t| ƒ¡ S ru   )rA   r]   Úsqrtr;   r   r"   r"   r#   r^   Ý   s    z5TestDataFrameAnalytics.test_stat_op_calc.<locals>.semr[   FT)rE   r)   rF   r-   Úfloat32gü©ñÒMbP?)r)   r*   )rG   rV   ©rF   rW   r\   r]   r^   rU   )rS   rA   r-   ÚastypeZnansumrV   r.   Znanprod)rk   Úfloat_frame_with_naZmixed_float_framerU   r[   r\   r]   r^   r"   r"   r#   Útest_stat_op_calcÐ   sX    úû   ÿ   ÿú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   )r_   é   F©Úbias)Úscipy.statsr_   r;   rA   Únan)r   r_   r"   r"   r#   Úskewness
  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;   rA   r�   )r   rƒ   r"   r"   r#   r`     s    zDTestDataFrameAnalytics.test_stat_op_calc_skew_kurtosis.<locals>.kurtr_   r`   ©rS   )rk   r{   r‚   r`   r"   r"   r#   Útest_stat_op_calc_skew_kurtosis  s    z6TestDataFrameAnalytics.test_stat_op_calc_skew_kurtosisc                 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   ÚanyrA   r�   rX   r   r"   r"   r#   r$     s    z3TestDataFrameAnalytics.test_median.<locals>.wrapperrX   Try   F)r)   rF   r…   )rk   r{   Ú	int_framer$   r"   r"   r#   Útest_median  s        ÿz"TestDataFrameAnalytics.test_medianÚmethodr.   rI   gÈƒw@Ba@¿gCùVÞúZ¿g
?ZÁ½.F?g        gê94­³c4?gÏ@ð}�jX?gþïœÕN¿©r   r   ÚcÚfooÚbarÚbazÚOr2   r   r}   r„   ©r   r(   r   ©r4   c                 C   sN   |j jtjkst‚t||ƒ|d�}t| d¡|ƒ|d� t¡}t 	||¡ d S )Nr,   Zf8)
r   r4   rA   Zobject_r9   r5   rz   Úobjectr6   r<   )rk   rŠ   rI   r&   rJ   rN   r"   r"   r#   Ú%test_stat_operators_attempt_obj_array&  s    z<TestDataFrameAnalytics.test_stat_operators_attempt_obj_arrayÚopc              
   C   s°   t ddddgddddgd	d
ddgdœƒ}d dddg¡}tjt|d�� t||ƒƒ  W 5 Q R X t dd¡�< d dddg¡}tjt|d�� t||ƒƒ  W 5 Q R X W 5 Q R X d S )Nr(   r   r}   r„   ç      ð?ç       @g      @ç      @r   r   rŒ   Úd)ÚintÚfloatÚstrra   rb   rc   rd   r0   Úuse_bottleneckF)r	   ri   r>   r?   rj   r5   ÚpdÚoption_context)rk   r•   rI   rm   r"   r"   r#   Útest_mixed_opsG  s.    


ýÿýÿýÿz%TestDataFrameAnalytics.test_mixed_opsc                 C   sˆ   t dddddgdddddgdd	d
ddgdœƒ}|jdddgd� |jdd�}t |jtjdddgtd�¡ |j	jdd�}t 
||¡ d S )NTFé
   é   é   é(   é2   r   r   rŒ   r™   Úe)Ú	bool_dataÚint_dataÚstring_datar§   r¨   r©   ©Úcolumnsr   r,   r   é–   Zabcder’   r(   )r	   Úreindexr-   r6   Zassert_numpy_array_equalr   rA   Úarrayr“   ÚTr<   )rk   rI   ÚtestZaltr"   r"   r#   Útest_reduce_mixed_framef  s    ýÿ ÿz.TestDataFrameAnalytics.test_reduce_mixed_framec                 C   s¦   t dddgdddg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 )
Nr(   r   r}   ©ÚAÚBÚCF©rt   r,   r‘   )r&   rt   )r	   rA   r�   r6   r<   r[   r   ©rk   rI   r"   r"   r#   Útest_nuniquew  s    $
 ÿ  ÿz#TestDataFrameAnalytics.test_nuniqueÚtzNÚUTCc                 C   sT   t ddgtd|d�gd dœƒ}| ¡ }tdtd|d�gddgd	�}t ||¡ d S )
Nr(   Ú2000©r¹   r   ©r³   r´   r–   r³   r´   ©r3   ©r	   r   rV   r   r6   r<   ©rk   r¹   rI   rJ   rN   r"   r"   r#   Ú test_mean_mixed_datetime_numeric‚  s     z7TestDataFrameAnalytics.test_mean_mixed_datetime_numericc                 C   sJ   t dtd|d�gd iƒ}| ¡ }ttd|d�gdgd�}t ||¡ d S )Nr³   r»   r¼   r   r¾   r¿   rÀ   r"   r"   r#   Útest_mean_includes_datetimesŠ  s    z3TestDataFrameAnalytics.test_mean_includes_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 5 Q R X |ddg  ¡ }tddgddgtd�}t 	||¡ d S )Nr   z628.00r²   r(   z383.00r}   z651.00z575.00r„   z1114.00ZTESTz241.00z572.00z609.00z820.00é   z1223.00re   r0   r³   rµ   gš™™™™™@gÍÌÌÌÌL…@r2   )
r   r	   r>   r?   rj   rV   r   r“   r6   r<   )rk   r™   rI   rJ   rN   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€t‚t d
d¡�$ tj	|dd	�}|dk  
¡ r¬t‚W 5 Q R X d S )Nr„   rv   c                 S   s   | j dd�S ©Nr„   rv   )r]   r   r"   r"   r#   Ú<lambda>°  ó    z5TestDataFrameAnalytics.test_var_std.<locals>.<lambda>c                 S   s   | j dd�S rÅ   )r\   r   r"   r"   r#   rÆ   ´  rÇ   ©r(   éè  rÉ   r   r,   r�   F)r]   r=   r6   Úassert_almost_equalr\   rA   ÚrepeatÚrandomr   Znanvarr‡   r9   rž   rŸ   ©rk   Zdatetime_framerJ   rN   Úarrr"   r"   r#   Útest_var_std®  s    z#TestDataFrameAnalytics.test_var_stdÚmethc              	   C   s8  t tj dd¡dddgd�}| dti¡}d|jd< t tj dd¡dddgd�}| dti¡}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 5 Q R X d}t
jt|d�� t||ƒd
dd� W 5 Q R X d S )NrÃ   r}   r�   rŽ   r�   rª   Ú100)r   r�   r   r(   Trg   r,   z6unsupported operand type\(s\) for -: 'float' and 'str'r0   Fz&could not convert string to float: 'a')r	   rA   rÌ   Úrandnrz   r“   Úlocr5   r6   r<   r>   r?   rj   )rk   rÐ   Zdf1Údf2rJ   rN   rm   r"   r"   r#   Útest_numeric_only_flag¿  s$    

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  	¡ rZt
‚t d	d
¡�$ tj|dd�}|dk  	¡ r†t
‚W 5 Q R X d S )Nr„   rv   c                 S   s   | j dd�t t| ƒ¡ S rÅ   )r]   rA   rw   r;   r   r"   r"   r#   rÆ   à  rÇ   z1TestDataFrameAnalytics.test_sem.<locals>.<lambda>rÈ   rÉ   r   r,   r�   F)r^   r=   r6   rÊ   rA   rË   rÌ   r   Znansemr‡   r9   rž   rŸ   rÍ   r"   r"   r#   Útest_semÞ  s    zTestDataFrameAnalytics.test_semzdropna, expectedTé   g      $@r–   r   )Ú
categoriesú2000-1-2ú1 days)r³   r´   rµ   ÚDÚEÚFÚGFé   é	   ÚNaTr�   )ÚHÚIÚJÚKÚLÚMÚNc                 C   sü   t ddddg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dd	ddgƒtd
dddgƒddddgddddgddtjtjgtdtjdtjgƒtd	d	ddgƒtd
dd
dgƒtjddd�dœƒ}|t| ¡ ƒ j	|d�}t |ƒ}t
 ||¡ d S )Nr×   é   é   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	   rA   r�   r   r   r   ÚarangeÚsortedÚkeysÚmoder6   Úassert_frame_equal)rk   rt   rN   rI   rJ   r"   r"   r#   Útest_mode_dropnaë  s(    6


òÿz'TestDataFrameAnalytics.test_mode_dropnac              	   C   sp   t dtjtjddgiƒ}t ddtjgiƒ}t t¡�& |jdd�}|jdd�jdd�}W 5 Q R X t 	||¡ d S )Nr³   r   Fr¶   )ZbyT)Zdrop)
r	   rA   r�   r6   r7   ÚUserWarningrï   Zsort_valuesZreset_indexrð   )rk   rI   rN   rJ   r"   r"   r#   Útest_mode_sortwarning8  s    z,TestDataFrameAnalytics.test_mode_sortwarningc                 C   sD   t g ddgd�}| ¡ }t g ddgtg tjd�d�}t ||¡ d S )Nr   r   rª   r’   ©r«   r3   )r	   rï   r
   rA   rë   r6   rð   ©rk   rI   rJ   rN   r"   r"   r#   Útest_mode_empty_dfE  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sxt‚|d |jd ksŽt‚|jdd�}||jd k ¡ s°t‚| ¡ }|d |jd ksÎt‚|d |jd ksät‚|jdd�}||d
 k ¡ �st‚| 	¡ }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
 ||¡ |jddd �}tdddgddd!g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°t‚|d' |d&  |d*< | ¡  |d( jd)k�sàt‚|d* jd)k�sôt‚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¾   Trg   r   Z20130102r   Z20130105)ÚtimeÚtime2rÿ   rþ   Zoff1útimedelta64[ns]Zoff2)r	   r   r   r   rY   rÓ   r9   ÚallrZ   Úabsr6   rð   Úcopyr   rž   Ú	Timedeltar«   r<   r4   Ú_consolidate_inplace)rk   rI   ZdiffsrJ   Zresult2rN   Úmixedr"   r"   r#   Útest_operators_timedelta64K  s|    ýÿ&&ú÷ ÿ

þÿz1TestDataFrameAnalytics.test_operators_timedelta64c                 C   s¦   t jddd�}t||dœd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½   T©r  )éþÿÿÿrü   F©r'   r³   r´   r   r2   r(   r%   r   rß   )
rž   Útimedelta_ranger	   rá   Úilocr]   r   r6   r<   r  )rk   ZtdirI   rJ   rN   r"   r"   r#   Ú!test_std_timedelta64_skipna_false¢  s      ÿ$z8TestDataFrameAnalytics.test_std_timedelta64_skipna_falser   z
2022-01-01z
2022-01-02z
2022-01-03c           	      C   sš   |r4|rt dd„ |D ƒƒr4tjjdd�}|j |¡ tdt|ƒiƒ}|j|d�}|rft dd„ |D ƒƒrzt	dt
jidd	�}nt	dd
idd	�}t ||¡ d S )Nc                 s   s   | ]}|t jkV  qd S r   ©rž   rá   ©Ú.0Úvaluer"   r"   r#   Ú	<genexpr>º  s     zFTestDataFrameAnalytics.test_std_datetime64_with_nat.<locals>.<genexpr>z=GH#51446: Incorrect type inference on NaT in reduction result©Úreasonr   r
  c                 s   s   | ]}|t jkV  qd S r   r  r  r"   r"   r#   r  Â  s     r   r’   l     ž"R: )r  r>   ÚmarkÚxfailÚnodeÚ
add_markerr	   r   r]   r   rž   rá   r6   r<   )	rk   r   r'   Úusing_array_managerÚrequestr  rI   rJ   rN   r"   r"   r#   Útest_std_datetime64_with_nat²  s    ÿÿÿz3TestDataFrameAnalytics.test_std_datetime64_with_natc                 C   sZ   t ƒ }| d¡}| d¡}t|tƒs(t‚t|tƒs6t‚t|ƒdksFt‚t|ƒdksVt‚d S )Nr   r(   )r	   r-   r8   r   r9   r;   )rk   Zempty_frameZaxis0Zaxis1r"   r"   r#   Útest_sum_cornerÉ  s    

z&TestDataFrameAnalytics.test_sum_cornerr3   rç   )rø   c                 C   s\   t dg|d�}t||ƒdd�}|dkr,d}n|dkr:d}nd	}tg ||d
�}t ||¡ d S )Nr   rô   r(   r,   )r‡   r  ÚboolrU   rë   r“   r2   )r	   r5   r   r6   r<   )rk   Úall_reductionsr3   r  rI   rJ   Zexpected_dtyperN   r"   r"   r#   Útest_axis_1_emptyÓ  s    z(TestDataFrameAnalytics.test_axis_1_emptyzmethod, unit)r-   r   )r.   r(   rh   c                 C   s„  dddg}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   r   rŒ   r‹   ©rh   Úfloat64r2   r(   )rh   Ú	min_countr¾   r   r¡   rÃ   r½   r³   r´   é   )r	   rA   r�   r5   r   r6   r<   r  )rk   rŠ   rR   rh   ÚidxrI   rJ   rN   r"   r"   r#   Útest_sum_prod_nanopsê  s*    
"&z+TestDataFrameAnalytics.test_sum_prod_nanopsc                 C   s¨   dddg}t ddgdtjgtjtjgdœƒ}| t¡}| ¡ }tdddg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]©r4   r3   ©r"  r(   )	r	   rA   r�   r=   r   r-   r   r6   r<   )rk   r$  rI   rÔ   rJ   rN   r"   r"   r#   Útest_sum_nanops_timedelta  s    
"
z0TestDataFrameAnalytics.test_sum_nanops_timedeltac                 C   sN   t dddgdddgdœƒ}|jdd	�}ttjtjgd
dgd�}t ||¡ d S )Nr(   r   r}   r„   rÃ   r#  )r   Úyr¡   r(  r   r*  r¾   )r	   r-   r   rA   r�   r6   r<   rõ   r"   r"   r#   Útest_sum_nanops_min_count!  s    z0TestDataFrameAnalytics.test_sum_nanops_min_countÚ
float_typeZfloat16rx   r!  zkwargs, expected_result)r&   r"  gš™™™™™	@g333333@r%   c                 C   sJ   t dddgddtjgdœ|d�}|jf |Ž}t|ƒ |¡}t ||¡ d S )Nr–   gffffff@çš™™™™™@gš™™™™™@r}   ©r   r   r’   )r	   rA   r�   r-   r   rz   r6   r<   ©rk   r,  ÚkwargsZexpected_resultrI   rJ   rN   r"   r"   r#   Útest_sum_nanops_dtype_min_count(  s     z6TestDataFrameAnalytics.test_sum_nanops_dtype_min_countr—   r˜   c                 C   sJ   t dddgddtjgdœ|d�}|jf |Ž}t|ƒ |¡}t ||¡ d S )Nr–   r—   r-  r.  r’   )r	   rA   r�   r.   r   rz   r6   r<   r/  r"   r"   r#   Ú test_prod_nanops_dtype_min_count8  s     ÿz7TestDataFrameAnalytics.test_prod_nanops_dtype_min_countc                 C   s6   |j  t¡}t||j|jd�}|tdƒ }| ¡  d S )N©r3   r«   r(   )r   rz   rš   r	   r3   r«   r   r-   )rk   rp   r   rD   Zdeltasr"   r"   r#   Útest_sum_objectJ  s    z&TestDataFrameAnalytics.test_sum_objectc                 C   s"   t  |¡}| d¡ | d¡ d S )Nr(   r   )rA   Úisnanr-   )rk   rp   Úboolsr"   r"   r#   Útest_sum_boolP  s    

z$TestDataFrameAnalytics.test_sum_boolc              	   C   sP   t tddd�ddddgdœƒ dddg¡}tjtdd	�� | ¡  W 5 Q R X d S )
Nr»   r„   r   r(   r   r}   r½   z does not support reduction 'sum'r0   )r	   r   r­   r>   r?   rj   r-   r·   r"   r"   r#   Útest_sum_mixed_datetimeV  s
    ÿz.TestDataFrameAnalytics.test_sum_mixed_datetimec              	   C   s„   t jtdd�� |jdd� W 5 Q R X t jtdd�� |jdd� W 5 Q R X |d dk|d< | d¡}|d |d j ¡ ks€t‚d S )	Nrb   r0   r   r,   re   r(   r³   r  )r>   r?   rj   rV   r   r9   )rk   rp   rl   Zmeansr"   r"   r#   Útest_mean_corner^  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jtdd�� | ¡  W 5 Q R X d S )Nr}   ú
2016-01-01r   Ú1DÚ2016r³   r÷   )r³   r´   rµ   rÛ   Tr   r–   z'mean is not implemented for PeriodArrayr0   )r	   rA   rì   r   rž   r  Úperiod_rangerV   r   r6   r<   r>   r?   rj   rõ   r"   r"   r#   Útest_mean_datetimelikel  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 5 Q R X d S )Nr}   r:  r   r;  r²   Fr   r(   )r(   r´   )r(   rµ   r<  r³   r÷   rÛ   z"mean is not implemented for Periodr0   )r	   rA   rì   r   rž   r  rV   r   rÓ   r6   r<   r=  r>   r?   rj   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   )rA   rÌ   Úrandintr	   rV   r6   r<   )rk   rÎ   rI   rJ   rN   r"   r"   r#   Ú*test_mean_extensionarray_numeric_only_true”  s
    zATestDataFrameAnalytics.test_mean_extensionarray_numeric_only_truec              	   C   s”   t jtdd�� | d¡ W 5 Q R X t jtdd�� | d¡ W 5 Q R X t jtdd�� | d¡ W 5 Q R X t jtdd�� | d¡ W 5 Q R X d S )Nrc   r0   r(   re   )r>   r?   rj   r]   r\   rV   r_   )rk   rl   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s4t‚d S )Nr(   r¡   r3  r,   r   )r	   r:   r   r-   r9   )rk   rI   r6  r"   r"   r#   Útest_sum_bools¦  s    z%TestDataFrameAnalytics.test_sum_boolsr'   c           	      C   sj   |}t j|jdd…< t j|jdd…dd …f< ||fD ]0}|j||d�}|jtj||d�}t ||¡ q4d S ©NrÃ   r¡   é   r¢   r	  r%   )rA   r�   r  Úidxminr=   r   r6   r<   ©	rk   rp   rˆ   r'   r&   rD   rI   rJ   rN   r"   r"   r#   Útest_idxmin®  s    z"TestDataFrameAnalytics.test_idxminc              	   C   s|   t dddgdddgtdƒdœƒ}|rR|j|d�}tddgddgd	�}t ||¡ n&tjtd
d�� |j|d� W 5 Q R X d S )Nr   r}   r(   Úxyxr‹   r   r   r   r¾   únot allowed for this dtyper0   )	r	   ÚlistrH  r   r6   r<   r>   r?   rj   ©rk   rh   rI   rJ   rN   r"   r"   r#   Útest_idxmin_numeric_only¹  s     z/TestDataFrameAnalytics.test_idxmin_numeric_onlyc              	   C   s2   |}d}t jt|d�� |jdd� W 5 Q R X d S ©Nz)No axis named 2 for object type DataFramer0   r   r,   )r>   r?   r@   rH  ©rk   rp   rD   rm   r"   r"   r#   Útest_idxmin_axis_2Ä  s    z)TestDataFrameAnalytics.test_idxmin_axis_2c           	      C   sj   |}t j|jdd…< t j|jdd…dd …f< ||fD ]0}|j||d�}|jtj||d�}t ||¡ q4d S rF  )rA   r�   r  Úidxmaxr=   r   r6   r<   rI  r"   r"   r#   Útest_idxmaxÊ  s    z"TestDataFrameAnalytics.test_idxmaxc              	   C   s|   t dddgdddgtdƒdœƒ}|rR|j|d�}tddgdd	gd
�}t ||¡ n&tjtdd�� |j	|d� W 5 Q R X d S )Nr   r}   r(   rK  r‹   r   r   r   r   r¾   rL  r0   )
r	   rM  rS  r   r6   r<   r>   r?   rj   rH  rN  r"   r"   r#   Útest_idxmax_numeric_onlyÕ  s     z/TestDataFrameAnalytics.test_idxmax_numeric_onlyc              	   C   s2   |}d}t jt|d�� |jdd� W 5 Q R X d S rP  )r>   r?   r@   rS  rQ  r"   r"   r#   Útest_idxmax_axis_2à  s    z)TestDataFrameAnalytics.test_idxmax_axis_2c                 C   sr  t ddd�}tdddgtdƒd d d… |jdd	�d
œƒ}| ¡ }tdddgdddgd�}t ||¡ | ¡ }tdddgdddgd�}t ||¡ t	j
|jd< | ¡ }tdddgdddgd�}t ||¡ | ¡ }tdddgdddgd�}t ||¡ |d d d… |d< | ¡  | ¡ }tddddgddddgd�}t ||¡ | ¡ }tddddgddddgd�}t ||¡ d S )Nr:  r}   r   r   r   r(   rü   T)Údeep)r(   r   r}   r¾   )r   r}   r„   )r   r	   r:   r  rS  r   r6   r<   rH  rž   rá   rÓ   r  ©rk   ZdtirI   rJ   rN   r"   r"   r#   Útest_idxmax_mixed_dtypeæ  s.    ,z.TestDataFrameAnalytics.test_idxmax_mixed_dtypezop, expected_valuerS  rH  rÃ   c                 C   sn   t ddddddgddddddgdœdd�}| d	¡}t||ƒƒ }t d
|itddgd	dd�d�}t ||¡ d S )Néd   éÈ   r   r(   r   )ÚIDr  rA  r’   r\  r  )Únamer4   r¾   )r	   Úgroupbyr5   r
   r6   rð   )rk   r•   Zexpected_valuerI   rJ   rN   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œdd�}tj|jd< | ¡  |jd	d
�}tdddgƒ}t 	||¡ |j
d	d
�}tdddgƒ}t 	||¡ d S )Nr:  r}   r   rü   )r}   r„   Tr  )r   r   r(   r,   r„   )r   r	   rž   rá   r  r  rS  r   r6   r<   rH  rX  r"   r"   r#   Ú"test_idxmax_dt64_multicolumn_axis1"  s    z9TestDataFrameAnalytics.test_idxmax_dt64_multicolumn_axis1r‡   r  Ú	bool_onlyc                 C   s2   |}t j t|ƒ¡dk|d< t||ƒ||d� d S )Ng      à?Z_bool_©r&   ra  )rA   rÌ   rÒ   r;   r5   )rk   rC   r&   ra  rl   r  r"   r"   r#   Útest_any_all_mixed_float4  s    z/TestDataFrameAnalytics.test_any_all_mixed_floatc                 C   s   t ||ƒ|dd� d S )NFrb  ro   )rk   rC   r&   Úbool_frame_with_nar"   r"   r#   Útest_any_all_bool_with_na>  s    z0TestDataFrameAnalytics.test_any_all_bool_with_nac              	      sL  |  d¡}tt|ƒ‰ t||ƒ}‡ fdd„}‡ fdd„}|ddd�}|d	dd�}t || |¡¡ t ||j|d	d
�¡ |dd
�}|d	d
�}t || |¡¡ tj||j|d	d
�dd� tjtdd�� |dd
� W 5 Q R X |tj	 }	t|	|ƒdd
�}
t|	|ƒd	d
�}|dk�r,|
 
¡ �rt‚| 
¡ �rHt‚n|
 ¡ �s:t‚| ¡ �sHt‚d S )NTc                    s   |   ¡ j}ˆ |ƒS r   )rt   r   )r   Znonar    r"   r#   rK   K  s    
zFTestDataFrameAnalytics.test_any_all_bool_frame.<locals>.skipna_wrapperc                    s
   ˆ | j ƒS r   r   r   r    r"   r#   r$   O  s    z?TestDataFrameAnalytics.test_any_all_bool_frame.<locals>.wrapperr   Fr%   r(   r,   )r)   r/   r0   r   r‡   )Zfillnar5   rA   r6   r<   r=   r>   r?   r@   rB   r‡   r9   r  )rk   rC   rd  rD   rH   rK   r$   rL   rM   rO   rP   rQ   r"   r    r#   Útest_any_all_bool_frameC  s6    




  ÿ

z.TestDataFrameAnalytics.test_any_all_bool_framec                 C   s0  t dddgdddgdddgdœdddgd�}|dd	g jd
d�}tdddgdddgd�}t ||¡ |dd	g jd
dd�}t ||¡ | d
¡}tdddgdddgd�}t ||¡ |jd
dd�}t ||¡ |jd d� ¡ }|dksêt‚|jd d� ¡ }|dk�st‚|dg jd d� ¡ }|dk�s,t‚d S )NTFr²   r   r   rŒ   r¾   r³   r´   r(   r,   rb  ©ra  rµ   )r	   r‡   r   r6   r<   r  Úitemr9   rõ   r"   r"   r#   Útest_any_all_extrao  s.    ýú
z)TestDataFrameAnalytics.test_any_all_extraÚbool_agg_funcc                 C   sx   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ddddgƒ}t ||¡ d S )Nr(   Tr   Ú5©Údatar%   )r	   rA   r�   r5   r   r6   r<   )rk   r&   rj  r'   rI   rJ   rN   r"   r"   r#   Útest_any_all_object_dtype�  s    üÿz0TestDataFrameAnalytics.test_any_all_object_dtypezAignore:'any' with datetime64 dtypes is deprecated.*:FutureWarningc                 C   sb   dt jdt jg}tdƒtdƒtjtjg}t||dœƒ}|jdd�}tddddgƒ}t 	||¡ d S )	Nr(   r}   z
1960-02-15z
1960-02-16r½   r,   TF)
rA   r�   r   rž   rá   r	   r‡   r   r6   r<   )rk   Z
float_dataZdatetime_datarI   rJ   rN   r"   r"   r#   Útest_any_datetime¢  s    üz(TestDataFrameAnalytics.test_any_datetimec                 C   sš   t dddgdddgd d d gdœƒ}|jdd	�}ttjg d
�}t ||¡ t dddgdddgd d d gdddgdœƒ}|jdd	�}tddiƒ}t ||¡ d S )Nr(   r   r}   r„   rÃ   r#  )Úcol1Úcol2Úcol3Trg  r'  F)rp  rq  rr  Úcol4rs  )r	   r  r   rA   Úbool_r6   r<   rõ   r"   r"   r#   Útest_any_all_bool_onlyµ  s     ÿüÿ	z-TestDataFrameAnalytics.test_any_all_bool_onlyzfunc, data, expectedr³   r½   r›   zM8[ns]zM8[ns, UTC]r&  Úcategoryr¡   r¢   c              	   C   s.  t |ƒ}tdd„ |jD ƒƒrptjtdd�� ||ƒ W 5 Q R X tjtdd�� tt |ƒ|jƒd d� W 5 Q R X nºd}|j dd„ ¡ ¡ rŽt	}nd }t
j||d	d
�� ||ƒ}W 5 Q R X t|tjƒsÆt‚| ¡ |ksÖt‚t
j||d�� tt |ƒ|jƒd d�}W 5 Q R X t|tjƒ�st‚| ¡ |k�s*t‚d S )Nc                 s   s   | ]}t |ƒV  qd S r   r   )r  r   r"   r"   r#   r    s     z>TestDataFrameAnalytics.test_any_all_np_func.<locals>.<genexpr>z)dtype category does not support reductionr0   r,   z0'(any|all)' with datetime64 dtypes is deprecatedc                 S   s
   | j dkS )Nrç   )Úkindr   r"   r"   r#   rÆ     rÇ   z=TestDataFrameAnalytics.test_any_all_np_func.<locals>.<lambda>F)r1   Zcheck_stacklevel)r	   r‡   Údtypesr>   r?   rj   r5   Ú__name__r=   ÚFutureWarningr6   r7   r8   rA   rt  r9   rh  )rk   Úfuncrm  rN   rm   ÚwarnrJ   r"   r"   r#   Útest_any_all_np_funcÌ  s0    5 ÿ ÿ" z+TestDataFrameAnalytics.test_any_all_np_funcc                 C   sL   t  tddgd�¡ ¡ }|dks$t‚t  tddgd�¡ ¡ }|dksHt‚d S )Nr   r   rª   TF)rA   r  r	   rh  r9   r‡   )rk   rJ   r"   r"   r#   Útest_any_all_object"  s    z*TestDataFrameAnalytics.test_any_all_objectc                 C   s$  t ddgddgdœƒ t¡}| ¡  tddgƒ|d< |d  d¡|d< | ¡ }|dg }t ||¡ |jdd	d
�}tdgdgd�}t 	||¡ |ddg jdd	d
�}t 	||¡ |jdd d
�sÂt
‚|jdd	d
�}tdgdgd�}t 	||¡ |dg jdd	d
�}t 	||¡ |jdd d
��s t
‚d S )Nr�   r   TFr½   rµ   rv  rÛ   r   )ra  r&   r¾   r´   )r	   rz   r“   r  r   Z_get_bool_datar6   rð   r  r<   r9   r‡   )rk   rI   ÚresrN   r"   r"   r#   Útest_any_all_object_bool_only*  s&    
z4TestDataFrameAnalytics.test_any_all_object_bool_onlyc              	   C   sˆ   t dddgƒ}t dtjdtjgiƒ}tdddgƒ}ttjtjdgƒ}t d ¡�0 |j|dd� dD ]}t||ƒ|dd� qbW 5 Q R X d S )	Nr–   r³   r—   r(   r   )Úlowerr&   )ÚltÚleÚgtÚgeÚeqÚner,   )r	   rA   r�   r   r6   r7   Zclipr5   )rk   rI   Zdf_nanrs   Zs_nanr•   r"   r"   r#   Útest_series_broadcastingO  s    z/TestDataFrameAnalytics.test_series_broadcasting)Xry  Ú
__module__Ú__qualname__r>   r  ÚparametrizeÚparamÚtdZskip_if_no_scipyrn   rq   r|   r†   r‰   r	   rA   r�   r“   r”   r    r±   r¸   rÁ   rÂ   rÄ   rÏ   rÕ   rÖ   r   r   r   r®   rž   rá   rñ   ró   rö   r  r  r  r  r6   ZmakeRangeIndexZmakeDateIndexZmakeNumericIndexrš   r›   ZmakePeriodIndexr  r%  r)  r+  rB   r1  r2  r4  r7  r8  r9  r>  r?  rC  rD  rE  rJ  rO  rR  rT  rU  rV  rY  r_  r`  rc  re  rf  ri  rn  Úfilterwarningsro  ru  r‡   r  r   r}  r~  r€  rˆ  r"   r"   r"   r#   rT   �   s  óþôþ8
 ÿýýùñ$îþ




ùþ
ùþ
ùþ
ùþÛþ5
W ÿ

úþ
 ýþýþ	
	

	

&þ

+!ÿ


þúÙþ3
#%rT   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ej 	dddg¡dd„ ƒZdd„ Zdd„ Zejdd„ ƒZej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   rY   r   r6   r<   rZ   )rk   rI   r  Úexpr"   r"   r#   Útest_min_max_dt64_with_NaT^  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„t‚t ||¡ |jddd	�}t
|jd tjgƒ}|j|d jksÆt‚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:00r.  r(   Fr%   )r   r   r   )r   r   )r8   r   r   r>   Úskipr	   r   rž   rá   rY   r   rÓ   r4   r9   r6   r<   rZ   )rk   r  Ztz_naive_fixturer¹   rI   r  rN   r"   r"   r#   Ú'test_min_max_dt64_with_NaT_skipna_falseu  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k| ¡ tjkksBt‚|jdd�jtjk| ¡ tjkksht‚t	 
|jdd�|¡ t	 
|jdd�|¡ d S )Nr   r   r,   r(   )r	   r   r   rY   r   rž   rá   r9   rZ   r6   r<   )rk   rI   Zexpected_dt_seriesr"   r"   r#   Ú*test_min_max_dt64_api_consistency_with_NaT“  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>t‚t |jdd�j¡t | ¡ ¡ksdt‚t	 
|jdd�|¡ t	 
|jdd�|¡ d S )Nr   r’   r   r,   r(   )r	   r   r›   rA   r5  rY   r   r9   rZ   r6   r<   )rk   rI   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Š   rY   rZ   )r–  c                 C   s<   t |ƒ}t|gƒ}t|gƒ}t||ƒdd�}t ||¡ d S )Nr(   r,   )r   r   r	   r5   r6   r<   )rk   r–  rŠ   Z
initial_dtrN   rI   rJ   r"   r"   r#   Útest_preserve_timezone®  s
    

z.TestDataFrameReductions.test_preserve_timezonec                 C   s‚   t ddd�}tttjtj|gƒttj||gƒdœƒ}t||ƒ}|d|d�}|r`ttj||gƒ}nttjtj|gƒ}t ||¡ d S )Nz
1900-01-01T)Úutcr.  r(   r%   )r   r	   r   rž   rá   r5   r6   r<   )rk   rŠ   r'   ÚvalrI   r•   rJ   rN   r"   r"   r#   Ú!test_minmax_tzaware_skipna_axis_1»  s    "ÿ
z9TestDataFrameReductions.test_minmax_tzaware_skipna_axis_1c                 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   rs   r(   Úms)r   Útr,   FTr   rœ  )rm  r3   rl  )r	   r   r   r‡   r6   r<   rõ   r"   r"   r#   Útest_frame_any_with_timedeltaÊ  s    
þÿz5TestDataFrameReductions.test_frame_any_with_timedeltac              	   C   s^   |dkr|j  tjjdd�¡ |dddgƒ}d}tjt|d�� t||ƒd d	� W 5 Q R X d S )
NrU   zCount does not accept skipnar  r(   r   r}   zAFor argument "skipna" expected type bool, received type NoneType.r0   r
  )r  r  r>   r  r  r?   r@   r5   )rk   r  Zframe_or_seriesr  Úobjrm   r"   r"   r#   Ú"test_reductions_skipna_none_raisesÛ  s    ÿz:TestDataFrameReductions.test_reductions_skipna_none_raisesc                 C   s`   t ttdƒgdd�ttdƒgdd�dœƒ}| ¡ }ttdƒtdƒgdddgd	�}t ||¡ d S )
Nz
2019-12-31zdatetime64[s]r’   z2019-12-31 00:00:00.123zdatetime64[ms]r.  r   r   r'  )r	   r   r   rZ   r6   r<   rõ   r"   r"   r#   Ú&test_reduction_timestamp_smallest_unitç  s     ÿþÿýz>TestDataFrameReductions.test_reduction_timestamp_smallest_unitc                 C   sh   t tt d¡gdd�tt d¡gdd�dœƒ}| ¡ }tt d¡t d¡gdddgd�}t ||¡ d S )	NrÚ   ztimedelta64[s]r’   ztimedelta64[ms]r.  r   r   r'  )r	   r   rž   r  rZ   r6   r<   rõ   r"   r"   r#   Ú&test_reduction_timedelta_smallest_unitú  s    þÿýz>TestDataFrameReductions.test_reduction_timedelta_smallest_unitN)ry  r‰  rŠ  r‘  r“  r”  r•  r>   r  r‹  rœ   r—  rš  r�  rŸ  r�  Zskip_array_manager_invalid_testr   Z&skip_array_manager_not_yet_implementedr¡  r"   r"   r"   r#   r�  ]  s$   þ

r�  c                   @   sH   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S )ÚTestNuisanceColumnsrŠ   r‡   r  c              	   C   sì   t ddgddd�}| ¡ }tjtdd�� t||ƒƒ  W 5 Q R X tjtdd�� tt|ƒ|ƒ W 5 Q R X tjtdd�� t||ƒdd	� W 5 Q R X tjtdd�� t||ƒd d	� W 5 Q R X tjtdd�� tt|ƒ|dd
� W 5 Q R X d S )Nr   r(   rv  r³   )r4   r]  údoes not support reductionr0   Frg  r,   )r   Úto_framer>   r?   rj   r5   rA   )rk   rŠ   ÚserrI   r"   r"   r#   Ú.test_any_all_categorical_dtype_nuisance_column  s    zBTestNuisanceColumns.test_any_all_categorical_dtype_nuisance_columnc              	   C   sê   t dtdddddgƒiƒ}|d }tjtdd�� | ¡  W 5 Q R X tjtdd�� |jdd� W 5 Q R X tjtdd�� | ¡  W 5 Q R X |d  t¡|d	< tjtdd�� |jdd� W 5 Q R X tjtdd�� | ¡  W 5 Q R X d S )
Nr³   r(   r   r}   r£  r0   Fr   r´   )r	   r   r>   r?   rj   rX   rz   rš   )rk   rI   r¥  r"   r"   r#   Ú-test_median_categorical_dtype_nuisance_column#  s    zATestNuisanceColumns.test_median_categorical_dtype_nuisance_columnrY   rZ   c              	   C   sX  t ddddgdd�}t|ƒ}| d¡}tjtdd�� t||ƒƒ  W 5 Q R X tjtdd�� tt|ƒ|ƒ W 5 Q R X tjtdd�� t||ƒdd	� W 5 Q R X tjtdd�� t||ƒƒ  W 5 Q R X tjtdd�� tt|ƒ|d
d� W 5 Q R X |d  t	¡|d< tjtdd�� t||ƒƒ  W 5 Q R X tjtdd�� tt|ƒ|d
d� W 5 Q R X d S )Nr   r   rŒ   F)Zorderedr³   zis not ordered for operationr0   r   r   r,   r´   )
r   r   r¤  r>   r?   rj   r5   rA   rz   r“   )rk   rŠ   Úcatr¥  rI   r"   r"   r#   Ú:test_min_max_categorical_dtype_non_ordered_nuisance_column>  s$    
zNTestNuisanceColumns.test_min_max_categorical_dtype_non_ordered_nuisance_columnN)	ry  r‰  rŠ  r>   r  r‹  r¦  r§  r©  r"   r"   r"   r#   r¢    s
   
r¢  c                 C   sú   | rt jjdd�}|j |¡ t d¡ tj¡ 	d¡ 
dd¡}d|d< t|ƒ}|j|jk ¡ sbt‚|jd	d
�}ttjdd�tjgdd�}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dd�}t ||¡ d S )Nz3Incorrect type inference on NaT in reduction resultr  rß   zm8[s]r„   r   ZNat)rü   rü   Fr
  r×   rû   r’   r   r%   r(   rÃ   rà   )r>   r  r  r  r  rA   rì   rz   rë   ÚviewZreshaper	   rx  r4   r  r9   r-   r   rž   r  rá   r6   r<   )r  r  r  rÎ   rI   rJ   rN   r"   r"   r#   Ú!test_sum_timedelta64_skipna_false^  s0    ÿ 


üù	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   rA  r¾   )r	   rM  rz   r-   r   r6   r<   )rI   rJ   rN   r"   r"   r#   Ú!test_mixed_frame_with_integer_sum€  s
    r­  rh   rŠ   rY   rZ   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’   rA  r   r“   r¾   )rA   Ziinfor   rZ   rY   rž   Z
Int64Dtyper	   r5   r
   r6   r<   )rŠ   rh   Z
int64_infor¥  rI   rJ   rN   r"   r"   r#   Útest_minmax_extensionarray‰  s    

 ÿr®  Úts_valuez
2000-01-01c              	   C   s@   t dgdgdg| gdœƒ}tjtdd�� | ¡  W 5 Q R X d S )Nr(   gš™™™™™ñ?r�   )r   r   rŒ   r™   r£  r0   )r	   r>   r?   rj   r-   )r¯  rI   r"   r"   r#   Ú.test_frame_mixed_numeric_object_with_timestamp—  s    r°  c               	   C   sl   t dddgƒ} | jdddd�}tdgƒ}t ||¡ t d¡}tjt	|d�� | j
dddd� W 5 Q R X d S )	Nr(   r   Tr   F)r&   r"  rh   z2unsupported operand type(s) for +: 'int' and 'str'r0   )r	   r.   r   r6   r<   ÚreÚescaper>   r?   rj   r-   )rI   rJ   rN   rm   r"   r"   r#   Ú$test_prod_sum_min_count_mixed_objectŸ  s    

r³  rV   rX   r_   r`   c                 C   sŽ   t tj dd¡ƒ}t|| ƒd |d�}| ¡ }| dkrlt d¡}| dkrJd} t|| ƒ|dd d�}t 	||¡ ntt| ƒ|d d	�}||ksŠt
‚d S )
Nr„   rg   >   r`   r_   zscipy.statsr`   rƒ   F)r   r&   r,   )r	   rA   rÌ   rÒ   r5   Zto_numpyr>   Zimportorskipr6   rÊ   r9   )rŠ   rh   rI   rJ   Znp_arrZcomp_modrN   r"   r"   r#   Ú'test_reduction_axis_none_returns_scalar¬  s    
r´  ÚkernelZcorrÚcorrwithZcovrS  rH  r.   Zquantiler^   r]   r-   r\   c              	   C   sf   t dddgtdœƒ}| dkr"|fnd}d dd	d
ddg¡}tjt|d�� t|| ƒ|Ž  W 5 Q R X d S )Nr(   r   r}   r.  r¶  r"   ra   rL  z%argument must be a string or a numberrf   re   z*argument must be a string or a real numberr0   )r	   r“   ri   r>   r?   rj   r5   )rµ  rI   Úargsrm   r"   r"   r#   Útest_fails_on_non_numericÀ  s    ûÿ	r¸  )TTFr   r   N)2Údatetimer   Údecimalr   r±  Zdateutil.tzr   ÚnumpyrA   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   Zpandas._testingZ_testingr6   Zpandas.corer   r   rS   rT   r�  r¢  r«  r­  r  r‹  r®  rá   r°  r³  r´  r¸  r"   r"   r"   r#   Ú<module>   s‚   0
      ÷
n         V 0R"	
ïþ