Ticket #2896: main.cpp

File main.cpp, 1.4 KB (added by anonymous, 14 years ago)

test case to check gregorian date facet

Line 
1#include <boost/date_time/gregorian/gregorian.hpp>
2#include <boost/date_time/gregorian/greg_facet.hpp>
3#include <boost/test/unit_test.hpp>
4#include <sstream>
5#include <iostream>
6
7namespace {
8
9boost::gregorian::date to_greg_date(const std::string& _facet_form, const std::string& _date_string )
10{
11 std::stringstream ssDate;
12 boost::gregorian::date_input_facet* date_input_facet(new boost::gregorian::date_input_facet(_facet_form));
13 ssDate.imbue(std::locale(ssDate.getloc(), date_input_facet));
14
15 boost::gregorian::date d;
16
17 ssDate << _date_string;
18 ssDate >> d;
19
20 return d;
21}
22
23} // anonymous namespace
24
25void simple_gregorian_date_facet_test()
26{
27 using namespace boost::gregorian;
28 boost::gregorian::date d07jan29(2007,Jan,29);
29
30 BOOST_CHECK_EQUAL( to_greg_date("%Y/%m/%d","2007/01/29") , d07jan29);
31 BOOST_CHECK_EQUAL( to_greg_date("%m/%d/%Y","01/29/2007") , d07jan29);
32 BOOST_CHECK_EQUAL( to_greg_date("%d/%m/%Y","29/01/2007") , d07jan29);
33 BOOST_CHECK_EQUAL( to_greg_date("%Y/%d/%m","2007/29/01") , d07jan29);
34 BOOST_CHECK_EQUAL( to_greg_date("%d/%Y/%m","29/2007/01") , d07jan29);
35 BOOST_CHECK_EQUAL( to_greg_date("%m/%Y/%d","01/2007/29") , d07jan29);
36}
37
38using boost::unit_test::test_suite;
39
40test_suite* init_unit_test_suite(int argc, char* argv[])
41{
42 test_suite* test = BOOST_TEST_SUITE("simple_gregorian_date_facet_test");
43 test->add( BOOST_TEST_CASE( &simple_gregorian_date_facet_test ) );
44 return test;
45}