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

Function doMoveAssignmentTest

ExcaliburHashTest05.cpp:105–177  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

103};
104
105template <typename TFrom, typename TTo> void doMoveAssignmentTest(TFrom& hm1, TTo& hm2, size_t numValuesToInsert)
106{
107 // insert values
108 for (size_t i = 0; i < numValuesToInsert; i++)
109 {
110 hm1.emplace(int(i), uint32_t(i + 13));
111 }
112
113 {
114 EXPECT_TRUE(hm1.has(0));
115 EXPECT_TRUE(hm1.has(1));
116 EXPECT_TRUE(hm1.has(2));
117
118 auto it1 = hm1.find(0);
119 auto it2 = hm1.find(1);
120 auto it3 = hm1.find(2);
121
122 EXPECT_NE(it1, hm1.end());
123 EXPECT_NE(it2, hm1.end());
124 EXPECT_NE(it3, hm1.end());
125
126 const int& key1 = it1->first;
127 const ComplexVal& value1 = it1->second;
128
129 const int& key2 = it2->first;
130 const ComplexVal& value2 = it2->second;
131
132 const int& key3 = it3->first;
133 const ComplexVal& value3 = it3->second;
134
135 EXPECT_EQ(key1, 0);
136 EXPECT_EQ(key2, 1);
137 EXPECT_EQ(key3, 2);
138
139 EXPECT_EQ(value1.v, uint32_t(13));
140 EXPECT_EQ(value2.v, uint32_t(14));
141 EXPECT_EQ(value3.v, uint32_t(15));
142 }
143
144 // move assign to other hash map
145 hm2 = std::move(hm1);
146
147 {
148 EXPECT_TRUE(hm2.has(0));
149 EXPECT_TRUE(hm2.has(1));
150 EXPECT_TRUE(hm2.has(2));
151
152 auto it1 = hm2.find(0);
153 auto it2 = hm2.find(1);
154 auto it3 = hm2.find(2);
155
156 EXPECT_NE(it1, hm2.end());
157 EXPECT_NE(it2, hm2.end());
158 EXPECT_NE(it3, hm2.end());
159
160 const int& key1 = it1->first;
161 const ComplexVal& value1 = it1->second;
162

Callers 1

TESTFunction · 0.85

Calls 1

endMethod · 0.45

Tested by

no test coverage detected