libmoost
/home/mhx/git/github/libmoost/test/utils/stringify.cpp
Go to the documentation of this file.
00001 /* vim:set ts=3 sw=3 sts=3 et: */
00028 #include <sstream>
00029 #include <vector>
00030 #include <list>
00031 #include <map>
00032 #include <set>
00033 
00034 #include <boost/test/unit_test.hpp>
00035 
00036 #include "../../include/moost/utils/stringify.hpp"
00037 
00038 using moost::utils::stringify;
00039 
00040 BOOST_AUTO_TEST_SUITE(moost_utils_stringify)
00041 
00042 BOOST_AUTO_TEST_CASE(stringify_scalar)
00043 {
00044    BOOST_CHECK_EQUAL(stringify(42), "42");
00045    BOOST_CHECK_EQUAL(stringify("foo"), "foo");
00046 }
00047 
00048 BOOST_AUTO_TEST_CASE(stringify_pair)
00049 {
00050    std::pair<std::string, std::string> p("foo", "bar");
00051    BOOST_CHECK_EQUAL(stringify(p), "(foo, bar)");
00052 }
00053 
00054 BOOST_AUTO_TEST_CASE(stringify_vector)
00055 {
00056    std::vector<int> v;
00057    BOOST_CHECK_EQUAL(stringify(v), "[]");
00058    v.push_back(42);
00059    BOOST_CHECK_EQUAL(stringify(v), "[42]");
00060    v.push_back(7);
00061    BOOST_CHECK_EQUAL(stringify(v), "[42, 7]");
00062    v.push_back(2);
00063    BOOST_CHECK_EQUAL(stringify(v, 0), "[42, 7, 2]");
00064    BOOST_CHECK_EQUAL(stringify(v, 1), "[42, <+2>]");
00065    BOOST_CHECK_EQUAL(stringify(v, 2), "[42, 7, <+1>]");
00066    BOOST_CHECK_EQUAL(stringify(v, 3), "[42, 7, 2]");
00067    BOOST_CHECK_EQUAL(stringify(v, 4), "[42, 7, 2]");
00068 }
00069 
00070 BOOST_AUTO_TEST_CASE(stringify_map)
00071 {
00072    std::map<std::string, int> m;
00073    BOOST_CHECK_EQUAL(stringify(m), "{}");
00074    m["foo"] = 13;
00075    BOOST_CHECK_EQUAL(stringify(m), "{(foo, 13)}");
00076    m["bar"] = 42;
00077    BOOST_CHECK_EQUAL(stringify(m), "{(bar, 42), (foo, 13)}");
00078    BOOST_CHECK_EQUAL(stringify(m, 0), "{(bar, 42), (foo, 13)}");
00079    BOOST_CHECK_EQUAL(stringify(m, 1), "{(bar, 42), <+1>}");
00080    BOOST_CHECK_EQUAL(stringify(m, 2), "{(bar, 42), (foo, 13)}");
00081    BOOST_CHECK_EQUAL(stringify(m, 3), "{(bar, 42), (foo, 13)}");
00082 }
00083 
00084 BOOST_AUTO_TEST_SUITE_END()