1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- #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)
|