From cba9d74bec5722db9079ecb8b5d4fc4bcb757a54 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Fri, 8 Nov 2019 23:48:42 +0100 Subject: Fix incorrect LocalTime strings when timezone is behind UTC and not an integer number of hours. --- test/local_time_test.cc | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'test') diff --git a/test/local_time_test.cc b/test/local_time_test.cc index 5b954e2f..b43b1cf3 100644 --- a/test/local_time_test.cc +++ b/test/local_time_test.cc @@ -56,7 +56,7 @@ BOOST_AUTO_TEST_CASE (local_time_test) BOOST_CHECK_EQUAL (t._minute, 6); BOOST_CHECK_EQUAL (t._second, 59); BOOST_CHECK_EQUAL (t._tz_hour, -9); - BOOST_CHECK_EQUAL (t._tz_minute, 30); + BOOST_CHECK_EQUAL (t._tz_minute, -30); BOOST_CHECK_EQUAL (t.as_string(), "2011-11-20T01:06:59-09:30"); } @@ -70,7 +70,7 @@ BOOST_AUTO_TEST_CASE (local_time_test) BOOST_CHECK_EQUAL (t._second, 59); BOOST_CHECK_EQUAL (t._millisecond, 456); BOOST_CHECK_EQUAL (t._tz_hour, -9); - BOOST_CHECK_EQUAL (t._tz_minute, 30); + BOOST_CHECK_EQUAL (t._tz_minute, -30); BOOST_CHECK_EQUAL (t.as_string(true), "2011-11-20T01:06:59.456-09:30"); } @@ -109,4 +109,20 @@ BOOST_AUTO_TEST_CASE (local_time_test) BOOST_CHECK_EQUAL (b._tz_hour, 0); BOOST_CHECK_EQUAL (b._tz_minute, 0); } + + /* Check negative times with non-zero timezone offset minutes */ + { + dcp::LocalTime t ("2013-01-05T18:06:59-04:30"); + 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_EQUAL (t._tz_hour, -4); + BOOST_CHECK_EQUAL (t._tz_minute, -30); + BOOST_CHECK_EQUAL (t.as_string(), "2013-01-05T18:06:59-04:30"); + } + + } -- cgit v1.2.3