U
    _{f                     @   sN  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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(ddddgddd Z,dd Z-dd Z.e	j/0d d!ge	j/0d"d#d$d% fd&d'd% fgd(d) Z1d*d+ Z2d,d- Z3e	j/0d d!ge	j/0d.d/d0d1gd2d3 Z4e	j/0d d!gd4d5 Z5e	j/0d d!gd6d7 Z6d8d9 Z7d:d; Z8d<d= Z9d>d? Z:e	j/0d@dAdBdCdDdEdFgdGdH Z;e	j/0dIdJdKgdLdM Z<e	j/0dIdNdKgdOdP Z=dQdR Z>dSdT Z?dUdV Z@dWdX ZAe	j/0dIdYdZd[d\ge	j/0d]d^d_d`dadbdcgddde ZBdfdg ZCdhdi ZDdjdk ZEdldm ZFdndo ZGdpdq ZHe	j/0drdsdtdudvdwgdxdtdudydwgdKdzd{dKdwggd|d} ZId~d ZJdd ZKdd ZLdd ZMe	j/0dIddddddgdd ZNe	j/0dddgdd ZOdd ZPdd ZQe	j/0dddidedidddddiddigdd ZRe	j/0ddddddeS gdd ZTe	j/0ddddeS gdd ZUdd ZVdd ZWdd ZXdd ZYdd ZZdd Z[dd Z\dd Z]dd Z^dd Z_dd Z`ddĄ ZaddƄ ZbddȄ Zce	j/0dIdddddgddτ Zde	j/0dddgd#dggddԄ Zeddք Zfdd؄ Zgddڄ Zhdd܄ Ziddބ Zjdd Zke	j/0dddde	jlde	j/jmdddgdd Zndd Zodd Zpdd Zqe ddde ddde ddde ddde ddde dddgZree esd< erdd ejtg erdd  ejtg erdd  Zuee esd< ejtger ejtg Zve	j/0dereuevgdd Zwd d Zxdd Zye	j/j0ddd% dd% dd% gdd	d
gddd Zze	j/0dddge	j/0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	j/0ddddge	j/0d,d-d.d/d0d1d2d3d4d5d6g
d7d8 Ze	j/0d9d:d;d<d=d>d?gd@dA Ze	j/0dBdCdDgdEdF Ze	j/0dGdHdIdJdKdLdMgeeeeedNdOdPZe	j/0ddDdEdQdRgdSdT ZdUdV ZdWdX ZdS (Y      datetime)partial)StringIO)ListN)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   h/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/pandas/tests/resample/test_datetime_index.py_index_factory&   s    r   c                   C   s   dS )NMinr   r   r   r   r   _index_freq+   s    r   c                 C   s   t jt| S r   )nprandomrandlenindexr   r   r   _static_values0   s    r$   smsusns)paramsc                 C   s   | j S r   )param)requestr   r   r   unit5   s    r,   c                 C   sL  |  |}ttdgt| |dd}ttdd}||}|  dddd	d
dg}|D ]}|j	|d dd q\t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r3   closedlabel!
  i 
  r   Z5Tr"   )as_unitr
   r   arrayr!   r   r   groupbyohlc_cython_agg_generalZngroupsAssertionErrorr   r5   allappendr   aggr4   tmassert_series_equal)r#   r,   dtir%   bgfuncsfarridxexpectresultr   r   r   test_custom_grouper:   s.    


rU   c                 C   sr   t tdddd}| |}ttjt|d|dd}||	tj
}t|jdks\tt|jdksntd S )Nr1   r;   r<   
   float64r/   r?   )r   r   rA   r	   r   r   r    r!   rC   rI   r4   columnsrF   r#   )r#   r,   rM   rL   dfrr   r   r   test_custom_grouper_df^   s    
r[   z#_index_start,_index_end,_index_name)1/1/2000 00:00:00z1/1/2000 00:13:00r#   zclosed, expectedr;   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#   periodsr3   namer"   r
   r5   r   r%   r   r   r   <lambda>q   s   2rg   leftc                 C   sB   t | d d  | dd  | dd   gtddddddS )	Nr1   rV   1/1/2000 00:05   ra   r#   rb   r"   re   rf   r   r   r   rg   x   s   ,   c                 C   sL   | }|j ||_ ||}|j ||_ |jd|dd }t|| d S )Nra   r;   r=   r>   )r#   rA   resampler5   rJ   rK   )seriesr=   expectedr,   r%   rT   r   r   r   test_resample_basich   s    ro   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	   r_   Trc   r3   ZInt64r/   Z3Trj         r-   r`      ZFloat64)	r
   ranger   rA   rl   r4   rJ   rK   r5   )r,   tsrT   rn   r   r   r   test_resample_integerarray   s&    rx   c                 C   sV   | }|j ||_ |d }ttdddd}||dd }t	|| d S )N5Minr1   rh   r<   c                 S   s   | d S Nr@   r   xr   r   r   rg          z-test_resample_basic_grouper.<locals>.<lambda>)
r#   rA   rl   lastr   r   rC   rI   rJ   rK   )rm   r,   r%   rT   grouperrn   r   r   r   test_resample_basic_grouper   s    r   zkeyword,value)r>   righttt)r=   r   )Z
conventionZstartttc              	   C   sN   | j || _ d| d| d}tjt|d | jd||i W 5 Q R X d S )NzUnsupported value z for ``matchra   )ra   )r#   rA   pytestraises
ValueErrorrl   )rm   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 )NrD   z!covered by test_resample_how_ohlcr   r-   r]      r^   rj   r_   r`   ra   r#   rb   r;   rk   )r   skipr#   rA   r   	ones_likerC   rI   r   getattrrl   rJ   rK   )rm   Zdownsample_methodr,   r%   	grouplistrn   rT   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|ddddgd}|j
dddd }t|| d S )Nr   r-   r]   r   r^   rj   c                 S   s6   t |  rttjdS | d |  |  | d gS Nr`   r   r@   r   rG   r   repeatnanr8   r7   groupr   r   r   _ohlc   s    z%test_resample_how_ohlc.<locals>._ohlcr_   r`   ra   r#   rb   openhighlowcloser#   rX   r;   rk   )r#   rA   r   r   r	   rC   rI   valuestolistr   rl   rD   rJ   assert_frame_equal)rm   r,   r%   r   r   rn   rT   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 )Nr1   r0   
2014-01-01dstartrc   r3   ABr"   r-   c                 S   s   t t| S r   strtype)r|   ar   r   r   fn   s    z'test_resample_how_callables.<locals>.fnc                   @   s   e Zd Zdd ZdS )z,test_resample_how_callables.<locals>.FnClassc                 S   s   t t|S r   r   )selfr|   r   r   r   __call__   s    z5test_resample_how_callables.<locals>.FnClass.__call__N)__name__
__module____qualname__r   r   r   r   r   FnClass   s   r   Mc                 S   s   t t| S r   r   r{   r   r   r   rg     r}   z-test_resample_how_callables.<locals>.<lambda>r   )r   )r-   )r   aranger.   r   r!   rA   r	   rl   applyr   rJ   r   )r,   dataindrY   r   r   Zdf_standardZ	df_lambdaZ
df_partialZdf_partial2Zdf_classr   r   r   test_resample_how_callables   s    
r   c                 C   sx  d}t jt|dddgidd}|j| |_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   r`   rp   r   z
2014-11-08r3   rc   r"   Z7srV   r-   Z11sr^      Z13s   r]   Z17s   rj   )pdZread_csvr   r#   rA   rd   rl   r4   r	   r   rJ   r   )r,   r   rY   rT   rn   r   r   r   test_resample_rounding  sL    



r   c                 C   sh  t tdddtdddddd| }ttjt||}|d	 }t|dksZt
|jjd	d	d	gk stt
|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st
|jd |d kst
|d	 }t|dks>t
|jjddgk sXt
|jd
 |d kspt
|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sDt
|jd |d ks\t
|d	 }t|dks|t
|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s:t
|jd |d ksRt
|jjdksdt
d S )N  r-   rV   Dr#   r   endr3   rd   zw-sunrj   r]   r   z1/2/2005z1/9/2005r   r@   W-MONz1/3/2005z	1/10/2005zW-TUEz1/4/2005W-WEDz1/5/2005zW-THUz1/6/2005zW-FRIr`   z1/7/2005r   ru   r1   )r   r   rA   r
   r   r   r    r!   rl   r~   rF   r#   Z	dayofweekrG   ilocrd   r,   rL   r%   rT   r   r   r   test_resample_basic_from_dailyQ  s^    
 
  $r   c                 C   s   t dddd| }td|d}|d }|jd |d ksDt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   r2   r-   r"   r         ?r]   c                 S   s   g | ]}t d d|ddqS )i  r-   rs   r   r   .0ir   r   r   
<listcomp>  s     zCtest_resample_upsampling_picked_but_not_correct.<locals>.<listcomp>Z19750101r1   rr   )r   rA   r
   rl   r5   r#   rF   r   r   rv   countrJ   rK   r4   )r,   datesrm   rT   r%   rn   result1result2r   r   r   /test_resample_upsampling_picked_but_not_correct  s&    
 
r   rP   r4   r5   r6   r7   r8   r9   c                 C   s>   t  }|j||_tdd}||}|j| d dd d S )Nr   r2   Tr:   )rJ   makeTimeDataFramer#   rA   r   rC   rE   )rP   r,   rY   rM   rN   r   r   r   "test_resample_frame_basic_cy_funcs  s
    

r   r3   r   r   c                 C   sF   t  }|j||_||  }t |d |d |   d S )Nr   )rJ   r   r#   rA   rl   r5   rK   )r3   r,   rY   rT   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)rJ   r   r#   rA   rl   r5   )r3   r,   rY   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sZt
|d	 |d	 ksnt
|d
 |d
 kst
|jjdkst
d S )Nr   r-   rV   r   r#   r   r   i2  r   r@   )r   r   rA   r
   r   r   r    r!   rl   ffillrF   r#   rd   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 )Nr^      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10sr2   10S)r
   r   r#   rA   r   NaNr   rJ   rK   rl   r5   )r,   r%   rn   r   r   r   test_resample_how_method  s.    	r   c                 C   s   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   r3   r   rt   )   ?   r"   r   r.   r   )
r   rA   r	   r
   rv   r!   rl   r~   rJ   r   )r,   r#   rn   rY   rT   r   r   r   test_resample_extra_index_point  s     r   c                 C   s^   t dddd| }ttjt||}|djdd}|j	|j
ddd	}t|| d S )
Nr_   rj   5trr   tr   limitr   methodr   )r   rA   r
   r   r   randnr!   rl   r   reindexr#   rJ   rK   r,   rngrw   rT   rn   r   r   r   test_upsample_with_limit  s
    r   Z5DZ10Hry   r   ruleYZ3MZ15DZ30HZ15MinZ30Sc                 C   s`   t dd|| d|}ttjt||}||jdd}|j	|j
ddd}t|| d S )Nr_   rj   )rc   r3   tzr   r   nearestr   )r   rA   r
   r   r   r   r!   rl   r   r   r#   rJ   rK   )Ztz_aware_fixturer3   r   r,   r   rw   rT   rn   r   r   r    test_nearest_upsample_with_limit  s    r   c                 C   sF  | }|j ||_ ttdd}||dd }|d }t|t|ksVt	t|j
dksht	|jd }|d |d	 kst	|d
 |d	d  kst	|d |d	d  kst	|d |d kst	|jd }|d |d kst	|d
 |d d  kst	|d |d d  ks,t	|d |d ksBt	d S )Nr1   r2   c                 S   s   | d S rz   r   r{   r   r   r   rg     r}   z$test_resample_ohlc.<locals>.<lambda>ry   r`   r   ir   r@   r   r   r   )r#   rA   r   r   rC   rI   rl   rD   r!   rF   rX   r   r8   r7   )rm   r,   r%   r   rS   rT   Z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
sht|jd d	 d }t	|t
std S )
N1-1-2000	2-15-2000hr2   	4-15-2000	5-15-2000r"   30Tz	4-14-2000)r   rA   unionr
   rv   r!   locrl   rD   
isinstancer	   rF   )r,   r#   r%   r   rM   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   r@   r2   r"   )r   rA   Zdropr   r	   r   r   r!   rl   r5   r   rJ   r   )r,   r   r#   rY   rT   rn   r   r   r   $test_resample_ohlc_result_odd_period9  s    $r  c              
   C   s(  t tdd ddtdd ddtdd dditdd ddtdd ddtdd dd	id
jddgdd}|j| |_d|j_|d }t	j
|d d |d d gd|jd}|jjd dk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-   axisZColsH)r
  keysr   r   rM   cr   )r   r  r   )r   r  r   )r   r  r   )r   r  r   )rM   r   r   )rM   r   r   )rM   r   r   )rM   r   r   )r	   r   r   r#   rA   rX   rd   rl   rD   r   concatnamesrF   rJ   r   
MultiIndexfrom_tuples)r,   rY   resexpr   r   r   test_resample_ohlc_dataframeK  sZ    
 
 
 
 
 
  "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 )Nr`   rs     c                 S   s   g | ]}t d |d ddqS )r  r-   r   )yearmonthr3   r   r   r   r   r   r     s     z+test_resample_dup_index.<locals>.<listcomp>r   rj   Qr-   r	  c                 S   s   t | jd d S )Nr-   rj   )intr  r{   r   r   r   rg     r}   z)test_resample_dup_index.<locals>.<lambda>c                 S   s   g | ]}t d |d ddqS )r  r-   r  )r  Zquarterr3   r  r   r   r   r   r     s     )r	   r   r   r   rv   r   r   rl   r5   rC   rX   rJ   r   )rY   rT   rn   r   r   r   test_resample_dup_index{  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slt
t|jjtjst
|jjtdkst
d S )Nr   r-   rV   r   r   r   r;   rk   Z8Hr   r   )r   r   rA   r
   r   r   r    r!   rl   r5   rF   r  r#   r3   r   Z
DateOffsetZHour)r,   rL   r%   bsrT   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   sT   | dd}|j ||_ |j|dd }|| }tf ||_ t|| d S )Nz1/1/1990r_   r   r   )r#   rA   rl   r5   r   rJ   rK   )simple_date_range_seriesr3   Zexpected_kwargsr,   rw   rT   rn   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
 sbt||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>._ohlcr\   z1/1/2000 5:59:50r   r2   r"   ra   r;   rk   z1/1/2000 00:00r   r-      ri   z1/1/2000 5:55:01z1/1/2000 6:00:00)r   rA   r
   r   r   r   r!   rl   rD   r  rG   rF   )r,   r   r   rw   	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sdtt|d	 |d
  t|d
 |d  d S )Nr_   	2/29/2000r1   r"   r   c                 S   s   | j S r   )r  r{   r   r   r   rg     r}   z,test_downsample_non_unique.<locals>.<lambda>r   r   r-   )r   rA   r   r   r
   r   r   r   r!   rl   r5   rC   rF   rJ   Zassert_almost_equal)r,   r   rng2rw   rT   rn   r   r   r   test_downsample_non_unique  s    r'  c              	   C   s`   t dd| }|dj}ttjt||d}d}t	j
t|d |d W 5 Q R X d S )Nr_   r%  r   r"   z/cannot reindex on an axis with duplicate labelsr   r   )r   rA   r   r   r
   r   r   r   r!   r   r   r   asfreq)r,   r   r&  rw   r   r   r   r   test_asfreq_non_unique  s    r)  c                 C   sf   t dd| }ttjdt||dddgd}|jdd	d
 }|j	d j	}t
|| d S )Nr_   r%  rj   r   rM   r  rX   r#   r   r-   r	  )r   rA   r	   r   r   r   r!   rl   r5   rq   rJ   r   )r,   r   rY   rT   rn   r   r   r   test_resample_axis1  s
    "r+  r   r   Z15tZ30tZ4hZ12hc                 C   sz   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 r%   rr   r"   r   rh   rk   r   rA   r
   r   r   r   r!   r   rl   r5   rJ   rK   )r3   r,   r   rw   rT   rn   r   r   r   test_resample_anchored_ticks  s    r.  r   r-   r   c                 C   sb   dd }t dd|  ddd|}ttjt||d}t|	d	
 |	d	| d S )
Nc                 S   s   |   S r   )r4   r{   r   r   r   rg     r}   z,test_resample_single_group.<locals>.<lambda>z2000-1-1z2000-z-10r   r2   r"   r   )r   rA   r
   r   r   r   r!   rJ   rK   rl   r4   r   )r   r,   Zmysumr   rw   r   r   r   test_resample_single_group  s    r/  c                 C   sp   t ddgtdtdgd}|j| |_t dgttdgdd	| d}|dd
d }t|| d S )Ng>@g?@z20070915 15:30:00z20070915 15:40:00r"   g      ?Z20070915r   r2   c                 S   s
   t | S r   )r   stdr{   r   r   r   rg     r}   z0test_resample_single_group_std.<locals>.<lambda>)	r
   r   r#   rA   r   rl   r   rJ   rK   )r,   r%   rn   rT   r   r   r   test_resample_single_group_std  s     r1  c                 C   sd   t dddd| }ttjt||d}|jddd }t d	d
dd| }t	
|j| d S )Nr\   z1/1/2000 02:00r%   r2   r"   ra   Z2minoffset12/31/1999 23:57:00z1/1/2000 01:57r   rA   r
   r   r   r   r!   rl   r5   rJ   assert_index_equalr#   )r,   r   rw   r#  exp_rngr   r   r   test_resample_offset  s    r8  kwargsorigin1999-12-31 23:57:00z1970-01-01 00:02:00epoch2mr:  r3  z1999-12-31 12:02:00r3  z-3mc                 C   sb   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:00r%   r2   r"   r;  2000-01-01 01:57ra   )ra   r5  )r9  r,   r   rw   r7  r#  r   r   r   test_resample_origin  s      rB  Zinvalid_valueZepchZstartdayZstarttz
2000-30-30c              	   C   sd   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@  r%   r2   r"   z|'origin' should be equal to 'epoch', 'start', 'start_day', 'end', 'end_day' or should be a Timestamp convertible type. Got '
' instead.r   ra   r:  r   rA   r
   r   r   r   r!   r   r   r   rl   )r:  r,   r   rw   r   r   r   r   test_resample_bad_origin*  s    
rF  Z12dayysc              	   C   sd   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@  r%   r2   r"   z6'offset' should be a Timedelta convertible type. Got 'rC  r   ra   r2  rE  )r3  r,   r   rw   r   r   r   r   test_resample_bad_offset9  s
    rG  c                 C   sf  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7minr2   r"   z2000-10-01 23:14:00z2000-10-02 00:22:00Z17min	start_dayrD  rH  z2000-10-02 00:21:00r   Z23h30minr2  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-01r5  )r,   r   r   r   rw   r7  r#  r   r   r   test_resample_origin_prime_freqB  sZ            rL  c              	   C   s6  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@  r%   r3   r   r"   r;  rA  ra   z1999-12-31 23:57:00+00:00rD  z1999-12-31 12:02:00+03:00r<  r=  r>  r   r4  r2   z12/31/1999 23:57:00+03:00)r   rA   r
   r   r   r   r!   rl   r5   rJ   r6  r#   r   r   r   )r,   r   r   r   rw   r7  r#  r   r   r   test_resample_origin_with_tzg  s>          rO  c                 C   sF  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+0500rI  r2   r"   r   r<  rD  24HF)Z
check_freq)z2000-10-01 23:30:00+0200z2000-12-02 00:30:00+0200)r   rA   r   r   r   r!   r
   rl   r5   rJ   rK   tz_localizer   )r,   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_24h  s&    
rR  c           
         s  d d& fdd	}t d d}t d d}t||dd	}ttt||d
}|ddgddg}ddd|d fD ]"}|jd|d }t	
|| qvt d d}t d d}t||dd	}ttt||d
}ddg}	|ddg|	}|jdddd }t	
|| ddg}	|ddg|	dd	}|jdddd }t	
|| ddg}	|ddg|	}|jdddd }t	
|| dd g}	|dd!g|	}|jddd"d }t	
|| d#d$g}	|d!dg|	}|jddd%d }t	
|| d S )'NAmerica/Chicagor   c                    s*   t | t fdd|D |dddS )Nc                    s   g | ]}t | d qS )r  )r   )r   r   r  r   r   r     s     zUtest_resample_origin_with_day_freq_on_dst.<locals>._create_series.<locals>.<listcomp>T)r3   	ambiguousr"   )r
   r   rA   )r   Z
timestampsr3   r   r,   r   r   _create_series  s      zAtest_resample_origin_with_day_freq_on_dst.<locals>._create_series
2013-11-02r  z2013-11-03 23:591hr2   r"   g      8@g      9@z
2013-11-03r<  r   rJ  rD  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@      @rP  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   rA   r
   r   Zonesr!   rl   r4   rJ   rK   )
r,   rV  r   r   r   rw   rn   r:  rT   Zexpected_tsr   rU  r   )test_resample_origin_with_day_freq_on_dst  sD    	r]  c                 C   sz   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'  rq   rr   r"   r   r   rh   rk   r-  r   r   r   r   test_resample_daily_anchored  s    r_  c                 C   sZ   t dd| }ttjt||d}|jddd }t	dddd	}t
|j| d S )
Nr_   z
12/31/2000r"   r   r   r   zJan-2000zDec-2000r2   )r   rA   r
   r   r   r   r!   rl   r5   r   rJ   r6  r#   )r,   r   rw   rT   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   r1   2   z
2012-01-01r  r   rW   r/   r   c                 S   s   |   S r   r5   r{   r   r   r   rg     r}   z&test_period_with_agg.<locals>.<lambda>)r
   r   r   randintr   to_timestamprl   r5   Z	to_periodrI   rJ   rK   )s2rn   rT   r   r   r   test_period_with_agg  s    rf  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  rV   r      r   r         r"  )IDr   r   r   rX   r   rj  ra   c                 S   s   |  d S )Nra   )rl   r4   r{   r   r   r   rg     r}   z(test_resample_segfault.<locals>.<lambda>)r   r	   Zfrom_records	set_indexr#   rA   rC   rl   r4   r   rJ   r   )r,   Zall_wins_and_wagersrY   rT   rn   r   r   r   test_resample_segfault  s     rm  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s^t|dd }|jjt	j
kstd S )Nz
2016-01-01r`   Wr   r-   r   r1   r]   ru   r   int32r   )r   r   valr   1Dr   )r	   r   rA   r
   rl  rl   r   rp  r0   r   ro  rF   rC   r,   rY   rT   r   r   r    test_resample_dtype_preservation  s    
rs  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-   rj   r`   z
2017-01-01z
2017-01-04r"   rW   r  Zcubic)r   Zimportorskipr	   r   rA   astyperl   r5   ZinterpolaterJ   rK   )r,   rY   rn   rT   r   r   r   test_resample_dtype_coercion#  s    
ru  c                 C   sX   t dddd| }ttjt||d}|d }|d }t	
|| d S )Nr_   r   rg  r   r"   rn  zW-SUN)r   rA   r
   r   r   r   r!   rl   r5   rJ   rK   )r,   r   rw   r#  rn   r   r   r   test_weekly_resample_buglet3  s
    rv  c                 C   s:   t dddd| }ttjt||d}|d d S )N4/16/2012 20:00i  r   rr   r"   r   )r   rA   r
   r   r   r   r!   rl   r,   r   rw   r   r   r   test_monthly_resample_error=  s    ry  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@rV   Z100nr   r"   d   r5   r/   )r   r   to_datetimer
   rv   r!   rl   tseriesr   ZNanorI   floatrJ   rK   )r   Z	exp_startZindxrw   rZ   rT   Zexp_indxr  r   r   r   test_nanosecond_resample_errorE  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_|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sztd S )Nz1/1/2012z4/1/2012Z100minr2   r"   r   r   r   r   )howr-   r(   r   Zinferrh   )r=   r  )r   r=   z2012-04-29 23:00z2012-04-30 5:00r   )r   rA   r	   r  rl   r5   rd  r#   r   
_with_freqr3   rF   rJ   r   shift_datar   Z
no_defaultZ_freqr!   )	r   r,   r   rY   rT   rn   r  rw   r#  r   r   r   test_resample_anchored_intradayU  sH    



r  MSZBMSzQS-MARzAS-DECzAS-JUNc                 C   s*   | dd}|j ||_ ||  d S )Nr_   z
12/31/2002)r#   rA   rl   r5   )r   r3   r,   rw   r   r   r   !test_resample_anchored_monthstart  s    
r  z
label, secrY  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.206rj   Z400Lrr   z2014-10-15 23:00:00r   Z2200Lr1   r"   )r>   r@   z2014-10-15 23:00:Z00)r   r  r
   r   r   r   rl   r5   r#   r   rF   )r>   secZindex1index2r#   r%   rT   r   r   r   test_resample_anchored_multiday  s    
r  c                 C   sf   t dddd| }ttjt||d}|jdddd	 }t d
ddd| }t	
|j| d S )Nr_   rs   r   rr   r"   r   r;   rh   rk   z1999-12-31 23:55r`   r5  )r,   r   rw   rT   Zex_indexr   r   r   test_corner_cases  s
    r  c                 C   s8   | ddddd d }| d }t|dks4td S )Nz2007-01z2010-05r   r2   r   r  )rl   r5   r!   rF   )Zsimple_period_range_seriesZlen0ptsrT   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>t|j d	 td
ddksXtd S )Nz
2000-04-28z2000-04-30 11:00r   r2   r   r   r   r-   r   z2000-04)r#   rA   rl   r5   r!   rF   r   )r   r,   rw   rT   r   r   r   test_corner_cases_date  s
    r  c                 C   s>   t dddd| }ttjt||d}|d  d S )Nrw  iP  r%   rr   r"   r   )	r   rA   r
   r   r   r   r!   rl   r5   rx  r   r   r   test_anchored_lowercase_buglet  s    r  c                 C   sR   t dddd| }ttjt||d}|dddg}t	|t
sNtd S )	N
2012-06-12r`   r   rr   r"   Z20minr5   r4   )r   rA   r
   r   r   r   r!   rl   	aggregater  r	   rF   )r,   r   rw   rT   r   r   r   test_upsample_apply_functions  s    r  c                 C   sr   t dddd| }ttjt||d}|tjt|}|	d
 }| 	d
 }t|| d S )Nr     r   rr   r"   r   )r   rA   r
   r   r   r   r!   ZtakeZpermutationrl   r4   Z
sort_indexrJ   rK   )r,   r   rw   rT   r  r   r   r   test_resample_not_monotonic  s    r  r0   r.   ro  rW   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   r1   r/   rq   c                 S   s   |   S r   rb  r{   r   r   r   rg     r}   z/test_resample_median_bug_1688.<locals>.<lambda>)r	   r   rl   r   r(  rJ   r   Zmedian)r0   rY   rT   r  r   r   r   test_resample_median_bug_1688  s    "

r  c                 C   s   | dd}|j ||_ |ddd }|d }t|| |d }d|_|d }d|_|ddd d	d g}ddg|_	t|d | t|d | |d
d
d dd d}tj|d |dd tj|d |dd d S )Nr_   z4/1/2000r   c                 S   s   |   S r   rb  r{   r   r   r   rg     r}   z+test_how_lambda_functions.<locals>.<lambda>foobarc                 S   s   |   S r   rb  r{   r   r   r   rg     r}   c                 S   s   | j ddS Nr-   )Zddofr0  r{   r   r   r   rg     r}   c                 S   s   |   S r   rb  r{   r   r   r   rg   
  r}   c                 S   s   | j ddS r  r  r{   r   r   r   rg   
  r}   )r  r  F)Zcheck_names)r#   rA   rl   r   r5   rJ   rK   rd   r0  rX   r  )r   r,   rw   rT   r  Zfoo_expZ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  rj   r-   r1   r  ru   r"  r`   Z30minr2   r   r"   ZAS)r   r   rA   r	   rl   r4   )r,   r   r   Zbad_indrY   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-02r`   r   rr         @r"   r   r   r@   Z10Tr2   bfill)r#   r   )r#   r   r   r   Z10Minr   )r   rA   r
   r   r   r   r   Zreindex_likerl   r  rJ   rK   )	r,   Zi30r%   Zi10Zs10Zs10_2ZrlZr10_2Zr10r   r   r   test_resample_consistency  s    
r    rV   rp   rj   r^   r1   r   ru   ri  dates1r`   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)r3   rd   r   r-   r   r   r"   )r3   key)r   r   C)r   r  r  r   )r	   r   r   r!   rl  rl   r   r   r   anyr#   r  rJ   r   rC   r   )r   rY   rT   Zexp_idxrn   r   r   r   test_resample_timegrouperB  s2    $r  c                 C   s   t tddtdditddtddid}|j| |_|d}|tdd	}|tdd	jd
d }|j	dkst
||fD ]}|j }t|| q|jd }t|| |jtdd	 }t|| d S )Nz2015-06-05 00:00:00Z
0010100903z2015-06-08 00:00:00Z
0010150847z
2015-06-05z
2015-06-08)rj  ZDATEr   r2   c                 S   s   |   S r   nuniquer{   r   r   r   rg   t  r}   z'test_resample_nunique.<locals>.<lambda>rj  )r	   r   r#   rA   rl   rC   r   rj  r   rd   rF   r  rJ   rK   )r,   rY   rZ   rN   rn   r   rT   r   r   r   test_resample_nuniquec  s2        

r  c                 C   sb   t jdd }|j| |_tjj|j	 gd ddgd|_|
d }t |j|j d S )Nrq  r2   r   Zlev0Zlev1)r  rX  )rJ   r   absr#   rA   r   r  Zfrom_arraysrX   r   rl   r  r6  rr  r   r   r   2test_resample_nunique_preserves_column_level_names  s     r  funcc                 C   s   |   S r   r  r{   r   r   r   rg     r}   c                 C   s   |  tjS r   )rI   r
   r  r{   r   r   r   rg     r}   c                 C   s
   |  dS )Nr  )rI   r{   r   r   r   rg     r}   r  Zseries_nuniqueZnunique_str)Zidsc           	      C   sr   t dddd|}t dddd|}||}ttt||dd}|d	}| }| |}t	|| d S )
Nr   r   r   r2   r   r   r.   r/   r   )
r   rA   rH   r
   rv   r!   rl   r   rJ   rK   )	r  r,   r#   r  Zindex3r%   rZ   rT   rn   r   r   r   #test_resample_nunique_with_date_gap  s    

r  nr^  i krz  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 )Ni  z
2015-08-27rV   rq   r   r   r.   r"   r   r   r;   ZsideTr-   r@   Z	minlengthFcopy)r   r   ZRandomStater   rA   r
   rc  rt  choicerl   r  r#   r7   r8   r   searchsortedZlexsortZr_bincountr!   rJ   rK   )r  r  r,   Zprngdrrw   rh   ixvalsbinsZsortermaskrQ   r;   r   r   r   test_resample_group_info  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-19rq   rr   r"   Z7Tr   r;   r  r-   r  r.   Fr  )r   rA   r
   r   r   r   r  rl   sizer#   r7   r8   r  r   r  r!   rt  rJ   rK   )	r,   r  r  rw   rh   r  r  rp  r;   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Xrw   rk  r%   r,   UTCzEurope/Madridi 8XiFXr  r2   r1   r"   r   )r	   r   r   r{  rw   dtrQ  
tz_convertrl   r4   rJ   r   )Zdf1Zdti1Zdf2Zdti2rY   rT   rn   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  rS  r-   r   r"   Z1dr2   z
2016-11-02z
2016-11-24r   rN  r   rt   rY  )r   r  rA   r	   rC   r   r~   r   r   r   rJ   r   )r,   r#   rY   rT   Zexpected_index_valuesrn   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  r^   r`      z
US/Easternr  r1   r"   r   r2   r  r  r-   r   r3   z
2013-09-30rW  Z30MinrM  rN  )r   rM   r  r.   r/   r7   r8   r   r   r   rM   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  ra  zD Frequency)r   r   rA   r	   r#   	normalizerJ   r   rl   r4   r   rv   r  rI   )r,   rL   rY   rn   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  rV      r`   r[  rr   r1   r"   r        @rj   ru   )pytztimezoner   r   ZlocalizerA   r
   rl   r5   r   r   rJ   rK   )r,   r   r  r   rT   rn   r   r   r   test_downsample_across_dstc  s    
r  c                 C   sp   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  r^   rs   r      ri  )r#   r   Z1Wr  *   z
2017-04-02rn  r  r"   )r	   r   rA   rl   r4   rJ   r   )r,   rY   rT   rn   r   r   r   !test_downsample_across_dst_weeklyp  s*      r  c                 C   sb   t ddddd| }t|tjd}|d }tt ddd	dd
| tjd}t|| d S )Nz
2013-04-01z
2013-05-01zEurope/Londonr  r  r/   rn  z
2013-04-07r1   )r3   rc   r   )	r   rA   r
   r   rW   rl   r5   rJ   rK   )r,   rR   r%   rT   rn   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dddg|d
}t|| d S )Ni  r^   rj   rs   r1   r\  r2   r  zAmerica/Havanar"   rq  z
2018-11-03rc   T)rT  r   g      @g      <@g     @F@)r   r   rA   rQ  r  listrv   r!   r	   rC   r   r5   r   rJ   r   )	r,   r   r   r#   r   Z	dataframerT   rL   rn   r   r   r   test_downsample_dst_at_midnight  s     r  c           	      C   s   t tjdtjddg}tdddddg|d	}|j| |_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   rj   r1   ru   r^   r"   rZ  g      @g      &@Z1sr  Z2sZ3sZ60s)
r   r   NaTr	   r#   rA   rJ   r   rl   r5   )	r,   r#   frameZindex_1sZframe_1sZindex_2sZframe_2sZindex_3sZ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-   ri     r   r"   z
2016-01-15rj   Z2Drr   )r#   rd   )r   r	   r#   rA   r
   r   r  r   rl   firstrJ   rK   )r,   r   rY   r  r  r   r   r   test_resample_datetime_values  s    r  c                 C   s   dd }| j || _ d}| d||}| d |}t|| | dj||d}| d |}t|| tdddt	d	dd
d}|
dd||t}|
dd |}t|| d S )Nc                 S   s   t | | S r   )r   r5   )r   add_argr   r   r   rP     s    z3test_resample_apply_with_additional_args.<locals>.frV   r   )r  r-   r   r   Z2017r  r"   r   )r#   rA   rl   r   r5   multiplyrJ   rK   r	   r   rC   rI   rt  r}  r   )rm   r,   rP   
multiplierrT   rn   rY   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   )rs   r  r  r   )   r  r-   r   c                 C   sx   | | }|| }t dtdd|d|d}|tt| }|t||  }	|t||  }
t	|	|
 d S )Nr   z19910905 13:00z19911005 07:00r2   r"   )
r
   r   rA   rv   r!   rl   r   r5   rJ   rK   )Zn1Zfreq1Zn2Zfreq2r  r,   Zn1_Zn2_r%   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   sz   t | } | | j|} t |}||j|}t|}t|}tjj|}t	| ||dd}||f}||ksvt
d S )Nr(   r  )r   rd  r3   rA   r   r   r|  ZfrequenciesZ	to_offsetr   rF   )r  r~   r3   Z	exp_firstexp_lastr,   rT   rn   r   r   r   test_get_timestamp_range_edges  s    r  
duplicatesTFc                 C   s   t dddd|}ttd|d}t||d d}| rDddg|_|d	tj	}t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   rs   r   r3   rc   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-DECr2   r   )r   rA   r
   rv   r	   rX   rl   r   r   r6   rB   r.   r   rJ   r   )r  r,   r#   rw   rY   rT   rn   r   r   r   test_resample_apply_product,  s"    
&
 r  z$first,last,freq_in,freq_out,exp_last)
2020-03-28
2020-03-31r   rP  z2020-03-30 01:00)r  
2020-10-27r   rP  2020-10-27 00:00)
2020-10-25r  r   rP  z2020-10-26 23:00)r  r  rP  r   z2020-03-30 00:00)r  r  rP  r   r  )r  r  rP  r   z2020-10-26 00:00)r  r~   freq_infreq_outr  c           	      C   sV   t dt| ||dd|}|| }t dt| ||dd|}t|| d S )Nr   r  rN  )r
   r   rA   rl   r   rJ   rK   )	r  r~   r  r   r  r,   rw   rT   rn   r   r   r   #test_resample_calendar_day_with_dstA  s    ' 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 )NZ2020r   rj   r  r-   r  r   )Z	min_countr  r  r2   r"   )
r   rA   r
   r   r   r   rl   r   rJ   rK   )r  r,   r#   serrT   rn   r   r   r   +test_resample_aggregate_functions_min_counts  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 )NrK  z2000-01-03 23Z12Hr   r|   r   r-   r   )r#   rX   r   r0   z
2000-01-02z
2000-01-03r   r*  )r	   r   rA   r  r#   rl   r8   r   r   rJ   r   )Zany_unsigned_int_numpy_dtyper,   rY   rT   rn   r   r   r   test_resample_unsigned_int  s$    "
r  c                  C   s   t ddddd} tdddd	d
ddddd	d
ddddd	d
g| d}|d }ttdddddddddg	ddd}tdddddddddg	|d}t	|| d S )Nz
0300-01-01rK  r%   Z100Y)r,   r3   r-   r`   r   r   r1   ru   r"   Z200Yz
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-DECr2   r   rZ  g      @r  )
r   r
   rl   r5   r   r   rB   rt  rJ   rK   )rR   r  rT   Zexpected_idxrn   r   r   r   test_long_rule_non_nano  s,    .r  )r   	functoolsr   ior   typingr   numpyr   r   r  Zpandas._libsr   Zpandas._typingr   Zpandasr   r	   r
   r   r   r   r   Zpandas._testingZ_testingrJ   Zpandas.core.groupby.grouperr   Zpandas.core.indexes.datetimesr   Zpandas.core.indexes.periodr   r   Zpandas.core.resampler   r   Zpandas.tseriesr   Zpandas.tseries.offsetsr   Zfixturer   r   r$   r,   rU   r[   markZparametrizero   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/  r1  r8  rB  objectrF  rG  rL  rO  rR  r]  r_  r`  rf  rm  rs  ru  rv  ry  r~  r  r  r  r  r  r  r  r  r  r*   Z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   r   <module>   s    



$
			

D:


	0
	



 

%!7

0

	








2
 	 a!$    