86a65b062a
[SVN r49946]
86 lines
2.4 KiB
C++
86 lines
2.4 KiB
C++
/* 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 "boost/date_time/posix_time/posix_time.hpp"
|
|
#include "../testfrmwk.hpp"
|
|
|
|
|
|
int main(){
|
|
|
|
#if !defined(BOOST_DATE_TIME_OPTIONAL_GREGORIAN_TYPES)
|
|
// do not set this test to return fail -
|
|
// this is not necessarily a compiler problem
|
|
check("Optional gregorian types not selected - no tests run", true);
|
|
#else
|
|
|
|
using namespace boost::gregorian;
|
|
using namespace boost::posix_time;
|
|
|
|
|
|
/*** months ***/
|
|
{
|
|
ptime p(date(2001, Oct, 31), hours(5));
|
|
check("ptime + months",
|
|
ptime(date(2002, Feb, 28), hours(5)) == p + months(4));
|
|
p += months(4);
|
|
check("ptime += months",
|
|
ptime(date(2002, Feb, 28), hours(5)) == p);
|
|
}
|
|
{
|
|
ptime p(date(2001, Oct, 31), hours(5));
|
|
check("ptime - months",
|
|
ptime(date(2001, Apr, 30), hours(5)) == p - months(6));
|
|
p -= months(6);
|
|
check("ptime -= months",
|
|
ptime(date(2001, Apr, 30), hours(5)) == p);
|
|
}
|
|
|
|
/*** years ***/
|
|
{
|
|
ptime p(date(2001, Feb, 28), hours(5));
|
|
check("ptime + years",
|
|
ptime(date(2004, Feb, 29), hours(5)) == p + years(3));
|
|
p += years(3);
|
|
check("ptime += years",
|
|
ptime(date(2004, Feb, 29), hours(5)) == p);
|
|
}
|
|
{
|
|
ptime p(date(2000, Feb, 29), hours(5));
|
|
check("ptime - years",
|
|
ptime(date(1998, Feb, 28), hours(5)) == p - years(2));
|
|
p -= years(2);
|
|
check("ptime -= years",
|
|
ptime(date(1998, Feb, 28), hours(5)) == p);
|
|
}
|
|
|
|
|
|
/*** weeks ***/
|
|
// shouldn't need many tests, it is nothing more than a date_duration
|
|
// so all date_duration tests should prove this class
|
|
{
|
|
ptime p(date(2001, Feb, 28), hours(5));
|
|
check("ptime + weeks",
|
|
ptime(date(2001, Mar, 21), hours(5)) == p + weeks(3));
|
|
p += weeks(3);
|
|
check("ptime += weeks",
|
|
ptime(date(2001, Mar, 21), hours(5)) == p);
|
|
}
|
|
{
|
|
ptime p(date(2001, Feb, 28), hours(5));
|
|
check("ptime - weeks",
|
|
ptime(date(2001, Feb, 14), hours(5)) == p - weeks(2));
|
|
p -= weeks(2);
|
|
check("ptime -= weeks",
|
|
ptime(date(2001, Feb, 14), hours(5)) == p);
|
|
}
|
|
|
|
#endif // BOOST_DATE_TIME_OPTIONAL_GREGORIAN_TYPES
|
|
|
|
return printTestStats();
|
|
}
|