o
    ҷhW                     @   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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 rge pie Z&e poe Z'					
			d7d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/0dg de	j/0dddgd d! Z1e	j/0d"ed#ej2gd$d% Z3d&d' Z4e	j/0dg d(e	j/0dd	d
ge	j/0d)d*d+gd,d- Z5e	j/0d.g d/d0d1 Z6e	j/0dg d2e	j/0d3d d4gd5d6 Z7dS )8    )	timedelta)DecimalN)tzlocal)IS64is_platform_windows)np_version_gt2)CategoricalCategoricalDtype	DataFrameIndexSeries	Timestamp
date_rangeisnanotnato_datetimeto_timedelta)
algorithmsnanopsTFh㈵>:0yE>c	                    s  t || }	|rctdtdddi}
td t |
|  }W d   n1 s'w   Y  t|ts3J tt|
|
d< td t |
|  }W d   n1 sQw   Y  t|ts]J t|scJ |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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 sw   Y  |r=|tj }t || d	d}t || dd}| dv r?| dkrdnd	}t||j|jd}t
|| t||j|jd}t
|| dS dS 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                    
    | j S Nvaluesxalternative U/var/www/html/venv/lib/python3.10/site-packages/pandas/tests/frame/test_reductions.pywrapper]      
z$assert_stat_op_calc.<locals>.wrapperr   Faxisskipna   )check_dtypertolatolr)   )r-   r.   )sumprodNo axis named 2matchr1   indexdtype)getattrr
   r   tmassert_produces_warning
isinstancer   rangelen_make_skipna_wrapperassert_series_equalapplyr   r7   pytestraises
ValueErrornpnanr6   )opnamer#   frame
has_skipnar,   check_datesr-   r.   skipna_alternativefdfresultr&   skipna_wrapperresult0result1expected	lcd_dtypeall_nar0r1unitr$   r"   r%   assert_stat_op_calc(   sz   
%




rW   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 ZHdd ZIejdddd)gfdddgfgdd ZJdd ZKejdddgejdddgejddRdIgdd ZLejdddgejdddgdd ZMejdddgdd ZNddĄ ZOejdddgejdddgejddIdRgddǄ ZPejdȡddʄ ZQdd̄ ZRejdg ejSi dRfejTi dIfejSdg idRfejTdg idIfejSddRdRgidRfejTddRdRgidRfejSddIdRgidIfejTddIdRgidRfejSddIdIgidIfejTddIdIgidIfejSdRgdRgdϜdRfejTdRgdRgdϜdRfejSdRdRgdRdIgdϜdIfejTdRdRgdRdIgdϜdRfejTdeUddLgdd+idRfejSdeUddLgdd+idIfejTdeUddge.d+idRfejSdeUddge.d+idIfeejTdeUddgdd+idReejTdeUddgdd+idReejSdeUddgdd+idIeejSdeUddgdd+idIeejTdeUdd'gdd+idIeejTdeUdd'gdd+idIeejSdeUdd'gdd+idIeejSdeUdd'gdd+idIeejTdeUddgdd+idReejSdeUddgdd+idIeejTdeUdd'gdd+idIeejSdeUdd'gdd+idIejTdeUddgdd+idIfejSdeUddgdd+idRfejTdeUdd'gdd+idIfejSdeUdd'gdd+idRfeejTeUddgdd+eUddgdd+dϜdIddل ZVddۄ ZWdd݄ ZXdd߄ ZYd8S )TestDataFrameAnalyticsr)   r   r+   rF   countr0   meanproductmedianminmaxnuniquevarstdsemskew)markskurtc                 C   s  |dv r|dks|dv rt |||d na|dv rd}n;|dkr*|dkr'd	}n0d
}n-|dkr1d}n&|dkrD|dkrAdddg}nd}n|dv rKd}n|dkrWtjdtjd}tjt|d t |||d W d    n1 sqw   Y  |dkrt |||dd d S d S )N)r0   r]   r^   r   rY   r_   r/   )r`   ra   rb   rc   re   z(could not convert string to float: 'bar'r[   r+   z2can't multiply sequence by non-int of type 'float'z0can't multiply sequence by non-int of type 'str'r0   z7unsupported operand type\(s\) for \+: 'float' and 'str'rZ   |z%Could not convert \['.*'\] to numericz/Could not convert string '(bar){30}' to numericr]   r^   z<'[><]=' not supported between instances of 'float' and 'str'r\   z Cannot convert \[.*\] to numeric)flagsr3   r_   Tr)   numeric_only)r8   joinrecompileSrA   rB   	TypeError)selffloat_string_framer)   rF   msgr$   r$   r%   #test_stat_op_api_float_string_frame   s8   z:TestDataFrameAnalytics.test_stat_op_api_float_string_framec                 C   s   t |||dd d S )NFrj   r8   )rq   float_framer)   rF   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   r0   sr$   r$   r%   rY      s   z7TestDataFrameAnalytics.test_stat_op_calc.<locals>.countc                 S   s   t t|  S r   )r=   r   unique1ddropnarx   r$   r$   r%   r_      s   z9TestDataFrameAnalytics.test_stat_op_calc.<locals>.nuniquec                 S      t j| ddS Nr+   ddof)rD   r`   r    r$   r$   r%   r`         z5TestDataFrameAnalytics.test_stat_op_calc.<locals>.varc                 S   r|   r}   )rD   ra   r    r$   r$   r%   ra      r   z5TestDataFrameAnalytics.test_stat_op_calc.<locals>.stdc                 S   s   t j| ddt t|  S r}   )rD   ra   sqrtr=   r    r$   r$   r%   rb      s   z5TestDataFrameAnalytics.test_stat_op_calc.<locals>.semr_   FT)rH   r,   rI   r0   float32gMbP?)r,   r-   )rJ   rZ   rI   r[   r`   ra   rb   rY   )rW   rD   r0   astypenansumrZ   r1   nanprod)rq   float_frame_with_namixed_float_framerY   r_   r`   ra   rb   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                        t | dk r	tjS  j| ddS )N   Fbias)r=   rD   rE   rc   r    sp_statsr$   r%   skewness      zHTestDataFrameAnalytics.test_stat_op_calc_skew_kurtosis.<locals>.skewnessc                    r   )N   Fr   )r=   rD   rE   kurtosisr    r   r$   r%   re   %  r   zDTestDataFrameAnalytics.test_stat_op_calc_skew_kurtosis.<locals>.kurtrc   re   )rA   importorskiprW   )rq   r   r   re   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   anyrD   rE   r\   r    r$   r$   r%   r&   .  s   
z3TestDataFrameAnalytics.test_median.<locals>.wrapperr\   Tr   F)r,   rI   )rW   )rq   r   	int_framer&   r$   r$   r%   test_median-  s
   

z"TestDataFrameAnalytics.test_medianmethod)r0   rZ   r1   r`   ra   rc   r]   r^   rL   )gȃw@Ba@gCVZg
?Z.F?)r   r           )g94c4?g@}jX?gNr   r   cfoobarbazOr5   r   r   r   r   r+   r   r7   z0ignore:Mismatched null-like values:FutureWarningc                 C   sj   |j jtjks	J t|||d}t|d||dt}|dv r-|dv r-d || < t	|| d S )Nr/   f8)r+   columnsrh   )
r   r7   rD   object_r8   r   objectr   r9   r?   )rq   r   rL   r)   rM   rQ   r$   r$   r%   %test_stat_operators_attempt_obj_array8  s   z<TestDataFrameAnalytics.test_stat_operators_attempt_obj_arrayop)rZ   ra   r`   rc   re   rb   c              	   C   s   t g dg dg dd}dg d}tjt|d t||  W d    n1 s-w   Y  tdd	5 dg d}tjt|d t||  W d    n1 sXw   Y  W d    d S W d    d S 1 spw   Y  d S )
Nr+   r   r   r   )      ?       @      @      @r   r   r   d)intfloatstrrg   )Could not convertcould not convertz"can't multiply sequence by non-intr3   use_bottleneckF)r
   rl   rA   rB   rp   r8   pdoption_context)rq   r   rL   rs   r$   r$   r%   test_mixed_ops\  s,   "z%TestDataFrameAnalytics.test_mixed_opsc                 C   sr   t g dg dg dd}|jg dd |jdd}t|jtjg dtd	 |j	jd
d}t
|| d S )N)TTFFF)
         (   2   )r   r   r   r   e)	bool_dataint_datastring_datar   r   r/   )r      abcder   r+   )r
   reindexr0   r9   assert_numpy_array_equalr   rD   arrayr   Tr?   )rq   rL   testaltr$   r$   r%   test_reduce_mixed_frame{  s   z.TestDataFrameAnalytics.test_reduce_mixed_framec                 C   s   t g dg ddtjdgd}t| tdddd t|jddtdddd t|jdd	tdddd
 t|jdddtdddd
 d S )Nr+   r+   r+   r+   r   r   r+   r   ABCr   Fr{   r/   r   )r)   r{   )r
   rD   rE   r9   r?   r_   r   rq   rL   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   r6   r
   r   rZ   r   r9   r?   rq   r   rL   rM   rQ   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 sbw   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 typer3   r   r   g@gL@r5   )
r   r
   rA   rB   rp   rZ   r   r   r9   r?   )rq   r   rL   rM   rQ   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  rCJ tdd t	j
|d	d
}|d	k  rYJ W d    d S 1 sdw   Y  d S )Nr   r~   c                 S      | j ddS Nr   r~   )ra   r    r$   r$   r%   <lambda>      z5TestDataFrameAnalytics.test_var_std.<locals>.<lambda>c                 S   r   r   )r`   r    r$   r$   r%   r     r   r   r+     r   r   r/   r   F)ra   r@   r9   assert_almost_equalr`   rD   repeatrandomdefault_rngr   nanvarr   r   r   rq   datetime_framerM   rQ   arrr$   r$   r%   test_var_std  s   "z#TestDataFrameAnalytics.test_var_stdmeth)rb   r`   ra   c                 C   sf  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 sw   Y  d}tjt|d t||d	dd W d    d S 1 sw   Y  d S )Nr   )r   r   r   r   r   100)r   r   r   r+   Trj   r   r   r/   z6unsupported operand type\(s\) for -: 'float' and 'str'r3   Fz&could not convert string to float: 'a')r
   rD   r   r   standard_normalr   r   locr8   r9   r?   rA   rB   rp   )rq   r   df1df2rM   rQ   rs   r$   r$   r%   test_numeric_only_flag  s4   

"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 
 r0J td
d tj	|dd	}|dk 
 rFJ W d    d S 1 sQw   Y  d S )Nr   r~   c                 S   s   | j ddtt|  S r   )ra   rD   r   r=   r    r$   r$   r%   r     s    z1TestDataFrameAnalytics.test_sem.<locals>.<lambda>r   r   r   r   r/   r   F)rb   r@   r9   r   rD   r   r   r   r   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   rE   rE   rE   r   r+   r   r   )HIJKLMNr  r   r  r  )rE   r   rE   rE   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   rE   r   rE   r   int64r   )r   r   r   r  r  r  r  r
  r  r  r  r  r  r  r   )r
   rD   rE   r   r   r   arangesortedkeysmoder9   assert_frame_equal)rq   r{   rQ   rL   rM   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 |jdd}|jddjdd}W d    n1 s5w   Y  t	|| d S )Nr   r   Fr   )byT)drop)
r
   rD   rE   r9   r:   UserWarningr  sort_valuesreset_indexr  )rq   rL   rQ   rM   r$   r$   r%   test_mode_sortwarningS  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   r6   )r
   r  r   rD   r  r9   r  rq   rL   rM   rQ   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s=J |jd |jd ksIJ |jdd}||jd k sZJ | }|jd |jd ksjJ |jd |jd ksvJ |jdd}||d
 k sJ |	 }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sYJ |d( |d'  |d+< |  |d) jd*ksqJ |d+ jd*ks{J d S ),Nz2012-1-1r   r  r   freqz2012-1-220120101r   )minutessecondsr   r   r   r   r   r   )r   r   r+   )r   r   r/   )r   r   )r   r   r   r   r  20130101r  i1  r(  )daysr   Trj   )r+   r+   r   r   20130102r   20130105)timetime2r0  r/  off1timedelta64[ns]off2)r
   r   r   r   r]   ilocr   allr^   absr9   r  copyr   r   	Timedeltar   r?   r7   _consolidate_inplace)rq   rL   diffsrM   result2rQ   mixedr$   r$   r%   test_operators_timedelta64f  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r7  )r+  Fr*   r   r   r2  r5   r+   r(   r   r  )
r   timedelta_ranger
   r  r4  ra   r   r9   r?   r8  )rq   tdirL   rM   rQ   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   |r|rt dd |D rtjjdd}|j| tdt|i}|j|d}|r3t dd |D r=t	dt
jidd	}nt	dd
idd	}t|| d S )Nc                 s       | ]}|t ju V  qd S r   r   r  .0valuer$   r$   r%   	<genexpr>      zFTestDataFrameAnalytics.test_std_datetime64_with_nat.<locals>.<genexpr>z=GH#51446: Incorrect type inference on NaT in reduction resultreasonr   r@  c                 s   rD  r   rE  rF  r$   r$   r%   rI    rJ  r2  r   l     "R: )r5  rA   markxfailnode
add_markerr
   r   ra   r   r   r  r9   r?   )	rq   r   r*   using_array_managerrequestrM  rL   rM   rQ   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sJ t|dks#J t|dks+J d S )Nr   r+   )r
   r0   r;   r   r=   )rq   empty_frameaxis0axis1r$   r$   r%   test_sum_corner  s   

z&TestDataFrameAnalytics.test_sum_cornerr6   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   r5  boolrY   r  r   r5   r
   r8   r   r9   r?   )rq   all_reductionsr6   rQ  rL   rM   expected_dtyperQ   r$   r$   r%   test_axis_1_empty  s   z(TestDataFrameAnalytics.test_axis_1_emptyzmethod, unit)r0   r   )r1   r+   rk   )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   rk   float64r5   r+   )rk   	min_countr   r   r   r   r   r   r      )r
   rD   rE   r8   r   r9   r?   r4  )rq   r   rV   rk   idxrL   rM   rQ   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]r7   r6   r_  r+   )	r
   rD   rE   r@   r   r0   r   r9   r?   )rq   ra  rL   r   rM   rQ   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   r`  )r!   yr   re  r!   rh  r   )r
   r0   r   rD   rE   r9   r?   r"  r$   r$   r%   test_sum_nanops_min_count<  s   z0TestDataFrameAnalytics.test_sum_nanops_min_count
float_type)float16r   r^  zkwargs, expected_result)r)   r_  g	@g333333@r(   c                 C   sL   t g dddtjgd|d}|jdi |}t||}t|| d S )N)r   gffffff@皙@g@r   r   r   r   r$   )r
   rD   rE   r0   r   r   r9   r?   rq   rj  kwargsexpected_resultrL   rM   rQ   r$   r$   r%   test_sum_nanops_dtype_min_countC  s   z6TestDataFrameAnalytics.test_sum_nanops_dtype_min_countr   r   c                 C   sL   t g dddtjgd|d}|jdi |}t||}t|| d S )N)r   r   rl  r   rm  r   r$   )r
   rD   rE   r1   r   r   r9   r?   rn  r$   r$   r%    test_prod_nanops_dtype_min_countS  s   z7TestDataFrameAnalytics.test_prod_nanops_dtype_min_countc                 C   s6   |j t}t||j|jd}|td }|  d S )Nr6   r   r+   )r   r   r   r
   r6   r   r   r0   )rq   rv   r   rG   deltasr$   r$   r%   test_sum_objecte  s   z&TestDataFrameAnalytics.test_sum_objectc                 C   s"   t |}|d |d d S )Nr+   r   )rD   isnanr0   )rq   rv   boolsr$   r$   r%   test_sum_boolk  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    d S 1 s)w   Y  d S )	Nr   r   r   r   r   )r   r   r   z does not support reduction 'sum'r3   )r
   r   r   rA   rB   rp   r0   r   r$   r$   r%   test_sum_mixed_datetimeq  s   
"z.TestDataFrameAnalytics.test_sum_mixed_datetimec                 C   s   t jtdd |jdd W d    n1 sw   Y  t jtdd |jdd W d    n1 s5w   Y  |d dk|d< |d}|d |d j ksTJ d S )	Nr   r3   r   r/   r   r+   r   rX  )rA   rB   rp   rZ   r   )rq   rv   rr   meansr$   r$   r%   test_mean_cornery  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    d S 1 sDw   Y  d S )Nr   
2016-01-01r   1D2016r   r$  )r   r   r   r  Tr]  r   z'mean is not implemented for PeriodArrayr3   )r
   rD   r  r   r   rA  period_rangerZ   r   r9   r?   rA   rB   rp   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    d S 1 sQw   Y  d S )Nr   r|  r   r}  r   Fr]  r+   )r+   r   )r+   r   r~  r   r$  r  z"mean is not implemented for Periodr3   )r
   rD   r  r   r   rA  rZ   r   r   r9   r?   r  rA   rB   rp   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)	rD   r   r   integersr
   rZ   r   r9   r?   )rq   r   rL   rM   rQ   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w   Y  t jtdd |d W d    n1 s3w   Y  t jtdd |d W d    n1 sOw   Y  t jtdd |d W d    d S 1 slw   Y  d S )Nr   r3   r+   r   )rA   rB   rp   ra   r`   rZ   rc   )rq   rr   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sJ d S )Nr+   r   rs  r/   r   )r
   r<   r   r0   )rq   rL   rw  r$   r$   r%   test_sum_bools  s   z%TestDataFrameAnalytics.test_sum_boolsr*   c              	   C      |}t j|jdd< t j|jdddd f< ||fD ]c}d }|du s&|dkr.||u r,d nt}d}tj||d	 |j||d
}	W d    n1 sIw   Y  d}
tj||
d	 |jtj||d
}W d    n1 skw   Y  |	|j
j}t|	| qd S )Nr   r      r   r?  Fr+   z3The behavior of DataFrame.idxmin with all-NA valuesr3   r(   zThe behavior of Series.idxmin)rD   rE   r4  FutureWarningr9   r:   idxminr@   r   r   r6   r7   r?   rq   rv   r   r*   r)   rG   rL   warnrs   rM   msg2rQ   r$   r$   r%   test_idxmin  $   z"TestDataFrameAnalytics.test_idxminz3ignore:PeriodDtype\[B\] is deprecated:FutureWarningc                 C   H   |dkr
t |d}nt |d}|j||d}t|jd}t|| d S Nr   r   r   r(   r   )r
   r  r   r7   r9   r?   rq   r6   r*   r)   rG   rM   rQ   r$   r$   r%   test_idxmin_empty     
z(TestDataFrameAnalytics.test_idxmin_emptyc                 C   f   t g dg dtdd}|j|d}|r!t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
   listr  r   r9   r?   rq   rk   rL   rM   rQ   r$   r$   r%   test_idxmin_numeric_only     z/TestDataFrameAnalytics.test_idxmin_numeric_onlyc                 C   H   |}d}t jt|d |jdd W d    d S 1 sw   Y  d S Nz)No axis named 2 for object type DataFramer3   r   r/   )rA   rB   rC   r  rq   rv   rG   rs   r$   r$   r%   test_idxmin_axis_2  
   "z)TestDataFrameAnalytics.test_idxmin_axis_2c              	   C   r  )Nr   r   r  r   r?  Fr+   z3The behavior of DataFrame.idxmax with all-NA valuesr3   r(   zThe behavior of Series.idxmax)rD   rE   r4  r  r9   r:   idxmaxr@   r   r   r6   r7   r?   r  r$   r$   r%   test_idxmax  r  z"TestDataFrameAnalytics.test_idxmaxc                 C   r  r  )r
   r  r   r7   r9   r?   r  r$   r$   r%   test_idxmax_empty  r  z(TestDataFrameAnalytics.test_idxmax_emptyc                 C   r  )Nr  r  r  r   r]  r+   r   r   r   r   )r+   r   r+   )r
   r  r  r   r9   r?   r  r$   r$   r%   test_idxmax_numeric_only  r  z/TestDataFrameAnalytics.test_idxmax_numeric_onlyc                 C   s   t d tg dg dddd}| }tddgd	d
gd}t|| | }tddgd	d
gd}t|| td	g didd}|jdd}tdgd	gd}t|| |jdd}tdgd	gd}t|| d S )Npyarrowr  r  rm  zint64[pyarrow]r   r+   r   r   r   r   r   )r   r   r   zstring[pyarrow]Fr]  )rA   r   r
   r  r   r9   r?   r  r"  r$   r$   r%   test_idxmax_arrow_types%  s   
z.TestDataFrameAnalytics.test_idxmax_arrow_typesc                 C   r  r  )rA   rB   rC   r  r  r$   r$   r%   test_idxmax_axis_2;  r  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 )Nr|  r   r   )r   r   r+   r+  T)deepr   )r+   r   r   r   )r   r   r   )r   r   r   )r+   r   r   r   r   )r   r   r+   r   )r   r
   r<   r7  r  r   r9   r?   r  r   r  r   r9  rq   dtirL   rM   rQ   r$   r$   r%   test_idxmax_mixed_dtypeA  s.   *z.TestDataFrameAnalytics.test_idxmax_mixed_dtypezop, expected_valuer  r  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   r  r     r  r  )r   r   r   r+   r   r   )IDrH  r  r   r  rH  r  r  )namer7   r   )r
   groupbyr8   r   r9   r  )rq   r   expected_valuerL   rM   rQ   r$   r$   r%   !test_idxmax_idxmin_convert_dtypesg  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 )Nr|  r   r   r+  )r   r   Tr>  )r   r   r+   r/   )r   r   r   )r   r   r   )r   r
   r   r  r4  r9  r  r   r9   r?   r  r  r$   r$   r%   "test_idxmax_dt64_multicolumn_axis1}  s   z9TestDataFrameAnalytics.test_idxmax_dt64_multicolumn_axis1r   r5  	bool_onlyc                 C   s8   |}t jdt|dk|d< t||||d d S )Nr   g      ?_bool_r)   r  )rD   r   r   r   r=   r8   )rq   rF   r)   r  rr   r<  r$   r$   r%   test_any_all_mixed_float  s   z/TestDataFrameAnalytics.test_any_all_mixed_floatc                 C   s   t |||dd d S )NFr  ru   )rq   rF   r)   bool_frame_with_nar$   r$   r%   test_any_all_bool_with_na  s   z0TestDataFrameAnalytics.test_any_all_bool_with_nac                    sX  | 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 srw   Y  |tj	 }	t|	|dd
}
t|	|d	d
}|dkr|

 rJ |
 rJ d S |
 sJ | sJ d S )NTc                    s   |   j} |S r   )r{   r   )r!   nonar"   r$   r%   rN     s   
zFTestDataFrameAnalytics.test_any_all_bool_frame.<locals>.skipna_wrapperc                    r   r   r   r    r"   r$   r%   r&     r'   z?TestDataFrameAnalytics.test_any_all_bool_frame.<locals>.wrapperr   Fr(   r+   r/   )r,   r2   r3   r   r   )fillnar8   rD   r9   r?   r@   rA   rB   rC   rE   r   r5  )rq   rF   r  rG   rK   rN   r&   rO   rP   rS   rT   rU   r$   r"   r%   test_any_all_bool_frame  s4   





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 smJ |jd d
 }|du s{J |dg jd d
 }|du sJ d S )N)TFF)TTF)TTTr   r   r   r   r   r+   r/   Tr  r  Fr   )r
   r   r   r9   r?   r5  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
   rD   rE   r8   r   r9   r?   )rq   r)   r  r*   rL   rM   rQ   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)
rD   rE   r   r   r  r
   r   r   r9   r?   )rq   
float_datadatetime_datarL   rM   rQ   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   rg  )NNN)col1col2col3Tr  rd  )FFT)r  r  r  col4r  F)r
   r5  r   rD   bool_r9   r?   r"  r$   r$   r%   test_any_all_bool_only  s    	z-TestDataFrameAnalytics.test_any_all_bool_onlyzfunc, data, expectedr   r   r   r   zM8[ns]zM8[ns, UTC]rc  categoryr   r   c                 C   s~  t |}tdd |jD rNtjtdd || W d    n1 s$w   Y  tjtdd tt ||jd d W d    d S 1 sGw   Y  d S d}|jdd  r]t	}nd }t
j||d	d
 ||}W d    n1 svw   Y  t|tjsJ | |u sJ t
j||d tt ||jd d}W d    n1 sw   Y  t|tjsJ | |u sJ d S )Nc                 s   s    | ]}t |tV  qd S r   )r;   r	   )rG  r!   r$   r$   r%   rI  ^  rJ  z>TestDataFrameAnalytics.test_any_all_np_func.<locals>.<genexpr>z)dtype category does not support reductionr3   r/   z0'(any|all)' with datetime64 dtypes is deprecatedc                 S   s
   | j dkS )Nr  )kindr    r$   r$   r%   r   k  s   
 z=TestDataFrameAnalytics.test_any_all_np_func.<locals>.<lambda>F)r4   check_stacklevel)r
   r   dtypesrA   rB   rp   r8   __name__r@   r  r9   r:   r;   rD   r  r  )rq   funcr  rQ   rs   r  rM   r$   r$   r%   test_any_all_np_func'  s4   5
"
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 s$J d S )Nr   r   r   TF)rD   r5  r
   r  r   )rq   rM   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
saJ |j
dd	d
}tdgdgd}t	|| |dg j
dd	d
}t	|| |j
dd d
sJ d S )Nr   r   TFr   r   r  r  r   )r  r)   r   r   )r
   r   r   r9  r   _get_bool_datar9   r  r5  r?   r   )rq   rL   resrQ   r$   r$   r%   test_any_all_object_bool_only  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    d S 1 sFw   Y  d S )
N)r   r   r   r   r   r   r+   r   )lowerr)   )ltlegtgeeqner/   )r
   rD   rE   r   r9   r:   clipr8   )rq   rL   df_nanry   s_nanr   r$   r$   r%   test_series_broadcasting  s   "z/TestDataFrameAnalytics.test_series_broadcasting)Zr  
__module____qualname__rA   rM  parametrizeparamtdskip_if_no_scipyrt   rw   r   r   r   r
   rD   rE   r   filterwarningsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r   r#  r=  rC  rS  rW  r9   makeRangeIndexmakeDateIndexmakeNumericIndexr   r   makePeriodIndexr\  rb  rf  ri  rq  rr  ru  rx  ry  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  r   r5  r   r  r  r  r  r$   r$   r$   r%   rX      sT   $8$
	




$





5W


 	


	

	&

+!


	
"#$%'
3#%rX   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d	e
f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   r]   r   r9   r?   r^   )rq   rL   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sBJ t|| |jddd	}t
|jd tjg}|j|d jkscJ 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:00rm  r+   Fr(   )r   r   r   )r   r   )r;   r   r   rA   skipr
   r   r   r  r]   r   r   r7   r9   r?   r^   )rq   rR  tz_naive_fixturer   rL   r  rQ   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s!J |jddjtju | tju ks4J t	|jdd| t	|jdd| d S )Nr!   r   r/   r+   )
r
   r   r   r]   r!   r   r  r^   r9   r?   )rq   rL   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s2J t	|jdd| t	|jdd| d S )Nr!   r   r   r/   r+   )
r
   r   r   rD   rv  r]   r!   r^   r9   r?   )rq   rL   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   r]   r^   c                 C   s<   t |}t|g}t|g}t||dd}t|| d S )Nr+   r/   )r   r   r
   r8   r9   r?   )rq   r  r   
initial_dtrQ   rL   rM   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}|r0ttj||g}n	ttjtj|g}t|| d S )Nz
1900-01-01T)utcrm  r+   r(   )r   r
   r   r   r  r8   r9   r?   )rq   r   r*   valrL   r   rM   rQ   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   ry   r+   ms)r   tr/   FTr   r  )r  r6   r  )r
   r   r   r   r9   r?   r"  r$   r$   r%   test_frame_any_with_timedelta%  s   
z5TestDataFrameReductions.test_frame_any_with_timedeltac                 C   sr   |dkr|j tjjdd |g d}d}tjt|d t||d d W d    d S 1 s2w   Y  d S )NrY   zCount does not accept skipnarK  r   zAFor argument "skipna" expected type bool, received type NoneType.r3   r@  )rO  rP  rA   rM  rN  rB   rC   r8   )rq   rR  frame_or_seriesrZ  objrs   r$   r$   r%   "test_reductions_skipna_none_raises6  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]rm  r   r   rd  )r
   r   r   r^   r9   r?   r"  r$   r$   r%   &test_reduction_timestamp_smallest_unitB  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]rm  r   r   rd  )r
   r   r   r8  r^   r9   r?   r"  r$   r$   r%   &test_reduction_timedelta_smallest_unitU  s   z>TestDataFrameReductions.test_reduction_timedelta_smallest_unitN)r  r  r  r  r  r  r  rA   rM  r  r   r  r  r  r  r  skip_array_manager_invalid_testr  &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   r5  c                 C   sR  t ddgddd}| }tjtdd t||  W d    n1 s%w   Y  tjtdd tt|| W d    n1 sCw   Y  tjtdd t||dd	 W d    n1 sbw   Y  tjtdd t||d d	 W d    n1 sw   Y  tjtdd tt||dd
 W d    d S 1 sw   Y  d S )Nr   r+   r  r   )r7   r  does not support reductionr3   Fr  r/   )r   to_framerA   rB   rp   r8   rD   )rq   r   serrL   r$   r$   r%   .test_any_all_categorical_dtype_nuisance_columnh  s"   "zBTestNuisanceColumns.test_any_all_categorical_dtype_nuisance_columnc                 C   sJ  t dtg di}|d }tjtdd |  W d    n1 s$w   Y  tjtdd |jdd W d    n1 sAw   Y  tjtdd |  W d    n1 s\w   Y  |d t|d< tjtdd |jdd W d    n1 sw   Y  tjtdd |  W d    d S 1 sw   Y  d S )Nr   )r+   r   r   r   r   r  r3   Fr]  r   )r
   r   rA   rB   rp   r\   r   r   )rq   rL   r  r$   r$   r%   -test_median_categorical_dtype_nuisance_column~  s$   


"zATestNuisanceColumns.test_median_categorical_dtype_nuisance_columnr]   r^   c                 C   s  t g ddd}t|}|d}tjtdd t||  W d    n1 s)w   Y  tjtdd tt|| W d    n1 sGw   Y  tjtdd t||dd W d    n1 sfw   Y  tjtdd t||  W d    n1 sw   Y  tjtdd tt||dd	 W d    n1 sw   Y  |d t	|d
< tjtdd t||  W d    n1 sw   Y  tjtdd tt||dd	 W d    d S 1 sw   Y  d S )N)r   r   r   r   F)orderedr   zis not ordered for operationr3   r]  r   r/   r   )
r   r   r  rA   rB   rp   r8   rD   r   r   )rq   r   catr  rL   r$   r$   r%   :test_min_max_categorical_dtype_non_ordered_nuisance_column  s2   
"zNTestNuisanceColumns.test_min_max_categorical_dtype_non_ordered_nuisance_columnN)	r  r  r  rA   rM  r  r  r  r  r$   r$   r$   r%   r  g  s    
r  c                   @   s<  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rdndfddderd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rd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_dtyper0   r   r1   r+   c                 C   B   t g g d|d}t||dd}t||g|d}t|| d S Nr   r+   r   r   re  rY  rq   rF   r7   	exp_value	exp_dtyperL   rM   rQ   r$   r$   r%   test_df_empty_min_count_0  s   z6TestEmptyDataFrameReductions.test_df_empty_min_count_0zopname, dtype, exp_dtypec                 C   F   t g g d|d}t||dd}ttjtjg|d}t|| d S Nr  r   r+   re  )r
   r8   r   rD   rE   r9   r?   rq   rF   r7   r  rL   rM   rQ   r$   r$   r%   test_df_empty_min_count_1     z6TestEmptyDataFrameReductions.test_df_empty_min_count_1Int8Int32r  )r0   r  r   r  )r1   r  r+   r  UInt8UInt32UInt64)r0   r&  r   r&  )r1   r&  r+   r&  )r0   Float32r   r'  )r1   r'  r+   r'  )r0   r  r   r  c                 C   r  r  rY  r  r$   r$   r%   "test_df_empty_nullable_min_count_0  s   z?TestEmptyDataFrameReductions.test_df_empty_nullable_min_count_0)r0   r  r  )r1   r  r  )r0   r&  r&  )r1   r&  r&  )r0   r'  r'  )r1   r'  r'  )r0   r  r  c                 C   r  r  )r
   r8   r   r   NAr9   r?   r  r$   r$   r%   "test_df_empty_nullable_min_count_1  r!  z?TestEmptyDataFrameReductions.test_df_empty_nullable_min_count_1N)r  r  r  rA   rM  r  rD   int8r  int_uint8uint64uintr   r^  r  r   is_windows_np2_or_is32r(  is_windows_or_is32r*  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 s1J |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 resultrK  r  zm8[s]r   r   Nat)r+  r+  Fr@  r   r*  r   r   r(   r+   r   r  )rA   rM  rN  rO  rP  rD   r  r   r  viewreshaper
   r  r7   r5  r0   r   r   r8  r  r9   r?   )rQ  rR  rM  r   rL   rM   rQ   r$   r$   r%   !test_sum_timedelta64_skipna_false  s0    


	r5  c                  C   sP   t ddggtdd} | ddi} |  }tddgddgd}t|| d S )Nr   r+   abr   r   r  r   )r
   r  r   r0   r   r9   r?   )rL   rM   rQ   r$   r$   r%   !test_mixed_frame_with_integer_sum<  s
   r7  rk   )TFNr   r]   r^   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   r  r]  r   rd  )rD   iinfor   r^   r]   r   
Int64Dtyper
   r8   r   r9   r?   )r   rk   
int64_infor  rL   rM   rQ   r$   r$   r%   test_minmax_extensionarrayE  s   

r;  ts_valuez
2000-01-01c                 C   sV   t dgdgdg| gd}tjtdd |  W d    d S 1 s$w   Y  d S )Nr+   g?r   r   r  r3   )r
   rA   rB   rp   r0   )r<  rL   r$   r$   r%   .test_frame_mixed_numeric_object_with_timestampU  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    d S 1 s9w   Y  d S )	N)r+   r   Tr   r+   F)r)   r_  rk   r   z2unsupported operand type(s) for +: 'int' and 'str'r3   )r
   r1   r   r9   r?   rm   escaperA   rB   rp   r0   )rL   rM   rQ   rs   r$   r$   r%   $test_prod_sum_min_count_mixed_object]  s   

"r?  )r]   r^   rZ   r\   rc   re   r7   r^  r  c                 C   s   t tjdd|d}t|| d |d}|jtjd}| dv r>t	d}| dkr,d} t|| |d	d d
}t
|| d S tt| |d d}||ksMJ d S )Nr   )r   r   r   rj   >   re   rc   r   re   r   F)r   r)   r/   )r
   rD   r   r   r   r8   to_numpyr^  rA   r   r9   r   )r   rk   r7   rL   rM   np_arrcomp_modrQ   r$   r$   r%   'test_reduction_axis_none_returns_scalarj  s   
rC  kernel)corrcorrwithcovr  r  re   r^   rZ   r\   r]   r1   quantilerb   rc   ra   r0   r`   c                 C   s   t g dtd}| dkr|fnd}dg d}| dkr(d}d	}d||g}tjt|d
 t|| |  W d    d S 1 sBw   Y  d S )Nr   rm  rF  r$   rg   )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 numberr\   zTCannot convert \[\[<class 'object'> <class 'object'> <class 'object'>\]\] to numericzPCannot convert \[<class 'object'> <class 'object'> <class 'object'>\] to numericr3   )r
   r   rl   rA   rB   rp   r8   )rD  rL   argsrs   msg1r  r$   r$   r%   test_fails_on_non_numeric  s   	"rK  )r5  r   rY   r  r  re   r   r^   rZ   r\   r]   r_   r1   r[   rb   rc   ra   r0   r`   r_  r   c                 C   sv  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 r+d}n| dv r2d}n| dv r>|ds>d}n|}i }| dvrJ||d< | dv rR||d< d }d }	|sd| dv rdt}d|  d}	tj	||	d t
|| dddi|}
W d    n1 sw   Y  tj	||	d t
|| dddi|}W d    n1 sw   Y  | dvr||}t|
| d S )Nr	  r   r   r+   r   rm  )r   r   r   r   r   r   r   rf   r  )r5  r   boolean)re   r   rZ   r\   rb   rc   ra   r`   Floatr  )rY   r_   rH  r*   )r1   r[   r0   r_  )r  r  zThe behavior of DataFrame.z with all-NA valuesr3   r)   r$   )r
   r   r   r)  rD   rE   
startswithr  r9   r:   r8   r   r?   )r   r*   r_  any_numeric_ea_dtyperL   expected_dfr[  ro  r  rs   rM   rQ   r$   r$   r%   test_numeric_ea_axis_1  sL   	

rQ  )TTFr   r   N)8datetimer   decimalr   rm   dateutil.tzr   numpyrD   rA   pandas.compatr   r   pandas.compat.numpyr   pandas.util._test_decoratorsutil_test_decoratorsr  pandasr   r   r	   r
   r   r   r   r   r   r   r   r   pandas._testing_testingr9   pandas.corer   r   r0  r1  rW   rX   r  r  r  r5  r7  rM  r  r;  r  r=  r?  rC  rK  rQ  r$   r$   r$   r%   <module>   sx    4
n          , 0Ra"	

