mirror of
https://gitlab.com/mbunkus/mkvtoolnix.git
synced 2024-10-22 07:21:21 +00:00
string splitting by regex: add test case
This commit is contained in:
parent
8080126194
commit
de7b3dd8c5
@ -88,4 +88,97 @@ TEST(StringsEditing, SplittingByStringPatternAtEnd) {
|
||||
EXPECT_EQ(""s, r[3]);
|
||||
}
|
||||
|
||||
TEST(StringsEditing, SplittingRegexByStringEmptyPattern) {
|
||||
auto r = mtx::string::split("This, and that, is stuff."s, std::regex{""s});
|
||||
|
||||
ASSERT_EQ(27, r.size());
|
||||
EXPECT_EQ("", r[0]);
|
||||
EXPECT_EQ("T", r[1]);
|
||||
EXPECT_EQ("h", r[2]);
|
||||
EXPECT_EQ("i", r[3]);
|
||||
EXPECT_EQ("s", r[4]);
|
||||
EXPECT_EQ(",", r[5]);
|
||||
EXPECT_EQ(" ", r[6]);
|
||||
EXPECT_EQ("a", r[7]);
|
||||
EXPECT_EQ("n", r[8]);
|
||||
EXPECT_EQ("d", r[9]);
|
||||
EXPECT_EQ(" ", r[10]);
|
||||
EXPECT_EQ("t", r[11]);
|
||||
EXPECT_EQ("h", r[12]);
|
||||
EXPECT_EQ("a", r[13]);
|
||||
EXPECT_EQ("t", r[14]);
|
||||
EXPECT_EQ(",", r[15]);
|
||||
EXPECT_EQ(" ", r[16]);
|
||||
EXPECT_EQ("i", r[17]);
|
||||
EXPECT_EQ("s", r[18]);
|
||||
EXPECT_EQ(" ", r[19]);
|
||||
EXPECT_EQ("s", r[20]);
|
||||
EXPECT_EQ("t", r[21]);
|
||||
EXPECT_EQ("u", r[22]);
|
||||
EXPECT_EQ("f", r[23]);
|
||||
EXPECT_EQ("f", r[24]);
|
||||
EXPECT_EQ(".", r[25]);
|
||||
EXPECT_EQ("", r[26]);
|
||||
}
|
||||
|
||||
TEST(StringsEditing, SplittingRegexByStringEmptyText) {
|
||||
auto r = mtx::string::split(""s, std::regex{","s});
|
||||
|
||||
ASSERT_EQ(1, r.size());
|
||||
EXPECT_EQ(""s, r[0]);
|
||||
}
|
||||
|
||||
TEST(StringsEditing, SplittingRegexByStringOneCharPattern) {
|
||||
auto r = mtx::string::split("This, and that, is stuff."s, std::regex{","s});
|
||||
|
||||
ASSERT_EQ(3, r.size());
|
||||
EXPECT_EQ("This"s, r[0]);
|
||||
EXPECT_EQ(" and that"s, r[1]);
|
||||
EXPECT_EQ(" is stuff."s, r[2]);
|
||||
}
|
||||
|
||||
TEST(StringsEditing, SplittingRegexByStringTwoCharsPattern) {
|
||||
auto r = mtx::string::split("This, and that, is stuff."s, std::regex{", *"s});
|
||||
|
||||
ASSERT_EQ(3, r.size());
|
||||
EXPECT_EQ("This"s, r[0]);
|
||||
EXPECT_EQ("and that"s, r[1]);
|
||||
EXPECT_EQ("is stuff."s, r[2]);
|
||||
}
|
||||
|
||||
TEST(StringsEditing, SplittingRegexByStringLimit2) {
|
||||
auto r = mtx::string::split("This, and that, is stuff."s, std::regex{", *"s}, 2);
|
||||
|
||||
ASSERT_EQ(2, r.size());
|
||||
EXPECT_EQ("This"s, r[0]);
|
||||
EXPECT_EQ("and that, is stuff."s, r[1]);
|
||||
}
|
||||
|
||||
TEST(StringsEditing, SplittingRegexByStringLimit1) {
|
||||
auto r = mtx::string::split("This, and that, is stuff."s, std::regex{", *"s}, 1);
|
||||
|
||||
ASSERT_EQ(1, r.size());
|
||||
EXPECT_EQ("This, and that, is stuff."s, r[0]);
|
||||
}
|
||||
|
||||
TEST(StringsEditing, SplittingRegexByStringPatternAtStart) {
|
||||
auto r = mtx::string::split(",This, and that, is stuff."s, std::regex{", *"s});
|
||||
|
||||
ASSERT_EQ(4, r.size());
|
||||
EXPECT_EQ(""s, r[0]);
|
||||
EXPECT_EQ("This"s, r[1]);
|
||||
EXPECT_EQ("and that"s, r[2]);
|
||||
EXPECT_EQ("is stuff."s, r[3]);
|
||||
}
|
||||
|
||||
TEST(StringsEditing, SplittingRegexByStringPatternAtEnd) {
|
||||
auto r = mtx::string::split("This, and that, is stuff.,"s, std::regex{", *"s});
|
||||
|
||||
ASSERT_EQ(4, r.size());
|
||||
EXPECT_EQ("This"s, r[0]);
|
||||
EXPECT_EQ("and that"s, r[1]);
|
||||
EXPECT_EQ("is stuff."s, r[2]);
|
||||
EXPECT_EQ(""s, r[3]);
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user