o
    _~#gU¨  ã                   @   sB  d dl m Z  d dlZd dlZd dlZd dlZd dlZd dlmZm	Z	 d dl
mZ d dlmZ d dlZd dlmZmZmZ d dlmZ d dlmZ d dlmZmZmZ d d	lmZ d d
lmZ ej  !d¡Z"e #¡ dd„ ƒZ$ej#dd„ ƒZ%ej#dd„ ƒZ&G dd„ dƒZ'ej  (dg d¢¡dd„ ƒZ)dd„ Z*ej  (dg d¢¡dd„ ƒZ+dS )é    )ÚdatetimeN)ÚDAYSÚMONTHS)ÚIncompatibleFrequency)ÚInvalidIndexError)Ú	DataFrameÚSeriesÚ	Timestamp)Ú
date_range)ÚPeriodÚPeriodIndexÚperiod_range)Ú_get_period_range_edges)Úoffsetsz@ignore:Resampling with a PeriodIndex is deprecated:FutureWarningc                   C   s   t S )N)r   © r   r   úŒ/var/www/static.ux5.de/https/Moving-Object-Detection-with-OpenCV/env/lib/python3.10/site-packages/pandas/tests/resample/test_period_index.pyÚ_index_factory&   ó   r   c                   C   s   dS )NÚpir   r   r   r   r   Ú_series_name+   r   r   c                  C   s   ddd„} | S )zK
    Series with period range index and random data for test purposes.
    ÚDc                 S   sr   t  ¡  d ddg¡}t jd|td t| ||d}W d   ƒ n1 s%w   Y  ttj 	d¡ 
t|ƒ¡|dS )	Nú|zPeriod with BDay freqúPeriodDtype\[B\] is deprecatedÚignore)Úcategory©Úfreqé   ©Úindex)ÚwarningsÚcatch_warningsÚjoinÚfilterwarningsÚFutureWarningr   r   ÚnpÚrandomÚdefault_rngÚstandard_normalÚlen)ÚstartÚendr   ÚmsgÚrngr   r   r   Ú_simple_period_range_series6   s   
ýø	z?simple_period_range_series.<locals>._simple_period_range_seriesN)r   r   )r.   r   r   r   Úsimple_period_range_series0   s   
r/   c                   @   s  e Zd Zej dg d¢¡ej dg d¢¡dd„ ƒƒZdd„ Zej dg d	¢¡ej dg d
¢¡ej dddiddig¡dd„ ƒƒƒZej de	¡ej dddg¡ej dddg¡ej dg d¢¡dd„ ƒƒƒƒZ
dd„ Zej dg d ¢¡d!d"„ ƒZej dd#d$g¡d%d&„ ƒZd'd(„ Zd)d*„ Zd+d,„ Zej de	¡ej d-ddg¡ej dg d.¢¡d/d0„ ƒƒƒZej d1d#d2g¡ej d-ddg¡d3d4„ ƒƒZd5d6„ Zej d7d8g d9¢fd:d;d<gfg¡d=d>„ ƒZd?d@„ ZdAdB„ Zej dCe dD¡ej dD¡g¡dEdF„ ƒZej dCe dD¡ej dD¡g¡dGdH„ ƒZdIdJ„ ZdKdL„ ZdMdN„ Z dOdP„ Z!ej dQe"¡ej d1d#d2g¡ej d-ddg¡dRdS„ ƒƒƒZ#dTdU„ Z$ej de	¡dVdW„ ƒZ%ej dXddg¡dYdZ„ ƒZ&d[d\„ Z'd]d^„ Z(ej dd_g¡ej dg d¢¡d`da„ ƒƒZ)dbdc„ Z*ddde„ Z+dfdg„ Z,dhdi„ Z-djdk„ Z.dldm„ Z/dndo„ Z0dpdq„ Z1drds„ Z2dtdu„ Z3dvdw„ Z4ejj5dxdydzd{„ ƒZ6ej d|g d}¢¡d~d„ ƒZ7ej d|g d€¢¡dd‚„ ƒZ8dƒd„„ Z9d…d†„ Z:d‡dˆ„ Z;ej d‰dŠd‹g¡ej ddŒdg¡dŽd„ ƒƒZ<ej de=j>d‘e=j>d’d“gg d”¢fe=j>e=j>d‘e=j>e=j>e=j>d’d“e=j>e=j>g
g d•¢fg¡ej d–d—d˜e?j@d™dšgfd›d˜dœgfddždšgfg¡dŸd „ ƒƒZAd¡d¢„ ZBej d£g d¤¢¡d¥d¦„ ƒZCd§d¨„ ZDej d©g dª¢¡d«d¬„ ƒZEd­d®„ ZFd¯d°„ ZGej d±d²d³d´dµd¶gfd:d·d²d³d¸d¹gfg¡dºd»„ ƒZHej d¼eI J¡ eI Kd½¡eI Ld½¡g¡d¾d¿„ ƒZMdŒS )ÀÚTestPeriodIndexr   )Ú2DÚ1hÚ2hÚkind)ÚperiodNÚ	timestampc                 C   sÄ   |}|dkr|  ¡  |¡ ¡ }n(|jd j dd}|jd |jj j dd}t|||dd}|  ¡  |¡ |¡}d}	tj	t
|	d	 |j||d
 ¡ }
W d   ƒ n1 sUw   Y  t |
|¡ d S )Nr6   r   r*   ©ÚhowéÿÿÿÿÚleft)r*   r+   r   Ú	inclusivez?The 'kind' keyword in (Series|DataFrame).resample is deprecated©Úmatch©r4   )Úto_timestampÚresampleÚasfreqr   r   r
   ÚreindexÚ	to_periodÚtmÚassert_produces_warningr$   Úassert_almost_equal)ÚselfÚseries_and_framer   r4   ÚobjÚexpectedr*   r+   Ú	new_indexr,   Úresultr   r   r   Útest_asfreqF   s   ÿzTestPeriodIndex.test_asfreqc                 C   s2  |}t |jd jdd|jd jdddd}| ¡ j|dd}d	}tjt|d
 |jdddjdd}W d   ƒ n1 s?w   Y  t 	||¡ | 
d¡}t |jd jdd|jd jdddd}| ¡ j|dd}d}tjt|d
 |jdddjdd}W d   ƒ n1 sŒw   Y  t ||¡ d S )Nr   r*   r7   r9   r2   r   g      @)Ú
fill_valueú3The 'kind' keyword in Series.resample is deprecatedr<   r6   r>   Úvalueç      @ú6The 'kind' keyword in DataFrame.resample is deprecated)r
   r   r?   rB   rD   rE   r$   r@   rA   Úassert_series_equalÚto_frameÚassert_frame_equal)rG   ÚseriesÚsrK   rJ   r,   rL   Úframer   r   r   Útest_asfreq_fill_valueY   s0   ýÿ
ýÿz&TestPeriodIndex.test_asfreq_fill_value)ÚhÚ12hr1   ÚW)Nr5   r6   ÚkwargsÚonÚdateÚlevelÚdc           	   	   C   sÊ   t jt|ƒt jd}t||dœtjj||gddgdd}d}d}tj	t
|d	3 tjt|d	 |j|fd
|i|¤Ž W d   ƒ n1 sFw   Y  W d   ƒ d S W d   ƒ d S 1 s^w   Y  d S )N©Údtype)r_   ÚaÚvra   )Únamesr   zˆResampling from level= or on= selection with a PeriodIndex is not currently supported, use \.set_index\(\.\.\.\) to explicitly set indexrR   r<   r4   )r%   Úaranger)   Úint64r   ÚpdÚ
MultiIndexÚfrom_arraysÚpytestÚraisesÚNotImplementedErrorrD   rE   r$   r@   )	rG   r   r   r4   r]   r-   Údfr,   Údepr_msgr   r   r   Útest_selectiont   s   þÿÿÿ"ÿzTestPeriodIndex.test_selectionÚmonthÚmethÚffillÚbfillÚconvr*   r+   )Úoffsetr5   )©r   r   ©ÚBrz   ©ÚMEÚM)ÚQEÚQc                 C   sª   |ddd|› d}|dkrt nd }d}	|d u rd}	t }tj||	d" t|j||d	|ƒƒ }
|
j||d
}| ||¡ ¡ }W d   ƒ n1 sHw   Y  t |
|¡ d S )Nú1/1/1990z
12/31/1991úY-r   rz   r   ú+Resampling with a PeriodIndex is deprecatedr<   ©Ú
conventionr7   )	r$   rD   rE   Úgetattrr@   r?   rA   rC   rS   )rG   rw   r5   rv   rs   rr   r/   ÚtsÚwarnr,   rL   rJ   r   r   r   Útest_annual_upsample_cases‰   s   	ýz*TestPeriodIndex.test_annual_upsample_casesc                 C   sz   |dddd}|  d¡ ¡ }| |jj¡ ¡ }tdddd|_t ||¡ t |  d¡ ¡ |¡ t |  d¡ ¡ |¡ d S )Nr€   ú	6/30/1995r}   r   úY-DECÚY)r@   ÚmeanÚgroupbyr   Úyearr   rD   rS   )rG   r/   r†   rL   rJ   r   r   r   Útest_basic_downsamplež   s   z%TestPeriodIndex.test_basic_downsamplezrule,expected_error_msg))rŠ   z<YearEnd: month=12>)úQ-MARz<QuarterEnd: startingMonth=3>)r}   z
<MonthEnd>)zw-thuz<Week: weekday=3>c                 C   s\   |dddd}d|› d}t jt|d | |¡ ¡  W d   ƒ d S 1 s'w   Y  d S )Nr€   r‰   zw-wedr   z3Frequency <Week: weekday=2> cannot be resampled to z&, as they are not sub or super periodsr<   )rl   rm   r   r@   rŒ   )rG   r/   ÚruleÚexpected_error_msgr†   r,   r   r   r   Útest_not_subperiodª   s   ÿÿ"ÿz"TestPeriodIndex.test_not_subperiodr   r1   c                 C   s   |dddd}|  d¡ ¡ }d}tjt|d |j |dd	 ¡ }W d   ƒ n1 s+w   Y  |j|dd
}| |d¡ |¡}t 	||¡ d S )Nr€   r‰   r}   r   rŠ   ú9The 'convention' keyword in Series.resample is deprecatedr<   r+   rƒ   r7   rt   )
r@   rŒ   rD   rE   r$   rt   r?   rA   rC   rS   )rG   r   r/   r†   rL   r,   Ú	resampledrJ   r   r   r   Útest_basic_upsample½   s   ÿz#TestPeriodIndex.test_basic_upsamplec                 C   sš   t dddd}ttj d¡ t|ƒ¡|ƒ}d}tjt	|d |j
dd	d
jdd}W d   ƒ n1 s4w   Y  | d¡j|jddd}t ||¡ d S )Nú1/1/2000é   r‹   ©Úperiodsr   r   r”   r<   r}   r+   rƒ   )Úlimitrt   )Úmethodr›   )r   r   r%   r&   r'   r(   r)   rD   rE   r$   r@   rt   rA   rB   r   rS   )rG   r-   r†   r,   rL   rJ   r   r   r   Útest_upsample_with_limitÉ   s   ÿz(TestPeriodIndex.test_upsample_with_limitc                 C   sN   |dddd}t d|iƒ}| d¡ ¡ }|d  d¡ ¡ }t |d |¡ d S )Nr€   ú
12/31/1995rŠ   r   rd   r   )r   r@   rt   rD   rS   )rG   r/   r†   ro   ÚrdfÚexpr   r   r   Útest_annual_upsampleÓ   s
   z$TestPeriodIndex.test_annual_upsamplec                 C   sb   t dddd}tg d¢|d}| d¡ ¡ }t dd	dd}|jdd
dj|dd}t ||¡ d S )NÚ2000Ú2003rŠ   r   )é   r   é   é   r   r}   ú2000-01z2003-12r*   r7   rt   ©rœ   )r   r   r@   rt   rA   rB   rD   rS   )rG   r-   r†   rL   Úex_indexrJ   r   r   r   Útest_annual_upsample2Ú   s   z%TestPeriodIndex.test_annual_upsample2r„   )rx   ry   r{   c                 C   sª   d|› }|dd|d}|dkrt nd }d}	|d u rd}	t }tj||	d  |j||d	 ¡ }
|
j||d
}| |d¡ ¡ }W d   ƒ n1 sHw   Y  t |
|¡ d S )NúQ-r€   rž   r   rz   r   r‚   r<   rƒ   r7   rt   ©	r$   rD   rE   r@   rt   r?   rA   rC   rS   )rG   rr   rw   r5   r„   r/   r   r†   r‡   r,   rL   rJ   r   r   r   Útest_quarterly_upsampleä   s   
ýz'TestPeriodIndex.test_quarterly_upsampleÚtargetrz   c           	      C   s    |dddd}|dkrd nt }d}|d u rd}t }tj||d  |j||d	 ¡ }|j||d
}| |d¡ ¡ }W d   ƒ n1 sCw   Y  t ||¡ d S )Nr€   rž   r}   r   r   r   r‚   r<   rƒ   r7   rt   r¬   )	rG   r®   r„   r/   r†   r‡   r,   rL   rJ   r   r   r   Útest_monthly_upsampleù   s   ýz%TestPeriodIndex.test_monthly_upsamplec                 C   sü   t tdƒtddddddd}tj|dd	…< ttd
dƒtddƒgdd}t ddg|d}d}tjt	|d | 
¡ jddd ¡ }W d   ƒ n1 sKw   Y  t ||¡ tjt	|d |jddd ¡ }W d   ƒ n1 sqw   Y  t ||¡ d S )Néd   Ú20130101rW   Úidx)r   rš   ÚnameÚfloat©r   rc   é
   é   z2013-01-01 00:00Úminz2013-01-01 00:01)r³   g     @A@g     àS@r   rO   r<   r5   r>   )r   Úranger
   r%   Únanr   r   rD   rE   r$   rC   r@   rŒ   rS   )rG   rW   r   rJ   r,   rL   Úresult2r   r   r   Útest_resample_basic	  s(   ýþÿÿz#TestPeriodIndex.test_resample_basiczfreq,expected_valsr}   )é   é   r½   é	   Ú2Mé<   é(   c                 C   sP   t dtdddd}| |¡ ¡ }td|t|ƒd}t ||d}t ||¡ d S )Nr¤   r¢   r°   ©r*   rš   r   ©r*   r   rš   )r   r   r@   Úcountr)   rD   rS   )rG   r   Úexpected_valsrV   rL   Úexpected_indexrJ   r   r   r   Útest_resample_count  s   
ÿz#TestPeriodIndex.test_resample_countc                 C   s@   t tdƒtddddd}|}t| d¡|ƒƒ }t ||¡ d S )Nr¥   r¢   r}   ©r*   rš   r   r   )r   r¹   r   r…   r@   rD   rS   )rG   Úresample_methodrV   rJ   rL   r   r   r   Útest_resample_same_freq+  s   z'TestPeriodIndex.test_resample_same_freqc                 C   sh   d}t dddd}ttdƒ|d}| d¡}tjt|d | ¡  W d   ƒ d S 1 s-w   Y  d S )	NzcFrequency <MonthEnd> cannot be resampled to <Week: weekday=6>, as they are not sub or super periodsr¢   r¥   r}   rÉ   r   r\   r<   )r   r   r¹   r@   rl   rm   r   rŒ   )rG   r,   r   ÚserÚrsr   r   r   Útest_resample_incompat_freq3  s   ÿ

"þz+TestPeriodIndex.test_resample_incompat_freqÚtzúAmerica/Los_Angelesc                 C   sÎ   |}t dddddtjd}t dddddtjd}t||ddd	}td|d
}| |¡}d}tjt|d |j	ddd 
¡ }W d   ƒ n1 sHw   Y  t||dddt ¡  }	td|	d
}
t ||
¡ d S )NiÝ  é   r¤   r   )rŽ   rr   ÚdayÚhourÚminuteÚtzinfor   rZ   r²   )r   r³   r   rO   r<   r   r5   r>   )r*   r+   r   r³   ç      ð?)r   ÚpytzÚutcr
   r   Ú
tz_convertrD   rE   r$   r@   rŒ   r   r   ÚDayrS   )rG   rÏ   Úlocal_timezoner*   r+   r   rV   r,   rL   rÇ   rJ   r   r   r   Útest_with_local_timezone?  s   	
ÿÿz(TestPeriodIndex.test_with_local_timezonec                 C   sr   t ddd||d}td|d}| d¡ ¡ }tjddg|dd	 |¡}td
|d}t ||¡ |j	j
|ks7J ‚d S )Nz
2017-01-01é0   rZ   )rš   r   rÏ   Úunitr   r   r   z
2017-01-02)rÏ   r   ç       @)r
   r   r@   rŒ   ri   ÚDatetimeIndexÚas_unitrD   rS   r   rÏ   )rG   rÏ   rÞ   ÚdtirÌ   rL   Úexp_dtirJ   r   r   r   Útest_resample_with_tz_  s   	
ÿþþz%TestPeriodIndex.test_resample_with_tzc                 C   s^   t dddd}tt t|ƒ¡|d}| d¡}tj|jdd|_| 	d¡ 
¡ }t ||¡ d S )Nz
2017-03-12z2017-03-12 1:45:00Ú15minr   r   z
US/PacificÚ900s)r
   r   r%   Úzerosr)   Útz_localizeri   rà   r   r@   rŒ   rD   rS   )rG   r   rW   rJ   rL   r   r   r   Ú'test_resample_nonexistent_time_bin_edgev  s   
z7TestPeriodIndex.test_resample_nonexistent_time_bin_edgec                 C   sr   t dddd}| d¡ d¡}tttt|ƒƒƒ|d}| tj	dd	¡ 
¡ }t d
dddddd}t |j|¡ d S )Nz
2017-10-10z
2017-10-20r2   ©r*   r+   r   ÚUTCzAmerica/Sao_Paulo©Údatar   Ú1Dr   z
2017-10-09r   Úshift_forwardr:   )r*   r+   r   rÏ   Únonexistentr;   )r
   rè   rÙ   r   Úlistr¹   r)   r   ri   ÚGrouperrÅ   rD   Úassert_index_equalr   )rG   r   ro   rL   rJ   r   r   r   Ú(test_resample_nonexistent_time_bin_edge2  s   úz8TestPeriodIndex.test_resample_nonexistent_time_bin_edge2c                 C   sD   t ddddd}tt t|ƒ¡|d}| d¡ ¡ }t ||¡ d S )Nz2014-10-25 22:00:00z2014-10-26 00:30:00Ú30minzEurope/London©r   rÏ   r   )	r
   r   r%   rç   r)   r@   rŒ   rD   rS   )rG   r²   rJ   rL   r   r   r   Ú%test_resample_ambiguous_time_bin_edge  s   üz5TestPeriodIndex.test_resample_ambiguous_time_bin_edgec                 C   s\   t tjdddtddddd}| d¡ ¡ }| d¡ ¡  d¡ ¡  d¡}t 	||¡ d S )	Nr¿   rh   rb   z
2010-01-01r~   r™   r   r|   )
r   r%   rg   r
   r@   rt   ÚlastÚastyperD   rS   )rG   rW   rø   Úbothr   r   r   Ú!test_fill_method_and_how_upsample›  s   þz1TestPeriodIndex.test_fill_method_and_how_upsamplerÒ   c                 C   sª   d|› }|dd|d}|dkrd nt }d}|d u rd}t }tj||d  |j||d	 ¡ }	|	j||d
}
|
 |d¡ ¡ }
W d   ƒ n1 sHw   Y  t |	|
¡ d S )NzW-r€   rž   r   r   r   r‚   r<   rƒ   r7   rt   r¬   )rG   rÒ   r®   r„   r/   r   r†   r‡   r,   rL   rJ   r   r   r   Útest_weekly_upsample¥  s   
ýz$TestPeriodIndex.test_weekly_upsamplec                 C   sx   |dddd}d}t jt|d |jddd	 ¡ }W d   ƒ n1 s$w   Y  |jd
d d¡ ¡ }t  ||¡ d S )Nr€   rž   r}   r   rO   r<   rŠ   r6   r>   r*   r7   zYE-DEC)rD   rE   r$   r@   rŒ   r?   rS   )rG   r/   r†   r,   rL   rJ   r   r   r   Útest_resample_to_timestamps·  s   ÿz+TestPeriodIndex.test_resample_to_timestampsc                 C   s’   |ddd|› d}|  d|› ¡ ¡ }|jddd}t|jd	  dd¡|jd
  dd¡d|› d}|j| dd¡dd}||_t ||¡ d S )NÚ1990Ú1992r   r   r«   r   r*   r7   r   r9   r+   rW   rt   r¨   )	r@   rt   r?   r   r   rA   rB   rD   rS   )rG   r/   rr   r†   Úquar_tsÚstampsÚqdatesrJ   r   r   r   Útest_resample_to_quarterlyÀ  s   ýz*TestPeriodIndex.test_resample_to_quarterlyr8   c                 C   s€   |dddd}d}t jt|d |jd|d ¡ }W d   ƒ n1 s$w   Y  |jd|d	}|j|jd
d}t  ||¡ d S )Nrþ   rÿ   zY-JUNr   r”   r<   r   rƒ   r7   rt   r¨   )	rD   rE   r$   r@   rt   rA   rB   r   rS   )rG   r/   r8   r†   r,   rL   rJ   r   r   r   Ú$test_resample_to_quarterly_start_endÑ  s   ÿz4TestPeriodIndex.test_resample_to_quarterly_start_endc                 C   sd   t g d¢dd}ttj d¡ d¡|d}| ¡ }| d¡ ¡ }| d¡ ¡  	d¡}t
 ||¡ d S )N)éÐ  éÕ  é×  iÙ  r‹   r   r   r¦   r   ÚYE)r   r   r%   r&   r'   r(   r?   r@   rt   rC   rD   rS   )rG   r-   rW   r  ÚfilledrJ   r   r   r   Útest_resample_fill_missingá  s   z*TestPeriodIndex.test_resample_fill_missingc                 C   sp   t g d¢dd}ttj d¡ d¡|d}d}tjt|d | 	d¡ 
¡  W d   ƒ d S 1 s1w   Y  d S )	N)r  r  r  r  r  r‹   r   r   r˜   r   z8Reindexing only valid with uniquely valued Index objectsr<   )r   r   r%   r&   r'   r(   rl   rm   r   r@   rt   )rG   r-   rW   r,   r   r   r   Útest_cant_fill_missing_dupsë  s   "ÿz+TestPeriodIndex.test_cant_fill_missing_dupsÚ5minc                 C   s¤   t dddd}ttj d¡ t|ƒ¡|d}| ¡  |¡ 	¡ }|dkr(| 
|¡}d}tjt|d	 |j||d
 	¡ }W d   ƒ n1 sEw   Y  t ||¡ d S )Nr—   z1/5/2000r¸   r   r   r   r6   rO   r<   r>   )r   r   r%   r&   r'   r(   r)   r?   r@   rŒ   rC   rD   rE   r$   rS   )rG   r   r4   r-   r†   rJ   r,   rL   r   r   r   Útest_resample_5minuteò  s   
ÿz%TestPeriodIndex.test_resample_5minutec                 C   s¾   |dddd}|  d¡ ¡ }| d¡ tddƒ¡}t ||¡ |ddƒ}d}tjt|d |j d	d
d ¡ }W d   ƒ n1 sAw   Y  tddd	d}|jd	d
d |¡}t ||¡ d S )Nr—   z2/1/2000rz   r   r   z1/3/2000r”   r<   rZ   rW   rƒ   z2/1/2000 23:00r7   )r@   rA   rB   r   rD   rS   rE   r$   )rG   r/   r†   rL   rJ   r,   Úexp_rngr   r   r   Ú"test_upsample_daily_business_dailyÿ  s   
ÿz2TestPeriodIndex.test_upsample_daily_business_dailyc                 C   sd   t dddd}tt d¡|d}|d d… }| d¡ t¡}| d¡ t¡j|j }t	 
||¡ d S )	Nz1/1/2012r  iè  rÄ   r°   r   z2012-01-04 06:55Ú10min)r
   r   r%   Úarrayr@   Úapplyr)   Úlocr   rD   rS   )rG   ÚdrrW   ÚsubsetrL   rJ   r   r   r   Útest_resample_irregular_sparse  s   z.TestPeriodIndex.test_resample_irregular_sparsec                 C   s‚   t dddd}ttj d¡ t|ƒ¡|d}| d¡ ¡ }| 	¡  
¡ s%J ‚| d¡ ¡  ¡ d d… }| d¡ ¡ }t ||¡ d S )	Nr—   r¶   zW-WEDr™   r   r   zW-THUr9   )r
   r   r%   r&   r'   r(   r)   r@   rA   ÚisnaÚallrt   rD   rS   )rG   r-   r†   rL   rJ   r   r   r   Útest_resample_weekly_all_na  s   z+TestPeriodIndex.test_resample_weekly_all_nac           	      C   sž   t dd|d}ttt|ƒƒ|d}| d¡}| d¡}| d¡ ¡ }| ¡ }|j	 d ¡|_	| d¡ ¡  d¡}t
j|j	dd|_	t ||¡ | d	¡ ¡ }d S )
Nz	2012-4-13z2012-5-1)r*   r+   rÞ   r   rë   rÐ   r\   r   r   )r
   r   r¹   r)   rè   rÙ   r@   rŒ   Úcopyr   ri   rà   rD   rS   )	rG   rÞ   r  r†   Úts_utcÚts_localrL   Úts_local_naiver    r   r   r   Útest_resample_tz_localized$  s   

z*TestPeriodIndex.test_resample_tz_localizedc                 C   sÎ   t ddddd}tddg|d}|jd	d
d
d ¡ }t ddd	dd}tdg|d}t ||¡ d}tjt|d |jd	dd ¡ }W d   ƒ n1 sLw   Y  tddd	d}tdg|d}t ||¡ d S )Nz2001-09-20 15:59z2001-09-20 16:00r¸   zAustralia/Sydneyrö   r¤   r   r   r   Úright©ÚclosedÚlabelz
2001-09-21)rš   r   rÏ   g      ø?rO   r<   r5   r>   z
2001-09-20r™   )	r
   r   r@   rŒ   rD   rS   rE   r$   r   )rG   r²   rW   rL   r©   rJ   r,   r   r   r   Útest_resample_tz_localized28  s   ÿÿz+TestPeriodIndex.test_resample_tz_localized2c                 C   sÀ   t dddd}| d¡}t|d}tj d¡ t|ƒ¡|d< t tj d¡ t|ƒ¡¡|d	< t| 	d
¡ 
¡ d | 	d
¡ ¡ d	 dœdd	gd}| 	d
¡ dddœ¡jdd	gd}t ||¡ d S )Nz1/1/2011i N  rZ   r™   ÚESTr   r   ÚfirstÚsecondr  )r%  r&  )ÚcolumnsÚsumrŒ   )r
   rè   r   r%   r&   r'   r(   r)   Úcumsumr@   r(  rŒ   ÚaggrB   rD   rU   )rG   r-   r†   rJ   rL   r   r   r   Útest_resample_tz_localized3M  s"   

 þûþÿz+TestPeriodIndex.test_resample_tz_localized3c                 C   sÈ   t tj d¡ d¡tddddd}tj|jd< |jdd	d
d 	¡ }|dd … jdd	d
d 	¡ }t
 ||¡ |jdd	d	d 	¡ }|dd … jdd	d	d 	¡ }tdddd}t
 |j|¡ t
 ||¡ d S )Nr   é   z1/1/2012 9:30Ú1minrÄ   r   r   r  r:   r  r   r¤   r¥   )r   r%   r&   r'   r(   r
   rº   Úilocr@   rŒ   rD   rS   ró   r   )rG   rW   rL   r    r©   r   r   r   Útest_closed_left_cornerc  s   þz'TestPeriodIndex.test_closed_left_cornerc                 C   sT   t dddd}tt d¡|d}| d¡ ¡ }| ¡  d¡ ¡  ¡ }t 	||¡ d S )NÚ2000Q1r¶   úQ-DECr™   r   r‹   r  )
r   r   r%   rg   r@   rŒ   r?   rC   rD   rS   )rG   r-   r†   rL   r    r   r   r   Útest_quarterly_resamplingw  s
   z)TestPeriodIndex.test_quarterly_resamplingc                 C   sR   t dddd}t|ƒ}dd„ t|ƒD ƒ}t|g d¢|d}|jd	d
d
d ¡  d S )Nz8/6/2012z	8/26/2012r   rê   c                 S   s   g | ]}|gd  ‘qS )r˜   r   )Ú.0Úxr   r   r   Ú
<listcomp>ƒ  s    zATestPeriodIndex.test_resample_weekly_bug_1726.<locals>.<listcomp>)ÚopenÚhighÚlowÚcloseÚvol)r'  r   zW-MONr:   r   )r
   r)   r¹   r   r@   r%  )rG   ÚindÚnrí   ro   r   r   r   Útest_resample_weekly_bug_1726  s
   z-TestPeriodIndex.test_resample_weekly_bug_1726c                 C   s”   t  ddg¡ d¡ d¡}tddg|d}|jdd	d	d
 ¡  ¡ }g d¢}t j|dd d¡ 	|j
¡}t j|dd}tg d¢|d}t ||¡ d S )Nl     æZÑ! l     ²NìEà! rë   zAmerica/Chicagor¤   r   r   r[   r  r   )z2016-03-09 12:00:00-06:00z2016-03-10 00:00:00-06:00z2016-03-10 12:00:00-06:00z2016-03-11 00:00:00-06:00z2016-03-11 12:00:00-06:00z2016-03-12 00:00:00-06:00z2016-03-12 12:00:00-06:00z2016-03-13 00:00:00-06:00z2016-03-13 13:00:00-05:00z2016-03-14 01:00:00-05:00z2016-03-14 13:00:00-05:00z2016-03-15 01:00:00-05:00z2016-03-15 13:00:00-05:00T)rØ   r   )rÖ   rÖ   rÖ   rÖ   rÖ   rÖ   rÖ   rÖ   rÖ   rÖ   rÖ   rÖ   rß   )ri   rà   rè   rÙ   r   r@   rø   rt   Úto_datetimerá   rÞ   rD   rU   )rG   r   ro   rL   Úexpected_index_valuesrJ   r   r   r   Ú"test_resample_with_dst_time_change‰  s"   ýýþz2TestPeriodIndex.test_resample_with_dst_time_changec                 C   sn   t t dd¡tjd}| d¡ ¡ }| d¡ ¡  d¡ ¡ }|jd tdƒks)J ‚|jd |jd ks5J ‚d S )NÚ20000101Ú20000201rµ   ÚBMSrz   r   Ú20000103)	r   ri   Úbdate_ranger%   Úfloat64r@   rŒ   r   r	   )rG   Ú
timeseriesÚres1Úres2r   r   r   Útest_resample_bms_2752®  s   ÿz&TestPeriodIndex.test_resample_bms_2752z6Commented out for more than 3 years. Should this work?)Úreasonc                 C   sl   t dddd}tt d¡|d}t dddd	}|jdd
d |¡}|jdd}| d¡ ¡ }t	 
||¡ d S )Nr§   r¥   r|   r™   r   z
2000-01-01z
2000-03-31r   r   r+   r7   ru   r¨   )r   r   r%   rg   rA   rB   Úfillnar@   rŒ   rD   rS   )rG   r-   r†   Ú	exp_indexrJ   rL   r   r   r   Útest_monthly_convention_span¸  s   z,TestPeriodIndex.test_monthly_convention_spanzfrom_freq, to_freq))r   r|   )r~   r  )r|   r~   )r   r\   c                 C   ó\   t dd|d}ttj d¡ t|ƒdf¡|ƒ}| |¡ ¡ }t	 
||j|ddd ¡ ¡ d S )Nú	8/15/2012r°   rÉ   r   r  r   ©r
   r   r%   r&   r'   r(   r)   r@   rŒ   rD   rU   ©rG   Ú	from_freqÚto_freqr²   ro   r•   r   r   r   Útest_default_right_closed_labelÆ  s    ÿz/TestPeriodIndex.test_default_right_closed_label))r   ÚMS)r~   ÚYS)r|   ÚQS)rZ   r   )r¸   rZ   c                 C   rO  )NrP  r°   rÉ   r   r:   r   rQ  rR  r   r   r   Útest_default_left_closed_labelÒ  s    ÿz.TestPeriodIndex.test_default_left_closed_labelc                 C   sT   t dddd}ttj d¡ t|ƒ¡|d}| d¡ ¡ }t	 
|jd | ¡ ¡ d S )	Nz
2012-01-01z
2012-12-31r}   rê   r   r   r‹   r   )r   r   r%   r&   r'   r(   r)   r@   rŒ   rD   rF   r.  )rG   r   rÌ   rL   r   r   r   Útest_all_values_single_binß  s   z*TestPeriodIndex.test_all_values_single_binc                 C   sŽ   t tj d¡ d¡tdddd}| d¡ ¡ }tj	|j
dd	…  ¡ |j
d	d …  ¡ gd
dj}tjtdƒtdƒgddd|_t ||¡ d S )Nr   )r¿   r¥   z2000-1-1r¿   )rš   r   Ú5Dr   r˜   r¤   )Úaxisz2000-1-6zM8[ns])rc   r   )r   r%   r&   r'   r(   r
   r@   rŒ   ri   Úconcatr.  ÚTrà   r	   r   rD   rU   )rG   ro   rL   rJ   r   r   r   Ú(test_evenly_divisible_with_no_extra_binsç  s   
þ0ÿz8TestPeriodIndex.test_evenly_divisible_with_no_extra_binsc                 C   sÌ   t ddd}tdddddd	œgd d
ddddd	œgd  | |¡d ¡ }t dddd}tdddddd	œgd |d}| d¡ ¡ }t ||¡ tdddddd	œgd |d}| d¡ ¡ }t ||¡ d S )Nz2001-5-4é   rÃ   r¤   éP   éZ   r·   é   )ÚREST_KEYÚ
DLY_TRN_QTÚDLY_SLS_AMTÚCOOP_DLY_TRN_QTÚCOOP_DLY_SLS_AMTr   éF   r¶   é2   r   r¦   Ú7Dr™   é   r,  i  i¼  i0  i  )	r
   r   ÚappendÚ
sort_indexr@   rÅ   rD   rU   r(  )rG   r   ro   rJ   rL   r   r   r   Ú)test_evenly_divisible_with_no_extra_bins2ö  sl   ûÿ	÷ûÿ	÷öëêûÿ	÷
õûÿ	÷
õz9TestPeriodIndex.test_evenly_divisible_with_no_extra_bins2zfreq, period_mult)rZ   é   )r[   r   Nr5   c           
      C   s®   t dddd}ttt|ƒƒ|d}| ¡  |¡ ¡  |¡}t d||t|ƒ d}| |¡}d}t	j
t|d |j||d ¡ }	W d   ƒ n1 sJw   Y  t	 |	|¡ d S )	Nr¢   r   r¶   rÄ   r   rO   r<   r>   )r   r   r¹   r)   r?   r@   ÚohlcrC   rB   rD   rE   r$   rU   )
rG   r   Úperiod_multr4   r   rW   rJ   rK   r,   rL   r   r   r   Útest_upsampling_ohlc1  s   
ÿz$TestPeriodIndex.test_upsampling_ohlczperiods, valuesú1970-01-01 00:00:00z1970-01-01 00:00:02z1970-01-01 00:00:03)r   r¥   r˜   é   rÑ   )
r¤   r   r¥   r˜   é   é   ru  rÑ   é   é   zfreq, expected_valuesÚ1sr¥   ru  rÑ   Ú2sg      "@Ú3sg      @c                 C   sŠ   t |dd}t||d}tdt|ƒ|d}t||d}d}	tjt|	d | |¡}
W d   ƒ n1 s4w   Y  |
 ¡ }t 	||¡ d S )NrW   r   r   rt  r™   r‚   r<   )
r   r   r   r)   rD   rE   r$   r@   rŒ   rU   )rG   rš   Úvaluesr   Úexpected_valuesr   rX   rÇ   rJ   r,   rÍ   rL   r   r   r   Útest_resample_with_natB  s   (
ÿÿz&TestPeriodIndex.test_resample_with_natc                 C   sd   t tjgd dd}tg d¢|dgd}t g |jd}t|dgdd	}| d
¡ ¡ }t ||¡ d S )Nr¥   rW   r   )r   r¥   r˜   rd   )r   r'  )rí   r   rF  )r   r'  rc   rz  )	r   ri   ÚNaTr   r   r@   rŒ   rD   rU   )rG   r   rX   rÇ   rJ   rL   r   r   r   Útest_resample_with_only_natw  s   z+TestPeriodIndex.test_resample_with_only_natz$start,end,start_freq,end_freq,offset))Ú19910905ú19910909 03:00rZ   Ú24hÚ10h)r‚  ú19910909 12:00rZ   r„  r…  )r‚  z19910909 23:00rZ   r„  r…  )ú19910905 10:00Ú19910909rZ   r„  r…  )r‡  ú19910909 10:00rZ   r„  r…  )r‚  r‰  rZ   r„  r…  )ú19910905 12:00rˆ  rZ   r„  r…  )rŠ  rƒ  rZ   r„  r…  )rŠ  r†  rZ   r„  r…  )rŠ  r†  rZ   r„  Ú34h)rŠ  r†  rZ   Ú17hr…  )rŠ  r†  rZ   rŒ  Ú3h)r‚  z19910913 06:00r3   r„  r…  )r‚  z19910905 01:39ÚMinÚ5MinÚ3Min)r‚  z19910905 03:18Ú2Minr  r  c                 C   sœ   t |||d}tt t|ƒ¡|d}d}tjt|d |j||d}	W d   ƒ n1 s-w   Y  |	 	¡ }
|
 
|¡}
| 
¡ j||d 	¡ }t |
|¡ d S )Nr   r   r‚   r<   ©rw   )r   r   r%   rg   r)   rD   rE   r$   r@   rŒ   r?   rS   )rG   r*   r+   Ú
start_freqÚend_freqrw   r   rÌ   r,   rÍ   rL   rJ   r   r   r   Útest_resample_with_offset€  s   ÿ
z)TestPeriodIndex.test_resample_with_offsetc                 C   sª   t dddd}tt t|ƒ¡|d}d}tjt|d |jdd	d
}W d   ƒ n1 s-w   Y  | 	¡ }| 
d¡}| 
¡ jdd	d
 	¡ }|j d ¡|_t ||¡ d S )NrŠ  z19910909 1:00rZ   r   r   r‚   r<   r}   r  r’  r|   )r   r   r%   rg   r)   rD   rE   r$   r@   rŒ   r?   r   Ú
_with_freqrS   )rG   r   rÌ   r,   rÍ   rL   rJ   r   r   r   Útest_resample_with_offset_month¡  s   ÿ
z/TestPeriodIndex.test_resample_with_offset_monthz1first,last,freq,freq_to_offset,exp_first,exp_last))r‚  Ú19920406r   r   r‚  r˜  )z19910905 00:00ú19920406 06:00r   r   r‚  r˜  )ú19910905 06:00r™  rZ   rZ   rš  r™  )Ú19910906r˜  r}   r|   z1991-09ú1992-04)Ú19910831Ú19920430r}   r|   ú1991-08rœ  )rŸ  rœ  r}   r|   rŸ  rœ  c           	      C   sZ   t |ƒ}t |ƒ}t ||d}t ||d}tjj |¡}t|||ƒ}||f}||ks+J ‚d S )Nr   )r   ri   ÚtseriesÚfrequenciesÚ	to_offsetr   )	rG   r%  rø   r   Úfreq_to_offsetÚ	exp_firstÚexp_lastrL   rJ   r   r   r   Útest_get_period_range_edges¯  s   z+TestPeriodIndex.test_get_period_range_edgesc                 C   sª   t dddd}t d¡}tj|dd…< t||ƒ ¡ }d}tjt|d | 	d¡}W d   ƒ n1 s3w   Y  |j
d	d
}tdtjgtddgddd}t ||¡ d S )NÚ2018r|   rv  rÄ   r¥   r‚   r<   r   r¤   )Ú	min_countrQ   Ú2018Q1Ú2018Q2r1  r   r   )r
   r%   Úonesrº   r   rC   rD   rE   r$   r@   r(  r   rS   )rG   r   rí   rW   r,   rÍ   rL   rJ   r   r   r   Útest_sum_min_countÏ  s   
ÿÿz"TestPeriodIndex.test_sum_min_countc                 C   sÄ   d}d}t jt|d tdddd}W d   ƒ n1 sw   Y  tt t|ƒ¡|d}tddd	d}td
dg|d}t jt|d | d¡ 	¡ }W d   ƒ n1 sUw   Y  t  
||¡ d S )Nz:'T' is deprecated and will be removed in a future version.z:'L' is deprecated and will be removed in a future version.r<   z2020-01-01 00:00:00 00:00z2020-01-01 00:00:00 00:01ÚLr   r   r¸   g    àKÝ@g     Lí@r^  ©rD   rE   r$   r   r   r%   rg   r)   r@   rŒ   rS   )rG   Úmsg_tÚmsg_lÚrng_lrÌ   r-   rJ   rL   r   r   r   Útest_resample_t_l_deprecatedÞ  s    ÿÿÿÿz,TestPeriodIndex.test_resample_t_l_deprecatedz.freq, freq_depr, freq_res, freq_depr_res, dataÚ2QÚ2qÚ2YÚ2yg      à?Ú2mrÖ   rQ   c                 C   s  d|dd … › d}d|dd … › d d|dd … › d}d|dd … › d t jt|d tdd|d	}W d   ƒ n1 sAw   Y  tt t|ƒ¡|d
}	tdd|d	}
t||
d}t jt|d |	 |¡ 	¡ }W d   ƒ n1 sww   Y  t  
||¡ d S )Nú'r¤   z)' is deprecated and will be removed in a zfuture version. Please use 'z
' instead.r<   z
2020-01-01z
2020-08-01r   r   rì   r®  )rG   r   Ú	freq_deprÚfreq_resÚfreq_depr_resrí   rp   Údepr_msg_resr±  rÌ   r-   rJ   rL   r   r   r   Ú,test_resample_lowercase_frequency_deprecatedñ  s   
ÿÿz<TestPeriodIndex.test_resample_lowercase_frequency_deprecatedrw   r   c                 C   sR   d|j › d}|}tjt|d |j|d W d   ƒ d S 1 s"w   Y  d S )NzInvalid offset: 'z' for converting time series r<   r   )Úbaserl   rm   Ú
ValueErrorrA   )rG   rw   rH   r,   ro   r   r   r   Ú!test_asfreq_invalid_period_offset  s
   
"ÿz1TestPeriodIndex.test_asfreq_invalid_period_offset)NÚ__name__Ú
__module__Ú__qualname__rl   ÚmarkÚparametrizerM   rY   rq   r   rˆ   r   r“   r–   r   r¡   rª   r­   r¯   r¼   rÈ   rË   rÎ   r×   ÚtimezoneÚdateutilrÏ   ÚgettzrÜ   rä   ré   rô   r÷   rû   r   rü   rý   r  r  r
  r  r  r  r  r  r  r#  r+  r/  r2  r=  r@  rJ  ÚxfailrN  rU  rY  rZ  r_  ro  rs  ri   r€  r%   rº   r  r  r•  r—  r¦  r¬  r²  r½  r   Ú
MonthBeginÚ
BYearBeginÚBusinessHourrÀ  r   r   r   r   r0   E   sJ   ÿþ
	



ÿÿ


þþ

þþ
	
	




%

ÿ
	þ
	;ûøöóõþ

ýþ	þ
þ
þþ
ýþr0   zfreq,freq_depr))rÀ   Ú2ME)r³  Ú2QE)z2Q-FEBz2QE-FEB)rµ  Ú2YE)ú2Y-MARz2YE-MAR)rÀ   Ú2me)r³  Ú2qe)rÐ  z2ye-marc                 C   sd   d|dd … › d|dd … › d}| }t jt|d | |¡ W d   ƒ d S 1 s+w   Y  d S )Nzfor Period, please use 'r¤   z' instead of 'r¸  r<   ©rl   rm   r¿  r@   )rH   r   r¹  r,   rI   r   r   r   Ú.test_resample_frequency_ME_QE_YE_error_message  s
   ""ÿrÔ  c                 C   sj   | ddddd d… }d}t jt|d | d¡ ¡ }W d   ƒ n1 s&w   Y  t|ƒdks3J ‚d S )	Nz2007-01z2010-05r}   r   r   r‚   r<   rŠ   )rD   rE   r$   r@   rŒ   r)   )r/   Úlen0ptsr,   rL   r   r   r   Útest_corner_cases_period2  s   ÿrÖ  r¹  )Ú2BMEÚ2CBMEÚ2SMEz2BQE-FEBz2BYE-MARc                 C   sT   d|dd … › }| }t jt|d | |¡ W d   ƒ d S 1 s#w   Y  d S )NzInvalid frequency: r¤   r<   rÓ  )rH   r¹  r,   rI   r   r   r   Ú$test_resample_frequency_invalid_freq<  s
   "ÿrÚ  ),r   r    rÇ  Únumpyr%   rl   r×   Úpandas._libs.tslibs.ccalendarr   r   Úpandas._libs.tslibs.periodr   Úpandas.errorsr   Úpandasri   r   r   r	   Úpandas._testingÚ_testingrD   Úpandas.core.indexes.datetimesr
   Úpandas.core.indexes.periodr   r   r   Úpandas.core.resampler   Úpandas.tseriesr   rÄ  r#   Ú
pytestmarkÚfixturer   r   r/   r0   rÅ  rÔ  rÖ  rÚ  r   r   r   r   Ú<module>   sX    ÿ


       ^þ
	
þ
