summaryrefslogtreecommitdiffstats
path: root/util/string/strip_ut.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'util/string/strip_ut.cpp')
-rw-r--r--util/string/strip_ut.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/util/string/strip_ut.cpp b/util/string/strip_ut.cpp
index 37e5a4f04a0..1d47e21e23c 100644
--- a/util/string/strip_ut.cpp
+++ b/util/string/strip_ut.cpp
@@ -4,7 +4,43 @@
#include <util/charset/wide.h>
+#include <string_view>
+
Y_UNIT_TEST_SUITE(TStripStringTest) {
+ Y_UNIT_TEST(TestConstexprStrip) {
+ static constexpr std::string_view stripped = StripString<std::string_view>(" \n\t abc def \r\n ");
+ static_assert(stripped == "abc def");
+
+ static constexpr std::string_view strippedLeft = StripStringLeft(std::string_view(" \n abc \n "));
+ static_assert(strippedLeft == "abc \n ");
+
+ static constexpr std::string_view strippedRight = StripStringRight(std::string_view(" \n abc \n "));
+ static_assert(strippedRight == " \n abc");
+
+ static constexpr std::string_view empty = StripString<std::string_view>(" \n\t\r ");
+ static_assert(empty.empty());
+
+ static constexpr std::string_view unchanged = StripString<std::string_view>("abc");
+ static_assert(unchanged == "abc");
+
+ UNIT_ASSERT_VALUES_EQUAL(stripped, "abc def");
+ UNIT_ASSERT_VALUES_EQUAL(strippedLeft, "abc \n ");
+ UNIT_ASSERT_VALUES_EQUAL(strippedRight, " \n abc");
+ }
+
+ Y_UNIT_TEST(TestConstexprCustomStrip) {
+ static constexpr std::string_view stripped = StripString(std::string_view("//abc//"), EqualsStripAdapter('/'));
+ static_assert(stripped == "abc");
+
+ static constexpr std::string_view strippedLeft = StripStringLeft(std::string_view("//abc//"), EqualsStripAdapter('/'));
+ static_assert(strippedLeft == "abc//");
+
+ static constexpr std::string_view strippedRight = StripStringRight(std::string_view("//abc//"), EqualsStripAdapter('/'));
+ static_assert(strippedRight == "//abc");
+
+ UNIT_ASSERT_VALUES_EQUAL(stripped, "abc");
+ }
+
struct TStripTest {
TStringBuf Str;
TStringBuf StripLeftRes;