a
    PfU                     @   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/ai-form-bot/venv/lib/python3.9/site-packages/pandas/tests/resample/test_period_index.py_index_factory&   s    r   c                   C   s   dS )Npir   r   r   r   r   _series_name+   s    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 sJ0    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_series)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 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 |  | }nP|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 s0    Y  t|
| d S )Nr5   r   r)   howleft)r)   r*   r   	inclusivez?The 'kind' keyword in (Series|DataFrame).resample is deprecatedmatchr3   )to_timestampresampleasfreqr   r   r
   reindex	to_periodtmassert_produces_warningr#   assert_almost_equal)selfseries_and_framer   r3   objexpectedr)   r*   	new_indexr+   resultr   r   r   test_asfreqF   s    0zTestPeriodIndex.test_asfreqc                 C   s4  |}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~0    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0    Y  t|| d S )Nr   r)   r6   r8   r1   r   g      @)Z
fill_value3The 'kind' keyword in Series.resample is deprecatedr;   r5   r=   value      @6The 'kind' keyword in DataFrame.resample is deprecated)r
   r   r>   rA   rC   rD   r#   r?   r@   assert_series_equalZto_frameassert_frame_equal)rF   seriessrJ   rI   r+   rK   framer   r   r   test_asfreq_fill_valueY   s,    4
6z&TestPeriodIndex.test_asfreq_fill_value)h12hr0   W)Nr4   r5   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	T tjt|d	& |j|fd
|i| W d    n1 s0    Y  W d    n1 s0    Y  d S )Ndtype)r\   avr^   )namesr   zResampling from level= or on= selection with a PeriodIndex is not currently supported, use \.set_index\(\.\.\.\) to explicitly set indexrP   r;   r3   )r$   aranger(   int64r   pdZ
MultiIndexZfrom_arrayspytestraisesNotImplementedErrorrC   rD   r#   r?   )	rF   r   r   r3   rZ   r,   dfr+   depr_msgr   r   r   test_selectiont   s    zTestPeriodIndex.test_selectionmonthmethffillbfillconvr)   r*   )offsetr4   )r   r   Bru   MEM)QEQc                 C   s   |ddd| d}|dkr t nd }d}	|d u r8d}	t }tj||	dD t|j||d	| }
|
j||d
}||| }W d    n1 s0    Y  t|
| d S )N1/1/1990z
12/31/1991Y-r   ru   r   +Resampling with a PeriodIndex is deprecatedr;   
conventionr6   )	r#   rC   rD   getattrr?   r>   r@   rB   rQ   )rF   rr   r4   rq   rn   rm   r.   tswarnr+   rK   rI   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/1995rx   r   Y-DECY)r?   meangroupbyr   yearr   rC   rQ   )rF   r.   r   rK   rI   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>)rx   z
<MonthEnd>)zw-thuz<Week: weekday=3>c                 C   sZ   |dddd}d| d}t jt|d ||  W d    n1 sL0    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;   )rg   rh   r   r?   r   )rF   r.   ruleZexpected_error_msgr   r+   r   r   r   test_not_subperiod   s    z"TestPeriodIndex.test_not_subperiodr   r0   c                 C   s   |dddd}| d }d}tjt|d" |j |dd	 }W d    n1 sV0    Y  |j|dd
}||d|}t	|| d S )Nr{   r   rx   r   r   9The 'convention' keyword in Series.resample is deprecatedr;   r*   r~   r6   ro   )
r?   r   rC   rD   r#   ro   r>   r@   rB   rQ   )rF   r   r.   r   rK   r+   	resampledrI   r   r   r   test_basic_upsample   s    0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 sh0    Y  |dj|jddd}t|| d S )N1/1/2000   r   periodsr   r   r   r;   rx   r*   r~   )limitro   )methodr   )r   r   r$   r%   r&   r'   r(   rC   rD   r#   r?   ro   r@   rA   r   rQ   )rF   r,   r   r+   rK   rI   r   r   r   test_upsample_with_limit   s    4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   ra   r   )r   r?   ro   rC   rQ   )rF   r.   r   rj   Z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2000Z2003r   r   )   r         r   rx   2000-01z2003-12r)   r6   ro   r   )r   r   r?   ro   r@   rA   rC   rQ   )rF   r,   r   rK   ex_indexrI   r   r   r   test_annual_upsample2   s    z%TestPeriodIndex.test_annual_upsample2r   )rs   rt   rv   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 s0    Y  t|
| d S )NQ-r{   r   r   ru   r   r}   r;   r~   r6   ro   	r#   rC   rD   r?   ro   r>   r@   rB   rQ   )rF   rm   rr   r4   r   r.   r   r   r   r+   rK   rI   r   r   r   test_quarterly_upsample   s    
.z'TestPeriodIndex.test_quarterly_upsampletargetru   c           	      C   s   |dddd}|dkrd nt }d}|d u r2d}t }tj||d@ |j||d	 }|j||d
}||d }W d    n1 s0    Y  t|| d S )Nr{   r   rx   r   r   r   r}   r;   r~   r6   ro   r   )	rF   r   r   r.   r   r   r+   rK   rI   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 s0    Y  t|| tjt	|d" |jddd }W d    n1 s0    Y  t|| d S )Nd   Z20130101rT   idx)r   r   namefloatr   r`   
      z2013-01-01 00:00minz2013-01-01 00:01)r   g     @A@g     S@r   rM   r;   r4   r=   )r   ranger
   r$   nanr   r   rC   rD   r#   rB   r?   r   rQ   )rF   rT   r   rI   r+   rK   Zresult2r   r   r   test_resample_basic	  s$    40z#TestPeriodIndex.test_resample_basiczfreq,expected_valsrx   )      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(   rC   rQ   )rF   r   Zexpected_valsrS   rK   expected_indexrI   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   rx   r)   r   r   r   )r   r   r   r   r?   rC   rQ   )rF   Zresample_methodrS   rI   rK   r   r   r   test_resample_same_freq+  s    z'TestPeriodIndex.test_resample_same_freqc                 C   sf   d}t dddd}ttd|d}|d}tjt|d |  W d    n1 sX0    Y  d S )	NzcFrequency <MonthEnd> cannot be resampled to <Week: weekday=6>, as they are not sub or super periodsr   r   rx   r   r   rY   r;   )r   r   r   r?   rg   rh   r   r   )rF   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 s0    Y  t||dddt  }	td|	d
}
t||
 d S )Ni     r   r   )r   rm   dayhourminutetzinfor   rW   r   )r   r   r   rM   r;   r   r4   r=   )r)   r*   r   r         ?)r   pytzutcr
   r   
tz_convertrC   rD   r#   r?   r   r   r   ZDayrQ   )rF   r   Zlocal_timezoner)   r*   r   rS   r+   rK   r   rI   r   r   r   test_with_local_timezone?  s    	
0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snJ d S )Nz
2017-01-010   rW   )r   r   r   unitr   r   r   z
2017-01-02)r   r          @)r
   r   r?   r   rf   DatetimeIndexas_unitrC   rQ   r   r   )rF   r   r   Zdtir   rK   Zexp_dtirI   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:00Z15minr   r   z
US/PacificZ900s)r
   r   r$   zerosr(   tz_localizerf   r   r   r?   r   rC   rQ   )rF   r   rT   rI   rK   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-20r1   r)   r*   r   UTCzAmerica/Sao_Paulodatar   Z1Dr   z
2017-10-09r   Zshift_forwardr9   )r)   r*   r   r   Znonexistentr:   )r
   r   r   r   listr   r(   r   rf   ZGrouperr   rC   assert_index_equalr   )rF   r   rj   rK   rI   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:00Z30minzEurope/Londonr   r   r   )	r
   r   r$   r   r(   r?   r   rC   rQ   )rF   r   rI   rK   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   re   r_   z
2010-01-01ry   r   r   rw   )
r   r$   rd   r
   r?   ro   lastZastyperC   rQ   )rF   rT   r   Z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 s0    Y  t|	|
 d S )NzW-r{   r   r   r   r   r}   r;   r~   r6   ro   r   )rF   r   r   r   r.   r   r   r   r+   rK   rI   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 sH0    Y  |jd
dd }t || d S )Nr{   r   rx   r   rM   r;   r   r5   r=   r)   r6   zYE-DEC)rC   rD   r#   r?   r   r>   rQ   )rF   r.   r   r+   rK   rI   r   r   r   test_resample_to_timestamps  s    0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)   r6   r   r8   r*   rT   ro   r   )	r?   ro   r>   r   r   r@   rA   rC   rQ   )rF   r.   rm   r   Zquar_tsstampsZqdatesrI   r   r   r   test_resample_to_quarterly  s    z*TestPeriodIndex.test_resample_to_quarterlyr7   c                 C   s   |dddd}d}t jt|d" |jd|d }W d    n1 sH0    Y  |jd|d	}|j|jd
d}t || d S )Nr   r   zY-JUNr   r   r;   r   r~   r6   ro   r   )	rC   rD   r#   r?   ro   r@   rA   r   rQ   )rF   r.   r7   r   r+   rK   rI   r   r   r   $test_resample_to_quarterly_start_end  s    0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?   ro   rB   rC   rQ   )rF   r,   rT   r   ZfilledrI   r   r   r   test_resample_fill_missing  s    z*TestPeriodIndex.test_resample_fill_missingc                 C   sn   t g ddd}ttjdd|d}d}tjt|d |	d
  W d    n1 s`0    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'   rg   rh   r   r?   ro   )rF   r,   rT   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rP|
|}d}tjt|d	" |j||d
	 }W d    n1 s0    Y  t|| d S )Nr   z1/5/2000r   r   r   r   r5   rM   r;   r=   )r   r   r$   r%   r&   r'   r(   r>   r?   r   rB   rC   rD   r#   rQ   )rF   r   r3   r,   r   rI   r+   rK   r   r   r   test_resample_5minute  s    
0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 s0    Y  tddd	d}|jd	d
d|}t|| d S )Nr   z2/1/2000ru   r   r   z1/3/2000r   r;   rW   rT   r~   z2/1/2000 23:00r6   )r?   r@   rA   r   rC   rQ   rD   r#   )rF   r.   r   rK   rI   r+   Zexp_rngr   r   r   "test_upsample_daily_business_daily  s    
0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   rC   rQ   )rF   drrT   ZsubsetrK   rI   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 }|	 
 sJJ |d  d d }|d }t|| d S )	Nr   r   zW-WEDr   r   r   zW-THUr8   )r
   r   r$   r%   r&   r'   r(   r?   r@   Zisnaallro   rC   rQ   )rF   r,   r   rK   rI   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   rY   r   r   )r
   r   r   r(   r   r   r?   r   copyr   rf   r   rC   rQ   )	rF   r   r   r   Zts_utcZts_localrK   Z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 s0    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      ?rM   r;   r4   r=   z
2001-09-20r   )	r
   r   r?   r   rC   rQ   rD   r#   r   )rF   r   rT   rK   r   rI   r+   r   r   r   test_resample_tz_localized28  s    0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  rW   r   ESTr   r   firstsecondr   )r  r  )columnssumr   )r
   r   r   r$   r%   r&   r'   r(   Zcumsumr?   r  r   ZaggrA   rC   rR   )rF   r,   r   rI   rK   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:30Z1minr   r   r   r   r9   r   r   r   r   )r   r$   r%   r&   r'   r
   r   ilocr?   r   rC   rQ   r   r   )rF   rT   rK   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 )NZ2000Q1r   Q-DECr   r   r   r   )
r   r   r$   rd   r?   r   r>   rB   rC   rQ   )rF   r,   r   rK   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>      zATestPeriodIndex.test_resample_weekly_bug_1726.<locals>.<listcomp>)openhighlowcloseZvol)r  r   zW-MONr9   r   )r
   r(   r   r   r?   r  )rF   indnr   rj   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     NE! r   zAmerica/Chicagor   r   r   rX   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   )rf   r   r   r   r   r?   r   ro   to_datetimer   r   rC   rR   )rF   r   rj   rK   Zexpected_index_valuesrI   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sRJ |jd |jd ksjJ d S )NZ20000101Z20000201r   ZBMSru   r   Z20000103)	r   rf   Zbdate_ranger$   float64r?   r   r   r	   )rF   Z
timeseriesZres1Z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   rw   r   r   z
2000-01-01z
2000-03-31r   r   r*   r6   rp   r   )r   r   r$   rd   r@   rA   Zfillnar?   r   rC   rQ   )rF   r,   r   Z	exp_indexrI   rK   r   r   r   test_monthly_convention_span  s    z,TestPeriodIndex.test_monthly_convention_spanzfrom_freq, to_freq))r   rw   )ry   r   )rw   ry   )r   rY   c                 C   s\   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   rC   rR   rF   Z	from_freqZto_freqr   rj   r   r   r   r   test_default_right_closed_label  s     z/TestPeriodIndex.test_default_right_closed_label))r   ZMS)ry   ZYS)rw   ZQS)rW   r   )r   rW   c                 C   s\   t dd|d}ttjdt|df|}|| }t	
||j|ddd  d S )Nr  r   r   r   r9   r   r  r   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-31rx   r   r   r   r   r   )r   r   r$   r%   r&   r'   r(   r?   r   rC   rE   r	  )rF   r   r   rK   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   Z5Dr   r   r   )Zaxisz2000-1-6zM8[ns])r`   r   )r   r$   r%   r&   r'   r
   r?   r   rf   concatr	  Tr   r	   r   rC   rR   )rF   rj   rK   rI   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      )ZREST_KEYZ
DLY_TRN_QTZDLY_SLS_AMTZCOOP_DLY_TRN_QTZCOOP_DLY_SLS_AMTr   F   r   2   r   r   Z7Dr      r  i  i  i0  i  )	r
   r   appendZ
sort_indexr?   r   rC   rR   r  )rF   r   rj   rI   rK   r   r   r   )test_evenly_divisible_with_no_extra_bins2  sh    		
	
	
z9TestPeriodIndex.test_evenly_divisible_with_no_extra_bins2zfreq, period_mult)rW      )rX   r   Nr4   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 s0    Y  t	|	| d S )	Nr   r   r   r   r   rM   r;   r=   )r   r   r   r(   r>   r?   ZohlcrB   rA   rC   rD   r#   rR   )
rF   r   Zperiod_multr3   r   rT   rI   rJ   r+   rK   r   r   r   test_upsampling_ohlc1  s    
0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         r3  r         zfreq, expected_values1sr   r3  r   Z2sg      "@Z3sg      @c                 C   s   t |dd}t||d}tdt||d}t||d}d}	tjt|	d ||}
W d    n1 sh0    Y  |
 }t	|| d S )NrT   r   r   r2  r   r}   r;   )
r   r   r   r(   rC   rD   r#   r?   r   rR   )rF   r   valuesr   Zexpected_valuesr   rU   r   rI   r+   r   rK   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   rT   r   )r   r   r   ra   )r   r  )r   r   r  )r   r  r`   r8  )	r   rf   NaTr   r   r?   r   rC   rR   )rF   r   rU   r   rI   rK   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:00rW   24h10h)r=  19910909 12:00rW   r?  r@  )r=  z19910909 23:00rW   r?  r@  )19910905 10:0019910909rW   r?  r@  )rB  19910909 10:00rW   r?  r@  )r=  rD  rW   r?  r@  )19910905 12:00rC  rW   r?  r@  )rE  r>  rW   r?  r@  )rE  rA  rW   r?  r@  )rE  rA  rW   r?  Z34h)rE  rA  rW   17hr@  )rE  rA  rW   rF  3h)r=  z19910913 06:00r2   r?  r@  )r=  z19910905 01:39ZMin5Min3Min)r=  z19910905 03:18Z2MinrH  rI  c                 C   s   t |||d}ttt||d}d}tjt|d |j||d}	W d    n1 sZ0    Y  |		 }
|

|}
|
 j||d	 }t|
| d S )Nr   r   r}   r;   rr   )r   r   r$   rd   r(   rC   rD   r#   r?   r   r>   rQ   )rF   r)   r*   Z
start_freqZend_freqrr   r   r   r+   r   rK   rI   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 sZ0    Y  |	 }|
d}|
 jdd	d
	 }|jd |_t|| d S )NrE  z19910909 1:00rW   r   r   r}   r;   rx   rG  rJ  rw   )r   r   r$   rd   r(   rC   rD   r#   r?   r   r>   r   Z
_with_freqrQ   )rF   r   r   r+   r   rK   rI   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=  rM  )z19910905 00:0019920406 06:00r   r   r=  rM  )19910905 06:00rN  rW   rW   rO  rN  )Z19910906rM  rx   rw   z1991-091992-04)Z19910831Z19920430rx   rw   1991-08rP  )rQ  rP  rx   rw   rQ  rP  c           	      C   sZ   t |}t |}t ||d}t ||d}tjj|}t|||}||f}||ksVJ d S )Nr   )r   rf   ZtseriesZfrequenciesZ	to_offsetr   )	rF   r  r   r   Zfreq_to_offsetZ	exp_firstZexp_lastrK   rI   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 sf0    Y  |j
d	d
}tdtjgtddgddd}t|| d S )NZ2018rw   r4  r   r   r}   r;   rz   r   )Z	min_countrO   Z2018Q1Z2018Q2r  r   r   )r
   r$   Zonesr   r   rB   rC   rD   r#   r?   r  r   rQ   )rF   r   r   rT   r+   r   rK   rI   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:0    Y  ttt||d}tddd	d}td
dg|d}t jt|d |d	 }W d    n1 s0    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%  rC   rD   r#   r   r   r$   rd   r(   r?   r   rQ   )rF   Zmsg_tZmsg_lrng_lr   r,   rI   rK   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2QZ2q2YZ2yg      ?Z2mr   rO   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 s0    Y  ttt||d
}	tdd|d	}
t||
d}t jt|d |	|	 }W d    n1 s0    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   rU  )rF   r   	freq_deprZfreq_resZfreq_depr_resr   rk   Zdepr_msg_resrV  r   r,   rI   rK   r   r   r   ,test_resample_lowercase_frequency_deprecated  s    
,,z<TestPeriodIndex.test_resample_lowercase_frequency_deprecatedrr   r   c                 C   sP   d|j  d}|}tjt|d |j|d W d    n1 sB0    Y  d S )NzInvalid offset: 'z' for converting time series r;   r   )baserg   rh   
ValueErrorr@   )rF   rr   rG   r+   rj   r   r   r   !test_asfreq_invalid_period_offset  s    
z1TestPeriodIndex.test_asfreq_invalid_period_offset)N__name__
__module____qualname__rg   markparametrizerL   rV   rl   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   timezonedateutilr   Zgettzr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r
  r  r  r  r  Zxfailr  r!  r"  r#  r&  r/  r1  rf   r;  r$   r   r:  r<  rK  rL  rR  rS  rW  r\  r   Z
MonthBeginZ
BYearBeginZBusinessHourr_  r   r   r   r   r/   E   sH  	










	
	




%


	
	;

	


r/   zfreq,freq_depr))r   Z2ME)rX  Z2QE)z2Q-FEBz2QE-FEB)rY  Z2YE)2Y-MARz2YE-MAR)r   Z2me)rX  Z2qe)rg  z2ye-marc                 C   sb   d|dd   d|dd   d}| }t jt|d || W d    n1 sT0    Y  d S )Nzfor Period, please use 'r   z' instead of 'rZ  r;   rg   rh   r^  r?   )rG   r   r[  r+   rH   r   r   r   .test_resample_frequency_ME_QE_YE_error_message  s    "ri  c                 C   sj   | ddddd d }d}t jt|d |d }W d    n1 sL0    Y  t|dksfJ d S )	Nz2007-01z2010-05rx   r   r   r}   r;   r   )rC   rD   r#   r?   r   r(   )r.   Zlen0ptsr+   rK   r   r   r   test_corner_cases_period2  s
    ,rj  r[  )Z2BMEZ2CBMEZ2SMEz2BQE-FEBz2BYE-MARc                 C   sR   d|dd   }| }t jt|d || W d    n1 sD0    Y  d S )NzInvalid frequency: r   r;   rh  )rG   r[  r+   rH   r   r   r   $test_resample_frequency_invalid_freq<  s    rk  ),r   r   rf  numpyr$   rg   r   Zpandas._libs.tslibs.ccalendarr   r   Zpandas._libs.tslibs.periodr   Zpandas.errorsr   Zpandasrf   r   r   r	   Zpandas._testingZ_testingrC   Zpandas.core.indexes.datetimesr
   Zpandas.core.indexes.periodr   r   r   Zpandas.core.resampler   Zpandas.tseriesr   rc  r"   Z
pytestmarkZfixturer   r   r.   r/   rd  ri  rj  rk  r   r   r   r   <module>   sV   


       ^
	

