o
    1فi                     @   s6  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  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)offsetsc                   C   s   t S )N)r    r   r   h/home/test-dt/pcm-url-check/venv/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_series2   s   
	z?simple_period_range_series.<locals>._simple_period_range_seriesN)r   r   )r.   r   r   r   simple_period_range_series,   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 Z8dd Z9dd Z:dd Z;ejdddgejdddgdd Z<ejde=j>de=j>ddgg dfe=j>e=j>de=j>e=j>e=j>dde=j>e=j>g
g dfgejddde?j@ddgfdddgfdddgfgdd ZAdd ZBejdg ddd ZCdd ZDejdg ddd ZEdd ZFdd ZGejddddddgfd:dddddgfgdd ZHejdeIJ eIKdeILdgdd ZMdS )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_asfreqB   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 sw   Y  t|| d S )Nr   r*   r7   r9   r2   r   g      @)
fill_value3The '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_valueU   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   zResampling 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_selectionp   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}	tj||	d" t|j||d| }
|
j||d	}||| }W d    n1 s@w   Y  t|
| d S )
N1/1/1990z
12/31/1991Y-r   rz   r   r<   
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 }|j |dd }|j|dd}||d	|}t|| d S )
Nr   r   r}   r   r   r+   r   r7   rt   )r@   r   rt   r?   rA   rC   rD   rS   )rG   r   r/   r   rL   	resampledrJ   r   r   r   test_basic_upsample   s   z#TestPeriodIndex.test_basic_upsamplec                 C   sh   t dddd}ttjdt||}|jdddjdd	}|	dj
|jd
dd}t|| d S )N1/1/2000   r   periodsr   r   r}   r+   r   )limitrt   )methodr   )r   r   r%   r&   r'   r(   r)   r@   rt   rA   rB   r   rD   rS   rG   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}	tj||	d  |j||d }
|
j||d	}||d
 }W d    n1 s@w   Y  t|
| d S )NQ-r   r   r   rz   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}tj||d  |j||d }|j||d	}||d
 }W d    n1 s;w   Y  t|| d S )Nr   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 )Nd   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_freq"  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-010   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_tzN  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_edgee  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_edge2n  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}tj||d  |j||d }	|	j||d	}
|
|d
 }
W d    n1 s@w   Y  t|	|
 d S )NzW-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   sN   |dddd}|j d|d }|jd|d}|j|jdd	}t|| d S )
Nr   r   zY-JUNr   r   r   r7   rt   r   )r@   rt   rA   rB   r   rD   rS   )rG   r/   r8   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}|j ddd	 }tdd
dd}|jddd|}t|| d S )Nr   z2/1/2000rz   r   r   z1/3/2000rZ   rW   r   z2/1/2000 23:00r7   )r@   rA   rB   r   rD   rS   )rG   r/   r   rL   rJ   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   r   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_localized2   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_localized35  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_cornerK  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_resampling_  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>k  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_1726g  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     NE! 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_changeq  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   rN  )NrO  r   r   r   r:   r  rP  rQ  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_ohlc  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         rt  r         zfreq, expected_values1sr   rt  r   2sg      "@3sg      @c           
      C   sT   t |dd}t||d}tdt||d}t||d}|| }	t|	| d S )NrW   r   r   rs  r   )r   r   r   r)   r@   r   rD   rU   )
rG   r   valuesr   expected_valuesr   rX   r   rJ   rL   r   r   r   test_resample_with_nat*  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   rE  )r   r&  rc   ry  )	r   ri   NaTr   r   r@   r   rD   rU   )rG   r   rX   r   rJ   rL   r   r   r   test_resample_with_only_nat\  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   sf   t |||d}ttt||d}|j||d }||}| j||d }	t	||	 d S )Nr   r   rw   )
r   r   r%   rg   r)   r@   r   r?   rD   rS   )
rG   r*   r+   
start_freqend_freqrw   r   r   rL   rJ   r   r   r   test_resample_with_offsete  s   
z)TestPeriodIndex.test_resample_with_offsetc                 C   st   t dddd}ttt||d}|jddd }|d}| jd	dd }|j	d |_t
|| d S )
Nr  z19910909 1:00rZ   r   r   r}   r  r  r|   )r   r   r%   rg   r)   r@   r   r?   r   
_with_freqrD   rS   )rG   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   st   t dddd}td}tj|dd< t|| }|djdd}td	tjgtd
dgddd}t	
|| d S )N2018r|   ru  r   r   r   r   )	min_countrQ   2018Q12018Q2r0  r   r   )r
   r%   onesr   r   rC   r@   r'  r   rD   rS   )rG   r   r   rW   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.  r1  r<  r?  rI  xfailrM  rT  rX  rY  r^  rn  rr  ri   r  r%   r   r~  r  r  r  r  r  r  r  r   
MonthBegin
BYearBeginBusinessHourr  r   r   r   r   r0   A   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   s8   | ddddd d }| d }t|dksJ d S )Nz2007-01z2010-05r}   r   r   r   )r@   r   r)   )r/   len0ptsrL   r   r   r   test_corner_cases_period  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   fixturer   r   r/   r0   r  r  r  r  r  r   r   r   r   <module>   sR    


       >
	
