#include #include #include #include #include namespace { boost::gregorian::date to_greg_date(const std::string& _facet_form, const std::string& _date_string ) { std::stringstream ssDate; boost::gregorian::date_input_facet* date_input_facet(new boost::gregorian::date_input_facet(_facet_form)); ssDate.imbue(std::locale(ssDate.getloc(), date_input_facet)); boost::gregorian::date d; ssDate << _date_string; ssDate >> d; return d; } } // anonymous namespace void simple_gregorian_date_facet_test() { using namespace boost::gregorian; boost::gregorian::date d07jan29(2007,Jan,29); BOOST_CHECK_EQUAL( to_greg_date("%Y/%m/%d","2007/01/29") , d07jan29); BOOST_CHECK_EQUAL( to_greg_date("%m/%d/%Y","01/29/2007") , d07jan29); BOOST_CHECK_EQUAL( to_greg_date("%d/%m/%Y","29/01/2007") , d07jan29); BOOST_CHECK_EQUAL( to_greg_date("%Y/%d/%m","2007/29/01") , d07jan29); BOOST_CHECK_EQUAL( to_greg_date("%d/%Y/%m","29/2007/01") , d07jan29); BOOST_CHECK_EQUAL( to_greg_date("%m/%Y/%d","01/2007/29") , d07jan29); } using boost::unit_test::test_suite; test_suite* init_unit_test_suite(int argc, char* argv[]) { test_suite* test = BOOST_TEST_SUITE("simple_gregorian_date_facet_test"); test->add( BOOST_TEST_CASE( &simple_gregorian_date_facet_test ) ); return test; }