a
    Pf #                    @   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(eeeeed)d*d+Zej34dg d,d-d. Zd/d0 Zd1d2 Zd3d4 Zej34d5g d6d7d8 Zej34d5g d9d:d; Zd<d= Zej34dAd>d?ged@dAdBZdCdD ZedEej34dFdejrdGej3jse dHdIdҍgdJdK ZdS (L      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   b/var/www/ai-form-bot/venv/lib/python3.9/site-packages/pandas/tests/resample/test_datetime_index.py_index_factory'   s    r   c                   C   s   dS )NMinr   r   r   r   r   _index_freq,   s    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   s   | 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endr0   rngr   r   r   _simple_date_range_seriesA   s    z;simple_date_range_series.<locals>._simple_date_range_series)r.   r   )r5   r   r   r   simple_date_range_series;   s    
r6   c                 C   s:  |  |}ttdgt| |dd}ttdd}||}|  g d}|D ]}|j	|d dd qTttdd	d	d
}||}|  g d}|D ]}|j	|d dd q|j
dksJ t|  sJ dgdgd  }|ddd }	|	|dd  }	t|	dd |}	t||	d}
|d}t||
 d S )N   int64r$   dtype   r/   summeanprodminmaxvarTZaltZnumeric_onlyrightr0   closedlabel!
  i 
  r   5minr#   r=   )as_unitr
   r   arrayr"   r   r   groupbyohlc_cython_agg_generalZngroupsr   r>   allappendr   aggtmassert_series_equal)r$   r-   dtir&   bgfuncsfarridxexpectresultr   r   r   test_custom_grouperH   s.    



r^   c                 C   sx   t tdddd}| |}ttjdt|df|dd}||	d}t|j
dksbJ t|jd	kstJ d S )
Nr;   rD   rE   r   
   float64r9   r=   rH   )r   r   rK   r   r   r    r!   r"   rM   rR   columnsr$   )r$   r-   rV   rU   dfrr   r   r   test_custom_grouper_dfl   s    
rd   z#_index_start,_index_end,_index_name)1/1/2000 00:00:00z1/1/2000 00:13:00r$   zclosed, expectedrD   c                 C   sJ   t | jd | dd  | dd  | dd   gtddddd	d
S )Nr   r7         1/1/2000   rJ   r$   periodsr0   namer#   )r
   ilocr>   r   r&   r   r   r   <lambda>   s   4ro   leftc                 C   sB   t | d d  | dd  | dd   gtddddddS )	Nr;   r_   1/1/2000 00:05   rJ   r$   rj   r#   )r
   r>   r   rn   r   r   r   ro      s
   ,c                 C   sL   | }|j ||_ ||}|j ||_ |jd|dd }t|| d S )NrJ   rD   rF   rG   )r$   rK   resampler>   rS   rT   )seriesrF   expectedr-   r&   r]   r   r   r   test_resample_basicx   s    rw   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	   rh   r@   rk   r0   ZInt64r9   Z3min)rr         rr   )r7   ri      ZFloat64)	r
   ranger   rK   rt   r=   rS   rT   r>   )r-   tsr]   rv   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;   rp   rE   c                 S   s
   | j d S NrI   rm   xr   r   r   ro          z-test_resample_basic_grouper.<locals>.<lambda>)
r$   rK   rt   lastr   r   rM   rR   rS   rT   )ru   r-   r&   r]   grouperrv   r   r   r   test_resample_basic_grouper   s    r   z@ignore:The 'convention' keyword in Series.resample:FutureWarningzkeyword,value))rG   righttt)rF   r   )Z
conventionZstartttc                 C   sf   | j || _ d| d| d}tjt|d$ | jdi ||i W d    n1 sX0    Y  d S )NzUnsupported value z for ``matchrJ   )rJ   )r$   rK   pytestraises
ValueErrorrt   )ru   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 )NrN   z!covered by test_resample_how_ohlcr   r7   rf   r   rg   rr   rh   ri   rJ   r$   rj   rD   rs   )r   skipr$   rK   r   	ones_likerM   rR   r   getattrrt   rS   rT   )ru   Zdownsample_methodr-   r&   	grouplistrv   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   r7   rf   r   rg   rr   c                 S   s:   t |  rttjdS | jd |  |  | jd gS Nri   r   rI   r   rP   r   repeatnanrm   rA   r@   groupr   r   r   _ohlc   s    z%test_resample_how_ohlc.<locals>._ohlcrh   ri   rJ   r$   rj   )openhighlowcloser$   ra   rD   rs   )r$   rK   r   r   r   rM   rR   valuestolistr   rt   rN   rS   assert_frame_equal)ru   r-   r&   r   r   rv   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r2   rk   r0   ABr#   r7   c                 S   s   t t| S r   strtype)r   ar   r   r   fn  s    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__  s    z5test_resample_how_callables.<locals>.FnClass.__call__N)__name__
__module____qualname__r   r   r   r   r   FnClass  s   r   MEc                 S   s   t t| S r   r   r   r   r   r   ro     r   z-test_resample_how_callables.<locals>.<lambda>r   )r   )r7   )r   aranger8   r   r"   rK   r   rt   applyr   rS   r   )r-   dataindrb   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   r7      r#   Z6s)ri   rx   ri   r   z
2014-11-08ri   r0   rk   Z7s)ri   r_   ri   r7   Z11srg      r   Z13s   rf   Z17s   rr   )
r   pdto_datetimer$   rK   rt   r=   r   rS   r   )r-   r~   rb   r]   rv   r   r   r   test_resample_rounding   sB    




r   c                 C   sb  t tdddtdddddd| }ttjdt||}|d	 }t|d	ks`J |j
jg d
k sxJ |jd |d ksJ |jd |d ksJ |jd |jd ksJ |d	 }t|dksJ |j
jddgk sJ |jd |d ks
J |jd |d ks"J |d	 }t|dksBJ |j
jddgk s\J |jd |d kstJ |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 s0J |jd |d ksHJ |jd |d ks`J |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g dk sJ |jd |d ksJ |jd |d ks4J |jd |d ksLJ |j
jdks^J d S )N  r7   r_   r.   r$   r2   r3   r0   rl   r   zw-sunrr   )rf   rf   rf   r   z1/2/2005z1/9/2005rI   W-MONz1/3/2005z	1/10/2005zW-TUEz1/4/2005W-WEDz1/5/2005zW-THUz1/6/2005zW-FRIri   z1/7/2005r   r|   )ri   r   r7   r   rr   ri   r   r;   )r   r   rK   r
   r   r    r!   r"   rt   r   r$   Z	dayofweekrP   rm   rl   r-   rU   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sDJ 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-2014r.   r/   r7   r#   r         ?rf   c                 S   s   g | ]}t d d|ddqS )i  r7   rz   r   r   .0ir   r   r   
<listcomp>  r   zCtest_resample_upsampling_picked_but_not_correct.<locals>.<listcomp>Z19750101r;   ry   )r   rK   r
   rt   r>   r$   r   r   r}   countrS   rT   r=   )r-   datesru   r]   r&   rv   result1result2r   r   r   /test_resample_upsampling_picked_but_not_correct  s$    
r   rY   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   ri   ABCDr   
2000-01-01r   r   ry   ra   r$   r   r/   TrC   )r   r   r    r!   r1   r	   listobjectr   r$   rK   r   rM   rO   )rY   r-   rb   rV   rW   r   r   r   "test_resample_frame_basic_cy_funcs  s    

r   r0   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   ry   r   r   )r   r   r    r!   r1   r	   r   r   r   r$   rK   rt   r>   rS   rT   )r0   r-   rb   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    n1 sz0    Y  d S )Nr   )r_   ri   r   r   r   r_   r   ry   r   6The 'kind' keyword in DataFrame.resample is deprecatedr   periodkind)r   r   r    r!   r1   r	   r   r   r   r$   rK   rS   assert_produces_warningFutureWarningrt   r>   )r0   r-   rb   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s`J |j
d
 |j
d
 ksxJ |j
d |j
d ksJ |jjdksJ d S )Nr   r7   r_   r.   r$   r   r   r   i2  r   rI   )r   r   rK   r
   r   r    r!   r"   rt   ffillrm   r$   rl   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 )Nrg      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10sr/   )r
   r   r$   rK   r   r   r   rS   rT   rt   r>   )r-   r&   rv   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r2   r3   r0   r   )r{   )   ?   r#   r   r8   r   )
r   rK   r   r
   r}   r"   rt   r   rS   r   )r-   r$   rv   rb   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 )
Nrh   rr   rJ   ry   r   r@   limitr   methodr   )r   rK   r
   r   r    r!   r1   r"   rt   r   reindexr$   rS   rT   r-   r4   r~   r]   rv   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 )Nrh   rr   )rk   r0   tzr   r   nearestr   )r   rK   r
   r   r    r!   r1   r"   rt   r  r   r$   rS   rT   )Ztz_aware_fixturer0   r   r-   r4   r~   r]   rv   r   r   r    test_nearest_upsample_with_limit#  s    r  c                 C   sN  | }|j ||_ ttdd}||dd }|d }t|t|ksVJ t|j	dkshJ |j
d }|d |j
d	 ksJ |d
 |d	d  ksJ |d |d	d  ksJ |d |j
d ksJ |j
d }|d |j
d ksJ |d
 |d d  ksJ |d |d d  ks2J |d |j
d ksJJ d S )Nr;   r/   c                 S   s
   | j d S r   r   r   r   r   r   ro   6  r   z$test_resample_ohlc.<locals>.<lambda>r   ri   r   ir   rI   r   r   r   )r$   rK   r   r   rM   rR   rt   rN   r"   ra   rm   rA   r@   )ru   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
shJ |jd d	 d }t	|t
sJ d S )
N1-1-2000	2-15-2000hr/   	4-15-2000	5-15-2000r#   30minz	4-14-2000)r   rK   unionr
   r}   r"   locrt   rN   
isinstancer   )r-   r$   r&   r   rV   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   rI   r/   r#   )r   rK   Zdropr   r   r   r   r"   rt   r>   r   rS   r   )r-   r4   r$   rb   r]   rv   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sJ 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  r7   axisZColsr  )r  keysr   r   rV   cr   ))r   r  r   )r   r  r   )r   r  r   )r   r  r   )rV   r   r   )rV   r   r   )rV   r   r   )rV   r   r   )r   r   r   r$   rK   ra   rl   rt   rN   r   concatnamesrS   r   
MultiIndexfrom_tuples)r-   rb   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|0    Y  d}tj	t
|d
& | jdd dd }W d    n1 s0    Y  dd tdD |_t|| d S )Nr   )ri   rz   )  r  r  r  c                 S   s   g | ]}t d |d ddqS )r  r7   M)yearmonthr0   r   r   r   r   r   r     r   z+test_resample_dup_index.<locals>.<listcomp>rz   r   rr   -DataFrame.resample with axis=1 is deprecated.r   QEr7   r  z+DataFrame.groupby with axis=1 is deprecatedc                 S   s   t | jd d S )Nr7   rr   )intr!  r   r   r   r   ro     r   z)test_resample_dup_index.<locals>.<lambda>c                 S   s   g | ]}t d |d ddqS )r  r7   Q)r   Zquarterr0   r"  r   r   r   r   r     r   ri   )r   r   r    r!   r1   r}   r   rm   rS   r   r   rt   r>   rM   ra   r   )rb   warning_msgr]   r   rv   r   r   r   test_resample_dup_index  s    04r(  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srJ t
|jjtjsJ |jjtdksJ d S )Nr   r7   r_   r.   r   r   r   rD   rs   Z8h   r   )r   r   rK   r
   r   r    r!   r"   rt   r>   r  r$   r0   r   Z
DateOffsetZHour)r-   rU   r&   bsr]   r   r   r   test_resample_reresample  s    r+  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 sR0    Y  || }tf i ||_ t|| d S )Nz1/1/1990rh   3The 'kind' keyword in Series.resample is deprecatedr   r   r   )	r$   rK   rS   r   r   rt   r>   r   rT   )r6   r0   Zexpected_kwargsr-   r~   r   r]   rv   r   r   r   !test_resample_timestamp_to_period  s    
0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 sjJ ||dd }|j
d |k sJ ||dd  }|j
d |k sJ d S )Nc                 S   s:   t |  rttjdS | jd |  |  | jd gS r   r   r   r   r   r   r     s    ztest_ohlc_5min.<locals>._ohlcre   z1/1/2000 5:59:50r   r/   r   r#   rJ   rD   rs   z1/1/2000 00:00r   r7      rq   z1/1/2000 5:55:01z1/1/2000 6:00:00)r   rK   r
   r   r    r!   r1   r"   rt   rN   r  rm   rP   )r-   r   r4   r~   	resampledr  r   r   r   test_ohlc_5min  s    r1  c                 C   s   t dd| }|dj}ttjdt	||d}|
d }|dd  }t	|dksjJ t|jd	 |d
  t|jd
 |d  d S )Nrh   	2/29/2000r;   r   r#   r   c                 S   s   | j S r   )r!  r   r   r   r   ro     r   z,test_downsample_non_unique.<locals>.<lambda>r   r7   )r   rK   r   r   r
   r   r    r!   r1   r"   rt   r>   rM   rS   Zassert_almost_equalrm   )r-   r4   rng2r~   r]   rv   r   r   r   test_downsample_non_unique  s    r4  c                 C   sz   t dd| }|dj}ttjdt	||d}d}t
jt|d |d W d    n1 sl0    Y  d S )Nrh   r2  r   r#   z/cannot reindex on an axis with duplicate labelsr   r   )r   rK   r   r   r
   r   r    r!   r1   r"   r   r   r   asfreq)r-   r4   r3  r~   r   r   r   r   test_asfreq_non_unique  s    r6  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 sr0    Y  |jd	 j}t|| d S )Nrh   r2  r   rr   r   rV   r  r   r#  r   r   r7   r  )r   rK   r   r   r    r!   r1   r"   rS   r   r   rt   r>   Tr   )r-   r4   rb   r'  r]   rv   r   r   r   test_resample_axis1  s    0r9  )r@   rJ   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&   ry   r   r#   rp   rs   r   rK   r
   r   r    r!   r1   r"   r   rt   r>   rS   rT   )r0   r-   r4   r~   r]   rv   r   r   r   test_resample_anchored_ticks	  s    r=  r3   r7   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   |   S r   )r=   r   r   r   r   ro     r   z,test_resample_single_group.<locals>.<lambda>z2000-1-1z2000-z-10r.   r/   r   r#   r   )r   rK   r
   r   r    r!   r1   r"   rS   rT   rt   r=   r   )r3   r-   Zmysumr4   r~   r   r   r   test_resample_single_group  s    r>  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20070915r.   r/   c                 S   s
   t | S r   )r   stdr   r   r   r   ro   +  r   z0test_resample_single_group_std.<locals>.<lambda>)	r
   r   r$   rK   r   rt   r   rS   rT   )r-   r&   rv   r]   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 )Nre   z1/1/2000 02:00r&   r/   r   r#   rJ   Z2minoffset12/31/1999 23:57:00z1/1/2000 01:57r   rK   r
   r   r    r!   r1   r"   rt   r>   rS   assert_index_equalr$   )r-   r4   r~   r0  exp_rngr   r   r   test_resample_offset/  s    rG  kwargsorigin1999-12-31 23:57:00z1970-01-01 00:02:00epoch2mrI  rB  z1999-12-31 12:02:00rB  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&   r/   r   r#   rJ  2000-01-01 01:57rJ   )rJ   rD  )rH  r-   r4   r~   rF  r0  r   r   r   test_resample_origin<  s    rQ  Zinvalid_valueZepchZstartdayZstarttz
2000-30-30c                 C   s~   t dddd|}ttjdt||d}d|  d}tj	t
|d	 |jd
| d W d    n1 sp0    Y  d S )NrN  rO  r&   r/   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   rJ   rI  r   rK   r
   r   r    r!   r1   r"   r   r   r   rt   )rI  r-   r4   r~   r   r   r   r   test_resample_bad_originT  s    rU  Z12dayysc                 C   s~   t dddd|}ttjdt||d}d|  d}tj	t
|d	 |jd
| d W d    n1 sp0    Y  d S )NrN  rO  r&   r/   r   r#   z6'offset' should be a Timedelta convertible type. Got 'rR  r   rJ   rA  rT  )rB  r-   r4   r~   r   r   r   r   test_resample_bad_offsetc  s
    rV  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7minr/   r   r#   z2000-10-01 23:14:00z2000-10-02 00:22:00Z17min	start_dayrS  rW  z2000-10-02 00:21:00r2   Z23h30minrA  rM  z2000-10-01 23:18:00z2000-10-02 00:26:00rK  z2000-10-01 23:24:00z2000-10-02 00:15:00r   rD  )r-   r2   r3   r4   r~   rF  r0  r   r   r   test_resample_origin_prime_freql  sJ    rZ  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 s0    Y  t dddd| }ttjdt||d}tjt|d" |jddd	  W d    n1 s^0    Y  d S )Nz4The origin must have the same timezone as the index.Europe/ParisrN  rO  r&   r0   r   r   r#   rJ  rP  rJ   z1999-12-31 23:57:00+00:00rS  z1999-12-31 12:02:00+03:00rK  rL  rM  r   rC  r/   z12/31/1999 23:57:00+03:00)r   rK   r
   r   r    r!   r1   r"   rt   r>   rS   rE  r$   r   r   r   )r-   r   r   r4   r~   rF  r0  r   r   r   test_resample_origin_with_tz  s2    0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+0500rX  r/   r   r#   r.   rK  rS  24hF)Z
check_freq)z2000-10-01 23:30:00+0200z2000-12-02 00:30:00+0200)r   rK   r   r    r!   r1   r"   r
   rt   r>   rS   rT   tz_localizer   )r-   r2   r3   r4   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&    
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	
|| qvt 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/Chicagor.   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     r   zUtest_resample_origin_with_day_freq_on_dst.<locals>._create_series.<locals>.<listcomp>T)r0   	ambiguousr#   )r
   r   rK   )r   Z
timestampsr0   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1hr/   r#   g      8@g      9@z
2013-11-03rK  r2   rY  rS  z2013-11-02 22:00-05:00z2013-11-03 22:00-06:00g      7@       @z-2hrM  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-0500)r.   )r   r   rK   r
   r   Zonesr"   rt   r=   rS   rT   )
r-   re  r2   r3   r4   r~   rv   rI  r]   Zexpected_tsr   rd  r   )test_resample_origin_with_day_freq_on_dst  sD    	rk  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'  r@   ry   r   r#   r.   rp   rs   r<  r   r   r   r   test_resample_daily_anchored  s    rm  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 sh0    Y  td
ddd}t|j| d S )Nrh   z
12/31/2000r   r#   r-  r   r   r   r   zJan-2000zDec-2000r  r/   )r   rK   r
   r   r    r!   r1   r"   rS   r   r   rt   r>   r   rE  r$   )r-   r4   r~   r   r]   Z	exp_indexr   r   r   &test_resample_to_period_monthly_buglet  s    0rn  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 sr0    Y  |dd }t
|| d S )Nr   r   r;   r   z
2012-01-01r  r   r`   r9   r.   z+Resampling with a PeriodIndex is deprecatedr   c                 S   s   |   S r   r>   r   r   r   r   ro   (  r   z&test_period_with_agg.<locals>.<lambda>)r
   r   r    r!   integersr   to_timestamprt   r>   Z	to_periodrS   r   r   rR   rT   )s2rv   r   rsr]   r   r   r   test_period_with_agg  s    (rt  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 s0    Y  d}tjt|d$ |	ddd }W d    n1 s0    Y  t|| d S )Nr7   i  r_   r      r   r         r/  )ID	timestampr   r   ra   ry  :DataFrameGroupBy.resample operated on the grouping columnsr   rx  rJ   z7DataFrameGroupBy.apply operated on the grouping columnsc                 S   s   |  d S )NrJ   )rt   r=   r   r   r   r   ro   ?  r   z(test_resample_segfault.<locals>.<lambda>)r   r   Zfrom_records	set_indexr$   rK   rS   r   DeprecationWarningrM   rt   r=   r   r   )r-   Zall_wins_and_wagersrb   r   r]   rv   r   r   r   test_resample_segfault,  s$    24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sVJ d}tjt|d$ |dd }W d    n1 s0    Y  |jjt	j
ksJ d S )Nz
2016-01-01ri   Wr   )r7   r7   r   r   )r;   rf   r|   r   int32r   )dater   valr  r   r{  r   r   )r   r   rK   r
   r|  rt   r   r  r:   r   r  rS   r   r}  rM   )r-   rb   r]   r   r   r   r    test_resample_dtype_preservationC  s    2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   )r7   rr   r7   ri   z
2017-01-01z
2017-01-04r#   r`   r  Zcubic)r   Zimportorskipr   r   rK   astypert   r>   ZinterpolaterS   rT   )r-   rb   rv   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 )	Nrh   r   ru  r   r   r#   r  zW-SUN)r   rK   r
   r   r    r!   r1   r"   rt   r>   rS   rT   )r-   r4   r~   r0  rv   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  ry   r   r#   r   )	r   rK   r
   r   r    r!   r1   r"   rt   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@r_   Z100nsr   r#   d   r>   r9   )r   r   r   r
   r}   r"   rt   tseriesr   ZNanorR   floatrS   rT   )r2   Z	exp_startZindxr~   rc   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 sr0    Y  | j
tddtdd 7  _
|j
| d|_
|j
jdksJ t|| |jddd }d}tjt|d, |jdddjdd	d
 }W d    n1 s"0    Y  |j	dd}|j
tdd tdd |_
|j
| d|_
|j
jdkszJ t|| d S )N1/1/20124/1/2012100minr/   r#   r   r   r   r   r   r3   howr7   r)   r.   Zinferrp   rF   )r   rK   r   r!  rt   r>   rS   r   r   rq  r$   r   
_with_freqr0   r   shift)r-   r4   rb   r]   r   rv   r  r   r   r   test_resample_anchored_intraday  s&    8<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 sr0    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 s"0    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  r/   r#   r$  r   r   r   r   r3   r  r7   r)   r.   rp   r  )r   rF   )r   rK   r   r!  rt   r>   rS   r   r   rq  r$   r   _datar0   r   Z
no_defaultZ_freqr   r  )r-   r4   rb   r]   r   rv   r   r   r    test_resample_anchored_intraday2  s,    8

"

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  r/   r   r7   )r$   rK   rt   r>   r"   )r6   r-   r~   r0  r   r   r    test_resample_anchored_intraday3  s    r  )MSZBMSzQS-MARzYS-DECzYS-JUNc                 C   s*   | dd}|j ||_ ||  d S )Nrh   z
12/31/2002)r$   rK   rt   r>   )r6   r0   r-   r~   r   r   r   !test_resample_anchored_monthstart  s    
r  z
label, secrh  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spJ d S )Nz2014-10-14 23:06:23.206rr   Z400msry   z2014-10-15 23:00:00r   Z2200msr;   r#   )rG   rI   z2014-10-15 23:00:Z00)r   r  r
   r   r    r!   r1   rt   r>   r$   r   )rG   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 )Nrh   rz   r@   ry   r   r#   rJ   rD   rp   rs   z1999-12-31 23:55ri   rD  )r-   r4   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 sV0    Y  t|d
kspJ |j d tdddksJ d S )Nz
2000-04-28z2000-04-30 11:00r  r/   r-  r   r   r   r   r7   r   z2000-04r  )	r$   rK   rS   r   r   rt   r>   r"   r   )r6   r-   r~   r   r]   r   r   r   test_corner_cases_date  s    0r  c                 C   sD   t dddd| }ttjdt||d}|d	  d S )Nr  iP  r&   ry   r   r#   r   )
r   rK   r
   r   r    r!   r1   r"   rt   r>   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sTJ d S )
N
2012-06-12ri   r  ry   r   r#   Z20minr>   r=   )r   rK   r
   r   r    r!   r1   r"   rt   	aggregater  r   )r-   r4   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  ry   r   r#   r.   )r   rK   r
   r   r    r!   r1   r"   ZtakeZpermutationrt   r=   Z
sort_indexrS   rT   )r-   r4   r~   r]   r  r   r   r   test_resample_not_monotonic	  s    r  r:   r8   r  r`   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  r7   r   r;   r   r9   r@   c                 S   s   |   S r   ro  r   r   r   r   ro   -  r   z/test_resample_median_bug_1688.<locals>.<lambda>)
r   r   rK   r   rt   r   r5  rS   r   Zmedian)r:   r-   rU   rb   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 )Nrh   z4/1/2000r   c                 S   s   |   S r   ro  r   r   r   r   ro   :  r   z+test_how_lambda_functions.<locals>.<lambda>foobarc                 S   s   |   S r   ro  r   r   r   r   ro   C  r   c                 S   s   | j ddS Nr7   )Zddofr?  r   r   r   r   ro   C  r   c                 S   s   |   S r   ro  r   r   r   r   ro   K  r   c                 S   s   | j ddS r  r  r   r   r   r   ro   K  r   )r  r  F)Zcheck_names)r$   rK   rt   r   r>   rS   rT   rl   r?  ra   r  )r6   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  rr   r7   r;   r  r|   r/  ri   r
  r/   r   r#   ZYS)r   r   rK   r   rt   r=   )r-   r2   r3   Zbad_indrb   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-02ri   r
  ry         @r#   r   r   rI   Z10minr/   bfill)r$   r   )r$   r   r   r   Z10Minr   )r   rK   r
   r   r   r   rm   r   Zreindex_likert   r  rS   rT   )	r-   Zi30r&   Zi10Zs10Zs10_2ZrlZr10_2Zr10r   r   r   test_resample_consistency]  s    r    r_   rx   rr   rg   r;   r   r|   rw  dates1ri   dates2r   c                 C   s   t | |} t| tt| d}|dd }t g dddd|}tdg di|d}|d 	 
 r|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r0   rl   r   r7   r   r   r   r7   r#   r0   keyr   rK   r   r   r   r"   r|  rt   r   r   anyr$   r  rS   r   rM   r   r   r-   rb   r]   Zexp_idxrv   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 	 
 r|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sJ ||fD ]}|j
 }t|| q|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)rx  ZDATEr.   r/   c                 S   s   |   S r   nuniquer   r   r   r   ro     r   z'test_resample_nunique.<locals>.<lambda>rx  )r   r   r$   rK   rt   rM   r   rx  r   rl   r  rS   rT   )r-   rb   rc   rW   rv   rb  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;   ri   r   r   r   r;   r.   ry   r   Zlev0Zlev1)r  rg  )r   r   r    r!   r1   r	   r   r   r   absr$   rK   r   r  Zfrom_arraysra   r   rt   r  rS   rE  )r-   rb   r]   r   r   r   2test_resample_nunique_preserves_column_level_names  s    
r  funcc                 C   s   |   S r   r  r   r   r   r   ro     r   c                 C   s   |  tjS r   )rR   r
   r  r   r   r   r   ro     r   c                 C   s
   |  dS )Nr  )rR   r   r   r   r   ro     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  r/   r  r	  r8   r9   r   )
r   rK   rQ   r
   r}   r"   rt   r   rS   rT   )	r  r-   r$   r  Zindex3r&   rc   r]   rv   r   r   r   #test_resample_nunique_with_date_gap  s    

r  nrl  i k)r_   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-27r_   r@   r   r   r8   r#   r
  r   rD   ZsideTr7   rI   Z	minlengthFcopy)r   r    r!   r   rK   r
   rp  r  choicert   r  r$   r@   rA   r   searchsortedZlexsortZr_bincountr"   rS   rT   )r  r  r-   Zprngdrr~   rp   ixvalsbinsZsortermaskrZ   rD   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 )Nrl  z
2015-09-19r@   ry   r   r#   rX  r   rD   r  r7   r  r8   Fr  )r   rK   r
   r   r    r!   r1   r  rt   sizer$   r@   rA   r  r   r  r"   r  rS   rT   )	r-   r  r  r~   rp   r  r  r  rD   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~   rz  r&   r-   UTCzEurope/Madridi 8XiFXr  r/   r;   r#   r   )r   r   r   r   r~   dtr_  
tz_convertrt   r=   rS   r   )Zdf1Zdti1Zdf2Zdti2rb   r]   rv   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  ra  r7   r   r#   Z1dr/   z
2016-11-02z
2016-11-24r   r\  r   r{   rh  )r   r  rK   r   rM   r   r   r   r   r   rS   r   )r-   r$   rb   r]   Zexpected_index_valuesrv   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  rg   ri      z
US/Easternr  r;   r#   r.   r/   r  r  r7   r   r0   )
r   r   rK   r   r$   	normalizerS   r   rt   r=   )r-   rU   rb   rv   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-30rf  Z30Minr[  r\  r7  r8   r9   r@   rA   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/2013r.   )i  i  iB  r  )i  iA  r  i  )r  r   r  r  zD Frequency)	r   rK   r}   r  r   rt   rR   rS   r   )r-   rU   r   rb   r  rs  r]   rv   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  r_      ri   rj  ry   r;   r#   r        @rr   r|   )pytztimezoner   r   ZlocalizerK   r
   rt   r>   r   r   rS   rT   )r-   r   r  r   r]   rv   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  )rg   rz   r      rw  )r$   r   Z1Wr  *   r  z
2017-04-02r  r  r#   )r   r   rK   rt   r=   rS   r   )r-   rb   r]   rv   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  r9   r  z
2013-04-07r;   )r0   rk   r   )	r   rK   r
   r   r`   rt   r>   rS   rT   )r-   r[   r&   r]   rv   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  rg   rr   rz   r;   rg  r/   r  zAmerica/Havanar#   r   z
2018-11-03rk   T)rc  r.   )g      @g      <@g     @F@)r   r   rK   r_  r  r   r}   r"   r   rM   r   r>   r   rS   r   )	r-   r2   r3   r$   r   Z	dataframer]   rU   rv   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   rr   r;   r|   rg   r#   )r  r   r  )ri        @      &@Z1sr  r  Z2sr  Z3sZ60s)	r   r   NaTrK   r   rS   r   rt   r>   )	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  r7   rw  r   ry  r#   z
2016-01-15rr   Z2Dry   )r$   rl   )r   r   r$   rK   r
   r   r  r   rt   firstrS   rT   )r-   r   rb   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   s   t | | S r   r   r>   r   add_argr   r   r   rY   C  s    z3test_resample_apply_with_additional_args.<locals>.fr_   r.   )r  )r$   rK   rt   r   r>   multiplyrS   rT   )ru   r-   rY   
multiplierr]   rv   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 sl0    Y  d
}tjt|d* |dd
 |}W d    n1 s0    Y  t|| d S )Nc                 S   s   t | | S r   r	  r
  r   r   r   rY   U  s    z4test_resample_apply_with_additional_args2.<locals>.fr_   r7   r   r   Z2017r  r#   r{  r   r   r.   )r   r   rS   r   r}  rM   rt   rR   r  r  r>   r  r   )rY   r  rb   r   r]   rv   r   r   r   )test_resample_apply_with_additional_args2S  s    <8r  )r7   r   rr   zn1, freq1, n2, freq2)
)   r&         ?r   )<   r&   r7   r   )i  r&   r7   r  )r  r   r7   r  )i`T  r&   g      ?r.   )r;  r&   r7   r.   )i  r&   r  r.   )i  r   r7   r.   )rz   r  r  r.   )   r  r7   r.   c                 C   st   | | }|| }t dd|d|}ttt||d}	|	t||  }
|	t||  }t	|
| d S )Nz
1991-09-05z
1991-09-12r/   r#   )
r   rK   r
   r}   r"   rt   r   r>   rS   rT   )Zn1Zfreq1Zn2Zfreq2r  r-   Zn1_Zn2_rU   serr   r   r   r   r    test_resample_equivalent_offsetsd  s    r  z"first,last,freq,exp_first,exp_last))1991090519920406r.   r  19920407)z19910905 00:0019920406 06:00r.   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  r  c                 C   sz   t | } | | j|} t |}||j|}t|}t|}tjj|}t	| ||dd}||f}||ksvJ d S )Nr)   r  )
r   rq  r0   rK   r   r   r  ZfrequenciesZ	to_offsetr   )r  r   r0   Z	exp_firstexp_lastr-   r]   rv   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}| rDddg|_d	}tjt|d
" |	d
tj}W d    n1 s~0    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   rz   r2   r0   rk   r#   r   r   r   z!using DatetimeIndexResampler.prodr   r$  r   r  r     r  r  i  i  r   )z
2012-03-31z
2012-06-30z
2012-09-30z
2012-12-31QE-DECr/   r   )r   rK   r
   r}   r   ra   rS   r   r   rt   r   r   r?   rL   r8   r   r   )r   r-   r$   r~   rb   r   r]   rv   r   r   r   test_resample_apply_product  s$    
0&r$  z$first,last,freq_in,freq_out,exp_last))
2020-03-28
2020-03-31r.   r^  z2020-03-30 01:00)r%  
2020-10-27r.   r^  2020-10-27 00:00)
2020-10-25r'  r.   r^  z2020-10-26 23:00)r%  r&  r^  r.   z2020-03-30 00:00)r%  r'  r^  r.   r(  )r)  r'  r^  r.   z2020-10-26 00:00)r  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   rK   rt   r   rS   rT   )	r  r   r*  r+  r  r-   r~   r]   rv   r   r   r   #test_resample_calendar_day_with_dst  s    'r,  )r@   rA   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   rr   r!  r7   r$  r   )Z	min_countr&  r#  r/   r#   )
r   rK   r
   r   r   r   rt   r   rS   rT   )r  r-   r$   r  r]   rv   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 23r:  r   r   )r   r7   r   r   )r$   ra   r   r:   z
2000-01-02z
2000-01-03r.   r7   r   r   )r   r   rK   r  r$   rt   rA   r   r   rS   r   )Zany_unsigned_int_numpy_dtyper-   rb   r]   rv   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&   Z100YE)r-   r0   )r7   ri   r   r   r;   r|   r7   ri   r   r   r;   r|   r7   ri   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-DECr/   )	r   ri        @r  ri  r/  r  ri  r/  )
r   r
   rt   r>   r   r   rL   r  rS   rT   )r[   r  r]   expected_idxrv   r   r   r   test_long_rule_non_nano  s    r1  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  rp   r2   )onrF   rG   rI  r   )r0   rl   r:   r`   )r$   rl   r:   )r   r  rt   r=   r   r
   rS   rT   )rb   r]   r0  rv   r   r   r   "test_resample_empty_series_with_tz!  s    r3  zfreq, freq_depr))Z2MEZ2M)Z2QEZ2Q)z2QE-SEPz2Q-SEP)1YEZ1Y)2YE-MARz2Y-MAR)r4  Z1A)r5  z2A-MARc                 C   s   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 s0    Y  t|| d S N'r7   z$' is deprecated and will be removed z!in a future version, please use 'rR  r_   Z20130101r   r   r#   r   	r
   r}   r   rt   r>   rS   r   r   rT   r0   Z	freq_deprZdepr_msgr&   rv   r]   r   r   r    test_resample_M_Q_Y_A_deprecated1  s    ,r:  ))Z2BMEZ2BM)Z2BQEZ2BQ)z2BQE-MARz2BQ-MARc                 C   s   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 s0    Y  t|| d S r6  r8  r9  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  r2   r0   rk   r-   r~   r#   r  rD   r    r7   r   r/   ri   rr   ;   M8[]
r   r   rt   r   r   r   rK   r  rS   r   )r-   rU   rb   groupedr]   exp_dtirv   r   r   r   test_resample_ms_closed_right]  s     
rG  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#   rD   r  r@  r7   r  r/  r   rr   ri   r/   rA  rB  rC  rD  )r0   r-   rU   rb   rE  r]   rF  rv   r   r   r   test_resample_c_b_closed_rightm  s6    



	




rH  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-26rf   r:  )rk   r0   r-   )r7   r   rr   ri   r;   rf   r#   r   rD   rs   i  rx   r           r/   )r   g      @g      @g      @)	r   r
   rt   r>   r   r   rK   rS   rT   )r-   rU   r  r]   rF  rv   r   r   r   test_resample_b_55282  s$    



	rL  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  r_  r   r   r`   rt   r>   rS   rT   )r   r[   rv   r]   r   r   r   test_arrow_timestamp_resample  s    rN  )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_testingrS   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-   r6   r^   rd   markZparametrizerw   r   r   filterwarningsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r(  r+  r.  r1  r4  r6  r9  r=  r>  r@  rG  rQ  r   rU  rV  rZ  r]  r`  rk  rm  rn  rt  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  r  r$  r   r,  r-  r.  r1  r3  r:  r;  rG  rH  rL  Z
skip_if_norN  r   r   r   r   <module>   s  $	




$			

@:


	0






%!7












2

	

 \ $

