diff options
author | vadim-xd <vadim-xd@yandex-team.com> | 2025-03-05 13:38:13 +0300 |
---|---|---|
committer | vadim-xd <vadim-xd@yandex-team.com> | 2025-03-05 13:56:24 +0300 |
commit | 51f0d168cd2bc8ee1021d398e14ac88dcf0a38ec (patch) | |
tree | 99ab696870ab128713d9e2c8adf07d1c9cc22261 /library/cpp/containers/compact_vector/compact_vector_ut.cpp | |
parent | 9eed360f02de773a5ed2de5d2a3e81fc7f06acfa (diff) | |
download | ydb-51f0d168cd2bc8ee1021d398e14ac88dcf0a38ec.tar.gz |
Add new methods for TCompactVector
commit_hash:dc7ab41cade426d450efbc68b6cd72e045e3f69e
Diffstat (limited to 'library/cpp/containers/compact_vector/compact_vector_ut.cpp')
-rw-r--r-- | library/cpp/containers/compact_vector/compact_vector_ut.cpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/library/cpp/containers/compact_vector/compact_vector_ut.cpp b/library/cpp/containers/compact_vector/compact_vector_ut.cpp index 4dba7b2f49..5aac5303f3 100644 --- a/library/cpp/containers/compact_vector/compact_vector_ut.cpp +++ b/library/cpp/containers/compact_vector/compact_vector_ut.cpp @@ -2,6 +2,8 @@ #include "compact_vector.h" +#include <string> + Y_UNIT_TEST_SUITE(TCompactVectorTest) { Y_UNIT_TEST(TestSimple1) { } @@ -44,6 +46,28 @@ Y_UNIT_TEST_SUITE(TCompactVectorTest) { UNIT_ASSERT_VALUES_EQUAL(11u, vector[11]); } + Y_UNIT_TEST(TestEmplace) { + struct TFoo { + explicit TFoo(int) + : ConstructedFrom("int") + { + } + + explicit TFoo(char) + : ConstructedFrom("char") + { + } + + std::string ConstructedFrom; + }; + + TCompactVector<TFoo> vector; + vector.emplace_back(123); + UNIT_ASSERT_VALUES_EQUAL(vector.back().ConstructedFrom, "int"); + vector.emplace_back('c'); + UNIT_ASSERT_VALUES_EQUAL(vector.back().ConstructedFrom, "char"); + } + Y_UNIT_TEST(TestInitializerListConstructor) { TCompactVector<ui32> vector = { 4, 8, 10, 3, 5}; UNIT_ASSERT_VALUES_EQUAL(5u, vector.Size()); @@ -146,4 +170,15 @@ Y_UNIT_TEST_SUITE(TCompactVectorTest) { UNIT_ASSERT_VALUES_EQUAL(vector[1], vector2[1]); UNIT_ASSERT_VALUES_EQUAL(vector[2], vector2[2]); } + + Y_UNIT_TEST(TestComparison) { + // UNIT_ASSERT_VALUES_EQUAL needs a specialization for Out(), so we just use bool assertions + TCompactVector<int> vector {1, 2, 3}; + TCompactVector<int> vector2 {1, 2}; + UNIT_ASSERT(vector != vector2); // diff size + vector2.emplace_back(4); + UNIT_ASSERT(vector != vector2); // diff values + vector2.back() = 3; + UNIT_ASSERT(vector == vector2); + } } |