summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2023-08-15 12:28:21 +0200
committerCarl Hetherington <cth@carlh.net>2023-08-15 12:28:21 +0200
commit545e3f54b104364b316318876a3d4e515de758b1 (patch)
tree514fb50451df0a1c882b10f347de1aec89a1a232 /test
parent4dca630057509164494b65c2deeb748a51928c73 (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.cc26
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);