a
    oÝEbfî  ã                	   @   s  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#  m$Z$ d dl"m%Z% e &¡ dd„ ƒZ'ej&dd„ ƒZ(ej&dd„ ƒZ)dd„ Z*ej+ ,ddg¡ej+ ,dddd„ fddd„ fg¡dd„ ƒƒZ-dd „ Z.d!d"„ Z/ej+ ,ddg¡ej+ ,d#g d$¢¡d%d&„ ƒƒZ0ej+ ,ddg¡d'd(„ ƒZ1ej+ ,ddg¡d)d*„ ƒZ2ej+ ,d+g d,¢¡d-d.„ ƒZ3d/d0„ Z4d1d2„ Z5d3d4„ Z6d5d6„ Z7d7d8„ Z8d9d:„ Z9d;d<„ Z:d=d>„ Z;d?d@„ Z<ej+ ,dAg dB¢¡ej+ ,dCg dD¢¡dEdF„ ƒƒZ=dGdH„ Z>dIdJ„ Z?dKdL„ Z@dMdN„ ZAdOdP„ ZBdQdR„ ZCdSdT„ ZDdUdV„ ZEdWdX„ ZFdYdZ„ ZGd[d\„ ZHd]d^„ ZId_d`„ ZJdadb„ ZKej+ ,dcdddedfdgdheLƒ g¡didj„ ƒZMej+ ,dkdddldheLƒ g¡dmdn„ ƒZNdodp„ ZOdqdr„ ZPdsdt„ ZQdudv„ ZRdwdx„ ZSdydz„ ZTd{d|„ ZUd}d~„ ZVdd€„ ZWd�d‚„ ZXdƒd„„ ZYd…d†„ ZZd‡dˆ„ Z[d‰dŠ„ Z\d‹dŒ„ Z]d�dŽ„ Z^d�d�„ Z_d‘d’„ Z`d“d”„ Zad•d–„ Zbd—d˜„ Zcd™dš„ Zdd›dœ„ Zed�dž„ ZfdŸd „ Zgd¡d¢„ Zhd£d¤„ Zid¥d¦„ Zjej+ ,d§d¨d©g¡ej+ ,dªg d«¢¡d¬d­„ ƒƒZkd®d¯„ Zld°d±„ Zmd²d³„ Znd´dµ„ Zod¶d·„ Zpd¸d¹„ Zqdºd»„ Zrd¼d½„ Zsd¾d¿„ ZtdÀdÁ„ Zuej+ ,dªg dÂ¢¡ej+ ,dÃg dÄ¢¡dÅdÆ„ ƒƒZvej+ ,dÇg dÈ¢¡dÉdÊ„ ƒZwej+ ,dËdÌdÍg¡dÎdÏ„ ƒZxej+ ,dÐg dÑ¢¡eyeyeyeyeydÒœdÓdÔ„ƒZzej+ ,d+g dÕ¢¡dÖd×„ ƒZ{dØdÙ„ Z|dS )Úé    ©Údatetime)Úpartial)ÚStringION)Úlib)Ú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   úi/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/pandas/tests/resample/test_datetime_index.pyÚ_index_factory%   s    r   c                   C   s   dS )NÚMinr   r   r   r   r   Ú_index_freq*   s    r   c                 C   s   t j t| ƒ¡S r   )ÚnpÚrandomÚrandÚlen©Úindexr   r   r   Ú_static_values/   s    r"   c                 C   s†  | }t t dgt|ƒ ¡|dd�}ttdƒd�}| |¡}| ¡  g d¢}|D ]}|j|d dd� qNttdƒd	d	d
�}| |¡}| ¡  g d¢}|D ]}|j|d dd� q”|j	dks¸J ‚t
| ¡ ƒ ¡ sÌJ ‚dgdgd  }|ddd… }| |dd … ¡}t|dd�}t ||d�}	| tj¡}
t |
|	¡ ttj t|ƒd¡|dd�}| |¡ tj¡}t|jƒdk�snJ ‚t|jƒdk�s‚J ‚d S )Né   Úint64©r!   Údtypeé   ©Úfreq©ÚaddÚmeanÚprodÚminÚmaxÚvarT©ZaltZnumeric_onlyÚright©r)   ÚclosedÚlabeli!
  i 
  r   éÿÿÿÿZ5Tr    é
   Úfloat64)r	   r   Úarrayr   r   r   ÚgroupbyÚohlcÚ_cython_agg_generalZngroupsr   r,   ÚallÚappendr   ÚaggÚsumÚtmÚassert_series_equalr   r   r   Úcolumnsr!   )r!   ÚdtiÚsÚbÚgÚfuncsÚfÚarrÚidxÚexpectÚresultÚdfÚrr   r   r   Útest_custom_grouper4   s6    

rP   z#_index_start,_index_end,_index_name)ú1/1/2000 00:00:00z1/1/2000 00:13:00r!   zclosed, expectedr2   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   ©rE   r   r   r   Ú<lambda>h   s   2þr\   Úleftc                 C   sB   t | d d…  ¡ | dd…  ¡ | dd …  ¡ gtddddd�d�S )	Nr'   r7   ú1/1/2000 00:05é   rV   r!   rW   r    rZ   r[   r   r   r   r\   o   s
   ,ÿþc                 C   s0   | }||ƒ}|j d|dd� ¡ }t ||¡ d S )NrV   r2   ©r4   r5   )Úresampler,   rA   rB   )Úseriesr4   ÚexpectedrE   rM   r   r   r   Útest_resample_basic_   s    rd   c                  C   sŒ   t tdƒtdddd�dd�} |  d¡ ¡ }t g d¢tdd	dd�dd�}t ||¡ |  d¡ ¡ }t g d
¢tdd	dd�dd�}t ||¡ d S )Né	   rT   ÚT©rX   r)   ZInt64r%   Z3T)r_   é   é   r_   )r#   rU   é   ZFloat64)r	   Úranger   ra   r@   rA   rB   r,   )ÚtsrM   rc   r   r   r   Útest_resample_integerarray   s"    ÿýýrm   c                 C   sH   | }|  d¡ ¡ }ttdƒddd�}| |¡ dd„ ¡}t ||¡ d S )NÚ5Minr'   r]   r3   c                 S   s   | d S ©Nr6   r   ©Úxr   r   r   r\   ™   ó    z-test_resample_basic_grouper.<locals>.<lambda>)ra   Úlastr   r   r:   r?   rA   rB   )rb   rE   rM   Úgrouperrc   r   r   r   Útest_resample_basic_grouper•   s
    ru   zkeyword,value))r5   Úrighttt)r4   rv   )Z
conventionZstartttc                 C   sX   d|› d|› d�}t jt|d��$ | jdi ||i¤Ž W d   ƒ n1 sJ0    Y  d S )NzUnsupported value z for `ú`©ÚmatchrV   )rV   )ÚpytestÚraisesÚ
ValueErrorra   )rb   Ú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#   rR   é   rS   r_   rT   rU   rV   r!   rW   r2   r`   )rz   Úskipr   Ú	ones_liker:   r?   r   r!   Úgetattrra   rA   rB   )rb   Zdownsample_methodrE   Ú	grouplistrc   rM   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�g d¢d�}|jdddd� 	¡ }t
 ||¡ d S )Nr   r#   rR   r�   rS   r_   c                 S   s6   t | ƒ ¡ rt tjd¡S | d |  ¡ |  ¡ | d gS ©NrU   r   r6   ©r   r=   r   ÚrepeatÚnanr/   r.   ©Úgroupr   r   r   Ú_ohlcÐ   s    z%test_resample_how_ohlc.<locals>._ohlcrT   rU   rV   r!   rW   )ÚopenÚhighÚlowÚclose©r!   rC   r2   r`   )r   rƒ   r   r:   r?   ÚvaluesÚtolistr   ra   r;   rA   Úassert_frame_equal)rb   rE   r…   r�   rc   rM   r   r   r   Útest_resample_how_ohlcÄ   s    
ýr–   Úfunc)r.   r/   r@   r-   r,   r0   Ústdc                 C   s¬   t g d¢tdddd�d�}| d¡}d}tjt|d	��$ t|| ƒ| d
ddƒ W d   ƒ n1 s`0    Y  tjt|d	��  t|| ƒd
d� W d   ƒ n1 sž0    Y  d S )N)r#   r�   r_   rU   r'   Z20130101r'   rE   rg   r    Ú2sz,numpy operations are not valid with resamplerx   r#   r�   r_   ©Úaxis)r	   r   ra   rz   r{   r   r„   )r—   rE   rO   r   r   r   r   Útest_numpy_compatß   s    
2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©ÚstartrX   r)   ©ÚAÚBr    r#   c                 S   s   t t| ƒƒS r   ©ÚstrÚtype)rq   Ú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¥   )Úselfrq   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¥   rp   r   r   r   r\   û   rr   z-test_resample_how_callables.<locals>.<lambda>r�   )r¨   )r#   )r   Úaranger$   r   r   r   ra   Úapplyr   rA   r•   )
ÚdataÚindrN   r©   r¯   Zdf_standardZ	df_lambdaZ
df_partialZdf_partial2Zdf_classr   r   r   Útest_resample_how_callablesí   s    
rµ   c                  C   sD  d} t jt| ƒdddgidd�}d |j_| d¡ ¡ }tdg d¢itd	dd
d�d�}t	 
||¡ | d¡ ¡ }tdg d¢itd	dd
d�d�}t	 
||¡ | d¡ ¡ }tdddgitd	ddd�d�}t	 
||¡ | d¡ ¡ }tdddgitd	ddd�d�}t	 
||¡ | d¡ ¡ }tdddgitd	ddd�d�}t	 
||¡ d S )Naý  date,time,value
11-08-2014,00:00:01.093,1
11-08-2014,00:00:02.159,1
11-08-2014,00:00:02.667,1
11-08-2014,00:00:03.175,1
11-08-2014,00:00:07.058,1
11-08-2014,00:00:07.362,1
11-08-2014,00:00:08.324,1
11-08-2014,00:00:08.830,1
11-08-2014,00:00:08.982,1
11-08-2014,00:00:09.815,1
11-08-2014,00:00:10.540,1
11-08-2014,00:00:11.061,1
11-08-2014,00:00:11.617,1
11-08-2014,00:00:13.607,1
11-08-2014,00:00:14.535,1
11-08-2014,00:00:15.525,1
11-08-2014,00:00:17.960,1
11-08-2014,00:00:20.674,1
11-08-2014,00:00:21.191,1Ú	timestampÚdateÚtime)Zparse_datesZ	index_colZ6sr~   )rU   re   rU   r�   z
2014-11-08rU   ©r)   rX   r    Z7s)rU   r7   rU   r#   Z11srS   é   r�   Z13sé   rR   Z17sé   r_   )ÚpdZread_csvr   r!   rY   ra   r@   r   r   rA   r•   )r³   rN   rM   rc   r   r   r   Útest_resample_rounding  s@    
ýÿÿÿÿÿr¾   c                  C   sT  t tdddƒtdddƒddd�} ttj t| ƒ¡| ƒ}| d¡ ¡ }t|ƒdksTJ ‚|j	j
g d	¢k ¡ slJ ‚|jd
 |d ks‚J ‚|jd |d ks˜J ‚|jd |jd ks°J ‚| d¡ ¡ }t|ƒdksÎJ ‚|j	j
d
d
gk ¡ sæJ ‚|jd
 |d ksüJ ‚|jd |d k�sJ ‚| d¡ ¡ }t|ƒdk�s4J ‚|j	j
ddgk ¡ �sNJ ‚|jd
 |d k�sfJ ‚|jd |d k�s~J ‚| d¡ ¡ }t|ƒdk�sžJ ‚|j	j
ddgk ¡ �s¸J ‚|jd
 |d k�sÐJ ‚|jd |d k�sèJ ‚| d¡ ¡ }t|ƒdk�sJ ‚|j	j
ddgk ¡ �s"J ‚|jd
 |d k�s:J ‚|jd |d k�sRJ ‚| d¡ ¡ }t|ƒdk�srJ ‚|j	j
ddgk ¡ �sŒJ ‚|jd
 |d k�s¤J ‚|jd |d k�s¼J ‚| d¡ ¡ }t|ƒdk�sÜJ ‚|j	j
g d¢k ¡ �söJ ‚|jd
 |d k�sJ ‚|jd |d k�s&J ‚|jd |d k�s>J ‚|j	jdk�sPJ ‚d S )NéÕ  r#   r7   ÚDr!   ©r¡   Úendr)   rY   zw-sunr_   )rR   rR   rR   r   z1/2/2005z1/9/2005r�   r6   úW-MONz1/3/2005z	1/10/2005zW-TUEz1/4/2005úW-WEDz1/5/2005zW-THUz1/6/2005zW-FRIrU   z1/7/2005r¤   rj   )rU   r   r#   r�   r_   rU   r   r'   )r   r   r	   r   r   r   r   ra   rs   r!   Z	dayofweekr=   ÚilocrY   ©rD   rE   rM   r   r   r   Útest_resample_basic_from_dailyD  sT    ÿrÇ   c                  C   sÜ   t dddd�} td| d�}| d¡ ¡ }|jd | d ks>J ‚tt dd	¡d
d„ tdd	ƒD ƒd�}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   ç      ð?rR   c                 S   s   g | ]}t d d|ddƒ‘qS )i·  r#   rh   r   r   ©Ú.0Úir   r   r   Ú
<listcomp>Œ  rr   zCtest_resample_upsampling_picked_but_not_correct.<locals>.<listcomp>Z19750101r'   rg   )r   r	   ra   r,   r!   r   r±   rk   ÚcountrA   rB   r@   )Údatesrb   rM   rE   rc   Úresult1Úresult2r   r   r   Ú/test_resample_upsampling_picked_but_not_correct~  s     ÿÿrÑ   c                  C   s¾   t  ¡ } tdd�}|  |¡}g d¢}|D ]}|j|d dd� q(|  d¡ ¡ }t  |d | d  d¡ ¡ ¡ |  d¡ ¡ }t  |d | d  d¡ ¡ ¡ | jddd� ¡  | jd	dd� ¡  d S )
Nr°   r(   r*   Tr1   r£   Úperiod©ÚkindrÄ   )rA   ÚmakeTimeDataFramer   r:   r<   ra   r,   rB   )rN   rF   rG   rH   rI   rM   r   r   r   Útest_resample_frame_basic›  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sTJ ‚|d	 |d	 kshJ ‚|d
 |d
 ks|J ‚|j	j
dksŒJ ‚d S )Nr¿   r#   r7   rÀ   r!   rÁ   r   i¡2  r   r6   )r   r   r	   r   r   r   r   ra   Úffillr!   rY   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 )NrS   é   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   ra   r,   )rE   rc   r   r   r   Útest_resample_how_methodÁ  s*    þþù	öþrÝ   c                  C   sr   t dddd�} tdtg d¢| d�iƒ}t dddd�} tdttt| ƒƒ| d�id	d
�}| d¡ ¡ }t ||¡ d S )NZ20150101Z20150331ZBM©r¡   rÂ   r)   r£   )ri   é)   é?   r    r¤   r$   r�   )	r   r   r	   rk   r   ra   rs   rA   r•   )r!   rc   rN   rM   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 )
NrT   r_   Ú5trg   Útr�   ©Úlimitr×   ©Úmethodrå   )r   r	   r   r   Úrandnr   ra   r×   Úreindexr!   rA   rB   ©Úrngrl   rM   rc   r   r   r   Útest_upsample_with_limitç  s
    rì   r)   )Z5DZ10Hrn   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 )NrT   r_   )rX   r)   Útzr�   rä   Únearestræ   )r   r	   r   r   rè   r   ra   rð   ré   r!   rA   rB   )Ztz_aware_fixturer)   rí   rë   rl   rM   rc   r   r   r   Ú test_nearest_upsample_with_limitð  s
    rñ   c                 C   s6  | }t tdƒd�}| |¡ dd„ ¡}| d¡ ¡ }t|ƒt|ƒksHJ ‚t|jƒdksZJ ‚|jd }|d |d	 ksxJ ‚|d
 |d	d…  	¡ ks”J ‚|d |d	d…  
¡ ks°J ‚|d |d ksÄJ ‚|jd }|d |d ksâJ ‚|d
 |d d…  	¡ ksþJ ‚|d |d d…  
¡ k�sJ ‚|d |d k�s2J ‚d S )Nr'   r(   c                 S   s   | d S ro   r   rp   r   r   r   r\      rr   z$test_resample_ohlc.<locals>.<lambda>rn   rU   éþÿÿÿrŽ   iúÿÿÿr�   r6   r�   r‘   r   )r   r   r:   r?   ra   r;   r   rC   rÅ   r/   r.   )rb   rE   rt   rL   rM   Ú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\J ‚|jd d	…  d¡ ¡ }t|t	ƒs‚J ‚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 )Nú1-1-2000ú	2-15-2000Úhr(   ú	4-15-2000ú	5-15-2000r    Ú30Tz	4-14-2000z
2013-12-30z
2014-01-07rž   z
2013-12-31z
2014-01-04z
2014-01-05)r³   r!   r¤   r   r6   )r   Úunionr	   rk   r   Úlocra   r;   Ú
isinstancer   Zdropr   r   r±   r,   ré   rA   r•   )r!   rE   r¨   rF   rë   rN   rM   rc   r   r   r   Útest_resample_ohlc_result  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sÀJ ‚t
 ||¡ ddgddgg| _|  d¡ ¡ }tj g d¢¡|_t
 ||¡ d S )Nz2011-01-06 10:59:05©rï   iža  z2011-01-06 12:43:33i›c  z2011-01-06 12:54:09i /hYl    rT i áõ)ÚPRICEÚVOLUMEr  r   r#   rš   ZColsÚH)r›   Úkeysr   r¨   rF   ÚcrŸ   ))r¨   r  rŽ   )r¨   r  r�   )r¨   r  r�   )r¨   r  r‘   )rF   rŸ   rŽ   )rF   rŸ   r�   )rF   rŸ   r�   )rF   rŸ   r‘   )r   r   ré   rC   rY   ra   r;   r½   ÚconcatÚnamesrA   r•   Ú
MultiIndexÚfrom_tuples)rN   ÚresÚexpr   r   r   Útest_resample_ohlc_dataframe1  s:    ýýúÿÿñ"ýÿr  c                  C   sŠ   t tj dd¡g d¢dd„ tdƒD ƒd�} tj| jdd d …f< | jdd	d
� ¡ }| j	dd„ d	d
� ¡ }dd„ tdƒD ƒ|_
t ||¡ d S )NrU   rh   )éÐ  r  r  r  c                 S   s   g | ]}t d |d dd�‘qS )r  r#   r°   )ÚyearÚmonthr)   ©r   rÉ   r   r   r   rÌ   g  rr   z+test_resample_dup_index.<locals>.<listcomp>r’   r_   ÚQr#   rš   c                 S   s   t | jd d ƒS )Nr#   r_   )Úintr  rp   r   r   r   r\   k  rr   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Ì   l  rr   )r   r   r   rè   rk   rŠ   rÅ   ra   r,   r:   rC   rA   r•   )rN   rM   rc   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sfJ ‚t	|j
jtjƒszJ ‚|j
jt d¡ks�J ‚d S )Nr¿   r#   r7   rÀ   rÞ   r¤   r2   r`   Z8HrÙ   rº   )r   r   r	   r   r   r   r   ra   r,   rý   r!   r)   ÚoffsetsZ
DateOffsetZHour)rD   rE   ÚbsrM   r   r   r   Útest_resample_reresamplep  s    r  c                 C   sþ   | ddƒ}|j ddd� ¡ }|  d¡ ¡ }tdddd	�|_t ||¡ |j d
dd� ¡ }|  d
¡ ¡ }tdddd	�|_t ||¡ |j ddd� ¡ }|  d¡ ¡ }tdddd	�|_t ||¡ |j ddd� ¡ }|  d¡ ¡ }tdddd	�|_t ||¡ d S )Nz1/1/1990rT   úA-DECrÒ   rÓ   Z1990Ú2000za-decr(   zA-JUNza-junr°   z1990-01z2000-01)ra   r,   r   r!   rA   rB   )Úsimple_date_range_seriesrl   rM   rc   r   r   r   Ú!test_resample_timestamp_to_periodz  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\J ‚| |dd… ƒ}|jd |k 	¡ s‚J ‚| |dd … ƒ}|jd |k 	¡ s¨J ‚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>._ohlcrQ   z1/1/2000 5:59:50rÚ   r(   r    rV   r2   r`   z1/1/2000 00:00r   r#   é   r^   z1/1/2000 5:55:01z1/1/2000 6:00:00)
r   r	   r   r   rè   r   ra   r;   rü   r=   )r�   rë   rl   Ú	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^J ‚t |d	 |d
 ¡ t |d
 |d ¡ d S )NrT   ú	2/29/2000r'   r    r°   c                 S   s   | j S r   )r  rp   r   r   r   r\   ­  rr   z,test_downsample_non_unique.<locals>.<lambda>r�   r   r#   )r   r‰   r“   r	   r   r   rè   r   ra   r,   r:   rA   Zassert_almost_equal)rë   Úrng2rl   rM   rc   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��H tjtdd�� | d¡ W d   ƒ n1 sp0    Y  W d   ƒ n1 sŽ0    Y  d S )	NrT   r  r�   r    z/cannot reindex on an axis with duplicate labelsrx   z
non-uniquer¤   )r   r‰   r“   r	   r   r   rè   r   rz   r{   r|   rA   Zassert_produces_warningÚFutureWarningÚasfreq)rë   r  rl   r   r   r   r   Útest_asfreq_non_unique³  s    
r"  c                  C   s^   t ddƒ} ttj dt| ƒ¡| g d¢d�}|jddd� ¡ }|j d¡ ¡ j}t	 
||¡ d S )	NrT   r  r_   ©r¨   rF   r  ©rC   r!   r°   r#   rš   )r   r   r   r   rè   r   ra   r,   rf   rA   r•   )rë   rN   rM   rc   r   r   r   Útest_resample_axis1¿  s
    
 r%  c                  C   s†   t dddd�} ttj t| ƒ¡| d�}tj|d d…< g d¢}|D ]@}|dd … j|ddd	� ¡ }|j|ddd	� ¡ }t	 
||¡ q@d S )
Nz1/1/2000 04:00:00é€Q rE   rg   r    r�   )rã   râ   Z15tZ30tZ4hZ12hr]   r`   ©r   r	   r   r   rè   r   rŠ   ra   r,   rA   rB   )rë   rl   Úfreqsr)   rM   rc   r   r   r   Útest_resample_anchored_ticksÈ  s    r)  c                  C   sô   dd„ } t dddd�}ttj t|ƒ¡|d�}t | d¡ 	¡ | d¡ 
| ¡¡ t dd	dd�}ttj t|ƒ¡|d�}t | d¡ 	¡ | d¡ 
| ¡¡ 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 )Nc                 S   s   |   ¡ S r   )r@   rp   r   r   r   r\   Ú  rr   z,test_resample_single_group.<locals>.<lambda>z2000-1-1z	2000-2-10rÀ   r(   r    r°   z	2000-1-10gš™™™™>@gš™™™™™?@z20070915 15:30:00z20070915 15:40:00g      è?Z20070915c                 S   s
   t  | ¡S r   )r   r˜   rp   r   r   r   r\   ê  rr   )r   r	   r   r   rè   r   rA   rB   ra   r@   r²   r   r   )Zmysumrë   rl   rE   rc   rM   r   r   r   Útest_resample_single_groupÙ  s    ""þr*  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 )NrQ   z1/1/2000 02:00rE   r(   r    rV   Ú2min©Úoffsetú12/31/1999 23:57:00z1/1/2000 01:57©r   r	   r   r   rè   r   ra   r,   rA   Úassert_index_equalr!   )rë   rl   r  Úexp_rngr   r   r   Útest_resample_offsetî  s
    r2  c                  C   sê   t dddd�} ttj t| ƒ¡| d�}t dddd�}|jddd	� ¡ }t 	|j
|¡ td
ƒtdƒ }|jd|d	� ¡ }t 	|j
|¡ |jdddd� ¡ }t 	|j
|¡ |jddd	� ¡ }t 	|j
|¡ |jddd� ¡ }t 	|j
|¡ d S )Nú2000-01-01 00:00:00ú2000-01-01 02:00rE   r(   r    ú1999-12-31 23:57:00ú2000-01-01 01:57rV   ©Úoriginr   r+  ÚepochÚ2m©r8  r-  z1999-12-31 12:02:00z-3mr,  )r   r	   r   r   rè   r   ra   r,   rA   r0  r!   r   r
   )rë   rl   r1  r  Zoffset_timestampr   r   r   Útest_resample_originù  s    r<  r8  Zinvalid_valueZepchZstartdayZstarttz
2000-30-30c                 C   sr   t dddd�}ttj t|ƒ¡|d�}d| › d�}tjt|d�� |j	d	| d
� W d   ƒ n1 sd0    Y  d S )Nr3  r4  rE   r(   r    z|'origin' should be equal to 'epoch', 'start', 'start_day', 'end', 'end_day' or should be a Timestamp convertible type. Got 'ú
' instead.rx   rV   r7  ©
r   r	   r   r   rè   r   rz   r{   r|   ra   )r8  rë   rl   r   r   r   r   Útest_resample_bad_origin  s    þÿr?  r-  Z12dayysc                 C   sr   t dddd�}ttj t|ƒ¡|d�}d| › d�}tjt|d�� |j	d	| d
� W d   ƒ n1 sd0    Y  d S )Nr3  r4  rE   r(   r    z6'offset' should be a Timedelta convertible type. Got 'r=  rx   rV   r,  r>  )r-  rë   rl   r   r   r   r   Útest_resample_bad_offset!  s
    r@  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_dayr7  rA  z2000-10-02 00:21:00r¡   Z23h30minr,  r;  z2000-10-01 23:18:00z2000-10-02 00:26:00r9  z2000-10-01 23:24:00z2000-10-02 00:15:00ú
2000-01-01r/  )r¡   rÂ   rë   rl   r1  r  r   r   r   Útest_resample_origin_prime_freq*  s*    rE  c                  C   sN  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 d   ƒ n1 sØ0    Y  t dddd�}ttj t|ƒ¡|d�}tjt| d��" |jd
dd� ¡  W d   ƒ n1 �s@0    Y  d S )Nz4The origin must have the same timezone as the index.úEurope/Parisr3  r4  rE   ©r)   rï   r    r5  r6  rV   z1999-12-31 23:57:00+00:00r7  z1999-12-31 12:02:00+03:00r9  r:  r;  rx   r.  r(   z12/31/1999 23:57:00+03:00)r   r	   r   r   rè   r   ra   r,   rA   r0  r!   rz   r{   r|   )r   rï   rë   rl   r1  r  r   r   r   Útest_resample_origin_with_tzG  s"    0rH  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+0500rB  r(   r    rÀ   r9  r7  Ú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	   ra   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_24hd  s&    
rK  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Ì   ˆ  rr   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-03r9  r¡   rC  r7  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@ç      @rI  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   ra   r@   rA   rB   )	rN  r¡   rÂ   rë   rl   rc   r8  rM   Zexpected_tsr   rÿ   r   Ú)test_resample_origin_with_day_freq_on_dst€  sD    	rU  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é'  rf   rg   r    r�   rÀ   r]   r`   r'  rê   r   r   r   Útest_resample_daily_anchored·  s    rW  c                  C   sT   t ddƒ} ttj t| ƒ¡| d�}|jddd� ¡ }tdddd	�}t	 
|j|¡ d S )
NrT   z
12/31/2000r    r°   rÒ   rÓ   zJan-2000zDec-2000r(   )r   r	   r   r   rè   r   ra   r,   r   rA   r0  r!   )rë   rl   rM   Z	exp_indexr   r   r   Ú&test_resample_to_period_monthly_bugletÁ  s
    
rX  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¹   r8   r%   rÀ   c                 S   s   |   ¡ S r   ©r,   rp   r   r   r   r\   Ö  rr   z&test_period_with_agg.<locals>.<lambda>)r	   r   r   Úrandintr   Úto_timestampra   r,   Z	to_periodr?   rA   rB   )Ús2rc   rM   r   r   r   Útest_period_with_aggÌ  s    ýr^  c                  C   sª   dt dddddƒddfdt dddddƒddfdt ddddd	ƒddfdt dddddd
ƒddfg} tj| dd� d¡}| d¡ d¡ ¡ }| d¡ dd„ ¡}t 	||¡ d S )Nr#   iÝ  r7   r¼   é   r   r�   é   é   r  )ÚIDr¶   r£   r¤   ©rC   r¶   rb  rV   c                 S   s   |   d¡ ¡ S )NrV   )ra   r@   rp   r   r   r   r\   è  rr   z(test_resample_segfault.<locals>.<lambda>)
r   r   Zfrom_recordsÚ	set_indexr:   ra   r@   r²   rA   r•   )Zall_wins_and_wagersrN   rM   rc   r   r   r   Útest_resample_segfaultÚ  s    üÿþre  c                  C   sz   t tdddd�g d¢tg d¢dd�d	œƒ d
¡} |  d¡ ¡ }|jjtj	ksPJ ‚|  
d¡ d¡ ¡ }|jjtj	ksvJ ‚d S )Nz
2016-01-01rU   ÚWr    )r#   r#   r�   r�   )r'   rR   rj   rº   Úint32r�   )r·   rŒ   Úvalr·   Ú1DrŒ   )r   r   r	   rd  ra   r×   rh  r&   r   rg  r:   ©rN   rM   r   r   r   Ú test_resample_dtype_preservationì  s    ýÿúrk  c                  C   s’   t  d¡ dg d¢i} t| tddƒd�} |  d¡ d¡ ¡ d  d	¡}|  d¡d  ¡  d	¡}t 	||¡ |  d¡ ¡ d  d	¡}t 	||¡ d S )
Nzscipy.interpolater¨   )r#   r_   r#   rU   z
2017-01-01z
2017-01-04r    r8   r  Zcubic)
rz   Zimportorskipr   r   Úastypera   r,   ZinterpolaterA   rB   )rN   rc   rM   r   r   r   Útest_resample_dtype_coercion   s    
rm  c                  C   sR   t dddd�} ttj t| ƒ¡| d�}| d¡ ¡ }| d¡ ¡ }t 	||¡ d S )NrT   r¤   r_  r¹   r    rf  zW-SUN)
r   r	   r   r   rè   r   ra   r,   rA   rB   )rë   rl   r  rc   r   r   r   Útest_weekly_resample_buglet  s
    rn  c                  C   s4   t dddd�} ttj t| ƒ¡| d�}| d¡ d S )Nú4/16/2012 20:00iˆ  r÷   rg   r    r°   )r   r	   r   r   rè   r   ra   ©rÎ   rl   r   r   r   Útest_monthly_resample_error  s    rq  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@r7   Z100nr    r    éd   r,   r%   )r   r½   Úto_datetimer	   rk   r   ra   Útseriesr  ZNanor?   ÚfloatrA   rB   )r¡   Z	exp_startZindxrl   rO   rM   Zexp_indxr
  r   r   r   Útest_nanosecond_resample_error#  s    
rv  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s€J ‚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J ‚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�s8J ‚d S )Nz1/1/2012z4/1/2012Z100minr(   r    r°   rÒ   rÓ   rÂ   )Úhowr#   ÚnsrÀ   Zinferr]   )r4   r  )rÔ   r4   z2012-04-29 23:00z2012-04-30 5:00r÷   )r   r   r  ra   r,   r\  r!   r
   Ú
_with_freqr)   rA   r•   ÚshiftÚ_datar   Z
no_defaultZ_freqr   )r  rë   rN   rM   rc   r
  rl   r  r   r   r   Útest_resample_anchored_intraday3  sB    



r|  c                 C   s.   | ddƒ}g d¢}|D ]}|  |¡ ¡  qd S )NrT   z
12/31/2002)ÚMSZBMSzQS-MARzAS-DECzAS-JUN)ra   r,   )r  rl   r(  r)   r   r   r   Ú!test_resample_anchored_monthstart`  s    
r~  c                  C   sŠ   t dddd�} t dddd�}|  |¡}ttj d¡|d	�}| d¡ ¡ }|jd
 t	dƒks^J ‚|jddd� ¡ }|jd
 t	dƒks†J ‚d S )Nz2014-10-14 23:06:23.206r_   Z400Lrg   z2014-10-15 23:00:00r�   Z2200Lr'   r    r6   z2014-10-15 23:00:02.000r2   )r5   z2014-10-15 23:00:04.200)
r   rû   r	   r   r   rè   ra   r,   r!   r   )Zindex1Úindex2r!   rE   rM   r   r   r   Útest_resample_anchored_multidayi  s    
r€  c                 C   sØ   t dddd�}ttj t|ƒ¡|d�}|jdddd	� ¡ }t d
ddd�}t 	|j
|¡ | dddd�d d… }| d¡ ¡ }t|ƒdksŠJ ‚|dddd�}|jddd� ¡ }t|ƒdksºJ ‚|j
d tddd�ksÔJ ‚d S )NrT   rh   rã   rg   r    râ   r2   r]   r`   z1999-12-31 23:55rU   z2007-01z2010-05r°   r(   r   r  z
2000-04-28z2000-04-30 11:00r÷   rÒ   rÓ   r#   z2000-04)r   r	   r   r   rè   r   ra   r,   rA   r0  r!   r   )Zsimple_period_range_seriesr  rë   rl   rM   Zex_indexZlen0ptsr   r   r   Útest_corner_cases  s    r�  c                  C   s8   t dddd�} ttj t| ƒ¡| d�}| d¡ ¡  d S )Nro  iPÃ  rE   rg   r    rŸ   )r   r	   r   r   rè   r   ra   r,   rp  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	ƒsHJ ‚d S )	Nú
2012-06-12rU   r÷   rg   r    Z20minr,   r@   )
r   r	   r   r   rè   r   ra   Ú	aggregaterý   r   )rë   rl   rM   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÷   rg   r    rÀ   )r   r	   r   r   rè   r   ZtakeZpermutationra   r@   Z
sort_indexrA   rB   )rë   rl   rM   r
  r   r   r   Útest_resample_not_monotonic¦  s    r‡  c                  C   s    dD ]–} t ddgtddddddƒtddddddƒg| d�}| d¡ d	d
„ ¡}| d¡}| dkrj| d¡}t ||¡ | d¡ ¡ }| d¡}t ||¡ qd S )N)r$   rg  r8   Úfloat32r#   r�   éÜ  r   r'   r%   rf   c                 S   s   |   ¡ S r   rZ  rp   r   r   r   r\   º  rr   z/test_resample_median_bug_1688.<locals>.<lambda>rˆ  r8   )	r   r   ra   r²   r!  rl  rA   r•   Zmedian)r&   rN   rM   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 )NrT   z4/1/2000r°   c                 S   s   |   ¡ S r   rZ  rp   r   r   r   r\   Ê  rr   z+test_how_lambda_functions.<locals>.<lambda>ÚfooÚbarc                 S   s   |   ¡ S r   rZ  rp   r   r   r   r\   Ó  rr   c                 S   s   | j dd�S ©Nr#   )Zddof©r˜   rp   r   r   r   r\   Ó  rr   c                 S   s   |   ¡ S r   rZ  rp   r   r   r   r\   Û  rr   c                 S   s   | j dd�S r�  rŽ  rp   r   r   r   r\   Û  rr   )r‹  rŒ  F)Zcheck_names)	ra   r²   r,   rA   rB   rY   r˜   rC   r„  )r  rl   rM   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Ï  r_   r#   r'   r‰  rj   r  rU   Z30minr(   r‘   r    ZAS)r   r   r   ra   r@   )r¡   rÂ   Zbad_indrN   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-02rU   rú   rg   g      @r    r�   r   r6   Z10Tr(   Úbfill)r!   rç   )r!   rç   rå   ræ   Z10Minrä   )r   r	   r   r±   rÜ   ré   Zreindex_likera   r‘  rA   rB   )Zi30rE   Zi10Zs10Zs10_2ZrlZr10_2Zr10r   r   r   Útest_resample_consistencyí  s    
r’  c               	   C   sä  t dddƒt dddƒt dddƒt dddƒt dddƒt dd	d
ƒg} | d d… tjg | dd…  tjg | dd …  }tjg|  tjg }| ||fD �]J}t|t t|ƒ¡dœƒ}| d¡ d¡ 	¡ }t
g d¢ddd�}tdg d¢i|d�}|d  ¡  ¡ �r
|j d ¡|_t ||¡ | tddd�¡ 	¡ }t ||¡ t|t t|ƒ¡t t|ƒ¡dœƒ}| d¡ d¡ 	¡ }tg d¢g d¢dœ|ddgd�}|d  ¡  ¡ �r°|j d ¡|_t ||¡ | tddd�¡ 	¡ }t ||¡ q’d S )NéÞ  r7   r#   re   r_   rS   r'   rº   rj   ra  r�   rU   r¢   r£   r°   )z
2014-07-31z
2014-08-31z
2014-09-30z
2014-10-31z
2014-11-30)r)   rY   r¤   )r#   r   r�   r�   r#   r    )r)   Úkey)r£   r¤   ÚC)r¤   r•  r•  r’   )r   r½   ÚNaTr   r   r±   r   rd  ra   rÍ   r   r   Úanyr!   ry  rA   r•   r:   r   )Zdates1Zdates2Zdates3rÎ   rN   rM   Zexp_idxrc   r   r   r   Útest_resample_timegrouper  sJ    





ú	4ýÿý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srJ ‚||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)rb  ZDATErÀ   r(   c                 S   s   |   ¡ S r   )Únuniquerp   r   r   r   r\   E  rr   z'test_resample_nunique.<locals>.<lambda>rb  )r   r   ra   r:   r   rb  r²   rY   r™  rA   rB   )rN   rO   rG   rc   rã   rM   r   r   r   Útest_resample_nunique4  s(    þþûÿ

rš  c                  C   sT   t jdd� ¡ } tjj| j ¡ gd ddgd�| _|  d¡ 	¡ }t  
| j|j¡ d S )Nri  r(   r�   Zlev0Zlev1)r  rP  )rA   rÕ   Úabsr½   r  Zfrom_arraysrC   r”   ra   r™  r0  rj  r   r   r   Ú2test_resample_nunique_preserves_column_level_namesS  s    ÿrœ  c                  C   s¨   t dddd�} t dddd�}|  |¡}ttt|ƒƒ|dd�}| d	¡}| ¡ | ¡ | tj¡| d
¡g}t	 
|d |d ¡ t	 
|d |d ¡ t	 
|d |d ¡ d S )Nrõ   rö   r÷   r(   rø   rù   r$   r%   r°   r™  r   r#   r�   r_   )r   r>   r	   rk   r   ra   rÍ   r™  r?   rA   rB   )r!   r  Zindex3rE   rO   Úresultsr   r   r   Ú#test_resample_nunique_with_date_gap]  s    

"rž  ÚnrV  i † Úk)r7   rr  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-27r7   rf   r    r   r$   r    rú   rÞ   r2   ©ZsideTr#   r6   ©Z	minlengthF©Úcopy)r   r   ZRandomStater   r	   r[  rl  Úchoicera   r™  r!   r.   r/   r“   ÚsearchsortedZlexsortZr_Úbincountr   rA   rB   )rŸ  r   ZprngÚdrrl   r]   ÚixÚvalsÚbinsZsorterÚmaskrJ   r2   r   r   r   Útest_resample_group_infom  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 )NrV  z
2015-09-19rf   rg   r    Z7TrÞ   r2   r¡  r#   r¢  r$   Fr£  )r   r	   r   r   rè   r¥  ra   Úsizer!   r.   r/   r¦  r“   r§  r   rl  rA   rB   )rŸ  r¨  rl   r]   r©  r«  rh  r2   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Xrl   rc  rE   )ÚunitÚUTCzEurope/Madridi 8XiFXr  r(   r'   r    ©rí   )r   r   r½   rs  rl   ÚdtrJ  Ú
tz_convertra   r@   rA   r•   )Zdf1Zdti1Zdf2Zdti2rN   rM   rc   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ÿ   rL  r#   r�   r    Z1dr(   z
2016-11-02z
2016-11-24rŸ   rG  rÈ   ri   rQ  )r   r´  r   r:   r   rs   r   r   rŠ   rA   r•   )r!   rN   rM   Zexpected_index_valuesrc   r   r   r   Ú!test_groupby_with_dst_time_change¹  s    ÿþÿ r¶  c                  C   sj  t tddddƒgdd�} tdg| d�}t |j ¡ d	d
�} tdg| d�}t |jd	d� ¡ |¡ |jdd� ¡  t |jdd� ¡ tdgt tdddƒgddd�d�¡ t	ddddd�} t
| jƒ}t|||dœ| dd�}ddddœ}t | d¡ |¡g d¢ tg d¢g d¢g d¢dœt	ddddd�d�d ¡ t | d!¡ |¡g d¢ tg d"¢g d#¢g d$¢dœt	dd%d!dd�d�d&¡ t | d¡ |¡g d¢ tg d'¢g d(¢g d)¢dœt	d*d+ddd�d�d,¡ t | d-¡ |¡g d¢ td.d/gd0d1gd/d2gdœt	d*d+d-dd�d�d3¡ |d4d5… }t | d	¡ ddddœ¡g d¢ tg d6¢g d7¢g d8¢dœt	d4d5d	dd�d�d9¡ d S ):Nr‰  rS   rU   é   z
US/Easternrÿ   r'   r    rÀ   r(   r²  r}  r#   ©rï   r)   z
2013-09-30rO  Z30MinrF  rG  r#  r$   r%   r.   r/   rÍ   rÃ   )r   é0   i€  éÐ  i   ér  )é/   i  éÏ  i  éq  é2  )r¹  éP  rÀ  rÀ  iR  éÁ   z	9/30/2013z	11/4/2013zW-MON Frequencyz2W-MON)r   r¹  rº  r»  )r¼  r½  r¾  r¿  )r¹  i   i¢  rÁ  z
11/11/2013z2W-MON Frequency)r   r¹  é  )r¼  é  r¿  )r¹  iÒ  é1   z9/1/2013z	11/1/2013zMS FrequencyZ2MSr   rÂ  rÃ  r¿  rÄ  z2MS Frequencyz
10/26/2013z
10/29/2013)ià  i  iB  r»  )i  iA  r¾  i¡  )r¹  rY  r¹  r¹  zD Frequency)r   r   r   r!   Ú	normalizerA   r•   ra   r@   r   rk   r®  r?   )rD   rN   rc   r“   rw  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“  r7   é   rU   rS  rg   r'   r    r  ç      @r_   rj   )ÚpytzÚtimezoner   r   Zlocalizer	   ra   r,   r   rŠ   rA   rB   )rï   r³  rÎ   rM   rc   r   r   r   Útest_downsample_across_dst  s    
þrË  c                  C   sª   t tg d¢dd�g d¢d�} |  d¡ ¡ }t ddgtd	d
gddd�d�}t ||¡ tddddd�}t|tj	d�}| d¡ 
¡ }ttddddd�tj	d�}t ||¡ d S )N)z
2017-03-25ú
2017-03-26z
2017-03-27z
2017-03-28z
2017-03-29úEurope/Amsterdamrÿ   )rS   rh   r»   é   ra  )r!   r³   Z1Wr·  é*   rÌ  z
2017-04-02rf  r¸  r    z
2013-04-01z
2013-05-01zEurope/Londonr  r%   z
2013-04-07r'   )r)   rX   rï   )r   r   ra   r@   rA   r•   r   r	   r   r8   r,   rB   )rN   rM   rc   rK   rE   r   r   r   Ú!test_downsample_across_dst_weekly,  s.    þû
ÿþþrÐ  c                  C   s¬   t ddddƒ} t ddddƒ}t| |dd�}| d¡ d	¡}ttt|ƒƒƒ}t||d
�}| t	dd�¡ 
¡ }tddd�jd	dd�}t|dd�}tg d¢|d
�}t ||¡ d S )Niâ  rS   r_   rh   r'   rT  r(   r±  zAmerica/Havanar    ri  z
2018-11-03©rX   T)rM  rÀ   )g      @g      <@g     @F@)r   r   rJ  r´  Úlistrk   r   r   r:   r   r,   r   rA   r•   )r¡   rÂ   r!   r³   Z	dataframerM   rD   rc   r   r   r   Útest_downsample_dst_at_midnightH  s    ÿrÓ  c                  C   sÒ   t tjdtjddgƒ} tg d¢| d�}t g d¢ƒ}tg d¢|d�}t | d¡ ¡ |¡ t ddgƒ}td	d
g|d�}t | d¡ ¡ |¡ t dgƒ}tdg|d�}t | d¡ ¡ |¡ t | d¡ ¡ |¡ d S )Nú1970-01-01 00:00:00ú1970-01-01 00:00:01ú1970-01-01 00:00:02)r�   r_   r'   rj   rS   r    )rÔ  rÕ  rÖ  )rR  ç      @ç      &@Z1srÈ  rØ  r™   r×  Z3sZ60s)r   r½   r–  r   rA   r•   ra   r,   )r!   ÚframeZindex_1sZframe_1sZindex_2sZframe_2sZindex_3sZframe_3sr   r   r   Útest_resample_with_natZ  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#   ra  é   r¶   r    z
2016-01-15r_   Z2Drg   )r!   rY   )
r   r   r	   r½   r–  r   ra   ÚfirstrA   rB   )rÎ   rN   r
  r	  r   r   r   Útest_resample_datetime_valuesx  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   rI   Ž  s    z3test_resample_apply_with_additional_args.<locals>.fr7   rÀ   )rÞ  r#   r�   r¢   Z2017rÑ  r    r£   )ra   r²   r,   ÚmultiplyrA   rB   r   r   r:   r?   rl  ru  r•   )rb   rI   Ú
multiplierrM   rc   rN   r   r   r   Ú(test_resample_apply_with_additional_argsŒ  s    rá  )r#   r�   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À   )rh   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   rk   r   ra   r¦   r,   rA   rB   )
Zn1Zfreq1Zn2Zfreq2r   Zn1_Zn2_rE   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sfJ ‚d S r   )	r   r\  r)   r   r½   rt  ZfrequenciesZ	to_offsetr   )rÜ  rs   r)   Z	exp_firstÚexp_lastrM   rc   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g d¢dd�|jd�}t ||¡ d S )Nz
2012-01-31r°   rh   ©r¡   r)   rX   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	   rk   r   rC   ra   r²   r   Úproductr9   r$   r   rA   r•   )rò  r!   rl   rN   rM   rc   r   r   r   Útest_resample_apply_productØ  s    
&ÿûr÷  z$first,last,freq_in,freq_out,exp_last))ú
2020-03-28ú
2020-03-31rÀ   rI  z2020-03-30 01:00)rø  ú
2020-10-27rÀ   rI  ú2020-10-27 00:00)ú
2020-10-25rú  rÀ   rI  z2020-10-26 23:00)rø  rù  rI  rÀ   z2020-03-30 00:00)rø  rú  rI  rÀ   rû  )rü  rú  rI  rÀ   z2020-10-26 00:00)rÜ  rs   Úfreq_inÚfreq_outrð  c                 C   sJ   t dt| ||dd�ƒ}| |¡ ¡ }t dt| ||dd�ƒ}t ||¡ d S )NrÈ   rÍ  rG  )r	   r   ra   r×   rA   rB   )rÜ  rs   rý  rþ  rð  rl   rM   rc   r   r   r   Ú#test_resample_calendar_day_with_dstí  s    'ÿrÿ  )r.   r/   rÜ  rs   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°   r_   ró  r#   r  r�   )Z	min_countrù  zdatetime64[ns]rõ  )r&   r)   r    )	r   r	   r   rŠ   r„   ra   r   rA   rB   )r—   r!   ZserrM   rc   r   r   r   Ú+test_resample_aggregate_functions_min_count  s    þr   c                 C   sÌ   t tdddd�dgg d¢d | d�}|j|jd	k |jd
kB d d …f }| dkrŒtjtdd�� | d¡ ¡ }W d   ƒ qÈ1 s€0    Y  n<| d¡ ¡ }t dt	j
dgdgtdddd�d�}t ||¡ d S )NrD  z2000-01-03 23Z12HrÞ   rq   )r   r#   r   r�   )r!   rC   r³   r&   z
2000-01-02z
2000-01-03Zuint64zempty group with uint64_trx   rÀ   r#   r   r$  )r   r   rü   r!   rz   r{   ÚRuntimeErrorra   r/   r   rŠ   rA   r•   )Zany_unsigned_int_numpy_dtyperN   rM   rc   r   r   r   Útest_resample_unsigned_int)  s"    
ü".
ýr  )}r   Ú	functoolsr   Úior   Únumpyr   rz   rÉ  Zpandas._libsr   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.offsetsrt  r  r   Zfixturer   r   r"   rP   ÚmarkZparametrizerd   rm   ru   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*  r2  r<  Úobjectr?  r@  rE  rH  rK  rU  rW  rX  r^  re  rk  rm  rn  rq  rv  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÷  r¦   rÿ  r   r  r   r   r   r   Ú<module>   s8   


+þþþøþþþþ
þ

>:	
/
	ÿ

7

-	
/
 Uþþ

þ$
ÿ
