libmoost
|
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()