utils::string - split functions extended
Summary: - RSplit added - split limits added - tests Reviewers: teon.banek, dgleich Reviewed By: teon.banek Subscribers: pullbot Differential Revision: https://phabricator.memgraph.io/D930
This commit is contained in:
50
tests/unit/utils_string.cpp
Normal file
50
tests/unit/utils_string.cpp
Normal file
@@ -0,0 +1,50 @@
|
||||
#include "gmock/gmock.h"
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
#include "utils/string.hpp"
|
||||
|
||||
using vec = std::vector<std::string>;
|
||||
|
||||
TEST(String, SplitNoLimit) {
|
||||
EXPECT_EQ(utils::Split("aba", "a"), vec({"", "b", ""}));
|
||||
EXPECT_EQ(utils::Split("aba", "b"), vec({"a", "a"}));
|
||||
EXPECT_EQ(utils::Split("abba", "b"), vec({"a", "", "a"}));
|
||||
EXPECT_EQ(utils::Split("aba", "c"), vec{"aba"});
|
||||
}
|
||||
|
||||
TEST(String, RSplitNoLimit) {
|
||||
// Tests same like for Split
|
||||
EXPECT_EQ(utils::RSplit("aba", "a"), vec({"", "b", ""}));
|
||||
EXPECT_EQ(utils::RSplit("aba", "b"), vec({"a", "a"}));
|
||||
EXPECT_EQ(utils::RSplit("abba", "b"), vec({"a", "", "a"}));
|
||||
EXPECT_EQ(utils::RSplit("aba", "c"), vec{"aba"});
|
||||
}
|
||||
|
||||
TEST(String, SplitWithLimit) {
|
||||
EXPECT_EQ(utils::Split("a.b.c.d", ".", 0), vec({"a.b.c.d"}));
|
||||
EXPECT_EQ(utils::Split("a.b.c.d", ".", 1), vec({"a", "b.c.d"}));
|
||||
EXPECT_EQ(utils::Split("a.b.c.d", ".", 2), vec({"a", "b", "c.d"}));
|
||||
EXPECT_EQ(utils::Split("a.b.c.d", ".", 100), vec({"a", "b", "c", "d"}));
|
||||
EXPECT_EQ(utils::Split("a.b.c.d", ".", -1), vec({"a", "b", "c", "d"}));
|
||||
EXPECT_EQ(utils::Split("a.b.c.d", ".", -2), vec({"a", "b", "c", "d"}));
|
||||
EXPECT_EQ(utils::Split("a.b.c.d", ".", -100), vec({"a", "b", "c", "d"}));
|
||||
EXPECT_EQ(utils::Split("a..b..c", ".", 1), vec({"a", ".b..c"}));
|
||||
EXPECT_EQ(utils::Split("a..b..c", ".", 2), vec({"a","", "b..c"}));
|
||||
}
|
||||
|
||||
TEST(String, RSplitWithLimit) {
|
||||
EXPECT_EQ(utils::RSplit("a.b.c.d", ".", 0), vec({"a.b.c.d"}));
|
||||
EXPECT_EQ(utils::RSplit("a.b.c.d", ".", 1), vec({"a.b.c", "d"}));
|
||||
EXPECT_EQ(utils::RSplit("a.b.c.d", ".", 2), vec({"a.b", "c", "d"}));
|
||||
EXPECT_EQ(utils::RSplit("a.b.c.d", ".", 100), vec({"a", "b", "c", "d"}));
|
||||
EXPECT_EQ(utils::RSplit("a.b.c.d", ".", -1), vec({"a", "b", "c", "d"}));
|
||||
EXPECT_EQ(utils::RSplit("a.b.c.d", ".", -2), vec({"a", "b", "c", "d"}));
|
||||
EXPECT_EQ(utils::RSplit("a.b.c.d", ".", -100), vec({"a", "b", "c", "d"}));
|
||||
EXPECT_EQ(utils::RSplit("a..b..c", ".", 1), vec({"a..b.", "c"}));
|
||||
EXPECT_EQ(utils::RSplit("a..b..c", ".", 2), vec({"a..b","", "c"}));
|
||||
}
|
||||
|
||||
TEST(String, SplitWhistespace) {
|
||||
EXPECT_EQ(utils::Split(" "), vec({}));
|
||||
EXPECT_EQ(utils::Split(" a b "), vec({"a", "b"}));
|
||||
}
|
||||
Reference in New Issue
Block a user