|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r53528 - in trunk/libs/date_time/test: gregorian posix_time
From: andrey.semashev_at_[hidden]
Date: 2009-06-01 05:02:45
Author: andysem
Date: 2009-06-01 05:02:43 EDT (Mon, 01 Jun 2009)
New Revision: 53528
URL: http://svn.boost.org/trac/boost/changeset/53528
Log:
Improved diagnostics in case of test failure.
Text files modified:
trunk/libs/date_time/test/gregorian/testdate_facet_new.cpp | 16 +-
trunk/libs/date_time/test/gregorian/testdate_input_facet.cpp | 260 ++++++++++++++++++++--------------------
trunk/libs/date_time/test/gregorian/testformat_date_parser.cpp | 30 ++--
trunk/libs/date_time/test/posix_time/testtime_input_facet.cpp | 124 +++++++++---------
4 files changed, 213 insertions(+), 217 deletions(-)
Modified: trunk/libs/date_time/test/gregorian/testdate_facet_new.cpp
==============================================================================
--- trunk/libs/date_time/test/gregorian/testdate_facet_new.cpp (original)
+++ trunk/libs/date_time/test/gregorian/testdate_facet_new.cpp 2009-06-01 05:02:43 EDT (Mon, 01 Jun 2009)
@@ -17,8 +17,8 @@
template<class temporal_type, typename charT>
inline
-void
-teststreaming(std::string testname,
+void
+teststreaming(std::string testname,
temporal_type value,
std::basic_string<charT> expected_result,
const std::locale& locale = std::locale::classic())
@@ -26,7 +26,7 @@
std::basic_stringstream<charT> ss;
ss.imbue(locale);
ss << value;
- check(testname, ss.str() == expected_result);
+ check_equal(testname, ss.str(), expected_result);
}
@@ -76,20 +76,20 @@
int main() {
using namespace boost::gregorian;
-
- std::copy(&month_short_names[0],
+
+ std::copy(&month_short_names[0],
&month_short_names[12],
std::back_inserter(short_month_names));
- std::copy(&month_long_names[0],
+ std::copy(&month_long_names[0],
&month_long_names[12],
std::back_inserter(long_month_names));
- std::copy(&weekday_short_names[0],
+ std::copy(&weekday_short_names[0],
&weekday_short_names[7],
std::back_inserter(short_weekday_names));
- std::copy(&weekday_long_names[0],
+ std::copy(&weekday_long_names[0],
&weekday_long_names[7],
std::back_inserter(long_weekday_names));
Modified: trunk/libs/date_time/test/gregorian/testdate_input_facet.cpp
==============================================================================
--- trunk/libs/date_time/test/gregorian/testdate_input_facet.cpp (original)
+++ trunk/libs/date_time/test/gregorian/testdate_input_facet.cpp 2009-06-01 05:02:43 EDT (Mon, 01 Jun 2009)
@@ -100,17 +100,17 @@
// default format tests: date, days, month, weekday, day, year
std::istringstream iss("2005-Jan-15 21 Feb Tue 4 2002");
iss >> d;
- check("Default format date", d == date(2005,Jan,15));
+ check_equal("Default format date", d, date(2005,Jan,15));
iss >> dd;
- check("Default (only) format positive days", dd == days(21));
+ check_equal("Default (only) format positive days", dd, days(21));
iss >> m;
- check("Default format month", m == greg_month(2));
+ check_equal("Default format month", m, greg_month(2));
iss >> gw;
- check("Default format weekday", gw == greg_weekday(2));
+ check_equal("Default format weekday", gw, greg_weekday(2));
iss >> gd;
- check("Default (only) format day of month", gd == greg_day(4));
+ check_equal("Default (only) format day of month", gd, greg_day(4));
iss >> gy;
- check("Default format year", gy == greg_year(2002));
+ check_equal("Default format year", gy, greg_year(2002));
// failure tests
check("Input Misspelled in year (date) w/exceptions",
failure_test(d, "205-Jan-15", e_bad_year, new date_input_facet()));
@@ -151,15 +151,15 @@
iss.imbue(std::locale(std::locale::classic(), facet));
iss >> d;
- check("ISO format date", d == date(2005,Jan,15));
+ check_equal("ISO format date", d, date(2005,Jan,15));
iss >> dd;
- check("Default (only) format negative days", dd == days(-55));
+ check_equal("Default (only) format negative days", dd, days(-55));
iss >> m;
- check("Full format month", m == greg_month(2));
+ check_equal("Full format month", m, greg_month(2));
iss >> gw;
- check("Full format weekday", gw == greg_weekday(2));
+ check_equal("Full format weekday", gw, greg_weekday(2));
iss >> gy;
- check("2 digit format year", gy == greg_year(2002));
+ check_equal("2 digit format year", gy, greg_year(2002));
date_input_facet* f1 = new date_input_facet();
date_input_facet* f2 = new date_input_facet();
@@ -177,41 +177,41 @@
date_input_facet* f = new date_input_facet("%%d %Y-%b-%d");
std::stringstream ss;
ss.imbue(std::locale(ss.getloc(), f));
-
+
ss.str("%d 2005-Jun-14");
ss >> d;
- check("Literal '%' in date format", d == date(2005,Jun,14));
+ check_equal("Literal '%' in date format", d, date(2005,Jun,14));
f->format("%%%d %Y-%b-%d");
ss.str("%14 2005-Jun-14");
ss >> d;
- check("Multiple literal '%'s in date format", d == date(2005,Jun,14));
-
+ check_equal("Multiple literal '%'s in date format", d, date(2005,Jun,14));
+
f->month_format("%%b %b");
ss.str("%b Jun");
ss >> m;
- check("Literal '%' in month format", m == greg_month(6));
+ check_equal("Literal '%' in month format", m, greg_month(6));
f->month_format("%%%b");
ss.str("%Jun");
ss >> m;
- check("Multiple literal '%'s in month format", m == greg_month(6));
-
+ check_equal("Multiple literal '%'s in month format", m, greg_month(6));
+
f->weekday_format("%%a %a");
ss.str("%a Tue");
ss >> gw;
- check("Literal '%' in weekday format", gw == greg_weekday(2));
+ check_equal("Literal '%' in weekday format", gw, greg_weekday(2));
f->weekday_format("%%%a");
ss.str("%Tue");
ss >> gw;
- check("Multiple literal '%'s in weekday format", gw == greg_weekday(2));
-
+ check_equal("Multiple literal '%'s in weekday format", gw, greg_weekday(2));
+
f->year_format("%%Y %Y");
ss.str("%Y 2005");
ss >> y;
- check("Literal '%' in year format", y == greg_year(2005));
+ check_equal("Literal '%' in year format", y, greg_year(2005));
f->year_format("%%%Y");
ss.str("%2005");
ss >> y;
- check("Multiple literal '%'s in year format", y == greg_year(2005));
+ check_equal("Multiple literal '%'s in year format", y, greg_year(2005));
}
// All days, month, weekday, day, and year formats have been tested
@@ -219,22 +219,22 @@
facet->set_iso_extended_format();
iss.str("2005-01-15");
iss >> d;
- check("ISO Extended format date", d == date(2005,Jan,15));
+ check_equal("ISO Extended format date", d, date(2005,Jan,15));
facet->format("%B %d, %Y");
iss.str("March 15, 2006");
iss >> d;
- check("Custom date format: \"%B %d, %Y\" => 'March 15, 2006'",
- d == date(2006,Mar,15));
+ check_equal("Custom date format: \"%B %d, %Y\" => 'March 15, 2006'",
+ d, date(2006,Mar,15));
facet->format("%Y-%j"); // Ordinal format ISO8601(2000 sect 5.2.2.1 extended)
iss.str("2006-074");
iss >> d;
- check("Custom date format: \"%Y-%j\" => '2006-074'",
- d == date(2006,Mar,15));
- check("Bad input Custom date format: \"%Y-%j\" => '2006-74' (w/exceptions)",
+ check_equal("Custom date format: \"%Y-%j\" => '2006-074'",
+ d, date(2006,Mar,15));
+ check("Bad input Custom date format: \"%Y-%j\" => '2006-74' (w/exceptions)",
failure_test(d, "2006-74", e_bad_day_of_year, facet));
- check("Bad input Custom date format: \"%Y-%j\" => '2006-74' (no exceptions)",
+ check("Bad input Custom date format: \"%Y-%j\" => '2006-74' (no exceptions)",
failure_test(d, "2006-74", facet));
// date_period tests
@@ -250,7 +250,7 @@
iss.str("[2002-07-04/2002-07-24]");
facet->set_iso_extended_format();
iss >> dp;
- check("Default period (closed range)", dp == date_period(begin,len));
+ check_equal("Default period (closed range)", dp, date_period(begin,len));
{
std::stringstream ss;
date d(not_a_date_time);
@@ -262,32 +262,32 @@
date_period dp3(d3, d4);
ss << dp;
ss >> dp2;
- check("Special values period (reversibility test)", dp == dp2);
+ check_equal("Special values period (reversibility test)", dp, dp2);
ss.str("[-infinity/+infinity]");
ss >> dp2;
- check("Special values period (infinities)", dp3 == dp2);
+ check_equal("Special values period (infinities)", dp3, dp2);
}
-
+
// open range
period_parser pp(period_parser::AS_OPEN_RANGE);
iss.str("[2002-07-04/2002-07-25)");
facet->period_parser(pp);
iss >> dp;
- check("Open range period", dp == date_period(begin,len));
+ check_equal("Open range period", dp, date_period(begin,len));
// custom period delimiters
pp.delimiter_strings(" to ", "from ", " exclusive", " inclusive");
iss.str("from 2002-07-04 to 2002-07-25 exclusive");
facet->period_parser(pp);
iss >> dp;
- check("Open range period - custom delimiters", dp == date_period(begin,len));
+ check_equal("Open range period - custom delimiters", dp, date_period(begin,len));
pp.range_option(period_parser::AS_CLOSED_RANGE);
iss.str("from 2002-07-04 to 2002-07-24 inclusive");
facet->period_parser(pp);
iss >> dp;
- check("Closed range period - custom delimiters", dp == date_period(begin,len));
+ check_equal("Closed range period - custom delimiters", dp, date_period(begin,len));
+
-
// date_generator tests
// date_generators use formats contained in the
@@ -304,30 +304,30 @@
first_kday_after fka(Sunday);
// using default date_generator_parser "nth_strings"
iss.str("29 Feb");
- iss >> pd;
+ iss >> pd;
// Feb-29 is a valid date_generator, get_date() will fail in a non-leap year
- check("Default strings, partial_date",
- pd.get_date(2004) == date(2004,Feb,29));
+ check_equal("Default strings, partial_date",
+ pd.get_date(2004), date(2004,Feb,29));
iss.str("second Mon of Mar");
iss >> nkd;
- check("Default strings, nth_day_of_the_week_in_month",
- nkd.get_date(2004) == date(2004,Mar,8));
+ check_equal("Default strings, nth_day_of_the_week_in_month",
+ nkd.get_date(2004), date(2004,Mar,8));
iss.str("first Tue of Apr");
- iss >> fkd;
- check("Default strings, first_day_of_the_week_in_month",
- fkd.get_date(2004) == date(2004,Apr,6));
+ iss >> fkd;
+ check_equal("Default strings, first_day_of_the_week_in_month",
+ fkd.get_date(2004), date(2004,Apr,6));
iss.str("last Wed of May");
- iss >> lkd;
- check("Default strings, last_day_of_the_week_in_month",
- lkd.get_date(2004) == date(2004,May,26));
+ iss >> lkd;
+ check_equal("Default strings, last_day_of_the_week_in_month",
+ lkd.get_date(2004), date(2004,May,26));
iss.str("Thu before");
- iss >> fkb;
- check("Default strings, first_day_of_the_week_before",
- fkb.get_date(date(2004,Feb,8)) == date(2004,Feb,5));
+ iss >> fkb;
+ check_equal("Default strings, first_day_of_the_week_before",
+ fkb.get_date(date(2004,Feb,8)), date(2004,Feb,5));
iss.str("Fri after");
- iss >> fka;
- check("Default strings, first_day_of_the_week_after",
- fka.get_date(date(2004,Feb,1)) == date(2004,Feb,6));
+ iss >> fka;
+ check_equal("Default strings, first_day_of_the_week_after",
+ fka.get_date(date(2004,Feb,1)), date(2004,Feb,6));
// failure tests
check("Incorrect elements (date_generator) w/exceptions", // after/before type mixup
failure_test(fkb, "Fri after", e_failure, new date_input_facet()));
@@ -337,73 +337,73 @@
failure_test(lkd, "first Tue of Apr", e_failure, new date_input_facet()));
check("Incorrect elements (date_generator) no exceptions", // first/last type mixup
failure_test(lkd, "first Tue of Apr", new date_input_facet()));
- check("Incorrect elements (date_generator) w/exceptions", // 'in' is wrong
+ check("Incorrect elements (date_generator) w/exceptions", // 'in' is wrong
failure_test(nkd, "second Mon in Mar", e_failure, new date_input_facet()));
- check("Incorrect elements (date_generator) no exceptions", // 'in' is wrong
+ check("Incorrect elements (date_generator) no exceptions", // 'in' is wrong
failure_test(nkd, "second Mon in Mar", new date_input_facet()));
// date_generators - custom element strings
facet->date_gen_element_strings("1st","2nd","3rd","4th","5th","final","prior to","past","in");
iss.str("3rd Sat in Jul");
iss >> nkd;
- check("Custom strings, nth_day_of_the_week_in_month",
- nkd.get_date(2004) == date(2004,Jul,17));
+ check_equal("Custom strings, nth_day_of_the_week_in_month",
+ nkd.get_date(2004), date(2004,Jul,17));
iss.str("1st Wed in May");
- iss >> fkd;
- check("Custom strings, first_day_of_the_week_in_month",
- fkd.get_date(2004) == date(2004,May,5));
+ iss >> fkd;
+ check_equal("Custom strings, first_day_of_the_week_in_month",
+ fkd.get_date(2004), date(2004,May,5));
iss.str("final Tue in Apr");
- iss >> lkd;
- check("Custom strings, last_day_of_the_week_in_month",
- lkd.get_date(2004) == date(2004,Apr,27));
+ iss >> lkd;
+ check_equal("Custom strings, last_day_of_the_week_in_month",
+ lkd.get_date(2004), date(2004,Apr,27));
iss.str("Fri prior to");
- iss >> fkb;
- check("Custom strings, first_day_of_the_week_before",
- fkb.get_date(date(2004,Feb,8)) == date(2004,Feb,6));
+ iss >> fkb;
+ check_equal("Custom strings, first_day_of_the_week_before",
+ fkb.get_date(date(2004,Feb,8)), date(2004,Feb,6));
iss.str("Thu past");
- iss >> fka;
- check("Custom strings, first_day_of_the_week_after",
- fka.get_date(date(2004,Feb,1)) == date(2004,Feb,5));
+ iss >> fka;
+ check_equal("Custom strings, first_day_of_the_week_after",
+ fka.get_date(date(2004,Feb,1)), date(2004,Feb,5));
// date_generators - special case with empty element string
/* Doesn't work. Empty string returns -1 from string_parse_tree
* because it attempts to match the next set of characters in the
* stream to the wrong element. Ex. It attempts to match "Mar" to
* the 'of' element in the test below.
- *
+ *
facet->date_gen_element_strings("1st","2nd","3rd","4th","5th","final","prior to","past",""); // the 'of' string is an empty string
iss.str("final Mon Mar");
- iss >> lkd;
- check("Special case, empty element string",
- lkd.get_date(2005) == date(2005,Mar,28));
+ iss >> lkd;
+ check_equal("Special case, empty element string",
+ lkd.get_date(2005), date(2005,Mar,28));
*/
-
+
// special values tests (date and days only)
iss.str("minimum-date-time +infinity");
iss >> d;
iss >> dd;
- check("Special values, default strings, min_date_time date",
- d == date(min_date_time));
- check("Special values, default strings, pos_infin days",
- dd == days(pos_infin));
+ check_equal("Special values, default strings, min_date_time date",
+ d, date(min_date_time));
+ check_equal("Special values, default strings, pos_infin days",
+ dd, days(pos_infin));
iss.str("-infinity maximum-date-time");
iss >> d;
iss >> dd;
- check("Special values, default strings, neg_infin date",
- d == date(neg_infin));
- check("Special values, default strings, max_date_time days",
- dd == days(max_date_time));
+ check_equal("Special values, default strings, neg_infin date",
+ d, date(neg_infin));
+ check_equal("Special values, default strings, max_date_time days",
+ dd, days(max_date_time));
iss.str("not-a-date-time");
iss >> d;
- check("Special values, default strings, not_a_date_time date",
- d == date(not_a_date_time));
+ check_equal("Special values, default strings, not_a_date_time date",
+ d, date(not_a_date_time));
// in addition check that special_value_from_string also works correctly for other special values
- check("Special values, default strings, not_special test",
- special_value_from_string("not_special") == not_special);
- check("Special values, default strings, junk test",
- special_value_from_string("junk") == not_special);
+ check_equal("Special values, default strings, not_special test",
+ special_value_from_string("not_special"), not_special);
+ check_equal("Special values, default strings, junk test",
+ special_value_from_string("junk"), not_special);
// special values custom, strings
special_values_parser svp("NADT", "MINF", "INF", "MINDT", "MAXDT");
@@ -411,33 +411,33 @@
iss.str("MINDT INF");
iss >> d;
iss >> dd;
- check("Special values, custom strings, min_date_time date",
- d == date(min_date_time));
- check("Special values, custom strings, pos_infin days",
- dd == days(pos_infin));
+ check_equal("Special values, custom strings, min_date_time date",
+ d, date(min_date_time));
+ check_equal("Special values, custom strings, pos_infin days",
+ dd, days(pos_infin));
iss.str("MINF MAXDT");
iss >> d;
iss >> dd;
- check("Special values, custom strings, neg_infin date",
- d == date(neg_infin));
- check("Special values, custom strings, max_date_time days",
- dd == days(max_date_time));
+ check_equal("Special values, custom strings, neg_infin date",
+ d, date(neg_infin));
+ check_equal("Special values, custom strings, max_date_time days",
+ dd, days(max_date_time));
iss.str("NADT");
iss >> dd;
- check("Special values, custom strings, not_a_date_time days",
- dd == days(not_a_date_time));
+ check_equal("Special values, custom strings, not_a_date_time days",
+ dd, days(not_a_date_time));
// failure test
- check("Misspelled input, special_value date w/exceptions",
+ check("Misspelled input, special_value date w/exceptions",
failure_test(d, "NSDT", e_bad_year, new date_input_facet()));
- check("Misspelled input, special_value date no exceptions",
+ check("Misspelled input, special_value date no exceptions",
failure_test(d, "NSDT", new date_input_facet()));
- check("Misspelled input, special_value days w/exceptions",
+ check("Misspelled input, special_value days w/exceptions",
failure_test(dd, "NSDT", e_failure, new date_input_facet()));
- check("Misspelled input, special_value days no exceptions",
+ check("Misspelled input, special_value days no exceptions",
failure_test(dd, "NSDT", new date_input_facet()));
{
- // German names. Please excuse any errors, I don't speak German and
+ // German names. Please excuse any errors, I don't speak German and
// had to rely on an on-line translation service.
// These tests check one of each (at least) from all sets of custom strings
@@ -460,7 +460,7 @@
wkdays_abbrev.assign(w_a, w_a+7);
wkdays_full.assign(w_f, w_f+7);
date_parser d_parser("%B %d %Y",
- months_abbrev, months_full,
+ months_abbrev, months_full,
wkdays_abbrev, wkdays_full);
// create a special_values parser
@@ -478,7 +478,7 @@
"Fünft","Letzt","Vor","Nach","Von");
// create the date_input_facet
- date_input_facet* de_facet =
+ date_input_facet* de_facet =
new date_input_facet("%B %d %Y",
d_parser,
sv_parser,
@@ -490,25 +490,25 @@
iss.str("Juni 06 2005 Dez Wenigstes Datum Die");
iss >> d;
iss >> m;
- check("German names: date", d == date(2005, Jun, 6));
- check("German names: month", m == greg_month(Dec));
+ check_equal("German names: date", d, date(2005, Jun, 6));
+ check_equal("German names: month", m, greg_month(Dec));
iss >> d;
iss >> gw;
- check("German names: special value date", d == date(min_date_time));
- check("German names: short weekday", gw == greg_weekday(Tuesday));
+ check_equal("German names: special value date", d, date(min_date_time));
+ check_equal("German names: short weekday", gw, greg_weekday(Tuesday));
de_facet->weekday_format("%A"); // long weekday
// Tuesday, Second Tuesday of Mar
iss.str("Dienstag Zweitens Dienstag von Mar");
iss >> gw;
iss >> nkd;
- check("German names: long weekday", gw == greg_weekday(Tuesday));
- check("German names, nth_day_of_the_week_in_month",
- nkd.get_date(2005) == date(2005,Mar,8));
+ check_equal("German names: long weekday", gw, greg_weekday(Tuesday));
+ check_equal("German names, nth_day_of_the_week_in_month",
+ nkd.get_date(2005), date(2005,Mar,8));
// Tuesday after
iss.str("Dienstag Nach");
- iss >> fka;
- check("German names, first_day_of_the_week_after",
- fka.get_date(date(2005,Apr,5)) == date(2005,Apr,12));
+ iss >> fka;
+ check_equal("German names, first_day_of_the_week_after",
+ fka.get_date(date(2005,Apr,5)), date(2005,Apr,12));
}
{
@@ -525,25 +525,25 @@
"**October**","**November**","**December**"};
const char* const weekday_short_names[]={"day1", "day2","day3","day4",
"day5","day6","day7"};
- const char* const weekday_long_names[]= {"Sun-0", "Mon-1", "Tue-2",
- "Wed-3", "Thu-4",
+ const char* const weekday_long_names[]= {"Sun-0", "Mon-1", "Tue-2",
+ "Wed-3", "Thu-4",
"Fri-5", "Sat-6"};
std::vector<std::basic_string<char> > short_weekday_names;
std::vector<std::basic_string<char> > long_weekday_names;
std::vector<std::basic_string<char> > short_month_names;
std::vector<std::basic_string<char> > long_month_names;
-
- std::copy(&weekday_short_names[0],
+
+ std::copy(&weekday_short_names[0],
&weekday_short_names[7],
std::back_inserter(short_weekday_names));
- std::copy(&weekday_long_names[0],
+ std::copy(&weekday_long_names[0],
&weekday_long_names[7],
std::back_inserter(long_weekday_names));
- std::copy(&month_short_names[0],
+ std::copy(&month_short_names[0],
&month_short_names[12],
std::back_inserter(short_month_names));
- std::copy(&month_long_names[0],
+ std::copy(&month_long_names[0],
&month_long_names[12],
std::back_inserter(long_month_names));
@@ -558,20 +558,20 @@
facet->format("%a %b %d, %Y");
ss.str("day7 *apr* 23, 2005");
ss >> d;
- check("Short custom names, set via accessor function", d.day_of_week() == greg_weekday(6));
- check("Short custom names, set via accessor function", d.month() == greg_month(4));
+ check_equal("Short custom names, set via accessor function", d.day_of_week(), greg_weekday(6));
+ check_equal("Short custom names, set via accessor function", d.month(), greg_month(4));
ss.str("");
ss.str("Sun-0 **April** 24, 2005");
facet->format("%A %B %d, %Y");
ss >> d;
- check("Long custom names, set via accessor function", d.day_of_week() == greg_weekday(0));
- check("Long custom names, set via accessor function", d.month() == greg_month(4));
+ check_equal("Long custom names, set via accessor function", d.day_of_week(), greg_weekday(0));
+ check_equal("Long custom names, set via accessor function", d.month(), greg_month(4));
}
#else
- check("This test is a nop for platforms with USE_DATE_TIME_PRE_1_33_FACET_IO",
+ check("This test is a nop for platforms with USE_DATE_TIME_PRE_1_33_FACET_IO",
true);
#endif
return printTestStats();
}
-
+
Modified: trunk/libs/date_time/test/gregorian/testformat_date_parser.cpp
==============================================================================
--- trunk/libs/date_time/test/gregorian/testformat_date_parser.cpp (original)
+++ trunk/libs/date_time/test/gregorian/testformat_date_parser.cpp 2009-06-01 05:02:43 EDT (Mon, 01 Jun 2009)
@@ -66,7 +66,7 @@
void
wtest_format(const std::basic_string<wchar_t>& format,
const std::basic_string<wchar_t>& value,
- const std::string testname,
+ const std::string& testname,
boost::gregorian::date expected_res)
{
typedef boost::date_time::format_date_parser<date, wchar_t> parser_type;
@@ -75,19 +75,18 @@
try {
// string_type format(format);
std::basic_stringstream<wchar_t> ws;
- ws << value;
+ ws << value;
iter_type sitr(ws);
iter_type stream_end;
-
+
parser_type p(format, wshort_month_names, wlong_month_names,
wshort_week_names, wlong_week_names);
date d = p.parse_date(sitr, stream_end, format);
- check(testname, d == expected_res);
+ check_equal(testname, d, expected_res);
}
catch(std::exception& e) {
std::cout << "Got an exception: " << e.what() << std::endl;
check(testname, false);
-
}
}
@@ -95,7 +94,7 @@
void
test_format(const std::basic_string<char>& format,
const std::basic_string<char>& value,
- const std::string testname,
+ const std::string& testname,
boost::gregorian::date expected_res)
{
typedef boost::date_time::format_date_parser<date, char> parser_type;
@@ -107,16 +106,15 @@
ws << value;
iter_type sitr(ws);
iter_type stream_end;
-
+
parser_type pt(format, short_month_names, long_month_names,
short_week_names, long_week_names);
date d = pt.parse_date(sitr, stream_end, format);
- check(testname, d == expected_res);
+ check_equal(testname, d, expected_res);
}
catch(std::exception& e) {
std::cout << "Got an exception: " << e.what() << std::endl;
check(testname, false);
-
}
}
@@ -126,24 +124,22 @@
test_format2(boost::date_time::format_date_parser<date, charT>& parser,
const charT* const format,
const charT* const value,
- const std::string testname,
+ const std::string& testname,
boost::gregorian::date expected_res)
{
try {
date d = parser.parse_date(value, format);
- check(testname, d == expected_res);
+ check_equal(testname, d == expected_res);
}
catch(std::exception& e) {
std::cout << "Got an exception: " << e.what() << std::endl;
check(testname, false);
-
}
}
int
main()
{
-
std::copy(&wmonth_short_names[0],
&wmonth_short_names[12],
std::back_inserter(wshort_month_names));
@@ -231,15 +227,15 @@
"%A %B %d, %Y", date(2004,3,15));
// bad format case...
-
- {
+
+ {
try {
std::wstring format(L"%Y-%d");
std::wstringstream ws;
ws << L"2004-12-31";
std::istreambuf_iterator<wchar_t> sitr(ws);
std::istreambuf_iterator<wchar_t> stream_end;
-
+
boost::date_time::format_date_parser<date,wchar_t> pt(format,
wshort_month_names,
wlong_month_names,
@@ -359,7 +355,7 @@
"long strings from locale", date(2004,Nov,1));
test_format2(parser, "%A %B %d, %Y", "thursday december 31, 2004",
"long strings from locale", date(2004,Dec,31));
-
+
}
return printTestStats();
Modified: trunk/libs/date_time/test/posix_time/testtime_input_facet.cpp
==============================================================================
--- trunk/libs/date_time/test/posix_time/testtime_input_facet.cpp (original)
+++ trunk/libs/date_time/test/posix_time/testtime_input_facet.cpp 2009-06-01 05:02:43 EDT (Mon, 01 Jun 2009)
@@ -96,25 +96,25 @@
iss >> td;
iss >> pt;
#if defined(BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG)
- check("Default format time_duration", td == time_duration(9,59,1,321987654));
- check("Default format ptime", pt == ptime(date(2005,01,15),time_duration(10,15,3,123456789)));
+ check_equal("Default format time_duration", td, time_duration(9,59,1,321987654));
+ check_equal("Default format ptime", pt, ptime(date(2005,01,15),time_duration(10,15,3,123456789)));
#else
- check("Default format time_duration", td == time_duration(9,59,1,321987));
- check("Default format ptime", pt == ptime(date(2005,01,15),time_duration(10,15,3,123456)));
+ check_equal("Default format time_duration", td, time_duration(9,59,1,321987));
+ check_equal("Default format ptime", pt, ptime(date(2005,01,15),time_duration(10,15,3,123456)));
#endif
// test all flags that appear in time_input_facet
iss.str("12:34:56 2005-Jan-15 12:34:56");
iss >> td;
iss >> pt;
- check("Default format time_duration no frac_sec", td == time_duration(12,34,56));
+ check_equal("Default format time_duration no frac_sec", td, time_duration(12,34,56));
// the following test insures %F parsing stops at the appropriate point
- check("Default format ptime", pt == ptime(date(2005,01,15),time_duration(12,34,56)));
-
+ check_equal("Default format ptime", pt, ptime(date(2005,01,15),time_duration(12,34,56)));
+
iss.str("14:13:12 extra stuff"); // using default %H:%M:%S%F format
iss >> td;
- check("Default frac_sec format time_duration", td == time_duration(14,13,12));
-
+ check_equal("Default frac_sec format time_duration", td, time_duration(14,13,12));
+
time_input_facet* facet = new time_input_facet();
std::locale loc(std::locale::classic(), facet);
facet->time_duration_format("%H:%M:%S%f");
@@ -122,61 +122,61 @@
iss.str("14:13:12.0 extra stuff");
iss >> td;
- check("Required-frac_sec format time_duration", td == time_duration(14,13,12));
+ check_equal("Required-frac_sec format time_duration", td, time_duration(14,13,12));
iss.str("12");
facet->time_duration_format("%H");
iss >> td;
- check("Hours format", td == hours(12));
+ check_equal("Hours format", td, hours(12));
iss.str("05");
facet->time_duration_format("%M");
iss >> td;
- check("Minutes format", td == minutes(5));
+ check_equal("Minutes format", td, minutes(5));
iss.str("45");
facet->time_duration_format("%S");
iss >> td;
- check("Seconds w/o frac_sec format", td == seconds(45));
+ check_equal("Seconds w/o frac_sec format", td, seconds(45));
iss.str("10.01");
facet->time_duration_format("%s");
iss >> td;
#if defined(BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG)
- check("Seconds w/ frac_sec format", td == time_duration(0,0,10,10000000));
+ check_equal("Seconds w/ frac_sec format", td, time_duration(0,0,10,10000000));
#else
- check("Seconds w/ frac_sec format", td == time_duration(0,0,10,10000));
+ check_equal("Seconds w/ frac_sec format", td, time_duration(0,0,10,10000));
#endif
-
+
iss.str("2005-105T23:59");
facet->format("%Y-%jT%H:%M"); // extended ordinal format
iss >> pt;
- check("Extended Ordinal format", pt == ptime(date(2005,4,15),time_duration(23,59,0)));
+ check_equal("Extended Ordinal format", pt, ptime(date(2005,4,15),time_duration(23,59,0)));
/* this is not implemented yet. The flags: %I & %p are not parsed
iss.str("2005-Jun-14 03:15:00 PM");
facet->format("%Y-%b-%d %I:%M:%S %p");
iss >> pt;
- check("12 hour time format (AM/PM)", pt == ptime(date(2005,6,14),time_duration(15,15,0)));
+ check_equal("12 hour time format (AM/PM)", pt, ptime(date(2005,6,14),time_duration(15,15,0)));
*/
iss.str("2005-Jun-14 15:15:00 %d");
facet->format("%Y-%b-%d %H:%M:%S %%d");
iss >> pt;
- check("Literal '%' in format", pt == ptime(date(2005,6,14),time_duration(15,15,0)));
+ check_equal("Literal '%' in format", pt, ptime(date(2005,6,14),time_duration(15,15,0)));
iss.str("15:15:00 %d");
facet->time_duration_format("%H:%M:%S %%d");
iss >> td;
- check("Literal '%' in time_duration format", td == time_duration(15,15,0));
+ check_equal("Literal '%' in time_duration format", td, time_duration(15,15,0));
iss.str("2005-Jun-14 15:15:00 %14");
facet->format("%Y-%b-%d %H:%M:%S %%%d"); // %% => % & %d => day_of_month
iss >> pt;
- check("Multiple literal '%'s in format", pt == ptime(date(2005,6,14),time_duration(15,15,0)));
+ check_equal("Multiple literal '%'s in format", pt, ptime(date(2005,6,14),time_duration(15,15,0)));
iss.str("15:15:00 %15");
facet->time_duration_format("%H:%M:%S %%%M");
iss >> td;
- check("Multiple literal '%'s in time_duration format", td == time_duration(15,15,0));
-
+ check_equal("Multiple literal '%'s in time_duration format", td, time_duration(15,15,0));
+
{ /****** iso format tests (and custom 'scrunched-together formats) ******/
time_input_facet *facet = new time_input_facet();
facet->set_iso_format();
@@ -195,21 +195,21 @@
ss.str("20021017T231217.12345");
ss >> pt;
- check("iso_format ptime", pt == result);
+ check_equal("iso_format ptime", pt, result);
ss.str("");
facet->set_iso_extended_format();
ss.str("2002-10-17 23:12:17.12345");
ss >> pt;
- check("iso_extended_format ptime", pt == result);
+ check_equal("iso_extended_format ptime", pt, result);
ss.str("");
ss.str("231217.12345");
ss >> td;
- check("iso_format time_duration", td == td2);
+ check_equal("iso_format time_duration", td, td2);
ss.str("");
ss.str("-infinity");
ss >> td;
- check("iso_format time_duration (special_value)",
- td == time_duration(neg_infin));
+ check_equal("iso_format time_duration (special_value)",
+ td, time_duration(neg_infin));
ss.str("");
// the above tests prove correct parsing of time values in these formats.
// these tests show they also handle special_values & exceptions properly
@@ -221,34 +221,34 @@
ss.str("not-a-date-time");
++count;
ss >> td;
- check("special value w/ hours flag", td == nadt);
+ check_equal("special value w/ hours flag", td, nadt);
ss.str("");
facet->time_duration_format("%M%S%F");
ss.str("not-a-date-time");
++count;
ss >> td;
- check("special value w/ minutes flag", td == nadt);
+ check_equal("special value w/ minutes flag", td, nadt);
ss.str("");
facet->time_duration_format("%S%F");
ss.str("not-a-date-time");
++count;
ss >> td;
- check("special value w/ seconds flag", td == nadt);
+ check_equal("special value w/ seconds flag", td, nadt);
ss.str("");
facet->time_duration_format("%s");
ss.str("not-a-date-time");
++count;
ss >> td;
- check("special value w/ sec w/frac_sec (always) flag", td == nadt);
+ check_equal("special value w/ sec w/frac_sec (always) flag", td, nadt);
ss.str("");
facet->time_duration_format("%f");
ss.str("not-a-date-time");
++count;
ss >> td;
- check("special value w/ frac_sec (always) flag", td == nadt);
+ check_equal("special value w/ frac_sec (always) flag", td, nadt);
ss.str("");
}
- catch(...) {
+ catch(...) {
// any exception is a failure
std::stringstream msg;
msg << "special_values with scrunched formats failed at test" << count;
@@ -276,7 +276,7 @@
failure_test(td, "bad_input", exc, new time_input_facet("%f")));
check("silent failure test w/ frac_sec flag",
failure_test(td, "bad_input", new time_input_facet("%f")));
-
+
}
// special_values tests. prove the individual flags catch special_values
// NOTE: these flags all by themselves will not parse a complete ptime,
@@ -286,41 +286,41 @@
facet->time_duration_format("%H");
iss >> pt;
iss >> td;
- check("Special value: ptime %H flag", pt == ptime(pos_infin));
- check("Special value: time_duration %H flag", td == time_duration(neg_infin));
-
+ check_equal("Special value: ptime %H flag", pt, ptime(pos_infin));
+ check_equal("Special value: time_duration %H flag", td, time_duration(neg_infin));
+
iss.str("not-a-date-time +infinity");
facet->format("%M");
facet->time_duration_format("%M");
iss >> pt;
iss >> td;
- check("Special value: ptime %M flag", pt == ptime(not_a_date_time));
- check("Special value: time_duration %M flag", td == time_duration(pos_infin));
-
+ check_equal("Special value: ptime %M flag", pt, ptime(not_a_date_time));
+ check_equal("Special value: time_duration %M flag", td, time_duration(pos_infin));
+
iss.str("-infinity not-a-date-time ");
facet->format("%S");
facet->time_duration_format("%S");
iss >> pt;
iss >> td;
- check("Special value: ptime %S flag", pt == ptime(neg_infin));
- check("Special value: time_duration %S flag", td == time_duration(not_a_date_time));
-
+ check_equal("Special value: ptime %S flag", pt, ptime(neg_infin));
+ check_equal("Special value: time_duration %S flag", td, time_duration(not_a_date_time));
+
iss.str("+infinity -infinity");
facet->format("%s");
facet->time_duration_format("%s");
iss >> pt;
iss >> td;
- check("Special value: ptime %s flag", pt == ptime(pos_infin));
- check("Special value: time_duration %s flag", td == time_duration(neg_infin));
-
+ check_equal("Special value: ptime %s flag", pt, ptime(pos_infin));
+ check_equal("Special value: time_duration %s flag", td, time_duration(neg_infin));
+
iss.str("not-a-date-time +infinity");
facet->format("%j");
facet->time_duration_format("%f");
iss >> pt;
iss >> td;
- check("Special value: ptime %j flag", pt == ptime(not_a_date_time));
- check("Special value: time_duration %f flag", td == time_duration(pos_infin));
-
+ check_equal("Special value: ptime %j flag", pt, ptime(not_a_date_time));
+ check_equal("Special value: time_duration %f flag", td, time_duration(pos_infin));
+
// time_period tests - the time_period_parser is thoroughly tested in gregorian tests
// default period format is closed range so last ptime is included in peiod
iss.str("[2005-Jan-01 00:00:00/2005-Dec-31 23:59:59]");
@@ -341,21 +341,21 @@
time_period tp3(pt3, pt4);
ss << tp;
ss >> tp2;
- check("Special values period (reversibility test)", tp == tp2);
+ check_equal("Special values period (reversibility test)", tp, tp2);
ss.str("[-infinity/+infinity]");
ss >> tp2;
- check("Special values period (infinities)", tp3 == tp2);
+ check_equal("Special values period (infinities)", tp3, tp2);
}
// Failure tests
// faliure tests for date elements tested in gregorian tests
time_input_facet* facet2 = new time_input_facet();
facet2->time_duration_format("%H:%M:%S%f");
- check("Failure test: Missing frac_sec with %f flag (w/exceptions)",
+ check("Failure test: Missing frac_sec with %f flag (w/exceptions)",
failure_test(td, "14:13:12 extra stuff", e_failure, facet2));
time_input_facet* facet3 = new time_input_facet();
facet3->time_duration_format("%H:%M:%S%f");
- check("Failure test: Missing frac_sec with %f flag (no exceptions)",
+ check("Failure test: Missing frac_sec with %f flag (no exceptions)",
failure_test(td, "14:13:12 extra stuff", facet3));
// Reversable format tests
@@ -370,22 +370,22 @@
ss.str("");
ss << pt_io; // stream out pt_io
ss >> pt;
- check("Stream out one ptime then into another: default format", pt_io == pt);
+ check_equal("Stream out one ptime then into another: default format", pt_io, pt);
ss.str("");
ss << td_io; // stream out td_io
ss >> td;
- check("Stream out one time_duration then into another: default format", td_io == td);
+ check_equal("Stream out one time_duration then into another: default format", td_io, td);
td_io = time_duration(1,29,59); // no frac_sec, default format has %F
pt_io = ptime(date(2004,2,29), td_io); // leap year
ss.str("");
ss << pt_io; // stream out pt_io
ss >> pt;
- check("Stream out one ptime then into another: default format", pt_io == pt);
+ check_equal("Stream out one ptime then into another: default format", pt_io, pt);
ss.str("");
ss << td_io; // stream out td_io
ss >> td;
- check("Stream out one time_duration then into another: default format", td_io == td);
+ check_equal("Stream out one time_duration then into another: default format", td_io, td);
td_io = time_duration(13,05,0); // no seconds as the next formats won't use them
pt_io = ptime(date(2004,2,29), td_io); // leap year
@@ -394,14 +394,14 @@
ss.str("");
ss << pt_io; // stream out pt_io
ss >> pt;
- check("Stream out one ptime then into another: extended ordinal format", pt_io == pt);
+ check_equal("Stream out one ptime then into another: extended ordinal format", pt_io, pt);
otp_facet->format("Time: %H:%M, Date: %B %d, %Y"); // custom format with extra words
inp_facet->format("Time: %H:%M, Date: %B %d, %Y");
ss.str("");
ss << pt_io; // stream out pt_io
ss >> pt;
- check("Stream out one ptime then into another: custom format (" + ss.str() + ")", pt_io == pt);
+ check_equal("Stream out one ptime then into another: custom format (" + ss.str() + ")", pt_io, pt);
{
// fully parameterized constructor - compile only test, all other features tested in gregorian
@@ -411,7 +411,7 @@
boost::date_time::date_generator_parser<date, char> dgp; // default constructor
time_input_facet tif("%Y-%m-%d %H:%M:%s", fdp, svp, pp, dgp);
}
-#endif // USE_DATE_TIME_PRE_1_33_FACET_IO
+#endif // USE_DATE_TIME_PRE_1_33_FACET_IO
}
@@ -432,4 +432,4 @@
}
return printTestStats();
}
-
+
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk