From d0ed9dd836b270d6bf75b302535de0f0f8f376e5 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 12 May 2020 12:35:41 +0200 Subject: Add a proper implementation of add_months() and a test for the case when it fails by giving erroneous dates like 30th February. --- test/util_test.cc | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) (limited to 'test') diff --git a/test/util_test.cc b/test/util_test.cc index a537909d..047f7fa1 100644 --- a/test/util_test.cc +++ b/test/util_test.cc @@ -277,19 +277,27 @@ BOOST_AUTO_TEST_CASE (unique_string_test) BOOST_AUTO_TEST_CASE (local_time_add_months_test) { - dcp::LocalTime t("2013-06-23T18:06:59.123"); - t.add_months(-1); - BOOST_CHECK_EQUAL (t, dcp::LocalTime("2013-05-23T18:06:59.123")); - t.add_months(1); - BOOST_CHECK_EQUAL (t, dcp::LocalTime("2013-06-23T18:06:59.123")); - t.add_months(1); - BOOST_CHECK_EQUAL (t, dcp::LocalTime("2013-07-23T18:06:59.123")); - t.add_months(4); - BOOST_CHECK_EQUAL (t, dcp::LocalTime("2013-11-23T18:06:59.123")); - t.add_months(2); - BOOST_CHECK_EQUAL (t, dcp::LocalTime("2014-01-23T18:06:59.123")); - t.add_months(-14); - BOOST_CHECK_EQUAL (t, dcp::LocalTime("2012-11-23T18:06:59.123")); - t.add_months(14); - BOOST_CHECK_EQUAL (t, dcp::LocalTime("2014-01-23T18:06:59.123")); + { + dcp::LocalTime t("2013-06-23T18:06:59.123"); + t.add_months(-1); + BOOST_CHECK_EQUAL (t, dcp::LocalTime("2013-05-23T18:06:59.123")); + t.add_months(1); + BOOST_CHECK_EQUAL (t, dcp::LocalTime("2013-06-23T18:06:59.123")); + t.add_months(1); + BOOST_CHECK_EQUAL (t, dcp::LocalTime("2013-07-23T18:06:59.123")); + t.add_months(4); + BOOST_CHECK_EQUAL (t, dcp::LocalTime("2013-11-23T18:06:59.123")); + t.add_months(2); + BOOST_CHECK_EQUAL (t, dcp::LocalTime("2014-01-23T18:06:59.123")); + t.add_months(-14); + BOOST_CHECK_EQUAL (t, dcp::LocalTime("2012-11-23T18:06:59.123")); + t.add_months(14); + BOOST_CHECK_EQUAL (t, dcp::LocalTime("2014-01-23T18:06:59.123")); + } + + { + dcp::LocalTime t("2018-01-30T11:00:00+01:00"); + t.add_months (1); + BOOST_CHECK_EQUAL (t.as_string(), "2018-02-28T11:00:00+01:00"); + } } -- cgit v1.2.3