diff options
author | arcadia-devtools <arcadia-devtools@yandex-team.ru> | 2022-02-17 12:04:09 +0300 |
---|---|---|
committer | arcadia-devtools <arcadia-devtools@yandex-team.ru> | 2022-02-17 12:04:09 +0300 |
commit | 2c8e314f8fff8633fe2cf026badfbf6180845ae0 (patch) | |
tree | c3b650d13934ec1315e3660d60fd2275f09b03a7 /library/cpp/case_insensitive_string/case_insensitive_string_ut.cpp | |
parent | a49ae9d891c35087b242c854f69880fd9fecbddd (diff) | |
download | ydb-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.cpp | 65 |
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); + } +*/ +} |