32 #define TEST_NAME "util/string"
39 #define TEST_STRING_INPLACE(Func, str, ref_str) \
41 std::string str_inplace = str; \
43 BOOST_CHECK_EQUAL(str_inplace, ref_str); \
50 BOOST_CHECK_EQUAL(
StringPrintf(
"test%s",
"test"),
"testtest");
52 BOOST_CHECK_EQUAL(
StringPrintf(
"test%.3f", 1.234),
"test1.234");
53 BOOST_CHECK_EQUAL(
StringPrintf(
"%s%s",
"test",
"test"),
"testtest");
54 BOOST_CHECK_EQUAL(
StringPrintf(
"%d%s", 1,
"test"),
"1test");
55 BOOST_CHECK_EQUAL(
StringPrintf(
"%.3f%s", 1.234,
"test"),
"1.234test");
61 BOOST_CHECK_EQUAL(
StringReplace(
"test",
"t",
"---"),
"---es---");
71 BOOST_CHECK_EQUAL(
StringGetAfter(
"test, multiple tests",
"test"),
"s");
73 BOOST_CHECK_EQUAL(
StringGetAfter(
"path/to/dataset/sub1/image.png",
"sub1/"),
78 const std::vector<std::string> list1 =
StringSplit(
"1,2,3,4,5 , 6",
",");
79 BOOST_CHECK_EQUAL(list1.size(), 6);
80 BOOST_CHECK_EQUAL(list1[0],
"1");
81 BOOST_CHECK_EQUAL(list1[1],
"2");
82 BOOST_CHECK_EQUAL(list1[2],
"3");
83 BOOST_CHECK_EQUAL(list1[3],
"4");
84 BOOST_CHECK_EQUAL(list1[4],
"5 ");
85 BOOST_CHECK_EQUAL(list1[5],
" 6");
86 const std::vector<std::string> list2 =
StringSplit(
"1,2,3,4,5 , 6",
"");
87 BOOST_CHECK_EQUAL(list2.size(), 1);
88 BOOST_CHECK_EQUAL(list2[0],
"1,2,3,4,5 , 6");
89 const std::vector<std::string> list3 =
StringSplit(
"1,,2,,3,4,5 , 6",
",");
90 BOOST_CHECK_EQUAL(list3.size(), 6);
91 BOOST_CHECK_EQUAL(list3[0],
"1");
92 BOOST_CHECK_EQUAL(list3[1],
"2");
93 BOOST_CHECK_EQUAL(list3[2],
"3");
94 BOOST_CHECK_EQUAL(list3[3],
"4");
95 BOOST_CHECK_EQUAL(list3[4],
"5 ");
96 BOOST_CHECK_EQUAL(list3[5],
" 6");
97 const std::vector<std::string> list4 =
StringSplit(
"1,,2,,3,4,5 , 6",
",,");
98 BOOST_CHECK_EQUAL(list4.size(), 6);
99 BOOST_CHECK_EQUAL(list4[0],
"1");
100 BOOST_CHECK_EQUAL(list4[1],
"2");
101 BOOST_CHECK_EQUAL(list4[2],
"3");
102 BOOST_CHECK_EQUAL(list4[3],
"4");
103 BOOST_CHECK_EQUAL(list4[4],
"5 ");
104 BOOST_CHECK_EQUAL(list4[5],
" 6");
105 const std::vector<std::string> list5 =
StringSplit(
"1,,2,,3,4,5 , 6",
", ");
106 BOOST_CHECK_EQUAL(list5.size(), 6);
107 BOOST_CHECK_EQUAL(list5[0],
"1");
108 BOOST_CHECK_EQUAL(list5[1],
"2");
109 BOOST_CHECK_EQUAL(list5[2],
"3");
110 BOOST_CHECK_EQUAL(list5[3],
"4");
111 BOOST_CHECK_EQUAL(list5[4],
"5");
112 BOOST_CHECK_EQUAL(list5[5],
"6");
113 const std::vector<std::string> list6 =
StringSplit(
",1,,2,,3,4,5 , 6 ",
", ");
114 BOOST_CHECK_EQUAL(list6.size(), 8);
115 BOOST_CHECK_EQUAL(list6[0],
"");
116 BOOST_CHECK_EQUAL(list6[1],
"1");
117 BOOST_CHECK_EQUAL(list6[2],
"2");
118 BOOST_CHECK_EQUAL(list6[3],
"3");
119 BOOST_CHECK_EQUAL(list6[4],
"4");
120 BOOST_CHECK_EQUAL(list6[5],
"5");
121 BOOST_CHECK_EQUAL(list6[6],
"6");
122 BOOST_CHECK_EQUAL(list6[7],
"");
192 "abcdefghijklmnopqrstuvwxyz");
194 "0123456789 abcdefghijklmnopqrstuvwxyz");
211 "ABCDEFGHIJKLMNOPQRSTUVWXYZ");
213 "0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ");
std::string StringGetAfter(const std::string &str, const std::string &key)
void StringTrim(std::string *str)
bool StringStartsWith(const std::string &str, const std::string &prefix)
std::string StringReplace(const std::string &str, const std::string &old_str, const std::string &new_str)
void StringToLower(std::string *str)
void StringLeftTrim(std::string *str)
void StringRightTrim(std::string *str)
std::vector< std::string > StringSplit(const std::string &str, const std::string &delim)
std::string StringPrintf(const char *format,...)
void StringToUpper(std::string *str)
bool StringContains(const std::string &str, const std::string &sub_str)
BOOST_AUTO_TEST_CASE(TestStringPrintf)
#define TEST_STRING_INPLACE(Func, str, ref_str)