1#include "duckdb/common/string_util.hpp"
2
3#include "catch.hpp"
4
5#include <vector>
6#include <string>
7
8using namespace duckdb;
9
10TEST_CASE("Test join vector items", "[string_util]") {
11 SECTION("Three string items") {
12 std::vector<std::string> str_items = {"abc", "def", "ghi"};
13 std::string result = StringUtil::Join(str_items, ",");
14 REQUIRE(result == "abc,def,ghi");
15 }
16
17 SECTION("One string item") {
18 std::vector<std::string> str_items = {"abc"};
19 std::string result = StringUtil::Join(str_items, ",");
20 REQUIRE(result == "abc");
21 }
22
23 SECTION("No string items") {
24 std::vector<std::string> str_items;
25 std::string result = StringUtil::Join(str_items, ",");
26 REQUIRE(result == "");
27 }
28
29 SECTION("Three int items") {
30 std::vector<int> int_items = {1, 2, 3};
31 std::string result =
32 StringUtil::Join(int_items, int_items.size(), ", ", [](const int &item) { return std::to_string(item); });
33 REQUIRE(result == "1, 2, 3");
34 }
35
36 SECTION("One int item") {
37 std::vector<int> int_items = {1};
38 std::string result =
39 StringUtil::Join(int_items, int_items.size(), ", ", [](const int &item) { return std::to_string(item); });
40 REQUIRE(result == "1");
41 }
42
43 SECTION("No int items") {
44 std::vector<int> int_items;
45 std::string result =
46 StringUtil::Join(int_items, int_items.size(), ", ", [](const int &item) { return std::to_string(item); });
47 REQUIRE(result == "");
48 }
49}
50