2 from pybind11_tests
import chrono
as m
12 date0 = datetime.datetime.today()
13 date1 = m.test_chrono1()
14 date2 = datetime.datetime.today()
20 diff_python =
abs(date2 - date0)
21 diff =
abs(date1 - date2)
28 assert diff.seconds <= diff_python.seconds
32 date1 = datetime.datetime.today()
35 date2 = m.test_chrono2(date1)
41 diff =
abs(date1 - date2)
43 assert diff.seconds == 0
44 assert diff.microseconds == 0
48 date1 = datetime.date.today()
51 datetime2 = m.test_chrono2(date1)
52 date2 = datetime2.date()
53 time2 = datetime2.time()
56 assert isinstance(datetime2, datetime.datetime)
61 diff =
abs(date1 - date2)
63 assert diff.seconds == 0
64 assert diff.microseconds == 0
67 assert date1.year == date2.year
68 assert date1.month == date2.month
69 assert date1.day == date2.day
72 assert time2.hour == 0
73 assert time2.minute == 0
74 assert time2.second == 0
75 assert time2.microsecond == 0
78 SKIP_TZ_ENV_ON_WIN = pytest.mark.skipif(
79 "env.WIN", reason=
"TZ environment variable only supported on POSIX"
83 @pytest.mark.parametrize(
86 datetime.datetime.today().time(),
87 datetime.time(0, 0, 0),
88 datetime.time(0, 0, 0, 1),
89 datetime.time(0, 28, 45, 109827),
90 datetime.time(0, 59, 59, 999999),
91 datetime.time(1, 0, 0),
92 datetime.time(5, 59, 59, 0),
93 datetime.time(5, 59, 59, 1),
96 @pytest.mark.parametrize(
100 pytest.param(
"Europe/Brussels", marks=SKIP_TZ_ENV_ON_WIN),
101 pytest.param(
"Asia/Pyongyang", marks=SKIP_TZ_ENV_ON_WIN),
102 pytest.param(
"America/New_York", marks=SKIP_TZ_ENV_ON_WIN),
107 monkeypatch.setenv(
"TZ",
"/usr/share/zoneinfo/{}".format(tz))
110 datetime2 = m.test_chrono2(time1)
111 date2 = datetime2.date()
112 time2 = datetime2.time()
115 assert isinstance(datetime2, datetime.datetime)
120 assert time1.hour == time2.hour
121 assert time1.minute == time2.minute
122 assert time1.second == time2.second
123 assert time1.microsecond == time2.microsecond
126 assert date2.year == 1970
127 assert date2.month == 1
128 assert date2.day == 1
134 date1 = datetime.datetime.today()
135 date2 = datetime.datetime.today()
141 cpp_diff = m.test_chrono3(diff)
143 assert cpp_diff.days == diff.days
144 assert cpp_diff.seconds == diff.seconds
145 assert cpp_diff.microseconds == diff.microseconds
150 date1 = datetime.datetime.today()
151 date2 = datetime.datetime.today()
154 cpp_diff = m.test_chrono4(date2, date1)
156 assert cpp_diff.days == diff.days
157 assert cpp_diff.seconds == diff.seconds
158 assert cpp_diff.microseconds == diff.microseconds
163 date1 = datetime.date.today()
164 date2 = datetime.date.today()
167 cpp_diff = m.test_chrono4(date2, date1)
169 assert cpp_diff.days == diff.days
170 assert cpp_diff.seconds == diff.seconds
171 assert cpp_diff.microseconds == diff.microseconds
175 time1 = m.test_chrono5()
180 time1 = datetime.timedelta(days=10, seconds=10, microseconds=100)
181 time2 = m.test_chrono6(time1)
186 assert time1.days == time2.days
187 assert time1.seconds == time2.seconds
188 assert time1.microseconds == time2.microseconds
193 time = m.test_chrono7(35.525123)
197 assert time.seconds == 35
198 assert 525122 <= time.microseconds <= 525123
200 diff = m.test_chrono_float_diff(43.789012, 1.123456)
201 assert diff.seconds == 42
202 assert 665556 <= diff.microseconds <= 665557
206 time = datetime.datetime.now()
207 time1 = m.test_nano_timepoint(time, datetime.timedelta(seconds=60))
208 assert time1 == time + datetime.timedelta(seconds=60)
212 resolutions = m.different_resolutions()
213 time = datetime.datetime.now()
214 resolutions.timestamp_h = time
215 resolutions.timestamp_m = time
216 resolutions.timestamp_s = time
217 resolutions.timestamp_ms = time
218 resolutions.timestamp_us = time