a
    dǜ                  	   @   s  d Z ddlZddlmZmZ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mZ ddlZddlZddlZddl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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, ddl-m.Z. G dd dZ/G dd dZ0G dd dZ1G dd dZ2G dd dZ3G dd deZ4ej56de4ddde&ddfe&dde4dddfgdd Z7G d d! d!Z8d"d# Z9G d$d% d%Z:d&d' Z;d(d) Z<d*d+ Z=dS ),z test the scalar Timestamp     N)datetime	timedeltatimezone)tzlocaltzutc)given
strategies)utc)NpyDatetimeUnit)dateutil_gettzget_timezonemaybe_get_tz
tz_compare)IS64)OutOfBoundsDatetime)NaT	Timedelta	Timestamp)offsets)	to_offsetc                   @   s  e Zd Z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d,ed-ed-d.d/gejd0dge  d1d2 Zd3d4 Zd5d6 Zd7d8 Zejd9g d:d;d< Zee ed=d>gd?d@dA ZdS )BTestTimestampPropertiesc                 C   s  t d}td}|jdksJ |jdks,J |js6J ||rDJ ||tdd s\J ||rjJ ||tdd sJ td}|jdksJ |jdksJ |jsJ ||rJ ||tdd sJ |jsJ ||rJ ||tdd sJ d S )NBz
2017-10-01      daysz
2017-09-30   )	r   r   	dayofweekday_of_weekis_month_startr   is_quarter_startis_month_endis_quarter_end)selffreqts r&   u/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/pandas/tests/scalar/timestamp/test_timestamp.pytest_properties_business1   s$    


z0TestTimestampProperties.test_properties_businesszattr, expectedyeari  month   day   hour   minute;   secondr   microsecond
nanosecondr      r   Zquarter   Z	dayofyearim  Zday_of_yearweekr   ZdaysinmonthtzN
US/Easternc                 C   s4   t d|d}t||}t|ts$J ||ks0J d S )N2014-12-31 23:59:00r8   )r   getattr
isinstanceint)r#   attrexpectedr8   r%   resultr&   r&   r'   test_fieldsG   s    
z#TestTimestampProperties.test_fieldsc                 C   sH   t d|d}d}tjt|d |j W d    n1 s:0    Y  d S )Nr:   r;   z1'Timestamp' object has no attribute 'millisecond'match)r   pytestraisesAttributeErrorZmillisecond)r#   r8   r%   msgr&   r&   r'   test_millisecond_raisese   s    z/TestTimestampProperties.test_millisecond_raisesstart)r   r    is_year_startc                 C   s   t d|d}t||sJ d S )Nz2014-01-01 00:00:00r;   r   r<   )r#   rJ   r8   r%   r&   r&   r'   test_is_startl   s    z%TestTimestampProperties.test_is_startend)r!   is_year_endr"   c                 C   s   t d|d}t||sJ d S )Nz2014-12-31 23:59:59r;   rL   )r#   rN   r8   r%   r&   r&   r'   test_is_endt   s    z#TestTimestampProperties.test_is_enddataz2017-08-28 23:00:00ESTr;   time_localec                 C   s   |d u rd}d}nJt |tj, tjd  }tjd  }W d    n1 sR0    Y  ||}||}t	d|}t	d|}t	d|}t	d|}||ksJ ||ksJ t
t}t||sJ t||sJ d S )NZMondayZAugustr      ZNFD)tmZ
set_localelocaleLC_TIMEcalendarday_name
capitalize
month_nameunicodedata	normalizer   r   npisnan)r#   rQ   rS   Zexpected_dayZexpected_monthZ
result_dayZresult_monthZnan_tsr&   r&   r'   
test_names{   s"    ,

z"TestTimestampProperties.test_namesc                 C   s   |}t s|t krtd td|d}|js2J t|jtsBJ td|d}|jrXJ td|d}|jsnJ td|d}|jrJ d S )Nz>tzlocal() on a 32 bit platform causes internal overflow errorsz2000-01-01 00:00:00r;   z1999-01-01 00:00:00z2004-01-01 00:00:00z2100-01-01 00:00:00)r   r   rE   skipr   Zis_leap_yearr=   bool)r#   Ztz_naive_fixturer8   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sLJ t ddd}t|j}d	}||ksrJ t d
dd}t|j}d	}||ksJ t d
dd}t|j}d	}||ksJ tdd dD }|g dk sJ d S )N  r+   r-   r   i     4   i  5   i     c                 S   s   g | ]}t t| jqS r&   )r   r   r7   ).0argsr&   r&   r'   
<listcomp>   s   z=TestTimestampProperties.test_woy_boundary.<locals>.<listcomp>))  r   r   )rm   r   r5   )  r   r   )rn   r   r5   )rg   rg   rh   rh   )r   r   r7   r^   arrayall)r#   drA   r@   r&   r&   r'   test_woy_boundary   s4    




z)TestTimestampProperties.test_woy_boundaryc                 C   s   t d}|jtddksJ t jtddks0J |djtddksJJ |djtddksdJ |djtdd	ks~J d S )
Nz2100-01-01 00:00:00.000000000r   )nanosecondsusmicrosecondsms)Zmillisecondss)seconds)r   
resolutionr   as_unit)r#   rc   r&   r&   r'   test_resolution   s    z'TestTimestampProperties.test_resolutionzdate_string, expected))z	0000-2-29r   )z0000-3-1r5   )z
1582-10-14ri   )z	-0040-1-1r6   )z
2023-06-18r   c                 C   s    t |}| }||ksJ d S N)r   weekday)r#   Zdate_stringr@   r%   Zdowr&   r&   r'   test_dow_historic   s    z)TestTimestampProperties.test_dow_historic- )r%   signc                 C   sz   | t |jd dt |jd dt |jd }t| }t|td 	dd d }||ksvJ d S )Nr6   r   r5   
1970-01-01int64   )
strr)   zfillr*   r,   r   r~   r^   
datetime64Zastype)r#   r%   r   rA   r@   r&   r&   r'   test_dow_parametric   s    z+TestTimestampProperties.test_dow_parametric)__name__
__module____qualname__r(   rE   markparametrizerB   rI   rM   rP   r   rU   Zget_localesr`   rd   rr   r|   r   r   stZ	datetimesZsampled_fromr   r&   r&   r&   r'   r   0   sj   	
#

r   c                   @   sD  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	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d0d1 Zd2d3 Ze
jd4g d5g d6gd7d8 Zd9S ):TestTimestampc                 C   sF   t  jtju sJ t djtju s*J t dddjtju sBJ d S )NUTC
2016-01-01r;   )r   utcnowr8   r   r	   nowr#   r&   r&   r'   test_default_to_stdlib_utc	  s    z(TestTimestamp.test_default_to_stdlib_utcc                 C   s   d}t |}|d}|jdks$J |t |ddks8J |d}|t dddksVJ |jdksdJ t |td }|d}|jdksJ |jdksJ |d}|jdksJ |jdksJ d S )	Nz2014-02-01 09:00
Asia/Tokyo	   r;   r9   z2014-01-31 19:00   r   )r   Ztz_localizer.   
tz_convertr   Nanor4   )r#   Ztstrr%   localconvr&   r&   r'   test_tz  s    



zTestTimestamp.test_tzc                 C   s   t tdjtju sJ d S )Nz2014-11-02 01:00Z)r   r   tzinfor   r	   r   r&   r&   r'   test_utc_z_designator!  s    z#TestTimestamp.test_utc_z_designatorc                 C   sz   t jjt jjdg}|D ]8}t |jdt|dd  krH|ksn J qt djdtdddksvJ d S )N  i8nsZnat)r   min_valuemaxasm8viewr^   r   )r#   r   nr&   r&   r'   	test_asm8$  s    zTestTimestamp.test_asm8c                 C   s  dd }|t  t  |t dttd |t  ttj |t  t  t	t 
 }t |}| |ksJ |t |t| |t |dt|t |t j|ddt|t ttj}|tdd  }|t ||t|| d S )Nc                 S   s(   t t| jt|j d dks$J d S Ng    eAr   )r>   r   r   xyr&   r&   r'   compare/  s    z2TestTimestamp.test_class_ops_pytz.<locals>.comparer   r;   
   minutes)r   r   r   pytzr   r   r	   todayrX   timegmutctimetupleutcfromtimestamp	timestampfromtimestampr   timecombiner#   r   current_timeZts_utcZdate_componentZtime_componentr&   r&   r'   test_class_ops_pytz.  s2    





z!TestTimestamp.test_class_ops_pytzc                 C   s   dd }|t  t  |t dtt  |t  ttj |t  t  t	t 
 }t |}| |ksJ |t |t| ttj}|tdd  }|t ||t|| d S )Nc                 S   s8   t tt| jd tt|jd  dks4J d S r   )r>   r^   roundr   r   r   r&   r&   r'   r   P  s    z6TestTimestamp.test_class_ops_dateutil.<locals>.comparer   r   r   )r   r   r   r   r   r   r	   r   rX   r   r   r   r   r   r   r   r   r   r&   r&   r'   test_class_ops_dateutilO  s"    	


z%TestTimestamp.test_class_ops_dateutilc                 C   s   t dd}t|dd }|jdks0J |jdks>J |jdksLJ |jdksZJ t t jj	d }t|}|jd	ksJ |jd
ksJ |j
dksJ |jdksJ |jdksJ d S )Nl     $=3izM8[ns]r     rm   r   r   l     *g	# i  r      iH7    )r^   r   r   r   r)   r*   r3   r4   iinfor   r,   )r#   valstampr&   r&   r'   test_basics_nanosm  s    zTestTimestamp.test_basics_nanoszvalue, check_kwargsl    Bm@ig jr
Cunitrt   g  `kBrw   g  6Arx   i*  Dr   )r   hgb6Ai  i  )r   rt   r   g  6Ai  )r   rt   g `kBr   gyr
Cg W`kBg(jr
Cr   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s6J |j|ksDJ |dkrx|jdksZJ |j|kshJ |j|ksJ n*|jdksJ |jdksJ |jdksJ |j|ksJ d S )Nr   rm   r   r   r   )	r   r)   r*   r,   r.   r0   r2   r3   r4   )valuer   r   rx   rt   r   r   r&   r&   r'   check  s    z&TestTimestamp.test_unit.<locals>.check)Nr   r   r   r   r&   )r#   r   Zcheck_kwargsr   r&   r&   r'   	test_unit~  s    
zTestTimestamp.test_unitc                 C   s<  t dd}t |jtdj }|t | dks8J |jdksFJ t |jtdj }|t | dkspJ |jdks~J t |jtd	j }|t | d
ksJ |jdksJ |jdksJ t |jtdj }|t | dksJ |jdksJ t |jtdj }|t | dks(J |jdks8J d S )Nz20140101 00:00:00r   Z5msz.005000r   Z5usz.000005r   Z5nsz
.000000005r   z6ms 5usz.006005iu  z	200ms 5usz.200005iE )r   r{   r   r   r3   r4   )r#   baserA   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s0J d S )N  r   r   )r   r   )r#   rq   r   r&   r&   r'   test_hash_equivalent  s    z"TestTimestamp.test_hash_equivalentz timezone, year, month, day, hour)zAmerica/Chicagore      ri   r   )zAmerica/Santiagoi  r6   ri   r/   c           	   	   C   sL   t |}t||||dd|d}t||||dd|d}t|t|ksHJ d S )Nr   )r)   r*   r,   r.   r0   foldr   r   )gettzr   hash)	r#   r   r)   r*   r,   r.   Ztest_timezoneZtransition_1Ztransition_2r&   r&   r'   test_hash_timestamp_with_fold  s(    		z+TestTimestamp.test_hash_timestamp_with_foldN)r   r   r   r   r   r   r   r   r   r   rE   r   r   r   r   r   r   r&   r&   r&   r'   r     sN   
!




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sLJ |t|v s\J t ddd}|j|ksvJ |t|v sJ t ddd}|j|d	 ksJ |t|v sJ t d
}|j|ksJ |t|v sJ d S )Nz2013-05-01 07:15:45.123456789l   W3QQ z#2013-05-01 07:15:45.123456789+09:00r   r;   l     lur   r9   l     c4z20130501T071545.123456789)r   r   repr)r#   r%   Zexpected_reprZexpected_valuer&   r&   r'   test_nanosecond_string_parsing  s"    z8TestTimestampNsOperations.test_nanosecond_string_parsingc                 C   s`  d}t dtd }t|dks&J |j|ks4J |jdksBJ t |}t|dksZJ |j|kshJ |jdksvJ t d}t|dksJ |j|ksJ |jdksJ d}|td }t|dksJ |j|ksJ |jdksJ t |}t|dksJ |j|ksJ |jdks"J t d	}t|dks<J |j|ksLJ |jdks\J d S )
Nl    bx z
2011-01-01r   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   r4   )r#   r@   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   s   t d }|dksJ d S )Nz
1700-06-23g   AAr   to_julian_dater#   rr&   r&   r'   test_compare_1700%  s    z+TestTimestampToJulianDate.test_compare_1700c                 C   s   t d }|dksJ d S )Nz
2000-04-12g   @_BAr   r   r&   r&   r'   test_compare_2000)  s    z+TestTimestampToJulianDate.test_compare_2000c                 C   s   t d }|dksJ d S )Nz
2100-08-12g   @BAr   r   r&   r&   r'   test_compare_2100-  s    z+TestTimestampToJulianDate.test_compare_2100c                 C   s   t d }|dksJ d S )Nz2000-08-12T01:00:00gUUUEBAr   r   r&   r&   r'   test_compare_hour011  s    z-TestTimestampToJulianDate.test_compare_hour01c                 C   s   t d }|dksJ d S )Nz2000-08-12T13:00:00gUUUBAr   r   r&   r&   r'   test_compare_hour135  s    z-TestTimestampToJulianDate.test_compare_hour13N)r   r   r   r   r   r   r   r   r&   r&   r&   r'   r   $  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d}| }tddd}||ks.J t|t|ksBJ | }t|jd}||ksdJ t|t|ksxJ |j	|j	ksJ d S )N
2000-01-01r   rm   r   )
r   r{   to_pydatetimer   typeto_datetime64r^   r   r   dtype)r#   r%   rA   r@   r&   r&   r'   test_conversion;  s    z'TestTimestampConversion.test_conversionc              	   C   s4   d}t dddddd|d}| }|jdks0J d S )Nz+dateutil/usr/share/zoneinfo/America/Chicagore   r   ri   r   r   )r)   r*   r,   r.   r0   r   r8   )r   r   r   )r#   Ztzstrr%   rc   r&   r&   r'   test_to_pydatetime_foldJ  s    z/TestTimestampConversion.test_to_pydatetime_foldc              	   C   s^   t d}tt8 tddddddd}| }||ks<J W d    n1 sP0    Y  d S )Nz2011-01-01 9:00:00.123456789r   r   r   r   i@ )r   rU   assert_produces_warningUserWarningr   r   r#   r%   r@   rA   r&   r&   r'   test_to_pydatetime_nonzero_nanoQ  s
    z7TestTimestampConversion.test_to_pydatetime_nonzero_nanoc                 C   s4   t ddd}| }||ks J |j|jks0J d S N20090415r9   r;   r   r   r   r#   r   Zdtvalr&   r&   r'   test_timestamp_to_datetimeZ  s    z2TestTimestampConversion.test_timestamp_to_datetimec                 C   s4   t ddd}| }||ks J |j|jks0J d S )Nr   zdateutil/US/Easternr;   r   r   r&   r&   r'   #test_timestamp_to_datetime_dateutil`  s    z;TestTimestampConversion.test_timestamp_to_datetime_dateutilc                 C   s:   t dtdd}| }||ks&J |j|jks6J d S r   )r   r   r   r   r   r   r&   r&   r'   (test_timestamp_to_datetime_explicit_pytzf  s    z@TestTimestampConversion.test_timestamp_to_datetime_explicit_pytzc                 C   s8   t dtdd}| }||ks$J |j|jks4J d S r   )r   r   r   r   r   r&   r&   r'   ,test_timestamp_to_datetime_explicit_dateutill  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>0    Y  t |djd t jjd kslJ t j	jdkr|d nt}t| t j	 }W d    n1 s0    Y  t
dd}|| t j	ksJ t || djd t j	jd ksJ d S )Nr   r   r   r   ru   )r   r   r4   r   rU   r   r   r{   r   r   r   )r#   Zexp_warningZpydt_maxZpydt_minZtdusr&   r&   r'   test_to_datetime_bijectives  s     (
(

z2TestTimestampConversion.test_to_datetime_bijectivec                 C   sD   t ddd}tt |d W d    n1 s60    Y  d S )Nz2009-04-15 16:17:18r9   r;   r   )r   rU   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 sR0    Y  tjt|d |jdd W d    n1 s0    Y  d S )Nz$dtype and copy arguments are ignoredrC   zM8[s]T)copy)r   r   r   r   to_numpyrE   rF   
ValueError)r#   r%   rH   r&   r&   r'   test_to_numpy_alias  s    (z+TestTimestampConversion.test_to_numpy_aliasN)r   r   r   r   r   r   r   r   r   tdZskip_if_windowsr   r   r   r  r&   r&   r&   r'   r   :  s   	
r   c                   @   s   e Zd ZdS )SubDatetimeN)r   r   r   r&   r&   r&   r'   r    s   r  zlh,rhrm   r   )hoursc                 C   s&   | | }t dddd}||ks"J d S )Nrm   r   )r  )ZlhZrhrA   r@   r&   r&   r'   test_dt_subclass_add_timedelta  s    r  c                	   @   s\  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!d5d6 Z"d7d8 Z#d9d: Z$d;d< Z%d=d> Z&d?d@ Z'dAdB Z(dCdD Z)dEdF Z*dGS )HTestNonNano)rx   rw   rt   )paramsc                 C   s   |j S r}   )param)r#   requestr&   r&   r'   reso  s    zTestNonNano.resoc                 C   s   t d|S )Nr   )r^   r   )r#   r  r&   r&   r'   dt64  s    zTestNonNano.dt64c                 C   s
   t |S r}   )r   
_from_dt64)r#   r  r&   r&   r'   r%     s    zTestNonNano.tsc                 C   s   t |}t|j|j|S r}   )r   r   _from_value_and_resor   _creso)r#   r%   tz_aware_fixturer8   r&   r&   r'   ts_tz  s    zTestNonNano.ts_tzc                 C   sj   |j |dksJ |dkr0|jtjjksfJ n6|dkrL|jtjjksfJ n|dkrf|jtjjksfJ d S )Nr   rx   rw   rt   )r   r   r  r
   NPY_FR_sr   	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s8J |j|j  krh|j  krh|j  krhdksnn J |jdks|J |	 |	 ksJ |
 |
 ksJ | | ksJ d S )Nr   )r   r)   r*   r,   r.   r0   r2   r3   r4   r   r~   
isoweekdayr#   r  r%   altr&   r&   r'   test_non_nano_fields  s    6z TestNonNano.test_non_nano_fieldsc                 C   s|   |j s
J |jsJ |jsJ |jr(J |jr2J |jr<J |j sFJ |jsPJ |jsZJ |jrdJ |jrnJ |jrxJ d S r}   )rK   r    r   rO   r!   r   r&   r&   r'   test_start_end_fields  s    










z!TestNonNano.test_start_end_fieldsc                 C   s    t |}| | ksJ d S r}   )r   rY   r  r&   r&   r'   test_day_name  s    zTestNonNano.test_day_namec                 C   s    t |}| | ksJ d S r}   )r   r[   r  r&   r&   r'   test_month_name  s    zTestNonNano.test_month_namec                 C   sX   t |j|jt}td}||}t|t s4J |j|jksDJ t	|j
|sTJ d S )Nz
US/Pacific)r   r  r   r  r	   r   r   r   r=   r   r8   )r#   r%   r8   rA   r&   r&   r'   test_tz_convert  s    

zTestNonNano.test_tz_convertc                 C   s4   t |}t|t|ksJ t|t|ks0J d S r}   )r   r   r   r  r&   r&   r'   	test_repr  s    zTestNonNano.test_reprc                 C   s4  t |}||ksJ ||ks J ||ks,J ||ks8J ||krDJ ||krPJ ||kr\J ||krhJ ||k rtJ ||k rJ ||k rJ ||k rJ ||krJ ||krJ ||krJ ||krJ ||ksJ ||ksJ ||ksJ ||ksJ ||ksJ ||ksJ ||ks"J ||ks0J d S r}   )r   r  r&   r&   r'   test_comparison	  s2    zTestNonNano.test_comparisonc                 C   s|   t dd}t|}t|d d}||k s4J |j|jksDJ ||ksPJ |j|jk s`J ||krlJ ||ksxJ d S )Nl     K rx   Q r   )r^   r   r   r  r{   r   r#   r  r%   otherr&   r&   r'   test_cmp_cross_reso*  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 s0J d S )Ni  r   r   )r^   r   r   r  r   r"  r&   r&   r'   !test_cmp_cross_reso_reversed_dt649  s    
z-TestNonNano.test_cmp_cross_reso_reversed_dt64c                 C   sH   |}t |}t|j|j|}t|}|j|jks8J ||ksDJ d S r}   )r   r   r  r   r  rU   Zround_trip_pickle)r#   r%   r  r8   rtr&   r&   r'   test_pickleA  s    
zTestNonNano.test_picklec                 C   s4   t |}| }|j|jks J || ks0J d S r}   )r   r]   r  )r#   r  r%   r  rA   r&   r&   r'   test_normalizeI  s    zTestNonNano.test_normalizec                 C   s&   |j }||ksJ |j|jks"J d S r}   )r   r   )r#   r  r%   r'  r&   r&   r'   r   O  s    zTestNonNano.test_asm8c                 C   s(   |  }||ksJ |j|jks$J d S r}   )r  r   r#   r  r%   resr&   r&   r'   test_to_numpyT  s    zTestNonNano.test_to_numpyc                 C   s(   |  }||ksJ |j|jks$J d S r}   )r   r   r*  r&   r&   r'   test_to_datetime64Y  s    zTestNonNano.test_to_datetime64c                 C   s    t |}| | ksJ d S r}   )r   r   r  r&   r&   r'   test_timestamp^  s    zTestNonNano.test_timestampc                 C   s$   t |}|d|dks J d S )Nr   )r   r   r  r&   r&   r'   test_to_periodb  s    zTestNonNano.test_to_periodr  r6   r   r   c                 C   s   t |jt|j}|| }t|| }t|ts4J |j|ksBJ ||ksNJ || }t|| }t|tspJ |j|ks~J ||ksJ || }|t| }t|tsJ |j|ksJ ||ksJ d S r}   )r   r  r   r   r=   )r#   r  r%   r  Zexp_resorA   r@   r&   r&   r'   "test_addsub_timedeltalike_non_nanof  s     z.TestNonNano.test_addsub_timedeltalike_non_nanoc                 C   s  t d}|| }t|ts J |j|jks0J |jdkrZ|jdkrZ|j|jd ksjJ n|j|jksjJ |jdksxJ |jdksJ t|j	|j	sJ || }t|tsJ |j|jksJ |j|jd ksJ |jdksJ |jdksJ t|j	|j	sJ d S )Nr   r+   r-   )
r   ZYearEndr=   r   r  r*   r,   r)   r   r8   )r#   r  offrA   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sVJ |j	dksdJ |jt
|j|jks|J || }t|tsJ |j	dksJ |jt
|j|jksJ |j|jk rJ|td|j }||j| }|| }||ksJ |jt
|j|jksJ || }|| ks.J |jt
|j|jksJ n|td|j }	|	||	j }|	| }||ksJ |jt
|j|jksJ ||	 }|| ksJ |jt
|j|jksJ d S Nrw   rx   rt   r   r   )r
   r  r   r  r  r  r{   r=   r   r   r   r  r   
r#   r  r%   r   r#  rA   Zother2expr+  Zts2r&   r&   r'   %test_sub_datetimelike_mismatched_reso  sD    
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sDJ || }t|t	sZJ ||ksfJ |jt
|j|jks~J || }t|t	sJ ||ksJ |jt
|j|jksJ |j|jk rH|td|j }||j| }|| }||ksJ |jt
|j|jksJ || }||ks,J |jt
|j|jksJ n|td|j }	|	||	j }|	| }||ksJ |jt
|j|jksJ ||	 }||ksJ |jt
|j|jksJ d S r3  )r
   r  r   r  r  r  r   r{   r=   r   r   r  r   r4  r&   r&   r'   &test_sub_timedeltalike_mismatched_reso  sD    z2TestNonNano.test_sub_timedeltalike_mismatched_resoc                 C   sB   t dddddd}tddd}|| }|j|jks>J d S )Ni  r   i?B )r)   r*   r,   r3   rt   ru   )r   r{   r   r  )r#   r%   r  r+  r&   r&   r'   "test_addition_doesnt_downcast_reso  s    z.TestNonNano.test_addition_doesnt_downcast_resoc                 C   sL   |}|t dd }|dt dd }||ks6J |jtjjksHJ d S )Nr   r   )r^   timedelta64r{   r  r
   	NPY_FR_nsr   )r#   r  r%   r+  r5  r&   r&   r'   $test_sub_timedelta64_mismatched_reso  s
    z0TestNonNano.test_sub_timedelta64_mismatched_resoc                 C   s:   |j |ksJ |j j|jks J |j jtjd ks6J 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 r}   )r   r  r   r^   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s0J d S r<  )r   r  r  rz   r   r&   r&   r'   r|     s    zTestNonNano.test_resolutionc                 C   s8   t ddd}|t dksJ | tddks4J d S )NldW
1 rx   r   z
0300-01-01z0300-01-01T00:00:00)r   r  r^   r   )r#   rA   r&   r&   r'   test_out_of_ns_bounds  s    z!TestNonNano.test_out_of_ns_boundsN)+r   r   r   rE   Zfixturer  r  r%   r  r  r  r  r  r  r  r  r   r$  r   Zxfailr&  r(  r)  r   r,  r-  r.  r/  r   r   r   r^   r9  r0  r2  r6  r7  r8  r;  r=  r>  r|   r?  r&   r&   r&   r'   r    sN   





!

0.r  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sHJ t jjtjjks\J t jtdksnJ t jjtjjksJ d S r<  )r   r   r   r   r  r
   r:  r   r   r^   r   r   rz   r   r&   r&   r&   r'   'test_timestamp_class_min_max_resolution  s    r@  c                   @   s,   e Zd Zdd Zdd Zdd Zdd Zd	S )

TestAsUnitc                 C   sH  t dd}|jdksJ |d|u s.J |d}|j|jd ksLJ |jtjjks^J |d}|j|jksxJ |j|jksJ |d}|j|jd ksJ |jtjjksJ |d}|j|jksJ |j|jksJ |d}|j|jd ksJ |jtj	jksJ |d}|j|jks2J |j|jksDJ d S )	Nr   r   rt   r   rw   @B rx   i ʚ;)
r   r{   r   r   r  r
   r  r   r  r  )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 sH0    Y  |d}|j	|d ksnJ |j
tjjksJ d S )Nl     &oz=Cannot cast 2262-04-12 00:00:00 to unit='ns' without overflowrC   r   rw   r   )r   r  r
   r  r   rE   rF   r   r{   r   r  r  )r#   rt   r%   rH   r+  r&   r&   r'   test_as_unit_overflowsF  s    (
z!TestAsUnit.test_as_unit_overflowsc                 C   s   t d}|d}t d}||ks&J |jtjjks8J |jdksFJ tjt	dd |jddd W d    n1 sx0    Y  d S )	Ni` rw   rB  r   zCannot losslessly convert unitsrC   F)Zround_ok)
r   r{   r  r
   r  r   r   rE   rF   r  )r#   r%   r+  r@   r&   r&   r'   test_as_unit_roundingS  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s8J |j|j  krt|j  krt|j  krt|j	  krtdkszn J |d}|j
dksJ |jdksJ |jdksJ |jdksJ |j|j  kr|j  kr|j  kr|j	  krdksn J d S )	Nz
1970-01-02rw   i  r   r5   r   rx   r!  )r   r{   r)   r*   r,   r.   r0   r2   r3   r4   r   )r#   r%   r+  r&   r&   r'   test_as_unit_non_nano`  s*    B
z TestAsUnit.test_as_unit_non_nanoN)r   r   r   rC  rD  rE  rF  r&   r&   r&   r'   rA  '  s   rA  c                  C   sN   t d  td} W d    n1 s(0    Y  tddd}| |ksJJ d S )Nz
13-01-2000rm   r      )rU   r   r   )rA   r@   r&   r&   r'   test_delimited_datew  s    &rH  c                  C   s.   t ddd} |  }td}||ks*J d S )Nr   r   r;   )	rm   r   r   r   r   r   r   r   r   )r   r   r   struct_time)r%   rA   r@   r&   r&   r'   test_utctimetuple  s    
rJ  c                  C   sP  t d} d}d}tjt|| d | d W d    n1 sB0    Y  d}d}tjt|| d |   W d    n1 s0    Y  d}tjt|| d |   W d    n1 s0    Y  d	}tjt|| d |   W d    n1 s0    Y  d
}tjt|| d |   W d    n1 sB0    Y  d S )Nz-2000-01-01z not yet supported on Timestamps which are outside the range of Python's standard library. For now, please call the components you need \(such as `.year` and `.month`\) and construct your string from there.$z	^strftimerC   z%Yz[ not yet supported on Timestamps which are outside the range of Python's standard library. z^datez^isocalendarz
^timetuplez
^toordinal)	r   rE   rF   NotImplementedErrorstrftimedateisocalendar	timetuple	toordinal)r%   rH   funcr&   r&   r'   test_negative_dates  s(    (&&(rR  )>__doc__rX   r   r   r   rV   r   r\   Zdateutil.tzr   r   Z
hypothesisr   r   r   numpyr^   rE   r   r	   Zpandas._libs.tslibs.dtypesr
   Zpandas._libs.tslibs.timezonesr   r   r   r   r   Zpandas.compatr   Zpandas.errorsr   Zpandas.util._test_decoratorsutilZ_test_decoratorsr  Zpandasr   r   r   Zpandas._testingZ_testingrU   Zpandas.tseriesr   Zpandas.tseries.frequenciesr   r   r   r   r   r   r  r   r   r  r  r@  rA  rH  rJ  rR  r&   r&   r&   r'   <module>   sV    Y `=h
	  fP