diff options
| author | Carl Hetherington <cth@carlh.net> | 2023-08-15 12:28:21 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2023-08-15 12:28:21 +0200 |
| commit | 545e3f54b104364b316318876a3d4e515de758b1 (patch) | |
| tree | 514fb50451df0a1c882b10f347de1aec89a1a232 /test | |
| parent | 4dca630057509164494b65c2deeb748a51928c73 (diff) | |
Fix dcp::LocalTime constructor to cope with longer fractional second parts (DoM #2597).
Diffstat (limited to 'test')
| -rw-r--r-- | test/local_time_test.cc | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/test/local_time_test.cc b/test/local_time_test.cc index 8aedd47b..f7f5b133 100644 --- a/test/local_time_test.cc +++ b/test/local_time_test.cc @@ -51,6 +51,18 @@ BOOST_AUTO_TEST_CASE (local_time_basic_test) /* Correctly-formatted */ { + dcp::LocalTime t("2013-01-05T18:06:59"); + BOOST_CHECK_EQUAL(t._year, 2013); + BOOST_CHECK_EQUAL(t._month, 1); + BOOST_CHECK_EQUAL(t._day, 5); + BOOST_CHECK_EQUAL(t._hour, 18); + BOOST_CHECK_EQUAL(t._minute, 6); + BOOST_CHECK_EQUAL(t._second, 59); + BOOST_CHECK(t._offset == dcp::UTCOffset(0, 0)); + BOOST_CHECK_EQUAL(t.as_string(), "2013-01-05T18:06:59+00:00"); + } + + { dcp::LocalTime t ("2013-01-05T18:06:59+04:00"); BOOST_CHECK_EQUAL (t._year, 2013); BOOST_CHECK_EQUAL (t._month, 1); @@ -114,6 +126,20 @@ BOOST_AUTO_TEST_CASE (local_time_basic_test) } { + dcp::LocalTime t("2011-11-20T01:06:59.45678901-09:30"); + BOOST_CHECK_EQUAL(t._year, 2011); + BOOST_CHECK_EQUAL(t._month, 11); + BOOST_CHECK_EQUAL(t._day, 20); + BOOST_CHECK_EQUAL(t._hour, 1); + BOOST_CHECK_EQUAL(t._minute, 6); + BOOST_CHECK_EQUAL(t._second, 59); + /* The fractional seconds here is truncated rather than rounded, for better or worse */ + BOOST_CHECK_EQUAL(t._millisecond, 456); + BOOST_CHECK(t._offset == dcp::UTCOffset(-9, -30)); + BOOST_CHECK_EQUAL(t.as_string(false, false), "2011-11-20T01:06:59"); + } + + { /* Construction from boost::posix_time::ptime */ dcp::LocalTime b (boost::posix_time::time_from_string ("2002-01-20 19:03:56")); BOOST_CHECK_EQUAL (b._year, 2002); |
