MCPcopy Create free account
hub / github.com/SergeyMakeev/ExcaliburHash / TEST

Function TEST

ExcaliburHashTest02.cpp:55–120  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

53} // namespace Excalibur
54
55TEST(SmFlatHashMap, CtorDtorCallCount)
56{
57 ctorCallCount = 0;
58 dtorCallCount = 0;
59 assignCallCount = 0;
60
61 {
62 // empty hash table
63 Excalibur::HashTable<ComplexStruct, int, 4> ht;
64 EXPECT_TRUE(ht.empty());
65 EXPECT_EQ(ht.size(), 0u);
66 EXPECT_GE(ht.capacity(), 0u);
67
68 // emplace elements
69 const uint32_t kNumElements = 5;
70 for (uint32_t i = 0; i < kNumElements; i++)
71 {
72 int v = 3 + i;
73 auto it = ht.emplace(ComplexStruct{256 * i + 1}, v);
74 EXPECT_TRUE(it.second);
75 }
76
77 EXPECT_FALSE(ht.empty());
78 EXPECT_EQ(ht.size(), kNumElements);
79 EXPECT_GE(ht.capacity(), kNumElements);
80
81 // check if those elements exists and have expected value and then remove then
82 for (uint32_t i = 0; i < kNumElements; i++)
83 {
84 uint32_t k = 256 * i + 1;
85
86 auto htVal = ht.find(k);
87 ASSERT_NE(htVal, ht.iend());
88
89 int refVal = 3 + i;
90 EXPECT_EQ(htVal.value(), refVal);
91
92 bool isErased = ht.erase(k);
93 EXPECT_TRUE(isErased);
94 }
95 EXPECT_TRUE(ht.empty());
96 EXPECT_EQ(ht.size(), 0u);
97 EXPECT_GE(ht.capacity(), 0u);
98
99 ht.emplace(ComplexStruct{13}, 13);
100 ht.emplace(ComplexStruct{6}, 6);
101 EXPECT_FALSE(ht.empty());
102 EXPECT_EQ(ht.size(), 2u);
103 EXPECT_GE(ht.capacity(), 2u);
104
105 ht.clear();
106 EXPECT_TRUE(ht.empty());
107 EXPECT_EQ(ht.size(), 0u);
108 EXPECT_GE(ht.capacity(), 0u);
109
110 ht.emplace(ComplexStruct{13}, 13);
111 ht.emplace(ComplexStruct{6}, 6);
112 ht.emplace(ComplexStruct{9}, 9);

Callers

nothing calls this directly

Calls 1

valueMethod · 0.80

Tested by

no test coverage detected