o
    _~#g #                    @   s  U d dl m Z  d dlmZ d dlZd dlZd dlZd dlmZ d dl	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 d dlmZ d dlmZ d d	lm Z  d d
l!m"Z"m#Z# d dl$m%Z%m&Z& d dl'm(Z( d dl)m*Z* e+ dd Z,ej+dd Z-ej+dd Z.ej+g dddd Z/ej+dd Z0dd Z1dd Z2ej34ddgej34d d!d"d# fd$d%d# fgd&d' Z5d(d) Z6d*d+ Z7ej38d,ej34ddgej34d-g d.d/d0 Z9ej34ddgd1d2 Z:ej34ddgd3d4 Z;d5d6 Z<d7d8 Z=d9d: Z>d;d< Z?ej34d=g d>d?d@ Z@ej34dAdBdCgdDdE ZAej34dAdFdCgdGdH ZBdIdJ ZCdKdL ZDdMdN ZEdOdP ZFej34dAg dQej34dRg dSdTdU ZGdVdW ZHdXdY ZIdZd[ ZJd\d] ZKd^d_ ZLd`da ZMej34dbdcdddedfdggdhdddedidggdCdjdkdldgggdmdn ZNdodp ZOdqdr ZPdsdt ZQdudv ZRej34dAg dwdxdy ZSej34dzd{d|gd}d~ ZTdd ZUdd ZVej34dddidedidddddiddigdd ZWej34ddddddeX gdd ZYej34ddddeX gdd ZZdd Z[dd Z\dd Z]dd Z^dd Z_dd Z`dd Zadd Zbdd Zcdd Zddd Zedd Zfdd Zgdd Zhdd Zidd Zjej34dAg ddd Zkej34dddgd!dggdd Zldd ZmddĄ ZnddƄ ZoddȄ Zpddʄ Zqej34ddddejrdej3jsddэdҍgddԄ Ztddք Zudd؄ Zvddڄ Zwe ddd{e dddރe ddde ddde ddde dddgZxeye
 ezd< exdd| ej{g exd|d  ej{g exdd  Z|eye
 ezd< ej{gex ej{g Z}ej34dexe|e}gdd Z~ej34dexe|e}gdd Zdd Zdd Zej3j4ddd# dd# dd# gg dddd Zej34dddgej34dg ddd Zdd  Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Zdd Zdd Zdd Zdd Zdd Zej34dg dej34dg ddd Zej34dg dd d! Zej34d"d#d$gd%d& Zej34d'g d(d)ed*ed+ed,ed-ef
d.d/Zej34dg d0d1d2 Zd3d4 Zd5d6 Zd7d8 Zej34d9g d:d;d< Zej34d9g d=d>d? Zd@dA Zej34dAdBdCgdAefdDdEZdFdG ZedHej34dIdejrdJej3jse dKdLdҍgdMdN ZdS (O      datetime)partialN)lib)DatetimeNaTType)is_platform_windows)	DataFrameIndexSeries	Timedelta	Timestampisnanotna)Grouper
date_range)Periodperiod_range)DatetimeIndex_get_timestamp_range_edges)offsets)Minutec                   C   s   t S Nr    r   r   /var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/site-packages/pandas/tests/resample/test_datetime_index.py_index_factory'      r   c                   C   s   dS )NMinr   r   r   r   r   _index_freq,   r   r   c                 C   s   t jdt| S )N   )nprandomdefault_rnglenindexr   r   r   _static_values1   s   r&   )smsusns)paramsc                 C      | j S r   )param)requestr   r   r   unit6   s   r/   c                  C   s   ddd} | S )zI
    Series with date range index and random data for test purposes.
    Dc                 S   s,   t | ||d}ttjdt||dS )Nfreqr   r$   )r   r
   r    r!   r"   standard_normalr#   )startendr2   rngr   r   r   _simple_date_range_seriesA   s   z;simple_date_range_series.<locals>._simple_date_range_seriesNr0   r   )r7   r   r   r   simple_date_range_series;   s   
r9   c                 C   s:  |  |}ttdgt| |dd}ttdd}||}|  g d}|D ]
}|j	|d dd q*ttdd	d	d
}||}|  g d}|D ]
}|j	|d dd qM|j
dks_J t|  siJ dgdgd  }|ddd }	|	|dd  }	t|	dd |}	t||	d}
|d}t||
 d S )N   int64r%   dtype   r1   summeanprodminmaxvarTaltnumeric_onlyrightr2   closedlabel!
  i 
  r   5minr$   r@   )as_unitr
   r    arrayr#   r   r   groupbyohlc_cython_agg_generalngroupsr   rA   allappendr   aggtmassert_series_equal)r%   r/   dtir'   bgfuncsfarridxexpectresultr   r   r   test_custom_grouperH   s.   



rd   c                 C   sx   t tdddd}| |}ttjdt|df|dd}||	d}t|j
dks1J t|jd	ks:J d S )
Nr>   rI   rJ   r   
   float64r<   r@   rM   )r   r   rP   r   r    r!   r"   r#   rR   rX   columnsr%   )r%   r/   r\   r[   dfrr   r   r   test_custom_grouper_dfl   s   
rj   z#_index_start,_index_end,_index_name)1/1/2000 00:00:00z1/1/2000 00:13:00r%   zclosed, expectedrI   c                 C   sJ   t | jd | dd  | dd  | dd   gtddddd	d
S )Nr   r:         1/1/2000   rO   r%   periodsr2   namer$   )r
   ilocrA   r   r'   r   r   r   <lambda>   s    4ru   leftc                 C   sB   t | d d  | dd  | dd   gtddddddS )	Nr>   re   1/1/2000 00:05   rO   r%   rp   r$   )r
   rA   r   rt   r   r   r   ru      s    ,c                 C   sL   | }|j ||_ ||}|j ||_ |jd|dd }t|| d S )NrO   rI   rK   rL   )r%   rP   resamplerA   rY   rZ   )seriesrK   expectedr/   r'   rc   r   r   r   test_resample_basicx   s   r}   c                 C   s   t tdtdddd| dd}|d }t g dtdd	dd| dd}t|| |d }t g d
tdd	dd| dd}t|| d S )N	   rn   rC   rq   r2   Int64r<   3min)rx         rx   )r:   ro      Float64)	r
   ranger   rP   rz   r@   rY   rZ   rA   )r/   tsrc   r|   r   r   r   test_resample_integerarray   s&   r   c                 C   sV   | }|j ||_ |d }ttdddd}||dd }t	|| d S )N5Minr>   rv   rJ   c                 S   
   | j d S NrN   rs   xr   r   r   ru         
 z-test_resample_basic_grouper.<locals>.<lambda>)
r%   rP   rz   lastr   r   rR   rX   rY   rZ   )r{   r/   r'   rc   grouperr|   r   r   r   test_resample_basic_grouper   s   r   z@ignore:The 'convention' keyword in Series.resample:FutureWarningzkeyword,value))rL   righttt)rK   r   )
conventionstartttc                 C   sh   | j || _ d| d| d}tjt|d | jdi ||i W d    d S 1 s-w   Y  d S )NzUnsupported value z for ``matchrO   rO   )r%   rP   pytestraises
ValueErrorrz   )r{   keywordvaluer/   msgr   r   r   test_resample_string_kwargs   s
   "r   c                 C   s   |dkr	t d | }|j||_t|}d|d< d|dd< d|dd< d|dd < |||}td	d
ddd||_t	|j
dddd| }t|| d S )NrS   z!covered by test_resample_how_ohlcr   r:   rl   r   rm   rx   rn   ro   rO   r%   rp   rI   ry   )r   skipr%   rP   r    	ones_likerR   rX   r   getattrrz   rY   rZ   )r{   downsample_methodr/   r'   	grouplistr|   rc   r   r   r   test_resample_how   s&   

r   c                 C   s   | }|j ||_ t|}d|d< d|dd< d|dd< d|dd < dd }t|||j t	d	d
ddd|g dd}|j
dddd }t|| d S )Nr   r:   rl   r   rm   rx   c                 S   :   t |  rttjdS | jd |  |  | jd gS Nro   r   rN   r   rV   r    repeatnanrs   rD   rC   groupr   r   r   _ohlc       z%test_resample_how_ohlc.<locals>._ohlcrn   ro   rO   r%   rp   )openhighlowcloser%   rg   rI   ry   )r%   rP   r    r   r   rR   rX   valuestolistr   rz   rS   rY   assert_frame_equal)r{   r/   r'   r   r   r|   rc   r   r   r   test_resample_how_ohlc   s"   
r   c                 C   s   t jdt jd}tdt|dd| }t||d|d}dd	d
}G dd d}|d|}|ddd }|dt	|}|dt	|dd}	|d| }
t
|| t
|| t
||	 t
||
 d S )Nr>   r=   
2014-01-01dr4   rq   r2   ABr$   r:   c                 S      t t| S r   strtype)r   ar   r   r   fn     z'test_resample_how_callables.<locals>.fnc                   @   s   e Zd Zdd ZdS )z,test_resample_how_callables.<locals>.FnClassc                 S   s   t t|S r   r   )selfr   r   r   r   __call__  r   z5test_resample_how_callables.<locals>.FnClass.__call__N)__name__
__module____qualname__r   r   r   r   r   FnClass  s    r   MEc                 S   r   r   r   r   r   r   r   ru         z-test_resample_how_callables.<locals>.<lambda>r   )r   )r:   )r    aranger;   r   r#   rP   r   rz   applyr   rY   r   )r/   dataindrh   r   r   df_standard	df_lambda
df_partialdf_partial2df_classr   r   r   test_resample_how_callables  s   
r   c                 C   sl  g d}t ddgd it|d}|j| |_|d }t dg ditddd	d
| d}t	|| |d }t dg ditddd	d
| d}t	|| |d }t dddgitdddd
| d}t	|| |d }t dddgitdddd
| d}t	|| |d }t dddgitdddd
| d}t	|| d S )N)z2014-11-08 00:00:012014-11-08 00:00:02r   z2014-11-08 00:00:032014-11-08 00:00:07r   2014-11-08 00:00:08r   r   z2014-11-08 00:00:09z2014-11-08 00:00:102014-11-08 00:00:11r   z2014-11-08 00:00:13z2014-11-08 00:00:14z2014-11-08 00:00:15z2014-11-08 00:00:17z2014-11-08 00:00:20z2014-11-08 00:00:21r   r:      r$   6s)ro   r~   ro   r   z
2014-11-08ro   r2   rq   7s)ro   re   ro   r:   11srm      r   13s   rl   17s   rx   )
r   pdto_datetimer%   rP   rz   r@   r   rY   r   )r/   r   rh   rc   r|   r   r   r   test_resample_rounding   sB   




r   c                 C   sN  t tdddtdddddd| }ttjdt||}|d	 }t|d	ks0J |j
jg d
k s<J |jd |d ksGJ |jd |d ksRJ |jd |jd ks^J |d	 }t|dksmJ |j
jddgk syJ |jd |d ksJ |jd |d ksJ |d	 }t|dksJ |j
jddgk sJ |jd |d ksJ |jd |d ksJ |d	 }t|dksJ |j
jddgk sJ |jd |d ksJ |jd |d ksJ |d	 }t|dksJ |j
jd	d	gk sJ |jd |d ksJ |jd |d ks&J |d	 }t|dks6J |j
jddgk sCJ |jd |d ksOJ |jd |d ks[J |d	 }t|dkskJ |j
jg dk sxJ |jd |d ksJ |jd |d ksJ |jd |d ksJ |j
jdksJ d S )N  r:   re   r0   r%   r4   r5   r2   rr   r   zw-sunrx   )rl   rl   rl   r   z1/2/2005z1/9/2005rN   W-MONz1/3/2005z	1/10/2005zW-TUEz1/4/2005W-WEDz1/5/2005zW-THUz1/6/2005zW-FRIro   z1/7/2005r   r   )ro   r   r:   r   rx   ro   r   r>   )r   r   rP   r
   r    r!   r"   r#   rz   r   r%   	dayofweekrV   rs   rr   r/   r[   r'   rc   r   r   r   test_resample_basic_from_daily`  sX   r   c                 C   s   t dddd| }td|d}|d }|jd |d ks"J ttdd	d
d tdd	D d}|j| |_ttdd	t dddd| d}|d	 }t
|td|jd |d }|d }t
|| t
|| d S )Nz01-Jan-2014z05-Jan-2014r0   r1   r:   r$   r         ?rl   c                 S   s   g | ]
}t d d|ddqS )i  r:   r   r   r   .0ir   r   r   
<listcomp>  s    zCtest_resample_upsampling_picked_but_not_correct.<locals>.<listcomp>19750101r>   r   )r   rP   r
   rz   rA   r%   r    r   r   countrY   rZ   r@   )r/   datesr{   rc   r'   r|   result1result2r   r   r   /test_resample_upsampling_picked_but_not_correct  s$   
r   r_   r?   c                 C   sh   t tjddttdtdtddddd	}|j	
||_	td
d}||}|j| d dd d S )Nr   2   ro   ABCDr   
2000-01-01r   r   r   rg   r%   r   r1   TrF   )r   r    r!   r"   r3   r	   listobjectr   r%   rP   r   rR   rT   )r_   r/   rh   r\   r]   r   r   r   "test_resample_frame_basic_cy_funcs  s   

r  r2   YEr   c                 C   sp   t tjddttdtdtddddd	}|j	
||_	||  }t|d
 |d
 |   d S )Nr   r   r   r   r   r   r   r   r   r   )r   r    r!   r"   r3   r	   r  r  r   r%   rP   rz   rA   rY   rZ   )r2   r/   rh   rc   r   r   r   test_resample_frame_basic_M_A  s   "r  r   c                 C   s   t tjddttdtdtddddd	}|j	
||_	d
}tjt|d |j| dd  W d    d S 1 s>w   Y  d S )Nr   )re   ro   r   r   r   re   r   r   r   6The 'kind' keyword in DataFrame.resample is deprecatedr   periodkind)r   r    r!   r"   r3   r	   r  r  r   r%   rP   rY   assert_produces_warningFutureWarningrz   rA   )r2   r/   rh   r   r   r   r   test_resample_frame_basic_kind  s   "r  c                 C   s   t tdddtdddddd| }ttjdt||}|d	 }t|d	ks0J |j
d
 |j
d
 ks<J |j
d |j
d ksHJ |jjdksPJ d S )Nr   r:   re   r0   r%   r   r   r   i2  r   rN   )r   r   rP   r
   r    r!   r"   r#   rz   ffillrs   r%   rr   r   r   r   r   test_resample_upsample  s   r  c                 C   s   t ddgtdtdgd}|j| |_t dtjtjtjtjtjdgttdtdtdtd	td
tdtdgddd}|j| |_t|	d
 | d S )Nrm      z2015-03-31 21:48:52.672000z2015-03-31 21:49:52.739000r$   z2015-03-31 21:48:50z2015-03-31 21:49:00z2015-03-31 21:49:10z2015-03-31 21:49:20z2015-03-31 21:49:30z2015-03-31 21:49:40z2015-03-31 21:49:5010sr1   )r
   r   r%   rP   r    r   r   rY   rZ   rz   rA   )r/   r'   r|   r   r   r   test_resample_how_method  s.   	r  c                 C   s~   t dddd| }tdtg d|di}t dddd| }tdttt||did	d
}|d }t	|| d S )N2015010120150331BMEr4   r5   r2   r   )r   )   ?   r$   r   r;   r   )
r   rP   r   r
   r   r#   rz   r   rY   r   )r/   r%   r|   rh   rc   r   r   r   test_resample_extra_index_point  s    r  c                 C   sd   t dddd| }ttjdt||}|dj	dd}|j
|jddd	}t|| d S )
Nrn   rx   rO   r   r   rC   limitr  methodr  )r   rP   r
   r    r!   r"   r3   r#   rz   r  reindexr%   rY   rZ   r/   r6   r   rc   r|   r   r   r   test_upsample_with_limit  s
   r  )1D10hr   r  rule)r  3ME15D30h15Min30sc                 C   sf   t dd|| d|}ttjdt||}||j	dd}|j
|jddd}t|| d S )Nrn   rx   )rq   r2   tzr   r  nearestr  )r   rP   r
   r    r!   r"   r3   r#   rz   r)  r  r%   rY   rZ   )tz_aware_fixturer2   r"  r/   r6   r   rc   r|   r   r   r    test_nearest_upsample_with_limit#  s   r+  c                 C   sH  | }|j ||_ ttdd}||dd }|d }t|t|ks+J t|j	dks4J |j
d }|d |j
d	 ksDJ |d
 |d	d  ksRJ |d |d	d  ks`J |d |j
d kskJ |j
d }|d |j
d ks{J |d
 |d d  ksJ |d |d d  ksJ |d |j
d ksJ d S )Nr>   r1   c                 S   r   r   r   r   r   r   r   ru   6  r   z$test_resample_ohlc.<locals>.<lambda>r   ro   r   ir   rN   r   r   r   )r%   rP   r   r   rR   rX   rz   rS   r#   rg   rs   rD   rC   )r{   r/   r'   r   rb   rc   xsr   r   r   test_resample_ohlc1  s"   

r.  c                 C   s   t dddd| }|t dddd| }ttt||d}|jd d d }t	|t
s4J |jd d	 d }t	|t
sGJ d S )
N1-1-2000	2-15-2000hr1   	4-15-2000	5-15-2000r$   30minz	4-14-2000)r   rP   unionr
   r   r#   locrz   rS   
isinstancer   )r/   r%   r'   r   r\   r   r   r   test_resample_ohlc_resultI  s   r8  c                 C   s   t dd| }|tdtdtdtdg}ttt||d}|d	 }|j
t |d	 |d
 dd| d}t|| d S )Nz
2013-12-30z
2014-01-07r   z
2013-12-31z
2014-01-04z
2014-01-05)r   r%   r   r   rN   r1   r$   )r   rP   dropr   r   r    r   r#   rz   rA   r  rY   r   )r/   r6   r%   rh   rc   r|   r   r   r   $test_resample_ohlc_result_odd_periodV  s   $r:  c              
   C   s  t tdd ddtdd ddtdd dditdd ddtdd ddtdd dd	id
jddgdd}|j| |_d|j_|d }t	j
|d d |d d gd|jd}|jjd dksgJ t|| ddgddgg|_|d }t	jg d|_t|| d S )Nz2011-01-06 10:59:05r(  ia  z2011-01-06 12:43:33ic  z2011-01-06 12:54:09i /hYl    rT i )PRICEVOLUMEr=  r<  r:   axisColsr1  )r?  keysr   r   r\   cr   ))r   rB  r   )r   rB  r   )r   rB  r   )r   rB  r   )r\   r   r   )r\   r   r   )r\   r   r   )r\   r   r   )r   r   r  r%   rP   rg   rr   rz   rS   r   concatnamesrY   r   
MultiIndexfrom_tuples)r/   rh   resexpr   r   r   test_resample_ohlc_dataframeh  s:   
"rI  c                  C   s   t tjddg ddd tdD d} tj| jdd d f< d	}tj	t
|d
 | jddd }W d    n1 s>w   Y  d}tj	t
|d
 | jdd dd }W d    n1 sbw   Y  dd tdD |_t|| d S )Nr   )ro   r   )  rJ  rJ  rJ  c                 S      g | ]}t d |d ddqS )rJ  r:   M)yearmonthr2   r   r   r   r   r   r         z+test_resample_dup_index.<locals>.<listcomp>r   r   rx   -DataFrame.resample with axis=1 is deprecated.r   QEr:   r>  z+DataFrame.groupby with axis=1 is deprecatedc                 S   s   t | jd d S )Nr:   rx   )intrN  r   r   r   r   ru     s    z)test_resample_dup_index.<locals>.<lambda>c                 S   rK  )rJ  r:   Q)rM  quarterr2   rO  r   r   r   r   r     rP  ro   )r   r    r!   r"   r3   r   r   rs   rY   r
  r  rz   rA   rR   rg   r   )rh   warning_msgrc   r   r|   r   r   r   test_resample_dup_index  s    rW  c                 C   s   t tdddtddddd| }ttjdt||}|jdddd		 }|d
	 }t|dks9J t
|jjtjsCJ |jjtdksNJ d S )Nr   r:   re   r0   r  r   r   rI   ry   8h   r   )r   r   rP   r
   r    r!   r"   r#   rz   rA   r7  r%   r2   r   
DateOffsetHour)r/   r[   r'   bsrc   r   r   r   test_resample_reresample  s   r]  zfreq, expected_kwargszYE-DEC19902000zY-DECr  zYE-JUNzY-JUNz1990-01z2000-01rL  c                 C   s   | dd}|j ||_ d}tjt|d |j|dd }W d    n1 s)w   Y  || }tdi ||_ t|| d S )Nz1/1/1990rn   3The 'kind' keyword in Series.resample is deprecatedr   r  r  r   )	r%   rP   rY   r
  r  rz   rA   r   rZ   )r9   r2   expected_kwargsr/   r   r   rc   r|   r   r   r   !test_resample_timestamp_to_period  s   
rb  c                 C   s   dd }t dddd| }ttjdt||d}|jd	d
d
d	 }|j
d |jd k s5J ||dd }|j
d |k sHJ ||dd  }|j
d |k s[J d S )Nc                 S   r   r   r   r   r   r   r   r     r   ztest_ohlc_5min.<locals>._ohlcrk   z1/1/2000 5:59:50r  r1   r   r$   rO   rI   ry   z1/1/2000 00:00r   r:      rw   z1/1/2000 5:55:01z1/1/2000 6:00:00)r   rP   r
   r    r!   r"   r3   r#   rz   rS   r6  rs   rV   )r/   r   r6   r   	resampledrH  r   r   r   test_ohlc_5min  s   re  c                 C   s   t dd| }|dj}ttjdt	||d}|
d }|dd  }t	|dks5J t|jd	 |d
  t|jd
 |d  d S )Nrn   	2/29/2000r>   r   r$   r   c                 S   r,   r   )rN  r   r   r   r   ru     s    z,test_downsample_non_unique.<locals>.<lambda>r   r:   )r   rP   r   r   r
   r    r!   r"   r3   r#   rz   rA   rR   rY   assert_almost_equalrs   )r/   r6   rng2r   rc   r|   r   r   r   test_downsample_non_unique  s   ri  c                 C   s|   t dd| }|dj}ttjdt	||d}d}t
jt|d |d W d    d S 1 s7w   Y  d S )Nrn   rf  r   r$   z/cannot reindex on an axis with duplicate labelsr   r   )r   rP   r   r   r
   r    r!   r"   r3   r#   r   r   r   asfreq)r/   r6   rh  r   r   r   r   r   test_asfreq_non_unique  s   "rk  c                 C   s   t dd| }ttjddt|f|g dd}d}tj	t
|d |jd	d
d }W d    n1 s9w   Y  |jd	 j}t|| d S )Nrn   rf  r   rx   r   r\   rB  r   rQ  r   r   r:   r>  )r   rP   r   r    r!   r"   r3   r#   rY   r
  r  rz   rA   Tr   )r/   r6   rh   rV  rc   r|   r   r   r   test_resample_axis1  s   rn  )rC   rO   15minr4  4h12hc                 C   s   t dddd|}ttjdt||d}tj|d d< |dd  j	| ddd
 }|j	| ddd
 }t|| d S )	Nz1/1/2000 04:00:00Q r'   r   r   r$   rv   ry   r   rP   r
   r    r!   r"   r3   r#   r   rz   rA   rY   rZ   )r2   r/   r6   r   rc   r|   r   r   r   test_resample_anchored_ticks	  s   rt  r5   r:   r   c                 C   sh   dd }t dd|  ddd|}ttjdt||d	}t	|
d
 |
d
| d S )Nc                 S      |   S r   )r@   r   r   r   r   ru         z,test_resample_single_group.<locals>.<lambda>z2000-1-1z2000-z-10r0   r1   r   r$   r   )r   rP   r
   r    r!   r"   r3   r#   rY   rZ   rz   r@   r   )r5   r/   mysumr6   r   r   r   r   test_resample_single_group  s   &rx  c                 C   sp   t ddgtdtdgd}|j| |_t dgttdgdd	| d}|dd
d }t|| d S )Ng>@g?@z20070915 15:30:00z20070915 15:40:00r$   g      ?20070915r0   r1   c                 S   s
   t | S r   )r    stdr   r   r   r   ru   +  r   z0test_resample_single_group_std.<locals>.<lambda>)	r
   r   r%   rP   r   rz   r   rY   rZ   )r/   r'   r|   rc   r   r   r   test_resample_single_group_std!  s   r{  c                 C   sj   t dddd| }ttjdt||d}|jddd		 }t d
ddd| }t
|j| d S )Nrk   z1/1/2000 02:00r'   r1   r   r$   rO   2minoffset12/31/1999 23:57:00z1/1/2000 01:57r   rP   r
   r    r!   r"   r3   r#   rz   rA   rY   assert_index_equalr%   )r/   r6   r   rd  exp_rngr   r   r   test_resample_offset/  s   r  kwargsorigin1999-12-31 23:57:00z1970-01-01 00:02:00epoch2mr  r~  z1999-12-31 12:02:00r~  z-3mc                 C   sl   t dddd|}ttjdt||d}t ddd	d|}|jd
i | 	 }t
|j| d S )N2000-01-01 00:00:002000-01-01 02:00r'   r1   r   r$   r  2000-01-01 01:57rO   r   r  )r  r/   r6   r   r  rd  r   r   r   test_resample_origin<  s   r  invalid_valueepchstartdaystarttz
2000-30-30c                 C      t dddd|}ttjdt||d}d|  d}tj	t
|d	 |jd
| d W d    d S 1 s9w   Y  d S )Nr  r  r'   r1   r   r$   z|'origin' should be equal to 'epoch', 'start', 'start_day', 'end', 'end_day' or should be a Timestamp convertible type. Got '
' instead.r   rO   r  r   rP   r
   r    r!   r"   r3   r#   r   r   r   rz   )r  r/   r6   r   r   r   r   r   test_resample_bad_originT  s   "r  12dayysc                 C   r  )Nr  r  r'   r1   r   r$   z6'offset' should be a Timedelta convertible type. Got 'r  r   rO   r}  r  )r~  r/   r6   r   r   r   r   r   test_resample_bad_offsetc  s   "r  c                 C   sl  d\}}t ||dd| }ttjdt||d}t dddd| }|d	 }t
|j| |jdd	d
	 }t
|j| t dddd| }|jddd
	 }t
|j| |jddd	 }t
|j| |jdd	dd	 }t
|j| t dddd| }|jddd
	 }t
|j| t dddd| }|jddd
	 }t
|j| d S )N)2000-10-01 23:30:00z2000-10-02 00:30:007minr1   r   r$   z2000-10-01 23:14:00z2000-10-02 00:22:0017min	start_dayr  r  z2000-10-02 00:21:00r4   23h30minr}  r  z2000-10-01 23:18:00z2000-10-02 00:26:00r  z2000-10-01 23:24:00z2000-10-02 00:15:00r   r  )r/   r4   r5   r6   r   r  rd  r   r   r   test_resample_origin_prime_freql  sJ   r  c                 C   sl  d}d}t ddd|d| }ttjdt||d}t d	d
d|d| }|jddd	 }t
|j| |jddd	 }t
|j| |jdddd	 }t
|j| tjt|d |jddd	  W d    n1 suw   Y  t dddd| }ttjdt||d}tjt|d |jddd	  W d    d S 1 sw   Y  d S )Nz4The origin must have the same timezone as the index.Europe/Parisr  r  r'   r2   r(  r   r$   r  r  rO   z1999-12-31 23:57:00+00:00r  z1999-12-31 12:02:00+03:00r  r  r  r   r  r1   z12/31/1999 23:57:00+03:00)r   rP   r
   r    r!   r"   r3   r#   rz   rA   rY   r  r%   r   r   r   )r/   r   r(  r6   r   r  rd  r   r   r   test_resample_origin_with_tz  s6   "r  c                 C   sL  d\}}t ||dd| }tjdt|}t||d}|jddd	 }|jd	dd	 }t
|| |d }|jddd	 }	|jd	dd	 }
t
j||	|jd
d t
j||
|jd
d d\}}t ||dd| }t||d}|jddd	 }|jd	dd	 }t
|d |d  t
|d |d  d S )N)z2000-10-01 23:30:00+0500z2000-12-02 00:30:00+0500r  r1   r   r$   r0   r  r  24hF)
check_freq)z2000-10-01 23:30:00+0200z2000-12-02 00:30:00+0200)r   rP   r    r!   r"   r3   r#   r
   rz   rA   rY   rZ   tz_localizer(  )r/   r4   r5   r6   random_valuests_1result_1result_2ts_no_tzresult_3result_4ts_2result_5result_6r   r   r   -test_resample_origin_epoch_with_tz_day_vs_24h  s&   
r  c           
         s  d d% fdd	}t d d}t d d}t||dd	}ttt||d
}|ddgddg}ddd|d fD ]}|jd|d }t	
|| q;t d d}t d d}t||dd	}ttt||d
}ddg}	|ddg|	}|jdddd }t	
|| ddg}	|ddg|	dd	}|jdddd }t	
|| ddg}	|ddg|	}|jdddd }t	
|| dd g}	|dd!g|	}|jddd"d }t	
|| d#d$g}	|d!dg|	}|jdddd }t	
|| d S )&NAmerica/Chicagor0   c                    s*   t | t fdd|D |dddS )Nc                    s   g | ]}t | d qS )r;  )r   )r   tr;  r   r   r     s    zUtest_resample_origin_with_day_freq_on_dst.<locals>._create_series.<locals>.<listcomp>T)r2   	ambiguousr$   )r
   r   rP   )r   
timestampsr2   r(  r/   r   r   _create_series  s   zAtest_resample_origin_with_day_freq_on_dst.<locals>._create_series
2013-11-02r;  z2013-11-03 23:591hr1   r$   g      8@g      9@z
2013-11-03r  r4   r  r  z2013-11-02 22:00-05:00z2013-11-03 22:00-06:00g      7@       @z-2hr  z2013-11-03 21:00-06:00g      6@      @r  z2013-11-02 02:00-05:00z2013-11-03 02:00-06:002hz2013-11-02 23:00-05:00z2013-11-03 23:00-06:00r   z-1hz2013-11-02 01:00-05:00z2013-11-03 01:00:00-0500r8   )r   r   rP   r
   r    onesr#   rz   r@   rY   rZ   )
r/   r  r4   r5   r6   r   r|   r  rc   expected_tsr   r  r   )test_resample_origin_with_day_freq_on_dst  sD   	r  c                 C   s   t dddd| }ttjdt||d}tj|d d< |dd  j	dddd	
 }|j	dddd	
 }t|| d S )
Nz1/1/2000 0:00:00'  rC   r   r   r$   r0   rv   ry   rs  r  r   r   r   test_resample_daily_anchored  s   r  c                 C   s   t dd| }ttjdt||d}d}tj	t
|d |jddd	 }W d    n1 s4w   Y  td
ddd}t|j| d S )Nrn   z
12/31/2000r   r$   r`  r   r   r  r  zJan-2000zDec-2000rL  r1   )r   rP   r
   r    r!   r"   r3   r#   rY   r
  r  rz   rA   r   r  r%   )r/   r6   r   r   rc   	exp_indexr   r   r   &test_resample_to_period_monthly_buglet  s   r  c                  C   s   t tjddddtdddddd	} |  d
 	 }d}t
jt|d | d
}W d    n1 s9w   Y  |dd }t
|| d S )Nr   r   r>   r   z
2012-01-01r1  r   rf   r<   r0   z+Resampling with a PeriodIndex is deprecatedr   c                 S   ru  r   rA   r   r   r   r   ru   (  rv  z&test_period_with_agg.<locals>.<lambda>)r
   r    r!   r"   integersr   to_timestamprz   rA   	to_periodrY   r
  r  rX   rZ   )s2r|   r   rsrc   r   r   r   test_period_with_agg  s   r  c                 C   s  dt dddddddfdt dddddddfdt ddddd	ddfdt dddddd
ddfg}tj|ddd}|j| |_d}tjt|d |	d
d }W d    n1 s^w   Y  d}tjt|d |	ddd }W d    n1 sw   Y  t|| d S )Nr:   i  re   r      r   r         rc  )ID	timestampr   r   rg   r  :DataFrameGroupBy.resample operated on the grouping columnsr   r  rO   z7DataFrameGroupBy.apply operated on the grouping columnsc                 S   s   |  d S )NrO   )rz   r@   r   r   r   r   ru   ?  s    z(test_resample_segfault.<locals>.<lambda>)r   r   from_records	set_indexr%   rP   rY   r
  DeprecationWarningrR   rz   r@   r   r   )r/   all_wins_and_wagersrh   r   rc   r|   r   r   r   test_resample_segfault,  s(   r  c                 C   s   t tdddd| g dtg dddd	d
}|d }|jjt	j
ks+J d}tjt|d |dd }W d    n1 sIw   Y  |jjt	j
ksWJ d S )Nz
2016-01-01ro   Wr   )r:   r:   r   r   )r>   rl   r   r   int32r   )dater   valr  r   r  r   r   )r   r   rP   r
   r  rz   r  r  r=   r    r  rY   r
  r  rR   )r/   rh   rc   r   r   r   r    test_resample_dtype_preservationC  s   r  c                 C   s   t d dg di}t|tdd| d}|dd d d	}|dd  d	}t	
|| |d d d	}t	
|| d S )
Nzscipy.interpolater   )r:   rx   r:   ro   z
2017-01-01z
2017-01-04r$   rf   r1  cubic)r   importorskipr   r   rP   astyperz   rA   interpolaterY   rZ   )r/   rh   r|   rc   r   r   r   test_resample_dtype_coercionX  s   
r  c                 C   s^   t dddd| }ttjdt||d}|d	 }|d	 }t
|| d S )	Nrn   r   r  r   r   r$   r  zW-SUN)r   rP   r
   r    r!   r"   r3   r#   rz   rA   rY   rZ   )r/   r6   r   rd  r|   r   r   r   test_weekly_resample_bugleth  s
   r  c                 C   s@   t dddd| }ttjdt||d}|d d S )N4/16/2012 20:00i  r1  r   r   r$   r   )	r   rP   r
   r    r!   r"   r3   r#   rz   r/   r   r   r   r   r   test_monthly_resample_errorr  s   r  c                  C   s   d} d}t t| ddd}ttt||d}|tjj	d}|
d}t t|ddd}ttt||td	}t|| d S )
Nl   *dG@l   *dG@re   100nsr   r$   d   rA   r<   )r   r   r   r
   r   r#   rz   tseriesr   NanorX   floatrY   rZ   )r4   	exp_startindxr   ri   rc   exp_indxrH  r   r   r   test_nanosecond_resample_errorz  s   
r  c                 C   s  t dddd| }t|j|d}|d }d}tjt|d |jdd	d
 j	dd}W d    n1 s9w   Y  | j
tddtdd 7  _
|j
| d|_
|j
jdks_J t|| |jddd }d}tjt|d |jdddjdd	d
 }W d    n1 sw   Y  |j	dd}|j
tdd tdd |_
|j
| d|_
|j
jdksJ t|| d S )N1/1/20124/1/2012100minr1   r$   r   r  r   r  r  r5   howr:   r*   r0   inferrv   rK   )r   rP   r   rN  rz   rA   rY   r
  r  r  r%   r   
_with_freqr2   r   shift)r/   r6   rh   rc   r   r|   rH  r   r   r   test_resample_anchored_intraday  s*   r  c                 C   s  t dddd| }t|j|d}|d }d}tjt|d |jdd	d
 j	dd}W d    n1 s9w   Y  | j
tddtdd 7  _
d|j
j_tj|j
_|j
| |_
t|| |jddd }d}tjt|d |jdddjdd	dd }W d    n1 sw   Y  |j	dd}| j
tddtdd 7  _
d|j
j_tj|j
_|j
| |_
t|| d S )Nr  r  r  r1   r$   rR  r  r   r  r  r5   r  r:   r*   r0   rv   r  )r	  rK   )r   rP   r   rN  rz   rA   rY   r
  r  r  r%   r   _datar2   r   
no_default_freqr   r  )r/   r6   rh   rc   r   r|   r   r   r    test_resample_anchored_intraday2  s0   



r  c                 C   s>   | dddd}|j ||_ |d }t|dksJ d S )Nz2012-04-29 23:00z2012-04-30 5:00r1  r1   r   r:   )r%   rP   rz   rA   r#   )r9   r/   r   rd  r   r   r    test_resample_anchored_intraday3  s   r  )MSBMSzQS-MARzYS-DECzYS-JUNc                 C   s*   | dd}|j ||_ ||  d S )Nrn   z
12/31/2002)r%   rP   rz   rA   )r9   r2   r/   r   r   r   r   !test_resample_anchored_monthstart  s   
r  z
label, secr  z4.2c                 C   st   t dddd}t dddd}||}ttjdd|d	}|jd| d
 }|j	d t
d| dks8J d S )Nz2014-10-14 23:06:23.206rx   400msr   z2014-10-15 23:00:00r   2200msr>   r$   )rL   rN   z2014-10-15 23:00:00)r   r5  r
   r    r!   r"   r3   rz   rA   r%   r   )rL   secindex1index2r%   r'   rc   r   r   r   test_resample_anchored_multiday  s   
"r  c                 C   sl   t dddd| }ttjdt||d}|jddd	d
	 }t dddd| }t
|j| d S )Nrn   r   rC   r   r   r$   rO   rI   rv   ry   z1999-12-31 23:55ro   r  )r/   r6   r   rc   ex_indexr   r   r   test_corner_cases  s
   r  c                 C   s   | dddd}|j ||_ d}tjt|d |jddd	 }W d    n1 s+w   Y  t|d
ks8J |j d tdddksEJ d S )Nz
2000-04-28z2000-04-30 11:00r1  r1   r`  r   r   r  r  r:   r   z2000-04rL  )	r%   rP   rY   r
  r  rz   rA   r#   r   )r9   r/   r   r   rc   r   r   r   test_corner_cases_date  s   r  c                 C   sD   t dddd| }ttjdt||d}|d	  d S )Nr  iP  r'   r   r   r$   r   )
r   rP   r
   r    r!   r"   r3   r#   rz   rA   r  r   r   r   test_anchored_lowercase_buglet  s   r  c                 C   sX   t dddd| }ttjdt||d}|d	dd	g}t
|ts*J d S )
N
2012-06-12ro   r1  r   r   r$   20minrA   r@   )r   rP   r
   r    r!   r"   r3   r#   rz   	aggregater7  r   )r/   r6   r   rc   r   r   r   test_upsample_apply_functions  s   r  c                 C   s~   t dddd| }ttjdt||d}|tjd	t|}|
d }| 
d }t|| d S )Nr	     r1  r   r   r$   r0   )r   rP   r
   r    r!   r"   r3   r#   takepermutationrz   r@   
sort_indexrY   rZ   )r/   r6   r   rc   rH  r   r   r   test_resample_not_monotonic	  s   r  r=   r;   r  rf   float32z-Empty groups cause x.mean() to return float64)reason)marksc              	   C   s   t tddddddtddddddg|}tddg|| d}|ddd	 }|d}t|| |d	 }|d}t|| d S )
N  r:   r   r>   r   r<   rC   c                 S   ru  r   r  r   r   r   r   ru   -  rv  z/test_resample_median_bug_1688.<locals>.<lambda>)
r   r   rP   r   rz   r   rj  rY   r   median)r=   r/   r[   rh   rc   rH  r   r   r   test_resample_median_bug_1688  s    "

r  c                 C   s   | dd}|j ||_ |ddd }|d }t|| |d }d|_|d }d|_|ddd d	d g}ddg|_	t|d | t|d | |d
d
d dd d}tj|d |dd tj|d |dd d S )Nrn   z4/1/2000r   c                 S   ru  r   r  r   r   r   r   ru   :  rv  z+test_how_lambda_functions.<locals>.<lambda>foobarc                 S   ru  r   r  r   r   r   r   ru   C  rv  c                 S      | j ddS Nr:   )ddofrz  r   r   r   r   ru   C  r   c                 S   ru  r   r  r   r   r   r   ru   K  rv  c                 S   r  r  r  r   r   r   r   ru   K  r   )r  r  F)check_names)r%   rP   rz   r   rA   rY   rZ   rr   rz  rg   r  )r9   r/   r   rc   rH  foo_expbar_expr   r   r   test_how_lambda_functions6  s$   


r!  c                 C   sR   t dddd}t dddd}t||d	d
| }tddi|d}|d  d S )Ni  rx   r:   r>   r  r   rc  ro   r4  r1   r   r$   YS)r   r   rP   r   rz   r@   )r/   r4   r5   bad_indrh   r   r   r   test_resample_unequal_timesQ  s
   r$  c           	      C   s   t dddd| }ttd|d}tj|jd< t |d |d	 d
d| }|j|dd}|j|ddd}|j|ddd}|	dj
dd}|	d
 }t|| t|| t|| d S )Nz
2002-02-02ro   r4  r         @r$   r   r   rN   10minr1   bfill)r%   r  )r%   r  r  r  10Minr  )r   rP   r
   r    r   r   rs   r  reindex_likerz   r'  rY   rZ   )	r/   i30r'   i10s10s10_2rlr10_2r10r   r   r   test_resample_consistency]  s   r1    re   r~   rx   rm   r>   r   r   r  dates1ro   dates2r   c                 C   s   t | |} t| tt| d}|dd }t g dddd|}tdg di|d}|d 	 
 rB|jd |_t|| |tddd	 }t|| d S )
Nr   r   r   z
2014-07-31z
2014-08-31z
2014-09-30z
2014-10-31z
2014-11-30r2   rr   r   r:   r   r   r   r:   r$   r2   keyr   rP   r   r    r   r#   r  rz   r   r   anyr%   r  rY   r   rR   r   r   r/   rh   rc   exp_idxr|   r   r   r   test_resample_timegrouper  s    r>  c                 C   s   t | |} t| tt| tt| d}|dd }t g dddd|}tg dg dd|dd	gd
}|d 	 
 rN|jd |_t|| |tddd }t|| d S )N)r   r   Cr   r   r5  r6  r7  )r   r?  r   r?  r   r8  r:  r<  r   r   r   test_resample_timegrouper2  s(   $r@  c                 C   s   t tddtdditddtddid}|j| |_|d}|tdd	}|tdd	jd
d }|j	dks@J ||fD ]}|j
 }t|| qD|jd
 }t|| |jtdd	
 }t|| d S )Nz2015-06-05 00:00:00
0010100903z2015-06-08 00:00:00
0010150847z
2015-06-05z
2015-06-08)r  DATEr0   r1   c                 S   ru  r   nuniquer   r   r   r   ru     rv  z'test_resample_nunique.<locals>.<lambda>r  )r   r   r%   rP   rz   rR   r   r  r   rr   rE  rY   rZ   )r/   rh   ri   r]   r|   r  rc   r   r   r   test_resample_nunique  s*   

rF  c                 C   s   t tjddttdtdtddddd		 }|j
| |_
tjj|j gd d
dgd|_|d }t|j|j d S )Nr   )r>   ro   r   r   r   r>   r0   r   r   lev0lev1)rD  r  )r   r    r!   r"   r3   r	   r  r  r   absr%   rP   r   rE  from_arraysrg   r   rz   rE  rY   r  )r/   rh   rc   r   r   r   2test_resample_nunique_preserves_column_level_names  s   rK  funcc                 C   ru  r   rD  r   r   r   r   ru     rv  c                 C   s   |  tjS r   )rX   r
   rE  r   r   r   r   ru     r   c                 C   s
   |  dS )NrE  )rX   r   r   r   r   ru     r   )rE  series_nuniquenunique_str)idsc           	      C   sr   t dddd|}t dddd|}||}ttt||dd}|d	}| }| |}t	|| d S )
Nr/  r0  r1  r1   r2  r3  r;   r<   r   )
r   rP   rW   r
   r   r#   rz   r   rY   rZ   )	rL  r/   r%   r  index3r'   ri   rc   r|   r   r   r   #test_resample_nunique_with_date_gap  s   

rQ  nr  i k)re   r  i  c                 C   s<  t jd}td| d dd|}t|d| | | d||| d}|	d	
 }t|j |j d	d
|}|j}t j|j|jdd}	t ||	f}
||
 |	|
 }}	t jd|dd  |d d kf }|t jd|	dd  |	d d kf O }t j|	| d t|djddd}t||d}t|| d S )Nr   z
2015-08-27re   rC   r   r   r;   r$   r4  r  rI   sideTr:   rN   	minlengthFcopy)r    r!   r"   r   rP   r
   r  r  choicerz   rE  r%   rC   rD   r   searchsortedlexsortr_bincountr#   rY   rZ   )rR  rS  r/   prngdrr   rv   ixvalsbinssortermaskr`   rI   r   r   r   test_resample_group_info  s    ("&$rf  c           	      C   s   d}t d|dd| }ttjd|tjd||d}|d	 }t |j
 |j
 dd| }tj|j|j
jd	d
}tj|t|d ddd  jddd}t||d}t|| d S )Nr  z
2015-09-19rC   r   r   r$   r  r  rI   rT  r:   rV  r;   FrX  )r   rP   r
   r    r!   r"   r3   rZ  rz   sizer%   rC   rD   r[  r   r^  r#   r  rY   rZ   )	r/   rR  r`  r   rv   ra  rc  r  rI   r   r   r   test_resample_size  s   (rh  c                  C   s   t ddgdgd} ttj| jddjdjd}t d	d
gdgd}ttj|jddjdjddd}t ddg|d}|jdd	 }t ddg|d}t
|| d S )Nid=XitKXr   r  r'   r/   UTCzEurope/Madridi 8XiFXr1  r1   r>   r$   r"  )r   r   r   r   r   dtr  
tz_convertrz   r@   rY   r   )df1dti1df2dti2rh   rc   r|   r   r   r   test_resample_across_dst'  s"   rr  c                 C   s   t ddgddd| }tddg|d}|td	d
 }tddddd| }t |}tdgtj	gd  dg |d}t
|| d S )Nl   @j$ l   S*~Q$ rj  r;  r  r:   r   r$   1dr1   z
2016-11-02z
2016-11-24r   r  r   r   r  )r   rm  rP   r   rR   r   r   r   r    r   rY   r   )r/   r%   rh   rc   expected_index_valuesr|   r   r   r   !test_groupby_with_dst_time_changeG  s    ru  c              
   C   s   t tddddgdd| }tdg|d}t |j d	d
| }tdg|d}t|jd	d	 | |jdd	  t|jdd	 tdgt tdddgddd| d d S )Nr  rm   ro      z
US/Easternr;  r>   r$   r0   r1   rk  r  r:   r(  r2   )
r   r   rP   r   r%   	normalizerY   r   rz   r@   )r/   r[   rh   r|   r   r   r   test_resample_dst_anchorZ  s    ry  c                 C   s&  t ddddd| }t|j}t|||d|dd}d	d
dd}|d}||g d }tg dg dg ddt ddddd| d}t||d |d}||g d }	tg dg dg ddt ddddd| d}
t|	|
d |d}||g d }tg dg dg ddt ddddd| d}t||d  |d!}||g d }td"d#gd$d%gd#d&gdt ddd!dd| d}t||d' |d(d) }|d*}|d	d
ddg d }tg d+g d,g d-dt d(d)d*dd| d}t||d. d S )/Nz
2013-09-30r  30Minr  r  rl  r;   r<   rC   rD   r   r   )r   0   i    i   r  )/   i    i  q  2  )r{  P  r  r  iR     z	9/30/2013z	11/4/2013r$   zW-MON Frequencyz2W-MON)r   r{  r|  r}  )r~  r  r  r  )r{  i  i  r  z
11/11/2013z2W-MON Frequencyr  )r   r{    )r~    r  )r{  i  1   z9/1/2013z	11/1/2013zMS Frequency2MSr   r  r  r  r  z2MS Frequencyz
10/26/2013z
10/29/2013r0   )i  i  iB  r}  )i  iA  r  i  )r{  r   r{  r{  zD Frequency)	r   rP   r   rg  r   rz   rX   rY   r   )r/   r[   r   rh   r  r  rc   r|   rs2r   	expected2rs3result3	expected3rs4result4	expected4df_dailyrs_dresult_d
expected_dr   r   r   test_resample_dst_anchor2n  s   








r  c                 C   s   t d}tddd}t||ddd| }td|d	d
 }tdt	j
gd dg t||dd
d| d	}t|| d S )NzEurope/Berlinr2  re      ro   r  r   r>   r$   r1        @rx   r   )pytztimezoner   r   localizerP   r
   rz   rA   r    r   rY   rZ   )r/   r(  rl  r   rc   r|   r   r   r   test_downsample_across_dst  s   
r  c                 C   sd   t tg ddd| g dd}|d }t ddgtd	d
gddd| d}t|| d S )N)z
2017-03-25
2017-03-26z
2017-03-27z
2017-03-28z
2017-03-29Europe/Amsterdamr;  )rm   r   r      r  )r%   r   1Wrv  *   r  z
2017-04-02r  rw  r$   )r   r   rP   rz   r@   rY   r   )r/   rh   rc   r|   r   r   r   !test_downsample_across_dst_weekly  s"   
r  c                 C   sb   t ddddd| }t|tjd}|d }tt ddd	dd
| tjd}t|| d S )Nz
2013-04-01z
2013-05-01zEurope/Londonr1  rw  r<   r  z
2013-04-07r>   )r2   rq   r(  )	r   rP   r
   r    rf   rz   rA   rY   rZ   )r/   ra   r'   rc   r|   r   r   r   #test_downsample_across_dst_weekly_2  s   r  c           	      C   s   t dddd}t dddd}t||dd| }|dd	}ttt|}t||d
}|	t
dd }tdddjd	dd}t|dd| }tg d|d
}t|| d S )Ni  rm   rx   r   r>   r  r1   rj  zAmerica/Havanar$   r   z
2018-11-03rq   T)r  r0   )g      @g      <@g     @F@)r   r   rP   r  rm  r  r   r#   r   rR   r   rA   r   rY   r   )	r/   r4   r5   r%   r   	dataframerc   r[   r|   r   r   r   test_downsample_dst_at_midnight  s   r  c           	      C   s   t tjdtjddg| }tg d|d}t g d| }tg d|d}t|d | t ddg| }td	d
g|d}t|d | t dg| }tdg|d}t|d | t|d | d S )N1970-01-01 00:00:001970-01-01 00:00:011970-01-01 00:00:02)r   rx   r>   r   rm   r$   )r  r  r  )r        @      &@1sr  r  2sr  3s60s)	r   r   NaTrP   r   rY   r   rz   rA   )	r/   r%   frameindex_1sframe_1sindex_2sframe_2sindex_3sframe_3sr   r   r   test_resample_with_nat  s6   	r  c                 C   s   t dddt dddg}td|i|d}|j| |_tt dddtjt dddgtddd	d
| dd}|d		 d }t
|| |d d		 }t
|| d S )Ni  r:   r  r   r  r$   z
2016-01-15rx   2Dr   )r%   rr   )r   r   r%   rP   r
   r   r  r   rz   firstrY   rZ   )r/   r   rh   rH  rG  r   r   r   test_resample_datetime_values,  s   r  c                 C   s   dd }| j || _ d}| d||}| d |}t|| | dj||d}| d |}t|| d S )Nc                 S      t | | S r   r    rA   r   add_argr   r   r   r_   C     z3test_resample_apply_with_additional_args.<locals>.fre   r0   )r  )r%   rP   rz   r   rA   multiplyrY   rZ   )r{   r/   r_   
multiplierrc   r|   r   r   r   (test_resample_apply_with_additional_argsA  s   r  c                  C   s   dd } d}t dddtdddd	}d
}tjt|d |dd| |t	}W d    n1 s6w   Y  d
}tjt|d |dd
 |}W d    n1 s\w   Y  t|| d S )Nc                 S   r  r   r  r  r   r   r   r_   U  r  z4test_resample_apply_with_additional_args2.<locals>.fre   r:   r   r   2017r  r$   r  r   r   r0   )r   r   rY   r
  r  rR   rz   rX   r  r  rA   r  r   )r_   r  rh   r   rc   r|   r   r   r   )test_resample_apply_with_additional_args2S  s    r  )r:   r   rx   zn1, freq1, n2, freq2)
)   r'         ?r   )<   r'   r:   r   )i  r'   r:   r1  )r  r   r:   r1  )i`T  r'   g      ?r0   )rr  r'   r:   r0   )i  r'   r  r0   )i  r   r:   r0   )r   r1  r  r0   )   r1  r:   r0   c                 C   st   | | }|| }t dd|d|}ttt||d}	|	t||  }
|	t||  }t	|
| d S )Nz
1991-09-05z
1991-09-12r1   r$   )
r   rP   r
   r   r#   rz   r   rA   rY   rZ   )n1freq1n2freq2rS  r/   n1_n2_r[   serr   r   r   r   r    test_resample_equivalent_offsetsd  s   r  z"first,last,freq,exp_first,exp_last))1991090519920406r0   r  19920407)z19910905 00:0019920406 06:00r0   r  r  )19910905 06:00r  r1  r  z19920406 07:00)19910906r  r   1991083119920430)r  r  r   r  19920531)z1991-08z1992-04r   r  r  c                 C   sz   t | } | | j|} t |}||j|}t|}t|}tjj|}t	| ||dd}||f}||ks;J d S )Nr*   ri  )
r   r  r2   rP   r   r   r  frequencies	to_offsetr   )r  r   r2   	exp_firstexp_lastr/   rc   r|   r   r   r   test_get_timestamp_range_edges  s   r  
duplicatesTFc                 C   s   t dddd|}ttd|d}t||d d}| r"ddg|_d	}tjt|d
 |	d
tj}W d    n1 s?w   Y  ttjddgddgddgddggtjdtg ddd||jd}t|| d S )Nz
2012-01-31r   r   r4   r2   rq   r$   r   r   r   z!using DatetimeIndexResampler.prodr   rR  r   r  r     r  r|  i  i  r   )z
2012-03-31z
2012-06-30z
2012-09-30z
2012-12-31QE-DECr1   r   )r   rP   r
   r   r   rg   rY   r
  r  rz   r   r    rB   rQ   r;   r   r   )r  r/   r%   r   rh   r   rc   r|   r   r   r   test_resample_apply_product  s$   
&r  z$first,last,freq_in,freq_out,exp_last))
2020-03-28
2020-03-31r0   r  z2020-03-30 01:00)r  
2020-10-27r0   r  2020-10-27 00:00)
2020-10-25r  r0   r  z2020-10-26 23:00)r  r  r  r0   z2020-03-30 00:00)r  r  r  r0   r  )r  r  r  r0   z2020-10-26 00:00r  r   freq_infreq_outr  c           	      C   sV   t dt| ||dd|}|| }t dt| ||dd|}t|| d S )Nr   r  r  )r
   r   rP   rz   r  rY   rZ   )	r  r   r  r  r  r/   r   rc   r|   r   r   r   #test_resample_calendar_day_with_dst  s   'r  )rC   rD   r  r   c                 C   sn   t dddd|}tdtjtjg|}t|d| dd}ttjgtd	gd
d|d}t	|| d S )N2020r   rx   r  r:   rR  r   )	min_countr  r  r1   r$   )
r   rP   r
   r    r   r   rz   r   rY   rZ   )rL  r/   r%   r  rc   r|   r   r   r   +test_resample_aggregate_functions_min_count  s   r  c                 C   s   t tdddd|dgg dd | d}|j|jd	k |jd
kB d d f }|d }t dtjdgdgtdddd|d}t	
|| d S )Nr   z2000-01-03 23rq  r  r   )r   r:   r   r   )r%   rg   r   r=   z
2000-01-02z
2000-01-03r0   r:   r   r   )r   r   rP   r6  r%   rz   rD   r    r   rY   r   )any_unsigned_int_numpy_dtyper/   rh   rc   r|   r   r   r   test_resample_unsigned_int  s$   
"
r  c                  C   sj   t ddddd} tg d| d}|d }ttg d	d
dd}tg d|d}t	|| d S )Nz
0300-01-01r   r'   100YE)r/   r2   )r:   ro   r   r   r>   r   r:   ro   r   r   r>   r   r:   ro   r   r   r>   r$   200YE)	z
0300-12-31z
0500-12-31z
0700-12-31z
0900-12-31z
1100-12-31z
1300-12-31z
1500-12-31z
1700-12-31z
1900-12-31zdatetime64[s]z	200YE-DECr1   )	r   r        @r%  r  r  r%  r  r  )
r   r
   rz   rA   r   r    rQ   r  rY   rZ   )ra   r  rc   expected_idxr|   r   r   r   test_long_rule_non_nano  s   r  c                  C   sd   t g g dddi} | jddddddd  }tg dddd	}tg |dd
d}t|| d S )N)r   r   r   zdatetime64[ns, Atlantic/Faroe]r  rv   r4   )onrK   rL   r  r   )r2   rr   r=   rf   )r%   rr   r=   )r   r  rz   r@   r   r
   rY   rZ   )rh   rc   r  r|   r   r   r   "test_resample_empty_series_with_tz!  s   r  zfreq, freq_depr))2ME2M)2QE2Q)z2QE-SEPz2Q-SEP)1YE1Y)2YE-MARz2Y-MAR)r  1A)r  z2A-MARc                 C      d|dd   d}d| dd   d t tdtdddd	d
}||  }tjt|d || }W d    n1 sAw   Y  t|| d S N'r:   z$' is deprecated and will be removed z!in a future version, please use 'r  re   20130101r   r   r$   r   	r
   r   r   rz   rA   rY   r
  r  rZ   r2   	freq_deprdepr_msgr'   r|   rc   r   r   r    test_resample_M_Q_Y_A_deprecated1  s   r  ))2BME2BM)2BQE2BQ)z2BQE-MARz2BQ-MARc                 C   r  r   r  r  r   r   r   test_resample_BM_BQ_deprecatedI  s   
r  c              	   C   s   t ddd| d}td|i|d}|jddd	}| }ttd
ddtd
ddgdd| }tdtd
ddtd
ddddgi|dd|  d}t	|| d S )N
2020-01-311minp  r4   r2   rq   r/   r   r$   r  rI   r    r:   r   r1   ro   rx   ;   M8[]
r   r   rz   r   r   r   rP   r  rY   r   )r/   r[   rh   groupedrc   exp_dtir|   r   r   r   test_resample_ms_closed_right]  s    r  r   r?  c                 C   s   t ddd|d}td|i|d}|j| dd}| }ttd	d
dtd	d
dtd	ddtd	ddg| d|}tdtd	d
dtd	ddtd	ddtd	ddddgi|dd| d}t	|| d S )Nr  r  r  r  r   r$   rI   r  r  r:   r  rc  r   rx   ro   r1   r  r  r  r  )r2   r/   r[   rh   r  rc   r  r|   r   r   r   test_resample_c_b_closed_rightm  s6   



	



r  c                 C   s   t ddd| d}tg d|d}|jdddd	 }ttd
ddtd
ddtd
ddtd
ddgdd| }tg d|d}t|| d S )Nz
2023-09-26rl   rq  )rq   r2   r/   )r:   r   rx   ro   r>   rl   r$   r   rI   ry   i  r~   r           r1   )r   g      @g      @g      @)	r   r
   rz   rA   r   r   rP   rY   rZ   )r/   r[   r  rc   r  r|   r   r   r   test_resample_b_55282  s$   



	r  pyarrowr(  rj  z/TODO: Set ARROW_TIMEZONE_DATABASE env var in CI)	conditionr  c                 C   s^   t tddddd}| d ur|j| }t tjdtjd|d}|d }t	
|| d S )Nz
2020-01-01r>   r  ztimestamp[ns][pyarrow]r   r$   r   )r
   r   rl  r  r    r   rf   rz   rA   rY   rZ   )r(  ra   r|   rc   r   r   r   test_arrow_timestamp_resample  s   r   )r   	functoolsr   numpyr    r   r  pandas._libsr   pandas._typingr   pandas.compatr   pandas.util._test_decoratorsutil_test_decoratorstdpandasr   r   r	   r
   r   r   r   r   pandas._testing_testingrY   pandas.core.groupby.grouperr   pandas.core.indexes.datetimesr   pandas.core.indexes.periodr   r   pandas.core.resampler   r   pandas.tseriesr   pandas.tseries.offsetsr   fixturer   r   r&   r/   r9   rd   rj   markparametrizer}   r   r   filterwarningsr   r   r   r   r   r   r   r  r  r  r  r  r  r  r+  r.  r8  r:  rI  rW  r]  rb  re  ri  rk  rn  rt  rx  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  r  r  r  r-   xfailr  r!  r$  r1  r3  r  __annotations__r  r4  dates3r>  r@  rF  rK  rQ  rf  rh  rr  ru  ry  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  
skip_if_nor   r   r   r   r   <module>   s   $	




$			

@:


	0






%!7











2



	
 \ #
