diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:45:59 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 18:45:59 +0000 |
commit | 19fcec84d8d7d21e796c7624e521b60d28ee21ed (patch) | |
tree | 42d26aa27d1e3f7c0b8bd3fd14e7d7082f5008dc /src/boost/libs/date_time/test/gregorian/testdate_duration.cpp | |
parent | Initial commit. (diff) | |
download | ceph-19fcec84d8d7d21e796c7624e521b60d28ee21ed.tar.xz ceph-19fcec84d8d7d21e796c7624e521b60d28ee21ed.zip |
Adding upstream version 16.2.11+ds.upstream/16.2.11+dsupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/boost/libs/date_time/test/gregorian/testdate_duration.cpp')
-rw-r--r-- | src/boost/libs/date_time/test/gregorian/testdate_duration.cpp | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/src/boost/libs/date_time/test/gregorian/testdate_duration.cpp b/src/boost/libs/date_time/test/gregorian/testdate_duration.cpp new file mode 100644 index 000000000..12bee2dbb --- /dev/null +++ b/src/boost/libs/date_time/test/gregorian/testdate_duration.cpp @@ -0,0 +1,77 @@ +/* Copyright (c) 2002,2003 CrystalClear Software, Inc. + * Use, modification and distribution is subject to the + * Boost Software License, Version 1.0. (See accompanying + * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) + * Author: Jeff Garland, Bart Garst + */ + +#include "boost/date_time/gregorian/gregorian.hpp" +#include "../testfrmwk.hpp" +#include <iostream> + + +void test_date_duration() +{ + using namespace boost::gregorian; + + date_duration threeDays(3); + date_duration twoDays(2); + //date_duration zeroDays(0); + check("Self equal case", threeDays == threeDays); + check("Not equal case", !(threeDays == twoDays)); + check("Less case succeed", twoDays < threeDays); + check("Not less case", !(threeDays < twoDays)); + check("Not less case - equal", !(threeDays < threeDays)); + check("Greater than ", !(threeDays > threeDays)); + check("Greater equal ", threeDays >= threeDays); + check("Greater equal - false", !(twoDays >= threeDays)); + check("add", twoDays + threeDays == date_duration(5)); + date_duration fiveDays = threeDays; + fiveDays += twoDays; + check("add", fiveDays == date_duration(5)); + date_duration tenDays = fiveDays; + tenDays += date_duration(5); + check("add", tenDays.days() == 10); + + date_duration derivedOneDay = threeDays - twoDays; + check("Subtraction - neg result", twoDays - threeDays == date_duration(-1)); + date_duration oneDay(1); + check("Subtraction", oneDay == derivedOneDay); + date_duration fiveDaysDerived = tenDays; + fiveDaysDerived -= fiveDays; + check("Subtraction", fiveDaysDerived == fiveDays); + + oneDay = twoDays / 2; + check("Division", oneDay.days() == 1); + date_duration oneDayDivide = threeDays / 2; + check("Division", oneDayDivide.days() == 1); + date_duration hundred(100); + hundred /= -10; + check("Division", hundred.days() == -10 && hundred.is_negative()); + + date_duration pos_dur(123); + date_duration neg_dur(-pos_dur); + check("unary-", neg_dur.days() == -123); + + // special values tests + date_duration pi_dur(pos_infin); + date_duration ni_dur(neg_infin); + date_duration nd_dur(not_a_date_time); + check("pos_inf + neg_inf", (pi_dur + ni_dur) == nd_dur); + //check("inf * integer", (pi_dur * 2) == pi_dur); // not implemented + check("neg_inf / integer", (ni_dur / 3) == ni_dur); + check("inf + dur", (pi_dur + hundred) == pi_dur); + check("unary-", date_duration(-pi_dur) == ni_dur); + +// date_duration dd(1); +// dd++; +// check("Increment", dd == twoDays); + +} + +int main() { + test_date_duration(); + return printTestStats(); + +} + |