#include "catch.hpp" #include TEST_CASE("split_string") { SECTION("split_string string") { std::string str { "foo,baramba,baz" }; std::vector result = {"foo", "baramba", "baz"}; REQUIRE(result == osmium::split_string(str, ',')); REQUIRE(result == osmium::split_string(str, ',', true)); } SECTION("split_string string without sep") { std::string str { "foo" }; std::vector result = {"foo"}; REQUIRE(result == osmium::split_string(str, ',')); REQUIRE(result == osmium::split_string(str, ',', true)); } SECTION("split_string string with empty at end") { std::string str { "foo,bar," }; std::vector result = {"foo", "bar", ""}; std::vector resultc = {"foo", "bar"}; REQUIRE(result == osmium::split_string(str, ',')); REQUIRE(resultc == osmium::split_string(str, ',', true)); } SECTION("split_string string with empty in middle") { std::string str { "foo,,bar" }; std::vector result = {"foo", "", "bar"}; std::vector resultc = {"foo", "bar"}; REQUIRE(result == osmium::split_string(str, ',')); REQUIRE(resultc == osmium::split_string(str, ',', true)); } SECTION("split_string string with empty at start") { std::string str { ",bar,baz" }; std::vector result = {"", "bar", "baz"}; std::vector resultc = {"bar", "baz"}; REQUIRE(result == osmium::split_string(str, ',')); REQUIRE(resultc == osmium::split_string(str, ',', true)); } SECTION("split_string sep") { std::string str { "," }; std::vector result = {"", ""}; std::vector resultc; REQUIRE(result == osmium::split_string(str, ',')); REQUIRE(resultc == osmium::split_string(str, ',', true)); } SECTION("split_string empty string") { std::string str { "" }; std::vector result; REQUIRE(result == osmium::split_string(str, ',')); REQUIRE(result == osmium::split_string(str, ',', true)); } }