o
    ҷhT                     @   s   d dl m 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!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   Z/var/www/html/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                   @   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ejde	ejd+g dejd,ddgd-d. Zejd+d#d/gejd,ddgd0d1 Zd2d3 Zejd4d5g d6fd7d8d9gfgd:d; Zd<d= Zd>d? Zd@dA ZdBdC ZdDdE ZdFdG ZdHdI ZdJdK ZejdLeejd+d#d/gejd,ddgdMdN ZdOdP Zejde	dQdR ZejdSddgdTdU Z dVdW Z!dXdY Z"ejddZgejdg dd[d\ Z#d]d^ Z$d_d` Z%dadb Z&dcdd Z'dedf Z(dgdh Z)didj Z*dkdl Z+dmdn Z,ejj-dodpdqdr Z.ejdsg dtdudv Z/ejdsg dwdxdy Z0dzd{ Z1d|d} Z2ejd~ddgejdddgdd Z3ejde4j5de4j5ddgg dfe4j5e4j5de4j5e4j5e4j5dde4j5e4j5g
g dfgejddde6j7ddgfdddgfdddgfgdd Z8dd Z9ejdg ddd Z:ejdg ddd Z;dd Z<dS )TestPeriodIndexfreq)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}|  ||}|j||d }	t	|	| d S )	Nr   r   starthowleft)r   endr   	inclusiver   )
to_timestampresampleasfreqindexr   r
   reindex	to_periodtmassert_almost_equal)
selfseries_and_framer   r   objexpectedr   r#   	new_indexresultr   r   r   test_asfreq,   s   zTestPeriodIndex.test_asfreqc                 C   s   |}t |jd jdd|jd jdddd}| j|dd}|jdd	d
jdd}t|| |d}t |jd jdd|jd jdddd}| j|dd}|jdd	d
jdd}t	|| d S )Nr   r   r   r!   r   r   g      @)
fill_valuer   r%   value      @)
r
   r)   r&   r*   r'   r(   r,   assert_series_equalto_frameassert_frame_equal)r.   seriessr2   r1   r3   framer   r   r   test_asfreq_fill_value=   s$   
z&TestPeriodIndex.test_asfreq_fill_value)H12Hr   W)Nr   r   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}tj	t
|d |j|fd	|i| W d    d S 1 s=w   Y  d S )
Ndtype)rE   avrG   )namesr)   zResampling from level= or on= selection with a PeriodIndex is not currently supported, use \.set_index\(\.\.\.\) to explicitly set indexmatchr   )nparangelenint64r   pd
MultiIndexfrom_arrayspytestraisesNotImplementedErrorr'   )r.   r)   r   r   rC   rngdfmsgr   r   r   test_selectionT   s   "zTestPeriodIndex.test_selectionmonthmethffillbfillconvr   r#   targ)DBMc                 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A-r5   re   PeriodDtype\[B\] is deprecatedrN   
conventionr   )	FutureWarningr,   assert_produces_warninggetattrr'   r&   r(   r+   r9   )r.   rc   rb   r_   r^   simple_period_range_seriestswarnr\   r3   r1   r   r   r   test_annual_upsample_casesg   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 )Nrg   	6/30/1995rf   r5   a-decrJ   )r'   meangroupbyr)   yearr   r,   r9   r.   ro   rp   r3   r1   r   r   r   test_basic_downsamplew   s   z%TestPeriodIndex.test_basic_downsamplezrule,expected_error_msg))rt   z<YearEnd: month=12>)zq-marz<QuarterEnd: startingMonth=3>)rf   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 )Nrg   rs   zw-wedr5   z3Frequency <Week: weekday=2> cannot be resampled to z&, as they are not sub or super periodsrN   )rW   rX   r   r'   ru   )r.   ro   ruleexpected_error_msgrp   r\   r   r   r   test_not_subperiod   s   "z"TestPeriodIndex.test_not_subperiodrd   r   c                 C   s^   |dddd}| d }|j |dd }|j|dd}||d	|}t|| d S )
Nrg   rs   rf   r5   rt   r#   rj   r   r`   )r'   ru   r`   r&   r(   r+   r,   r9   )r.   r   ro   rp   r3   	resampledr1   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   Aperiodsr      rf   r#   rj   )limitr`   )methodr   )r   r   rP   randomdefault_rngstandard_normalrR   r'   r`   r(   r*   r)   r,   r9   r.   rZ   rp   r3   r1   r   r   r   test_upsample_with_limit   s
   z(TestPeriodIndex.test_upsample_with_limitc           
      C   s   |dddd}t d|i}|d }|d d }t|d | 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 )Nrg   
12/31/1995A-DECr5   rJ   rd   20002003)   r         rM   rf   2000-01z2003-12r   r   r`   r   )	r   r'   r`   r,   r9   r   r   r(   r*   )
r.   ro   rp   r[   rdfexprZ   r3   ex_indexr1   r   r   r   test_annual_upsample   s   z$TestPeriodIndex.test_annual_upsampletargetrk   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-rg   r   r5   re   ri   rN   rj   r   r`   	rl   r,   rm   r'   r`   r&   r(   r+   r9   )r.   r^   r   rk   ro   r   rp   rq   r\   r3   r1   r   r   r   test_quarterly_upsample   s   
z'TestPeriodIndex.test_quarterly_upsamplere   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 )Nrg   r   rf   r5   rd   ri   rN   rj   r   r`   r   )	r.   r   rk   ro   rp   rq   r\   r3   r1   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}| jddd	 }t
|| |jddd	 }t
|| d S )Nd   20130101r=   idx)r   r   namefloatr)   rI   
      z2013-01-01 00:00Tz2013-01-01 00:01)r   g     @A@g     S@rM   r   r%   )r   ranger
   rP   nanr   r   r+   r'   ru   r,   r9   )r.   r=   r)   r1   r3   result2r   r   r   test_resample_basic   s   z#TestPeriodIndex.test_resample_basiczfreq,expected_valsrf   )      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   rM   r   r   r   )r   r   r'   countrR   r,   r9   )r.   r   expected_valsr<   r3   expected_indexr1   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   rf   r   r   r   rM   )r   r   r   rn   r'   r,   r9   )r.   resample_methodr<   r1   r3   r   r   r   test_resample_same_freq   s   z'TestPeriodIndex.test_resample_same_freqc                 C   s\   d}t jt|d ttdtddddd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 periodsrN   r   r   rf   r   rM   rB   )rW   rX   r   r   r   r   r'   ru   )r.   r\   r   r   r   test_resample_incompat_freq   s   "z+TestPeriodIndex.test_resample_incompat_freqc           	      C   s   t d}tdddddt jd}tdddddt jd}t||dd	}td|d
}||}|jddd }t	||ddt
  }td|d
}t|| d S )NAmerica/Los_Angeles     r   r   rw   r^   dayhourminutetzinfor   r@   r5   rM   rd   r   r%   r   r#   r         ?)pytztimezoner   utcr
   r   
tz_convertr'   ru   r   r   Dayr,   r9   	r.   local_timezoner   r#   r)   r<   r3   r   r1   r   r   r   test_with_local_timezone_pytz  s   

z-TestPeriodIndex.test_with_local_timezone_pytzc                 C   sh   t dtdddddd}|d }t d	tjdd
gdddd}t|| |jj	t
dks2J d S )Nr   z
2017-01-010   r@   z
US/Easternr   r   tzrM   rd          @z
2017-01-02)r   r   )r   r
   r'   ru   rT   DatetimeIndexr,   r9   r)   r   r   r   )r.   r=   r3   r1   r   r   r   test_resample_with_pytz  s   
z'TestPeriodIndex.test_resample_with_pytzc           	      C   s   d}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}||}|jddd }t	||dd	dt
  }td|d}t|| d S )Nzdateutil/America/Los_Angelesr   r   r   r   r   r   r@   r   )r   r   rM   rd   r   r%   )r   r#   r   r   r   )r   dateutilr   tzutcr
   r   r   r'   ru   r   r   r   r,   r9   r   r   r   r   !test_with_local_timezone_dateutil+  s   
z1TestPeriodIndex.test_with_local_timezone_dateutilc                 C   s   t dddd}ttt||d}|d}tj|jdd|_|	d
 }t|| 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-03-12z2017-03-12 1:45:0015Tr5   rM   z
US/Pacific900Sz
2017-10-10z
2017-10-20r   r   UTCzAmerica/Sao_Paulo)datar)   1Dz
2017-10-09rd   shift_forwardr"   )r   r#   r   r   nonexistentr$   )r
   r   rP   zerosrR   tz_localizerT   r   r)   r'   ru   r,   r9   r   r   listr   rv   Grouperr   assert_index_equal)r.   r)   r=   r1   r3   r[   r   r   r   'test_resample_nonexistent_time_bin_edgeF  s&   
z7TestPeriodIndex.test_resample_nonexistent_time_bin_edgec                 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30TzEurope/Londonr   r   rM   )	r
   r   rP   r   rR   r'   ru   r,   r9   )r.   r   r1   r3   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   rS   rH   z
2010-01-01Qr   rM   rf   )
r   rP   rQ   r
   r'   r`   lastastyper,   r9   )r.   r=   r   bothr   r   r   !test_fill_method_and_how_upsampleg  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-rg   r   r5   rd   ri   rN   rj   r   r`   r   )r.   r   r   rk   ro   r   rp   rq   r\   r3   r1   r   r   r   test_weekly_upsampleq  s   
z$TestPeriodIndex.test_weekly_upsamplec                 C   sF   |dddd}|j ddd }|jdd	 d }t|| d S )
Nrg   r   rf   r5   r   r   r%   r   r   )r'   ru   r&   r,   r9   rx   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1992rh   r5   r   rd   r   r   r   r!   r#   r=   r`   r   )	r'   r`   r&   r   r)   r(   r*   r,   r9   )r.   ro   r^   rp   quar_tsstampsqdatesr1   r   r   r   test_resample_to_quarterly  s   z*TestPeriodIndex.test_resample_to_quarterlyr    c                 C   sN   |dddd}|j d|d }|jd|d}|j|jdd	}t|| d S )
Nr   r   zA-JUNr5   zQ-MARrj   r   r`   r   )r'   r`   r(   r*   r)   r,   r9   )r.   ro   r    rp   r3   r1   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   r5   r   r   rM   )r   r   rP   r   r   r   r&   r'   r`   r+   r,   r9   )r.   rZ   r=   r   filledr1   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   r5   r   r   rM   z8Reindexing only valid with uniquely valued Index objectsrN   )r   r   rP   r   r   r   rW   rX   r   r'   r`   )r.   rZ   r=   r\   r   r   r   test_cant_fill_missing_dups  s   "z+TestPeriodIndex.test_cant_fill_missing_dups5minc                 C   sr   t dddd}ttjdt||d}| |	 }|dkr(|
|}|j||d	 }t|| d S )	Nr   z1/5/2000r   r5   r   rM   r   r%   )r   r   rP   r   r   r   rR   r&   r'   ru   r+   r,   r9   )r.   r   r   rZ   rp   r1   r3   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/2000re   r5   rd   z1/3/2000r@   r=   rj   z2/1/2000 23:00r   )r'   r(   r*   r   r,   r9   )r.   ro   rp   r3   r1   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   rM   z2012-01-04 06:5510min)r
   r   rP   arrayr'   applyrR   locr)   r,   r9   )r.   drr=   subsetr3   r1   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   rM   zW-THUr!   )r
   r   rP   r   r   r   rR   r'   r(   isnaallr`   r,   r9   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 }| }dd	 |j	
 D |_	|d d}tj|j	dd
|_	t|| |d }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|| |	jddd }tdddd}
tdg|
d}t|| 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	2012-4-13z2012-5-1)r   r#   rM   r   r   rB   c                 S   s   g | ]}|j d dqS )N)r   )replace.0xr   r   r   
<listcomp>  s    z>TestPeriodIndex.test_resample_tz_localized.<locals>.<listcomp>r5   rd   z2001-09-20 15:59z2001-09-20 16:00r   zAustralia/Sydneyr   r   r   rightclosedlabelz
2001-09-21r   g      ?r   r%   z
2001-09-20r   z1/1/2011i N  r@   ESTfirstsecondr   )r  r  )columnssumru   )r
   r   r   rR   r   r   r'   ru   copyr)   to_pydatetimerT   r   r,   r9   r   r   rP   r   r   r   cumsumr  aggr*   r;   )r.   r  rp   ts_utcts_localr3   ts_local_naiver   r   r=   r   r1   rZ   r   r   r   test_resample_tz_localized  sT   



 z*TestPeriodIndex.test_resample_tz_localizedc                 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   rM   r   r   r"   r  r  r   r   )r   rP   r   r   r   r
   r   ilocr'   ru   r,   r9   r   r)   )r.   r=   r3   r   r   r   r   r   test_closed_left_corner!  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   rM   r   )
r   r   rP   rQ   r'   ru   r&   r+   r,   r9   )r.   rZ   rp   r3   r   r   r   r   test_quarterly_resampling5  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/2012rd   r   c                 S   s   g | ]}|gd  qS )r   r   r	  r   r   r   r  A  s    zATestPeriodIndex.test_resample_weekly_bug_1726.<locals>.<listcomp>)openhighlowclosevol)r  r)   zW-MONr"   r  )r
   rR   r   r   r'   r  )r.   indnr   r[   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}t j|dd}tg d|d}t	
|| d S )Nl     Z! l     NE! r   zAmerica/Chicagor   r   rM   12hr  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   r5   )r   r   r   r   r   r   r   r   r   r   r   r   r   )rT   r   r   r   r   r'   r   r`   to_datetimer,   r;   )r.   r)   r[   r3   expected_index_valuesr1   r   r   r   "test_resample_with_dst_time_changeG  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   BMSre   r   20000103)	r   rT   bdate_rangerP   float64r'   ru   r)   r	   )r.   
timeseriesres1res2r   r   r   test_resample_bms_2752j  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   rf   r   rM   z
2000-01-01z
2000-03-31rd   r5   r#   r   ra   r   )r   r   rP   rQ   r(   r*   fillnar'   ru   r,   r9   )r.   rZ   rp   	exp_indexr1   r3   r   r   r   test_monthly_convention_spant  s   z,TestPeriodIndex.test_monthly_convention_spanzfrom_freq, to_freq))rd   rf   )r   r   )rf   r   )rd   rB   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   rP   r   r   r   rR   r'   ru   r,   r;   r.   	from_freqto_freqr   r[   r}   r   r   r   test_default_right_closed_label  s    z/TestPeriodIndex.test_default_right_closed_label))rd   MS)r   AS)rf   QS)r@   rd   )r   r@   c                 C   r?  )Nr@  r   r   r   r"   r  rA  rB  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-31rf   r   r   rM   r   r   )r   r   rP   r   r   r   rR   r'   ru   r,   r-   r   )r.   r)   r=   r3   r   r   r   test_all_values_single_bin  s   z*TestPeriodIndex.test_all_values_single_binc                 C   sT  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|_t|| 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 )"Nr   )r   r   z2000-1-1r   )r   rM   5Dr   r   r   )axisz2000-1-6r5   z2001-5-4   r   P   Z   r      )REST_KEY
DLY_TRN_QTDLY_SLS_AMTCOOP_DLY_TRN_QTCOOP_DLY_SLS_AMTF   r   2   r   7Dr      r  i  i  i0  i  )r   rP   r   r   r   r
   r'   ru   rT   concatr   r   r   r	   r)   r,   r;   append
sort_indexr   r  )r.   r[   r3   r1   r)   r   r   r   (test_evenly_divisible_with_no_extra_bins  s   
0			
	
z8TestPeriodIndex.test_evenly_divisible_with_no_extra_binszfreq, period_mult)r@      )rA   r   Nr   c           	      C   s|   t dddd}ttt||d}| | |}t d||t| d}||}|j||d }t	
|| d S )Nr   rd   r   r   rM   r%   )r   r   r   rR   r&   r'   ohlcr+   r*   r,   r;   )	r.   r   period_multr   r   r=   r1   r2   r3   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         rc  r         zfreq, expected_values1sr   rc  r   2sg      "@3sg      @c           
      C   sT   t |dd}t||d}tdt||d}t||d}|| }	t|	| d S )NSr5   rM   rb  r   )r   r   r   rR   r'   ru   r,   r;   )
r.   r   valuesr   expected_valuesr)   r>   r   r1   r3   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   rk  r5   )r   r   r   rJ   )r)   r  )r   r   r6  )r)   r  rI   rh  )	r   rT   NaTr   r   r'   ru   r,   r;   )r.   r   r>   r   r1   r3   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:00r@   24H10H)rq  19910909 12:00r@   rs  rt  )rq  z19910909 23:00r@   rs  rt  )19910905 10:0019910909r@   rs  rt  )rv  19910909 10:00r@   rs  rt  )rq  rx  r@   rs  rt  )19910905 12:00rw  r@   rs  rt  )ry  rr  r@   rs  rt  )ry  ru  r@   rs  rt  )ry  ru  r@   rs  34H)ry  ru  r@   17Hrt  )ry  ru  r@   r{  3H)ry  z19910909 1:00r@   rf   r|  )rq  z19910913 06:00r   rs  rt  )rq  z19910905 01:39Min5Min3Min)rq  z19910905 03:182Minr~  r  c           
      C   s|   t |||d}ttt||d}|j||d }||}| j||d }	|dkr6|	j	d |	_t
||	 d S )Nr5   rM   )offsetrf   )r   r   rP   rQ   rR   r'   ru   r&   r)   
_with_freqr,   r9   )
r.   r   r#   
start_freqend_freqr  r   serr3   r1   r   r   r   test_resample_with_offset6  s   
z)TestPeriodIndex.test_resample_with_offsetz"first,last,freq,exp_first,exp_last))rq  19920406rd   rq  r  )z19910905 00:0019920406 06:00rd   rq  r  )19910905 06:00r  r@   r  r  )19910906r  rf   z1991-091992-04)1991083119920430rf   1991-08r  )r  r  rf   r  r  c                 C   sZ   t |}t |}t ||d}t ||d}tjj|}t|||}||f}||ks+J d S )Nr5   )r   rT   tseriesfrequencies	to_offsetr   )r.   r  r   r   	exp_firstexp_lastr3   r1   r   r   r   test_get_period_range_edgesX  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2018rf   rd  r   r   r   r   )	min_countr8   2018Q12018Q2r#  r5   rM   )r
   rP   onesr   r   r+   r'   r  r   r,   r9   )r.   r)   r   r=   r3   r1   r   r   r   test_sum_min_countu  s   
z"TestPeriodIndex.test_sum_min_count)=__name__
__module____qualname__rW   markparametrizer4   r?   r]   r   rr   ry   r|   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r!  r$  r,  r0  r:  xfailr>  rE  rI  rJ  r]  ra  rT   ro  rP   r   rn  rp  r  r  r  r   r   r   r   r   +   s    
	

	


	



	
=
#


	
	I

	

r   )#r   r   numpyrP   rW   r   pandas._libs.tslibs.ccalendarr   r   pandas._libs.tslibs.periodr   pandas.errorsr   pandasrT   r   r   r	   pandas._testing_testingr,   pandas.core.indexes.datetimesr
   pandas.core.indexes.periodr   r   r   pandas.core.resampler   pandas.tseriesr   fixturer   r   r   r   r   r   r   <module>   s(    

