MCPcopy Create free account
hub / github.com/HelenOS/helenos / test_emplace_insert

Method test_emplace_insert

uspace/lib/cpp/src/__bits/test/set.cpp:116–178  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

114 }
115
116 void set_test::test_emplace_insert()
117 {
118 std::set<int> set1{};
119
120 auto res1 = set1.emplace(1);
121 test_eq("first emplace succession", res1.second, true);
122 test_eq("first emplace equivalence", *res1.first, 1);
123
124 auto res2 = set1.emplace(1);
125 test_eq("second emplace failure", res2.second, false);
126 test_eq("second emplace equivalence", *res2.first, 1);
127
128 auto res3 = set1.emplace_hint(set1.begin(), 2);
129 test_eq("first emplace_hint succession", (res3 != set1.end()), true);
130 test_eq("first emplace_hint equivalence", *res3, 2);
131
132 auto res4 = set1.emplace_hint(set1.begin(), 2);
133 test_eq("second emplace_hint failure", (res4 != set1.end()), true);
134 test_eq("second emplace_hint equivalence", *res4, 2);
135
136 std::set<std::string> set2{};
137 auto res5 = set2.insert("A");
138 test_eq("conversion insert succession", res5.second, true);
139 test_eq("conversion insert equivalence", *res5.first, std::string{"A"});
140
141 auto res6 = set2.insert(std::string{"B"});
142 test_eq("first insert succession", res6.second, true);
143 test_eq("first insert equivalence", *res6.first, std::string{"B"});
144
145 auto res7 = set2.insert(std::string{"B"});
146 test_eq("second insert failure", res7.second, false);
147 test_eq("second insert equivalence", *res7.first, std::string{"B"});
148
149 auto res10 = set1.erase(set1.find(2));
150 test_eq("erase", set1.find(2), set1.end());
151 test_eq("highest erased", res10, set1.end());
152
153 set2.insert(std::string{"G"});
154 set2.insert(std::string{"H"});
155 set2.insert(std::string{"K"});
156 auto res11 = set2.erase(std::string{"G"});
157 test_eq("erase by key pt1", res11, 1U);
158 auto res12 = set2.erase(std::string{"M"});
159 test_eq("erase by key pt2", res12, 0U);
160
161 std::set<int> set3{};
162 set3.insert(1);
163 auto res13 = set3.erase(1);
164 test_eq("erase root by key pt1", res13, 1U);
165 test_eq("erase root by key pt2", set3.empty(), true);
166
167 set3.insert(3);
168 auto res14 = set3.erase(set3.begin());
169 test_eq("erase root by iterator pt1", res14, set3.end());
170 test_eq("erase root by iterator pt2", set3.empty(), true);
171
172 set2.clear();
173 test_eq("clear", set2.empty(), true);

Callers

nothing calls this directly

Calls 10

emplaceMethod · 0.45
emplace_hintMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
insertMethod · 0.45
eraseMethod · 0.45
findMethod · 0.45
emptyMethod · 0.45
clearMethod · 0.45
countMethod · 0.45

Tested by

no test coverage detected