32 #define TEST_NAME "util/misc"
60 BOOST_CHECK_EQUAL(root,
"");
61 BOOST_CHECK_EQUAL(ext,
"");
63 BOOST_CHECK_EQUAL(root,
"");
64 BOOST_CHECK_EQUAL(ext,
"");
66 BOOST_CHECK_EQUAL(root,
"file");
67 BOOST_CHECK_EQUAL(ext,
"");
69 BOOST_CHECK_EQUAL(root,
"file");
70 BOOST_CHECK_EQUAL(ext,
"");
72 BOOST_CHECK_EQUAL(root,
"file");
73 BOOST_CHECK_EQUAL(ext,
".jpg");
75 BOOST_CHECK_EQUAL(root,
"dir/file");
76 BOOST_CHECK_EQUAL(ext,
".jpg");
78 BOOST_CHECK_EQUAL(root,
"/dir/file");
79 BOOST_CHECK_EQUAL(ext,
".jpg");
81 BOOST_CHECK_EQUAL(root,
"dir/file.suffix");
82 BOOST_CHECK_EQUAL(ext,
".jpg");
84 BOOST_CHECK_EQUAL(root,
"dir.suffix/file.suffix");
85 BOOST_CHECK_EQUAL(ext,
".jpg");
87 BOOST_CHECK_EQUAL(root,
"dir.suffix/file");
88 BOOST_CHECK_EQUAL(ext,
"");
90 BOOST_CHECK_EQUAL(root,
"./dir.suffix/file");
91 BOOST_CHECK_EQUAL(ext,
"");
106 BOOST_CHECK_EQUAL(
GetPathBaseName(
"/test1/test2/test3.ext"),
"test3.ext");
119 BOOST_CHECK_EQUAL(
JoinPaths(
"test"),
"test");
120 BOOST_CHECK_EQUAL(
JoinPaths(
"/test"),
"/test");
121 BOOST_CHECK_EQUAL(
JoinPaths(
"test/"),
"test/");
122 BOOST_CHECK_EQUAL(
JoinPaths(
"/test/"),
"/test/");
123 BOOST_CHECK_EQUAL(
JoinPaths(
"test1/test2"),
"test1/test2");
124 BOOST_CHECK_EQUAL(
JoinPaths(
"/test1/test2"),
"/test1/test2");
125 BOOST_CHECK_EQUAL(
JoinPaths(
"/test1/test2/"),
"/test1/test2/");
126 BOOST_CHECK_EQUAL(
JoinPaths(
"/test1/test2/"),
"/test1/test2/");
127 BOOST_CHECK_EQUAL(
JoinPaths(
"\\test1/test2/"),
"\\test1/test2/");
128 BOOST_CHECK_EQUAL(
JoinPaths(
"\\test1\\test2\\"),
"\\test1\\test2\\");
130 BOOST_CHECK_EQUAL(
JoinPaths(
"test1",
"test2"),
"test1\\test2");
131 BOOST_CHECK_EQUAL(
JoinPaths(
"/test1",
"test2"),
"/test1\\test2");
133 BOOST_CHECK_EQUAL(
JoinPaths(
"test1",
"test2"),
"test1/test2");
134 BOOST_CHECK_EQUAL(
JoinPaths(
"/test1",
"test2"),
"/test1/test2");
136 BOOST_CHECK_EQUAL(
JoinPaths(
"/test1",
"/test2"),
"/test1/test2");
137 BOOST_CHECK_EQUAL(
JoinPaths(
"/test1",
"/test2/"),
"/test1/test2/");
138 BOOST_CHECK_EQUAL(
JoinPaths(
"/test1",
"/test2/",
"test3.ext"),
139 "/test1/test2/test3.ext");
143 BOOST_CHECK(VectorContainsValue<int>({1, 2, 3}, 1));
144 BOOST_CHECK(!VectorContainsValue<int>({2, 3}, 1));
148 BOOST_CHECK(!VectorContainsDuplicateValues<int>({}));
149 BOOST_CHECK(!VectorContainsDuplicateValues<int>({1}));
150 BOOST_CHECK(!VectorContainsDuplicateValues<int>({1, 2}));
151 BOOST_CHECK(!VectorContainsDuplicateValues<int>({1, 2, 3}));
152 BOOST_CHECK(VectorContainsDuplicateValues<int>({1, 1, 2, 3}));
153 BOOST_CHECK(VectorContainsDuplicateValues<int>({1, 1, 2, 2, 3}));
154 BOOST_CHECK(VectorContainsDuplicateValues<int>({1, 2, 3, 3}));
155 BOOST_CHECK(!VectorContainsDuplicateValues<std::string>({
"a"}));
156 BOOST_CHECK(!VectorContainsDuplicateValues<std::string>({
"a",
"b"}));
157 BOOST_CHECK(VectorContainsDuplicateValues<std::string>({
"a",
"a"}));
161 const std::vector<int> list1 = CSVToVector<int>(
"1, 2, 3 , 4,5,6 ");
162 BOOST_CHECK_EQUAL(list1.size(), 6);
163 BOOST_CHECK_EQUAL(list1[0], 1);
164 BOOST_CHECK_EQUAL(list1[1], 2);
165 BOOST_CHECK_EQUAL(list1[2], 3);
166 BOOST_CHECK_EQUAL(list1[3], 4);
167 BOOST_CHECK_EQUAL(list1[4], 5);
168 BOOST_CHECK_EQUAL(list1[5], 6);
169 const std::vector<int> list2 = CSVToVector<int>(
"1; 2; 3 ; 4;5;6 ");
170 BOOST_CHECK_EQUAL(list2.size(), 6);
171 BOOST_CHECK_EQUAL(list2[0], 1);
172 BOOST_CHECK_EQUAL(list2[1], 2);
173 BOOST_CHECK_EQUAL(list2[2], 3);
174 BOOST_CHECK_EQUAL(list2[3], 4);
175 BOOST_CHECK_EQUAL(list2[4], 5);
176 BOOST_CHECK_EQUAL(list2[5], 6);
177 const std::vector<int> list3 = CSVToVector<int>(
"1;, 2;; 3 ; 4;5;6 ");
178 BOOST_CHECK_EQUAL(list3.size(), 6);
179 BOOST_CHECK_EQUAL(list3[0], 1);
180 BOOST_CHECK_EQUAL(list3[1], 2);
181 BOOST_CHECK_EQUAL(list3[2], 3);
182 BOOST_CHECK_EQUAL(list3[3], 4);
183 BOOST_CHECK_EQUAL(list3[4], 5);
184 BOOST_CHECK_EQUAL(list3[5], 6);
188 BOOST_CHECK_EQUAL(VectorToCSV<int>({}),
"");
189 BOOST_CHECK_EQUAL(VectorToCSV<int>({1}),
"1");
190 BOOST_CHECK_EQUAL(VectorToCSV<int>({1, 2, 3}),
"1, 2, 3");
195 std::unique_ptr<char[]> arg1(
new char[4]);
196 memcpy(arg1.get(),
"abc", 4 *
sizeof(
char));
197 std::unique_ptr<char[]> arg2(
new char[4]);
198 memcpy(arg2.get(),
"def", 4 *
sizeof(
char));
199 std::unique_ptr<char[]> arg3(
new char[4]);
200 memcpy(arg3.get(),
"ghi", 4 *
sizeof(
char));
201 std::vector<char*> argv = {arg1.get(), arg2.get(), arg3.get()};
204 BOOST_CHECK_EQUAL(argc, 3);
205 BOOST_CHECK_EQUAL(argv[0],
"abc");
206 BOOST_CHECK_EQUAL(argv[1],
"def");
207 BOOST_CHECK_EQUAL(argv[2],
"ghi");
210 BOOST_CHECK_EQUAL(argc, 2);
211 BOOST_CHECK_EQUAL(argv[0],
"abc");
212 BOOST_CHECK_EQUAL(argv[1],
"ghi");
215 BOOST_CHECK_EQUAL(argc, 1);
216 BOOST_CHECK_EQUAL(argv[0],
"abc");
219 BOOST_CHECK_EQUAL(argc, 0);
222 BOOST_CHECK_EQUAL(argc, 0);
BOOST_AUTO_TEST_CASE(TestEnsureTrailingSlash)
bool HasFileExtension(const std::string &file_name, const std::string &ext)
std::string GetPathBaseName(const std::string &path)
void SplitFileExtension(const std::string &path, std::string *root, std::string *ext)
std::string JoinPaths(T const &... paths)
std::string EnsureTrailingSlash(const std::string &str)
std::string GetParentDir(const std::string &path)
void RemoveCommandLineArgument(const std::string &arg, int *argc, char **argv)