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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
U
®ý°d›Rã@sÞddlmZddlmZddlmZmZddlZddl    Z    ddl
Z
ddl
m Z ddl m Z ddlmZmZmZmZmZmZmZddlmZdd    lmZddlmmZddlmZ Gd
d „d ƒZ!e    j" #d dd g¡dd„ƒZ$dS)é)Údatetime)Úgettz)ÚgivenÚ
strategiesN)Úutc)Úlib)ÚNaTÚOutOfBoundsDatetimeÚ    TimedeltaÚ    TimestampÚ
conversionÚiNaTÚ    to_offset)ÚNpyDatetimeUnit)ÚINVALID_FREQ_ERR_MSGc@sDeZdZdd„Zej ddddddd    d
g¡d d „ƒZd d„Zdd„Z    dd„Z
dd„Z dd„Z ej dddddddddg¡d d!„ƒZ ej d"d#d$d%d&d'd(g¡ej d)d*d+d,g¡d-d.„ƒƒZej d/d0d1d2d3g¡d4d5„ƒZej d/d0d1d2d3g¡d6d7„ƒZej d8d*d,d+g¡ej d/d0d1d2d3g¡d9d:„ƒƒZej d;d*d<d=gd,d<d=gd+d>d?gg¡ej d/d0d1d2d3g¡d@dA„ƒƒZej dBdCdDdEdFdGdHg¡ej dIdJdKdLdMdNdOdPdQdRdSdTdUdVdWdXdYdZd[g¡d\d]„ƒƒZd^d_„Zejjd`dadbee edcej¡ddej d8ejejejg¡dedf„ƒƒƒZ dgdh„Z!didj„Z"dkdl„Z#dmdn„Z$dodp„Z%dqdr„Z&dsdt„Z'dudv„Z(dwdx„Z)e*j+dydz„ƒZ,ej d{e- .d|¡d}d~„fe/d|ƒdd~„fg¡d€d„ƒZ0ej d/d0d1d2d3g¡d‚dƒ„ƒZ1ej d„d…dcg¡ej d†d‡dˆg¡ej d/d0d1d2d3g¡d‰dŠ„ƒƒƒZ2ej d‹dŒdg¡ej d/d0d1d2d3g¡dŽd„ƒƒZ3dd‘„Z4e*j+d’d“„ƒZ5d”S)•ÚTestTimestampUnaryOpsc    Cs4tdƒ}d}tjt|d| d¡W5QRXdS)Nú
2016-01-01zDivision by zero in rounding©ÚmatchZ0ns)r ÚpytestÚraisesÚ
ValueErrorÚround)ÚselfÚtsÚmsg©rúcd:\z\workplace\vscode\pyvenv\venv\Lib\site-packages\pandas/tests/scalar/timestamp/test_unary_ops.pyÚ!test_round_divison_by_zero_raises sz7TestTimestampUnaryOps.test_round_divison_by_zero_raisesztimestamp, freq, expected)ú20130101 09:10:11ÚDÚ20130101)z20130101 19:10:11r Ú20130102)z20130201 12:00:00r Z20130202)z20130104 12:00:00r Z20130105)ú2000-01-05 05:09:15.13r z2000-01-05 00:00:00)r#ÚHz2000-01-05 05:00:00)r#ÚSz2000-01-05 05:09:15cCs*t|ƒ}| |¡}t|ƒ}||ks&t‚dS©N©r rÚAssertionError)rÚ    timestampÚfreqÚexpectedÚdtÚresultrrrÚtest_round_frequencies(s 
z,TestTimestampUnaryOps.test_round_frequenciescCsTtddd}| d¡}tddd}||ks.t‚tddd}| d¡}||ksPt‚dS)Nrú
US/Eastern©Útzr r!Úsr'©rr,r-r+rrrÚtest_round_tzaware:s 
 
z(TestTimestampUnaryOps.test_round_tzawarecCs*tdƒ}| d¡}tdƒ}||ks&t‚dS)Nz20130104 12:32:00Z30Minz20130104 12:30:00r'r3rrrÚtest_round_30minDs
z&TestTimestampUnaryOps.test_round_30mincCsŽtdƒ d¡}tdƒ}||ks"t‚tdƒ d¡}tdƒ}||ksDt‚tdƒ}dD]}|| |¡ksPt‚qPtdƒ d¡}td    ƒ}||ksŠt‚dS)
Nz2016-10-17 12:00:00.0015Úmsz2016-10-17 12:00:00.002000z2016-10-17 12:00:00.00149z2016-10-17 12:00:00.001000)ÚusÚnsú2016-10-17 12:00:00.001501031Ú10nsz2016-10-17 12:00:00.001501030r')rr-r+rr*rrrÚtest_round_subsecondKs  z*TestTimestampUnaryOps.test_round_subsecondc    Cs(t d¡tdƒ d¡W5QRXdS)NFr9Z1010ns)ÚtmZassert_produces_warningr r)rrrrÚtest_round_nonstandard_freq]s z1TestTimestampUnaryOps.test_round_nonstandard_freqc    Cs0tdƒ}tjttd| d¡W5QRXdS)Nr#rÚfoo)r rrrrr)rZstamprrrÚtest_round_invalid_argasz,TestTimestampUnaryOps.test_round_invalid_argz#test_input, rounder, freq, expected)ú2117-01-01 00:00:45ÚfloorÚ15sr@)r@ÚceilrBr@)z2117-01-01 00:00:45.000000012rAr:z2117-01-01 00:00:45.000000010)z1823-01-01 00:00:01.000000012rCr:z1823-01-01 00:00:01.000000020)ú1823-01-01 00:00:01rAÚ1srD)rDrCrErD)rrArEr)rrCrErcCsHt|ƒ}t||ƒ}||ƒ}|tkr0|tksDt‚nt|ƒ}||ksDt‚dSr&)r Úgetattrrr()rÚ
test_inputÚrounderr*r+r,Úfuncr-rrrÚtest_ceil_floor_edgefs
z*TestTimestampUnaryOps.test_ceil_floor_edgeztest_input, freq, expected)ú2018-01-01 00:02:06Ú2srK)ú2018-01-01 00:02:00Z2TrM)ú2018-01-01 00:04:00Z4TrN)ú2018-01-01 00:15:00Z15TrO)ú2018-01-01 00:20:00Z20TrP)ú2018-01-01 03:00:00Z3HrQrHrCrArcCs2t|ƒ}t|ƒ}t||ƒ}||ƒ}||ks.t‚dSr&)r rFr()rrGr*r+rHr,rIr-rrrÚtest_round_minute_freqˆs
 
z,TestTimestampUnaryOps.test_round_minute_freqÚunitr8r7r6r2cCs@tdƒ |¡}| d¡}tdƒ}||ks,t‚|j|jks<t‚dS)Nrr r")r Úas_unitrCr(Ú_creso©rrSr,r-r+rrrÚ    test_ceilžs
 
 zTestTimestampUnaryOps.test_ceilcCs@tdƒ |¡}| d¡}tdƒ}||ks,t‚|j|jks<t‚dS)Nrr r!)r rTrAr(rUrVrrrÚ
test_floor¦s
 
 z TestTimestampUnaryOps.test_floorÚmethodc    Csötddd d¡}| |¡}t||ƒddd}||ks:t‚|jttd|›ƒjksVt‚t||ƒdd    d}td
dd d¡}||ks†t‚|jttd|›ƒjks¢t‚t||ƒdd d}|tksÀt‚d }t    j
t j |d t||ƒdddW5QRXdS)Nz2017-10-29 00:00:00ÚUTCr0z Europe/Madridr$T©Z    ambiguousÚNPY_FR_Fz2017-10-29 01:00:00rzCannot infer dst timerÚraise) r Ú
tz_convertrTrFr(rUrÚvaluerrrÚpytzZAmbiguousTimeError)rrYrSrr-r+rrrrÚtest_round_dst_border_ambiguous®s 
  ÿ  z5TestTimestampUnaryOps.test_round_dst_border_ambiguouszmethod, ts_str, freqz2018-03-11 01:59:00-0600Z5minz2018-03-11 03:01:00-0500Z2Hc        Cs¬t|dd |¡}t||ƒ|dd}tddd}||ks<t‚|jttd|›ƒjksXt‚t||ƒ|dd}|tksvt‚d}tj    t
j |d    t||ƒ|d
dW5QRXdS) NúAmerica/Chicagor0Z shift_forward)Z nonexistentz2018-03-11 03:00:00r\rz2018-03-11 02:00:00rr]) r rTrFr(rUrr_rrrr`ZNonExistentTimeError)    rrYZts_strr*rSrr-r+rrrrÚ!test_round_dst_border_nonexistentÊs   z7TestTimestampUnaryOps.test_round_dst_border_nonexistentr)z2018-01-01 0:0:0.124999360z2018-01-01 0:0:0.125000367z2018-01-01 0:0:0.125500z2018-01-01 0:0:0.126500z2018-01-01 12:00:00z2019-01-01 12:00:00r*Z2nsZ3nsZ4nsZ5nsZ6nsZ7nsZ250nsZ500nsZ750nsZ1usZ19usZ250usZ500usZ750usrErLZ3sZ1DcCsDt|ƒ d¡}t|ƒj}| |¡}|j|dks@td|›dƒ‚d|j|jkr\|ksfntdƒ‚| |¡}|j|dksŽtd|›dƒ‚d|j|jkrª|ks´ntdƒ‚| |¡}|j|dksÜtd|›dƒ‚t    |j|jƒ|d    ksütd
ƒ‚|d    dkr@t    |j|jƒ|d    kr@|j|d    dks@td ƒ‚dS) Nr8rz floor not a z     multiplez floor errorz ceil not a z
ceil errorz round not a éz round errorzround half to even error)
r rTrÚnanosrAÚ_valuer(rCrÚabs)rr)r*r,rSr-rrrÚtest_round_int64ås%
 
&
&
 (z&TestTimestampUnaryOps.test_round_int64c    Cs®tj d¡}tddddddƒ}||ks*t‚tj d¡}tjtdƒ}||ksPt‚tjt    d    d
tj d¡W5QRXd  
d d g¡}tjt    |d
tj d¡W5QRXdS)Nr2ié    éré é,iÿ×ò2zvalue too largerú|z)Python int too large to convert to C longzint too big to convert) r ÚminrCr(ÚmaxrAr
rrÚ OverflowErrorÚjoin)rr-r+rrrrÚ test_round_implementation_boundss    ÿz6TestTimestampUnaryOps.test_round_implementation_boundszFailing on buildsF)ÚreasonÚstricté)ÚvalcsØt |¡}t|ƒ}‡fdd„}ˆ|dƒ|ks0t‚ˆ|dƒ}d}t ||j¡|ksVt‚|j|dksht‚||||ƒˆ|dƒ}d}t ||j¡|ksšt‚|j|dks¬t‚||||ƒˆ|d    ƒ}d
}t ||j¡|ksÞt‚|j|dksðt‚||||ƒˆ|d ƒ}d }t ||j¡|ks$t‚|j|dks8t‚||||ƒˆ|d ƒ}d}t ||j¡|kslt‚|j|dks€t‚||||ƒˆ|dƒ}d}t ||j¡|ks´t‚|j|dksÈt‚||||ƒdS)Ncs^ˆtjkr,t ||j¡}||dksZt‚n.ˆtjkrD||ksZt‚nˆtjkrZ||ksZt‚dS)Nrd)r rÚnprgrfr(rArC)ÚresrreZdiff©rYrrÚchecker<s
 
 
z8TestTimestampUnaryOps.test_round_sanity.<locals>.checkerr8r7ièrr6i@Br2iʚ;rnlXŽp7Úhl qa r lž"R:)rwÚint64r r(rgrf)rrvrYrrzrxrerryrÚtest_round_sanity3sD
     
 
 
 
 
 
z'TestTimestampUnaryOps.test_round_sanityc    Cs|tdƒ d¡}d}tjt|d|jddW5QRX| d¡}|jdd}|jdks\t‚|jtt     
dd¡ƒjksxt‚dS)    Nrr8z8Out of bounds nanosecond timestamp: 99999-01-01 00:00:00riŸ†©Úyearr6z 99999-01-01) r rTrrr    Úreplacerr(rfrwZ
datetime64)rrrr-rrrÚ%test_replace_out_of_pydatetime_boundsns
 z;TestTimestampUnaryOps.test_replace_out_of_pydatetime_boundscCsbt dtjjd¡}| ¡tdddƒks*t‚|jdd}|j    |j    ksFt‚| ¡tdddƒks^t‚dS)Nl T1)
irkéi$r~)
r Z_from_value_and_resorZ    NPY_FR_usr_Ú to_pydatetimerr(r€rU)rrr-rrrÚtest_replace_non_nano{sÿ z+TestTimestampUnaryOps.test_replace_non_nanocCs,tdƒ}|jdd}tdƒ}||ks(t‚dS)Nú2016-01-01 09:00:00r©Úhourú2016-01-01 00:00:00©r r€r()rrr-r+rrrÚtest_replace_naive…s z(TestTimestampUnaryOps.test_replace_naivecCs8|}td|d}|jdd}td|d}||ks4t‚dS)Nr…r0rr†rˆr‰©rÚtz_aware_fixturer1rr-r+rrrÚtest_replace_awareŒs
   z(TestTimestampUnaryOps.test_replace_awarecCs8|}td|d}|jdd}td|d}||ks4t‚dS)Nú2016-01-01 09:00:00.000000123r0rr†z2016-01-01 00:00:00.000000123r‰r‹rrrÚtest_replace_preserves_nanos•s
   z2TestTimestampUnaryOps.test_replace_preserves_nanosc
CsF|}td|d}|jddddddddd}td|d}||ksBt‚dS)    NrŽr0ißrdré)rÚmonthÚdayr‡ÚminuteÚsecondÚ microsecondZ
nanosecondz2015-02-02 00:05:05.000005005r‰r‹rrrÚtest_replace_multiples ø
z+TestTimestampUnaryOps.test_replace_multiplec    Cs>|}td|d}d}tjt|d|jddW5QRXdS)NrŽr0z.replace\(\) got an unexpected keyword argumentrr)r>)r rrÚ    TypeErrorr€©rrŒr1rrrrrÚtest_replace_invalid_kwarg°s
 z0TestTimestampUnaryOps.test_replace_invalid_kwargc    Cs>|}td|d}d}tjt|d|jddW5QRXdS)NrŽr0z;value must be an integer, received <class 'float'> for hourrgš™™™™™¹?r†)r rrrr€r˜rrrÚtest_replace_integer_args¸s
 z/TestTimestampUnaryOps.test_replace_integer_argscCs*tddd}| d¡|jddks&t‚dS)Nz2013-11-03 01:59:59.999999-0400r/r0©Útzinfo)r Ú tz_localizer€r()rrrrrÚ*test_replace_tzinfo_equiv_tz_localize_noneÀs z@TestTimestampUnaryOps.test_replace_tzinfo_equiv_tz_localize_nonec    Csütddddƒ}t d¡j|ddj}|j|d}t|ƒj|d}t d    ¡|     ¡|     ¡ks`t
‚W5QRX||ksvt
‚||  ¡ks†t
‚|j|djdd}t|ƒj|djdd}t d    ¡|     ¡|     ¡ksÒt
‚W5QRX||ksèt
‚||  ¡ksøt
‚dS)
NiàééruZCETF)Zis_dstr›rZ) rr`ÚtimezoneZlocalizerœr€r r<Ú set_timezoner)r(rƒ)rr,rœZ    result_dtZ    result_pdrrrÚtest_replace_tzinfoÆs     z)TestTimestampUnaryOps.test_replace_tzinfoz tz, normalizer/cCs |j |¡Sr&)rœÚ    normalize©ÚxrrrÚ<lambda>ãózTestTimestampUnaryOps.<lambda>cCs|Sr&rr¥rrrr§är¨cCsdtdƒ}t ||¡}|||ƒks$t‚|jdd}|j|jf|j|jfksLt‚||ƒ}||ks`t‚dS)Nz2017-12-03 16:03:30é)r‘)r r Zlocalize_pydatetimer(r€r‡r“)rr1r¤Zts_naiveZts_awareZts2Zts2brrrÚtest_replace_across_dstàs
  z-TestTimestampUnaryOps.test_replace_across_dstcCsVtddd |¡}|jdd}tddd}||ks6t‚|jttd|›ƒjksRt‚dS)Nz    2013-11-3rbr0rŸr†z2013-11-3 03:00:00r\)r rTr€r(rUrFrr_)rrSÚtr-r+rrrÚtest_replace_dst_borderús
   z-TestTimestampUnaryOps.test_replace_dst_borderÚfoldrr1zdateutil/Europe/Londonz Europe/LondoncCs|tdddddƒ}t||d |¡}|jd|d}ttdddddƒƒj|| d    }||ks\t‚|jttd
|›ƒj    ksxt‚dS) Niãé
r rdér0ru)r‡r­r[r\)
rr rTr€rr(rUrFrr_)rr­r1rSÚdrr-r+rrrÚtest_replace_dst_foldsÿ z+TestTimestampUnaryOps.test_replace_dst_foldÚargú
2013-11-30z2013-11-30 12:00:00cCsV|}t||d |¡}| ¡}td|d}||ks6t‚|jttd|›ƒjksRt‚dS)Nr0r³r\)r rTr¤r(rUrFrr_)rZtz_naive_fixturer²rSr1rr-r+rrrÚtest_normalizes   z$TestTimestampUnaryOps.test_normalizecCs$tdƒ ¡}tdƒ}||ks t‚dS)Nz1969-01-01 09:00:00z1969-01-01 00:00:00)r r¤r()rr-r+rrrÚtest_normalize_pre_epoch_datess z4TestTimestampUnaryOps.test_normalize_pre_epoch_datesc    Cs„|}|jtd}| ¡| ¡ks$t‚tddd}| d¡}| ¡| ¡ksNt‚t d¡"| ¡}| ¡| ¡ksvt‚W5QRXdS)Nr›z2014-10-11 11:00:01.12345678z
US/Centralr0rZ)    r€rr)r(r r^r<r¢rƒ)rZ fixed_now_tsrZutsZtscZutscr,rrrÚtest_timestamp&s  
 z$TestTimestampUnaryOps.test_timestampN)6Ú__name__Ú
__module__Ú __qualname__rrÚmarkÚ parametrizer.r4r5r;r=r?rJrRrWrXrarcrhrrZxfailrÚstZintegersr rZi8maxr rrArCr}rr„rŠrrr–r™ršržÚtdZskip_if_windowsr£r`r¡rrªr¬r±r´rµr¶rrrrrsùþ
 
îþ
úþ 
 
 
 
þ ýþ
þ úþ îþ ÿ6 
    
þþ
 
 rr­ruc    Cs<tdƒ}tddddd||d}|jdd    }|j|ks8t‚dS)
Nz Europe/MoscowiÙr®érdr¯)rr‘r’r‡r“r­rœru)r”)rr r€r­r()r­r1rZ ts_replacedrrrÚtest_replace_preserves_fold;s r¿)%rZ dateutil.tzrZ
hypothesisrrr¼Únumpyrwrr`rZ pandas._libsrZpandas._libs.tslibsrr    r
r r r rZpandas._libs.tslibs.dtypesrZpandas._libs.tslibs.periodrZpandas.util._test_decoratorsÚutilZ_test_decoratorsr½Zpandas._testingZ_testingr<rrºr»r¿rrrrÚ<module>s&    $       !