feat: finish string strip (maybe)
- add Trie Tree for string strip op. - finish string strip but it may still buggy (though i have tested it)
This commit is contained in:
@ -74,22 +74,39 @@ namespace yycctest::string::op {
|
||||
TEST(StringOp, Strip) {
|
||||
// Normal strip
|
||||
{
|
||||
auto rv = OP::to_strip(u8" \taaa\n", u8" \t\r\n");
|
||||
auto rv = OP::strip(u8" \taaa\n", u8" \t\r\n");
|
||||
EXPECT_EQ(rv, u8"aaa");
|
||||
}
|
||||
{
|
||||
auto rv = OP::lstrip(u8" \taaa\n", u8" \t\r\n");
|
||||
EXPECT_EQ(rv, u8"aaa\n");
|
||||
}
|
||||
{
|
||||
auto rv = OP::rstrip(u8" \taaa\n", u8" \t\r\n");
|
||||
EXPECT_EQ(rv, u8" \taaa");
|
||||
}
|
||||
|
||||
// Special strip
|
||||
{
|
||||
auto rv = OP::to_strip(u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>aaa<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
auto rv = OP::strip(u8"啊啊啊aaaあああ", u8"啊あ");
|
||||
EXPECT_EQ(rv, u8"aaa");
|
||||
}
|
||||
{
|
||||
auto rv = OP::to_strip(u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>aaa<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", u8"<EFBFBD><EFBFBD>");
|
||||
EXPECT_EQ(rv, u8"aaa<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
|
||||
auto rv = OP::strip(u8"啊啊啊aaaあああ", u8"啊");
|
||||
EXPECT_EQ(rv, u8"aaaあああ");
|
||||
}
|
||||
{
|
||||
auto rv = OP::to_strip(u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>aaa<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", u8"<EFBFBD><EFBFBD>");
|
||||
EXPECT_EQ(rv, u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>aaa");
|
||||
auto rv = OP::strip(u8"啊啊啊aaaあああ", u8"あ");
|
||||
EXPECT_EQ(rv, u8"啊啊啊aaa");
|
||||
}
|
||||
|
||||
// Possible buggy strip.
|
||||
// We use 2 UTF8 code points introduced following:
|
||||
// U+00AA (UTF-8: C2 AA)
|
||||
// U+1002A (UTF-8 : F0 90 80 AA)
|
||||
{
|
||||
auto rv = OP::rstrip(u8"aaa\u00AA", u8"\u00AA\U0001002A");
|
||||
EXPECT_EQ(rv, u8"aaa");
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user