U
    `»{j—  ã                	   @   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(d)d*d+g¡ej d!d"d#g¡d,d-„ ƒƒZej d.d/d0d1g¡ej d!d"d#g¡d2d3„ ƒƒZej d4ed5ƒed5d6d7�g¡ej d8d"ge ¡ �p\g  ¡d9d:„ ƒƒZd;d<„ Zd=d>„ Zd?d@„ Zd"S )AÚTestTimestampPropertiesc                 C   sÆ   d}t jt|d�� tddd�}tddd�}W 5 Q R X d}t jt|d�� |j W 5 Q R X dD ]b}d	D ]X}d
|› d|› �}t jt|d�� t||ƒ W 5 Q R X t  d ¡� t||ƒ W 5 Q R X qfq^d 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Úts2ZperZsideÚattr© r)   úk/var/www/html/bwave/python/venv/lib/python3.8/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   sh  t ddd�}t dƒ}|jdks"t‚|jdks0t‚|jr:t‚|j |¡rJt‚|j |tdd� ¡sdt‚|jrnt‚|j |¡r~t‚|j |tdd� ¡s˜t‚|js¢t‚|js¬t‚t ddd�}t dƒ}|jdksÎt‚|jdksÜt‚|jræt‚|j |¡röt‚|j |tdd� ¡�st‚|j	�rt‚|j 	|¡�r0t‚|j 	|tdd� ¡�sLt‚|j�sXt‚|j	�sdt‚d S )	Nz
2017-10-01r   r   é   é   ©Údaysz
2017-09-30é   )
r   Ú	dayofweekÚAssertionErrorÚ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Ú
nanosecondr1   é   r3   r   é   Z	dayofyearim  Zday_of_yearÚweekr-   ZdaysinmonthÚtzNú
US/Easternc                 C   s4   t d|d�}t||ƒ}t|tƒs$t‚||ks0t‚d S )Nú2014-12-31 23:59:00©rG   )r   r#   Ú
isinstanceÚintr2   )r$   r(   ÚexpectedrG   r&   Úresultr)   r)   r*   Útest_fieldsb   s    
z#TestTimestampProperties.test_fieldsc              	   C   s4   t d|d�}d}tjt|d�� |j W 5 Q R X d S )NrI   rJ   z1'Timestamp' object has no attribute 'millisecond'r   )r   ÚpytestÚraisesÚAttributeErrorZmillisecond)r$   rG   r&   r%   r)   r)   r*   Útest_millisecond_raises€   s    z/TestTimestampProperties.test_millisecond_raisesr   r4   r5   Úis_year_startc                 C   s   t d|d�}t||ƒst‚d S )Nz2014-01-01 00:00:00rJ   ©r   r#   r2   )r$   r   rG   r&   r)   r)   r*   Útest_is_start‡   s    z%TestTimestampProperties.test_is_startr   r6   Úis_year_endr7   c                 C   s   t d|d�}t||ƒst‚d S )Nz2014-12-31 23:59:59rJ   rU   )r$   r   rG   r&   r)   r)   r*   Útest_is_end�   s    z#TestTimestampProperties.test_is_endÚdataz2017-08-28 23:00:00ÚESTrJ   Útime_localec              	   C   sØ   |d krd}d}n6t  |tj¡�" tjd  ¡ }tjd  ¡ }W 5 Q R X | |¡}| |¡}t 	d|¡}t 	d|¡}t 	d|¡}t 	d|¡}||ks˜t
‚||ks¤t
‚ttƒ}t | |¡¡sÀt
‚t | |¡¡sÔt
‚d S )NZMondayZAugustr   é   ZNFD)r    Z
set_localeÚlocaleÚLC_TIMEÚcalendarÚday_nameÚ
capitalizeÚ
month_nameÚunicodedataÚ	normalizer2   r   r   ÚnpÚisnan)r$   rY   r[   Zexpected_dayZexpected_monthZ
result_dayZresult_monthZnan_tsr)   r)   r*   Ú
test_names–   s"    

z"TestTimestampProperties.test_namesc                 C   sp   |}t d|d�}|jst‚t|jtƒs*t‚t d|d�}|jr@t‚t d|d�}|jsVt‚t d|d�}|jrlt‚d S )Nz2000-01-01 00:00:00rJ   z1999-01-01 00:00:00z2004-01-01 00:00:00ú2100-01-01 00:00:00)r   Zis_leap_yearr2   rK   Úbool)r$   Útz_naive_fixturerG   Ú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&t‚t dddƒ}t|ƒj}d}||ksLt‚t dddƒ}t|ƒj}d	}||ksrt‚t d
ddƒ}t|ƒj}d	}||ks˜t‚t d
ddƒ}t|ƒj}d	}||ks¾t‚t dd„ dD ƒ¡}|ddd	d	gk ¡ sêt‚d S )NéÝ  r:   r<   r-   iØ  é   é4   iÙ  é5   iÚ  é   c                 S   s   g | ]}t t|Ž ƒj‘qS r)   )r   r   rF   )Ú.0Úargsr)   r)   r*   Ú
<listcomp>è   s   ÿz=TestTimestampProperties.test_woy_boundary.<locals>.<listcomp>))éÐ  r-   r-   )ru   r-   rD   )éÕ  r-   r-   )rv   r-   rD   )r   r   rF   r2   re   ÚarrayÚall)r$   ÚdrN   rM   r)   r)   r*   Útest_woy_boundaryÌ   s4    




þÿz)TestTimestampProperties.test_woy_boundaryc                 C   s4   t dƒ}|jtdd�kst‚t jtdd�ks0t‚d S )Nrh   r-   )Únanoseconds)r   Ú
resolutionr   r2   )r$   rk   r)   r)   r*   Útest_resolutionï   s    z'TestTimestampProperties.test_resolution)Ú__name__Ú
__module__Ú__qualname__r+   rP   ÚmarkÚfilterwarningsr9   ÚparametrizerO   rS   rV   rX   r   r    Zget_localesrg   rl   rz   r}   r)   r)   r)   r*   r   )   s`   

ñþ	
 ÿþ ÿ#r   c                   @   sX  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
 d2d3d4d5d6d7gd8d9d:d6d;gg¡d<d=„ ƒZd>d?„ Zd@dA„ ZdBS )CÚTestTimestampc                 C   sÆ   d}t |ƒ}| d¡}|jdks$t‚|t |dd�ks8t‚| d¡}|t ddd�ksVt‚|jdksdt‚t |ƒt d¡ }| d¡}|jdksŽt‚|jdksœt‚| d¡}|jdks´t‚|jdksÂt‚d S )	Nz2014-02-01 09:00ú
Asia/Tokyoé	   rJ   rH   z2014-01-31 19:00é   r0   )r   Útz_localizer=   r2   Ú
tz_convertr   ÚNanorC   )r$   Ztstrr&   ÚlocalÚconvr)   r)   r*   Útest_tzú   s    



zTestTimestamp.test_tzc                 C   s   t tdƒjƒtkst‚d S )Nz2014-11-02 01:00Z)r	   r   Útzinfor   r2   )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 ]8}t|ƒj d¡t  	|d¡ d¡  krT|ks"n t
‚q"tdƒj d¡t  	dd¡ d¡ks‚t
‚d S )Niayy éè  Úi8ÚnsZnat)re   ÚrandomÚseedr   ÚminÚvalueÚmaxÚasm8ÚviewÚ
datetime64r2   )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  ¡ t ¡ ƒ t t ¡  ¡ ¡}d}t	j
t|d�� t  |¡}W 5 Q R X ||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$t‚d S ©Ng    eÍÍAr   )rL   r   r–   r2   ©ÚxÚyr)   r)   r*   Úcompare  s    z2TestTimestamp.test_class_ops_pytz.<locals>.compareÚUTCú!timezone-aware Timestamp with UTCr   rJ   é
   ©Úminutes)r   Únowr   r   ÚutcnowÚtodayr_   ÚtimegmÚutctimetupler    r!   r"   ÚutcfromtimestampÚfromtimestampr   r   ÚtimeÚcombine©r$   r¡   Úcurrent_timer%   Zts_utcZdate_componentZ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 5 Q R X ||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s4t‚d S r�   )rL   re   Úroundr   r–   r2   rž   r)   r)   r*   r¡   B  s    ÿÿüÿz6TestTimestamp.test_class_ops_dateutil.<locals>.comparer¢   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*   Útest_class_ops_dateutilA  s.    	þ ÿ

þz%TestTimestamp.test_class_ops_dateutilc                 C   s¾   t  d¡ d¡}t| d¡d ƒ}|jdks0t‚|jdks>t‚|jdksLt‚|jdksZt‚t  	t j¡j
d }t|ƒ}|jd	ks‚t‚|jd
ks�t‚|jdksžt‚|jdks¬t‚|jdksºt‚d S )Nl     †$=3izM8[ns]r‘   éô  ru   r-   r   l     *g	# i�  r†   é   iH7 éÀ   )re   Úint64r™   r   r   r2   r   rB   rC   Úiinfor•   r;   )r$   ÚvalÚstampr)   r)   r*   Útest_basics_nanose  s    zTestTimestamp.test_basics_nanoszvalue, check_kwargsl    B»mŽ@ig jr«è
CÚunitÚusg  ñ`�kBÚmsg  €æ¨6ÌAÚsiÍ*  r   r   )r½   Úhgb€æ¨6ÌAió  iÄ  )r½   r¾   r’   g  Àæ¨6ÌAi ¡ )r½   r¾   g ñ`�kBrµ   g yr«è
Cg €Wñ`�kBg(jr«è
Cr0   g@s«è
Céˆ  g) ñ`�kBg    ÀfÅ@r:   c                 C   s   ddd„}||f|Ž d S )Nr-   r   c                 S   s´   t | |d�}|jdkst‚|jdks(t‚|jdks6t‚|j|ksDt‚|dkrx|jdksZt‚|j|ksht‚|j|ks¢t‚n*|jdks†t‚|jdks”t‚|jdks¢t‚|j	|ks°t‚d S )N)r½   ru   r-   r   r   )
r   r   r2   r   r;   r=   r?   rA   rB   rC   )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–   Zcheck_kwargsrÃ   r)   r)   r*   Ú	test_unitv  s    
zTestTimestamp.test_unitc                 C   s6  t dƒ}t |jtdƒj ƒ}|t |› d�ƒks2t‚|jdks@t‚t |jtdƒj ƒ}|t |› d�ƒksjt‚|jdksxt‚t |jtdƒj ƒ}|t |› d	�ƒks¢t‚|jdks°t‚|jd
ks¾t‚t |jtdƒj ƒ}|t |› d�ƒksèt‚|jdksöt‚t |jtdƒj ƒ}|t |› d�ƒk�s"t‚|jdk�s2t‚d S )Nz20140101 00:00:00Z5msz.005000rÂ   Z5usz.000005r0   Z5nsz
.000000005r   z6ms 5usz.006005iu  z	200ms 5usz.200005iE )r   r–   r   r2   rB   rC   )r$   ÚbaserN   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s0t‚d S )NéÛ  r-   r0   )r   r   r2   )r$   ry   r»   r)   r)   r*   Útest_hash_equivalent¿  s    z"TestTimestamp.test_hash_equivalentz timezone, year, month, day, hourzAmerica/Chicagorm   é   rq   r-   zAmerica/Santiagoiå  rE   r>   c           	   	   C   sL   t |ƒ}t||||dd|d�}t||||dd|d�}t|ƒt|ƒksHt‚d S )Nr   )r   r   r;   r=   r?   ÚfoldrŽ   r-   )Úgettzr   Úhashr2   )	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_foldc              	   C   s‚   t jtdd��* tddd�}|j|d�j|jks4t‚W 5 Q R X t jtdd��, tddd	d
�}|jdd�j|jkstt‚W 5 Q R X d S )Nr   r   ú2019-01-01 10:00ÚHr   rJ   z2019-01-02 12:00r¢   ÚT)rG   r   )r    r!   r"   r   rˆ   r   r2   r‰   )r$   rj   Út1Út2r)   r)   r*   Útest_tz_conversion_freqß  s    "z%TestTimestamp.test_tz_conversion_freqc              	   C   sd   t jtdd�� tddd�}W 5 Q R X t |¡}t  d ¡� t |¡}W 5 Q R X |j|jks`t‚d S )Nr   r   rÎ   rÏ   r   )	r    r!   r"   r   ÚpickleÚdumpsÚloadsZ_freqr2   )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¼   rP   r�   rƒ   rÄ   rÆ   rÈ   rÍ   rÓ   rÙ   r)   r)   r)   r*   r„   ù   sP   &$



þþêþ
þ
	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t‚|t|ƒks.t‚t ddd�}|j|d ksLt‚|t|ƒks\t‚t ddd�}|j|ksvt‚|t|ƒks†t‚t ddd�}|j|d	 ks¤t‚|t|ƒks´t‚t d
ƒ}|j|ksÊt‚|t|ƒksÚt‚d S )Nz2013-05-01 07:15:45.123456789l   W3QQÏ z#2013-05-01 07:15:45.123456789+09:00r…   rJ   l     ûlÞur¢   rH   l     Åc4z20130501T071545.123456789)r   r–   r2   Ú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&t‚|j|ks4t‚|jdksBt‚t |ƒ}t|ƒdksZt‚|j|ksht‚|jdksvt‚t dƒ}t|ƒdksŽt‚|j|ksœt‚|jdksªt‚d}|t d¡ }t|ƒdksÌt‚|j|ksÚt‚|jdksèt‚t |ƒ}t|ƒdk�st‚|j|k�st‚|jdk�s"t‚t d	ƒ}t|ƒdk�s<t‚|j|k�sLt‚|jdk�s\t‚d S )
Nl    bx¥ z
2011-01-01r0   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Û   r2   r–   rC   )r$   rM   Ú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t‚d S )Nz
1700-06-23g   À€ÞAA©r   Úto_julian_dater2   ©r$   Úrr)   r)   r*   Útest_compare_17002  s    z+TestTimestampToJulianDate.test_compare_1700c                 C   s   t dƒ ¡ }|dkst‚d S )Nz
2000-04-12g   @_´BArà   râ   r)   r)   r*   Útest_compare_20006  s    z+TestTimestampToJulianDate.test_compare_2000c                 C   s   t dƒ ¡ }|dkst‚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t‚d S )Nz2000-08-12T01:00:00gUUUEœ´BArà   râ   r)   r)   r*   Útest_compare_hour01>  s    z-TestTimestampToJulianDate.test_compare_hour01c                 C   s   t dƒ ¡ }|dkst‚d S )Nz2000-08-12T13:00:00gUUU…œ´BArà   râ   r)   r)   r*   Útest_compare_hour13B  s    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(t‚t|ƒt|ƒks<t‚| ¡ }t |jd¡}||ks^t‚t|ƒt|ƒksrt‚|j	|j	ks‚t‚d S )Nz
2000-01-01ru   r-   r’   )
r   Úto_pydatetimer   r2   ÚtypeÚto_datetime64re   rš   r–   Údtype)r$   r&   rN   rM   r)   r)   r*   Útest_conversionH  s    z'TestTimestampConversion.test_conversionc              	   C   s4   d}t dddddd|d�}| ¡ }|jdks0t‚d S )Nz+dateutil/usr/share/zoneinfo/America/Chicagorm   rÉ   rq   r-   r   )r   r   r;   r=   r?   rÊ   rG   )r   rê   rÊ   r2   )r$   Ztzstrr&   rk   r)   r)   r*   Útest_to_pydatetime_foldW  s    z/TestTimestampConversion.test_to_pydatetime_foldc              	   C   sJ   t dƒ}t t¡�. tdddddddƒ}| ¡ }||ks<t‚W 5 Q R X d S )Nz2011-01-01 9:00:00.123456789rÇ   r-   r†   r   i@â )r   r    r!   ÚUserWarningr   rê   r2   ©r$   r&   rM   rN   r)   r)   r*   Útest_to_pydatetime_nonzero_nano^  s
    z7TestTimestampConversion.test_to_pydatetime_nonzero_nanoc                 C   s4   t ddd�}| ¡ }||ks t‚|j|jks0t‚d S ©NÚ20090415rH   rJ   ©r   rê   r2   rŽ   ©r$   r»   Zdtvalr)   r)   r*   Útest_timestamp_to_datetimeg  s    z2TestTimestampConversion.test_timestamp_to_datetimec                 C   s4   t ddd�}| ¡ }||ks t‚|j|jks0t‚d S )Nrô   zdateutil/US/EasternrJ   rõ   rö   r)   r)   r*   Ú#test_timestamp_to_datetime_dateutilm  s    z;TestTimestampConversion.test_timestamp_to_datetime_dateutilc                 C   s:   t dt d¡d�}| ¡ }||ks&t‚|j|jks6t‚d S ró   )r   Úpytzr   rê   r2   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$t‚|j|jks4t‚d S ró   )r   rË   rê   r2   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 5 Q R X t |ƒjd t jjd ksRt‚t j	jdkrbd nt}t |¡� t j	 ¡ }W 5 Q R X t
dd�}|| t j	ks¢t‚t || ƒjd t j	jd ksÄt‚d S )Nr   r�   r-   )Úmicroseconds)r   r—   rC   rð   r    r!   rê   r–   r2   r•   r   )r$   Zexp_warningZpydt_maxZpydt_minZtdusr)   r)   r*   Útest_to_datetime_bijective€  s    
z2TestTimestampConversion.test_to_datetime_bijectivec              	   C   s0   t ddd�}t t¡� | d¡ W 5 Q R X d S )Nz2009-04-15 16:17:18rH   rJ   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   sr   t t ¡ ƒ}| ¡ | ¡ ks t‚d}tjt|d�� | d¡ W 5 Q R X tjt|d�� |jdd� W 5 Q R X d S )Nz$dtype and copy arguments are ignoredr   zM8[s]T)Úcopy)	r   r   r§   rì   Úto_numpyr2   rP   rQ   Ú
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ú   ÚtdZ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*   r  ©  s   r  zlh,rhru   r-   )Úhoursc                 C   s&   | | }t ddddƒ}||ks"t‚d S )Nru   r-   )r  r2   )ZlhZrhrN   rM   r)   r)   r*   Útest_dt_subclass_add_timedelta­  s    r  c                	   @   sT  e Zd Zejdddg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/d0„ Zej d1ed2d3�ed2d3�e  d2d4¡g¡d5d6„ ƒZ!ejjd7d �d8d9„ ƒZ"d:d;„ Z#d<d=„ Z$d>d?„ Z%d@dA„ Z&dBdC„ Z'dDS )EÚTestNonNanorÀ   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)re   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–   Ú_reso)r$   r&   Útz_aware_fixturerG   r)   r)   r*   Úts_tzÌ  s    zTestNonNano.ts_tzc                 C   sj   |j | d¡kst‚|dkr0|jtjj ksft‚n6|dkrL|jtjj ksft‚n|dkrf|jtjj ksft‚d S )Nr‘   rÀ   r¿   r¾   )r–   r™   r2   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t‚|j|jks(t‚|j|jks8t‚|j|j  krh|j  krh|j  krhdksnn t‚|j	dks|t‚| 
¡ | 
¡ ks�t‚| ¡ | ¡ ks¤t‚| ¡ | ¡ ks¸t‚d S )Nr   )r   r   r2   r   r;   r=   r?   rA   rB   rC   rá   ÚweekdayÚ
isoweekday©r$   r  r&   Úaltr)   r)   r*   Útest_non_nano_fieldsÛ  s    6z TestNonNano.test_non_nano_fieldsc              	   C   s¬   |j s
t‚|jst‚|jst‚|jr(t‚|jr2t‚|jr<t‚t ¡ }| |¡ d}t	j
t|d��B |j slt‚|jsvt‚|js€t‚|jrŠt‚|jr”t‚|jržt‚W 5 Q R X d S )Nr   r   )rT   r2   r5   r4   rW   r6   r   ZBDayZ	_set_freqr    r!   r"   )r$   r&   r   r%   r)   r)   r*   Útest_start_end_fieldsè  s     











z!TestNonNano.test_start_end_fieldsc                 C   s    t |ƒ}| ¡ | ¡ kst‚d S r  )r   r`   r2   r  r)   r)   r*   Útest_day_nameý  s    zTestNonNano.test_day_namec                 C   s    t |ƒ}| ¡ | ¡ kst‚d S r  )r   rb   r2   r  r)   r)   r*   Útest_month_name  s    zTestNonNano.test_month_namec                 C   sX   t  |j|jt¡}t d¡}| |¡}t|t ƒs4t	‚|j|jksDt	‚t
|j|ƒsTt	‚d S )Nz
US/Pacific)r   r  r–   r  r   rù   r   r‰   rK   r2   r   rG   )r$   r&   rG   rN   r)   r)   r*   Útest_tz_convert  s    

zTestNonNano.test_tz_convertc                 C   s4   t |ƒ}t|ƒt|ƒkst‚t|ƒt|ƒks0t‚d S r  )r   Ústrr2   rÛ   r  r)   r)   r*   Ú	test_repr  s    zTestNonNano.test_reprc                 C   s4  t |ƒ}||kst‚||ks t‚||ks,t‚||ks8t‚||krDt‚||krPt‚||kr\t‚||krht‚||k rtt‚||k r€t‚||k rŒt‚||k r˜t‚||kr¤t‚||kr°t‚||kr¼t‚||krÈt‚||ksÔt‚||ksàt‚||ksìt‚||ksøt‚||k�st‚||k�st‚||k�s"t‚||k�s0t‚d S r  )r   r2   r  r)   r)   r*   Útest_comparison  s2    zTestNonNano.test_comparisonc                 C   sv   t  dd¡}t |¡}t|d ƒ}||k s.t‚|j|jks>t‚||ksJt‚|j|jk sZt‚||krft‚||ksrt‚d S )Nl     ƒK rÀ   é€Q )re   rš   r   r  r2   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 s0t‚d S )Ni ¡ r   r-   )re   rš   r   r  r˜   r2   r&  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s8t‚||ksDt‚d S r  )r
   r   r  r–   r  r    Zround_trip_pickler2   )r$   r&   r  rG   Úrtr)   r)   r*   Útest_pickleM  s    
zTestNonNano.test_picklec                 C   s4   t |ƒ}| ¡ }|j|jks t‚|| ¡ ks0t‚d S r  )r   rd   r  r2   )r$   r  r&   r  rN   r)   r)   r*   Útest_normalizeU  s    zTestNonNano.test_normalizec                 C   s&   |j }||kst‚|j|jks"t‚d S r  )r˜   r2   rí   )r$   r  r&   r+  r)   r)   r*   rœ   [  s    zTestNonNano.test_asm8c                 C   s(   |  ¡ }||kst‚|j|jks$t‚d S r  )r  r2   rí   ©r$   r  r&   rØ   r)   r)   r*   Útest_to_numpy`  s    zTestNonNano.test_to_numpyc                 C   s(   |  ¡ }||kst‚|j|jks$t‚d S r  )rì   r2   rí   r.  r)   r)   r*   Útest_to_datetime64e  s    zTestNonNano.test_to_datetime64c                 C   s    t |ƒ}| ¡ | ¡ kst‚d S r  )r   Ú	timestampr2   r  r)   r)   r*   Útest_timestampj  s    zTestNonNano.test_timestampc                 C   s$   t |ƒ}| d¡| d¡ks t‚d S )Nr   )r   rþ   r2   r  r)   r)   r*   Útest_to_periodn  s    zTestNonNano.test_to_periodr  rE   r.   r   c                 C   s¾   || }t |ƒ| }t|t ƒs"t‚|j|jks2t‚||ks>t‚|| }t |ƒ| }t|t ƒs`t‚|j|jkspt‚||ks|t‚|| }|t |ƒ }t|t ƒsžt‚|j|jks®t‚||ksºt‚d S r  )r   rK   r2   r  )r$   r  r&   r  rN   rM   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 t‚|j|jks0t‚|j|jks@t‚|jdksNt‚|jdks\t‚t	|j
|j
ƒsnt‚|| }t|tƒs„t‚|j|jks”t‚|j|jd ks¨t‚|jdks¶t‚|jdksÄt‚t	|j
|j
ƒsÖt‚d S )Nr-   r<   r:   )r   Z	YearBeginrK   r   r2   r  r   r;   r   r   rG   )r$   r  ÚoffrN   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@t‚|| }t|t	ƒsVt‚|jdksdt‚|jt
|j|jƒks|t‚|| }t|t	ƒs’t‚|jdks t‚|jt
|j|jƒks¸t‚d}|j|jk �r"|t	 d|j¡ }tjt|d�� ||  W 5 Q R X tjt|d�� ||  W 5 Q R X nV|t	 d|j¡ }tjt|d�� ||  W 5 Q R X tjt|d�� ||  W 5 Q R X d S )Nr¿   rÀ   r¾   r   z1Timestamp subtraction with mismatched resolutionsr-   r   )r   r  r–   r  r  r  Ú_as_unitr2   rK   r   r•   r  rP   rQ   r  ©	r$   r  r&   r½   r'  rN   r%   Zother2r'   r)   r)   r*   Ú%test_sub_datetimelike_mismatched_reso¡  s@       ýü
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sDt‚|| }t	|t
ƒsZt‚||ksft‚|jt|j|jƒks~t‚|| }t	|t
ƒs”t‚||ks t‚|jt|j|jƒks¸t‚d}|j|jk �r"|t d|j¡ }tjt|d�� ||  W 5 Q R X tjt|d�� ||  W 5 Q R X nV|t d|j¡ }tjt|d�� ||  W 5 Q R X tjt|d�� ||  W 5 Q R X d}tjt|d�� |t dd	¡  W 5 Q R X d S )
Nr¿   rÀ   r¾   r   z.Timestamp addition with mismatched resolutionsr-   r   zDAddition between Timestamp and Timedelta with mismatched resolutionsr’   )r   r  r–   r  r  r  r   r7  r2   rK   r   r•   r  rP   rQ   r  re   Útimedelta64r8  r)   r)   r*   Ú&test_sub_timedeltalike_mismatched_resoÉ  sF       ýüz2TestNonNano.test_sub_timedeltalike_mismatched_resoc                 C   s:   |j |kst‚|j j|jks t‚|j jtjd ks6t‚d S ©Nr-   )r•   r2   r  r–   r   rÿ   r)   r)   r*   Útest_minö  s    zTestNonNano.test_minc                 C   s>   |j |kst‚|j j|jks t‚|j jt tj¡j ks:t‚d S r  )r—   r2   r  r–   re   r¹   r¸   rÿ   r)   r)   r*   Útest_maxû  s    zTestNonNano.test_maxc                 C   s4   t  d|j¡}|j}||ks t‚|j|jks0t‚d S r<  )r   r  r  r|   r2   rñ   r)   r)   r*   r}      s    zTestNonNano.test_resolutionN)(r~   r   r€   rP   Zfixturer  r  r&   r  r  r  r  r  r   r!  r#  r$  r(  r�   Zxfailr*  r,  r-  rœ   r/  r0  r2  r3  rƒ   r   r   re   r:  r4  r6  r9  r;  r=  r>  r}   r)   r)   r)   r*   r	  ½  sL   





!
 ÿ

(-r	  c                   C   s†   t jt tjd ƒkst‚t jjtjjks,t‚t jt t	 
t	j¡jƒksHt‚t jjtjjks\t‚t jtdƒksnt‚t jjtjjks‚t‚d S r<  )r   r•   r   r–   r2   r  r   Z	NPY_FR_nsr—   re   r¹   r¸   r|   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   s0  t dƒ}| d¡|kst‚| d¡}|j|jd ks8t‚|jtjjksJt‚| d¡}|j|jksdt‚|j|jkstt‚| d¡}|j|jd ks’t‚|jtjjks¤t‚| d¡}|j|jks¾t‚|j|jksÎt‚| d¡}|j|jd ksìt‚|jtjjksþt‚| d¡}|j|jk�st‚|j|jk�s,t‚d S )	Nz
1970-01-01r’   r¾   r�   r¿   é@B rÀ   i Êš;)	r   r7  r2   r–   r  r   r  r  r  )r$   r&   rØ   r+  r)   r)   r*   Útest_as_unit  s(    





zTestAsUnit.test_as_unitc              	   C   sp   d}t  |tjjd ¡}d}tjt|d�� | d¡ W 5 Q R X | d¡}|j|d ksZt	‚|j
tjjkslt	‚d S )Nl     À&oz=Cannot cast 2262-04-12 00:00:00 to unit='ns' without overflowr   r’   r¿   r�   )r   r  r   r  r–   rP   rQ   r   r7  r2   r  r  )r$   r¾   r&   r%   rØ   r)   r)   r*   Útest_as_unit_overflows2  s    
z!TestAsUnit.test_as_unit_overflowsc              	   C   sr   t dƒ}| d¡}t dƒ}||ks&t‚|jtjjks8t‚|jdksFt‚tjt	dd�� |jddd� W 5 Q R X d S )	Ni`ã r¿   rA  r-   zCannot losslessly convert unitsr   F)Zround_ok)
r   r7  r2   r  r   r  r–   rP   rQ   r  )r$   r&   rØ   rM   r)   r)   r*   Útest_as_unit_rounding?  s    
z TestAsUnit.test_as_unit_roundingc                 C   s  t dƒ d¡}|jdkst‚|jdks*t‚|jdks8t‚|j|j  krt|j  krt|j	  krt|j
  krtdkszn t‚| d¡}|jdks’t‚|jdks t‚|jdks®t‚|jdks¼t‚|j|j  krø|j  krø|j	  krø|j
  krødksþn t‚d S )	Nz
1970-01-02r¿   i²  r-   rD   r   rÀ   r%  )r   r7  r   r2   r   r;   r=   r?   rA   rB   rC   r–   )r$   r&   rØ   r)   r)   r*   Útest_as_unit_non_nanoL  s*    B
þýüûúz TestAsUnit.test_as_unit_non_nanoN)r~   r   r€   rB  rC  rD  rE  r)   r)   r)   r*   r@    s   r@  )2Ú__doc__r_   r   r   r]   rÔ   rc   Zdateutil.tzr   Únumpyre   rP   rù   r   r   Zpandas._libs.tslibs.dtypesr   Zpandas._libs.tslibs.timezonesr   rË   r	   r
   r   Zpandas.errorsr   Zpandas.util._test_decoratorsÚutilZ_test_decoratorsr  Zpandasr   r   r   Zpandas._testingZ_testingr    Zpandas.tseriesr   r   r„   rÚ   rß   ré   r  r�   rƒ   r  r	  r?  r@  r)   r)   r)   r*   Ú<module>   sJ    Q |=bþþ
	  L