o
    Û­jú! ã                   @   sà  U d dl m Z  d dlmZ d dlZd dlZd dlZd dlmZ d dl	m
Z
 d dlmZ d dlm  mZ d dlZd dlmZmZmZmZmZmZmZ d dlmZ d dlmZ d d	lm Z  d d
l!m"Z"m#Z# d dl$m%Z%m&Z& d dl'm(Z( d dl)m*Z* e +¡ dd„ ƒZ,ej+dd„ ƒZ-ej+dd„ ƒZ.ej+g d¢d�dd„ ƒZ/ej+dd„ ƒZ0dd„ Z1dd„ Z2ej3 4ddg¡ej3 4d d!d"d#„ fd$d%d#„ fg¡d&d'„ ƒƒZ5d(d)„ Z6d*d+„ Z7ej3 4ddg¡ej3 4d,g d-¢¡d.d/„ ƒƒZ8ej3 4ddg¡d0d1„ ƒZ9ej3 4ddg¡d2d3„ ƒZ:d4d5„ Z;d6d7„ Z<d8d9„ Z=d:d;„ Z>ej3 4d<g d=¢¡d>d?„ ƒZ?ej3 4d@dAdBg¡dCdD„ ƒZ@ej3 4d@dEdBg¡dFdG„ ƒZAdHdI„ ZBdJdK„ ZCdLdM„ ZDdNdO„ ZEej3 4d@g dP¢¡ej3 4dQg dR¢¡dSdT„ ƒƒZFdUdV„ ZGdWdX„ ZHdYdZ„ ZId[d\„ ZJd]d^„ ZKd_d`„ ZLej3 4dadbdcdddedfœgdgdcdddhdfœgdBdidjdkdfœgg¡dldm„ ƒZMdndo„ ZNdpdq„ ZOdrds„ ZPdtdu„ ZQej3 4d@g dv¢¡dwdx„ ƒZRej3 4dydzd{g¡d|d}„ ƒZSd~d„ ZTd€d�„ ZUej3 4d‚dƒd„idƒed…ƒid†d‡dˆœdƒd‰idŠd‹ig¡dŒd�„ ƒZVej3 4dƒdŽd�d�d‘d’eWƒ g¡d“d”„ ƒZXej3 4dŠdŽd•d’eWƒ g¡d–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·„ Ziej3 4d@g d¸¢¡d¹dº„ ƒZjej3 4d»dd¼gd!d½gg¡d¾d¿„ ƒZkdÀdÁ„ ZldÂdÃ„ ZmdÄdÅ„ ZndÆdÇ„ ZodÈdÉ„ Zpej3 4dÊdËdÌdÍejqdÎej3jrdÏdÐ�dÑ�g¡dÒdÓ„ ƒZsdÔdÕ„ ZtdÖd×„ ZudØdÙ„ Zve dÚdÛdzƒe dÚdÜdÝƒe dÚdÞdßƒe dÚdÜdßƒe dÚdÛdàƒe dÚdádâƒgZwexe
 eydã< ewdd{… ejzg ewd{dä…  ejzg ewdäd…  Z{exe
 eydå< ejzgew ejzg Z|ej3 4dæewe{e|g¡dçdè„ ƒZ}ej3 4dæewe{e|g¡dédê„ ƒZ~dëdì„ Zdídî„ Z€ej3j4dïdðd#„ dñd#„ dòd#„ gg dó¢dô�dõdö„ ƒZ�ej3 4d÷dødùg¡ej3 4dúg dû¢¡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„ Z��d�d„ ZŽ�d�d„ Z�ej3 4dúg �d¢¡ej3 4�dg �d¢¡�d�d„ ƒƒZ�ej3 4�dg �d¢¡�d�d „ ƒZ‘ej3 4�d!�d"�d#g¡�d$�d%„ ƒZ’ej3 4�d&g �d'¢¡�d(e“�d)e“�d*e“�d+e“�d,e“f
�d-�d.„ƒZ”ej3 4dïg �d/¢¡�d0�d1„ ƒZ•�d2�d3„ Z–�d4�d5„ Z—�d6�d7„ Z˜ej3 4�d8g �d9¢¡�d:�d;„ ƒZ™ej3 4�d8g �d<¢¡�d=�d>„ ƒZš�d?�d@„ Z›ej3 4d@�dA�dBg¡d@e“f�dC�dD„ƒZœ�dE�dF„ Z�e ž�dG¡ej3 4�dHdejq�dIej3jreƒ �dJ�dK�dÑ�g¡�dL�dM„ ƒƒZŸdS (N  é    ©Údatetime)ÚpartialN)Úlib)ÚDatetimeNaTType)Úis_platform_windows)Ú	DataFrameÚIndexÚSeriesÚ	TimedeltaÚ	TimestampÚisnaÚnotna)ÚGrouper©Ú
date_range)ÚPeriodÚperiod_range)ÚDatetimeIndexÚ_get_timestamp_range_edges)Úoffsets)ÚMinutec                   C   s   t S ©Nr   © r   r   úf/var/www/html/CropPilot/venv/lib/python3.10/site-packages/pandas/tests/resample/test_datetime_index.pyÚ_index_factory'   ó   r   c                   C   s   dS )NÚMinr   r   r   r   r   Ú_index_freq,   r   r   c                 C   s   t j d¡ t| ƒ¡S )Né   )ÚnpÚrandomÚdefault_rngÚlen©Úindexr   r   r   Ú_static_values1   s   r&   )ÚsÚmsÚusÚns)Úparamsc                 C   ó   | j S r   )Úparam)Úrequestr   r   r   Úunit6   s   r/   c                  C   s   ddd„} | S )zI
    Series with date range index and random data for test purposes.
    ÚDc                 S   s,   t | ||d�}ttj d¡ t|ƒ¡|d�S )N©Úfreqr   r$   )r   r
   r    r!   r"   Ústandard_normalr#   )ÚstartÚendr2   Úrngr   r   r   Ú_simple_date_range_seriesA   s   z;simple_date_range_series.<locals>._simple_date_range_seriesN©r0   r   )r7   r   r   r   Úsimple_date_range_series;   s   
r9   c                 C   s:  |   |¡}tt dgt|ƒ ¡|dd�}ttdƒd�}| |¡}| ¡  g d¢}|D ]
}|j	|d dd� q*ttdƒd	d	d
�}| |¡}| ¡  g d¢}|D ]
}|j	|d dd� qM|j
dks_J ‚t| ¡ ƒ ¡ siJ ‚dgdgd  }|ddd… }	|	 |dd … ¡}	t|	dd�  |¡}	t||	d�}
| d¡}t ||
¡ d S )Né   Úint64©r%   Údtypeé   r1   ©ÚsumÚmeanÚprodÚminÚmaxÚvarT©ÚaltÚnumeric_onlyÚright©r2   ÚclosedÚlabelé!
  i 
  r   éÿÿÿÿÚ5minr$   r@   )Úas_unitr
   r    Úarrayr#   r   r   ÚgroupbyÚohlcÚ_cython_agg_generalÚngroupsr   rA   ÚallÚappendr   ÚaggÚtmÚassert_series_equal)r%   r/   Údtir'   ÚbÚgÚfuncsÚfÚarrÚidxÚexpectÚresultr   r   r   Útest_custom_grouperH   s.   



rd   c                 C   sx   t tdƒddd�}|  |¡}ttj d¡ t|ƒdf¡|dd�}| |¡ 	d¡}t|j
ƒdks1J ‚t|jƒd	ks:J ‚d S )
Nr>   rI   rJ   r   é
   Úfloat64r<   r@   rM   )r   r   rP   r   r    r!   r"   r#   rR   rX   Úcolumnsr%   )r%   r/   r\   r[   ÚdfÚrr   r   r   Útest_custom_grouper_dfl   s   
ÿrj   z#_index_start,_index_end,_index_name)ú1/1/2000 00:00:00z1/1/2000 00:13:00r%   zclosed, expectedrI   c                 C   sJ   t | jd | dd…  ¡ | dd…  ¡ | dd …  ¡ gtddddd	�d
�S )Nr   r:   é   é   ú1/1/2000é   rO   r%   ©Úperiodsr2   Únamer$   )r
   ÚilocrA   r   ©r'   r   r   r   Ú<lambda>�   s    4þru   Úleftc                 C   sB   t | d d…  ¡ | dd…  ¡ | dd …  ¡ gtddddd�d�S )	Nr>   re   ú1/1/2000 00:05é   rO   r%   rp   r$   )r
   rA   r   rt   r   r   r   ru   ˆ   s    ,ÿþc                 C   sL   | }|j  |¡|_ ||ƒ}|j  |¡|_ |jd|dd� ¡ }t ||¡ d S )NrO   rI   ©rK   rL   )r%   rP   ÚresamplerA   rY   rZ   )ÚseriesrK   Úexpectedr/   r'   rc   r   r   r   Útest_resample_basicx   s   r}   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é	   rn   rC   ©rq   r2   ÚInt64r<   Ú3min)rx   é   é   rx   )r:   ro   é   ÚFloat64)	r
   Úranger   rP   rz   r@   rY   rZ   rA   )r/   Útsrc   r|   r   r   r   Útest_resample_integerarrayš   s&   ýýýrˆ   c                 C   sV   | }|j  |¡|_ | d¡ ¡ }ttdƒddd�}| |¡ dd„ ¡}t 	||¡ d S )NÚ5Minr>   rv   rJ   c                 S   ó
   | j d S ©NrN   ©rs   ©Úxr   r   r   ru   ·   ó   
 z-test_resample_basic_grouper.<locals>.<lambda>)
r%   rP   rz   Úlastr   r   rR   rX   rY   rZ   )r{   r/   r'   rc   Úgrouperr|   r   r   r   Útest_resample_basic_grouper²   s   r’   zkeyword,value))rL   Úrighttt)rK   r“   )Ú
conventionÚstartttc                 C   sh   | j  |¡| _ d|› d|› d�}tjt|d�� | jdi ||i¤Ž W d   ƒ d S 1 s-w   Y  d S )NzUnsupported value z for `ú`©ÚmatchrO   ©rO   )r%   rP   ÚpytestÚraisesÚ
ValueErrorrz   )r{   Ú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 )NrS   z!covered by test_resample_how_ohlcr   r:   rl   r   rm   rx   rn   ro   rO   r%   rp   rI   ry   )rš   Úskipr%   rP   r    Ú	ones_likerR   rX   r   Úgetattrrz   rY   rZ   )r{   Údownsample_methodr/   r'   Ú	grouplistr|   rc   r   r   r   Útest_resample_howÌ   s&   

ÿþÿr¦   c                 C   sª   | }|j  |¡|_ t |¡}d|d< d|dd…< d|dd…< d|dd …< dd„ }t| |¡ |¡j ¡ t	d	d
ddd� |¡g d¢d�}|j
dddd� ¡ }t ||¡ d S )Nr   r:   rl   r   rm   rx   c                 S   ó:   t | ƒ ¡ rt tjd¡S | jd |  ¡ |  ¡ | jd gS ©Nro   r   rN   ©r   rV   r    ÚrepeatÚnanrs   rD   rC   ©Úgroupr   r   r   Ú_ohlcó   ó    z%test_resample_how_ohlc.<locals>._ohlcrn   ro   rO   r%   rp   )ÚopenÚhighÚlowÚclose©r%   rg   rI   ry   )r%   rP   r    r¢   r   rR   rX   ÚvaluesÚtolistr   rz   rS   rY   Úassert_frame_equal)r{   r/   r'   r¥   r®   r|   rc   r   r   r   Útest_resample_how_ohlcæ   s"   
ÿûr¸   c                 C   sè   t jdt jd�}tdt|ƒdd� | ¡}t||dœ|d�}dd	d
„}G dd„ dƒ}| d¡ |¡}| d¡ dd„ ¡}| d¡ t	|ƒ¡}| d¡ t	|dd�¡}	| d¡ |ƒ ¡}
t
 ||¡ t
 ||¡ t
 ||	¡ t
 ||
¡ d S )Nr>   ©r=   ú
2014-01-01Úd©r4   rq   r2   ©ÚAÚBr$   r:   c                 S   ó   t t| ƒƒS r   ©ÚstrÚtype)rŽ   Úar   r   r   Úfn
  ó   z'test_resample_how_callables.<locals>.fnc                   @   s   e Zd Zdd„ ZdS )z,test_resample_how_callables.<locals>.FnClassc                 S   s   t t|ƒƒS r   rÁ   )ÚselfrŽ   r   r   r   Ú__call__  rÆ   z5test_resample_how_callables.<locals>.FnClass.__call__N)Ú__name__Ú
__module__Ú__qualname__rÈ   r   r   r   r   ÚFnClass  s    rÌ   ÚMEc                 S   rÀ   r   rÁ   r�   r   r   r   ru     ó    z-test_resample_how_callables.<locals>.<lambda>r   )rÄ   )r:   )r    Úaranger;   r   r#   rP   r   rz   Úapplyr   rY   r·   )r/   ÚdataÚindrh   rÅ   rÌ   Údf_standardÚ	df_lambdaÚ
df_partialÚdf_partial2Údf_classr   r   r   Útest_resample_how_callables  s   
rØ   c                 C   sl  g d¢}t ddgd it |¡d�}|j | ¡|_| d¡ ¡ }t dg d¢itddd	d
� | ¡d�}t 	||¡ | d¡ ¡ }t dg d¢itddd	d
� | ¡d�}t 	||¡ | d¡ ¡ }t dddgitdddd
� | ¡d�}t 	||¡ | d¡ ¡ }t dddgitdddd
� | ¡d�}t 	||¡ | d¡ ¡ }t dddgitdddd
� | ¡d�}t 	||¡ d S )N)z2014-11-08 00:00:01ú2014-11-08 00:00:02rÙ   z2014-11-08 00:00:03ú2014-11-08 00:00:07rÚ   ú2014-11-08 00:00:08rÛ   rÛ   z2014-11-08 00:00:09z2014-11-08 00:00:10ú2014-11-08 00:00:11rÜ   z2014-11-08 00:00:13z2014-11-08 00:00:14z2014-11-08 00:00:15z2014-11-08 00:00:17z2014-11-08 00:00:20z2014-11-08 00:00:21rž   r:   é   r$   Ú6s)ro   r~   ro   r   z
2014-11-08ro   ©r2   rq   Ú7s)ro   re   ro   r:   Ú11srm   é   r   Ú13sé   rl   Ú17sé   rx   )
r   ÚpdÚto_datetimer%   rP   rz   r@   r   rY   r·   )r/   r‡   rh   rc   r|   r   r   r   Útest_resample_rounding  sB   
þ
þ
þ
þ
þré   c                 C   sN  t tdddƒtdddƒddd� | ¡}ttj d¡ t|ƒ¡|ƒ}| d¡ 	¡ }t|ƒd	ks0J ‚|j
jg d
¢k ¡ s<J ‚|jd |d ksGJ ‚|jd |d ksRJ ‚|jd |jd ks^J ‚| d¡ 	¡ }t|ƒdksmJ ‚|j
jddgk ¡ syJ ‚|jd |d k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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�s&J ‚| d¡ 	¡ }t|ƒdk�s6J ‚|j
jddgk ¡ �sCJ ‚|jd |d k�sOJ ‚|jd |d k�s[J ‚| d¡ 	¡ }t|ƒdk�skJ ‚|j
jg d¢k ¡ �sxJ ‚|jd |d k�s„J ‚|jd |d k�s�J ‚|jd |d k�sœJ ‚|j
jdk�s¥J ‚d S )NéÕ  r:   re   r0   r%   ©r4   r5   r2   rr   r   zw-sunrx   )rl   rl   rl   r   z1/2/2005z1/9/2005rN   úW-MONz1/3/2005z	1/10/2005zW-TUEz1/4/2005úW-WEDz1/5/2005zW-THUz1/6/2005zW-FRIro   z1/7/2005r¿   r„   )ro   r   r:   r   rx   ro   r   r>   )r   r   rP   r
   r    r!   r"   r#   rz   r�   r%   Ú	dayofweekrV   rs   rr   ©r/   r[   r'   rc   r   r   r   Útest_resample_basic_from_daily]  sX   ÿþrð   c                 C   sö   t dddd� | ¡}td|d�}| d¡ ¡ }|jd |d ks"J ‚tt dd	¡d
d„ tdd	ƒD ƒd�}|j | ¡|_tt dd	¡t dddd� | ¡d�}| d¡ 	¡ }t
 |td|jd�¡ | d¡ ¡ }| d¡ ¡ }t
 ||¡ t
 ||¡ d S )Nz01-Jan-2014z05-Jan-2014r0   r1   r:   r$   r   ç      ð?rl   c                 S   s   g | ]
}t d d|ddƒ‘qS )i·  r:   r‚   r   r   ©Ú.0Úir   r   r   Ú
<listcomp>¤  s    zCtest_resample_upsampling_picked_but_not_correct.<locals>.<listcomp>Ú19750101r>   r   )r   rP   r
   rz   rA   r%   r    rÏ   r†   ÚcountrY   rZ   r@   )r/   Údatesr{   rc   r'   r|   Úresult1Úresult2r   r   r   Ú/test_resample_upsampling_picked_but_not_correct—  s$   ÿ
þrû   r_   r?   c                 C   sh   t tj d¡ d¡ttdƒtd�tdddd�d	�}|j	 
|¡|_	td
d�}| |¡}|j| d dd� d S )Nr   ©é2   ro   ÚABCDr¹   ú
2000-01-01rý   r¿   r   ©rg   r%   rÍ   r1   TrF   )r   r    r!   r"   r3   r	   ÚlistÚobjectr   r%   rP   r   rR   rT   )r_   r/   rh   r\   r]   r   r   r   Ú"test_resample_frame_basic_cy_funcsµ  s   ý

r  r2   ÚYErÍ   c                 C   sp   t tj d¡ d¡ttdƒtd�tdddd�d	�}|j	 
|¡|_	| | ¡ ¡ }t |d
 |d
  | ¡ ¡ ¡ d S )Nr   rü   rþ   r¹   rÿ   rý   r¿   r   r   r¾   )r   r    r!   r"   r3   r	   r  r  r   r%   rP   rz   rA   rY   rZ   )r2   r/   rh   rc   r   r   r   Útest_resample_frame_basic_M_AÅ  s   ý"r  rí   c                 C   sŠ   t tj d¡ d¡ttdƒtd�tdddd�d	�}|j	 
|¡|_	d
}tjt|d�� |j| dd� ¡  W d   ƒ d S 1 s>w   Y  d S )Nr   )re   ro   rþ   r¹   rÿ   re   r¿   r   r   ú6The 'kind' keyword in DataFrame.resample is deprecatedr—   Úperiod©Úkind)r   r    r!   r"   r3   r	   r  r  r   r%   rP   rY   Úassert_produces_warningÚFutureWarningrz   rA   )r2   r/   rh   rŸ   r   r   r   Útest_resample_frame_basic_kindÑ  s   ý"ÿr  c                 C   s¤   t tdddƒtdddƒddd� | ¡}ttj d¡ t|ƒ¡|ƒ}| d¡ 	¡ }t|ƒd	ks0J ‚|j
d
 |j
d
 ks<J ‚|j
d |j
d ksHJ ‚|jjdksPJ ‚d S )Nrê   r:   re   r0   r%   rë   r   r   i¡2  r   rN   )r   r   rP   r
   r    r!   r"   r#   rz   Úffillrs   r%   rr   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 )Nrm   é   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Ú10sr1   )r
   r   r%   rP   r    r«   r   rY   rZ   rz   rA   )r/   r'   r|   r   r   r   Útest_resample_how_methodï  s.   þþù	öþr  c                 C   s~   t dddd� | ¡}tdtg d¢|d�iƒ}t dddd� | ¡}tdttt|ƒƒ|d�id	d
�}| d¡ ¡ }t 	||¡ d S )NÚ20150101Ú20150331ÚBME©r4   r5   r2   r¾   )rƒ   é)   é?   r$   r¿   r;   r¹   )
r   rP   r   r
   r†   r#   rz   r�   rY   r·   )r/   r%   r|   rh   rc   r   r   r   Útest_resample_extra_index_point  s    r  c                 C   sd   t dddd� | ¡}ttj d¡ t|ƒ¡|ƒ}| d¡j	dd�}|j
|jddd	�}t ||¡ d S )
Nrn   rx   rO   r   r   rC   ©Úlimitr  ©Úmethodr  )r   rP   r
   r    r!   r"   r3   r#   rz   r  Úreindexr%   rY   rZ   ©r/   r6   r‡   rc   r|   r   r   r   Útest_upsample_with_limit  s
   r  )Ú1DÚ10hr‰   r  Úrule)r  Ú3MEÚ15DÚ30hÚ15MinÚ30sc                 C   sf   t dd|| d� |¡}ttj d¡ t|ƒ¡|ƒ}| |¡j	dd�}|j
|jddd�}t ||¡ d S )Nrn   rx   )rq   r2   Útzr   r  Únearestr  )r   rP   r
   r    r!   r"   r3   r#   rz   r)  r  r%   rY   rZ   )Útz_aware_fixturer2   r"  r/   r6   r‡   rc   r|   r   r   r   Ú test_nearest_upsample_with_limit   s   ÿr+  c                 C   sH  | }|j  |¡|_ ttdƒd�}| |¡ dd„ ¡}| d¡ ¡ }t|ƒt|ƒks+J ‚t|j	ƒdks4J ‚|j
d }|d |j
d	 ksDJ ‚|d
 |d	d…  ¡ ksRJ ‚|d |d	d…  ¡ ks`J ‚|d |j
d kskJ ‚|j
d }|d |j
d ks{J ‚|d
 |d d…  ¡ ks‰J ‚|d |d d…  ¡ ks—J ‚|d |j
d ks¢J ‚d S )Nr>   r1   c                 S   rŠ   r‹   rŒ   r�   r   r   r   ru   3  r�   z$test_resample_ohlc.<locals>.<lambda>r‰   ro   éþÿÿÿr°   iúÿÿÿr±   rN   r²   r³   r   )r%   rP   r   r   rR   rX   rz   rS   r#   rg   rs   rD   rC   )r{   r/   r'   r‘   rb   rc   Úxsr   r   r   Útest_resample_ohlc.  s"   

r.  c                 C   s’   t dddd� | ¡}| t dddd� | ¡¡}ttt|ƒƒ|d�}|jd d…  d¡ ¡ }t	|t
ƒs4J ‚|jd d	…  d¡ ¡ }t	|t
ƒsGJ ‚d S )
Nú1-1-2000ú	2-15-2000Úhr1   ú	4-15-2000ú	5-15-2000r$   Ú30minz	4-14-2000)r   rP   Úunionr
   r†   r#   Úlocrz   rS   Ú
isinstancer   )r/   r%   r'   rÄ   r\   r   r   r   Útest_resample_ohlc_resultF  s   r8  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   rN   r1   r$   )r   rP   Údropr   r   r    rÏ   r#   rz   rA   r  rY   r·   )r/   r6   r%   rh   rc   r|   r   r   r   Ú$test_resample_ohlc_result_odd_periodS  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sgJ ‚t ||¡ ddgddgg|_| d¡ ¡ }t	j g d¢¡|_t ||¡ d S )Nz2011-01-06 10:59:05©r(  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:   ©ÚaxisÚColsr1  )r?  Úkeysr   rÄ   r\   Úcr»   ))rÄ   rB  r°   )rÄ   rB  r±   )rÄ   rB  r²   )rÄ   rB  r³   )r\   r»   r°   )r\   r»   r±   )r\   r»   r²   )r\   r»   r³   )r   r   r  r%   rP   rg   rr   rz   rS   rç   ÚconcatÚnamesrY   r·   Ú
MultiIndexÚfrom_tuples)r/   rh   ÚresÚexpr   r   r   Útest_resample_ohlc_dataframee  s:   ýýúÿ
ñ"ýÿrI  c                  C   sò   t tj d¡ d¡g d¢dd„ tdƒD ƒd�} tj| jdd d …f< d	}tj	t
|d
�� | jddd� ¡ }W d   ƒ n1 s>w   Y  d}tj	t
|d
�� | jdd„ dd� ¡ }W d   ƒ n1 sbw   Y  dd„ tdƒD ƒ|_t ||¡ d S )Nr   )ro   r‚   )éÐ  rJ  rJ  rJ  c                 S   ó   g | ]}t d |d dd�‘qS )rJ  r:   ÚM)ÚyearÚmonthr2   ©r   rò   r   r   r   rõ   ›  ó    z+test_resample_dup_index.<locals>.<listcomp>r‚   r´   rx   ú-DataFrame.resample with axis=1 is deprecated.r—   ÚQEr:   r>  z+DataFrame.groupby with axis=1 is deprecatedc                 S   s   t | jd d ƒS )Nr:   rx   )ÚintrN  r�   r   r   r   ru   ¤  s    z)test_resample_dup_index.<locals>.<lambda>c                 S   rK  )rJ  r:   ÚQ)rM  Úquarterr2   rO  rò   r   r   r   rõ   ¥  rP  ro   )r   r    r!   r"   r3   r†   r«   rs   rY   r
  r  rz   rA   rR   rg   r·   )rh   Úwarning_msgrc   rŸ   r|   r   r   r   Útest_resample_dup_index•  s    ýÿÿrW  c                 C   s    t tdddƒtdddƒdd� | ¡}ttj d¡ t|ƒ¡|ƒ}|jdddd	� 	¡ }| d
¡ 	¡ }t|ƒdks9J ‚t
|jjtjƒsCJ ‚|jjt d¡ksNJ ‚d S )Nrê   r:   re   r0   r  r   r¿   rI   ry   Ú8hé   râ   )r   r   rP   r
   r    r!   r"   r#   rz   rA   r7  r%   r2   r   Ú
DateOffsetÚHour)r/   r[   r'   Úbsrc   r   r   r   Útest_resample_reresample©  s   ÿþr]  zfreq, expected_kwargszYE-DECÚ1990Ú2000zY-DECr  zYE-JUNzY-JUNz1990-01z2000-01rL  c                 C   sŠ   | ddƒ}|j  |¡|_ d}tjt|d�� |j|dd� ¡ }W d   ƒ n1 s)w   Y  | |¡ ¡ }tdi |¤Ž|_ t ||¡ d S )Nz1/1/1990rn   ú3The 'kind' keyword in Series.resample is deprecatedr—   r  r  r   )	r%   rP   rY   r
  r  rz   rA   r   rZ   )r9   r2   Úexpected_kwargsr/   r‡   rŸ   rc   r|   r   r   r   Ú!test_resample_timestamp_to_periodµ  s   
ÿrb  c                 C   sº   dd„ }t dddd� | ¡}ttj d¡ t|ƒ¡|d�}|jd	d
d
d� 	¡ }|j
d |jd k ¡ s5J ‚||dd… ƒ}|j
d |k ¡ sHJ ‚||dd … ƒ}|j
d |k ¡ s[J ‚d S )Nc                 S   r§   r¨   r©   r¬   r   r   r   r®   Ì  r¯   ztest_ohlc_5min.<locals>._ohlcrk   z1/1/2000 5:59:50r  r1   r   r$   rO   rI   ry   z1/1/2000 00:00r   r:   é   rw   z1/1/2000 5:55:01z1/1/2000 6:00:00)r   rP   r
   r    r!   r"   r3   r#   rz   rS   r6  rs   rV   )r/   r®   r6   r‡   Ú	resampledrH  r   r   r   Útest_ohlc_5minË  s   re  c                 C   sš   t ddƒ | ¡}| d¡j}ttj d¡ t	|ƒ¡|d�}| 
d¡ ¡ }| dd„ ¡ ¡ }t	|ƒdks5J ‚t |jd	 |d
 ¡ t |jd
 |d ¡ d S )Nrn   ú	2/29/2000r>   r   r$   rÍ   c                 S   r,   r   )rN  r�   r   r   r   ru   æ  s    z,test_downsample_non_unique.<locals>.<lambda>r   r:   )r   rP   rª   rµ   r
   r    r!   r"   r3   r#   rz   rA   rR   rY   Úassert_almost_equalrs   )r/   r6   Úrng2r‡   rc   r|   r   r   r   Útest_downsample_non_uniqueß  s   ri  c                 C   s|   t ddƒ | ¡}| d¡j}ttj d¡ t	|ƒ¡|d�}d}t
jt|d�� | d¡ W d   ƒ d S 1 s7w   Y  d S )Nrn   rf  r   r$   z/cannot reindex on an axis with duplicate labelsr—   r¿   )r   rP   rª   rµ   r
   r    r!   r"   r3   r#   rš   r›   rœ   Úasfreq)r/   r6   rh  r‡   rŸ   r   r   r   Útest_asfreq_non_uniqueì  s   "ÿrk  c                 C   sž   t ddƒ | ¡}ttj d¡ dt|ƒf¡|g d¢d�}d}tj	t
|d�� |jd	d
d� ¡ }W d   ƒ n1 s9w   Y  |j d	¡ ¡ j}t ||¡ d S )Nrn   rf  r   rx   ©rÄ   r\   rB  r   rQ  r—   rÍ   r:   r>  )r   rP   r   r    r!   r"   r3   r#   rY   r
  r  rz   rA   ÚTr·   )r/   r6   rh   rV  rc   r|   r   r   r   Útest_resample_axis1÷  s   ýÿrn  )rC   rO   Ú15minr4  Ú4hÚ12hc                 C   s€   t dddd� |¡}ttj d¡ t|ƒ¡|d�}tj|d d…< |dd … j	| ddd� 
¡ }|j	| ddd� 
¡ }t ||¡ d S )	Nz1/1/2000 04:00:00é€Q r'   r   r   r$   rv   ry   ©r   rP   r
   r    r!   r"   r3   r#   r«   rz   rA   rY   rZ   )r2   r/   r6   r‡   rc   r|   r   r   r   Útest_resample_anchored_ticks  s   rt  r5   r:   r   c                 C   sh   dd„ }t dd| › d�dd� |¡}ttj d¡ t|ƒ¡|d	�}t 	| 
d
¡ ¡ | 
d
¡ |¡¡ d S )Nc                 S   ó   |   ¡ S r   )r@   r�   r   r   r   ru     ó    z,test_resample_single_group.<locals>.<lambda>z2000-1-1z2000-z-10r0   r1   r   r$   rÍ   )r   rP   r
   r    r!   r"   r3   r#   rY   rZ   rz   r@   rÐ   )r5   r/   Úmysumr6   r‡   r   r   r   Útest_resample_single_group  s   &rx  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      è?Ú20070915r0   r1   c                 S   s
   t  | ¡S r   )r    Ústdr�   r   r   r   ru   (  r�   z0test_resample_single_group_std.<locals>.<lambda>)	r
   r   r%   rP   r   rz   rÐ   rY   rZ   )r/   r'   r|   rc   r   r   r   Útest_resample_single_group_std  s   þÿr{  c                 C   sj   t dddd� | ¡}ttj d¡ t|ƒ¡|d�}|jddd	� 	¡ }t d
ddd� | ¡}t
 |j|¡ d S )Nrk   z1/1/2000 02:00r'   r1   r   r$   rO   Ú2min©Úoffsetú12/31/1999 23:57:00z1/1/2000 01:57©r   rP   r
   r    r!   r"   r3   r#   rz   rA   rY   Úassert_index_equalr%   )r/   r6   r‡   rd  Úexp_rngr   r   r   Útest_resample_offset,  s   ÿrƒ  ÚkwargsÚoriginú1999-12-31 23:57:00z1970-01-01 00:02:00ÚepochÚ2m©r…  r~  z1999-12-31 12:02:00r~  z-3mc                 C   sl   t dddd� |¡}ttj d¡ t|ƒ¡|d�}t ddd	d� |¡}|jd
i | ¤Ž 	¡ }t
 |j|¡ d S )Nú2000-01-01 00:00:00ú2000-01-01 02:00r'   r1   r   r$   r†  ú2000-01-01 01:57rO   r™   r€  )r„  r/   r6   r‡   r‚  rd  r   r   r   Útest_resample_origin9  s   ÿþr�  Úinvalid_valueÚepchÚstartdayÚstarttz
2000-30-30c                 C   ó€   t dddd� |¡}ttj d¡ t|ƒ¡|d�}d| › d�}tj	t
|d	�� |jd
| d� W d   ƒ d S 1 s9w   Y  d S )NrŠ  r‹  r'   r1   r   r$   z|'origin' should be equal to 'epoch', 'start', 'start_day', 'end', 'end_day' or should be a Timestamp convertible type. Got 'ú
' instead.r—   rO   ©r…  ©r   rP   r
   r    r!   r"   r3   r#   rš   r›   rœ   rz   )r…  r/   r6   r‡   rŸ   r   r   r   Útest_resample_bad_originQ  s   þÿ"ÿr–  Ú12dayysc                 C   r’  )NrŠ  r‹  r'   r1   r   r$   z6'offset' should be a Timedelta convertible type. Got 'r“  r—   rO   r}  r•  )r~  r/   r6   r‡   rŸ   r   r   r   Útest_resample_bad_offset`  s   "ÿr˜  c                 C   sl  d\}}t ||dd� | ¡}ttj d¡ t|ƒ¡|d�}t dddd� | ¡}| d¡ 	¡ }t
 |j|¡ |jdd	d
� 	¡ }t
 |j|¡ t dddd� | ¡}|jddd
� 	¡ }t
 |j|¡ |jddd� 	¡ }t
 |j|¡ |jdd	dd� 	¡ }t
 |j|¡ t dddd� | ¡}|jddd
� 	¡ }t
 |j|¡ t dddd� | ¡}|jddd
� 	¡ }t
 |j|¡ d S )N)ú2000-10-01 23:30:00z2000-10-02 00:30:00Ú7minr1   r   r$   z2000-10-01 23:14:00z2000-10-02 00:22:00Ú17minÚ	start_dayr”  r™  z2000-10-02 00:21:00r4   Ú23h30minr}  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:00rÿ   r€  )r/   r4   r5   r6   r‡   r‚  rd  r   r   r   Útest_resample_origin_prime_freqi  sJ   ÿþÿþÿþÿþrž  c                 C   sl  d}d}t ddd|d� | ¡}ttj d¡ t|ƒ¡|d�}t d	d
d|d� | ¡}|jddd� 	¡ }t
 |j|¡ |jddd� 	¡ }t
 |j|¡ |jdddd� 	¡ }t
 |j|¡ tjt|d�� |jddd� 	¡  W d   ƒ n1 suw   Y  t dddd� | ¡}ttj d¡ t|ƒ¡|d�}tjt|d�� |jddd� 	¡  W d   ƒ d S 1 s¯w   Y  d S )Nz4The origin must have the same timezone as the index.úEurope/ParisrŠ  r‹  r'   ©r2   r(  r   r$   r†  rŒ  rO   z1999-12-31 23:57:00+00:00r”  z1999-12-31 12:02:00+03:00r‡  rˆ  r‰  r—   r  r1   z12/31/1999 23:57:00+03:00)r   rP   r
   r    r!   r"   r3   r#   rz   rA   rY   r�  r%   rš   r›   rœ   )r/   rŸ   r(  r6   r‡   r‚  rd  r   r   r   Útest_resample_origin_with_tzŽ  s6   ÿþÿþÿ"ÿr¡  c                 C   sL  d\}}t ||dd� | ¡}tj d¡ t|ƒ¡}t||d�}|jddd� 	¡ }|jd	dd� 	¡ }t
 ||¡ | d ¡}|jddd� 	¡ }	|jd	dd� 	¡ }
t
j||	 |j¡d
d� t
j||
 |j¡d
d� d\}}t ||dd� | ¡}t||d�}|jddd� 	¡ }|jd	dd� 	¡ }t
 | d ¡| d ¡¡ t
 | d ¡| d ¡¡ d S )N)z2000-10-01 23:30:00+0500z2000-12-02 00:30:00+0500rš  r1   r   r$   r0   r‡  r”  Ú24hF)Ú
check_freq)z2000-10-01 23:30:00+0200z2000-12-02 00:30:00+0200)r   rP   r    r!   r"   r3   r#   r
   rz   rA   rY   rZ   Útz_localizer(  )r/   r4   r5   r6   Úrandom_valuesÚts_1Úresult_1Úresult_2Úts_no_tzÚresult_3Úresult_4Úts_2Úresult_5Úresult_6r   r   r   Ú-test_resample_origin_epoch_with_tz_day_vs_24h¯  s&   
r¯  c           
         sò  d‰ d%‡ ‡fdd„	}t dˆ d�}t dˆ d�}t||dd	� ˆ¡}tt t|ƒ¡|d
�}|ddgddgƒ}ddd|d fD ]}|jd|d� ¡ }t	 
||¡ q;t dˆ d�}t dˆ d�}t||dd	� ˆ¡}tt t|ƒ¡|d
�}ddg}	|ddg|	ƒ}|jdddd� ¡ }t	 
||¡ ddg}	|ddg|	dd	�}|jdddd� ¡ }t	 
||¡ ddg}	|ddg|	ƒ}|jdddd� ¡ }t	 
||¡ dd g}	|dd!g|	ƒ}|jddd"d� ¡ }t	 
||¡ d#d$g}	|d!dg|	ƒ}|jdddd� ¡ }t	 
||¡ d S )&NúAmerica/Chicagor0   c                    s*   t | t‡ fdd„|D ƒ|dd� ˆ¡d�S )Nc                    s   g | ]}t |ˆ d �‘qS )r;  )r   )ró   Útr;  r   r   rõ   Ó  s    zUtest_resample_origin_with_day_freq_on_dst.<locals>._create_series.<locals>.<listcomp>T)r2   Ú	ambiguousr$   )r
   r   rP   )rµ   Ú
timestampsr2   ©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Ú1hr1   r$   g      8@g      9@z
2013-11-03r‡  r4   rœ  r”  z2013-11-02 22:00-05:00z2013-11-03 22:00-06:00g      7@ç       @z-2hr‰  z2013-11-03 21:00-06:00g      6@ç      @r¢  z2013-11-02 02:00-05:00z2013-11-03 02:00-06:00Ú2hz2013-11-02 23:00-05:00z2013-11-03 23:00-06:00rñ   z-1hz2013-11-02 01:00-05:00z2013-11-03 01:00:00-0500r8   )r   r   rP   r
   r    Úonesr#   rz   r@   rY   rZ   )
r/   rµ  r4   r5   r6   r‡   r|   r…  rc   Úexpected_tsr   r´  r   Ú)test_resample_origin_with_day_freq_on_dstË  sD   	r½  c                 C   s€   t dddd� | ¡}ttj d¡ t|ƒ¡|d�}tj|d d…< |dd … j	dddd	� 
¡ }|j	dddd	� 
¡ }t ||¡ d S )
Nz1/1/2000 0:00:00é'  rC   r   r   r$   r0   rv   ry   rs  r  r   r   r   Útest_resample_daily_anchored  s   r¿  c                 C   s’   t ddƒ | ¡}ttj d¡ t|ƒ¡|d�}d}tj	t
|d�� |jddd	� ¡ }W d   ƒ n1 s4w   Y  td
ddd�}t |j|¡ d S )Nrn   z
12/31/2000r   r$   r`  r—   rÍ   r  r  zJan-2000zDec-2000rL  r1   )r   rP   r
   r    r!   r"   r3   r#   rY   r
  r  rz   rA   r   r�  r%   )r/   r6   r‡   rŸ   rc   Ú	exp_indexr   r   r   Ú&test_resample_to_period_monthly_buglet  s   ÿrÁ  c                  C   sd   t tj d¡ ddd¡tdddd�dd	�} |  ¡  d
¡ ¡  	¡ }|  d
¡ 
dd„ ¡}t ||¡ d S )Nr   r   r>   rý   z
2012-01-01r1  rß   rf   r<   r0   c                 S   ru  r   ©rA   r�   r   r   r   ru   "  rv  z&test_period_with_agg.<locals>.<lambda>)r
   r    r!   r"   Úintegersr   Úto_timestamprz   rA   Ú	to_periodrX   rY   rZ   )Ús2r|   rc   r   r   r   Útest_period_with_agg  s   ýrÇ  c                 C   s  dt dddddƒddfdt dddddƒddfdt ddddd	ƒddfdt dddddd
ƒddfg}tj|dd� d¡}|j | ¡|_d}tjt|d�� | 	d¡ 
d¡ ¡ }W d   ƒ n1 s^w   Y  d}tjt|d�� | 	d¡ dd„ ¡}W d   ƒ n1 s�w   Y  t ||¡ d S )Nr:   iÝ  re   ræ   é   r   r   é   é   rc  )ÚIDÚ	timestampr¾   r¿   ©rg   rÌ  ú:DataFrameGroupBy.resample operated on the grouping columnsr—   rË  rO   z7DataFrameGroupBy.apply operated on the grouping columnsc                 S   s   |   d¡ ¡ S )NrO   )rz   r@   r�   r   r   r   ru   9  s    z(test_resample_segfault.<locals>.<lambda>)r   r   Úfrom_recordsÚ	set_indexr%   rP   rY   r
  r  rR   rz   r@   rÐ   r·   )r/   Úall_wins_and_wagersrh   rŸ   rc   r|   r   r   r   Útest_resample_segfault&  s(   üÿþÿÿrÒ  c                 C   s²   t tdddd� | ¡g d¢tg d¢dd�d	œƒ d
¡}| d¡ ¡ }|jjt	j
ks+J ‚d}tjt|d�� | d¡ d¡ ¡ }W d   ƒ n1 sIw   Y  |jjt	j
ksWJ ‚d S )Nz
2016-01-01ro   ÚWr¼   )r:   r:   r   r   )r>   rl   r„   râ   Úint32r¹   )Údater­   ÚvalrÕ  r   rÎ  r—   r­   )r   r   rP   r
   rÐ  rz   r  rÖ  r=   r    rÔ  rY   r
  r  rR   )r/   rh   rc   rŸ   r   r   r   Ú test_resample_dtype_preservation=  s   ýÿúÿr×  c                 C   s˜   t  d¡ dg d¢i}t|tddƒ | ¡d�}| d¡ d¡ ¡ d  d	¡}| d¡d  ¡  d	¡}t	 
||¡ | d¡ ¡ d  d	¡}t	 
||¡ d S )
Nzscipy.interpolaterÄ   )r:   rx   r:   ro   z
2017-01-01z
2017-01-04r$   rf   r1  Úcubic)rš   Úimportorskipr   r   rP   Úastyperz   rA   ÚinterpolaterY   rZ   )r/   rh   r|   rc   r   r   r   Útest_resample_dtype_coercionR  s   
rÜ  c                 C   s^   t dddd� | ¡}ttj d¡ t|ƒ¡|d�}| d¡ 	¡ }| d¡ 	¡ }t
 ||¡ d S )	Nrn   r¿   rÈ  rß   r   r$   rÓ  zW-SUN)r   rP   r
   r    r!   r"   r3   r#   rz   rA   rY   rZ   )r/   r6   r‡   rd  r|   r   r   r   Útest_weekly_resample_bugletb  s
   rÝ  c                 C   s@   t dddd� | ¡}ttj d¡ t|ƒ¡|d�}| d¡ d S )Nú4/16/2012 20:00iˆ  r1  r   r   r$   rÍ   )	r   rP   r
   r    r!   r"   r3   r#   rz   ©r/   rø   r‡   r   r   r   Útest_monthly_resample_errorl  s   rà  c                  C   sˆ   d} d}t t | ¡ddd�}ttt|ƒƒ|d�}| tjj 	d¡¡}| 
d¡}t t |¡ddd�}ttt|ƒƒ|td	�}t ||¡ d S )
Nl   û*dG@l   à*dG@re   Ú100nsr¼   r$   éd   rA   r<   )r   rç   rè   r
   r†   r#   rz   Útseriesr   ÚNanorX   ÚfloatrY   rZ   )r4   Ú	exp_startÚindxr‡   ri   rc   Úexp_indxrH  r   r   r   Útest_nanosecond_resample_errort  s   
ré  c                 C   s†  t dddd� | ¡}t|j|d�}| d¡ ¡ }d}tjt|d�� |jdd	d
� ¡ j	dd�}W d   ƒ n1 s9w   Y  | j
tddƒtddƒ 7  _
|j
 | ¡ d¡|_
|j
jdks_J ‚t ||¡ |jddd� ¡ }d}tjt|d�� |jddd�jdd	d
� ¡ }W d   ƒ n1 s�w   Y  |j	dd�}|j
tddƒ tddƒ |_
|j
 | ¡ d¡|_
|j
jdks»J ‚t ||¡ d S )Nú1/1/2012ú4/1/2012Ú100minr1   r$   rÍ   r  r—   r  r  r5   ©Úhowr:   r*   r0   Úinferrv   ©rK   )r   rP   r   rN  rz   rA   rY   r
  r  rÄ  r%   r   Ú
_with_freqr2   r·   Úshift)r/   r6   rh   rc   rŸ   r|   rH  r   r   r   Útest_resample_anchored_intraday„  s*   ÿÿró  c                 C   s†  t dddd� | ¡}t|j|d�}| d¡ ¡ }d}tjt|d�� |jdd	d
� ¡ j	dd�}W d   ƒ n1 s9w   Y  | j
tddƒtddƒ 7  _
d|j
j_tj|j
_|j
 | ¡|_
t ||¡ |jddd� ¡ }d}tjt|d�� |jddd�jdd	dd� ¡ }W d   ƒ n1 s�w   Y  |j	dd�}| j
tddƒtddƒ 7  _
d|j
j_tj|j
_|j
 | ¡|_
t ||¡ d S )Nrê  rë  rì  r1   r$   rR  r  r—   r  r  r5   rí  r:   r*   r0   rv   rð  )r	  rK   )r   rP   r   rN  rz   rA   rY   r
  r  rÄ  r%   r   Ú_datar2   r   Ú
no_defaultÚ_freqr·   rò  )r/   r6   rh   rc   rŸ   r|   r   r   r   Ú test_resample_anchored_intraday2Ÿ  s0   ÿ

ÿÿ

r÷  c                 C   s>   | dddd�}|j  |¡|_ | d¡ ¡ }t|ƒdksJ ‚d S )Nz2012-04-29 23:00z2012-04-30 5:00r1  r1   rÍ   r:   )r%   rP   rz   rA   r#   )r9   r/   r‡   rd  r   r   r   Ú test_resample_anchored_intraday3»  s   rø  )ÚMSÚBMSzQS-MARzYS-DECzYS-JUNc                 C   s*   | ddƒ}|j  |¡|_ | |¡ ¡  d S )Nrn   z
12/31/2002)r%   rP   rz   rA   )r9   r2   r/   r‡   r   r   r   Ú!test_resample_anchored_monthstartÂ  s   
rû  z
label, secr¸  z4.2c                 C   st   t dddd�}t dddd�}| |¡}ttj d¡ d¡|d	�}|jd| d
� ¡ }|j	d t
d|› d�ƒks8J ‚d S )Nz2014-10-14 23:06:23.206rx   Ú400msr   z2014-10-15 23:00:00r   Ú2200msr>   r$   )rL   rN   z2014-10-15 23:00:Ú00)r   r5  r
   r    r!   r"   r3   rz   rA   r%   r   )rL   ÚsecÚindex1Úindex2r%   r'   rc   r   r   r   Útest_resample_anchored_multidayÉ  s   
"r  c                 C   sl   t dddd� | ¡}ttj d¡ t|ƒ¡|d�}|jddd	d
� 	¡ }t dddd� | ¡}t
 |j|¡ d S )Nrn   r‚   rC   r   r   r$   rO   rI   rv   ry   z1999-12-31 23:55ro   r€  )r/   r6   r‡   rc   Úex_indexr   r   r   Útest_corner_casesÜ  s
   r  c                 C   sŽ   | dddd�}|j  |¡|_ d}tjt|d�� |jddd	� ¡ }W d   ƒ n1 s+w   Y  t|ƒd
ks8J ‚|j d tddd�ksEJ ‚d S )Nz
2000-04-28z2000-04-30 11:00r1  r1   r`  r—   rÍ   r  r  r:   r   z2000-04rL  )	r%   rP   rY   r
  r  rz   rA   r#   r   )r9   r/   r‡   rŸ   rc   r   r   r   Útest_corner_cases_dateç  s   ÿr  c                 C   sD   t dddd� | ¡}ttj d¡ t|ƒ¡|d�}| d¡ 	¡  d S )NrÞ  iPÃ  r'   r   r   r$   r»   )
r   rP   r
   r    r!   r"   r3   r#   rz   rA   rß  r   r   r   Útest_anchored_lowercase_bugletò  s   r  c                 C   sX   t dddd� | ¡}ttj d¡ t|ƒ¡|d�}| d¡ 	dd	g¡}t
|tƒs*J ‚d S )
Nú
2012-06-12ro   r1  r   r   r$   Ú20minrA   r@   )r   rP   r
   r    r!   r"   r3   r#   rz   Ú	aggregater7  r   )r/   r6   r‡   rc   r   r   r   Útest_upsample_apply_functionsù  s   r
  c                 C   s~   t dddd� | ¡}ttj d¡ t|ƒ¡|d�}| tj d¡ 	t|ƒ¡¡}| 
d¡ ¡ }| ¡  
d¡ ¡ }t ||¡ d S )Nr  éÈ   r1  r   r   r$   r0   )r   rP   r
   r    r!   r"   r3   r#   ÚtakeÚpermutationrz   r@   Ú
sort_indexrY   rZ   )r/   r6   r‡   rc   rH  r   r   r   Útest_resample_not_monotonic  s   r  r=   r;   rÔ  rf   Úfloat32z-Empty groups cause x.mean() to return float64)Úreason)Úmarksc              	   C   s’   t tddddddƒtddddddƒgƒ |¡}tddg|| d�}| d¡ dd	„ ¡}| d¡}t ||¡ | d¡ 	¡ }| d¡}t ||¡ d S )
NéÜ  r:   r   r>   r   r<   rC   c                 S   ru  r   rÂ  r�   r   r   r   ru   '  rv  z/test_resample_median_bug_1688.<locals>.<lambda>)
r   r   rP   r   rz   rÐ   rj  rY   r·   Úmedian)r=   r/   r[   rh   rc   rH  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 )Nrn   z4/1/2000rÍ   c                 S   ru  r   rÂ  r�   r   r   r   ru   4  rv  z+test_how_lambda_functions.<locals>.<lambda>ÚfooÚbarc                 S   ru  r   rÂ  r�   r   r   r   ru   =  rv  c                 S   ó   | j dd�S ©Nr:   )Úddof©rz  r�   r   r   r   ru   =  rÎ   c                 S   ru  r   rÂ  r�   r   r   r   ru   E  rv  c                 S   r  r  r  r�   r   r   r   ru   E  rÎ   )r  r  F)Úcheck_names)r%   rP   rz   rÐ   rA   rY   rZ   rr   rz  rg   r	  )r9   r/   r‡   rc   rH  Úfoo_expÚbar_expr   r   r   Útest_how_lambda_functions0  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Ï  rx   r:   r>   r  r„   rc  ro   r4  r1   r³   r$   ÚYS)r   r   rP   r   rz   r@   )r/   r4   r5   Úbad_indrh   r   r   r   Útest_resample_unequal_timesK  s
   r"  c           	      C   sÄ   t dddd� | ¡}tt d¡|d�}tj|jd< t |d |d	 d
d� | ¡}|j|dd�}|j|ddd�}|j|ddd�}| 	d¡j
dd�}| 	d¡ 
¡ }t ||¡ t ||¡ t ||¡ d S )Nz
2002-02-02ro   r4  r   ç      @r$   r   r   rN   Ú10minr1   Úbfill)r%   r  )r%   r  r  r  Ú10Minr  )r   rP   r
   r    rÏ   r«   rs   r  Úreindex_likerz   r%  rY   rZ   )	r/   Úi30r'   Úi10Ús10Ús10_2ÚrlÚr10_2Úr10r   r   r   Útest_resample_consistencyW  s   r/  éÞ  re   r~   rx   rm   r>   râ   r„   rÊ  Údates1ro   Údates2rø   c                 C   s¶   t | ƒ |¡} t| t t| ƒ¡dœƒ}| d¡ d¡ ¡ }t g d¢ddd� |¡}tdg d¢i|d�}|d  	¡  
¡ rB|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©r2   rr   r¿   ©r:   r   r   r   r:   r$   ©r2   Úkey©r   rP   r   r    rÏ   r#   rÐ  rz   r÷   r   Úanyr%   rñ  rY   r·   rR   r   ©rø   r/   rh   rc   Úexp_idxr|   r   r   r   Útest_resample_timegrouper}  s    ýür<  c                 C   sÎ   t | ƒ |¡} t| t t| ƒ¡t t| ƒ¡dœƒ}| d¡ d¡ ¡ }t g d¢ddd� |¡}tg d¢g d¢dœ|dd	gd
�}|d  	¡  
¡ rN|j d ¡|_t ||¡ | tddd�¡ ¡ }t ||¡ d S )N)r¾   r¿   ÚCr¾   rÍ   r3  r4  r5  )r¿   r=  r¿   r=  r´   r6  r8  r:  r   r   r   Útest_resample_timegrouper2‘  s(   $ýüýr>  c                 C   sæ   t tdƒdtdƒditdƒdtdƒdidœƒ}|j | ¡|_| d¡}| tdd	�¡}| tdd	�¡j d
d„ ¡}|j	dks@J ‚||fD ]}|j 
¡ }t ||¡ qD|j d¡ 
¡ }t ||¡ |j tdd	�¡ 
¡ }t ||¡ d S )Nz2015-06-05 00:00:00Ú
0010100903z2015-06-08 00:00:00Ú
0010150847z
2015-06-05z
2015-06-08)rË  ÚDATEr0   r1   c                 S   ru  r   ©Únuniquer�   r   r   r   ru   »  rv  z'test_resample_nunique.<locals>.<lambda>rË  )r   r   r%   rP   rz   rR   r   rË  rÐ   rr   rC  rY   rZ   )r/   rh   ri   r]   r|   r±  rc   r   r   r   Útest_resample_nuniqueª  s*   þþûÿ

rD  c                 C   sˆ   t tj d¡ d¡ttdƒtd�tdddd�d	� 	¡ }|j
 | ¡|_
tjj|j ¡ gd d
dgd�|_| d¡ ¡ }t |j|j¡ d S )Nr   )r>   ro   rþ   r¹   rÿ   r>   r0   r   r   Úlev0Úlev1)rD  r·  )r   r    r!   r"   r3   r	   r  r  r   Úabsr%   rP   rç   rE  Úfrom_arraysrg   r¶   rz   rC  rY   r�  )r/   rh   rc   r   r   r   Ú2test_resample_nunique_preserves_column_level_namesÉ  s   ýüÿrI  Úfuncc                 C   ru  r   rB  r�   r   r   r   ru   Û  rv  c                 C   s   |   tj¡S r   )rX   r
   rC  r�   r   r   r   ru   Ü  rÎ   c                 C   s
   |   d¡S )NrC  )rX   r�   r   r   r   ru   Ý  r�   )rC  Úseries_nuniqueÚnunique_str)Úidsc           	      C   sr   t dddd� |¡}t dddd� |¡}| |¡}ttt|ƒƒ|dd�}| d	¡}| ¡ }| |ƒ}t 	||¡ d S )
Nr/  r0  r1  r1   r2  r3  r;   r<   rÍ   )
r   rP   rW   r
   r†   r#   rz   r÷   rY   rZ   )	rJ  r/   r%   r  Úindex3r'   ri   rc   r|   r   r   r   Ú#test_resample_nunique_with_date_gapØ  s   

rO  Únr¾  i † Úk)re   râ  iè  c                 C   s<  t j d¡}td| d dd� |¡}t| d| | | ¡ d¡| || ¡d�}| 	d	¡ 
¡ }t|j ¡ |j ¡ d	d
� |¡}|j}t j|j|jdd�}	t  ||	f¡}
||
 |	|
 }}	t jd|dd … |d d… kf }|t jd|	dd … |	d d… kf O }t j|	| d t|ƒd�jddd�}t||d�}t ||¡ d S )Nr   z
2015-08-27re   rC   r¼   r   r;   r$   r4  r  rI   ©ÚsideTr:   rN   ©Ú	minlengthF©Úcopy)r    r!   r"   r   rP   r
   rÃ  rÚ  Úchoicerz   rC  r%   rC   rD   rµ   ÚsearchsortedÚlexsortÚr_Úbincountr#   rY   rZ   )rP  rQ  r/   ÚprngÚdrr‡   rv   ÚixÚvalsÚbinsÚsorterÚmaskr`   rI   r   r   r   Útest_resample_group_infoî  s    (ÿ"&$rd  c           	      C   sÊ   d}t d|dd� | ¡}ttj d¡ |¡tj d¡ ||¡d�}| d¡ 	¡ }t |j
 ¡ |j
 ¡ dd� | ¡}tj|j|j
jd	d
�}tj|t|ƒd d�dd … jddd�}t||d�}t ||¡ d S )Nr¾  z
2015-09-19rC   r   r   r$   rš  r  rI   rR  r:   rT  r;   FrV  )r   rP   r
   r    r!   r"   r3   rX  rz   Úsizer%   rC   rD   rY  rµ   r\  r#   rÚ  rY   rZ   )	r/   rP  r^  r‡   rv   r_  ra  rÖ  rI   r   r   r   Útest_resample_size  s   þÿ(rf  c                  C   s°   t ddgdgd�} ttj| jdd�j d¡j d¡ƒ}t d	d
gdgd�}ttj|jdd�j d¡j d¡dd�}t ddg|d�}|jdd� 	¡ }t ddg|d�}t
 ||¡ d S )Nid=XitKXr‡   rÍ  r'   ©r/   ÚUTCzEurope/Madridi 8XiFXr1  r1   r>   r$   ©r"  )r   r   rç   rè   r‡   Údtr¤  Ú
tz_convertrz   r@   rY   r·   )Údf1Údti1Údf2Údti2rh   rc   r|   r   r   r   Útest_resample_across_dst!  s"   ýürp  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$ rh  r;  r°  r:   r   r$   Ú1dr1   z
2016-11-02z
2016-11-24r»   r   rñ   rƒ   r¸  )r   rk  rP   r   rR   r   r�   r   r    r«   rY   r·   )r/   r%   rh   rc   Úexpected_index_valuesr|   r   r   r   Ú!test_groupby_with_dst_time_changeA  s   ýÿþ rs  c              
   C   sº   t tddddƒgdd� | ¡}tdg|d�}t |j ¡ d	d
� | ¡}tdg|d�}t |jd	d� 	¡ |¡ |jdd� 	¡  t |jdd� 	¡ tdgt tdddƒgddd� | ¡d�¡ d S )Nr  rm   ro   é   z
US/Easternr;  r>   r$   r0   r1   ri  rù  r:   ©r(  r2   )
r   r   rP   r   r%   Ú	normalizerY   r·   rz   r@   )r/   r[   rh   r|   r   r   r   Útest_resample_dst_anchorT  s    ÿüþrw  c                 C   s&  t ddddd� | ¡}t|jƒ}t|||dœ|dd�}d	d
ddœ}| d¡}| |¡g d¢ }tg d¢g d¢g d¢dœt ddddd� | ¡d�}t ||d¡ | d¡}| |¡g d¢ }	tg d¢g d¢g d¢dœt ddddd� | ¡d�}
t |	|
d¡ | d¡}| |¡g d¢ }tg d¢g d¢g d¢dœt ddddd� | ¡d�}t ||d ¡ | d!¡}| |¡g d¢ }td"d#gd$d%gd#d&gdœt ddd!dd� | ¡d�}t ||d'¡ |d(d)… }| d*¡}| d	d
ddœ¡g d¢ }tg d+¢g d,¢g d-¢dœt d(d)d*dd� | ¡d�}t ||d.¡ d S )/Nz
2013-09-30r¶  Ú30MinrŸ  r   rl  r;   r<   rC   rD   r÷   rì   )r   é0   i€  éÐ  i   ér  )é/   i  éÏ  i  éq  é2  )ry  éP  r€  r€  iR  éÁ   z	9/30/2013z	11/4/2013r$   zW-MON Frequencyz2W-MON)r   ry  rz  r{  )r|  r}  r~  r  )ry  i   i¢  r�  z
11/11/2013z2W-MON Frequencyrù  )r   ry  é  )r|  é  r  )ry  iÒ  é1   z9/1/2013z	11/1/2013zMS FrequencyÚ2MSr   r‚  rƒ  r  r„  z2MS Frequencyz
10/26/2013z
10/29/2013r0   )ià  i  iB  r{  )i  iA  r~  i¡  )ry  rý   ry  ry  zD Frequency)	r   rP   r†   re  r   rz   rX   rY   r·   )r/   r[   rµ   rh   rî  Úrsrc   r|   Úrs2rú   Ú	expected2Úrs3Úresult3Ú	expected3Úrs4Úresult4Ú	expected4Údf_dailyÚrs_dÚresult_dÚ
expected_dr   r   r   Útest_resample_dst_anchor2h  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/Berlinr0  re   é   ro   rº  r   r>   r$   r1  ç      @rx   r„   )ÚpytzÚtimezoner   r   ÚlocalizerP   r
   rz   rA   r    r«   rY   rZ   )r/   r(  rj  rø   rc   r|   r   r   r   Útest_downsample_across_dstÄ  s   
þr™  c                 C   sd   t tg d¢dd� | ¡g d¢d�}| d¡ ¡ }t ddgtd	d
gddd� | ¡d�}t ||¡ d S )N)z
2017-03-25ú
2017-03-26z
2017-03-27z
2017-03-28z
2017-03-29úEurope/Amsterdamr;  )rm   r‚   rä   é   rÊ  )r%   rÑ   Ú1Wrt  é*   rš  z
2017-04-02rÓ  ru  r$   )r   r   rP   rz   r@   rY   r·   )r/   rh   rc   r|   r   r   r   Ú!test_downsample_across_dst_weeklyÑ  s"   þû
ÿürŸ  c                 C   sb   t ddddd� | ¡}t|tjd�}| d¡ ¡ }tt ddd	dd
� | ¡tjd�}t ||¡ d S )Nz
2013-04-01z
2013-05-01zEurope/Londonr1  ru  r<   rÓ  z
2013-04-07r>   )r2   rq   r(  )	r   rP   r
   r    rf   rz   rA   rY   rZ   )r/   ra   r'   rc   r|   r   r   r   Ú#test_downsample_across_dst_weekly_2ä  s   ÿÿür   c           	      C   s¸   t ddddƒ}t ddddƒ}t||dd� | ¡}| d¡ d	¡}ttt|ƒƒƒ}t||d
�}| 	t
dd�¡ ¡ }tddd�jd	dd�}t|dd� | ¡}tg d¢|d
�}t ||¡ d S )Niâ  rm   rx   r‚   r>   r·  r1   rh  zAmerica/Havanar$   r   z
2018-11-03©rq   T)r²  r0   )g      @g      <@g     @F@)r   r   rP   r¤  rk  r  r†   r#   r   rR   r   rA   r   rY   r·   )	r/   r4   r5   r%   rÑ   Ú	dataframerc   r[   r|   r   r   r   Útest_downsample_dst_at_midnightô  s   ÿr£  c           	      C   sê   t tjdtjddgƒ | ¡}tg d¢|d�}t g d¢ƒ | ¡}tg d¢|d�}t | d¡ ¡ |¡ t ddgƒ | ¡}td	d
g|d�}t | d¡ ¡ |¡ t dgƒ | ¡}tdg|d�}t | d¡ ¡ |¡ t | d¡ ¡ |¡ d S )Nú1970-01-01 00:00:00ú1970-01-01 00:00:01ú1970-01-01 00:00:02)r   rx   r>   r„   rm   r$   )r¤  r¥  r¦  )r¹  ç      @ç      &@Ú1sr•  r¨  Ú2sr§  Ú3sÚ60s)	r   rç   ÚNaTrP   r   rY   r·   rz   rA   )	r/   r%   ÚframeÚindex_1sÚframe_1sÚindex_2sÚframe_2sÚindex_3sÚframe_3sr   r   r   Útest_resample_with_nat  s6   ûÿø	ÿþÿrµ  c                 C   s¬   t dddƒt dddƒg}td|i|d�}|j | ¡|_tt dddƒtjt dddƒgtddd	d
� | ¡dd�}| d	¡ 	¡ d }t
 ||¡ |d  d	¡ 	¡ }t
 ||¡ d S )Nià  r:   rÊ  rÝ   rÌ  r$   z
2016-01-15rx   Ú2Dr   )r%   rr   )r   r   r%   rP   r
   rç   r­  r   rz   ÚfirstrY   rZ   )r/   rø   rh   rH  rG  r   r   r   Útest_resample_datetime_values&  s   ýr¸  c                 C   s„   dd„ }| j  |¡| _ d}|  d¡ ||¡}|  d¡ ¡  |¡}t ||¡ |  d¡j||d�}|  d¡ ¡  |¡}t ||¡ d S )Nc                 S   ó   t  | ¡| S r   ©r    rA   ©rÑ   Úadd_argr   r   r   r_   =  ó   z3test_resample_apply_with_additional_args.<locals>.fre   r0   )r¼  )r%   rP   rz   rÐ   rA   ÚmultiplyrY   rZ   )r{   r/   r_   Ú
multiplierrc   r|   r   r   r   Ú(test_resample_apply_with_additional_args;  s   rÀ  c                  C   sÒ   dd„ } d}t dddœtddd�d	�}d
}tjt|d�� | d¡ d¡ | |¡ t	¡}W d   ƒ n1 s6w   Y  d
}tjt|d�� | d¡ d¡ 
¡  |¡}W d   ƒ n1 s\w   Y  t ||¡ d S )Nc                 S   r¹  r   rº  r»  r   r   r   r_   O  r½  z4test_resample_apply_with_additional_args2.<locals>.fre   r:   r   r½   Ú2017r¡  r$   rÎ  r—   r¾   r0   )r   r   rY   r
  r  rR   rz   rX   rÚ  rå  rA   r¾  r·   )r_   r¿  rh   rŸ   rc   r|   r   r   r   Ú)test_resample_apply_with_additional_args2M  s    ÿÿrÂ  )r:   r   rx   zn1, freq1, n2, freq2)
)é   r'   ç      à?r   )é<   r'   r:   r   )i  r'   r:   r1  )rÅ  r   r:   r1  )i`T  r'   g      Ð?r0   )rr  r'   r:   r0   )iÀ¨  r'   rÄ  r0   )i   r   r:   r0   )r‚   r1  rÄ  r0   )é   r1  r:   r0   c                 C   st   | | }|| }t dd|d� |¡}ttt|ƒƒ|d�}	|	 t|ƒ| ¡ ¡ }
|	 t|ƒ| ¡ ¡ }t 	|
|¡ d S )Nz
1991-09-05z
1991-09-12r1   r$   )
r   rP   r
   r†   r#   rz   rÂ   rA   rY   rZ   )Ún1Úfreq1Ún2Úfreq2rQ  r/   Ún1_Ún2_r[   Úserrù   rú   r   r   r   Ú test_resample_equivalent_offsets^  s   rÎ  z"first,last,freq,exp_first,exp_last))Ú19910905Ú19920406r0   rÏ  Ú19920407)z19910905 00:00ú19920406 06:00r0   rÏ  rÑ  )ú19910905 06:00rÒ  r1  rÓ  z19920406 07:00)Ú19910906rÐ  rÍ   Ú19910831Ú19920430)rÕ  rÖ  rÍ   rÕ  Ú19920531)z1991-08z1992-04rÍ   rÕ  r×  c                 C   sz   t | ƒ} |  | j¡ |¡} t |ƒ}| |j¡ |¡}t|ƒ}t|ƒ}tjj |¡}t	| ||dd�}||f}||ks;J ‚d S )Nr*   rg  )
r   rÄ  r2   rP   r   rç   rã  ÚfrequenciesÚ	to_offsetr   )r·  r�   r2   Ú	exp_firstÚexp_lastr/   rc   r|   r   r   r   Útest_get_timestamp_range_edgesz  s   rÜ  Ú
duplicatesTFc                 C   sÞ   t dddd� |¡}ttdƒ|d�}t||d dœƒ}| r"ddg|_d	}tjt|d
�� | 	d¡ 
tj¡}W d   ƒ n1 s?w   Y  ttjddgddgddgddggtjd�tg d¢dd� |¡|jd�}t ||¡ d S )Nz
2012-01-31rÍ   r‚   ©r4   r2   rq   r$   r   r½   r¾   z!using DatetimeIndexResampler.prodr—   rR  r   rÆ  rÅ  éÒ   r€  rz  iÞ  i´  r¹   )z
2012-03-31z
2012-06-30z
2012-09-30z
2012-12-31úQE-DECr1   r´   )r   rP   r
   r†   r   rg   rY   r
  r  rz   rÐ   r    rB   rQ   r;   r   r·   )rÝ  r/   r%   r‡   rh   rŸ   rc   r|   r   r   r   Útest_resample_apply_product”  s$   
ÿ&ÿûrá  z$first,last,freq_in,freq_out,exp_last))ú
2020-03-28ú
2020-03-31r0   r¢  z2020-03-30 01:00)râ  ú
2020-10-27r0   r¢  ú2020-10-27 00:00)ú
2020-10-25rä  r0   r¢  z2020-10-26 23:00)râ  rã  r¢  r0   z2020-03-30 00:00)râ  rä  r¢  r0   rå  )ræ  rä  r¢  r0   z2020-10-26 00:00r·  r�   Úfreq_inÚfreq_outrÛ  c           	      C   sV   t dt| ||dd� |¡ƒ}| |¡ ¡ }t dt| ||dd� |¡ƒ}t ||¡ d S )Nrñ   r›  r   )r
   r   rP   rz   r  rY   rZ   )	r·  r�   rç  rè  rÛ  r/   r‡   rc   r|   r   r   r   Ú#test_resample_calendar_day_with_dst«  s   'ÿþré  )rC   rD   r·  r�   c                 C   sn   t dddd� |¡}tdtjtjg|ƒ}t| d¡| ƒdd�}ttjgtd	gd
d� |¡d�}t 	||¡ d S )NÚ2020rÍ   rx   rÞ  r:   rR  r   )Ú	min_countrã  rà  r1   r$   )
r   rP   r
   r    r«   r£   rz   r   rY   rZ   )rJ  r/   r%   rÍ  rc   r|   r   r   r   Ú+test_resample_aggregate_functions_min_countÝ  s   þrì  c                 C   s’   t tdddd� |¡dgg d¢d | d�}|j|jd	k |jd
kB d d …f }| d¡ ¡ }t dtjdgdgtdddd� |¡d�}t	 
||¡ d S )Nrÿ   z2000-01-03 23rq  r  rŽ   )r   r:   r   r   )r%   rg   rÑ   r=   z
2000-01-02z
2000-01-03r0   r:   r   r   )r   r   rP   r6  r%   rz   rD   r    r«   rY   r·   )Úany_unsigned_int_numpy_dtyper/   rh   rc   r|   r   r   r   Útest_resample_unsigned_intê  s$   ÿ
ú"
ÿýrî  c                  C   sj   t ddddd�} tg d¢| d�}| d¡ ¡ }tt g d	¢¡ d
¡dd�}tg d¢|d�}t 	||¡ d S )Nz
0300-01-01rÿ   r'   Ú100YE)r/   r2   )r:   ro   r   râ   r>   r„   r:   ro   r   râ   r>   r„   r:   ro   r   râ   r>   r$   Ú200YE)	z
0300-12-31z
0500-12-31z
0700-12-31z
0900-12-31z
1100-12-31z
1300-12-31z
1500-12-31z
1700-12-31z
1900-12-31zdatetime64[s]z	200YE-DECr1   )	rñ   r¹  ç      @r#  r¹  rñ  r#  r¹  rñ  )
r   r
   rz   rA   r   r    rQ   rÚ  rY   rZ   )ra   rÍ  rc   Úexpected_idxr|   r   r   r   Útest_long_rule_non_nano  s   ÿòró  c                  C   sd   t g g dœƒ ddi¡} | jdddddd�d  ¡ }tg dddd	�}tg |dd
d�}t ||¡ d S )N)r‡   rµ   r‡   zdatetime64[ns, Atlantic/Faroe]r…  rv   r4   )ÚonrK   rL   r…  rµ   )r2   rr   r=   rf   )r%   rr   r=   )r   rÚ  rz   r@   r   r
   rY   rZ   )rh   rc   rò  r|   r   r   r   Ú"test_resample_empty_series_with_tz  s   ÿÿþÿrõ  zfreq, freq_depr))Ú2MEÚ2M)Ú2QEÚ2Q)z2QE-SEPz2Q-SEP)Ú1YEÚ1Y)ú2YE-MARz2Y-MAR)rú  Ú1A)rü  z2A-MARc                 C   óœ   d|dd … › d�}d| dd … › d� t tdƒtdddd	�d
�}| | ¡ ¡ }tjt|d�� | |¡ ¡ }W d   ƒ n1 sAw   Y  t ||¡ d S ©Nú'r:   z$' is deprecated and will be removed z!in a future version, please use 'r“  re   Ú20130101r»   rß   r$   r—   ©	r
   r†   r   rz   rA   rY   r
  r  rZ   ©r2   Ú	freq_deprÚdepr_msgr'   r|   rc   r   r   r   Ú test_resample_M_Q_Y_A_deprecated+  s   ÿr  ))Ú2BMEÚ2BM)Ú2BQEÚ2BQ)z2BQE-MARz2BQ-MARc                 C   rþ  rÿ  r  r  r   r   r   Útest_resample_BM_BQ_deprecatedC  s   
ÿr  c              	   C   s¢   t ddd| d�}td|i|d�}|jddd	�}| ¡ }ttd
ddƒtd
ddƒgdd� | ¡}tdtd
ddƒtd
ddddƒgi|d� d| › d�¡}t 	||¡ d S )Nú
2020-01-31Ú1minép  ©r4   r2   rq   r/   r‡   r$   rù  rI   rð  éä  r:   r   r1   ro   rx   é;   úM8[ú]©
r   r   rz   r�   r   r   rP   rÚ  rY   r·   )r/   r[   rh   Úgroupedrc   Úexp_dtir|   r   r   r   Útest_resample_ms_closed_rightW  s    ÿþþýr  r¿   r=  c                 C   sÊ   t ddd|d�}td|i|d�}|j| dd�}| ¡ }ttd	d
dƒtd	d
dƒtd	ddƒtd	ddƒg| d� |¡}tdtd	d
dƒtd	ddƒtd	ddƒtd	ddddƒgi|d� d|› d�¡}t 	||¡ d S )Nr  r  r  r  r‡   r$   rI   rð  r  r:   rÃ  rc  r   rx   ro   r1   r  r  r  r  )r2   r/   r[   rh   r  rc   r  r|   r   r   r   Útest_resample_c_b_closed_rightg  s6   



üùø	


üÿ÷
ör  c                 C   sŽ   t ddd| d�}tg d¢|d�}|jdddd	� ¡ }ttd
ddƒtd
ddƒtd
ddƒtd
ddƒgdd� | ¡}tg d¢|d�}t ||¡ d S )Nz
2023-09-26rl   rq  )rq   r2   r/   )r:   r   rx   ro   r>   rl   r$   r¿   rI   ry   iç  r~   r”  é   é   é   r1   )rñ   g      @g      @g      @)	r   r
   rz   rA   r   r   rP   rY   rZ   )r/   r[   rÍ  rc   r  r|   r   r   r   Útest_resample_b_55282†  s$   



üùø	þr  Úpyarrowr(  rh  z/TODO: Set ARROW_TIMEZONE_DATABASE env var in CI)Ú	conditionr  c                 C   s^   t tddd�dd�}| d ur|j | ¡}t tjdtjd�|d�}| d¡ ¡ }t	 
||¡ d S )Nz
2020-01-01r>   r¡  ztimestamp[ns][pyarrow]r¹   r$   r   )r
   r   rj  r¤  r    rÏ   rf   rz   rA   rY   rZ   )r(  ra   r|   rc   r   r   r   Útest_arrow_timestamp_resampleœ  s   r  ) r   Ú	functoolsr   Únumpyr    rš   r–  Úpandas._libsr   Úpandas._typingr   Úpandas.compatr   Úpandas.util._test_decoratorsÚutilÚ_test_decoratorsÚtdÚpandasrç   r   r	   r
   r   r   r   r   Úpandas._testingÚ_testingrY   Úpandas.core.groupby.grouperr   Úpandas.core.indexes.datetimesr   Úpandas.core.indexes.periodr   r   Úpandas.core.resampler   r   Úpandas.tseriesr   Úpandas.tseries.offsetsr   Úfixturer   r   r&   r/   r9   rd   rj   ÚmarkÚparametrizer}   rˆ   r’   r    r¦   r¸   rØ   ré   rð   rû   r  r  r  r  r  r  r  r+  r.  r8  r:  rI  rW  r]  rb  re  ri  rk  rn  rt  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  r-   Úxfailr  r  r"  r/  r1  r  Ú__annotations__r­  r2  Údates3r<  r>  rD  rI  rO  rd  rf  rp  rs  rw  r“  r™  rŸ  r   r£  rµ  r¸  rÀ  rÂ  rÎ  rÜ  rá  rÂ   ré  rì  rî  ró  rõ  r  r  r  r  r  Ú
skip_if_nor  r   r   r   r   Ú<module>   s   $	




$þþþøþ		þþ	þ
þ
@:


	0ýþ



úþ
ÿ

%!7




ÿþüþ






ú2
ÿ

ýù
	 \ þþþ#ÿÿÿÿÿþþ
þþþþ