diff options
author | Devtools Arcadia <arcadia-devtools@yandex-team.ru> | 2022-02-07 18:08:42 +0300 |
---|---|---|
committer | Devtools Arcadia <arcadia-devtools@mous.vla.yp-c.yandex.net> | 2022-02-07 18:08:42 +0300 |
commit | 1110808a9d39d4b808aef724c861a2e1a38d2a69 (patch) | |
tree | e26c9fed0de5d9873cce7e00bc214573dc2195b7 /library/cpp/deprecated/accessors/accessors_ut.cpp | |
download | ydb-1110808a9d39d4b808aef724c861a2e1a38d2a69.tar.gz |
intermediate changes
ref:cde9a383711a11544ce7e107a78147fb96cc4029
Diffstat (limited to 'library/cpp/deprecated/accessors/accessors_ut.cpp')
-rw-r--r-- | library/cpp/deprecated/accessors/accessors_ut.cpp | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/library/cpp/deprecated/accessors/accessors_ut.cpp b/library/cpp/deprecated/accessors/accessors_ut.cpp new file mode 100644 index 0000000000..a9bdc9fcc4 --- /dev/null +++ b/library/cpp/deprecated/accessors/accessors_ut.cpp @@ -0,0 +1,92 @@ +#include "accessors.h" + +#include <library/cpp/testing/unittest/registar.h> + +#include <util/generic/buffer.h> +#include <util/generic/vector.h> + +#include <array> + +class TAccessorsTest: public TTestBase { + UNIT_TEST_SUITE(TAccessorsTest); + UNIT_TEST(TestAccessors); + UNIT_TEST_SUITE_END(); + +private: + template <typename T> + void TestRead(const T& t, const char* comm) { + const char* beg = (const char*)NAccessors::Begin(t); + const char* end = (const char*)NAccessors::End(t); + long sz = NAccessors::Size(t) * sizeof(typename TMemoryTraits<T>::TElementType); + + UNIT_ASSERT_VALUES_EQUAL_C(end - beg, sz, comm); + } + + template <typename T> + void TestWrite(const char* comm) { + typename TMemoryTraits<T>::TElementType val[4] = {'t', 'e', 's', 't'}; + T t; + NAccessors::Init(t); + NAccessors::Reserve(t, 6); + + size_t sz = NAccessors::Size(t); + UNIT_ASSERT_VALUES_EQUAL_C(0u, sz, comm); + + NAccessors::Append(t, 'a'); + sz = NAccessors::Size(t); + UNIT_ASSERT_VALUES_EQUAL_C(1u, sz, comm); + + NAccessors::Append(t, val, val + 4); + sz = NAccessors::Size(t); + UNIT_ASSERT_VALUES_EQUAL_C(5u, sz, comm); + + NAccessors::Clear(t); + + sz = NAccessors::Size(t); + UNIT_ASSERT_VALUES_EQUAL_C(0u, sz, comm); + } + + void TestAccessors() { + TestRead('a', "char"); + TestRead(1, "int"); + + int t[4] = {0, 1, 2, 3}; + + TestRead(t, "int[4]"); + + TStringBuf sbuf = "test"; + + TestRead(sbuf, "TStringBuf"); + + TUtf16String wtr; + wtr.resize(10, 1024); + + TestRead(wtr, "TUtf16String"); + + TBuffer buf; + buf.Resize(30); + + TestRead(buf, "TBuffer"); + + TVector<ui64> vec(10, 100); + + TestRead(vec, "TVector<ui64>"); + + TestWrite<TString>("TString"); + TestWrite<TVector<char>>("TVector<char>"); + TestWrite<TBuffer>("TBuffer"); + TestWrite<TVector<ui64>>("TVector<ui64>"); + TestWrite<TUtf16String>("TUtf16String"); + + std::array<TString, 10> sarr; + NAccessors::Init(sarr); + NAccessors::Clear(sarr); + + std::array<char, 10> carr; + NAccessors::Init(carr); + NAccessors::Clear(carr); + TestRead(carr, "std::array<char, 10>"); + } +}; + +UNIT_TEST_SUITE_REGISTRATION(TAccessorsTest) |