o
    ҷh                    @   s  U d dl m Z  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Zd dl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*dd Z+dd Z,ej-.ddgej-.ddd d! fd"d#d! fgd$d% Z/d&d' Z0d(d) Z1ej-.ddgej-.d*g d+d,d- Z2ej-.ddgd.d/ Z3ej-.ddgd0d1 Z4d2d3 Z5d4d5 Z6d6d7 Z7d8d9 Z8ej-.d:g d;d<d= Z9ej-.d>d?d@gdAdB Z:ej-.d>dCd@gdDdE Z;dFdG Z<dHdI Z=dJdK Z>dLdM Z?ej-.d>g dNej-.dOg dPdQdR Z@dSdT ZAdUdV ZBdWdX ZCdYdZ ZDd[d\ ZEd]d^ ZFej-.d_d`dadbdcddgdedadbdfddgd@dgdhd@ddggdidj ZGdkdl ZHdmdn ZIdodp ZJdqdr ZKej-.d>g dsdtdu ZLej-.dvdwdxgdydz ZMd{d| ZNd}d~ ZOej-.dddidedidddddiddigdd ZPej-.ddddddeQ gdd ZRej-.ddddeQ gdd ZSdd ZTdd ZUdd ZVdd ZWdd ZXdd ZYdd ZZdd Z[dd Z\dd Z]dd Z^dd Z_dd Z`dd Zaej-.d>g ddd Zbej-.dddgddggdd Zcdd Zddd Zedd Zfdd Zgdd ZhddĄ Ziej-.ddddejjdej-jkddˍd̍gdd΄ ZlddЄ Zmdd҄ ZnddԄ Zoe dddwe ddd؃e dddڃe dddڃe dddۃe ddd݃gZpeqe erd< epddx ejsg epdxd߅  ejsg epdd  Zteqe erd< ejsgep ejsg Zuej-.depeteugdd Zvdd Zwdd Zxej-j.ddd! dd! dd! gg dddd Zyej-.dddgej-.dg ddd Zzdd Z{dd Z|dd Z}dd Z~dd  Zdd Zdd Zdd Zdd Zd	d
 Zdd Zej-.dg dej-.dg ddd Zej-.dg ddd Zej-.dddgdd Zej-.dg ddededed ed!ef
d"d#Zej-.dg d$d%d& Zd'd( Zd)d* Zd+d, ZdS (-      datetime)partial)StringION)lib)DatetimeNaTType)	DataFrame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/venv/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_values/   s   r%   )smsusns)paramsc                 C      | j S r   )param)requestr   r   r   unit4   s   r.   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   freqsummeanprodminmaxvarTaltnumeric_onlyrightr5   closedlabel!
  i 
  r   5Tr#   r7   )as_unitr	   r   arrayr"   r   r   groupbyohlc_cython_agg_generalngroupsr   r8   allappendr   aggtmassert_series_equal)r$   r.   dtir&   bgfuncsfarridxexpectresultr   r   r   test_custom_grouper9   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s1J t|jd	ks:J d S )
Nr3   r@   rA   r   
   float64r1   r7   rD   )r   r   rG   r   r   r    r!   r"   rI   rO   columnsr$   )r$   r.   rS   rR   dfrr   r   r   test_custom_grouper_df]   s   
ra   z#_index_start,_index_end,_index_name)1/1/2000 00:00:00z1/1/2000 00:13:00r$   zclosed, expectedr@   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   5minr$   periodsr5   namer#   )r	   ilocr8   r   r&   r   r   r   <lambda>r   s    4rm   leftc                 C   sB   t | d d  | dd  | dd   gtddddddS )	Nr3   r\   1/1/2000 00:05   rg   r$   rh   r#   )r	   r8   r   rl   r   r   r   rm   y   s    ,c                 C   sL   | }|j ||_ ||}|j ||_ |jd|dd }t|| d S )Nrg   r@   rB   rC   )r$   rG   resampler8   rP   rQ   )seriesrB   expectedr.   r&   rZ   r   r   r   test_resample_basici   s   ru   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	   re   Tri   r5   Int64r1   3T)rp         rp   )r/   rf      Float64)	r	   ranger   rG   rr   r7   rP   rQ   r8   )r.   tsrZ   rt   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5Minr3   rn   rA   c                 S   
   | j d S NrE   rk   xr   r   r   rm         
 z-test_resample_basic_grouper.<locals>.<lambda>)
r$   rG   rr   lastr   r   rI   rO   rP   rQ   )rs   r.   r&   rZ   grouperrt   r   r   r   test_resample_basic_grouper   s   r   zkeyword,value))rC   righttt)rB   r   )
conventionstartttc                 C   sh   | j || _ d| d| d}tjt|d | jdi ||i W d    d S 1 s-w   Y  d S )NzUnsupported value z for ``matchrg   rg   )r$   rG   pytestraises
ValueErrorrr   )rs   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 )NrJ   z!covered by test_resample_how_ohlcr   r/   rc   r   rd   rp   re   rf   rg   r$   rh   r@   rq   )r   skipr$   rG   r   	ones_likerI   rO   r   getattrrr   rP   rQ   )rs   downsample_methodr.   r&   	grouplistrt   rZ   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/   rc   r   rd   rp   c                 S   :   t |  rttjdS | jd |  |  | jd gS Nrf   r   rE   r   rM   r   repeatnanrk   r;   r:   groupr   r   r   _ohlc       z%test_resample_how_ohlc.<locals>._ohlcre   rf   rg   r$   rh   )openhighlowcloser$   r^   r@   rq   )r$   rG   r   r   r   rI   rO   valuestolistr   rr   rJ   rP   assert_frame_equal)rs   r.   r&   r   r   rt   rZ   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 )Nr3   r2   
2014-01-01dstartri   r5   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   Mc                 S   r   r   r   r   r   r   r   rm         z-test_resample_how_callables.<locals>.<lambda>r   )r   )r/   )r   aranger0   r   r"   rG   r   rr   applyr   rP   r   )r.   dataindr_   r   r   df_standard	df_lambda
df_partialdf_partial2df_classr   r   r   test_resample_how_callables   s   
r   c                 C   sp  d}t jt|dddgidd}|j| |_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 )Na  date,time,value
11-08-2014,00:00:01.093,1
11-08-2014,00:00:02.159,1
11-08-2014,00:00:02.667,1
11-08-2014,00:00:03.175,1
11-08-2014,00:00:07.058,1
11-08-2014,00:00:07.362,1
11-08-2014,00:00:08.324,1
11-08-2014,00:00:08.830,1
11-08-2014,00:00:08.982,1
11-08-2014,00:00:09.815,1
11-08-2014,00:00:10.540,1
11-08-2014,00:00:11.061,1
11-08-2014,00:00:11.617,1
11-08-2014,00:00:13.607,1
11-08-2014,00:00:14.535,1
11-08-2014,00:00:15.525,1
11-08-2014,00:00:17.960,1
11-08-2014,00:00:20.674,1
11-08-2014,00:00:21.191,1	timestampdatetime)parse_dates	index_col6sr   )rf   rv   rf   r   z
2014-11-08rf   r5   ri   r#   7s)rf   r\   rf   r/   11srd      r   13s   rc   17s   rp   )pdread_csvr   r$   rG   rj   rr   r7   r   r   rP   r   )r.   r   r_   rZ   rt   r   r   r   test_resample_rounding  sL   





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/   r\   Dr$   r   endr5   rj   r   zw-sunrp   )rc   rc   rc   r   z1/2/2005z1/9/2005rE   W-MONz1/3/2005z	1/10/2005zW-TUEz1/4/2005W-WEDz1/5/2005zW-THUz1/6/2005zW-FRIrf   z1/7/2005r   r}   )rf   r   r/   r   rp   rf   r   r3   )r   r   rG   r	   r   r    r!   r"   rr   r   r$   	dayofweekrM   rk   rj   r.   rR   r&   rZ   r   r   r   test_resample_basic_from_dailyR  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-2014r   r4   r/   r#   r         ?rc   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>19750101r3   rx   )r   rG   r	   rr   r8   r$   r   r   r   countrP   rQ   r7   )r.   datesrs   rZ   r&   rt   result1result2r   r   r   /test_resample_upsampling_picked_but_not_correct  s$   
r   rV   r6   c                 C   s>   t  }|j||_tdd}||}|j| d dd d S )Nr   r4   Tr=   )rP   makeTimeDataFramer$   rG   r   rI   rK   )rV   r.   r_   rS   rT   r   r   r   "test_resample_frame_basic_cy_funcs  s
   

r   r5   r   r   c                 C   sF   t  }|j||_||  }t |d |d |   d S )Nr   )rP   r   r$   rG   rr   r8   rQ   )r5   r.   r_   rZ   r   r   r   test_resample_frame_basic_M_A  s   "r   r   c                 C   s,   t  }|j||_|j| dd  d S )Nperiodkind)rP   r   r$   rG   rr   r8   )r5   r.   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/   r\   r   r$   r   r   r   i2  r   rE   )r   r   rG   r	   r   r    r!   r"   rr   ffillrk   r$   rj   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 )Nrd      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10sr4   10S)r	   r   r$   rG   r   r   r   rP   rQ   rr   r8   )r.   r&   rt   r   r   r   test_resample_how_method  s.   	r  c                 C   s~   t dddd| }tdtg d|di}t dddd| }tdttt||did	d
}|d }t	|| d S )N2015010120150331BMr   r   r5   r   )r|   )   ?   r#   r   r0   r   )
r   rG   r   r	   r   r"   rr   r   rP   r   )r.   r$   rt   r_   rZ   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 )
Nre   rp   5trx   r   tlimitr   methodr  )r   rG   r	   r   r    r!   standard_normalr"   rr   r   reindexr$   rP   rQ   r.   rngr   rZ   rt   r   r   r   test_upsample_with_limit  s
   r  )5D10Hr   r  rule)Y3M15D30H15Min30Sc                 C   sf   t dd|| d|}ttjdt||}||j	dd}|j
|jddd}t|| d S )Nre   rp   )ri   r5   tzr   r  nearestr  )r   rG   r	   r   r    r!   r  r"   rr   r!  r  r$   rP   rQ   )tz_aware_fixturer5   r  r.   r  r   rZ   rt   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 )Nr3   r4   c                 S   r   r   r   r   r   r   r   rm     r   z$test_resample_ohlc.<locals>.<lambda>r   rf   r   ir   rE   r   r   r   )r$   rG   r   r   rI   rO   rr   rJ   r"   r^   rk   r;   r:   )rs   r.   r&   r   rY   rZ   xsr   r   r   test_resample_ohlc  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hr4   	4-15-2000	5-15-2000r#   30Tz	4-14-2000)r   rG   unionr	   r   r"   locrr   rJ   
isinstancer   )r.   r$   r&   r   rS   r   r   r   test_resample_ohlc_result-  s   r0  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   rE   r4   r#   )r   rG   dropr   r   r   r   r"   rr   r8   r  rP   r   )r.   r  r$   r_   rZ   rt   r   r   r   $test_resample_ohlc_result_odd_period:  s   $r2  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VOLUMEr5  r4  r/   axisColsH)r7  keysr   r   rS   cr   ))r   r;  r   )r   r;  r   )r   r;  r   )r   r;  r   )rS   r   r   )rS   r   r   )rS   r   r   )rS   r   r   )r   r   r  r$   rG   r^   rj   rr   rJ   r   concatnamesrP   r   
MultiIndexfrom_tuples)r.   r_   resexpr   r   r   test_resample_ohlc_dataframeL  s:   
"rB  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   )rf   r{   )  rC  rC  rC  c                 S      g | ]}t d |d ddqS )rC  r/   r   )yearmonthr5   r   r   r   r   r   r         z+test_resample_dup_index.<locals>.<listcomp>r{   r   rp   -DataFrame.resample with axis=1 is deprecated.r   Qr/   r6  z+DataFrame.groupby with axis=1 is deprecatedc                 S   s   t | jd d S )Nr/   rp   )intrF  r   r   r   r   rm     s    z)test_resample_dup_index.<locals>.<lambda>c                 S   rD  )rC  r/   rJ  )rE  quarterr5   rG  r   r   r   r   r     rH  rf   )r   r   r    r!   r  r   r   rk   rP   assert_produces_warningFutureWarningrr   r8   rI   r^   r   )r_   warning_msgrZ   r   rt   r   r   r   test_resample_dup_index|  s    rP  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/   r\   r   r  r   r   r@   rq   8Hr  r   )r   r   rG   r	   r   r    r!   r"   rr   r8   r/  r$   r5   r   
DateOffsetHour)r.   rR   r&   bsrZ   r   r   r   test_resample_reresample  s   rU  zfreq, expected_kwargsA-DEC19902000za-decr  zA-JUNza-junz1990-01z2000-01c                 C   sX   | dd}|j ||_ |j|dd }|| }tdi ||_ t|| d S )Nz1/1/1990re   r   r   r   )r$   rG   rr   r8   r   rP   rQ   )simple_date_range_seriesr5   expected_kwargsr.   r   rZ   rt   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>._ohlcrb   z1/1/2000 5:59:50r  r4   r   r#   rg   r@   rq   z1/1/2000 00:00r   r/      ro   z1/1/2000 5:55:01z1/1/2000 6:00:00)r   rG   r	   r   r    r!   r  r"   rr   rJ   r.  rk   rM   )r.   r   r  r   	resampledrA  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 )Nre   	2/29/2000r3   r   r#   r   c                 S   r+   r   )rF  r   r   r   r   rm     s    z,test_downsample_non_unique.<locals>.<lambda>r   r/   )r   rG   r   r   r	   r   r    r!   r  r"   rr   r8   rI   rP   assert_almost_equalrk   )r.   r  rng2r   rZ   rt   r   r   r   test_downsample_non_unique  s   rb  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 )Nre   r_  r   r#   z/cannot reindex on an axis with duplicate labelsr   r   )r   rG   r   r   r	   r   r    r!   r  r"   r   r   r   asfreq)r.   r  ra  r   r   r   r   r   test_asfreq_non_unique  s   "rd  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 )Nre   r_  r   rp   r   rS   r;  r^   r$   rI  r   r   r/   r6  )r   rG   r   r   r    r!   r  r"   rP   rM  rN  rr   r8   rw   r   )r.   r  r_   rO  rZ   rt   r   r   r   test_resample_axis1  s   rg  )r  r  15t30t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&   rx   r   r#   rn   rq   r   rG   r	   r   r    r!   r  r"   r   rr   r8   rP   rQ   )r5   r.   r  r   rZ   rt   r   r   r   test_resample_anchored_ticks  s   rn  r   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   )r7   r   r   r   r   rm         z,test_resample_single_group.<locals>.<lambda>z2000-1-1z2000-z-10r   r4   r   r#   r   )r   rG   r	   r   r    r!   r  r"   rP   rQ   rr   r7   r   )r   r.   mysumr  r   r   r   r   test_resample_single_group  s   &rr  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      ?20070915r   r4   c                 S   s
   t | S r   )r   stdr   r   r   r   rm     r   z0test_resample_single_group_std.<locals>.<lambda>)	r	   r   r$   rG   r   rr   r   rP   rQ   )r.   r&   rt   rZ   r   r   r   test_resample_single_group_std  s   ru  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 )Nrb   z1/1/2000 02:00r&   r4   r   r#   rg   2minoffset12/31/1999 23:57:00z1/1/2000 01:57r   rG   r	   r   r    r!   r  r"   rr   r8   rP   assert_index_equalr$   )r.   r  r   r]  exp_rngr   r   r   test_resample_offset  s   r}  kwargsorigin1999-12-31 23:57:00z1970-01-01 00:02:00epoch2mr  rx  z1999-12-31 12:02:00rx  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&   r4   r   r#   r  2000-01-01 01:57rg   r   rz  )r~  r.   r  r   r|  r]  r   r   r   test_resample_origin  s   r  invalid_valueepchstartdaystarttz
2000-30-30c                 C      t dddd|}ttjdt||d}d|  d}tj	t
|d	 |jd
| d W d    d S 1 s9w   Y  d S )Nr  r  r&   r4   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   rg   r  r   rG   r	   r   r    r!   r  r"   r   r   r   rr   )r  r.   r  r   r   r   r   r   test_resample_bad_origin6  s   "r  12dayysc                 C   r  )Nr  r  r&   r4   r   r#   z6'offset' should be a Timedelta convertible type. Got 'r  r   rg   rw  r  )rx  r.   r  r   r   r   r   r   test_resample_bad_offsetE  s   "r  c                 C   sl  d\}}t ||dd| }ttjdt||d}t dddd| }|d	 }t
|j| |jdd	d
	 }t
|j| t dddd| }|jddd
	 }t
|j| |jddd	 }t
|j| |jdd	dd	 }t
|j| t dddd| }|jddd
	 }t
|j| t dddd| }|jddd
	 }t
|j| d S )N)2000-10-01 23:30:00z2000-10-02 00:30:007minr4   r   r#   z2000-10-01 23:14:00z2000-10-02 00:22:0017min	start_dayr  r  z2000-10-02 00:21:00r   23h30minrw  r  z2000-10-01 23:18:00z2000-10-02 00:26:00r  z2000-10-01 23:24:00z2000-10-02 00:15:00
2000-01-01rz  )r.   r   r   r  r   r|  r]  r   r   r   test_resample_origin_prime_freqN  sJ   r  c                 C   sl  d}d}t ddd|d| }ttjdt||d}t d	d
d|d| }|jddd	 }t
|j| |jddd	 }t
|j| |jdddd	 }t
|j| tjt|d |jddd	  W d    n1 suw   Y  t dddd| }ttjdt||d}tjt|d |jddd	  W d    d S 1 sw   Y  d S )Nz4The origin must have the same timezone as the index.Europe/Parisr  r  r&   r5   r   r   r#   r  r  rg   z1999-12-31 23:57:00+00:00r  z1999-12-31 12:02:00+03:00r  r  r  r   ry  r4   z12/31/1999 23:57:00+03:00)r   rG   r	   r   r    r!   r  r"   rr   r8   rP   r{  r$   r   r   r   )r.   r   r   r  r   r|  r]  r   r   r   test_resample_origin_with_tzs  s6   "r  c                 C   sL  d\}}t ||dd| }tjdt|}t||d}|jddd	 }|jd	dd	 }t
|| |d }|jddd	 }	|jd	dd	 }
t
j||	|jd
d t
j||
|jd
d d\}}t ||dd| }t||d}|jddd	 }|jd	dd	 }t
|d |d  t
|d |d  d S )N)z2000-10-01 23:30:00+0500z2000-12-02 00:30:00+0500r  r4   r   r#   r   r  r  24HF)
check_freq)z2000-10-01 23:30:00+0200z2000-12-02 00:30:00+0200)r   rG   r   r    r!   r  r"   r	   rr   r8   rP   rQ   tz_localizer   )r.   r   r   r  random_valuests_1result_1result_2ts_no_tzresult_3result_4ts_2result_5result_6r   r   r   -test_resample_origin_epoch_with_tz_day_vs_24h  s&   
r  c           
         s  d d& fdd	}t d d}t d d}t||dd	}ttt||d
}|ddgddg}ddd|d fD ]}|jd|d }t	
|| q;t d d}t d d}t||dd	}ttt||d
}ddg}	|ddg|	}|jdddd }t	
|| ddg}	|ddg|	dd	}|jdddd }t	
|| ddg}	|ddg|	}|jdddd }t	
|| dd g}	|dd!g|	}|jddd"d }t	
|| d#d$g}	|d!dg|	}|jddd%d }t	
|| d S )'NAmerica/Chicagor   c                    s*   t | t fdd|D |dddS )Nc                    s   g | ]}t | d qS )r3  )r   )r   r  r3  r   r   r     s    zUtest_resample_origin_with_day_freq_on_dst.<locals>._create_series.<locals>.<listcomp>T)r5   	ambiguousr#   )r	   r   rG   )r   
timestampsr5   r   r.   r   r   _create_series  s   zAtest_resample_origin_with_day_freq_on_dst.<locals>._create_series
2013-11-02r3  z2013-11-03 23:591hr4   r#   g      8@g      9@z
2013-11-03r  r   r  r  z2013-11-02 22:00-05:00z2013-11-03 22:00-06:00g      7@       @z-2Hr  z2013-11-03 21:00-06:00g      6@      @r  z2013-11-02 02:00-05:00z2013-11-03 02:00-06:002Hz2013-11-02 23:00-05:00z2013-11-03 23:00-06:00r   z-1Hz2013-11-02 01:00-05:00z2013-11-03 01:00:00-05001H)r   )r   r   rG   r	   r   onesr"   rr   r7   rP   rQ   )
r.   r  r   r   r  r   rt   r  rZ   expected_tsr   r  r   )test_resample_origin_with_day_freq_on_dst  sD   	r  c                 C   s   t dddd| }ttjdt||d}tj|d d< |dd  j	dddd	
 }|j	dddd	
 }t|| d S )
Nz1/1/2000 0:00:00'  rw   rx   r   r#   r   rn   rq   rm  r  r   r   r   test_resample_daily_anchored  s   r  c                 C   s`   t dd| }ttjdt||d}|jddd	 }t
dd	dd
}t|j| d S )Nre   z
12/31/2000r   r#   r   r   r   zJan-2000zDec-2000r4   )r   rG   r	   r   r    r!   r  r"   rr   r8   r   rP   r{  r$   )r.   r  r   rZ   	exp_indexr   r   r   &test_resample_to_period_monthly_buglet  s
   r  c                  C   sd   t tjddddtdddddd	} |  d
 	 }| d

dd }t|| d S )Nr   r   r3   2   z
2012-01-01r9  r   r]   r1   r   c                 S   ro  r   r8   r   r   r   r   rm     rp  z&test_period_with_agg.<locals>.<lambda>)r	   r   r    r!   integersr   to_timestamprr   r8   	to_periodrO   rP   rQ   )s2rt   rZ   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d }|d	dd }t
|| d S )Nr/   i  r\   r      r   r         r\  )IDr   r   r   r^   r   r  rg   c                 S   s   |  d S )Nrg   )rr   r7   r   r   r   r   rm     s    z(test_resample_segfault.<locals>.<lambda>)r   r   from_records	set_indexr$   rG   rI   rr   r7   r   rP   r   )r.   all_wins_and_wagersr_   rZ   rt   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d }|jjt	j
ks>J d S )Nz
2016-01-01rf   Wr   )r/   r/   r   r   )r3   rc   r}   r   int32r   )r   r   valr   1Dr   )r   r   rG   r	   r  rr   r   r  r2   r   r  rI   r.   r_   rZ   r   r   r    test_resample_dtype_preservation  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/   rp   r/   rf   z
2017-01-01z
2017-01-04r#   r]   r9  cubic)r   importorskipr   r   rG   astyperr   r8   interpolaterP   rQ   )r.   r_   rt   rZ   r   r   r   test_resample_dtype_coercion/  s   
r  c                 C   s^   t dddd| }ttjdt||d}|d	 }|d	 }t
|| d S )	Nre   r   r  r   r   r#   r  zW-SUN)r   rG   r	   r   r    r!   r  r"   rr   r8   rP   rQ   )r.   r  r   r]  rt   r   r   r   test_weekly_resample_buglet?  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)  rx   r   r#   r   )	r   rG   r	   r   r    r!   r  r"   rr   r.   r   r   r   r   r   test_monthly_resample_errorI  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\   100nr   r#   d   r8   r1   )r   r   to_datetimer	   r   r"   rr   tseriesr   NanorO   floatrP   rQ   )r   	exp_startindxr   r`   rZ   exp_indxrA  r   r   r   test_nanosecond_resample_errorQ  s   
r  c           	      C   s|  t dddd|}t|j|d}|d }|jddd jd	d
}| jtddtdd 7  _|j|	d|_|jj
dksFJ t|| |jddd }|jdddjddd }|jd	d
}|jtdd tdd |_|j|	d|_|jj
dksJ t|| t dddd|}t|j|d}|d }|jddd jd	d
}| jtddtdd 7  _d|jj_
tj|j_|j||_t|| |jddd }|jdddjdddd }|jd	d
}| jtddtdd 7  _d|jj_
tj|j_|j||_t|| | dddd}|j||_|d }t|dks<J d S )Nz1/1/2012z4/1/2012100minr4   r#   r   r   r   r   )howr/   r)   r   inferrn   )rB   rJ  )r   rB   z2012-04-29 23:00z2012-04-30 5:00r)  )r   rG   r   rF  rr   r8   r  r$   r
   
_with_freqr5   rP   r   shift_datar   
no_default_freqr"   )	rY  r.   r  r_   rZ   rt   rA  r   r]  r   r   r   test_resample_anchored_intradaya  sH   



r  )MSBMSzQS-MARzAS-DECzAS-JUNc                 C   s*   | dd}|j ||_ ||  d S )Nre   z
12/31/2002)r$   rG   rr   r8   )rY  r5   r.   r   r   r   r   !test_resample_anchored_monthstart  s   
r  z
label, secr  z4.2c                 C   st   t dddd}t dddd}||}ttjdd|d	}|jd| d
 }|j	d t
d| dks8J d S )Nz2014-10-14 23:06:23.206rp   400Lrx   z2014-10-15 23:00:00r   2200Lr3   r#   )rC   rE   z2014-10-15 23:00:00)r   r-  r	   r   r    r!   r  rr   r8   r$   r   )rC   secindex1index2r$   r&   rZ   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 )Nre   r{   r  rx   r   r#   r  r@   rn   rq   z1999-12-31 23:55rf   rz  )r.   r  r   rZ   ex_indexr   r   r   test_corner_cases  s
   r  c                 C   s8   | ddddd d }| d }t|dksJ d S )Nz2007-01z2010-05r   r4   r   rV  )rr   r8   r"   )simple_period_range_serieslen0ptsrZ   r   r   r   test_corner_cases_period  s   r  c                 C   s\   | dddd}|j ||_ |jddd }t|dksJ |j d	 td
ddks,J d S )Nz
2000-04-28z2000-04-30 11:00r)  r4   r   r   r   r/   r   z2000-04)r$   rG   rr   r8   r"   r   )rY  r.   r   rZ   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&   rx   r   r#   r   )
r   rG   r	   r   r    r!   r  r"   rr   r8   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-12rf   r)  rx   r   r#   20minr8   r7   )r   rG   r	   r   r    r!   r  r"   rr   	aggregater/  r   )r.   r  r   rZ   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)  rx   r   r#   r   )r   rG   r	   r   r    r!   r  r"   takepermutationrr   r7   
sort_indexrP   rQ   )r.   r  r   rZ   rA  r   r   r   test_resample_not_monotonic  s   r  r2   r0   r  r]   float32z-Empty groups cause x.mean() to return float64)reason)marksc              
   C   s   t ddgtddddddtddddddg| d}|ddd	 }|d}t|| |d }|d}t|| d S )
Nr/   r     r   r3   r1   rw   c                 S   ro  r   r  r   r   r   r   rm     rp  z/test_resample_median_bug_1688.<locals>.<lambda>)r   r   rr   r   rc  rP   r   median)r2   r_   rZ   rA  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 )Nre   z4/1/2000r   c                 S   ro  r   r  r   r   r   r   rm     rp  z+test_how_lambda_functions.<locals>.<lambda>foobarc                 S   ro  r   r  r   r   r   r   rm     rp  c                 S      | j ddS Nr/   )ddofrt  r   r   r   r   rm     r   c                 S   ro  r   r  r   r   r   r   rm     rp  c                 S   r  r  r  r   r   r   r   rm     r   )r  r  F)check_names)r$   rG   rr   r   r8   rP   rQ   rj   rt  r^   r  )rY  r.   r   rZ   rA  foo_expbar_expr   r   r   test_how_lambda_functions  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  rp   r/   r3   r  r}   r\  rf   30minr4   r   r#   AS)r   r   rG   r   rr   r7   )r.   r   r   bad_indr_   r   r   r   test_resample_unequal_times  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-02rf   r,  rx         @r#   r   r   rE   10Tr4   bfill)r$   r  )r$   r  r  r  10Minr  )r   rG   r	   r   r   r   rk   r  reindex_likerr   r  rP   rQ   )	r.   i30r&   i10s10s10_2rlr10_2r10r   r   r   test_resample_consistency(  s   r)    r\   rv   rp   rd   r3   r   r}   r  dates1rf   dates2r   c                 C   sF  t | tt| d}|dd }tg dddd}t dg di|d}|d  	 r8|j
d |_
t|| |tddd	 }t|| t | tt| tt| 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 )Nr   r   r   )z
2014-07-31z
2014-08-31z
2014-09-30z
2014-10-31z
2014-11-30)r5   rj   r   )r/   r   r   r   r/   r#   )r5   key)r   r   C)r   r.  r.  r   )r   r   r   r"   r  rr   r   r   r   anyr$   r  rP   r   rI   r   )r   r_   rZ   exp_idxrt   r   r   r   test_resample_timegrouperN  s2   $r1  c                 C   s   t tddtdditddtddid}|j| |_|d}|tdd	}|tdd	jd
d }|j	dks@J ||fD ]}|j
 }t|| qD|jd
 }t|| |jtdd	
 }t|| d S )Nz2015-06-05 00:00:00
0010100903z2015-06-08 00:00:00
0010150847z
2015-06-05z
2015-06-08)r  DATEr   r4   c                 S   ro  r   nuniquer   r   r   r   rm     rp  z'test_resample_nunique.<locals>.<lambda>r  )r   r   r$   rG   rr   rI   r   r  r   rj   r6  rP   rQ   )r.   r_   r`   rT   rt   r  rZ   r   r   r   test_resample_nuniqueo  s*   

r7  c                 C   sb   t jdd }|j| |_tjj|j	 gd ddgd|_|
d }t |j|j d S )Nr  r4   r   lev0lev1)r=  r  )rP   r   absr$   rG   r   r>  from_arraysr^   r   rr   r6  r{  r  r   r   r   2test_resample_nunique_preserves_column_level_names  s   r<  funcc                 C   ro  r   r5  r   r   r   r   rm     rp  c                 C   s   |  tjS r   )rO   r	   r6  r   r   r   r   rm     r   c                 C   s
   |  dS )Nr6  )rO   r   r   r   r   rm     r   )r6  series_nuniquenunique_str)idsc           	      C   sr   t dddd|}t dddd|}||}ttt||dd}|d	}| }| |}t	|| d S )
Nr'  r(  r)  r4   r*  r+  r0   r1   r   )
r   rG   rN   r	   r   r"   rr   r   rP   rQ   )	r=  r.   r$   r  index3r&   r`   rZ   rt   r   r   r   #test_resample_nunique_with_date_gap  s   

rB  nr  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\   rw   r   r   r0   r#   r,  r  r@   sideTr/   rE   	minlengthFcopy)r   r    r!   r   rG   r	   r  r  choicerr   r6  r$   r:   r;   r   searchsortedlexsortr_bincountr"   rP   rQ   )rC  rD  r.   prngdrr   rn   ixvalsbinssortermaskrW   r@   r   r   r   test_resample_group_info  s   ( "&$rW  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-19rw   rx   r   r#   7Tr  r@   rE  r/   rG  r0   FrI  )r   rG   r	   r   r    r!   r  rK  rr   sizer$   r:   r;   rL  r   rO  r"   r  rP   rQ   )	r.   rC  rQ  r   rn   rR  rT  r  r@   r   r   r   test_resample_size  s    (rZ  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Xr9  r4   r3   r#   r  )r   r   r   r  r   dtr  
tz_convertrr   r7   rP   r   )df1dti1df2dti2r_   rZ   rt   r   r   r   test_resample_across_dst  s"   rd  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\  r3  r  r/   r   r#   1dr4   z
2016-11-02z
2016-11-24r   r  r   r|   r  )r   r_  rG   r   rI   r   r   r   r   r   rP   r   )r.   r$   r_   rZ   expected_index_valuesrt   r   r   r   !test_groupby_with_dst_time_change  s    rg  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 t
ddddd| }t|j}t|||d|dd}dddd}t|d|g d tg dg dg ddt
ddddd| dd  t|d!|g d tg d"g d#g d$dt
dd%d!dd| dd& t|d|g d tg d'g d(g d)dt
d*d+ddd| dd, t|d-|g d td.d/gd0d1gd/d2gdt
d*d+d-dd| dd3 |d4d5 }t|d	ddddg d tg d6g d7g d8dt
d4d5d	dd| dd9 d S ):Nr  rd   rf      z
US/Easternr3  r3   r#   r   r4   r]  r  r/   r   r5   z
2013-09-30r  30Minr  r  re  r0   r1   r:   r;   r   r   )r   0   i    i   r  )/   i    i  q  2  )rk  P  rr  rr  iR     z	9/30/2013z	11/4/2013zW-MON Frequencyz2W-MON)r   rk  rl  rm  )rn  ro  rp  rq  )rk  i  i  rs  z
11/11/2013z2W-MON Frequency)r   rk    )rn    rq  )rk  i  1   z9/1/2013z	11/1/2013zMS Frequency2MSr   rt  ru  rq  rv  z2MS Frequencyz
10/26/2013z
10/29/2013)i  i  iB  rm  )i  iA  rp  i  )rk  r  rk  rk  zD Frequency)r   r   rG   r   r$   	normalizerP   r   rr   r7   r   r   rY  rO   )r.   rR   r_   rt   r   r  df_dailyr   r   r   test_resample_dst_anchor  s   




rz  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\      rf   r  rx   r3   r#   r9        @rp   r}   )pytztimezoner   r   localizerG   r	   rr   r8   r   r   rP   rQ   )r.   r   r^  r   rZ   rt   r   r   r   test_downsample_across_dstr  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/Amsterdamr3  )rd   r{   r      r  )r$   r   1Wrh  *   r  z
2017-04-02r  ri  r#   )r   r   rG   rr   r7   rP   r   )r.   r_   rZ   rt   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/Londonr9  ri  r1   r  z
2013-04-07r3   )r5   ri   r   )	r   rG   r	   r   r]   rr   r8   rP   rQ   )r.   rX   r&   rZ   rt   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  rd   rp   r{   r3   r  r4   r\  zAmerica/Havanar#   r  z
2018-11-03ri   T)r  r   )g      @g      <@g     @F@)r   r   rG   r  r_  listr   r"   r   rI   r   r8   r   rP   r   )	r.   r   r   r$   r   	dataframerZ   rR   rt   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}|j| |_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   rp   r3   r}   rd   r#   )r  r  r  )r        @      &@1sr|  r  2sr  3s60s)
r   r   NaTr   r$   rG   rP   r   rr   r8   )	r.   r$   frameindex_1sframe_1sindex_2sframe_2sindex_3sframe_3sr   r   r   test_resample_with_nat  s4   	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#   z
2016-01-15rp   2Drx   )r$   rj   )r   r   r$   rG   r	   r   r  r   rr   firstrP   rQ   )r.   r   r_   rA  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|| tdddt	d	dd
d}|
dd||t}|
dd |}t|| d S )Nc                 S   s   t | | S r   )r   r8   )r   add_argr   r   r   rV     s   z3test_resample_apply_with_additional_args.<locals>.fr\   r   )r  r/   r   r   2017r  r#   r   )r$   rG   rr   r   r8   multiplyrP   rQ   r   r   rI   rO   r  r  r   )rs   r.   rV   
multiplierrZ   rt   r_   r   r   r   (test_resample_apply_with_additional_args  s   r  )r/   r   rp   zn1, freq1, n2, freq2)
)   S      ?r   )<   r  r/   r   )i  r  r/   r9  )r  r   r/   r9  )i`T  r  g      ?r   )rl  r  r/   r   )i  r  r  r   )i  r   r/   r   )r{   r9  r  r   )   r9  r/   r   c                 C   st   | | }|| }t dd|d|}ttt||d}	|	t||  }
|	t||  }t	|
| d S )Nz19910905 13:00z19911005 07:00r4   r#   )
r   rG   r	   r   r"   rr   r   r8   rP   rQ   )n1freq1n2freq2rD  r.   n1_n2_rR   serr   r   r   r   r    test_resample_equivalent_offsets  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  r9  r  z19920406 07:00)19910906r  r   1991083119920430)r  r  r   r  19920531)z1991-08z1992-04r   r  r  c                 C   sz   t | } | | j|} t |}||j|}t|}t|}tjj|}t	| ||dd}||f}||ks;J d S )Nr)   r[  )
r   r  r5   rG   r   r   r  frequencies	to_offsetr   )r  r   r5   	exp_firstexp_lastr.   rZ   rt   r   r   r   test_get_timestamp_range_edges  s   r  
duplicatesTFc                 C   s   t dddd|}ttd|d}t||d d}| r"ddg|_d	}tjt|d
 |	d
tj}W d    n1 s?w   Y  ttjddgddgddgddggtjdtg ddd||jd}t|| d S )Nz
2012-01-31r   r{   r   r5   ri   r#   r   r   r   z!using DatetimeIndexResampler.prodr   rJ  r   r  r     rr  rl  i  i  r   )z
2012-03-31z
2012-06-30z
2012-09-30z
2012-12-31Q-DECr4   r   )r   rG   r	   r   r   r^   rP   rM  rN  rr   r   r   r9   rH   r0   r   r   )r  r.   r$   r   r_   r   rZ   rt   r   r   r   test_resample_apply_product8  s$   
&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:00r  r   freq_infreq_outr  c           	      C   sV   t dt| ||dd|}|| }t dt| ||dd|}t|| d S )Nr   r  r  )r	   r   rG   rr   r   rP   rQ   )	r  r   r  r  r  r.   r   rZ   rt   r   r   r   #test_resample_calendar_day_with_dstO  s   'r  )r:   r;   r  r   c                 C   sn   t dddd|}tdtjtjg|}t|d| dd}ttjgtd	gd
d|d}t	|| d S )N2020r   rp   r  r/   rJ  r   )	min_countr  r  r4   r#   )
r   rG   r	   r   r   r   rr   r   rP   rQ   )r=  r.   r$   r  rZ   rt   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 2312Hr  r   )r   r/   r   r   )r$   r^   r   r2   z
2000-01-02z
2000-01-03r   r/   r   rf  )r   r   rG   r.  r$   rr   r;   r   r   rP   r   )any_unsigned_int_numpy_dtyper.   r_   rZ   rt   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&   100Y)r.   r5   )r/   rf   r   r   r3   r}   r/   rf   r   r   r3   r}   r/   rf   r   r   r3   r#   200Y)	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200A-DECr4   )	r   r        @r  r  r  r  r  r  )
r   r	   rr   r8   r   r   rH   r  rP   rQ   )rX   r  rZ   expected_idxrt   r   r   r   test_long_rule_non_nano  s   r  c                  C   sd   t g g dddi} | jddddddd  }tg dddd	}tg |dd
d}t|| d S )N)r   r   r   zdatetime64[ns, Atlantic/Faroe]rw  rn   r   )onrB   rC   r  r   )r5   rj   r2   r]   )r$   rj   r2   )r   r  rr   r7   r   r	   rP   rQ   )r_   rZ   r  rt   r   r   r   "test_resample_empty_series_with_tz  s   r  )r   	functoolsr   ior   numpyr   r   r}  pandas._libsr   pandas._typingr   pandasr   r   r	   r
   r   r   r   pandas._testing_testingrP   pandas.core.groupby.grouperr   pandas.core.indexes.datetimesr   pandas.core.indexes.periodr   r   pandas.core.resampler   r   pandas.tseriesr   pandas.tseries.offsetsr   fixturer   r   r%   r.   r[   ra   markparametrizeru   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r#  r&  r0  r2  rB  rP  rU  r[  r^  rb  rd  rg  rn  rr  ru  r}  r  objectr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r,   xfailr  r  r  r)  r+  r  __annotations__r  r,  dates3r1  r7  r<  rB  rW  rZ  rd  rg  rz  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r   r   r   r   <module>   s    



$			

D:


	0






%!7

0

	







2

 
	 
a!#