aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/case_insensitive_string/case_insensitive_string_ut.cpp
diff options
context:
space:
mode:
authorarcadia-devtools <arcadia-devtools@yandex-team.ru>2022-02-17 12:04:09 +0300
committerarcadia-devtools <arcadia-devtools@yandex-team.ru>2022-02-17 12:04:09 +0300
commit2c8e314f8fff8633fe2cf026badfbf6180845ae0 (patch)
treec3b650d13934ec1315e3660d60fd2275f09b03a7 /library/cpp/case_insensitive_string/case_insensitive_string_ut.cpp
parenta49ae9d891c35087b242c854f69880fd9fecbddd (diff)
downloadydb-2c8e314f8fff8633fe2cf026badfbf6180845ae0.tar.gz
intermediate changes
ref:d5f945ecdc1f5af1ad57e12787c6b8ed1a9f0f12
Diffstat (limited to 'library/cpp/case_insensitive_string/case_insensitive_string_ut.cpp')
-rw-r--r--library/cpp/case_insensitive_string/case_insensitive_string_ut.cpp65
1 files changed, 65 insertions, 0 deletions
diff --git a/library/cpp/case_insensitive_string/case_insensitive_string_ut.cpp b/library/cpp/case_insensitive_string/case_insensitive_string_ut.cpp
new file mode 100644
index 0000000000..49f9c59c95
--- /dev/null
+++ b/library/cpp/case_insensitive_string/case_insensitive_string_ut.cpp
@@ -0,0 +1,65 @@
+#include "case_insensitive_string.h"
+
+#include <util/generic/string_ut.h>
+
+class TCaseInsensitiveStringTest : public TTestBase, private TStringTestImpl<TCaseInsensitiveString, TTestData<char>> {
+public:
+ UNIT_TEST_SUITE(TCaseInsensitiveStringTest);
+ UNIT_TEST(TestOperators);
+ UNIT_TEST(TestOperatorsCI);
+
+ UNIT_TEST_SUITE_END();
+};
+
+UNIT_TEST_SUITE_REGISTRATION(TCaseInsensitiveStringTest);
+
+Y_UNIT_TEST_SUITE(TCaseInsensitiveStringTestEx) {
+ Y_UNIT_TEST(BasicTString) {
+ TCaseInsensitiveString foo("foo");
+ TCaseInsensitiveString FOO("FOO");
+ TCaseInsensitiveString Bar("Bar");
+ TCaseInsensitiveString bAR("bAR");
+
+ UNIT_ASSERT_EQUAL(foo, FOO);
+ UNIT_ASSERT_EQUAL(Bar, bAR);
+
+ constexpr TCaseInsensitiveStringBuf foobar("foobar");
+ UNIT_ASSERT(foobar.StartsWith(foo));
+ UNIT_ASSERT(foobar.StartsWith(FOO));
+ UNIT_ASSERT(foobar.EndsWith(Bar));
+ UNIT_ASSERT(foobar.EndsWith(bAR));
+ UNIT_ASSERT(foobar.Contains(FOO));
+ UNIT_ASSERT(foobar.Contains(Bar));
+ }
+
+ Y_UNIT_TEST(BasicStdString) {
+ using TCaseInsensitiveStdString = std::basic_string<char, TCaseInsensitiveCharTraits>;
+ using TCaseInsensitiveStringView = std::basic_string_view<char, TCaseInsensitiveCharTraits>;
+
+ TCaseInsensitiveStdString foo("foo");
+ TCaseInsensitiveStdString FOO("FOO");
+ TCaseInsensitiveStdString Bar("Bar");
+ TCaseInsensitiveStdString bAR("bAR");
+
+ UNIT_ASSERT_EQUAL(foo, FOO);
+ UNIT_ASSERT_EQUAL(Bar, bAR);
+
+ constexpr TCaseInsensitiveStringView foobar("foobar");
+ UNIT_ASSERT(foobar.starts_with(foo));
+ UNIT_ASSERT(foobar.starts_with(FOO));
+ UNIT_ASSERT(foobar.ends_with(Bar));
+ UNIT_ASSERT(foobar.ends_with(bAR));
+ //TODO: test contains after C++23
+ }
+
+/*
+ Y_UNIT_TEST(TestSplit) {
+ TCaseInsensitiveStringBuf input("splitAmeAbro");
+ TVector<TCaseInsensitiveStringBuf> expected{"split", "me", "bro"};
+
+ TVector<TCaseInsensitiveStringBuf> split = StringSplitter(input).Split('a');
+
+ UNIT_ASSERT_VALUES_EQUAL(split, expected);
+ }
+*/
+}