U
    +if                     @   s  d dl m Z mZmZ d dlmZ d dlmZ d dlZd dlZ	d dl
Z
d dlZd dlmZmZ d dlZd dlmZmZmZmZmZmZ d dlmZ d dlmZmZ G dd	 d	ZG d
d dZdd Zdd Z e
j!"dd dge
j!"ddde	#ddde dddd dd d ej$dgdd Z%e
j!"dddge
j!"dd dgd d! Z&e
j!"ddge
j!"d"d#d$d%d&e dddddd d d d'd fe dddddd d dd'dfgd(d) Z'e
j!"ddge
j!"d*e dddddd d d dfe dddddd d dd+fgd,d- Z(dS ).    )datetime	timedeltatimezone)partial
attrgetterN)OutOfBoundsDatetime
conversion)DatetimeIndexIndex	Timestamp
date_rangeoffsetsto_datetime)DatetimeArrayperiod_arrayc                
   @   sR  e Zd Zejdeejgdd Z	ejde
ddddejd	dd
gdd Zdd Zdd Zdd Zdd Zdd Zejdddiddidddgdd Zejdddiddidddgdd Zd d! Zd"d# Zd$d% Zd&d' Zd(d) Zd*d+ Zd,d- Zd.d/ Zejd0d1d2gd3d4 Zd5d6 Zejdee j!e j"gd7d8 Z#d9d: Z$d;d< Z%d=d> Z&ejdd?d@e'(d@e)dAd@dBj*gdCdD Z+ejdddEdFgdGdH Z,dIdJ Z-ejdKe.egejdLe j/e0e j/edMe1gejdNdOdPgdQdR Z2dSdT Z3dUdV Z4dWdX Z5dYdZ Z6d[d\ Z7d]d^ Z8d_d` Z9dadb Z:dcdd Z;d?S )eTestDatetimeIndexdt_clsc              	   C   sj   d}t jt|d |tjtdgdd W 5 Q R X t jt|d |tjtdjgdd W 5 Q R X d S )NQInferred frequency None from passed values does not conform to passed frequency Dmatch
2011-01-01Dfreq)pytestraises
ValueErrorpdNaTr   value)selfr   msg r#   c/home/mars/bis/venv/lib/python3.8/site-packages/pandas/tests/indexes/datetimes/test_constructors.pytest_freq_validation_with_nat$   s     z/TestDatetimeIndex.test_freq_validation_with_natindex
2016-01-01   
US/Pacificperiodstzz1 Dayr+   c                 C   sB   |j }|dddddg }|jd ks&t||}|jd ks>td S )Nr               )_datar   AssertionErrorZ_shallow_copy)r!   r&   arrayarrresultr#   r#   r$   %test_shallow_copy_inherits_array_freq4   s
    

z7TestDatetimeIndex.test_shallow_copy_inherits_array_freqc                 C   sl   t tjdddgdd}||jfD ]F}t|}t|}t|}|||fD ]}t |}t|| qLq d S )N
2015-01-01z1999-04-06 15:14:13
US/Easternr,   )	r
   r   r   r2   ZCategoricalIndexZCategoricalZSeriestmassert_index_equal)r!   dtiZdtobjciZcarrZcserobjr6   r#   r#   r$   test_categorical_preserves_tzF   s     


z/TestDatetimeIndex.test_categorical_preserves_tzc              	   C   s   t jddgdd}tjtdd t| W 5 Q R X tjtdd t| W 5 Q R X tjtdd tt| W 5 Q R X tjtdd tt| W 5 Q R X d S )NZ2016Q1Z2016Q2Qr   zPeriodDtype data is invalidr   )r   ZPeriodIndexr   r   	TypeErrorr
   r   r   )r!   datar#   r#   r$    test_dti_with_period_data_raisesW   s    z2TestDatetimeIndex.test_dti_with_period_data_raisesc              	   C   s   t jdgdd}d}tjt|d t| W 5 Q R X tjt|d t| W 5 Q R X tjt|d tt| W 5 Q R X tjt|d tt| W 5 Q R X d S )Nr   zm8[ns]dtypez3timedelta64\[ns\] cannot be converted to datetime64r   )	npr4   r   r   rB   r
   r   r   ZTimedeltaIndex)r!   rC   r"   r#   r#   r$   %test_dti_with_timedelta64_data_raisesg   s    z7TestDatetimeIndex.test_dti_with_timedelta64_data_raisesc              	   C   sZ   t dt dg}tj|}d}tjt|d t|}W 5 Q R X t|}t	|| d S )Nz2012-05-01T01:00:00.000000z2016-05-01T01:00:00.000000zwill store that array directlyr   )
r   r   ZarraysZSparseArrayr;   assert_produces_warningFutureWarningr   r
   r<   )r!   valuesr5   r"   r6   expectedr#   r#   r$   "test_constructor_from_sparse_arrayw   s    z4TestDatetimeIndex.test_constructor_from_sparse_arrayc              
   C   sX   t tdddtddddtdt jtdgtddddd	}|jjjjdksTt	d S )
N20130101r.   r-   r9   r*   Z20130103nsr+   r   )dtdttzZdt_with_nullZdtns)
r   	DataFramer   r   r   rR   rF   r,   zoner3   )r!   Zdfr#   r#   r$   test_construction_caching   s    
z+TestDatetimeIndex.test_construction_cachingkwargsr,   zdtype.tzrF   rF   r,   c                    sF   |}t ddd|d  fdd| D }t f|}t | d S )NrN   r(   Hr+   r   r,   c                    s   i | ]\}}|t | qS r#   r   .0keyvalir#   r$   
<dictcomp>   s      z@TestDatetimeIndex.test_construction_with_alt.<locals>.<dictcomp>)r   itemsr
   r;   r<   )r!   rV   tz_aware_fixturer,   r6   r#   r^   r$   test_construction_with_alt   s
    z,TestDatetimeIndex.test_construction_with_altc              	      s   |}t ddd|d  d   fdd| D }d|krlt jdd	|d }t f|}t|| t d jdd	} d d}t|| d
}t	j
t|d t d j jdd W 5 Q R X d S )NrN   r(   rX   rY   c                    s   i | ]\}}|t | qS r#   r   rZ   r^   r#   r$   r`      s      zLTestDatetimeIndex.test_construction_with_alt_tz_localize.<locals>.<dictcomp>r,   UTCr:   -cannot supply both a tz and a dtype with a tzr   r)   rW   )r   Z
_with_freqra   r
   asi8Z
tz_convertr;   r<   tz_localizer   r   r   rF   )r!   rV   rb   r,   r6   rL   i2r"   r#   r^   r$   &test_construction_with_alt_tz_localize   s    
z8TestDatetimeIndex.test_construction_with_alt_tz_localizec                 C   s  t tdtdgdd}ttdtdgdd}tj||dd t|tsNt|jd ks\tt tddd	td
dd	gdd}ttdtd
gddd}tj||dd t|tst|jd k	st|j|jkstt tddd	tddd	gdd}ttdtdgddd}tj||dd t|ts,t|jd k	s<t|j|jksNtt tdtd
dd	gdd}t tdtd
dd	gddd}tj||dd t|trtt tddd	td
dd	gdd}t tddd	td
dd	gddd}tj||dd t|tr
tt tdgdd}ttdgdd}tj||dd t|tsNt|jd ks^tt tddd	gdd}ttdgddd}tj||dd t|tst|jd k	st|j|jkstd S Nr   
2011-01-02idxnameTexact2011-01-01 10:00
Asia/Tokyor:   2011-01-02 10:00r,   rn   r9   2011-08-01 10:00object)rF   rn   )r   r   r
   r;   r<   
isinstancer3   r,   r!   r6   expr#   r#   r$   ,test_construction_index_with_mixed_timezones   s     









  z>TestDatetimeIndex.test_construction_index_with_mixed_timezonesc              	   C   s2  t tjtdtjtdgdd}ttjtdtjtdgdd}tj||dd t|ts^t|j	d ksltt tjtddd	tjtd
dd	gdd}ttjtdtjtd
gddd}tj||dd t|tst|j	d k	st|j	|j	kstt tddd	tjtddd	gdd}ttdtjtdgddd}tj||dd t|tsTt|j	d k	sdt|j	|j	ksvtt tjtdtjtd
dd	gdd}t tjtdtjtd
dd	gddd}tj||dd t|trtt tjtddd	tjtd
dd	gdd}t tjtddd	tjtd
dd	gddd}tj||dd t|trRtt tjtjgdd}ttjtjgdd}tj||dd t|tst|j	d kstt
t t tjtjgddd}W 5 Q R X ttjtjgddd}tj||dd t|tst|j	d k	st|j	|j	ks.td S rj   )r   r   r   r   r
   r;   r<   rw   r3   r,   rI   rJ   rx   r#   r#   r$   5test_construction_index_with_mixed_timezones_with_NaT  s    

	



	



	


 zGTestDatetimeIndex.test_construction_index_with_mixed_timezones_with_NaTc              
   C   s
  t tdtdgdd}t tdtdgdd}tj||dd t|t sNtt tddd	td
dd	gdd}t tdtd
gddd}tj||dd t|t stt tddd	tddd	gdd}t tdtdgddd}tj||dd t|t std}tjt|d& t tddd	td
dd	gdd W 5 Q R X tjt|d$ t tdtd
dd	gddd W 5 Q R X tjt|d( t tddd	td
dd	gddd W 5 Q R X tjt|dB t	t
, ttjtdtjtd
dd	gddd W 5 Q R X W 5 Q R X d S )Nr   rk   rl   rm   Tro   rq   rr   r:   rs   rt   r9   ru   z!cannot be converted to datetime64r   )r
   r   r;   r<   rw   r3   r   r   r   rI   rJ   r   r   r   )r!   r6   ry   r"   r#   r#   r$   *test_construction_dti_with_mixed_timezones  s      






	

	
z<TestDatetimeIndex.test_construction_dti_with_mixed_timezonesc                 C   s   t dtjt dg}tt|t| ttt|tt| tj	tjt dg}tt|t| ttt|tt| d S )Nr   z
2011-01-03)
r   r   r   r;   r<   r   r
   rG   r4   nan)r!   r5   r#   r#   r$   "test_construction_base_constructor  s     z4TestDatetimeIndex.test_construction_base_constructorc              	   C   sr   t dddt dddt dddt dddg}t|td}tt|| d}tjt|d t| W 5 Q R X d S )	Ni  r1   i  i  ip  rE   z"Out of bounds nanosecond timestampr   )	r   r   rv   r;   r<   r   r   r   r
   )r!   datesry   r"   r#   r#   r$   test_construction_outofbounds  s    



z/TestDatetimeIndex.test_construction_outofboundsc                 C   sf   t dddt dddt dddg}t|t dj}t|t d}tddd	gd
d}t|| d S )Ni  
         	   r   z
2013-10-07z
2013-10-08z
2013-10-09B)r   r
   r   BDayrK   r;   r<   )r!   r   rC   r6   rL   r#   r#   r$   test_construction_with_ndarray  s
    "z0TestDatetimeIndex.test_construction_with_ndarrayc              	   C   sz   t dd}t |dg}t|d}tdgdd}t|| td  t|dd}W 5 Q R X tdgdd}d S )Nz2000-01-01 00:00:00rO   i8
US/Centralz2000-01-01T00:00:00r:   rd   )	rG   
datetime64r4   viewr
   rg   r;   r<   rI   )r!   r]   rK   r6   rL   r#   r#   r$   -test_integer_values_and_tz_interpreted_as_utc  s    z?TestDatetimeIndex.test_integer_values_and_tz_interpreted_as_utcc           	   	   C   s  t ddd}t ddd}t|| d}tjt|d t dddd	 W 5 Q R X d
}tjt|d td W 5 Q R X dd tdD }t|}tdd tdD }t|| t	dddg}t|}t|
d}t|| t|j}t|| t	dddg}t|}t|
d}t|| t|j}t|| d}tjt|d tdddgdd W 5 Q R X d}tjt|d t ddd W 5 Q R X tjt|d t ddd W 5 Q R X tjt|d t ddd W 5 Q R X d S )N1/1/2000g      %@r-   r   z!periods must be a number, got foor   Zfoor   startr+   r   z8DatetimeIndex\(\.\.\.\) must be called with a collectionc                 s   s"   | ]}t d ddt| V  qdS )  r1   Nr   r   r[   r_   r#   r#   r$   	<genexpr>2  s     z>TestDatetimeIndex.test_constructor_coverage.<locals>.<genexpr>c                 S   s    g | ]}t d ddt| qS )r   r1   r   r   r#   r#   r$   
<listcomp>5  s     z?TestDatetimeIndex.test_constructor_coverage.<locals>.<listcomp>
2000-01-01z
2000-01-02z
2000-01-03Or   r   z
2000-01-04r   zVOf the four parameters: start, end, periods, and freq, exactly three must be specifiedr   b)r   r   r   )endr   rP   )r   r;   r<   r   r   rB   r
   rangerG   r4   Zastyperf   r   )	r!   rngry   r"   genr6   rL   stringsZ	from_intsr#   r#   r$   test_constructor_coverage$  sN    

z+TestDatetimeIndex.test_constructor_coverager   ASW-SUNc                 C   sD  t dd|d}t dd|tdd}t|| t dd|dd}t|j|j t d	d
|d}t dd|tdd}t|| t dd|dd}t|j|j t dd|d}t dd|tdd}t|| t dd|dd}t|j|j t dd|d}t dd|tdd}t|| t dd|dd}t|j|j d S )Nz2013-01-01T00:00:00-05:00z2016-01-01T23:59:59-05:00r   z2013-01-01T00:00:00z2016-01-01T23:59:59ir   r,   zAmerica/Limaz2013-01-01T00:00:00+09:00z2016-01-01T23:59:59+09:00i  rr   z2013/1/1 0:00:00-5:00z2016/1/1 23:59:59-5:00z2013/1/1 0:00:00+9:00z2016/1/1 23:59:59+09:00)r   pytzZFixedOffsetr;   r<   assert_numpy_array_equalrf   )r!   r   rl   rL   Zexpected_i8r#   r#   r$   $test_constructor_datetime64_tzformat^  s                    z6TestDatetimeIndex.test_constructor_datetime64_tzformatc              	   C   s   t ddgdd}t ddgd}t|| t ddgdd}t|| t ddgdd}d}tjt|d t |d	d W 5 Q R X d
}tjt|d t |dd W 5 Q R X d}tjt|d t |ddd W 5 Q R X t |dd}t|| d S )Nz
2013-01-01z
2013-01-02zdatetime64[ns, US/Eastern]rE   r9   r:   zNcannot supply both a tz and a timezone-naive dtype \(i\.e\. datetime64\[ns\]\)r   datetime64[ns]zDdata is already tz-aware US/Eastern, unable to set specified tz: CETzdatetime64[ns, CET]re   ZCET)r,   rF   )r
   rg   r;   r<   r   r   r   rB   )r!   rl   rL   r"   r6   r#   r#   r$   test_constructor_dtype  s0      z(TestDatetimeIndex.test_constructor_dtypec              	   C   s2   d}t jt|d tddg|d W 5 Q R X d S )NzUnexpected value for 'dtype'r   r1   r/   rE   r   r   r   r
   )r!   rF   r"   r#   r#   r$   %test_constructor_invalid_dtype_raises  s    z7TestDatetimeIndex.test_constructor_invalid_dtype_raisesc                 C   s"   t ddddd}|jdkstd S )Nr   r1   AZTEST)r   r+   r   rn   )r   rn   r3   )r!   rl   r#   r#   r$   test_constructor_name  s    z'TestDatetimeIndex.test_constructor_namec                 C   s*   t d}t|g}|jd |jks&td S )Nl   )b0Z4 r   )r   r
   Z
nanosecondr3   )r!   t1rl   r#   r#   r$   test_000constructor_resolution  s    
z0TestDatetimeIndex.test_000constructor_resolutionc              	   C   s<   t dgdd}d}tjt|d td|_W 5 Q R X d S )N2010rd   r:   zCannot directly set timezoner   r)   )r
   r   r   AttributeErrorr   r   r,   r!   r=   r"   r#   r#   r$   test_disallow_setting_tz  s    z*TestDatetimeIndex.test_disallow_setting_tzNAmerica/Los_Angeles2000r:   c                 C   s^   t ddd}t ddd}td|||d}tddgddd}t|| td|jksZtd S )Nz2013-01-01 06:00:00r   r:   z2013-01-02 06:00:00r   )r   r   r   r,   )r,   r   )	r   r   r
   r;   r<   r   r   r,   r3   )r!   r,   r   r   r6   rL   r#   r#   r$   "test_constructor_start_end_with_tz  s    z4TestDatetimeIndex.test_constructor_start_end_with_tzr9   rr   c                 C   s4   t d|dj}tdg|d}t||jks0td S )Nr   r:   )r   r,   r
   r   r   r3   )r!   r,   Znon_norm_tzr6   r#   r#   r$   )test_constructor_with_non_normalized_pytz  s    z;TestDatetimeIndex.test_constructor_with_non_normalized_pytzc                 C   sL   t dddt dddg}t|}t|d  |d  g}t|| d S )Nz2016-10-30 03:00:00+0300zEurope/Helsinkir:   z2016-10-30 03:00:00+0200r   r1   )r   r
   to_pydatetimer;   r<   )r!   tsr6   rL   r#   r#   r$   #test_constructor_timestamp_near_dst  s    

z5TestDatetimeIndex.test_constructor_timestamp_near_dstklassboxrE   z	tz, dtype)r)   zdatetime64[ns, US/Pacific])Nr   c                 C   s:   t d|d}|||jg|d}||g}||ks6td S )Nz
2018-01-01r:   rE   r   r    r3   )r!   r   r   r,   rF   r   r6   rL   r#   r#   r$   test_constructor_with_int_tz   s    
z.TestDatetimeIndex.test_constructor_with_int_tzc                 C   s,   |}d}t |g|djd }||ks(td S )Nl     _S r:   r   )r
   rf   r3   )r!   tz_naive_fixturer,   r6   rL   r#   r#   r$   test_construction_int_rountrip  s    z0TestDatetimeIndex.test_construction_int_rountripc                 C   s   t tdddtdddddd}tjdtt|i|d}|d	 }td
d |j	D }tddddddgdd}t
|| d S )Nr   r1     MSzAustralia/Melbourner   rC   )r&   Yc                 S   s   g | ]}|j d ddqS )   r1   )monthday)replace)r[   xr#   r#   r$   r     s     zYTestDatetimeIndex.test_construction_from_replaced_timestamps_with_dst.<locals>.<listcomp>z2000-06-01 00:00:00z2001-06-01 00:00:00z2002-06-01 00:00:00z2003-06-01 00:00:00z2004-06-01 00:00:00z2005-06-01 00:00:00r:   )r   r   r   rS   r   lenZresampleZmeanr
   r&   r;   r<   )r!   r&   testr6   rL   r#   r#   r$   3test_construction_from_replaced_timestamps_with_dst  s(    

zETestDatetimeIndex.test_construction_from_replaced_timestamps_with_dstc              	   C   s<   t dddd}d}tjt|d t|dd W 5 Q R X d S )	Nr'   r.   r   r*   z?data is already tz-aware US/Central, unable to set specified tzr   rr   r:   )r   r   r   rB   r
   r   r#   r#   r$   *test_construction_with_tz_and_tz_aware_dti-  s    z<TestDatetimeIndex.test_construction_with_tz_and_tz_aware_dtic                 C   s@   t j }tddg|d}ttd|dtjg}t|| d S )NZ2018r   r:   )	dateutilr,   Ztzlocalr
   r   r   r   r;   r<   )r!   r,   r6   rL   r#   r#   r$   &test_construction_with_nat_and_tzlocal4  s    
z8TestDatetimeIndex.test_construction_with_nat_and_tzlocalc                 C   s   t ddgdddd}d}tdd	d
d
dj|dd}t|ddd}t|| d}tdd	dd
dj|dd}t|ddd}t|| d S )Nz2020-11-01 01:00:00z2020-11-02 01:00:00z datetime64[ns, America/New_York]r   F)rF   r   	ambiguouszAmerica/New_Yorki     r1   )yearr   r   hour)r   r/   )r   r+   r   )r   r+   r   )r
   r   rg   r   r;   r<   )r!   rL   r   r   r6   r   r#   r#   r$   +test_constructor_with_ambiguous_keyword_arg:  s(      z=TestDatetimeIndex.test_constructor_with_ambiguous_keyword_argc                 C   s   d}t dj|dd}t|ddd}tt d|d	t d
|d	g}t|| t dj|dd}t|ddd}tt d|d	t d|d	g}t|| d S )NzEurope/Warsawz2015-03-29 02:30:00Zshift_forward)Znonexistentr/   rX   r   z2015-03-29 03:00:00+02:00r:   z2015-03-29 04:00:00+02:00)r   r+   r   z2015-03-29 01:00:00+01:00)r   rg   r   r
   r;   r<   )r!   r   r   r6   rL   r   r#   r#   r$   -test_constructor_with_nonexistent_keyword_argT  s.     

 

z?TestDatetimeIndex.test_constructor_with_nonexistent_keyword_argc              	   C   sX   d}t jt|d tdgdd W 5 Q R X t jt|d tdgdd W 5 Q R X d S )Nz with no precision is not allowedr   r   r   rE   )r   r   r   r
   r   r!   r"   r#   r#   r$   $test_constructor_no_precision_raisesu  s
    z6TestDatetimeIndex.test_constructor_no_precision_raisesc              	   C   s0   d}t jt|d tdgdd W 5 Q R X d S )Nz0Unexpected value for 'dtype': 'datetime64\[us\]'r   r   zdatetime64[us]rE   r   r   r#   r#   r$   'test_constructor_wrong_precision_raises  s    z9TestDatetimeIndex.test_constructor_wrong_precision_raisesc                 C   sF   t tjtdddtjgtd}ttdddtjg}t	
|| d S )NZ2019rd   r:   rE   )r   rG   r4   r   r}   rv   r
   r   r   r;   r<   )r!   r6   rL   r#   r#   r$   Htest_index_constructor_with_numpy_object_array_and_timestamp_tz_with_nan  s     zZTestDatetimeIndex.test_index_constructor_with_numpy_object_array_and_timestamp_tz_with_nan)<__name__
__module____qualname__r   markparametrizer
   r   Z_from_sequence_not_strictr%   r   r   Ztimedelta_ranger7   r@   rD   rH   rM   rU   rc   ri   rz   r{   r|   r~   r   r   r   r   r   r   rv   rG   Zint32int64r   r   r   r   r   r   r   r,   r   r   r   r   r4   r   listr   r   r   r   r   r   r   r   r   r   r#   r#   r#   r$   r   #   s    



dy]	:
=#
	


!
r   c                   @   s   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
ejddddddddddddddgdd  Zd!d" Zd#d$ Zd%d& Zd'S )(TestTimeSeriesc                 C   s*   t dddd}t|}|j|jks&td S Nr   z1/2/2000Z5minr   )r   r
   r   r3   )r!   r   rng2r#   r#   r$   &test_dti_constructor_preserve_dti_freq  s    z5TestTimeSeries.test_dti_constructor_preserve_dti_freqc                 C   sH   t dddd}t|d d}|jd ks(tt|jd d}|jd ksDtd S r   )r   r
   r   r3   r2   )r!   r   r6   r#   r#   r$   test_explicit_none_freq  s
    z&TestTimeSeries.test_explicit_none_freqc                 C   s   |}t ddd|d}t ddd|d}t ddd|d}t dd	d|d}t dd
d|d}t ddd|d}t dd
d|d}	t ddd|d}
||f||f||f|	|
ffD ]\}}t|| qd S )NZ2014Z2015Mr   z
2014-01-31z
2014-12-31r   z
2014-01-01r8   Z2020r   z
2019-12-31r   z
2020-01-01)r   r;   r<   )r!   r   r,   Zrng1Z	expected1r   Z	expected2Zrng3Z	expected3Zrng4Z	expected4r   rL   r#   r#   r$   test_dti_constructor_years_only  s    z.TestTimeSeries.test_dti_constructor_years_onlyc                 C   s6   t dddg}tjdddg|d}tt || d S )Nz1970-01-01 00:00:00.00000000z1970-01-01 00:00:00.00000001z1970-01-01 00:00:00.00000002r   r      rE   )r
   rG   r4   r;   r<   )r!   Zany_int_numpy_dtypery   r5   r#   r#   r$   test_dti_constructor_small_int  s    z-TestTimeSeries.test_dti_constructor_small_intc                 C   s    t dg}|d jdkstd S )Nz1-1-2000 00:00:01r   r1   )r
   secondr3   )r!   r   r#   r#   r$   test_ctor_str_intraday  s    
z%TestTimeSeries.test_ctor_str_intradayc                 C   sD   t dddd}||st|| s.t|| r@td S )N1/1/2005z	12/1/2005r   r   r   r   )r   is_r3   r   copy)r!   r=   r#   r#   r$   test_is_  s    zTestTimeSeries.test_is_c                 C   s>   t jdddt jdd}t|}|jt|k s:t	d S )Nr   d   r   rE   zM8[D])
rG   aranger   r   r   rK   r	   Zensure_datetime64nsallr3   )r!   r5   rl   r#   r#   r$   &test_index_cast_datetime64_other_units  s    z5TestTimeSeries.test_index_cast_datetime64_other_unitsc                 C   s   t jdt jd}t|}d|dd< |jdd dk s>tt jdt jd}t|dd}d|dd< |jdd dk std S )Ni  rE   2   r   T)r   )rG   r   r   r
   rf   r   r3   )r!   r5   r&   r#   r#   r$   test_constructor_int64_nocopy  s    z,TestTimeSeries.test_constructor_int64_nocopyr   r   rA   r   r   r   ZBHTSLUrX   NCc                 C   sT   t d|dd}t||d}t|| t d|ddd}t||dd}t|| d S )Nz2001/02/01 09:00r1   r   r   r+   r   r)   )r   r   r,   r+   r   )r   r
   r;   r<   )r!   r   orgrl   r#   r#   r$   !test_from_freq_recreate_from_data  s       z0TestTimeSeries.test_from_freq_recreate_from_datac              	   C   sx  ddddg}d}t jt|d t| W 5 Q R X ddddg}t|}tdd	d	dddg}t|}ttdd	d	dddg}t|}tjddddgd
d}t|}tddddg}t|}tddddg}t|}tddgdd}	tddgddd}
t	
|	|
 |||||fD ]}|j|jk stqtddd}tdd	d	}t|ddd}t|dksbt|d |dt   kst|jdkstt||dd}t||tjd d!d}t|t|kst|j|jkstt||d"d}t||tjd	d#d}t|t|kst|j|jks(tt||d$d}t||tjdd#d}t|t|ksbt|j|jksttd S )%Nr   z1/2/2005z
Jn 3, 2005z
2005-01-04z0(\(')?Unknown string format(:', 'Jn 3, 2005'\))?r   z1/3/2005r   r1   r   rE   zJan 3, 2005z
12/05/2007z
25/01/2008T)dayfirstz
2007/05/12z
2008/01/25F)r   Z	yearfirsti        r   Z1Br   r   r   r   r   r   r   )weekdayZQS)ZstartingMonthZBQ)r   r   r   r
   r   r   rG   r4   r   r;   r<   rK   r   r3   r   r   r   r   r   ZWeekZQuarterBeginZBQuarterEnd)r!   r5   r"   Zidx1Zidx2Zidx3Zidx4Zidx5Zidx6Zidx7Zidx8otherZsdateedaterl   r#   r#   r$   #test_datetimeindex_constructor_misc  sf        
  
z2TestTimeSeries.test_datetimeindex_constructor_miscc                 C   s:   t dd}t|td}t| td}t|j|j d S )Nr   z3/1/2000rE   )r   r   rv   r   r;   r   rK   )r!   r   rl   rL   r#   r#   r$    test_pass_datetimeindex_to_index'  s    
z/TestTimeSeries.test_pass_datetimeindex_to_indexc              	   C   s8   t ddd}tjtdd t|ddd W 5 Q R X d S )Nr   r1   zpass as a string insteadr   )r   r(   r   )r   r   r+   )r   r   r   rB   r   )r!   r  r#   r#   r$   !test_date_range_tuple_freq_raises0  s    z0TestTimeSeries.test_date_range_tuple_freq_raisesN)r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r#   r#   r#   r$   r     s    
 
;	r   c               	   C   s.   d} t jt| d tddd W 5 Q R X d S )Nz5Valid values for the fold argument are None, 0, or 1.r   {   r/   foldr   r   r   r   )r"   r#   r#   r$   -test_timestamp_constructor_invalid_fold_raise7  s    r	  c               
   C   sJ   d} t d}tjt| d$ ttddddddd|dd	 W 5 Q R X d S )
NzBpytz timezones do not support fold. Please use dateutil timezones.zEurope/Londonr     r      r      r,   r  )r   r   r   r   r   r   r   )r"   r,   r#   r#   r$   *test_timestamp_constructor_pytz_fold_raise?  s    
r  r  r1   ts_input    P7-f. gP[YѵCrO   2019-10-27 01:30:00+01:00r
  r   r  r  )tzinfoc              	   C   s.   d}t jt|d t| |d W 5 Q R X d S )NzCannot pass fold with possibly unambiguous input: int, float, numpy.datetime64, str, or timezone-aware datetime-like. Pass naive datetime-like or build Timestamp from components.r   )r  r  r  )r  r  r"   r#   r#   r$   (test_timestamp_constructor_fold_conflictI  s    r  r,   zdateutil/Europe/Londonc              	   C   s0   t ddddd| |d}|j}|}||ks,td S )Nr
  r   r  r1   r  )r   r   r   r   minuter,   r  r   r  r3   )r,   r  r   r6   rL   r#   r#   r$   &test_timestamp_constructor_retain_fold`  s    r  zts_input,fold_out)r  r   )    pFs. r1   )r  r   )z2019-10-27 01:30:00+00:00r1   r  c                 C   s&   t || d}|j}|}||ks"td S )Nr:   r  )r,   r  Zfold_outr   r6   rL   r#   r#   r$   0test_timestamp_constructor_infer_fold_from_valuek  s    r  zts_input,fold,value_outr  c                 C   s(   t || |d}|j}|}||ks$td S )Nr  r   )r,   r  r  Z	value_outr   r6   rL   r#   r#   r$   0test_timestamp_constructor_adjust_value_for_fold  s    r  ))r   r   r   	functoolsr   operatorr   r   numpyrG   r   r   Zpandas._libs.tslibsr   r	   Zpandasr   r
   r   r   r   r   r   Zpandas._testingZ_testingr;   Zpandas.core.arraysr   r   r   r   r	  r  r   r   r   utcr  r  r  r  r#   r#   r#   r$   <module>   sp          n -


	
