o
    �¨Êh # ã                   @   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 8d,¡ej3 4ddg¡ej3 4d-g d.¢¡d/d0„ ƒƒƒZ9ej3 4ddg¡d1d2„ ƒZ:ej3 4ddg¡d3d4„ ƒZ;d5d6„ Z<d7d8„ Z=d9d:„ Z>d;d<„ Z?ej3 4d=g d>¢¡d?d@„ ƒZ@ej3 4dAdBdCg¡dDdE„ ƒZAej3 4dAdFdCg¡dGdH„ ƒZBdIdJ„ ZCdKdL„ ZDdMdN„ ZEdOdP„ ZFej3 4dAg dQ¢¡ej3 4dRg dS¢¡dTdU„ ƒƒZGdVdW„ ZHdXdY„ ZIdZd[„ ZJd\d]„ ZKd^d_„ ZLd`da„ ZMej3 4dbdcdddedfdgœgdhdddedidgœgdCdjdkdldgœgg¡dmdn„ ƒZNdodp„ ZOdqdr„ ZPdsdt„ ZQdudv„ ZRej3 4dAg dw¢¡dxdy„ ƒZSej3 4dzd{d|g¡d}d~„ ƒZTdd€„ ZUd�d‚„ ZVej3 4dƒd„d…id„ed†ƒid‡dˆd‰œd„dŠid‹dŒig¡d�dŽ„ ƒZWej3 4d„d�d�d‘d’d“eXƒ g¡d”d•„ ƒZYej3 4d‹d�d–d“eXƒ g¡d—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j3 4dAg d¹¢¡dºd»„ ƒZkej3 4d¼dd½gd!d¾gg¡d¿dÀ„ ƒZldÁdÂ„ ZmdÃdÄ„ ZndÅdÆ„ ZodÇdÈ„ ZpdÉdÊ„ Zqej3 4dËdÌdÍdÎejrdÏej3jsdÐdÑ�dÒ�g¡dÓdÔ„ ƒZtdÕdÖ„ Zud×dØ„ ZvdÙdÚ„ Zwe dÛdÜd{ƒe dÛdÝdÞƒe dÛdßdàƒe dÛdÝdàƒe dÛdÜdáƒe dÛdâdãƒgZxeye
 ezdä< exdd|… ej{g exd|då…  ej{g exdåd…  Z|eye
 ezdæ< ej{gex ej{g Z}ej3 4dçexe|e}g¡dèdé„ ƒZ~ej3 4dçexe|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 �d0¢¡�d1�d2„ ƒZ–�d3�d4„ Z—�d5�d6„ Z˜�d7�d8„ Z™ej3 4�d9g �d:¢¡�d;�d<„ ƒZšej3 4�d9g �d=¢¡�d>�d?„ ƒZ›�d@�dA„ Zœej3 4dA�dB�dCg¡dAe”f�dD�dE„ƒZ��dF�dG„ Zže Ÿ�dH¡ej3 4�dIdejr�dJej3jseƒ �dK�dL�dÒ�g¡�dM�dN„ ƒƒZ dS (O  é    ©Ú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   ú[/var/www/html/env/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@ignore:The 'convention' keyword in Series.resample:FutureWarningz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   6  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_ohlc1  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_resultI  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_periodV  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_dataframeh  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_origin<  s   ÿþr�  Úinvalid_valueÚepchÚstartdayÚstarttz
2000-30-30c                 C   ó€   t dddd� |¡}ttj d¡ t|ƒ¡|d�}d| › d�}tj	t
|d	�� |jd
| d� W d   ƒ d S 1 s9w   Y  d S )NrŠ  r‹  r'   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_originT  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_offsetc  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_freql  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   sš   t tj d¡ ddd¡tdddd�dd	�} |  ¡  d
¡ ¡  	¡ }d}t
jt|d�� |  d
¡}W d   ƒ n1 s9w   Y  | dd„ ¡}t
 ||¡ d S )Nr   r   r>   rý   z
2012-01-01r1  rß   rf   r<   r0   z+Resampling with a PeriodIndex is deprecatedr—   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_periodrY   r
  r  rX   rZ   )Ús2r|   rŸ   Úrsrc   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   ?  s    z(test_resample_segfault.<locals>.<lambda>)r   r   Úfrom_recordsÚ	set_indexr%   rP   rY   r
  ÚDeprecationWarningrR   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_preservationC  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_coercionX  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_bugleth  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_errorr  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_errorz  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   :  rv  z+test_how_lambda_functions.<locals>.<lambda>ÚfooÚbarc                 S   ru  r   rÂ  r�   r   r   r   ru   C  rv  c                 S   ó   | j dd�S ©Nr:   )Úddof©rz  r�   r   r   r   ru   C  rÎ   c                 S   ru  r   rÂ  r�   r   r   r   ru   K  rv  c                 S   r  r  r  r�   r   r   r   ru   K  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_functions6  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_timesQ  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_consistency]  s   r1  éÞ  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Í   r5  r6  r7  )r¿   r?  r¿   r?  r´   r8  r:  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   rE  rY   rZ   )r/   rh   ri   r]   r|   r±  rc   r   r   r   Útest_resample_nunique°  s*   þþûÿ

rF  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   rE  rY   r�  )r/   rh   rc   r   r   r   Ú2test_resample_nunique_preserves_column_level_namesÏ  s   ýüÿrK  Úfuncc                 C   ru  r   rD  r�   r   r   r   ru   á  rv  c                 C   s   |   tj¡S r   )rX   r
   rE  r�   r   r   r   ru   â  rÎ   c                 C   s
   |   d¡S )NrE  )rX   r�   r   r   r   ru   ã  r�   )rE  Ú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   )	rL  r/   r%   r  Úindex3r'   ri   rc   r|   r   r   r   Ú#test_resample_nunique_with_date_gapÞ  s   

rQ  Ú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   rE  r%   rC   rD   rµ   ÚsearchsortedÚlexsortÚr_Úbincountr#   rY   rZ   )rR  rS  r/   ÚprngÚdrr‡   rv   ÚixÚvalsÚbinsÚsorterÚmaskr`   rI   r   r   r   Útest_resample_group_infoô  s    (ÿ"&$rf  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   rT  r:   rV  r;   FrX  )r   rP   r
   r    r!   r"   r3   rZ  rz   Úsizer%   rC   rD   r[  rµ   r^  r#   rÜ  rY   rZ   )	r/   rR  r`  r‡   rv   ra  rc  rØ  rI   r   r   r   Útest_resample_size  s   þÿ(rh  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"   ýürr  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$ rj  r;  r°  r:   r   r$   Ú1dr1   z
2016-11-02z
2016-11-24r»   r   rñ   rƒ   r¸  )r   rm  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_changeG  s   ýÿþ ru  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   rk  rû  r:   ©r(  r2   )
r   r   rP   r   r%   Ú	normalizerY   r·   rz   r@   )r/   r[   rh   r|   r   r   r   Útest_resample_dst_anchorZ  s    ÿüþry  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  )r{  éP  r‚  r‚  iR  éÁ   z	9/30/2013z	11/4/2013r$   zW-MON Frequencyz2W-MON)r   r{  r|  r}  )r~  r  r€  r�  )r{  i   i¢  rƒ  z
11/11/2013z2W-MON Frequencyrû  )r   r{  é  )r~  é  r�  )r{  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¡  )r{  rý   r{  r{  zD Frequency)	r   rP   r†   rg  r   rz   rX   rY   r·   )r/   r[   rµ   rh   rð  rÇ  rc   r|   Úrs2rú   Ú	expected2Úrs3Úresult3Ú	expected3Úrs4Úresult4Ú	expected4Údf_dailyÚrs_dÚresult_dÚ
expected_dr   r   r   Útest_resample_dst_anchor2n  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/Berlinr2  re   é   ro   rº  r   r>   r$   r1  ç      @rx   r„   )ÚpytzÚtimezoner   r   ÚlocalizerP   r
   rz   rA   r    r«   rY   rZ   )r/   r(  rl  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Ñ   Ú1Wrv  é*   r›  z
2017-04-02rÕ  rw  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  rw  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   rj  zAmerica/Havanar$   r   z
2018-11-03©rq   T)r²  r0   )g      @g      <@g     @F@)r   r   rP   r¤  rm  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_   C  ó   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_argsA  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_   U  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_args2S  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Úfreq2rS  r/   Ún1_Ún2_r[   Úserrù   rú   r   r   r   Ú test_resample_equivalent_offsetsd  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*   ri  )
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_edges€  s   rÝ  Ú
duplicatesTFc                 C   sÞ   t dddd� |¡}ttdƒ|d�}t||d dœƒ}| r"ddg|_d	}tjt|d
�� | 	d¡ 
tj¡}W d   ƒ n1 s?w   Y  ttjddgddgddgddggtjd�tg d¢dd� |¡|jd�}t ||¡ d S )Nz
2012-01-31rÍ   r‚   ©r4   r2   rq   r$   r   r½   r¾   z!using DatetimeIndexResampler.prodr—   rR  r   rÇ  rÆ  éÒ   r‚  r|  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   )rL  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_deprecated1  s   ÿr  ))Ú2BMEÚ2BM)Ú2BQEÚ2BQ)z2BQE-MARz2BQ-MARc                 C   rÿ  r   r  r  r   r   r   Útest_resample_BM_BQ_deprecatedI  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_right]  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_rightm  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(  rj  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   rl  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’   Úfilterwarningsr    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$  r1  r3  r  Ú__annotations__r®  r4  Údates3r>  r@  rF  rK  rQ  rf  rh  rr  ru  ry  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
ÿ

ýù
	
 \ þþþ#ÿÿÿÿÿþþ
þþþþ