o
    թZh #                    @   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/html/lang_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ZaltZnumeric_onlyrightr2   closedlabel!
  i 
  r   5minr$   r@   )as_unitr
   r    arrayr#   r   r   groupbyohlc_cython_agg_generalZ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.   



ra   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>   rG   rH   r   
   float64r<   r@   rK   )r   r   rN   r   r    r!   r"   r#   rP   rU   columnsr%   )r%   r/   rY   rX   dfrr   r   r   test_custom_grouper_dfl   s   
rg   z#_index_start,_index_end,_index_name)1/1/2000 00:00:00z1/1/2000 00:13:00r%   zclosed, expectedrG   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   rM   r%   periodsr2   namer$   )r
   ilocrA   r   r'   r   r   r   <lambda>   s    4rr   leftc                 C   sB   t | d d  | dd  | dd   gtddddddS )	Nr>   rb   1/1/2000 00:05   rM   r%   rm   r$   )r
   rA   r   rq   r   r   r   rr      s    ,c                 C   sL   | }|j ||_ ||}|j ||_ |jd|dd }t|| d S )NrM   rG   rI   rJ   )r%   rN   resamplerA   rV   rW   )seriesrI   expectedr/   r'   r`   r   r   r   test_resample_basicx   s   rz   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	   rk   rC   rn   r2   ZInt64r<   Z3min)ru         ru   )r:   rl      ZFloat64)	r
   ranger   rN   rw   r@   rV   rW   rA   )r/   tsr`   ry   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>   rs   rH   c                 S   
   | j d S NrL   rp   xr   r   r   rr         
 z-test_resample_basic_grouper.<locals>.<lambda>)
r%   rN   rw   lastr   r   rP   rU   rV   rW   )rx   r/   r'   r`   grouperry   r   r   r   test_resample_basic_grouper   s   r   z@ignore:The 'convention' keyword in Series.resample:FutureWarningzkeyword,value))rJ   righttt)rI   r   )Z
conventionZ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 ``matchrM   rM   )r%   rN   pytestraises
ValueErrorrw   )rx   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 )NrQ   z!covered by test_resample_how_ohlcr   r:   ri   r   rj   ru   rk   rl   rM   r%   rm   rG   rv   )r   skipr%   rN   r    	ones_likerP   rU   r   getattrrw   rV   rW   )rx   Zdownsample_methodr/   r'   	grouplistry   r`   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:   ri   r   rj   ru   c                 S   :   t |  rttjdS | jd |  |  | jd gS Nrl   r   rL   r   rS   r    repeatnanrp   rD   rC   groupr   r   r   _ohlc       z%test_resample_how_ohlc.<locals>._ohlcrk   rl   rM   r%   rm   )openhighlowcloser%   rd   rG   rv   )r%   rN   r    r   r   rP   rU   valuestolistr   rw   rQ   rV   assert_frame_equal)rx   r/   r'   r   r   ry   r`   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   rn   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   rr         z-test_resample_how_callables.<locals>.<lambda>r   )r   )r:   )r    aranger;   r   r#   rN   r   rw   applyr   rV   r   )r/   dataindre   r   r   Zdf_standardZ	df_lambdaZ
df_partialZdf_partial2Z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$   Z6s)rl   r{   rl   r   z
2014-11-08rl   r2   rn   Z7s)rl   rb   rl   r:   Z11srj      r   Z13s   ri   Z17s   ru   )
r   pdto_datetimer%   rN   rw   r@   r   rV   r   )r/   r   re   r`   ry   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:   rb   r0   r%   r4   r5   r2   ro   r   zw-sunru   )ri   ri   ri   r   z1/2/2005z1/9/2005rL   W-MONz1/3/2005z	1/10/2005zW-TUEz1/4/2005W-WEDz1/5/2005zW-THUz1/6/2005zW-FRIrl   z1/7/2005r   r   )rl   r   r:   r   ru   rl   r   r>   )r   r   rN   r
   r    r!   r"   r#   rw   r   r%   Z	dayofweekrS   rp   ro   r/   rX   r'   r`   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         ?ri   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>Z19750101r>   r|   )r   rN   r
   rw   rA   r%   r    r   r   countrV   rW   r@   )r/   datesrx   r`   r'   ry   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   rl   ABCDr   
2000-01-01r   r   r|   rd   r%   r   r1   TrF   )r   r    r!   r"   r3   r	   listobjectr   r%   rN   r   rP   rR   )r\   r/   re   rY   rZ   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%   rN   rw   rA   rV   rW   )r2   r/   re   r`   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   )rb   rl   r   r   r   rb   r   r|   r   6The 'kind' keyword in DataFrame.resample is deprecatedr   periodkind)r   r    r!   r"   r3   r	   r   r   r   r%   rN   rV   assert_produces_warningFutureWarningrw   rA   )r2   r/   re   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:   rb   r0   r%   r   r   r   i2  r   rL   )r   r   rN   r
   r    r!   r"   r#   rw   ffillrp   r%   ro   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 )Nrj      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%   rN   r    r   r   rV   rW   rw   rA   )r/   r'   ry   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 )NZ20150101Z20150331ZBMEr4   r5   r2   r   )r~   )   ?   r$   r   r;   r   )
r   rN   r   r
   r   r#   rw   r   rV   r   )r/   r%   ry   re   r`   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 )
Nrk   ru   rM   r|   r   rC   limitr   methodr  )r   rN   r
   r    r!   r"   r3   r#   rw   r   reindexr%   rV   rW   r/   r6   r   r`   ry   r   r   r   test_upsample_with_limit  s
   r  )1DZ10hr   r   rule)r   Z3MEZ15DZ30hZ15MinZ30sc                 C   sf   t dd|| d|}ttjdt||}||j	dd}|j
|jddd}t|| d S )Nrk   ru   )rn   r2   tzr   r  nearestr  )r   rN   r
   r    r!   r"   r3   r#   rw   r  r  r%   rV   rW   )Ztz_aware_fixturer2   r	  r/   r6   r   r`   ry   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   rr   6  r   z$test_resample_ohlc.<locals>.<lambda>r   rl   r   ir   rL   r   r   r   )r%   rN   r   r   rP   rU   rw   rQ   r#   rd   rp   rD   rC   )rx   r/   r'   r   r_   r`   Z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   rN   unionr
   r   r#   locrw   rQ   
isinstancer   )r/   r%   r'   r   rY   r   r   r   test_resample_ohlc_resultI  s   r  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   rL   r1   r$   )r   rN   Zdropr   r   r    r   r#   rw   rA   r  rV   r   )r/   r6   r%   re   r`   ry   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:   axisZColsr  )r  keysr   r   rY   cr   ))r   r   r   )r   r   r   )r   r   r   )r   r   r   )rY   r   r   )rY   r   r   )rY   r   r   )rY   r   r   )r   r   r  r%   rN   rd   ro   rw   rQ   r   concatnamesrV   r   
MultiIndexfrom_tuples)r/   re   resexpr   r   r   test_resample_ohlc_dataframeh  s:   
"r'  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   )rl   r}   )  r(  r(  r(  c                 S      g | ]}t d |d ddqS )r(  r:   M)yearmonthr2   r   r   r   r   r   r         z+test_resample_dup_index.<locals>.<listcomp>r}   r   ru   -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:   ru   )intr,  r   r   r   r   rr     s    z)test_resample_dup_index.<locals>.<lambda>c                 S   r)  )r(  r:   Q)r+  Zquarterr2   r-  r   r   r   r   r     r.  rl   )r   r    r!   r"   r3   r   r   rp   rV   r   r   rw   rA   rP   rd   r   )re   warning_msgr`   r   ry   r   r   r   test_resample_dup_index  s    r4  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:   rb   r0   r   r   r   rG   rv   Z8h   r   )r   r   rN   r
   r    r!   r"   r#   rw   rA   r  r%   r2   r   Z
DateOffsetZHour)r/   rX   r'   bsr`   r   r   r   test_resample_reresample  s   r7  zfreq, expected_kwargszYE-DECZ19902000zY-DECr   zYE-JUNzY-JUNz1990-01z2000-01r*  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/1990rk   3The 'kind' keyword in Series.resample is deprecatedr   r   r   r   )	r%   rN   rV   r   r   rw   rA   r   rW   )r9   r2   Zexpected_kwargsr/   r   r   r`   ry   r   r   r   !test_resample_timestamp_to_period  s   
r:  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>._ohlcrh   z1/1/2000 5:59:50r   r1   r   r$   rM   rG   rv   z1/1/2000 00:00r   r:      rt   z1/1/2000 5:55:01z1/1/2000 6:00:00)r   rN   r
   r    r!   r"   r3   r#   rw   rQ   r  rp   rS   )r/   r   r6   r   	resampledr&  r   r   r   test_ohlc_5min  s   r=  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 )Nrk   	2/29/2000r>   r   r$   r   c                 S   r,   r   )r,  r   r   r   r   rr     s    z,test_downsample_non_unique.<locals>.<lambda>r   r:   )r   rN   r   r   r
   r    r!   r"   r3   r#   rw   rA   rP   rV   Zassert_almost_equalrp   )r/   r6   rng2r   r`   ry   r   r   r   test_downsample_non_unique  s   r@  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 )Nrk   r>  r   r$   z/cannot reindex on an axis with duplicate labelsr   r   )r   rN   r   r   r
   r    r!   r"   r3   r#   r   r   r   asfreq)r/   r6   r?  r   r   r   r   r   test_asfreq_non_unique  s   "rB  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 )Nrk   r>  r   ru   r   rY   r   r   r/  r   r   r:   r  )r   rN   r   r    r!   r"   r3   r#   rV   r   r   rw   rA   Tr   )r/   r6   re   r3  r`   ry   r   r   r   test_resample_axis1  s   rE  )rC   rM   Z15minr  Z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$   rs   rv   r   rN   r
   r    r!   r"   r3   r#   r   rw   rA   rV   rW   )r2   r/   r6   r   r`   ry   r   r   r   test_resample_anchored_ticks	  s   rI  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   rr         z,test_resample_single_group.<locals>.<lambda>z2000-1-1z2000-z-10r0   r1   r   r$   r   )r   rN   r
   r    r!   r"   r3   r#   rV   rW   rw   r@   r   )r5   r/   Zmysumr6   r   r   r   r   test_resample_single_group  s   &rL  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      ?Z20070915r0   r1   c                 S   s
   t | S r   )r    stdr   r   r   r   rr   +  r   z0test_resample_single_group_std.<locals>.<lambda>)	r
   r   r%   rN   r   rw   r   rV   rW   )r/   r'   ry   r`   r   r   r   test_resample_single_group_std!  s   rN  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 )Nrh   z1/1/2000 02:00r'   r1   r   r$   rM   Z2minoffset12/31/1999 23:57:00z1/1/2000 01:57r   rN   r
   r    r!   r"   r3   r#   rw   rA   rV   assert_index_equalr%   )r/   r6   r   r<  exp_rngr   r   r   test_resample_offset/  s   rU  kwargsorigin1999-12-31 23:57:00z1970-01-01 00:02:00epoch2mrW  rP  z1999-12-31 12:02:00rP  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$   rX  2000-01-01 01:57rM   r   rR  )rV  r/   r6   r   rT  r<  r   r   r   test_resample_origin<  s   r_  Zinvalid_valueZepchZstartdayZ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   rM   rW  r   rN   r
   r    r!   r"   r3   r#   r   r   r   rw   )rW  r/   r6   r   r   r   r   r   test_resample_bad_originT  s   "rd  Z12dayysc                 C   r`  )Nr\  r]  r'   r1   r   r$   z6'offset' should be a Timedelta convertible type. Got 'ra  r   rM   rO  rc  )rP  r/   r6   r   r   r   r   r   test_resample_bad_offsetc  s   "re  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:00Z17min	start_dayrb  rf  z2000-10-02 00:21:00r4   Z23h30minrO  r[  z2000-10-01 23:18:00z2000-10-02 00:26:00rY  z2000-10-01 23:24:00z2000-10-02 00:15:00r   rR  )r/   r4   r5   r6   r   rT  r<  r   r   r   test_resample_origin_prime_freql  sJ   ri  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$   rX  r^  rM   z1999-12-31 23:57:00+00:00rb  z1999-12-31 12:02:00+03:00rY  rZ  r[  r   rQ  r1   z12/31/1999 23:57:00+03:00)r   rN   r
   r    r!   r"   r3   r#   rw   rA   rV   rS  r%   r   r   r   )r/   r   r
  r6   r   rT  r<  r   r   r   test_resample_origin_with_tz  s6   "rl  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+0500rg  r1   r   r$   r0   rY  rb  24hF)Z
check_freq)z2000-10-01 23:30:00+0200z2000-12-02 00:30:00+0200)r   rN   r    r!   r"   r3   r#   r
   rw   rA   rV   rW   tz_localizer
  )r/   r4   r5   r6   Zrandom_valuesZts_1Zresult_1Zresult_2Zts_no_tzZresult_3Zresult_4Zts_2Zresult_5Zresult_6r   r   r   -test_resample_origin_epoch_with_tz_day_vs_24h  s&   
ro  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   rN   )r   Z
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-03rY  r4   rh  rb  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@      @rm  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   rN   r
   r    Zonesr#   rw   r@   rV   rW   )
r/   rt  r4   r5   r6   r   ry   rW  r`   Zexpected_tsr   rs  r   )test_resample_origin_with_day_freq_on_dst  sD   	rz  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   rs   rv   rH  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 )Nrk   z
12/31/2000r   r$   r9  r   r   r   r   zJan-2000zDec-2000r*  r1   )r   rN   r
   r    r!   r"   r3   r#   rV   r   r   rw   rA   r   rS  r%   )r/   r6   r   r   r`   Z	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-01r  r   rc   r<   r0   z+Resampling with a PeriodIndex is deprecatedr   c                 S   rJ  r   rA   r   r   r   r   rr   (  rK  z&test_period_with_agg.<locals>.<lambda>)r
   r    r!   r"   integersr   to_timestamprw   rA   Z	to_periodrV   r   r   rU   rW   )s2ry   r   rsr`   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  rb   r      r   r         r;  )ID	timestampr   r   rd   r  :DataFrameGroupBy.resample operated on the grouping columnsr   r  rM   z7DataFrameGroupBy.apply operated on the grouping columnsc                 S   s   |  d S )NrM   )rw   r@   r   r   r   r   rr   ?  s    z(test_resample_segfault.<locals>.<lambda>)r   r   Zfrom_records	set_indexr%   rN   rV   r   DeprecationWarningrP   rw   r@   r   r   )r/   Zall_wins_and_wagersre   r   r`   ry   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-01rl   Wr   )r:   r:   r   r   )r>   ri   r   r   int32r   )dater   valr  r  r  r   r   )r   r   rN   r
   r  rw   r   r  r=   r    r  rV   r   r  rP   )r/   re   r`   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:   ru   r:   rl   z
2017-01-01z
2017-01-04r$   rc   r  Zcubic)r   Zimportorskipr   r   rN   astyperw   rA   ZinterpolaterV   rW   )r/   re   ry   r`   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 )	Nrk   r   r  r   r   r$   r  zW-SUN)r   rN   r
   r    r!   r"   r3   r#   rw   rA   rV   rW   )r/   r6   r   r<  ry   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  r  r|   r   r$   r   )	r   rN   r
   r    r!   r"   r3   r#   rw   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@rb   Z100nsr   r$   d   rA   r<   )r   r   r   r
   r   r#   rw   tseriesr   ZNanorU   floatrV   rW   )r4   Z	exp_startZindxr   rf   r`   Zexp_indxr&  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   Zinferrs   rI   )r   rN   r   r,  rw   rA   rV   r   r   r  r%   r   
_with_freqr2   r   shift)r/   r6   re   r`   r   ry   r&  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$   r0  r   r   r   r   r5   r  r:   r*   r0   rs   r  )r   rI   )r   rN   r   r,  rw   rA   rV   r   r   r  r%   r   _datar2   r   Z
no_defaultZ_freqr   r  )r/   r6   re   r`   r   ry   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:00r  r1   r   r:   )r%   rN   rw   rA   r#   )r9   r/   r   r<  r   r   r    test_resample_anchored_intraday3  s   r  )MSZBMSzQS-MARzYS-DECzYS-JUNc                 C   s*   | dd}|j ||_ ||  d S )Nrk   z
12/31/2002)r%   rN   rw   rA   )r9   r2   r/   r   r   r   r   !test_resample_anchored_monthstart  s   
r  z
label, secrw  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.206ru   Z400msr|   z2014-10-15 23:00:00r   Z2200msr>   r$   )rJ   rL   z2014-10-15 23:00:Z00)r   r  r
   r    r!   r"   r3   rw   rA   r%   r   )rJ   secZindex1index2r%   r'   r`   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 )Nrk   r}   rC   r|   r   r$   rM   rG   rs   rv   z1999-12-31 23:55rl   rR  )r/   r6   r   r`   Z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:00r  r1   r9  r   r   r   r   r:   r   z2000-04r*  )	r%   rN   rV   r   r   rw   rA   r#   r   )r9   r/   r   r   r`   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   rN   r
   r    r!   r"   r3   r#   rw   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-12rl   r  r|   r   r$   Z20minrA   r@   )r   rN   r
   r    r!   r"   r3   r#   rw   	aggregater  r   )r/   r6   r   r`   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     r  r|   r   r$   r0   )r   rN   r
   r    r!   r"   r3   r#   ZtakeZpermutationrw   r@   Z
sort_indexrV   rW   )r/   r6   r   r`   r&  r   r   r   test_resample_not_monotonic	  s   r  r=   r;   r  rc   Zfloat32z-Empty groups cause x.mean() to return float64)reason)Z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   rJ  r   r~  r   r   r   r   rr   -  rK  z/test_resample_median_bug_1688.<locals>.<lambda>)
r   r   rN   r   rw   r   rA  rV   r   Zmedian)r=   r/   rX   re   r`   r&  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 )Nrk   z4/1/2000r   c                 S   rJ  r   r~  r   r   r   r   rr   :  rK  z+test_how_lambda_functions.<locals>.<lambda>foobarc                 S   rJ  r   r~  r   r   r   r   rr   C  rK  c                 S      | j ddS Nr:   )ZddofrM  r   r   r   r   rr   C  r   c                 S   rJ  r   r~  r   r   r   r   rr   K  rK  c                 S   r  r  r  r   r   r   r   rr   K  r   )r  r  F)Zcheck_names)r%   rN   rw   r   rA   rV   rW   ro   rM  rd   r  )r9   r/   r   r`   r&  Zfoo_expZ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  ru   r:   r>   r  r   r;  rl   r  r1   r   r$   ZYS)r   r   rN   r   rw   r@   )r/   r4   r5   Zbad_indre   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-02rl   r  r|         @r$   r   r   rL   Z10minr1   bfill)r%   r  )r%   r  r  r  Z10Minr  )r   rN   r
   r    r   r   rp   r  Zreindex_likerw   r  rV   rW   )	r/   Zi30r'   Zi10Zs10Zs10_2ZrlZr10_2Zr10r   r   r   test_resample_consistency]  s   r    rb   r{   ru   rj   r>   r   r   r  dates1rl   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   ro   r   r:   r   r   r   r:   r$   r2   keyr   rN   r   r    r   r#   r  rw   r   r   anyr%   r  rV   r   rP   r   r   r/   re   r`   Zexp_idxry   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   r  r  r  )r   r  r   r  r   r  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:00Z
0010100903z2015-06-08 00:00:00Z
0010150847z
2015-06-05z
2015-06-08)r  ZDATEr0   r1   c                 S   rJ  r   nuniquer   r   r   r   rr     rK  z'test_resample_nunique.<locals>.<lambda>r  )r   r   r%   rN   rw   rP   r   r  r   ro   r  rV   rW   )r/   re   rf   rZ   ry   rq  r`   r   r   r   test_resample_nunique  s*   

r  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>   rl   r   r   r   r>   r0   r|   r   Zlev0Zlev1)r"  rv  )r   r    r!   r"   r3   r	   r   r   r   absr%   rN   r   r#  Zfrom_arraysrd   r   rw   r  rV   rS  )r/   re   r`   r   r   r   2test_resample_nunique_preserves_column_level_names  s   r  funcc                 C   rJ  r   r  r   r   r   r   rr     rK  c                 C   s   |  tjS r   )rU   r
   r  r   r   r   r   rr     r   c                 C   s
   |  dS )Nr  )rU   r   r   r   r   rr     r   )r  Zseries_nuniqueZnunique_str)Zidsc           	      C   sr   t dddd|}t dddd|}||}ttt||dd}|d	}| }| |}t	|| d S )
Nr  r  r  r1   r  r  r;   r<   r   )
r   rN   rT   r
   r   r#   rw   r   rV   rW   )	r  r/   r%   r  Zindex3r'   rf   r`   ry   r   r   r   #test_resample_nunique_with_date_gap  s   

r  nr{  i k)rb   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-27rb   rC   r   r   r;   r$   r  r   rG   ZsideTr:   rL   Z	minlengthFcopy)r    r!   r"   r   rN   r
   r  r  choicerw   r  r%   rC   rD   r   searchsortedZlexsortZr_bincountr#   rV   rW   )r  r  r/   Zprngdrr   rs   ixvalsbinsZsortermaskr]   rG   r   r   r   test_resample_group_info  s    ("&$r  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$   rg  r   rG   r  r:   r  r;   Fr  )r   rN   r
   r    r!   r"   r3   r  rw   sizer%   rC   rD   r  r   r  r#   r  rV   rW   )	r/   r  r  r   rs   r  r  r  rG   r   r   r   test_resample_size  s   (r  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Xr  r1   r>   r$   r	  )r   r   r   r   r   dtrn  
tz_convertrw   r@   rV   r   )Zdf1Zdti1Zdf2Zdti2re   r`   ry   r   r   r   test_resample_across_dst'  s"   r  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$ r  r  rp  r:   r   r$   Z1dr1   z
2016-11-02z
2016-11-24r   rk  r   r~   rw  )r   r  rN   r   rP   r   r   r   r    r   rV   r   )r/   r%   re   r`   Zexpected_index_valuesry   r   r   r   !test_groupby_with_dst_time_changeG  s    r  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  rj   rl      z
US/Easternr  r>   r$   r0   r1   r  r  r:   r
  r2   )
r   r   rN   r   r%   	normalizerV   r   rw   r@   )r/   rX   re   ry   r   r   r   test_resample_dst_anchorZ  s    r  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-30ru  Z30Minrj  rk  rC  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   rN   r   r  r   rw   rU   rV   r   )r/   rX   r   re   r  r  r`   ry   Zrs2r   Z	expected2Zrs3Zresult3Z	expected3Zrs4Zresult4Z	expected4Zdf_dailyZrs_dZresult_dZ
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/Berlinr  rb      rl   ry  r|   r>   r$   r        @ru   r   )pytztimezoner   r   localizerN   r
   rw   rA   r    r   rV   rW   )r/   r
  r  r   r`   ry   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  )rj   r}   r      r  )r%   r   Z1Wr  *   r  z
2017-04-02r  r  r$   )r   r   rN   rw   r@   rV   r   )r/   re   r`   ry   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/Londonr  r  r<   r  z
2013-04-07r>   )r2   rn   r
  )	r   rN   r
   r    rc   rw   rA   rV   rW   )r/   r^   r'   r`   ry   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  rj   ru   r}   r>   rv  r1   r  zAmerica/Havanar$   r  z
2018-11-03rn   T)rr  r0   )g      @g      <@g     @F@)r   r   rN   rn  r  r   r   r#   r   rP   r   rA   r   rV   r   )	r/   r4   r5   r%   r   Z	dataframer`   rX   ry   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   ru   r>   r   rj   r$   )r  r  r  )rx        @      &@Z1sr  r  Z2sr  Z3sZ60s)	r   r   NaTrN   r   rV   r   rw   rA   )	r/   r%   frameZindex_1sZframe_1sZindex_2sZframe_2sZindex_3sZ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-15ru   Z2Dr|   )r%   ro   )r   r   r%   rN   r
   r   r  r   rw   firstrV   rW   )r/   r   re   r&  r%  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>.frb   r0   )r  )r%   rN   rw   r   rA   multiplyrV   rW   )rx   r/   r\   
multiplierr`   ry   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>.frb   r:   r   r   Z2017r  r$   r  r   r   r0   )r   r   rV   r   r  rP   rw   rU   r  r  rA   r  r   )r\   r   re   r   r`   ry   r   r   r   )test_resample_apply_with_additional_args2S  s    r"  )r:   r   ru   zn1, freq1, n2, freq2)
)   r'         ?r   )<   r'   r:   r   )i  r'   r:   r  )r%  r   r:   r  )i`T  r'   g      ?r0   )rG  r'   r:   r0   )i  r'   r$  r0   )i  r   r:   r0   )r}   r  r$  r0   )   r  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   rN   r
   r   r#   rw   r   rA   rV   rW   )Zn1Zfreq1Zn2Zfreq2r  r/   Zn1_Zn2_rX   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,  r  r-  z19920406 07:00)Z19910906r*  r   1991083119920430)r.  r/  r   r.  19920531)z1991-08z1992-04r   r.  r0  c                 C   sz   t | } | | j|} t |}||j|}t|}t|}tjj|}t	| ||dd}||f}||ks;J d S )Nr*   r  )
r   r  r2   rN   r   r   r  ZfrequenciesZ	to_offsetr   )r  r   r2   Z	exp_firstexp_lastr/   r`   ry   r   r   r   test_get_timestamp_range_edges  s   r2  
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   rn   r$   r   r   r   z!using DatetimeIndexResampler.prodr   r0  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   rN   r
   r   r   rd   rV   r   r   rw   r   r    rB   rO   r;   r   r   )r3  r/   r%   r   re   r   r`   ry   r   r   r   test_resample_apply_product  s$   
&r7  z$first,last,freq_in,freq_out,exp_last))
2020-03-28
2020-03-31r0   rm  z2020-03-30 01:00)r8  
2020-10-27r0   rm  2020-10-27 00:00)
2020-10-25r:  r0   rm  z2020-10-26 23:00)r8  r9  rm  r0   z2020-03-30 00:00)r8  r:  rm  r0   r;  )r<  r:  rm  r0   z2020-10-26 00:00r  r   freq_infreq_outr1  c           	      C   sV   t dt| ||dd|}|| }t dt| ||dd|}t|| d S )Nr   r	  rk  )r
   r   rN   rw   r   rV   rW   )	r  r   r=  r>  r1  r/   r   r`   ry   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 )NZ2020r   ru   r4  r:   r0  r   )Z	min_countr9  r6  r1   r$   )
r   rN   r
   r    r   r   rw   r   rV   rW   )r  r/   r%   r'  r`   ry   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 23rF  r   r   )r   r:   r   r   )r%   rd   r   r=   z
2000-01-02z
2000-01-03r0   r:   r   r   )r   r   rN   r  r%   rw   rD   r    r   rV   r   )Zany_unsigned_int_numpy_dtyper/   re   r`   ry   r   r   r   test_resample_unsigned_int  s$   
"
rA  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'   Z100YE)r/   r2   )r:   rl   r   r   r>   r   r:   rl   r   r   r>   r   r:   rl   r   r   r>   r$   Z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   rx        @r  rx  rB  r  rx  rB  )
r   r
   rw   rA   r   r    rO   r  rV   rW   )r^   r'  r`   expected_idxry   r   r   r   test_long_rule_non_nano  s   rD  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   rs   r4   )onrI   rJ   rW  r   )r2   ro   r=   rc   )r%   ro   r=   )r   r  rw   r@   r   r
   rV   rW   )re   r`   rC  ry   r   r   r   "test_resample_empty_series_with_tz!  s   rF  zfreq, freq_depr))Z2MEZ2M)Z2QEZ2Q)z2QE-SEPz2Q-SEP)1YEZ1Y)2YE-MARz2Y-MAR)rG  Z1A)rH  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 'ra  rb   Z20130101r   r   r$   r   	r
   r   r   rw   rA   rV   r   r   rW   r2   Z	freq_deprZdepr_msgr'   ry   r`   r   r   r    test_resample_M_Q_Y_A_deprecated1  s   rN  ))Z2BMEZ2BM)Z2BQEZ2BQ)z2BQE-MARz2BQ-MARc                 C   rI  rJ  rL  rM  r   r   r   test_resample_BM_BQ_deprecatedI  s   
rO  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   rn   r/   r   r$   r  rG   r    r:   r   r1   rl   ru   ;   M8[]
r   r   rw   r   r   r   rN   r  rV   r   )r/   rX   re   groupedr`   exp_dtiry   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 )NrP  rQ  rR  rS  r   r$   rG   r  rT  r:   r#  r;  r   ru   rl   r1   rU  rV  rW  rX  )r2   r/   rX   re   rY  r`   rZ  ry   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-26ri   rF  )rn   r2   r/   )r:   r   ru   rl   r>   ri   r$   r   rG   rv   i  r{   r           r1   )r   g      @g      @g      @)	r   r
   rw   rA   r   r   rN   rV   rW   )r/   rX   r'  r`   rZ  ry   r   r   r   test_resample_b_55282  s$   



	r`  Zpyarrowr
  r  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   r  rn  r    r   rc   rw   rA   rV   rW   )r
  r^   ry   r`   r   r   r   test_arrow_timestamp_resample  s   rb  )r   	functoolsr   numpyr    r   r  Zpandas._libsr   Zpandas._typingr   Zpandas.compatr   Zpandas.util._test_decoratorsutilZ_test_decoratorstdZpandasr   r   r	   r
   r   r   r   r   Zpandas._testingZ_testingrV   Zpandas.core.groupby.grouperr   Zpandas.core.indexes.datetimesr   Zpandas.core.indexes.periodr   r   Zpandas.core.resampler   r   Zpandas.tseriesr   Zpandas.tseries.offsetsr   Zfixturer   r   r&   r/   r9   ra   rg   markZparametrizerz   r   r   filterwarningsr   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r'  r4  r7  r:  r=  r@  rB  rE  rI  rL  rN  rU  r_  r   rd  re  ri  rl  ro  rz  r|  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r-   Zxfailr  r  r  r  r  r   __annotations__r  r  Zdates3r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r!  r"  r(  r2  r7  r   r?  r@  rA  rD  rF  rN  rO  r[  r\  r`  Z
skip_if_norb  r   r   r   r   <module>   s   $	




$			

@:


	0






%!7











2



	
 \ #
