aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp/containers/compact_vector/compact_vector_ut.cpp
diff options
context:
space:
mode:
authorvadim-xd <vadim-xd@yandex-team.com>2025-03-05 13:38:13 +0300
committervadim-xd <vadim-xd@yandex-team.com>2025-03-05 13:56:24 +0300
commit51f0d168cd2bc8ee1021d398e14ac88dcf0a38ec (patch)
tree99ab696870ab128713d9e2c8adf07d1c9cc22261 /library/cpp/containers/compact_vector/compact_vector_ut.cpp
parent9eed360f02de773a5ed2de5d2a3e81fc7f06acfa (diff)
downloadydb-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.cpp35
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);
+ }
}