o
    i                  	   @   s  d Z ddlZddlmZmZ ddlZddlZddlZddlm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mZmZmZ ddlmZ ddlm  mZ dd	lmZmZm Z  ddl!m"Z# dd
l$m%Z% G dd dZ&G dd dZ'G dd dZ(G dd dZ)G dd dZ*G dd deZ+ej,-de+dddeddfedde+dddfgdd Z.G dd dZ/dd  Z0G d!d" d"Z1dS )#z test the scalar Timestamp     N)datetime	timedelta)tzutc)timezoneutc)NpyDatetimeUnit)dateutil_gettzget_timezonemaybe_get_tz
tz_compare)OutOfBoundsDatetime)NaT	Timedelta	Timestamp)offsetsc                   @   s  e Zd Zdd Zejdejddd Zejddd	gd
dgddgddgddgddgddgddgddgddgddgddgddgddgd dggejd!d"d#gd$d% Z	ejd!d"d#gd&d' Z
ejd(g d)ejd!d"d#gd*d+ Zejd,g d-ejd!d"d#gd.d/ Zejd0ed1ed1d2d3gejd4d"ge pg  d5d6 Zd7d8 Zd9d: Zd;d< Zd"S )=TestTimestampPropertiesc              
   C   s  d}t jt|d tddd}tddd}W d    n1 s w   Y  d}t jt|d |j W d    n1 s<w   Y  dD ]E}d	D ]@}d
| d| }t jt|d t|| W d    n1 shw   Y  t d  t|| W d    n1 sw   Y  qGqCd S )Nz.The 'freq' argument in Timestamp is deprecatedmatchz
2021-06-01DfreqBTimestamp.freq is deprecated)monthquarteryear)startendis__)tmassert_produces_warningFutureWarningr   r   getattr)selfmsgtsts2persideattr r+   g/var/www/edux/Edux_v2/venv/lib/python3.10/site-packages/pandas/tests/scalar/timestamp/test_timestamp.pytest_freq_deprecation*   s*   z-TestTimestampProperties.test_freq_deprecationz(ignore:The 'freq' argument:FutureWarningz1ignore:Timestamp.freq is deprecated:FutureWarningc                 C   s\  t ddd}t d}|jdksJ |jdksJ |jrJ |j|r%J |j|tdd s2J |jr7J |j|r?J |j|tdd sLJ |jsQJ |jsVJ t ddd}t d}|jdksgJ |jdksnJ |jrsJ |j|r{J |j|tdd sJ |jrJ |j|rJ |j|tdd sJ |jsJ |jsJ d S )	Nz
2017-10-01r   r         daysz
2017-09-30   )	r   	dayofweekday_of_weekis_month_startr   r   is_quarter_startis_month_endis_quarter_end)r$   r&   controlr+   r+   r,   test_properties_businessC   s0   






z0TestTimestampProperties.test_properties_businesszattr, expectedr   i  r      day   hour   minute;   secondr   microsecond
nanosecondr3      r4   r      	dayofyearim  day_of_yearweekr/   daysinmonthtzN
US/Easternc                 C   s4   t d|d}t||}t|tsJ ||ksJ d S )N2014-12-31 23:59:00rK   )r   r#   
isinstanceint)r$   r*   expectedrK   r&   resultr+   r+   r,   test_fieldsb   s   
z#TestTimestampProperties.test_fieldsc                 C   sJ   t d|d}d}tjt|d |j W d    d S 1 sw   Y  d S )NrM   rN   z1'Timestamp' object has no attribute 'millisecond'r   )r   pytestraisesAttributeErrormillisecond)r$   rK   r&   r%   r+   r+   r,   test_millisecond_raises   s
   "z/TestTimestampProperties.test_millisecond_raisesr   )r5   r6   is_year_startc                 C      t d|d}t||sJ d S )Nz2014-01-01 00:00:00rN   r   r#   )r$   r   rK   r&   r+   r+   r,   test_is_start   s   z%TestTimestampProperties.test_is_startr   )r7   is_year_endr8   c                 C   rZ   )Nz2014-12-31 23:59:59rN   r[   )r$   r   rK   r&   r+   r+   r,   test_is_end   s   z#TestTimestampProperties.test_is_enddataz2017-08-28 23:00:00ESTrN   time_localec                 C   s   |d u r	d}d}n%t |tj tjd  }tjd  }W d    n1 s)w   Y  ||}||}t	d|}t	d|}t	d|}t	d|}||ksVJ ||ks\J t
t}t||sjJ t||stJ d S )NMondayAugustr      NFD)r    
set_localelocaleLC_TIMEcalendarday_name
capitalize
month_nameunicodedata	normalizer   r   npisnan)r$   r_   ra   expected_dayexpected_month
result_dayresult_monthnan_tsr+   r+   r,   
test_names   s$   

z"TestTimestampProperties.test_namesc                 C   sp   |}t d|d}|jsJ t|jtsJ t d|d}|jr J t d|d}|js+J t d|d}|jr6J d S )Nz2000-01-01 00:00:00rN   z1999-01-01 00:00:00z2004-01-01 00:00:002100-01-01 00:00:00)r   is_leap_yearrO   bool)r$   tz_naive_fixturerK   dtr+   r+   r,   test_is_leap_year   s   


z)TestTimestampProperties.test_is_leap_yearc                 C   s   t ddd}t|j}d}||ksJ t ddd}t|j}d}||ks&J t ddd}t|j}d	}||ks9J t d
dd}t|j}d	}||ksLJ t d
dd}t|j}d	}||ks_J tdd dD }|g dk ssJ d S )N  r;   r=   r/   i     4   i  5   i     c                 S   s   g | ]	}t t| jqS r+   )r   r   rI   ).0argsr+   r+   r,   
<listcomp>   s    z=TestTimestampProperties.test_woy_boundary.<locals>.<listcomp>))  r/   r/   )r   r/   rE   )  r/   r/   )r   r/   rE   )r   r   r   r   )r   r   rI   ro   arrayall)r$   drR   rQ   r+   r+   r,   test_woy_boundary   s4   




z)TestTimestampProperties.test_woy_boundaryc                 C   s4   t d}|jtddksJ t jtddksJ d S )Nrw   r/   )nanoseconds)r   
resolutionr   )r$   r{   r+   r+   r,   test_resolution   s   z'TestTimestampProperties.test_resolution)__name__
__module____qualname__r-   rT   markfilterwarningsr:   parametrizerS   rX   r\   r^   r   r    get_localesrv   r|   r   r   r+   r+   r+   r,   r   )   s^    

	
#r   c                   @   sL  e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Ze	j
ddi gdddigdddigdddigddddgdddddgdddd gd!dd"d gd#dd"d gd$ddd gd%dd&d gd'dd(d gd!dd"d gd)dd&d&dgdddd gd*dd+dggd,d- Zd.d/ Zd0d1 Ze	j
d2g d3g d4gd5d6 Zd7d8 Zd9d: Zd;S )<TestTimestampc                 C   s   d}t |}|d}|jdksJ |t |ddksJ |d}|t dddks+J |jdks2J t |td }|d}|jdksGJ |jdksNJ |d}|jdksZJ |jdksaJ d S )	Nz2014-02-01 09:00
Asia/Tokyo	   rN   rL   z2014-01-31 19:00   r2   )r   tz_localizer>   
tz_convertr   NanorD   )r$   tstrr&   localconvr+   r+   r,   test_tz   s   



zTestTimestamp.test_tzc                 C   s   t tdjtu sJ d S )Nz2014-11-02 01:00Z)r	   r   tzinfor   )r$   r+   r+   r,   test_utc_z_designator  s   z#TestTimestamp.test_utc_z_designatorc                 C   s   t jd tjjtjjdg}|D ]}t|jdt 	|dd  kr+|ks.J  J qtdjdt 	dddksBJ d S )Niayy   i8nsnat)
ro   randomseedr   minvaluemaxasm8view
datetime64)r$   r   nr+   r+   r,   	test_asm8  s
   8*zTestTimestamp.test_asm8c                 C   s:  dd }|t  t  |t dttd |t  t  |t  t  tt  }d}t	j
t|d t |}W d    n1 sNw   Y  ||t| |t |t| |t |dt|t |t j|ddt|t t }|tdd  }|t ||t|| d S )	Nc                 S   s(   t t| jt|j d dksJ d S Ng    eAr   )rP   r   r   xyr+   r+   r,   compare  s   (z2TestTimestamp.test_class_ops_pytz.<locals>.compareUTC!timezone-aware Timestamp with UTCr   rN   
   minutes)r   nowr   r   utcnowtodayri   timegmutctimetupler    r!   r"   utcfromtimestampfromtimestampr   r   timecombiner$   r   current_timer%   ts_utcdate_componenttime_componentr+   r+   r,   test_class_ops_pytz  s>   




z!TestTimestamp.test_class_ops_pytzc                 C   s  dd }|t  t  |t dtt  |t  t  |t  t  tt  }d}t	j
t|d t |}W d    n1 sMw   Y  ||t| |t |t| t }|tdd  }|t ||t|| d S )Nc                 S   s8   t tt| jd tt|jd  dksJ d S r   )rP   ro   roundr   r   r   r+   r+   r,   r   B  s   z6TestTimestamp.test_class_ops_dateutil.<locals>.comparer   r   r   r   r   )r   r   r   r   r   r   ri   r   r   r    r!   r"   r   r   r   r   r   r   r+   r+   r,   test_class_ops_dateutilA  s.   	

z%TestTimestamp.test_class_ops_dateutilc                 C   s   t dd}t|dd }|jdksJ |jdksJ |jdks&J |jdks-J t t jj	d }t|}|jd	ksAJ |jd
ksHJ |j
dksOJ |jdksVJ |jdks]J d S )Nl     $=3izM8[ns]r     r   r/   r   l     *g	# i  r      iH7    )ro   int64r   r   r   r   rC   rD   iinfor   r<   )r$   valstampr+   r+   r,   test_basics_nanose  s   zTestTimestamp.test_basics_nanoszvalue, check_kwargsl    Bm@ig jr
Cunitusg  `kBmsg  6Asi*  r   r   )r   hgb6Ai  i  )r   r   r   g  6Ai  )r   r   g `kBr   gyr
Cg W`kBg(jr
Cr2   g@s
C  g) `kBg    f@r;   c                 C   s   ddd}||fi | d S )Nr/   r   c                 S   s   t | |d}|jdksJ |jdksJ |jdksJ |j|ks"J |dkr<|jdks-J |j|ks4J |j|ks;J n|jdksCJ |jdksJJ |jdksQJ |j|ksXJ d S )N)r   r   r/   r   r   )	r   r   r   r<   r>   r@   rB   rC   rD   )r   r   r   r   r   r   r   r+   r+   r,   check  s   z&TestTimestamp.test_unit.<locals>.check)Nr/   r/   r   r   r+   )r$   r   check_kwargsr   r+   r+   r,   	test_unitv  s   
zTestTimestamp.test_unitc                 C   s2  t d}t |jtdj }|t | dksJ |jdks J t |jtdj }|t | dks5J |jdks<J t |jtdj }|t | d	ksQJ |jdksXJ |jd
ks_J t |jtdj }|t | dkstJ |jdks{J t |jtdj }|t | dksJ |jdksJ d S )Nz20140101 00:00:005msz.005000r   5usz.000005r2   5nsz
.000000005r   z6ms 5usz.006005iu  z	200ms 5usz.200005iE )r   r   r   rC   rD   )r$   baserR   r+   r+   r,   test_roundtrip  s"   zTestTimestamp.test_roundtripc                 C   s4   t ddddi}tt ddd}|| dksJ d S )N  r/   r2   )r   r   )r$   r   r   r+   r+   r,   test_hash_equivalent  s   z"TestTimestamp.test_hash_equivalentz timezone, year, month, day, hour)zAmerica/Chicagor}      r   r/   )zAmerica/Santiagoi  rF   r   r?   c           	   	   C   sL   t |}t||||dd|d}t||||dd|d}t|t|ks$J d S )Nr   )r   r   r<   r>   r@   foldr   r/   )gettzr   hash)	r$   r   r   r   r<   r>   test_timezonetransition_1transition_2r+   r+   r,   test_hash_timestamp_with_fold  s(   		z+TestTimestamp.test_hash_timestamp_with_foldc                 C   s   t jtdd tddd}|j|dj|jksJ W d    n1 s$w   Y  t jtdd tddd	d
}|jddj|jksDJ W d    d S 1 sOw   Y  d S )Nr   r   2019-01-01 10:00Hr   rN   z2019-01-02 12:00r   T)rK   r   )r    r!   r"   r   r   r   r   )r$   rz   t1t2r+   r+   r,   test_tz_conversion_freq  s   "z%TestTimestamp.test_tz_conversion_freqc                 C   s   t jtdd tddd}W d    n1 sw   Y  t|}t d  t|}W d    n1 s7w   Y  |j|jksDJ d S )Nr   r   r   r   r   )r    r!   r"   r   pickledumpsloads_freq)r$   r&   outresr+   r+   r,   test_pickle_freq_no_warning  s   
z)TestTimestamp.test_pickle_freq_no_warningN)r   r   r   r   r   r   r   r   r   rT   r   r   r   r   r   r   r   r   r+   r+   r+   r,   r      sR    &$





	r   c                   @   s   e Zd Zdd Zdd ZdS )TestTimestampNsOperationsc                 C   s   t d}d}d}|j|ksJ |t|v sJ t ddd}|j|d ks&J |t|v s.J t ddd}|j|ks;J |t|v sCJ t ddd}|j|d	 ksRJ |t|v sZJ t d
}|j|kseJ |t|v smJ d S )Nz2013-05-01 07:15:45.123456789l   W3QQ z#2013-05-01 07:15:45.123456789+09:00r   rN   l     lur   rL   l     c4z20130501T071545.123456789)r   r   repr)r$   r&   expected_reprexpected_valuer+   r+   r,   test_nanosecond_string_parsing  s"   z8TestTimestampNsOperations.test_nanosecond_string_parsingc                 C   sT  d}t dtd }t|dksJ |j|ksJ |jdks!J t |}t|dks-J |j|ks4J |jdks;J t d}t|dksGJ |j|ksNJ |jdksUJ d}|td }t|dksfJ |j|ksmJ |jdkstJ t |}t|dksJ |j|ksJ |jdksJ t d	}t|dksJ |j|ksJ |jdksJ d S )
Nl    bx z
2011-01-01r2   z*Timestamp('2011-01-01 00:00:00.000000005')z2011-01-01 00:00:00.000000005l   
 bx z*Timestamp('2011-01-01 00:00:00.000000010')r   z2011-01-01 00:00:00.000000010)r   r   r   r   r   rD   )r$   rQ   tr+   r+   r,   test_nanosecond_timestamp  s4   z3TestTimestampNsOperations.test_nanosecond_timestampN)r   r   r   r   r   r+   r+   r+   r,   r     s    r   c                   @   s4   e Zd Zdd Zdd Zdd Zdd Zd	d
 ZdS )TestTimestampToJulianDatec                 C      t d }|dksJ d S )Nz
1700-06-23g   AAr   to_julian_dater$   rr+   r+   r,   test_compare_17002     z+TestTimestampToJulianDate.test_compare_1700c                 C   r   )Nz
2000-04-12g   @_BAr  r  r+   r+   r,   test_compare_20006  r  z+TestTimestampToJulianDate.test_compare_2000c                 C   r   )Nz
2100-08-12g   @BAr  r  r+   r+   r,   test_compare_2100:  r  z+TestTimestampToJulianDate.test_compare_2100c                 C   r   )Nz2000-08-12T01:00:00gUUUEBAr  r  r+   r+   r,   test_compare_hour01>  r  z-TestTimestampToJulianDate.test_compare_hour01c                 C   r   )Nz2000-08-12T13:00:00gUUUBAr  r  r+   r+   r,   test_compare_hour13B  r  z-TestTimestampToJulianDate.test_compare_hour13N)r   r   r   r  r  r  r	  r
  r+   r+   r+   r,   r   1  s    r   c                   @   sb   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Ze	j
dd Zdd Zdd Zdd ZdS )TestTimestampConversionc                 C   s   t d}| }tddd}||ksJ t|t|ksJ | }t|jd}||ks/J t|t|ks9J |j|jksAJ d S )Nz
2000-01-01r   r/   r   )	r   to_pydatetimer   typeto_datetime64ro   r   r   dtype)r$   r&   rR   rQ   r+   r+   r,   test_conversionH  s   z'TestTimestampConversion.test_conversionc              	   C   s4   d}t dddddd|d}| }|jdksJ d S )Nz+dateutil/usr/share/zoneinfo/America/Chicagor}   r   r   r/   r   )r   r   r<   r>   r@   r   rK   )r   r  r   )r$   tzstrr&   r{   r+   r+   r,   test_to_pydatetime_foldW  s   z/TestTimestampConversion.test_to_pydatetime_foldc              	   C   s`   t d}tt tddddddd}| }||ksJ W d    d S 1 s)w   Y  d S )Nz2011-01-01 9:00:00.123456789r   r/   r   r   i@ )r   r    r!   UserWarningr   r  r$   r&   rQ   rR   r+   r+   r,   test_to_pydatetime_nonzero_nano^  s   "z7TestTimestampConversion.test_to_pydatetime_nonzero_nanoc                 C   4   t ddd}| }||ksJ |j|jksJ d S N20090415rL   rN   r   r  r   r$   r   dtvalr+   r+   r,   test_timestamp_to_datetimeg     z2TestTimestampConversion.test_timestamp_to_datetimec                 C   r  )Nr  zdateutil/US/EasternrN   r  r  r+   r+   r,   #test_timestamp_to_datetime_dateutilm  r  z;TestTimestampConversion.test_timestamp_to_datetime_dateutilc                 C   s:   t dtdd}| }||ksJ |j|jksJ d S r  )r   pytzr   r  r   r  r+   r+   r,   (test_timestamp_to_datetime_explicit_pytzs  s   z@TestTimestampConversion.test_timestamp_to_datetime_explicit_pytzc                 C   s8   t dtdd}| }||ksJ |j|jksJ d S r  )r   r   r  r   r  r+   r+   r,   ,test_timestamp_to_datetime_explicit_dateutily  s   zDTestTimestampConversion.test_timestamp_to_datetime_explicit_dateutilc                 C   s   t jjdkrd nt}t| t j }W d    n1 sw   Y  t |jd t jjd ks3J t jjdkr;d nt}t| t j }W d    n1 sRw   Y  t	dd}|| t jkseJ t || jd t jjd ksvJ d S )Nr   r   r/   )microseconds)
r   r   rD   r  r    r!   r  r   r   r   )r$   exp_warningpydt_maxpydt_mintdusr+   r+   r,   test_to_datetime_bijective  s   
&z2TestTimestampConversion.test_to_datetime_bijectivec                 C   sF   t ddd}tt |d W d    d S 1 sw   Y  d S )Nz2009-04-15 16:17:18rL   rN   r   )r   r    r!   r  	to_periodr$   r&   r+   r+   r,   test_to_period_tz_warning  s   "z1TestTimestampConversion.test_to_period_tz_warningc                 C   s   t t }| | ksJ d}tjt|d |d W d    n1 s)w   Y  tjt|d |jdd W d    d S 1 sGw   Y  d S )Nz$dtype and copy arguments are ignoredr   zM8[s]T)copy)r   r   r   r  to_numpyrT   rU   
ValueError)r$   r&   r%   r+   r+   r,   test_to_numpy_alias  s   "z+TestTimestampConversion.test_to_numpy_aliasN)r   r   r   r  r  r  r  r  r   tdskip_if_windowsr!  r'  r*  r.  r+   r+   r+   r,   r  G  s    	
r  c                   @   s   e Zd ZdS )SubDatetimeN)r   r   r   r+   r+   r+   r,   r1    s    r1  zlh,rhr   r/   )hoursc                 C   s&   | | }t dddd}||ksJ d S )Nr   r/   )r1  )lhrhrR   rQ   r+   r+   r,   test_dt_subclass_add_timedelta  s   r5  c                	   @   sR  e Zd Zejg dddd Zejdd Zejdd Zej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dd Zejjdd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/ed0d1ed0d1e d0d2gd3d4 Z!ejjd5dd6d7 Z"d8d9 Z#d:d; Z$d<d= Z%d>d? Z&d@dA Z'dBS )CTestNonNano)r   r   r   )paramsc                 C   s   |j S N)param)r$   requestr+   r+   r,   reso  s   zTestNonNano.resoc                 C   s   t d|S )Nz
2016-01-01)ro   r   )r$   r;  r+   r+   r,   dt64  s   zTestNonNano.dt64c                 C   s
   t |S r8  )r   
_from_dt64)r$   r<  r+   r+   r,   r&     s   
zTestNonNano.tsc                 C   s   t |}t|j|j|S r8  )r
   r   _from_value_and_resor   _reso)r$   r&   tz_aware_fixturerK   r+   r+   r,   ts_tz  s   zTestNonNano.ts_tzc                 C   sr   |j |dks
J |dkr|jtjj ksJ d S |dkr(|jtjj ks&J d S |dkr5|jtjj ks7J d S d S )Nr   r   r   r   )r   r   r?  r   NPY_FR_s	NPY_FR_ms	NPY_FR_us)r$   r<  r&   r;  r+   r+   r,   test_non_nano_construction  s   z&TestNonNano.test_non_nano_constructionc                 C   s   t |}|j|jksJ |j|jksJ |j|jksJ |j|j  kr5|j  kr5|j  kr5dks8J  J |jdks?J |	 |	 ksIJ |
 |
 ksSJ | | ks]J d S )Nr   )r   r   r   r<   r>   r@   rB   rC   rD   r  weekday
isoweekdayr$   r<  r&   altr+   r+   r,   test_non_nano_fields  s   8z TestNonNano.test_non_nano_fieldsc                 C   s   |j sJ |js
J |jsJ |jrJ |jrJ |jrJ t }|| d}tj	t
|d' |j s6J |js;J |js@J |jrEJ |jrJJ |jrOJ W d    d S 1 sZw   Y  d S )Nr   r   )rY   r6   r5   r]   r7   r   BDay	_set_freqr    r!   r"   )r$   r&   r   r%   r+   r+   r,   test_start_end_fields  s"   











"z!TestNonNano.test_start_end_fieldsc                 C       t |}| | ksJ d S r8  )r   rj   rH  r+   r+   r,   test_day_name     zTestNonNano.test_day_namec                 C   rN  r8  )r   rl   rH  r+   r+   r,   test_month_name  rP  zTestNonNano.test_month_namec                 C   sX   t |j|jt}td}||}t|t sJ |j|jks"J t	|j
|s*J d S )Nz
US/Pacific)r   r>  r   r?  r   r  r   r   rO   r   rK   )r$   r&   rK   rR   r+   r+   r,   test_tz_convert  s   

zTestNonNano.test_tz_convertc                 C   s4   t |}t|t|ksJ t|t|ksJ d S r8  )r   strr   rH  r+   r+   r,   	test_repr  s   zTestNonNano.test_reprc                 C   s,  t |}||ks
J ||ksJ ||ksJ ||ksJ ||kr"J ||kr(J ||kr.J ||kr4J ||k r:J ||k r@J ||k rFJ ||k rLJ ||krRJ ||krXJ ||kr^J ||krdJ ||ksjJ ||kspJ ||ksvJ ||ks|J ||ksJ ||ksJ ||ksJ ||ksJ d S r8  )r   rH  r+   r+   r,   test_comparison  s2   zTestNonNano.test_comparisonc                 C   sv   t dd}t|}t|d }||k sJ |j|jksJ ||ks%J |j|jk s-J ||kr3J ||ks9J d S )Nl     K r   Q ro   r   r   r=  r   r$   r<  r&   otherr+   r+   r,   test_cmp_cross_reso6  s   
zTestNonNano.test_cmp_cross_resoz*Dispatches to np.datetime64 which is wrong)reasonc                 C   s4   t dd}t|}t|d }|j|k sJ d S )Ni  r   r/   rW  rX  r+   r+   r,   !test_cmp_cross_reso_reversed_dt64E  s   
z-TestNonNano.test_cmp_cross_reso_reversed_dt64c                 C   sH   |}t |}t|j|j|}t|}|j|jksJ ||ks"J d S r8  )r
   r   r>  r   r?  r    round_trip_pickle)r$   r&   r@  rK   rtr+   r+   r,   test_pickleM  s   
zTestNonNano.test_picklec                 C   s4   t |}| }|j|jksJ || ksJ d S r8  )r   rn   r?  )r$   r<  r&   rI  rR   r+   r+   r,   test_normalizeU  s   zTestNonNano.test_normalizec                 C   s&   |j }||ks	J |j|jksJ d S r8  )r   r  )r$   r<  r&   r^  r+   r+   r,   r   [  s   zTestNonNano.test_asm8c                 C   (   |  }||ks
J |j|jksJ d S r8  )r,  r  r$   r<  r&   r   r+   r+   r,   test_to_numpy`     zTestNonNano.test_to_numpyc                 C   ra  r8  )r  r  rb  r+   r+   r,   test_to_datetime64e  rd  zTestNonNano.test_to_datetime64c                 C   rN  r8  )r   	timestamprH  r+   r+   r,   test_timestampj  rP  zTestNonNano.test_timestampc                 C   s$   t |}|d|dksJ d S )Nr   )r   r(  rH  r+   r+   r,   test_to_periodn  s   zTestNonNano.test_to_periodr/  rF   r0   r   c                 C   s   || }t || }t|t sJ |j|jksJ ||ksJ || }t || }t|t s0J |j|jks8J ||ks>J || }|t | }t|t sOJ |j|jksWJ ||ks]J d S r8  )r   rO   r?  )r$   r<  r&   r/  rR   rQ   r+   r+   r,   "test_addsub_timedeltalike_non_nanor  s   z.TestNonNano.test_addsub_timedeltalike_non_nanoz,tz_localize not yet implemented for non-nanoc                 C   s   t d}|| }t|tsJ |j|jksJ |j|jks J |jdks'J |jdks.J t|j	|j	s7J || }t|tsBJ |j|jksJJ |j|jd ksTJ |jdks[J |jdksbJ t|j	|j	skJ d S )Nr/   r=   r;   )
r   	YearBeginrO   r   r?  r   r<   r   r   rK   )r$   rA  offrR   r+   r+   r,   test_addsub_offset  s   
zTestNonNano.test_addsub_offsetc           	      C   s  |}t jjdt jjdt jjdi|j }||}|j|jks J || }t|ts+J |jdks2J |jt	|j|jks>J || }t|tsIJ |jdksPJ |jt	|j|jks\J d}|j|jk r|t
d|j }tjt|d ||  W d    n1 sw   Y  tjt|d ||  W d    d S 1 sw   Y  d S |t
d|j }tjt|d ||  W d    n1 sw   Y  tjt|d ||  W d    d S 1 sw   Y  d S )Nr   r   r   r   z1Timestamp subtraction with mismatched resolutionsr/   r   )r   rD  r   rC  rB  r?  _as_unitrO   r   r   r>  rT   rU   r-  	r$   rA  r&   r   rY  rR   r%   other2r'   r+   r+   r,   %test_sub_datetimelike_mismatched_reso  sB   


"

"z1TestNonNano.test_sub_datetimelike_mismatched_resoc           	      C   s  |}t jjdt jjdt jjdi|j }td|}|j|jks"J || }t|t	s-J ||ks3J |jt
|j|jks?J || }t|t	sJJ ||ksPJ |jt
|j|jks\J d}|j|jk r|td|j }tjt|d ||  W d    n1 sw   Y  tjt|d ||  W d    n1 sw   Y  n?|td|j }tjt|d ||  W d    n1 sw   Y  tjt|d ||  W d    n1 sw   Y  d}tjt|d |tdd	  W d    d S 1 sw   Y  d S )
Nr   r   r   r   z.Timestamp addition with mismatched resolutionsr/   r   zDAddition between Timestamp and Timedelta with mismatched resolutionsr   )r   rD  r   rC  rB  r?  r   rm  rO   r   r   r>  rT   rU   r-  ro   timedelta64rn  r+   r+   r,   &test_sub_timedeltalike_mismatched_reso  sL   



$z2TestNonNano.test_sub_timedeltalike_mismatched_resoc                 C   s:   |j |ksJ |j j|jksJ |j jtjd ksJ d S Nr/   )r   r?  r   r   r)  r+   r+   r,   test_min  s   zTestNonNano.test_minc                 C   s>   |j |ksJ |j j|jksJ |j jttjj ksJ d S r8  )r   r?  r   ro   r   r   r)  r+   r+   r,   test_max  s   zTestNonNano.test_maxc                 C   s4   t d|j}|j}||ksJ |j|jksJ d S rs  )r   r>  r?  r   r  r+   r+   r,   r      s   zTestNonNano.test_resolutionN)(r   r   r   rT   fixturer;  r<  r&   rA  rE  rJ  rM  rO  rQ  rR  rT  rU  rZ  r   xfailr\  r_  r`  r   rc  re  rg  rh  r   r   r   ro   rq  ri  rl  rp  rr  rt  ru  r   r+   r+   r+   r,   r6    sL    





!


(-r6  c                   C   s   t jt tjd ksJ t jjtjjksJ t jt t	tj
jks$J t jjtjjks.J t jtdks7J t jjtjjksAJ d S rs  )r   r   r   r   r?  r   	NPY_FR_nsr   ro   r   r   r   r   r+   r+   r+   r,   'test_timestamp_class_min_max_resolution  s   ry  c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )

TestAsUnitc                 C   s,  t d}|d|u sJ |d}|j|jd ksJ |jtjjks%J |d}|j|jks2J |j|jks:J |d}|j|jd ksIJ |jtjjksRJ |d}|j|jks_J |j|jksgJ |d}|j|jd ksvJ |jtjjksJ |d}|j|jksJ |j|jksJ d S )	Nz
1970-01-01r   r   r   r   @B r   i ʚ;)r   rm  r   r?  r   rD  rC  rB  )r$   r&   r   r^  r+   r+   r,   test_as_unit  s(   





zTestAsUnit.test_as_unitc                 C   s   d}t |tjjd }d}tjt|d |d W d    n1 s$w   Y  |d}|j|d ks7J |j	tj
jks@J d S )Nl     &oz=Cannot cast 2262-04-12 00:00:00 to unit='ns' without overflowr   r   r   r   )r   r>  r   rD  r   rT   rU   r   rm  r?  rC  )r$   r   r&   r%   r   r+   r+   r,   test_as_unit_overflows2  s   
z!TestAsUnit.test_as_unit_overflowsc                 C   s   t d}|d}t d}||ksJ |jtjjksJ |jdks#J tjtdd |jddd W d    d S 1 s=w   Y  d S )	Ni` r   r{  r/   zCannot losslessly convert unitsr   F)round_ok)	r   rm  r?  r   rC  r   rT   rU   r-  )r$   r&   r   rQ   r+   r+   r,   test_as_unit_rounding?  s   
"z TestAsUnit.test_as_unit_roundingc                 C   s  t dd}|jdksJ |jdksJ |jdksJ |j|j  kr;|j  kr;|j  kr;|j	  kr;dks>J  J |d}|j
dksJJ |jdksQJ |jdksXJ |jdks_J |j|j  kr~|j  kr~|j  kr~|j	  kr~dksJ  J d S )	Nz
1970-01-02r   i  r/   rE   r   r   rV  )r   rm  r   r   r<   r>   r@   rB   rC   rD   r   )r$   r&   r   r+   r+   r,   test_as_unit_non_nanoL  s*   D
z TestAsUnit.test_as_unit_non_nanoN)r   r   r   r|  r}  r  r  r+   r+   r+   r,   rz    s
    rz  )2__doc__ri   r   r   rg   r   rm   dateutil.tzr   numpyro   rT   r  r   r   pandas._libs.tslibs.dtypesr   pandas._libs.tslibs.timezonesr   r   r	   r
   r   pandas.errorsr   pandas.util._test_decoratorsutil_test_decoratorsr/  pandasr   r   r   pandas._testing_testingr    pandas.tseriesr   r   r   r   r   r  r1  r   r   r5  r6  ry  rz  r+   r+   r+   r,   <module>   sL     Q |=b
	  L