U
    sVc                     @   sR  U d dl m Z  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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'  m(Z( d dl&m)Z) e	* dd Z+e	j*dd Z,e	j*dd Z-dd Z.dd Z/e	j01ddge	j01dddd fdd d fgd!d" Z2d#d$ Z3d%d& Z4e	j01ddge	j01d'd(d)d*gd+d, Z5e	j01ddgd-d. Z6e	j01ddgd/d0 Z7e	j01d1d2d3d4d5d6d7d8gd9d: Z8d;d< Z9d=d> Z:d?d@ Z;dAdB Z<e	j01dCd4d6d5d2d3d7gdDdE Z=e	j01dFdGdHgdIdJ Z>e	j01dFdKdHgdLdM Z?dNdO Z@dPdQ ZAdRdS ZBdTdU ZCe	j01dFdVdWdXdYge	j01dZd[d\d]d^d_d`gdadb ZDdcdd ZEdedf ZFdgdh ZGdidj ZHdkdl ZIdmdn ZJe	j01dodpdqdrdsdtgdudqdrdvdtgdHdwdxdHdtggdydz ZKd{d| ZLd}d~ ZMdd ZNdd ZOe	j01dFddddddgdd ZPe	j01dddgdd ZQdd ZRdd ZSe	j01dddidedidddddiddigdd ZTe	j01ddddddeU gdd ZVe	j01ddddeU gdd ZWdd ZXdd ZYdd ZZdd Z[dd Z\dd Z]dd Z^dd Z_dd Z`dd Zadd Zbdd ZcddÄ Zdddń Zee	j01dFdddddgdd̄ Zfe	j01dddgddggddф Zgddӄ ZhddՄ Ziddׄ Zjddل Zkddۄ Zldd݄ Zme	j01dddde	jnde	j0jodddgdd Zpdd Zqdd Zrdd Zse ddde ddde ddde ddde ddde dddgZtee eud< etdd ejvg etdd  ejvg etdd  Zwee eud< ejvget ejvg Zxe	j01detewexgdd Zydd Zzdd  Z{e	j0j1d1dd dd dd gdddgddd	 Z|e	j01d
ddge	j01ddddg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	j01ddddge	j01d(d)d*d+d,d-d.d/d0d1d2g
d3d4 Ze	j01d5d6d7d8d9d:d;gd<d= Ze	j01d>d?d@gdAdB Ze	j01dCdDdEdFdGdHdIgeeeeedJdKdLZe	j01d1d2d3dMdNgdOdP ZdQdR ZdS (S      datetime)partial)StringIO)ListN)lib)DatetimeNaTType)UnsupportedFunctionCall)	DataFrameSeries	Timedelta	Timestampisnanotna)Grouper
date_range)Periodperiod_range)DatetimeIndex_get_timestamp_range_edges)Minutec                   C   s   t S Nr    r   r   M/tmp/pip-unpacked-wheel-xj8nt62q/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t| S r   )nprandomrandlenindexr   r   r   _static_values1   s    r$   c                 C   s@  | }t tdgt| |dd}ttdd}||}|  dddd	d
dg}|D ]}|j|d dd qVttdddd}||}|  dddd	d
dg}|D ]}|j|d dd q|j	dkst
t|  st
dgdgd  }|ddd }||dd  }t|dd}t ||d}	|tj}
t|
|	 d S )N   int64r#   dtype   freqsummeanprodminmaxvarTZaltZnumeric_onlyrightr+   closedlabel!
  i 
  r   Z5Tr"   )r   r   arrayr!   r   r   groupbyohlc_cython_agg_generalZngroupsAssertionErrorr   r-   allappendr   aggr,   tmassert_series_equal)r#   dtisbgfuncsfarridxexpectresultr   r   r   test_custom_grouper6   s.    

rM   c                 C   sl   t tdddd}| }ttjt|d|dd}||tj	}t|j
dksVtt|jdkshtd S )Nr)   r3   r4   
   float64r'   r7   )r   r   r
   r   r   r    r!   r:   r@   r,   columnsr=   r#   )r#   rE   rC   dfrr   r   r   test_custom_grouper_df[   s    rS   z#_index_start,_index_end,_index_name)1/1/2000 00:00:00z1/1/2000 00:13:00r#   zclosed, expectedr3   c                 C   sH   t | d | dd  | dd  | dd   gtddddd	d
S )Nr   r%         1/1/2000   5minr#   periodsr+   namer"   r   r-   r   rD   r   r   r   <lambda>n   s   2r_   leftc                 C   sB   t | d d  | dd  | dd   gtddddddS )	Nr)   rN   1/1/2000 00:05   rY   r#   rZ   r"   r]   r^   r   r   r   r_   u   s   ,   c                 C   s0   | }||}|j d|dd }t|| d S )NrY   r3   r5   r6   )resampler-   rA   rB   )seriesr5   expectedrD   rL   r   r   r   test_resample_basice   s    rg   c                  C   s   t tdtdddddd} | d }t dd	d
gtdddddd}t|| | d }t dddgtdddddd}t|| d S )N	   rW   Tr[   r+   ZInt64r'   Z3Trb         r%   rX      ZFloat64)r   ranger   rd   r,   rA   rB   r-   )tsrL   rf   r   r   r   test_resample_integerarray   s&      rp   c                 C   sH   | }| d }ttdddd}||dd }t|| d S )N5Minr)   r`   r4   c                 S   s   | d S Nr8   r   xr   r   r   r_          z-test_resample_basic_grouper.<locals>.<lambda>)rd   lastr   r   r:   r@   rA   rB   )re   rD   rL   grouperrf   r   r   r   test_resample_basic_grouper   s
    rx   zkeyword,value)r6   righttt)r5   ry   )Z
conventionZstartttc              	   C   s@   d| d| d}t jt|d | jd||i W 5 Q R X d S )NzUnsupported value z for ``matchrY   )rY   )pytestraises
ValueErrorrd   )re   keywordvaluemsgr   r   r   test_resample_string_kwargs   s    r   c                 C   s   |dkrt d | }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 )Nr;   z!covered by test_resample_how_ohlcr   r%   rU      rV   rb   rW   rX   rY   r#   rZ   r3   rc   )r}   skipr   	ones_liker:   r@   r   r#   getattrrd   rA   rB   )re   Zdownsample_methodrD   	grouplistrf   rL   r   r   r   test_resample_how   s    

 r   c                 C   s   | }t |}d|d< d|dd< d|dd< d|dd < dd }t|||j td	d
dddddddgd}|jdddd	 }t
|| d S )Nr   r%   rU   r   rV   rb   c                 S   s6   t |  rttjdS | d |  |  | d gS NrX   r   r8   r   r>   r   repeatnanr0   r/   groupr   r   r   _ohlc   s    z%test_resample_how_ohlc.<locals>._ohlcrW   rX   rY   r#   rZ   openhighlowcloser#   rP   r3   rc   )r   r   r
   r:   r@   valuestolistr   rd   r;   rA   assert_frame_equal)re   rD   r   r   rf   rL   r   r   r   test_resample_how_ohlc   s    

r   funcr/   r0   r,   r.   r-   r1   stdc              	   C   s   t dddddgtddddd	}|d
}d}tjt|d t|| | ddd W 5 Q R X tjt|d t|| dd W 5 Q R X d S )Nr%   r   rb   rX   r)   Z20130101rD   rj   r"   2sz,numpy operations are not valid with resampler{   axis)r   r   rd   r}   r~   r	   r   )r   rD   rR   r   r   r   r   test_numpy_compat   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startr[   r+   ABr"   r%   c                 S   s   t t| S r   strtype)rt   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   )selfrt   r   r   r   __call__   s    z5test_resample_how_callables.<locals>.FnClass.__call__N)__name__
__module____qualname__r   r   r   r   r   FnClass   s   r   Mc                 S   s   t t| S r   r   rs   r   r   r   r_     ru   z-test_resample_how_callables.<locals>.<lambda>r   )r   )r%   )r   aranger&   r   r!   r
   rd   applyr   rA   r   )
dataindrQ   r   r   Zdf_standardZ	df_lambdaZ
df_partialZdf_partial2Zdf_classr   r   r   test_resample_how_callables   s    
r   c                  C   sL  d} t jt| dddgidd}d |j_|d }tddd	dd
gitddddd}t	
|| |d }tdd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 }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)Zparse_datesZ	index_colZ6sr   rX   rh   r   z
2014-11-08r+   r[   r"   Z7srN   r%   Z11srV      Z13s   rU   Z17s   rb   )pdZread_csvr   r#   r\   rd   r,   r
   r   rA   r   )r   rQ   rL   rf   r   r   r   test_resample_rounding  sJ    
  
 
 
 r   c                  C   s`  t tdddtdddddd} ttjt| | }|d }t|dksTt	|j
jd	d	d	gk snt	|jd
 |d kst	|jd |d kst	|jd |jd kst	|d }t|dkst	|j
jd
d
gk st	|jd
 |d kst	|jd |d kst	|d }t|dks6t	|j
jddgk sPt	|jd
 |d ksht	|jd |d kst	|d }t|dkst	|j
jddgk st	|jd
 |d kst	|jd |d kst	|d }t|dks
t	|j
jddgk s$t	|jd
 |d ks<t	|jd |d ksTt	|d }t|dkstt	|j
jddgk st	|jd
 |d kst	|jd |d kst	|d }t|dkst	|j
jdd
ddddd
gk st	|jd
 |d kst	|jd |d ks2t	|jd |d ksJt	|j
jdks\t	d S )N  r%   rN   Dr#   r   endr+   r\   zw-sunrb   rU   r   z1/2/2005z1/9/2005r   r8   W-MONz1/3/2005z	1/10/2005zW-TUEz1/4/2005W-WEDz1/5/2005zW-THUz1/6/2005zW-FRIrX   z1/7/2005r   rm   r)   )r   r   r   r   r   r    r!   rd   rv   r=   r#   Z	dayofweekr>   ilocr\   rC   rD   rL   r   r   r   test_resample_basic_from_dailyJ  sZ    
 
  $r   c                  C   s   t dddd} td| d}|d }|jd | d ks>tttdd	d
d tdd	D d}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*   r%   r"   r         ?rU   c                 S   s   g | ]}t d d|ddqS )i  r%   rk   r   r   .0ir   r   r   
<listcomp>  s     zCtest_resample_upsampling_picked_but_not_correct.<locals>.<listcomp>Z19750101r)   rj   )r   r   rd   r-   r#   r=   r   r   rn   countrA   rB   r,   )datesre   rL   rD   rf   result1result2r   r   r   /test_resample_upsampling_picked_but_not_correct  s$    
 
 r   rH   c                 C   s0   t  }tdd}||}|j| d dd d S )Nr   r*   Tr2   )rA   makeTimeDataFramer   r:   r<   )rH   rQ   rE   rF   r   r   r   "test_resample_frame_basic_cy_funcs  s    

r   r+   r   r   c                 C   s8   t  }||  }t |d |d |   d S )Nr   )rA   r   rd   r-   rB   )r+   rQ   rL   r   r   r   test_resample_frame_basic_M_A  s    r   r   c                 C   s   t  }|j| dd  d S )Nperiodkind)rA   r   rd   r-   )r+   rQ   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t| | }|d }t|dksTt	|d	 |d	 ksht	|d
 |d
 ks|t	|j
jdkst	d S )Nr   r%   rN   r   r#   r   r   i2  r   r8   )r   r   r   r   r   r    r!   rd   ffillr=   r#   r\   r   r   r   r   test_resample_upsample  s    
 
  r   c                  C   s   t ddgtdtdgd} 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}t| d | d S )NrV      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*   10S)	r   r   r   NaNr   rA   rB   rd   r-   )rD   rf   r   r   r   test_resample_how_method  s*    	r   c                  C   st   t dddd} tdtdddg| d	i}t ddd
d} tdttt| | d	idd}|d }t|| d S )NZ20150101Z20150331ZBMr   r   r+   r   rl   )   ?   r"   r   r&   r   )	r   r
   r   rn   r!   rd   rv   rA   r   )r#   rf   rQ   rL   r   r   r   test_resample_extra_index_point  s     r   c                  C   sX   t dddd} ttjt| | }|djdd}|j|j	ddd	}t
|| d S )
NrW   rb   5trj   tr   limitr   methodr   )r   r   r   r   randnr!   rd   r   reindexr#   rA   rB   rngro   rL   rf   r   r   r   test_upsample_with_limit  s
    r   Z5DZ10Hrq   r   ruleYZ3MZ15DZ30HZ15MinZ30Sc                 C   sZ   t dd|| d}ttjt||}||jdd}|j|j	ddd}t
|| d S )NrW   rb   )r[   r+   tzr   r   nearestr   )r   r   r   r   r   r!   rd   r   r   r#   rA   rB   )Ztz_aware_fixturer+   r   r   ro   rL   rf   r   r   r    test_nearest_upsample_with_limit  s
    r   c                 C   s6  | }t tdd}||dd }|d }t|t|ksHtt|jdksZt|j	d }|d |d	 ksxt|d
 |d	d 
 kst|d |d	d  kst|d |d kst|j	d }|d |d kst|d
 |d d 
 kst|d |d d  kst|d |d ks2td S )Nr)   r*   c                 S   s   | d S rr   r   rs   r   r   r   r_   	  ru   z$test_resample_ohlc.<locals>.<lambda>rq   rX   r   ir   r8   r   r   r   )r   r   r:   r@   rd   r;   r!   r=   rP   r   r0   r/   )re   rD   rw   rK   rL   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	s\t
|jd d	 d }t|t	st
d S )
N1-1-2000	2-15-2000hr*   	4-15-2000	5-15-2000r"   30Tz	4-14-2000)r   unionr   rn   r!   locrd   r;   
isinstancer
   r=   )r#   rD   r   rE   r   r   r   test_resample_ohlc_result  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   r8   r*   r"   )r   Zdropr   r
   r   r   r!   rd   r-   r   rA   r   )r   r#   rQ   rL   rf   r   r   r   $test_resample_ohlc_result_odd_period*  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} d| j_| d }tj| d d | d d gd| jd}|jj	d dkst
t|| ddgddgg| _| d }tjddddddddg|_t|| d S )Nz2011-01-06 10:59:05r   ia  z2011-01-06 12:43:33ic  z2011-01-06 12:54:09i /hYl    rT i )PRICEVOLUMEr  r  r%   r   ZColsH)r   keysr   r   rE   cr   )r   r
  r   )r   r
  r   )r   r
  r   )r   r
  r   )rE   r   r   )rE   r   r   )rE   r   r   )rE   r   r   )r
   r   r   rP   r\   rd   r;   r   concatnamesr=   rA   r   
MultiIndexfrom_tuples)rQ   resexpr   r   r   test_resample_ohlc_dataframe<  sX    
 
 
 
 
 
  "r  c                  C   s   t tjddddddgdd tdD d} tj| jdd d f< | jdd	d
 }| j	dd d	d
 }dd tdD |_
t|| d S )NrX   rk     c                 S   s   g | ]}t d |d ddqS )r  r%   r   )yearmonthr+   r   r   r   r   r   r   r  s     z+test_resample_dup_index.<locals>.<listcomp>r   rb   Qr%   r   c                 S   s   t | jd d S )Nr%   rb   )intr  rs   r   r   r   r_   v  ru   z)test_resample_dup_index.<locals>.<lambda>c                 S   s   g | ]}t d |d ddqS )r  r%   r  )r  Zquarterr+   r  r   r   r   r   r   w  s     )r
   r   r   r   rn   r   r   rd   r-   r:   rP   rA   r   rQ   rL   rf   r   r   r   test_resample_dup_indexk  s    
r  c                  C   s   t tdddtddddd} ttjt| | }|jdddd }|d	 }t|d
ksft	t
|jjtjszt	|jjtdkst	d S )Nr   r%   rN   r   r   r   r3   rc   Z8Hr   r   )r   r   r   r   r   r    r!   rd   r-   r=   r  r#   r+   offsetsZ
DateOffsetZHour)rC   rD   bsrL   r   r   r   test_resample_reresample{  s    r  zfreq, expected_kwargsA-DECZ19902000za-decr   zA-JUNza-junz1990-01z2000-01c                 C   sF   | dd}|j |dd }| | }tf ||_t|| d S )Nz1/1/1990rW   r   r   )rd   r-   r   r#   rA   rB   )simple_date_range_seriesr+   Zexpected_kwargsro   rL   rf   r   r   r   !test_resample_timestamp_to_period  s
    	
r   c                  C   s   dd } t dddd}ttjt||d}|jdd	d	d
 }|jd |d k	 s\t
| |dd }|jd |k	 st
| |dd  }|jd |k	 st
d S )Nc                 S   s6   t |  rttjdS | d |  |  | d gS r   r   r   r   r   r   r     s    ztest_ohlc_5min.<locals>._ohlcrT   z1/1/2000 5:59:50r   r*   r"   rY   r3   rc   z1/1/2000 00:00r   r%      ra   z1/1/2000 5:55:01z1/1/2000 6:00:00)r   r   r   r   r   r!   rd   r;   r  r>   r=   )r   r   ro   	resampledr  r   r   r   test_ohlc_5min  s    r#  c                  C   s   t dd} | dj}ttjt||d}|d	 }|
dd 	 }t|dks^tt|d	 |d
  t|d
 |d  d S )NrW   	2/29/2000r)   r"   r   c                 S   s   | j S r   )r  rs   r   r   r   r_     ru   z,test_downsample_non_unique.<locals>.<lambda>r   r   r%   )r   r   r   r   r   r   r   r!   rd   r-   r:   r=   rA   Zassert_almost_equal)r   rng2ro   rL   rf   r   r   r   test_downsample_non_unique  s    
r&  c               
   C   st   t dd} | dj}ttjt||d}d}tj	t
|d* tjtdd |d W 5 Q R X W 5 Q R X d S )	NrW   r$  r   r"   z/cannot reindex on an axis with duplicate labelsr{   z
non-uniquer   )r   r   r   r   r   r   r   r!   r}   r~   r   rA   Zassert_produces_warningFutureWarningasfreq)r   r%  ro   r   r   r   r   test_asfreq_non_unique  s    
r)  c                  C   s`   t dd} ttjdt| | dddgd}|jdd	d
 }|jd j}t	
|| d S )NrW   r$  rb   r   rE   r
  rP   r#   r   r%   r   )r   r
   r   r   r   r!   rd   r-   ri   rA   r   )r   rQ   rL   rf   r   r   r   test_resample_axis1  s
    
"r+  r   r   Z15tZ30tZ4hZ12hc                 C   st   t dddd}ttj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 rD   rj   r"   r   r`   rc   r   r   r   r   r   r!   r   rd   r-   rA   rB   )r+   r   ro   rL   rf   r   r   r   test_resample_anchored_ticks  s    r.  r   r%   r   c                 C   s\   dd }t dd|  ddd}ttjt||d}t|d		 |d	
| d S )
Nc                 S   s   |   S r   )r,   rs   r   r   r   r_     ru   z,test_resample_single_group.<locals>.<lambda>z2000-1-1z2000-z-10r   r*   r"   r   )r   r   r   r   r   r!   rA   rB   rd   r,   r   )r   Zmysumr   ro   r   r   r   test_resample_single_group  s    r/  c                  C   s\   t ddgtdtdgd} 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   r   rs   r   r   r   r_     ru   z0test_resample_single_group_std.<locals>.<lambda>)r   r   r   rd   r   rA   rB   )rD   rf   rL   r   r   r   test_resample_single_group_std  s    r0  c                  C   sX   t dddd} ttjt| | d}|jddd }t d	d
dd}t	|j
| d S )NrT   z1/1/2000 02:00rD   r*   r"   rY   Z2minoffset12/31/1999 23:57:00z1/1/2000 01:57r   r   r   r   r   r!   rd   r-   rA   assert_index_equalr#   )r   ro   r"  exp_rngr   r   r   test_resample_offset  s
    r7  kwargsorigin1999-12-31 23:57:00z1970-01-01 00:02:00epoch2mr9  r2  z1999-12-31 12:02:00r2  z-3mc                 C   sV   t dddd}ttjt||d}t dddd}|jd	|  }t	|j
| d S )
N2000-01-01 00:00:002000-01-01 02:00rD   r*   r"   r:  2000-01-01 01:57rY   )rY   r4  )r8  r   ro   r6  r"  r   r   r   test_resample_origin  s
    rA  Zinvalid_valueZepchZstartdayZstarttz
2000-30-30c              	   C   s^   t dddd}ttjt||d}d|  d}tjt|d |j	d	| d
 W 5 Q R X d S )Nr>  r?  rD   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{   rY   r9  
r   r   r   r   r   r!   r}   r~   r   rd   )r9  r   ro   r   r   r   r   test_resample_bad_origin  s    
rE  Z12dayysc              	   C   s^   t dddd}ttjt||d}d|  d}tjt|d |j	d	| d
 W 5 Q R X d S )Nr>  r?  rD   r*   r"   z6'offset' should be a Timedelta convertible type. Got 'rB  r{   rY   r1  rD  )r2  r   ro   r   r   r   r   test_resample_bad_offset  s
    rF  c                  C   sH  d\} }t | |dd}ttj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"   z2000-10-01 23:14:00z2000-10-02 00:22:00Z17min	start_dayrC  rG  z2000-10-02 00:21:00r   Z23h30minr1  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-01r4  )r   r   r   ro   r6  r"  r   r   r   test_resample_origin_prime_freq(  s*    rK  c               	   C   s$  d} d}t ddd|d}ttj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 5 Q R X t dddd}ttjt||d}tjt| d |jd
dd  W 5 Q R X d S )Nz4The origin must have the same timezone as the index.Europe/Parisr>  r?  rD   r+   r   r"   r:  r@  rY   z1999-12-31 23:57:00+00:00rC  z1999-12-31 12:02:00+03:00r;  r<  r=  r{   r3  r*   z12/31/1999 23:57:00+03:00)r   r   r   r   r   r!   rd   r-   rA   r5  r#   r}   r~   r   )r   r   r   ro   r6  r"  r   r   r   test_resample_origin_with_tzE  s"    rN  c                  C   s:  d\} }t | |dd}tj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+0500rH  r*   r"   r   r;  rC  24HF)Z
check_freq)z2000-10-01 23:30:00+0200z2000-12-02 00:30:00+0200)r   r   r   r   r!   r   rd   r-   rA   rB   tz_localizer   )r   r   r   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_24hb  s&    
rQ  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	|| qnt 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   r   r  r   r   r     s     zUtest_resample_origin_with_day_freq_on_dst.<locals>._create_series.<locals>.<listcomp>T)r+   	ambiguousr"   )r   r   )r   Z
timestampsr+   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-03r;  r   rI  rC  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@      @rO  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   r   r   Zonesr!   rd   r,   rA   rB   )	rT  r   r   r   ro   rf   r9  rL   Zexpected_tsr   r  r   )test_resample_origin_with_day_freq_on_dst~  sD    	r[  c                  C   st   t dddd} ttj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'  ri   rj   r"   r   r   r`   rc   r-  r   r   r   r   test_resample_daily_anchored  s    r]  c                  C   sT   t dd} ttjt| | d}|jddd }tdddd	}t	
|j| d S )
NrW   z
12/31/2000r"   r   r   r   zJan-2000zDec-2000r*   )r   r   r   r   r   r!   rd   r-   r   rA   r5  r#   )r   ro   rL   Z	exp_indexr   r   r   &test_resample_to_period_monthly_buglet  s
    
r^  c                  C   s^   t tjdddtdddddd} |  d	  }| d		d
d }t
|| d S )Nr   r)   2   z
2012-01-01r  r   rO   r'   r   c                 S   s   |   S r   r-   rs   r   r   r   r_     ru   z&test_period_with_agg.<locals>.<lambda>)r   r   r   randintr   to_timestamprd   r-   Z	to_periodr@   rA   rB   )s2rf   rL   r   r   r   test_period_with_agg  s    rd  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}|dd }|ddd }t	|| d S )Nr%   i  rN   r      r   r         r!  )IDr   r   r   rP   r   rh  rY   c                 S   s   |  d S )NrY   )rd   r,   rs   r   r   r   r_     ru   z(test_resample_segfault.<locals>.<lambda>)
r   r
   Zfrom_records	set_indexr:   rd   r,   r   rA   r   )Zall_wins_and_wagersrQ   rL   rf   r   r   r   test_resample_segfault  s     rk  c                  C   s   t tddddddddgtddd	d
gdddd} | d }|jjtj	ksXt
| dd }|jjtj	ks~t
d S )Nz
2016-01-01rX   Wr   r%   r   r)   rU   rm   r   int32r   )r   r   valr   1Dr   )r
   r   r   rj  rd   r   rn  r(   r   rm  r=   r:   rQ   rL   r   r   r    test_resample_dtype_preservation  s    
rq  c                  C   s   t d dddddgi} t| tddd} | d	d
 d d}| d
d  d}t	|| | d
 d d}t	|| d S )Nzscipy.interpolater   r%   rb   rX   z
2017-01-01z
2017-01-04r"   rO   r  Zcubic)
r}   Zimportorskipr
   r   astyperd   r-   ZinterpolaterA   rB   )rQ   rf   rL   r   r   r   test_resample_dtype_coercion  s    
rs  c                  C   sR   t dddd} ttjt| | d}|d }|d }t	|| d S )NrW   r   re  r   r"   rl  zW-SUN)
r   r   r   r   r   r!   rd   r-   rA   rB   )r   ro   r"  rf   r   r   r   test_weekly_resample_buglet  s
    rt  c                  C   s4   t dddd} ttjt| | d}|d d S )N4/16/2012 20:00i  r   rj   r"   r   )r   r   r   r   r   r!   rd   r   ro   r   r   r   test_monthly_resample_error  s    rw  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@rN   Z100nr   r"   d   r-   r'   )r   r   to_datetimer   rn   r!   rd   tseriesr  ZNanor@   floatrA   rB   )r   Z	exp_startZindxro   rR   rL   Zexp_indxr  r   r   r   test_nanosecond_resample_error!  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st
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st
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_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_t|| | dddd}|d }t|dks8t
d S )Nz1/1/2012z4/1/2012Z100minr*   r"   r   r   r   r   )howr%   nsr   Zinferr`   )r5   r  )r   r5   z2012-04-29 23:00z2012-04-30 5:00r   )r   r
   r  rd   r-   rb  r#   r   
_with_freqr+   r=   rA   r   shift_datar   Z
no_defaultZ_freqr!   )r  r   rQ   rL   rf   r  ro   r"  r   r   r   test_resample_anchored_intraday1  sB    



r  MSZBMSzQS-MARzAS-DECzAS-JUNc                 C   s   | dd}| |  d S )NrW   z
12/31/2002)rd   r-   )r  r+   ro   r   r   r   !test_resample_anchored_monthstart^  s    
r  z
label, secrW  z4.2c                 C   sn   t dddd}t dddd}||}ttjd|d	}|jd| d
 }|jd t	d| dksjt
d S )Nz2014-10-14 23:06:23.206rb   Z400Lrj   z2014-10-15 23:00:00r   Z2200Lr)   r"   )r6   r8   z2014-10-15 23:00:Z00)r   r   r   r   r   r   rd   r-   r#   r   r=   )r6   secZindex1index2r#   rD   rL   r   r   r   test_resample_anchored_multidayd  s    
r  c                  C   sZ   t dddd} ttjt| | d}|jdddd	 }t d
ddd}t	|j
| d S )NrW   rk   r   rj   r"   r   r3   r`   rc   z1999-12-31 23:55rX   r4  )r   ro   rL   Zex_indexr   r   r   test_corner_casesw  s
    r  c                 C   s8   | ddddd d }| d }t|dks4td S )Nz2007-01z2010-05r   r*   r   r  )rd   r-   r!   r=   )Zsimple_period_range_seriesZlen0ptsrL   r   r   r   test_corner_cases_period  s    r  c                 C   sN   | dddd}|j ddd }t|dks0t|jd	 td
ddksJtd S )Nz
2000-04-28z2000-04-30 11:00r   r*   r   r   r   r%   r   z2000-04)rd   r-   r!   r=   r#   r   )r  ro   rL   r   r   r   test_corner_cases_date  s    r  c                  C   s8   t dddd} ttjt| | d}|d  d S )Nru  iP  rD   rj   r"   r   )r   r   r   r   r   r!   rd   r-   rv  r   r   r   test_anchored_lowercase_buglet  s    r  c                  C   sL   t dddd} ttjt| | d}|dddg}t|t	sHt
d S )	N
2012-06-12rX   r   rj   r"   Z20minr-   r,   )r   r   r   r   r   r!   rd   	aggregater  r
   r=   )r   ro   rL   r   r   r   test_upsample_apply_functions  s    r  c                  C   sl   t dddd} ttjt| | d}|tjt|}|d	 }|
 d	 }t|| d S )Nr     r   rj   r"   r   )r   r   r   r   r   r!   ZtakeZpermutationrd   r,   Z
sort_indexrA   rB   )r   ro   rL   r  r   r   r   test_resample_not_monotonic  s    r  r(   r&   rm  rO   Zfloat32z-Empty groups cause x.mean() to return float64)reason)Z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   r)   r'   ri   c                 S   s   |   S r   r`  rs   r   r   r   r_     ru   z/test_resample_median_bug_1688.<locals>.<lambda>)r
   r   rd   r   r(  rA   r   Zmedian)r(   rQ   rL   r  r   r   r   test_resample_median_bug_1688  s    "

r  c                 C   s   | dd}| 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 )NrW   z4/1/2000r   c                 S   s   |   S r   r`  rs   r   r   r   r_     ru   z+test_how_lambda_functions.<locals>.<lambda>foobarc                 S   s   |   S r   r`  rs   r   r   r   r_     ru   c                 S   s   | j ddS Nr%   )Zddofr   rs   r   r   r   r_     ru   c                 S   s   |   S r   r`  rs   r   r   r   r_     ru   c                 S   s   | j ddS r  r  rs   r   r   r   r_     ru   )r  r  F)Zcheck_names)	rd   r   r-   rA   rB   r\   r   rP   r  )r  ro   rL   r  Zfoo_expZbar_expr   r   r   test_how_lambda_functions  s"    


r  c                  C   sL   t dddd} t dddd}t| |d	d
}tddi|d}|d  d S )Ni  rb   r%   r)   r  rm   r!  rX   Z30minr*   r   r"   ZAS)r   r   r
   rd   r,   )r   r   Zbad_indrQ   r   r   r   test_resample_unequal_times  s
    r  c                  C   s   t dddd} ttd| d}t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-02rX   r   rj   g      @r"   r   r   r8   Z10Tr*   bfill)r#   r   )r#   r   r   r   Z10Minr   )r   r   r   r   r   r   Zreindex_likerd   r  rA   rB   )Zi30rD   Zi10Zs10Zs10_2ZrlZr10_2Zr10r   r   r   test_resample_consistency  s    
r    rN   rh   rb   rV   r)   r   rm   rg  dates1rX   dates2r   c                 C   s`  t | tt| d}|dd }tdddddgddd	}t d
dddddgi|d}|d  	 r||j
d |_
t|| |tddd }t|| t | tt| tt| d}|dd }t dddddgdddddg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)r+   r\   r   r%   r   r   r"   )r+   key)r   r   C)r   r  r  r   )r
   r   r   r!   rj  rd   r   r   r   anyr#   r  rA   r   r:   r   )r   rQ   rL   Zexp_idxrf   r   r   r   test_resample_timegrouper  s2    $r  c                  C   s   t tddtdditddtddid} | d}| tdd	}| tdd	jd
d }|jdksrt||fD ]}|j	 }t
|| qz| 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)rh  ZDATEr   r*   c                 S   s   |   S r   nuniquers   r   r   r   r_   L  ru   z'test_resample_nunique.<locals>.<lambda>rh  )r
   r   rd   r:   r   rh  r   r\   r=   r  rA   rB   )rQ   rR   rF   rf   r   rL   r   r   r   test_resample_nunique;  s0        

r  c                  C   sT   t jdd } tjj| j gd ddgd| _| d	 }t 
| j|j d S )Nro  r*   r   Zlev0Zlev1)r  rV  )rA   r   absr   r  Zfrom_arraysrP   r   rd   r  r5  rp  r   r   r   2test_resample_nunique_preserves_column_level_namesZ  s     r  c                 C   s   |   S r   r  rs   r   r   r   r_   g  ru   c                 C   s   |  tjS r   )r@   r   r  rs   r   r   r   r_   h  ru   c                 C   s
   |  dS )Nr  )r@   rs   r   r   r   r_   i  ru   r  Zseries_nuniqueZnunique_str)idsc                 C   sf   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   r&   r'   r   )	r   r?   r   rn   r!   rd   r   rA   rB   )r   r#   r  Zindex3rD   rR   rL   rf   r   r   r   #test_resample_nunique_with_date_gapd  s    

r  nr\  i krx  i  c                 C   s0  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 )Ni  z
2015-08-27rN   ri   r   r   r&   r"   r   r   r3   ZsideTr%   r8   Z	minlengthFcopy)r   r   ZRandomStater   r   ra  rr  choicerd   r  r#   r/   r0   r   searchsortedZlexsortZr_bincountr!   rA   rB   )r  r  Zprngdrro   r`   ixvalsbinsZsortermaskrI   r3   r   r   r   test_resample_group_infoz  s    ("&$r  c                  C   s   d} t d| dd}ttj| tj|| 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-19ri   rj   r"   Z7Tr   r3   r  r%   r  r&   Fr  )r   r   r   r   r   r  rd   sizer#   r/   r0   r  r   r  r!   rr  rA   rB   )r  r  ro   r`   r  r  rn  r3   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Xro   ri  rD   )unitUTCzEurope/Madridi 8XiFXr  r*   r)   r"   r   )r
   r   r   ry  ro   dtrP  
tz_convertrd   r,   rA   r   )Zdf1Zdti1Zdf2Zdti2rQ   rL   rf   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  rR  r%   r   r"   Z1dr*   z
2016-11-02z
2016-11-24r   rM  r   rl   rW  )r   r  r
   r:   r   rv   r   r   r   rA   r   )r#   rQ   rL   Zexpected_index_valuesrf   r   r   r   !test_groupby_with_dst_time_change  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 t	ddddd} t
| j}t|||d| dd}dddd}t|d|dddg tddd d!d"d#gd$d%d&d'd(d)gdd*d*d*d+d,gdt	d-d.ddddd/ t|d0|dddg tddd!d#gd$d&d(d)gdd1d2d,gdt	d-d3d0dddd4 t|d|dddg tddd5gd$d6d)gdd7d8gdt	d9d:ddddd; t|d<|dddg tdd5gd6d)gd5d8gdt	d9d:d<dddd= |d>d? }t|d	dddddddg td@dAdBd#gdCdDd(dEgddFddgdt	d>d?d	ddddG d S )HNr  rV   rX      z
US/Easternr  r)   r"   r   r*   r  r  r%   r   r+   z
2013-09-30rU  Z30MinrL  rM  )r   rE   r
  r&   r'   r/   r0   r   r   r   rE   r
  r   0   i    i   ir  /   i  i  i  iq  i2  P  iR     z	9/30/2013z	11/4/2013zW-MON Frequencyz2W-MONi  i  z
11/11/2013z2W-MON Frequencyi  i  i  1   z9/1/2013z	11/1/2013zMS FrequencyZ2MSz2MS Frequencyz
10/26/2013z
10/29/2013i  i  iB  i  iA  i  r_  zD Frequency)r   r   r
   r#   	normalizerA   r   rd   r,   r   rn   r  r@   )rC   rQ   rf   r   r}  Zdf_dailyr   r   r   test_resample_dst_anchor  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  rN      rX   rY  rj   r)   r"   r        @rb   rm   )pytztimezoner   r   Zlocalizer   rd   r-   r   r   rA   rB   )r   r  r   rL   rf   r   r   r   test_downsample_across_dst,  s    
r  c                  C   sd   t tdddddgdddd	d
ddgd} | d }t ddgtddgdddd}t|| d S )Nz
2017-03-25z
2017-03-26z
2017-03-27z
2017-03-28z
2017-03-29Europe/Amsterdamr  rV   rk   r      rg  )r#   r   Z1Wr  *   z
2017-04-02rl  r  r"   )r
   r   rd   r,   rA   r   r  r   r   r   !test_downsample_across_dst_weekly9  s"      r  c                  C   sV   t ddddd} t| tjd}|d }tt ddd	dd
tjd}t|| d S )Nz
2013-04-01z
2013-05-01zEurope/Londonr  r  r'   rl  z
2013-04-07r)   )r+   r[   r   )r   r   r   rO   rd   r-   rA   rB   )rJ   rD   rL   rf   r   r   r   #test_downsample_across_dst_weekly_2L  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dddg|d
}t|| d S )Ni  rV   rb   rk   r)   rZ  r*   r  zAmerica/Havanar"   ro  z
2018-11-03r[   T)rS  r   g      @g      <@g     @F@)r   r   rP  r  listrn   r!   r
   r:   r   r-   r   rA   r   )r   r   r#   r   Z	dataframerL   rC   rf   r   r   r   test_downsample_dst_at_midnightX  s     r  c                  C   s   t tjdtjddg} tdddddg| d	}t dddg}td
ddg|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 )Nz1970-01-01 00:00:00z1970-01-01 00:00:01z1970-01-01 00:00:02r   rb   r)   rm   rV   r"   rX  g      @g      &@Z1sr  r   Z3sZ60s)r   r   NaTr
   rA   r   rd   r-   )r#   frameZindex_1sZframe_1sZindex_2sZframe_2sZindex_3sZframe_3sr   r   r   test_resample_with_natj  s*    	
r  c                  C   s   t dddt dddg} td| i| d}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%   rg     r   r"   z
2016-01-15rb   Z2Drj   )r#   r\   )
r   r
   r   r   r  r   rd   firstrA   rB   )r   rQ   r  r  r   r   r   test_resample_datetime_values  s    r  c                 C   s   dd }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   r-   )r   add_argr   r   r   rH     s    z3test_resample_apply_with_additional_args.<locals>.frN   r   )r  r%   r   r   Z2017r  r"   r   )rd   r   r-   multiplyrA   rB   r
   r   r:   r@   rr  r{  r   )re   rH   Z
multiplierrL   rf   rQ   r   r   r   (test_resample_apply_with_additional_args  s    r  zn1, freq1, n2, freq2)   S      ?r   )<   r  r%   r   )i  r  r%   r  )r  r   r%   r  )i`T  r  g      ?r   )r,  r  r%   r   )i  r  r  r   )i  r   r%   r   )rk   r  r  r   )   r  r%   r   c           
      C   sr   | | }|| }t dtdd|dd}|tt| }|t||  }|t||  }	t||	 d S )Nr   z19910905 13:00z19911005 07:00r*   r"   )	r   r   rn   r!   rd   r   r-   rA   rB   )
Zn1Zfreq1Zn2Zfreq2r  Zn1_Zn2_rD   r   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  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   sj   t | } | | j} t |}||j}t|}t|}tjj|}t| ||}||f}||ksft	d S r   )
r   rb  r+   r   r   rz  ZfrequenciesZ	to_offsetr   r=   )r  rv   r+   Z	exp_firstexp_lastrL   rf   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tj	d
dgddgddgddggtj
dtddddgdd|jd}t|| d S )Nz
2012-01-31r   rk   r   r+   r[   r"   r   r   r   r  r   r  r     r  r  i  i  r   z
2012-03-31z
2012-06-30z
2012-09-30z
2012-12-31Q-DECr*   r   )r   r   rn   r
   rP   rd   r   r   productr9   r&   r   rA   r   )r  r#   ro   rQ   rL   rf   r   r   r   test_resample_apply_product  s    
&
 r  z$first,last,freq_in,freq_out,exp_last)
2020-03-28
2020-03-31r   rO  z2020-03-30 01:00)r  
2020-10-27r   rO  2020-10-27 00:00)
2020-10-25r  r   rO  z2020-10-26 23:00)r  r  rO  r   z2020-03-30 00:00)r  r  rO  r   r  )r  r  rO  r   z2020-10-26 00:00)r  rv   freq_infreq_outr  c                 C   sJ   t dt| ||dd}|| }t dt| ||dd}t|| d S )Nr   r  rM  )r   r   rd   r   rA   rB   )r  rv   r  r  r  ro   rL   rf   r   r   r   #test_resample_calendar_day_with_dst  s    ' r  r  rv   c                 C   sd   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d}t|| d S )NZ2020r   rb   r  r%   r  r   )Z	min_countr  zdatetime64[ns]r  )r(   r+   r"   )	r   r   r   r   r   rd   r   rA   rB   )r   r#   ZserrL   rf   r   r   r   +test_resample_aggregate_functions_min_count,  s    r   c                 C   s   t tdddddgdddg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 )NrJ  z2000-01-03 23Z12Hr   rt   r   r%   r   )r#   rP   r   r(   z
2000-01-02z
2000-01-03r   r*  )
r
   r   r  r#   rd   r0   r   r   rA   r   )Zany_unsigned_int_numpy_dtyperQ   rL   rf   r   r   r   test_resample_unsigned_int9  s    "
r  )r   	functoolsr   ior   typingr   Znumpyr   r}   r  Zpandas._libsr   Zpandas._typingr   Zpandas.errorsr	   Zpandasr   r
   r   r   r   r   r   Zpandas._testingZ_testingrA   Zpandas.core.groupby.grouperr   Zpandas.core.indexes.datetimesr   Zpandas.core.indexes.periodr   r   Zpandas.core.resampler   r   Zpandas.tseries.offsetsrz  r  r   Zfixturer   r   r$   rM   rS   markZparametrizerg   rp   rx   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r   r#  r&  r)  r+  r.  r/  r0  r7  rA  objectrE  rF  rK  rN  rQ  r[  r]  r^  rd  rk  rq  rs  rt  rw  r|  r  r  r  r  r  r  r  r  r  paramZxfailr  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   r   <module>   s    


%



>:



	
/

		



 

7

-










2
 

	 U$    