1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
U
®ý°d (ã@sbddlmZmZmZddlZddlZddlmZmZm    Z    m
Z
m Z m Z ddl mZGdd„dƒZdS)é)ÚdatetimeÚ    timedeltaÚtimezoneN)ÚOutOfBoundsDatetimeÚOutOfBoundsTimedeltaÚ    TimedeltaÚ    TimestampÚoffsetsÚ    to_offsetc @s€eZdZdd„Zdd„Zdd„Zdd„Zd    d
„Zd d „Zd d„Z    dd„Z
dd„Z dd„Z dd„Z ej dedde dd¡eddg¡dd„ƒZej de dd¡dfe d d¡d fe dd!¡d"fe dd#¡d$fg¡d%d&„ƒZej d'ed(ƒed(d)d*g¡ej d+d,e d,¡ejd,d-gejd.ejdd/gejd.g¡d0d1„ƒƒZej d2d3d4g¡d5d6„ƒZej d2d3d4g¡d7d8„ƒZd9d:„Zd;S)<ÚTestTimestampArithmeticcCsXtdƒ}tdƒd}tdƒ}|||ks,t‚|||ks<t‚tdƒ}|||ksTt‚dS)Nú2000/1/1ÚDédz
2000/04/10z
1999/09/23)rr
ÚAssertionError)ÚselfÚstampZoffset_no_overflowÚexpected©rúdd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/scalar/timestamp/test_arithmetic.pyÚtest_overflow_offsets z,TestTimestampArithmetic.test_overflow_offsetc    Cstdƒ d¡}dt d¡}d}d}tjt|d||W5QRXtjt|d||W5QRXtjt|d||W5QRXtdƒ d¡}td    ƒd
}d }tjt|d||W5QRXtjt|d||W5QRXtjt|d||W5QRXdS) Nz2017-01-13 00:00:00ÚnsiÔÄ3ézathe add operation between \<-?\d+ \* Days\> and \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} will overflowzECannot cast -?20169940 days \+?00:00:00 to unit='ns' without overflow©Úmatchr r ld(    zHCannot cast -?10000000000 days \+?00:00:00 to unit='ns' without overflow)    rÚas_unitr    ZDayÚpytestÚraisesrÚ OverflowErrorr
)rrZoffset_overflowÚmsgZlmsg2Zlmsg3rrrÚtest_overflow_offset_raises%s*ÿ ÿz3TestTimestampArithmetic.test_overflow_offset_raisesc    Csbd}tdƒ d¡}tdƒ d¡}tjt|d||W5QRX|| ¡| ¡|ks^t‚dS)NzResult is too largez2101-01-01 00:00:00rz1688-01-01 00:00:00r)rrrrrÚ to_pydatetimer)rrÚaÚbrrrÚtest_overflow_timestamp_raisesMs z6TestTimestampArithmetic.test_overflow_timestamp_raisescCs(tdƒ}|tdƒ}|j|jks$t‚dS)Nl{Ô|%*xr)rrZ
nanosecondr)rÚvalÚresultrrrÚtest_delta_preserve_nanosYs z1TestTimestampArithmetic.test_delta_preserve_nanosc    CsŒtdƒ}td|d}||}|||ks,t‚| ¡||ks@t‚|dkr^| ¡||ksˆt‚n*d}tjt|d| ¡|W5QRXdS)Nl­@~z
2021-01-01©Útzz;Cannot subtract tz-naive and tz-aware datetime-like objectsr)rrrr Z to_datetime64rrÚ    TypeError)rZtz_naive_fixtureÚtdÚtsÚotherrrrrÚtest_rsub_dtscalars^s z+TestTimestampArithmetic.test_rsub_dtscalarscCsDtdddƒ}ttdddƒƒ}||jdks.t‚||jdks@t‚dS)NéÝé
é é réÿÿÿÿ)rrÚdaysr)rÚdtr+rrrÚtest_timestamp_sub_datetimems z3TestTimestampArithmetic.test_timestamp_sub_datetimecCsFtdƒ}tddddtjd}||}t|tƒs2t‚|tdƒksBt‚dS)Nz2020-10-22T22:00:00+00:00iär/é©Útzinfoz0 days)rrrÚutcÚ
isinstancerr©rÚt1Út2r%rrrÚtest_subtract_tzaware_datetimess
z6TestTimestampArithmetic.test_subtract_tzaware_datetimecCsFtdƒ d¡}tdƒ d¡}||}t|tƒs2t‚|tdƒksBt‚dS)NÚ20130101z
US/EasternÚCETú0 days 06:00:00)rÚ tz_localizer:rrr;rrrÚ/test_subtract_timestamp_from_different_timezone|s
zGTestTimestampArithmetic.test_subtract_timestamp_from_different_timezonecCsxtdddttddƒd}tdƒ d¡}||}t|tƒs>t‚|tdƒksNt‚||}t|tƒsdt‚|td    ƒkstt‚dS)
Nr.réûÿÿÿ©Úhoursr7r?r@rAz-1 days +18:00:00)rrrrrBr:rrr;rrrÚ5test_subtracting_involving_datetime_with_different_tz…szMTestTimestampArithmetic.test_subtracting_involving_datetime_with_different_tzcCsNtdƒ}| d¡}| |¡tdƒ}||}t|tƒs:t‚|tdƒksJt‚dS)Nr?ÚUTCz0 days 05:00:00)rrBZ
tz_convertrr:r)rZtz_aware_fixtureZt_rawZt_UTCZt_diffr%rrrÚ$test_subtracting_different_timezones’s 
z<TestTimestampArithmetic.test_subtracting_different_timezonesc    CsÚtdddƒ}tdd}t|ƒ}d}tjt|d|dW5QRXtjt|d|dW5QRXt||ƒtkszt‚t||ƒtksŽt‚t||ƒtks¢t‚t     
dd¡}t||ƒtksÂt‚t||ƒtksÖt‚dS)    NiÞéér)Úsecondsz Addition/subtraction of integersrr ) rrrrrr)ÚtyperrÚnpÚ timedelta64)rr4r*r+rZtd64rrrÚtest_addition_subtraction_typesœs 
 z7TestTimestampArithmetic.test_addition_subtraction_typesr*rJrEÚhcCs|}||||kst‚dS)N)r)rr*Z fixed_now_tsr+rrrÚtest_radd_tdscalar¶sz*TestTimestampArithmetic.test_radd_tdscalarzother,expected_differencei…ÿÿÿriÚ–IÚusiˆþÿÚmsi@+«øcCsRt ¡}t|ƒ d¡}||}|j|j}||ks6t‚t|ƒ}|||ksNt‚dS)Nr)rÚutcnowrrÚ_valuer)rr,Zexpected_differenceÚnowr+r%ZvaldiffÚts2rrrÚ#test_timestamp_add_timedelta64_unit¾s
  z;TestTimestampArithmetic.test_timestamp_add_timedelta64_unitr+z
1776-07-04rHr'r,ré©ZdtyperKc    Cs”d}tjt|d||W5QRXtjt|d||W5QRXtjt|d||W5QRXd}tjt|d||W5QRXdS)Nz3Addition/subtraction of integers and integer-arraysrzunsupported operand type)rrr))rr+r,rrrrÚtest_add_int_with_freqÑsz.TestTimestampArithmetic.test_add_int_with_freqÚshape)é)rZrJc    sòtdƒ d¡‰t d¡ d¡ |¡}ˆ|}‡fdd„tdƒDƒ}tjdd„|Dƒdd     |¡}t     ||¡|ˆ}t     ||¡ˆ|}‡fd
d„tdƒDƒ}tjd d„|Dƒdd     |¡}t     ||¡d }t
j t |d |ˆW5QRXdS)Nú2020-04-04 15:45rr^úm8[h]csg|]}ˆt|d‘qS©rE©r©Ú.0Ún©r+rrÚ
<listcomp>÷szATestTimestampArithmetic.test_addsub_m8ndarray.<locals>.<listcomp>cSsg|]
}|j‘qSr©Zasm8©rdÚxrrrrgøszM8[ns]r[csg|]}ˆt|d‘qSrarbrcrfrrrgÿscSsg|]
}|j‘qSrrhrirrrrgsúDunsupported operand type\(s\) for -: 'numpy.ndarray' and 'Timestamp'r) rrrNÚarangeÚastypeÚreshapeÚrangeÚarrayÚtmÚassert_numpy_array_equalrrr)©rr]r,r%Z    ex_stampsrrrrfrÚtest_addsub_m8ndarrayïs   z-TestTimestampArithmetic.test_addsub_m8ndarrayc    sÔtddd‰t d¡ d¡ |¡}ˆ|}‡fdd„tdƒDƒ}t |¡ |¡}t ||¡|ˆ}t ||¡ˆ|}‡fdd„tdƒDƒ}t |¡ |¡}t ||¡d    }t    j
t |d
|ˆW5QRXdS) Nr_z
US/Pacificr'r^r`csg|]}ˆt|d‘qSrarbrcrfrrrgszITestTimestampArithmetic.test_addsub_m8ndarray_tzaware.<locals>.<listcomp>csg|]}ˆt|d‘qSrarbrcrfrrrgsrkr) rrNrlrmrnrorprqrrrrr)rsrrfrÚtest_addsub_m8ndarray_tzawares    z5TestTimestampArithmetic.test_addsub_m8ndarray_tzawarecCsDtdddƒ}t||d}t||d}||}tdƒ}||ks@t‚dS)Niårr'r)rrrr)rZ utc_fixtureZ utc_fixture2r4Zts1rXr%rrrrÚ#test_subtract_different_utc_objects s    z;TestTimestampArithmetic.test_subtract_different_utc_objectsN) Ú__name__Ú
__module__Ú __qualname__rrr#r&r-r5r>rCrGrIrPrÚmarkZ parametrizerrNrOrrRrYrÚint64rpÚint32Zuint64r\rtrurvrrrrr sZ(          
ÿ
üþ    
 
 
þþüþ     
 
r )rrrÚnumpyrNrZpandas._libs.tslibsrrrrr    r
Zpandas._testingZ_testingrqr rrrrÚ<module>s