|
|
|
@ -1,6 +1,8 @@
|
|
|
|
|
#include <util/str.hpp>
|
|
|
|
|
#include <catch2/catch.hpp>
|
|
|
|
|
|
|
|
|
|
#include <vector>
|
|
|
|
|
|
|
|
|
|
using namespace std::literals;
|
|
|
|
|
|
|
|
|
|
TEST_CASE("TrimWhitespace -- positive tests", "[str][trim]")
|
|
|
|
@ -91,3 +93,40 @@ TEST_CASE("neither true nor false string values", "[str][nottruefalse]") {
|
|
|
|
|
REQUIRE( !llarp::IsTrueValue(val) );
|
|
|
|
|
REQUIRE( !llarp::IsFalseValue(val) );
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TEST_CASE("split strings with multiple matches", "[str]") {
|
|
|
|
|
auto splits = llarp::split("this is a test", ' ');
|
|
|
|
|
REQUIRE(splits.size() == 4);
|
|
|
|
|
REQUIRE(splits[0] == "this");
|
|
|
|
|
REQUIRE(splits[1] == "is");
|
|
|
|
|
REQUIRE(splits[2] == "a");
|
|
|
|
|
REQUIRE(splits[3] == "test");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TEST_CASE("split strings with single match", "[str]") {
|
|
|
|
|
auto splits = llarp::split("uno", ';');
|
|
|
|
|
REQUIRE(splits.size() == 1);
|
|
|
|
|
REQUIRE(splits[0] == "uno");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TEST_CASE("split strings with consecutive delimiters", "[str]") {
|
|
|
|
|
auto splits = llarp::split("a o e u", ' ');
|
|
|
|
|
REQUIRE(splits.size() == 4);
|
|
|
|
|
REQUIRE(splits[0] == "a");
|
|
|
|
|
REQUIRE(splits[1] == "o");
|
|
|
|
|
REQUIRE(splits[2] == "e");
|
|
|
|
|
REQUIRE(splits[3] == "u");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TEST_CASE("split delimiter-only string", "[str]") {
|
|
|
|
|
auto splits = llarp::split(" ", ' ');
|
|
|
|
|
REQUIRE(splits.size() == 0);
|
|
|
|
|
|
|
|
|
|
splits = llarp::split(" ", ' ');
|
|
|
|
|
REQUIRE(splits.size() == 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
TEST_CASE("split empty string", "[str]") {
|
|
|
|
|
auto splits = llarp::split("", ' ');
|
|
|
|
|
REQUIRE(splits.size() == 0);
|
|
|
|
|
}
|
|
|
|
|