a
    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mZ d dlm  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"Z"m#Z# e pe Z$d6ddZ%G 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	j,-dg de	j,-dddgdd  Z.e	j,-d!ed"ej/gd#d$ Z0d%d& Z1e	j,-dg d'e	j,-ddd	ge	j,-d(d)d*gd+d, Z2e	j,-d-g d.d/d0 Z3e	j,-dg d1e	j,-d2d d3gd4d5 Z4dS )7    )	timedelta)DecimalN)tzlocal)IS64is_platform_windows)CategoricalCategoricalDtype	DataFrameIndexSeries	Timestamp
date_rangeisnanotnato_datetimeto_timedelta)
algorithmsnanopsTFh㈵>:0yE>c	                    s  t || }	|rtdtdddi}
td t |
|  }W d   n1 sN0    Y  t|tsfJ tt|
|
d< td t |
|  }W d   n1 s0    Y  t|tsJ t|sJ |r4 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sJ ||jksJ tjtdd |	dd W d   n1 s0    Y  |r|tj }t || d	d}t || dd}| dv r| dkrBd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 k/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/pandas/tests/frame/test_reductions.pywrapper[   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   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&   sp    %
**



*

rR   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dd Zdd Zejdg dejdeg d g d!g d"d#g d$d%d&eejd'gejd(gejd)gd*ed+gejd,d-d. Zejd/g d0d1d2 Zd3d4 Zd5d6 Zejd7d8d9gd:d; Zejd7d8d9gd<d= Zd>d? Zd@dA ZejdBg dCdDdE ZdFdG ZejdHdIdJgdKgdLgdMgedMgdMgdNedOgedPgdQfdRdJgdKgejgej ejged+eejgdMgdNe!j"gee!j"gdQfdIdSdTejejgdSdTejejgdejejejgedMejejejgdMgdNeg dUeg dVg dWdXfdRdSdTejejgdSdTejejgdejejejgeejdMejejgdMgdNeg dYeg dZg dWdX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.d+e*j-de/d+e*j,ddndoe*0dgdpdq Z1ejdrdsdtgejdug dvdwdx Z2dydz Z3d{d| Z4ejd}g d~ejddd'dddejgfdd(dejejejgfddRdddejgfgdd Z5ejd}g d~ejddd'dddejgfdd(dejejejgfddRdddejgfgdd Z6dd Z7dd Z8dd Z9dd Z:dd Z;dd Z<dd Z=dd Z>dd Z?ejddIdRgejdddgdd Z@ejdddgejddd ZAejdudIdRgdd ZBdd ZCejddIdRgejdddgdd ZDejdddgejddd ZEejdudIdRgdd ZFdd ZGdd ZHejdddd)gfdddgfgdd ZIdd ZJejdddgejdddgejddRdIgdd ZKejdddgejdddgdd ZLejdddgdd ZMdd ZNejdddgejdddgejddIdRgddń ZOejdơddȄ ZPddʄ ZQejdejRi dRfejSi dIfejRdg idRfejSdg idIfejRddRdRgidRfejSddRdRgidRfejRddIdRgidIfejSddIdRgidRfejRddIdIgidIfejSddIdIgidIfejRdRgdRgd͜dRfejSdRgdRgd͜dRfejRdRdRgdRdIgd͜dIfejSdRdRgdRdIgd͜dRfejSdeTddLgdd+idRfejRdeTddLgdd+idIfejSdeTddge.d+idRfejRdeTddge.d+idIfeejSdeTddgdd+idReejSdeTddgdd+idReejRdeTddgdd+idIeejRdeTddgdd+idIeejSdeTdd'gdd+idIeejSdeTdd'gdd+idIeejRdeTdd'gdd+idIeejRdeTdd'gdd+idIeejSdeTddgdd+idReejRdeTddgdd+idIeejSdeTdd'gdd+idIeejRdeTdd'gdd+idIejSdeTddgdd+idIfejRdeTddgdd+idRfejSdeTdd'gdd+idIfejRdeTdd'gdd+idRfeejSeTddgdd+eTddgdd+d͜dIg#ddׄ ZUddل ZVddۄ ZWdd݄ ZXd8S )TestDataFrameAnalyticsr&   r   r(   rB   countr-   meanproductmedianminmaxnuniquevarstdsemskew)Zmarkskurtc                 C   s  |dv r|dks|dv r*t |||d n|dv r8d}nv|dkrT|dkrNd	}qd
}nZ|dkrbd}nL|dkr|dkrdddg}qd}n&|dv rd}n|dkrtjdtjd}tjt|d  t |||d W d    n1 s0    Y  |dkrt |||dd d S )N)r-   rX   rY   r   rT   rZ   r,   )r[   r\   r]   r^   r_   z(could not convert string to float: 'bar'rV   r(   z2can't multiply sequence by non-int of type 'float'z0can't multiply sequence by non-int of type 'str'r-   z7unsupported operand type\(s\) for \+: 'float' and 'str'rU   |z%Could not convert \['.*'\] to numericz/Could not convert string '(bar){30}' to numericrX   rY   z<'[><]=' not supported between instances of 'float' and 'str'rW   z Cannot convert \[.*\] to numeric)flagsr0   rZ   Tr&   numeric_only)r5   joinrecompileSr=   r>   	TypeError)selffloat_string_framer&   rB   msgr"   r"   r#   #test_stat_op_api_float_string_frame   s4    .
z:TestDataFrameAnalytics.test_stat_op_api_float_string_framec                 C   s   t |||dd d S )NFrd   r5   )rk   float_framer&   rB   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#   rT      s    z7TestDataFrameAnalytics.test_stat_op_calc.<locals>.countc                 S   s   t t|  S r   )r:   r   Zunique1ddropnarr   r"   r"   r#   rZ      s    z9TestDataFrameAnalytics.test_stat_op_calc.<locals>.nuniquec                 S   s   t j| ddS Nr(   Zddof)r@   r[   r   r"   r"   r#   r[      s    z5TestDataFrameAnalytics.test_stat_op_calc.<locals>.varc                 S   s   t j| ddS ru   )r@   r\   r   r"   r"   r#   r\      s    z5TestDataFrameAnalytics.test_stat_op_calc.<locals>.stdc                 S   s   t j| ddt t|  S ru   )r@   r\   sqrtr:   r   r"   r"   r#   r]      s    z5TestDataFrameAnalytics.test_stat_op_calc.<locals>.semrZ   FT)rD   r)   rE   r-   float32gMbP?)r)   r*   )rF   rU   rE   rV   r[   r\   r]   rT   )rR   r@   r-   astypeZnansumrU   r.   Znanprod)rk   float_frame_with_naZmixed_float_framerT   rZ   r[   r\   r]   r"   r"   r#   test_stat_op_calc   sL    z(TestDataFrameAnalytics.test_stat_op_calcc                    s>   t d  fdd} fdd}td|| td|| d S )Nscipy.statsc                    s    t | dk rtjS  j| ddS )N   Fbias)r:   r@   rA   r^   r   Zsp_statsr"   r#   skewness  s    zHTestDataFrameAnalytics.test_stat_op_calc_skew_kurtosis.<locals>.skewnessc                    s    t | dk rtjS  j| ddS )N   Fr   )r:   r@   rA   kurtosisr   r   r"   r#   r_   #  s    zDTestDataFrameAnalytics.test_stat_op_calc_skew_kurtosis.<locals>.kurtr^   r_   )r=   importorskiprR   )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   anyr@   rA   rW   r   r"   r"   r#   r$   ,  s    z3TestDataFrameAnalytics.test_median.<locals>.wrapperrW   Try   F)r)   rE   )rR   )rk   r{   	int_framer$   r"   r"   r#   test_median+  s
    
z"TestDataFrameAnalytics.test_medianmethod)r-   rU   r.   r[   r\   r^   rX   rY   rH   )gȃw@Ba@gCVZg
?Z.F?)r   r           )g94c4?g@}jX?gNr   r   cfoobarbazOr2   r   r~   r   r   r(   r   r4   z0ignore:Mismatched null-like values:FutureWarningc                 C   sj   |j jtjksJ t|||d}t|d||dt}|dv rZ|dv rZd || < t	|| d S )Nr,   Zf8)r(   columnsrb   )
r   r4   r@   Zobject_r5   rz   objectr   r6   r;   )rk   r   rH   r&   rI   rM   r"   r"   r#   %test_stat_operators_attempt_obj_array6  s    z<TestDataFrameAnalytics.test_stat_operators_attempt_obj_arrayop)rU   r\   r[   r^   r_   r]   c              	   C   s   t g dg dg dd}dg d}tjt|d t||  W d    n1 sZ0    Y  tdd	X dg d}tjt|d t||  W d    n1 s0    Y  W d    n1 s0    Y  d S )
Nr(   r   r~   r   )      ?       @      @      @r   r   r   d)intfloatstrra   )Could not convertcould not convertz"can't multiply sequence by non-intr0   use_bottleneckF)r	   rf   r=   r>   rj   r5   pdoption_context)rk   r   rH   rm   r"   r"   r#   test_mixed_opsZ  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r   r   r,   )r      Zabcder   r(   )r	   reindexr-   r6   Zassert_numpy_array_equalr   r@   arrayr   Tr;   )rk   rH   testZaltr"   r"   r#   test_reduce_mixed_framey  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rt   r,   r   )r&   rt   )r	   r@   rA   r6   r;   rZ   r   rk   rH   r"   r"   r#   test_nunique  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   rU   r   r6   r;   rk   r   rH   rI   rM   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 d    n1 s0    Y  |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.00TESTz241.00z572.00z609.00z820.00   z1223.00unsupported operand typer0   r   r   g@gL@r2   )
r   r	   r=   r>   rj   rU   r   r   r6   r;   )rk   r   rH   rI   rM   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d	}t	j
|d	d
}|d	k  rJ tdd. t	j
|d	d
}|d	k  rJ W d    n1 s0    Y  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,   r   F)r\   r<   r6   assert_almost_equalr[   r@   repeatrandomdefault_rngr   Znanvarr   r   r   rk   Zdatetime_framerI   rM   arrr"   r"   r#   test_var_std  s    z#TestDataFrameAnalytics.test_var_stdmeth)r]   r[   r\   c                 C   sh  t tjddg dd}|dti}d|jd< t tjddg d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 d    n1 s0    Y  d}tjt|d" t||d	dd W d    n1 sZ0    Y  d S )Nr   )r   r~   r   r   r   Z100)r   r   r   r(   Trd   r   r   r,   z6unsupported operand type\(s\) for -: 'float' and 'str'r0   Fz&could not convert string to float: 'a')r	   r@   r   r   standard_normalrz   r   locr5   r6   r;   r=   r>   rj   )rk   r   Zdf1df2rI   rM   rm   r"   r"   r#   test_numeric_only_flag  s0    

2z-TestDataFrameAnalytics.test_numeric_only_flagc                 C   s   |j dd}|dd }t|| ttjdddd}tj	|dd	}|dk 
 r`J td
d. tj	|dd	}|dk 
 rJ W d    n1 s0    Y  d S )Nr   rv   c                 S   s   | j ddtt|  S r   )r\   r@   rw   r:   r   r"   r"   r#   r     r   z1TestDataFrameAnalytics.test_sem.<locals>.<lambda>r   r   r   r   r,   r   F)r]   r<   r6   r   r@   r   r   r   r   Znansemr   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   	   )r   NaTr   r   r   rA   rA   rA   r   r(   r   r~   )HIJKLMNr   r   r   r   )rA   r   rA   rA   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   rA   r   rA   r   int64r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r	   r@   rA   r   r   r   arangesortedkeysmoder6   assert_frame_equal)rk   rt   rM   rH   rI   r"   r"   r#   test_mode_dropna  s(    6



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	   r@   rA   r6   r7   UserWarningr   Zsort_valuesZreset_indexr   )rk   rH   rM   rI   r"   r"   r#   test_mode_sortwarningQ  s    2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
   r@   r   r6   r   rk   rH   rI   rM   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}| }|jd |jd kszJ |jd |jd ksJ |jdd}||jd k sJ | }|jd |jd ksJ |jd |jd ksJ |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
|| |jddd }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sJ |d( |d'  |d+< |  |d) jd*ksJ |d+ jd*ksJ 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   Trd   )r(   r(   r   r   Z20130102r   Z20130105)timetime2r
  r	  Zoff1timedelta64[ns]Zoff2)r	   r   r   r   rX   ilocr   allrY   absr6   r   copyr   r   	Timedeltar   r;   r4   _consolidate_inplace)rk   rH   ZdiffsrI   Zresult2rM   mixedr"   r"   r#   test_operators_timedelta64d  sz    &&

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   r  r\   r   r6   r;   r  )rk   ZtdirH   rI   rM   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u V  qd S r   r   r   .0valuer"   r"   r#   	<genexpr>  r   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u V  qd S r   r  r  r"   r"   r#   r    r   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   rH   rI   rM   r"   r"   r#   test_std_datetime64_with_nat  s    z3TestDataFrameAnalytics.test_std_datetime64_with_natc                 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-   r8   r   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v r,d}n|dkr:d}nd	}tg ||d
}t|| d S )Nr   r   r(   r,   )r   r  boolrT   r   r   r2   r	   r5   r   r6   r;   )rk   all_reductionsr3   r$  rH   rI   expected_dtyperM   r"   r"   r#   test_axis_1_empty  s    z(TestDataFrameAnalytics.test_axis_1_emptyzmethod, unit)r-   r   )r.   r(   re   )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   re   float64r2   r(   )re   	min_countr   r   r   r   r   r   r      )r	   r@   rA   r5   r   r6   r;   r  )rk   r   rQ   re   idxrH   rI   rM   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]r4   r3   r/  r(   )	r	   r@   rA   r<   r   r-   r   r6   r;   )rk   r1  rH   r   rI   rM   r"   r"   r#   test_sum_nanops_timedelta%  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   r0  )r   yr   r5  r   r8  r   )r	   r-   r   r@   rA   r6   r;   r   r"   r"   r#   test_sum_nanops_min_count:  s    z0TestDataFrameAnalytics.test_sum_nanops_min_count
float_type)float16rx   r.  zkwargs, expected_result)r&   r/  g	@g333333@r%   c                 C   sL   t g dddtjgd|d}|jf i |}t||}t|| d S )N)r   gffffff@皙@g@r~   r   r   r   )r	   r@   rA   r-   r   rz   r6   r;   rk   r:  kwargsZexpected_resultrH   rI   rM   r"   r"   r#   test_sum_nanops_dtype_min_countA  s    z6TestDataFrameAnalytics.test_sum_nanops_dtype_min_countr   r   c                 C   sL   t g dddtjgd|d}|jf i |}t||}t|| d S )N)r   r   r<  r   r=  r   )r	   r@   rA   r.   r   rz   r6   r;   r>  r"   r"   r#    test_prod_nanops_dtype_min_countQ  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   rC   Zdeltasr"   r"   r#   test_sum_objectc  s    z&TestDataFrameAnalytics.test_sum_objectc                 C   s"   t |}|d |d d S )Nr(   r   )r@   isnanr-   )rk   rp   boolsr"   r"   r#   test_sum_booli  s    

z$TestDataFrameAnalytics.test_sum_boolc                 C   s^   t tdddg ddg d}tjtdd |  W d    n1 sP0    Y  d S )	Nr   r   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_datetimeo  s
    z.TestDataFrameAnalytics.test_sum_mixed_datetimec                 C   s   t jtdd |jdd W d    n1 s00    Y  t jtdd |jdd W d    n1 sj0    Y  |d dk|d< |d}|d |d j ksJ d S )	Nr   r0   r   r,   r   r(   r   r(  )r=   r>   rj   rU   r   )rk   rp   rl   Zmeansr"   r"   r#   test_mean_cornerw  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 d    n1 s0    Y  d S )Nr~   
2016-01-01r   1D2016r   r  )r   r   r   r   Tr-  r   z'mean is not implemented for PeriodArrayr0   )r	   r@   r   r   r   r  period_rangerU   r   r6   r;   r=   r>   rj   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 s0    Y  d S )Nr~   rI  r   rJ  r   Fr-  r(   )r(   r   )r(   r   rK  r   r  r   z"mean is not implemented for Periodr0   )r	   r@   r   r   r   r  rU   r   r   r6   r;   rL  r=   r>   rj   r   r"   r"   r#   )test_mean_datetimelike_numeric_only_false  s    
	z@TestDataFrameAnalytics.test_mean_datetimelike_numeric_only_falsec                 C   sP   t jdjddd}t|dd}|jdd}t| d	}t|| d S )
Nr   r   )r   r   )sizeInt64r   Tr-  Float64)	r@   r   r   Zintegersr	   rU   rz   r6   r;   )rk   r   rH   rI   rM   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 d    n1 s.0    Y  t jtdd |d W d    n1 sf0    Y  t jtdd |d W d    n1 s0    Y  t jtdd |d W d    n1 s0    Y  d S )Nr   r0   r(   r   )r=   r>   rj   r\   r[   rU   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s4J d S )Nr(   r   rB  r,   r   )r	   r9   r   r-   )rk   rH   rE  r"   r"   r#   test_sum_bools  s    z%TestDataFrameAnalytics.test_sum_boolsr'   c              	   C   s   |}t j|jdd< t j|jdddd f< ||fD ]}d }|du sL|dkr\||u rXd nt}d}tj||d	 |j||d
}	W d    n1 s0    Y  d}
tj||
d	" |jtj||d
}W d    n1 s0    Y  |	|j
j}t|	| q4d S )Nr   r      r   r  Fr(   z3The behavior of DataFrame.idxmin with all-NA valuesr0   r%   zThe behavior of Series.idxmin)r@   rA   r  FutureWarningr6   r7   idxminr<   r   rz   r3   r4   r;   rk   rp   r   r'   r&   rC   rH   warnrm   rI   msg2rM   r"   r"   r#   test_idxmin  s    ,0z"TestDataFrameAnalytics.test_idxminz3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc                 C   sH   |dkrt |d}n
t |d}|j||d}t|jd}t|| d S Nr   r   r   r%   r   )r	   rW  r   r4   r6   r;   rk   r3   r'   r&   rC   rI   rM   r"   r"   r#   test_idxmin_empty  s    
z(TestDataFrameAnalytics.test_idxmin_emptyc                 C   sf   t g dg dtdd}|j|d}|rBtddgdd	gd
}ntg dg dd
}t|| d S )Nr   r~   r(   r   r(   r(   xyxr   r-  r   r(   r   r   r   )r   r(   r   )r	   listrW  r   r6   r;   rk   re   rH   rI   rM   r"   r"   r#   test_idxmin_numeric_only  s    z/TestDataFrameAnalytics.test_idxmin_numeric_onlyc                 C   sF   |}d}t jt|d |jdd W d    n1 s80    Y  d S Nz)No axis named 2 for object type DataFramer0   r   r,   )r=   r>   r?   rW  rk   rp   rC   rm   r"   r"   r#   test_idxmin_axis_2  s    z)TestDataFrameAnalytics.test_idxmin_axis_2c              	   C   s   |}t j|jdd< t j|jdddd f< ||fD ]}d }|du sL|dkr\||u rXd nt}d}tj||d	 |j||d
}	W d    n1 s0    Y  d}
tj||
d	" |jtj||d
}W d    n1 s0    Y  |	|j
j}t|	| q4d S )Nr   r   rU  r   r  Fr(   z3The behavior of DataFrame.idxmax with all-NA valuesr0   r%   zThe behavior of Series.idxmax)r@   rA   r  rV  r6   r7   idxmaxr<   r   rz   r3   r4   r;   rX  r"   r"   r#   test_idxmax  s    ,0z"TestDataFrameAnalytics.test_idxmaxc                 C   sH   |dkrt |d}n
t |d}|j||d}t|jd}t|| d S r\  )r	   rh  r   r4   r6   r;   r]  r"   r"   r#   test_idxmax_empty  s    
z(TestDataFrameAnalytics.test_idxmax_emptyc                 C   sf   t g dg dtdd}|j|d}|rBtddgdd	gd
}ntg dg dd
}t|| d S )Nr_  r`  ra  r   r-  r(   r   r   r   r   )r(   r   r(   )r	   rb  rh  r   r6   r;   rc  r"   r"   r#   test_idxmax_numeric_only  s    z/TestDataFrameAnalytics.test_idxmax_numeric_onlyc                 C   sF   |}d}t jt|d |jdd W d    n1 s80    Y  d S re  )r=   r>   r?   rh  rf  r"   r"   r#   test_idxmax_axis_2#  s    z)TestDataFrameAnalytics.test_idxmax_axis_2c                 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 )NrI  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	   r9   r  rh  r   r6   r;   rW  r   r   r   r  rk   ZdtirH   rI   rM   r"   r"   r#   test_idxmax_mixed_dtype)  s.    *z.TestDataFrameAnalytics.test_idxmax_mixed_dtypezop, expected_valuerh  rW  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   rp  rp     rq  rq  )r   r   r   r(   r   r   )IDr  rP  r   rr  r  rp  rq  )namer4   r   )r	   groupbyr5   r
   r6   r   )rk   r   Zexpected_valuerH   rI   rM   r"   r"   r#   !test_idxmax_idxmin_convert_dtypesO  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g d}t	|| |j
d	d
}tg d}t	|| d S )NrI  r~   r   r  )r~   r   Tr  )r   r   r(   r,   )r   r~   r~   )r   r~   r   )r   r	   r   r   r  r  rh  r   r6   r;   rW  rn  r"   r"   r#   "test_idxmax_dt64_multicolumn_axis1e  s    z9TestDataFrameAnalytics.test_idxmax_dt64_multicolumn_axis1r   r  	bool_onlyc                 C   s8   |}t jdt|dk|d< t||||d d S )Nr   g      ?Z_bool_r&   rw  )r@   r   r   r   r:   r5   )rk   rB   r&   rw  rl   r  r"   r"   r#   test_any_all_mixed_floatw  s    z/TestDataFrameAnalytics.test_any_all_mixed_floatc                 C   s   t |||dd d S )NFrx  ro   )rk   rB   r&   bool_frame_with_nar"   r"   r#   test_any_all_bool_with_na  s    z0TestDataFrameAnalytics.test_any_all_bool_with_nac                    s`  | 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 d    n1 s0    Y  |tj	 }	t|	|dd
}
t|	|d	d
}|dkr@|

 r0J |
 r\J n|
 sNJ | s\J d S )NTc                    s   |   j} |S r   )rt   r   )r   Znonar    r"   r#   rJ     s    
zFTestDataFrameAnalytics.test_any_all_bool_frame.<locals>.skipna_wrapperc                    s
    | j S r   r   r   r    r"   r#   r$     s    z?TestDataFrameAnalytics.test_any_all_bool_frame.<locals>.wrapperr   Fr%   r(   r,   )r)   r/   r0   r   r   )Zfillnar5   r@   r6   r;   r<   r=   r>   r?   rA   r   r  )rk   rB   rz  rC   rG   rJ   r$   rK   rL   rN   rO   rP   r"   r    r#   test_any_all_bool_frame  s2    




(

z.TestDataFrameAnalytics.test_any_all_bool_framec                 C   s  t g dg dg ddg dd}|ddg jd	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 sJ |jd d
 }|du sJ |dg jd d
 }|du sJ d S )N)TFF)TTF)TTTr   r   r   r   r   r(   r,   Trx  rw  Fr   )r	   r   r   r6   r;   r  itemr   r"   r"   r#   test_any_all_extra  s.    
z)TestDataFrameAnalytics.test_any_all_extrabool_agg_funcc                 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datar%   )TTTT)r	   r@   rA   r5   r   r6   r;   )rk   r&   r  r'   rH   rI   rM   r"   r"   r#   test_any_all_object_dtype  s    z0TestDataFrameAnalytics.test_any_all_object_dtypezAignore:'any' with datetime64 dtypes is deprecated.*:FutureWarningc                 C   s^   dt jdt jg}tdtdtjtjg}t||d}|jdd}tg d}t	|| d S )Nr(   r~   z
1960-02-15z
1960-02-16r   r,   )TTTF)
r@   rA   r   r   r   r	   r   r   r6   r;   )rk   Z
float_dataZdatetime_datarH   rI   rM   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g d}t|| t g dg dg dg dd	}|jdd}td
di}t|| d S )Nr   r7  )NNN)col1col2col3Tr}  r4  )FFT)r  r  r  col4r  F)r	   r  r   r@   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   r   zM8[ns]zM8[ns, UTC]r3  categoryr   r   c                 C   s  t |}tdd |jD rtjtdd || W d    n1 sH0    Y  tjtdd& tt ||jd d W d    n1 s0    Y  nd}|jdd  rt	}nd }t
j||d	d
 ||}W d    n1 s0    Y  t|tjsJ | |u sJ t
j||d& tt ||jd d}W d    n1 sR0    Y  t|tjsnJ | |u sJ d S )Nc                 s   s   | ]}t |tV  qd S r   )r8   r   )r  r   r"   r"   r#   r  F  r   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   S  r   z=TestDataFrameAnalytics.test_any_all_np_func.<locals>.<lambda>F)r1   Zcheck_stacklevel)r	   r   dtypesr=   r>   rj   r5   __name__r<   rV  r6   r7   r8   r@   r  r~  )rk   funcr  rM   rm   rY  rI   r"   r"   r#   test_any_all_np_func  s,    5&6&6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)r@   r  r	   r~  r   )rk   rI   r"   r"   r#   test_any_all_objecte  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
sJ |j
dd	d
}tdgdgd}t	|| |dg j
dd	d
}t	|| |j
dd d
s J d S )Nr   r   TFr   r   r  r   r   )rw  r&   r   r   )r	   rz   r   r  r   Z_get_bool_datar6   r   r  r;   r   )rk   rH   resrM   r"   r"   r#   test_any_all_object_bool_onlym  s&    
z4TestDataFrameAnalytics.test_any_all_object_bool_onlyc                 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 s0    Y  d S )
N)r   r   r   r   r   r   r(   r   )lowerr&   )ltlegtgeeqner,   )r	   r@   rA   r   r6   r7   Zclipr5   )rk   rH   Zdf_nanrs   Zs_nanr   r"   r"   r#   test_series_broadcasting  s    z/TestDataFrameAnalytics.test_series_broadcasting)Yr  
__module____qualname__r=   r   parametrizeparamtdZskip_if_no_scipyrn   rq   r|   r   r   r	   r@   rA   r   filterwarningsr   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,  r2  r6  r9  r@  rA  rC  rF  rG  rH  rM  rN  rR  rS  rT  r[  r^  rd  rg  ri  rj  rk  rl  ro  ru  rv  ry  r{  r|  r  r  r  r  r   r  r   r  r  r  r  r"   r"   r"   r#   rS      s
  $8$
	




$




5
W


 	


	

	&

+!


3
#%rS   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   rX   r   r6   r;   rY   )rk   rH   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sJ t|| |jddd	}t
|jd tjg}|j|d jksJ 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   rX   r   r   r4   r6   r;   rY   )rk   r%  Ztz_naive_fixturer   rH   r  rM   r"   r"   r#   'test_min_max_dt64_with_NaT_skipna_false  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   rX   r   r   r   rY   r6   r;   )rk   rH   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>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   r@   rD  rX   r   rY   r6   r;   )rk   rH   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   rX   rY   )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_dtrM   rH   rI   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'   valrH   r   rI   rM   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  )r  r3   r  )r	   r   r   r   r6   r;   r   r"   r"   r#   test_frame_any_with_timedelta  s    
z5TestDataFrameReductions.test_frame_any_with_timedeltac                 C   sp   |dkr|j tjjdd |g d}d}tjt|d  t||d d W d    n1 sb0    Y  d S )NrT   zCount does not accept skipnar  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   r4  )r	   r   r   rY   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   r4  )r	   r   r   r  rY   r6   r;   r   r"   r"   r#   &test_reduction_timedelta_smallest_unit=  s    z>TestDataFrameReductions.test_reduction_timedelta_smallest_unitN)r  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   sT  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 s0    Y  tjtdd  t||dd	 W d    n1 s0    Y  tjtdd  t||d d	 W d    n1 s0    Y  tjtdd" tt||dd
 W d    n1 sF0    Y  d S )Nr   r(   r  r   )r4   rs  does not support reductionr0   Fr}  r,   )r   to_framer=   r>   rj   r5   r@   )rk   r   serrH   r"   r"   r#   .test_any_all_categorical_dtype_nuisance_columnP  s    *,.0zBTestNuisanceColumns.test_any_all_categorical_dtype_nuisance_columnc                 C   sL  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 s0    Y  tjtdd |  W d    n1 s0    Y  |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  d S )Nr   )r(   r   r   r   r~   r  r0   Fr-  r   )r	   r   r=   r>   rj   rW   rz   r   )rk   rH   r  r"   r"   r#   -test_median_categorical_dtype_nuisance_columnf  s    &*&,zATestNuisanceColumns.test_median_categorical_dtype_nuisance_columnrX   rY   c                 C   s  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 s0    Y  tjtdd  t||dd W d    n1 s0    Y  tjtdd t||  W d    n1 s0    Y  tjtdd" tt||dd	 W d    n1 sJ0    Y  |d t	|d
< tjtdd t||  W d    n1 s0    Y  tjtdd" tt||dd	 W d    n1 s0    Y  d S )N)r   r   r   r   F)Zorderedr   zis not ordered for operationr0   r-  r   r,   r   )
r   r   r  r=   r>   rj   r5   r@   rz   r   )rk   r   catr  rH   r"   r"   r#   :test_min_max_categorical_dtype_non_ordered_nuisance_column  s$    
*,.,2,zNTestNuisanceColumns.test_min_max_categorical_dtype_non_ordered_nuisance_columnN)	r  r  r  r=   r   r  r  r  r  r"   r"   r"   r#   r  O  s
   
r  c                   @   sJ  e Zd Zejddejdejfdejdej	fdejdejfdejdejfdej
dejfdej
dejfdejdejfdejdejfdejdejfdejdejfdejdejfgdd Zejddejejfdejejfdejejfdejejfdej
ejfdej
ejfdejejfdejejfdejejfdejejfdejejfgd	d
 Zejdddderjdndfddder~dndfddderdndfddddderdndfddderdndfdddddgdd Zejddderdndfdderdndfdddderdndfdder*dndfddddd gd!d" Zd#S )$TestEmptyDataFrameReductionsz#opname, dtype, exp_value, exp_dtyper-   r   r.   r(   c                 C   sB   t g g d|d}t||dd}t||g|d}t|| d S Nr   r(   r   r   r5  r)  rk   rB   r4   Z	exp_value	exp_dtyperH   rI   rM   r"   r"   r#   test_df_empty_min_count_0  s    z6TestEmptyDataFrameReductions.test_df_empty_min_count_0zopname, dtype, exp_dtypec                 C   sF   t g g d|d}t||dd}ttjtjg|d}t|| d S Nr  r   r(   r5  )r	   r5   r   r@   rA   r6   r;   rk   rB   r4   r  rH   rI   rM   r"   r"   r#   test_df_empty_min_count_1  s    z6TestEmptyDataFrameReductions.test_df_empty_min_count_1ZInt8ZInt32rP  )r-   rP  r   rP  )r.   rP  r(   rP  ZUInt8ZUInt32UInt64)r-   r  r   r  )r.   r  r(   r  )r-   Float32r   r  )r.   r  r(   r  )r-   rQ  r   rQ  c                 C   sB   t g g d|d}t||dd}t||g|d}t|| d S r  r)  r  r"   r"   r#   "test_df_empty_nullable_min_count_0  s    z?TestEmptyDataFrameReductions.test_df_empty_nullable_min_count_0)r-   rP  rP  )r.   rP  rP  )r-   r  r  )r.   r  r  )r-   r  r  )r.   r  r  )r-   rQ  rQ  c                 C   sF   t g g d|d}t||dd}ttjtjg|d}t|| d S r  )r	   r5   r   r   NAr6   r;   r  r"   r"   r#   "test_df_empty_nullable_min_count_1  s    z?TestEmptyDataFrameReductions.test_df_empty_nullable_min_count_1N)r  r  r  r=   r   r  r@   Zint8r   int_Zuint8Zuint64Zuintrx   r.  r  r  is_windows_or_is32r  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 sbJ |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#  r@   r   rz   r   viewZreshaper	   r  r4   r  r-   r   r   r  r   r6   r;   )r$  r%  r   r   rH   rI   rM   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   rP  r   )r	   rb  rz   r-   r   r6   r;   )rH   rI   rM   r"   r"   r#   !test_mixed_frame_with_integer_sum"  s
    r  re   )TFNr   rX   rY   c                 C   sp   t d}t|jd |jgt d}td|i}t|| |d}tt|| gdt	dgddd}t
|| d S )Nr   r   rP  r-  r   r4  )r@   Ziinfor   rY   rX   r   Z
Int64Dtyper	   r5   r
   r6   r;   )r   re   Z
int64_infor  rH   rI   rM   r"   r"   r#   test_minmax_extensionarray+  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  d S )Nr(   g?r   r   r  r0   )r	   r=   r>   rj   r-   )r  rH   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/  re   r   z2unsupported operand type(s) for +: 'int' and 'str'r0   )r	   r.   r   r6   r;   rg   escaper=   r>   rj   r-   )rH   rI   rM   rm   r"   r"   r#   $test_prod_sum_min_count_mixed_objectC  s    

r  )rX   rY   rU   rW   r^   r_   r4   r.  rQ  c                 C   s   t tjdd|d}t|| d |d}|jtjd}| dv rzt	d}| dkrXd} t|| |d	d d
}t
|| ntt| |d d}||ksJ d S )Nr   )r   r   r   rd   >   r^   r_   r}   r_   r   F)r   r&   r,   )r	   r@   r   r   r   r5   Zto_numpyr.  r=   r   r6   r   )r   re   r4   rH   rI   Znp_arrZcomp_modrM   r"   r"   r#   'test_reduction_axis_none_returns_scalarP  s    
r  kernel)ZcorrcorrwithZcovrh  rW  r_   rY   rU   rW   rX   r.   quantiler]   r^   r\   r-   r[   c                 C   s   t g dtd}| dkr |fnd}dg d}| dkrPd}d	}d||g}tjt|d
 t|| |  W d    n1 s0    Y  d S )Nr   r=  r  r"   ra   )znot allowed for this dtypez%argument must be a string or a numberz"not supported between instances ofr   z*argument must be a string or a real numberrW   zTCannot convert \[\[<class 'object'> <class 'object'> <class 'object'>\]\] to numericzPCannot convert \[<class 'object'> <class 'object'> <class 'object'>\] to numericr0   )r	   r   rf   r=   r>   rj   r5   )r  rH   argsrm   Zmsg1rZ  r"   r"   r#   test_fails_on_non_numerice  s    	r  )r  r   rT   rh  rW  r_   r   rY   rU   rW   rX   rZ   r.   rV   r]   r^   r\   r-   r[   r/  r   c                 C   s|  t tg d|dtddtjdg|dd}t g ddd	tjd
gd}| dv rVd}n*| dv rdd}n| dv r||ds|d}n|}i }| dvr||d< | dv r||d< d }d }	|s| dv rt}d|  d}	tj	||	d( t
|| f ddi|}
W d    n1 s0    Y  tj	||	d( t
|| f ddi|}W d    n1 sN0    Y  | dvrl||}t|
| d S )Nr   r   r   r(   r~   r=  )r   r   r   r   r   r   r   r`   r   )r  r   boolean)r_   r   rU   rW   r]   r^   r\   r[   ZFloatrQ  )rT   rZ   r  r'   )r.   rV   r-   r/  )rh  rW  zThe behavior of DataFrame.z with all-NA valuesr0   r&   )r	   r   r   r  r@   rA   
startswithrV  r6   r7   r5   rz   r;   )r   r'   r/  Zany_numeric_ea_dtyperH   Zexpected_dfr+  r?  rY  rm   rI   rM   r"   r"   r#   test_numeric_ea_axis_1  sH    	
88

r  )TTFr   r   N)5datetimer   decimalr   rg   Zdateutil.tzr   numpyr@   r=   Zpandas.compatr   r   Zpandas.util._test_decoratorsutilZ_test_decoratorsr  Zpandasr   r   r   r	   r
   r   r   r   r   r   r   r   Zpandas._testingZ_testingr6   Zpandas.corer   r   r  rR   rS   r  r  r  r  r  r   r  r  r   r  r  r  r  r  r"   r"   r"   r#   <module>   sr   4      
n           0R_"	

