@@ -232,6 +232,14 @@ int main() {
expect_eq(trim_start("\r\n"sv), ""sv);
});
etest::test("trim start, should_trim", [] {
expect_eq(trim_start(" abc "sv, [](char c) { return c == ' '; }), "abc "sv);
expect_eq(trim_start(" abc "sv, [](char c) { return c <= 'a'; }), "bc "sv);
expect_eq(trim_start(" abc "sv, [](char c) { return c <= 'b'; }), "c "sv);
expect_eq(trim_start(" abc "sv, [](char c) { return c <= 'c'; }), ""sv);
expect_eq(trim_start(" abc "sv, [](char c) { return c == '\t'; }), " abc "sv);
});
etest::test("trim end", [] {
expect_eq(trim_end("abc "sv), "abc"sv);
expect_eq(trim_end("53 \r\n"sv), "53"sv);
@@ -240,6 +248,13 @@ int main() {
expect_eq(trim_end("\r\n"sv), ""sv);
});
etest::test("trim end, should_trim", [] {
expect_eq(trim_end(" abc "sv, [](char c) { return c == ' '; }), " abc"sv);
expect_eq(trim_end(" abc "sv, [](char c) { return c <= 'c'; }), ""sv);
expect_eq(trim_end(" abc "sv, [](char c) { return c == ' ' || c >= 'b'; }), " a"sv);
expect_eq(trim_end(" abc "sv, [](char c) { return c == '\t'; }), " abc "sv);
});
etest::test("trim", [] {
expect_eq(trim("abc"sv), "abc"sv);
expect_eq(trim("\t431"sv), "431"sv);
@@ -249,6 +264,13 @@ int main() {
expect_eq(trim("\r\n"sv), ""sv);
});
etest::test("trim, should_trim", [] {
expect_eq(trim("abcba"sv, [](char c) { return c == ' '; }), "abcba"sv);
expect_eq(trim("abcba"sv, [](char c) { return c <= 'a'; }), "bcb"sv);
expect_eq(trim("abcba"sv, [](char c) { return c <= 'b'; }), "c"sv);
expect_eq(trim("abcba"sv, [](char c) { return c <= 'c'; }), ""sv);
});
etest::test("trim with non-ascii characters", [] {
expect_eq(trim("Ö"sv), "Ö"sv);
expect_eq(trim(" Ö "sv), "Ö"sv);