| 161 | |
| 162 | template <class Adapter, class C> |
| 163 | void testAssociativeSequenceInt() |
| 164 | { |
| 165 | C ints; |
| 166 | |
| 167 | // Adapter<>::reserve() |
| 168 | Adapter::reserve(ints, 10); |
| 169 | |
| 170 | // Adapter<>::insert(&) |
| 171 | Adapter::insert(ints, 42); |
| 172 | EXPECT_EQ(1, ints.size()); |
| 173 | |
| 174 | // Adapter<>::insert(&&) |
| 175 | int i{43}; |
| 176 | Adapter::insert(ints, std::move(i)); |
| 177 | EXPECT_EQ(2, ints.size()); |
| 178 | |
| 179 | // Adapter<>::indexOf() / Adapter<>::contains() |
| 180 | // Testing indexOf() has no sense with associative containers (QSet is an hashtable) |
| 181 | EXPECT_NE(Adapter::indexOf(ints, 42), Adapter::indexOf(ints, 43)); |
| 182 | EXPECT_EQ(-1, Adapter::indexOf(ints, 4242)); |
| 183 | EXPECT_TRUE(Adapter::contains(ints, 42)); |
| 184 | EXPECT_FALSE(Adapter::contains(ints, 4242)); |
| 185 | |
| 186 | // Adapter<>::append(&) |
| 187 | Adapter::append(ints, 72); |
| 188 | EXPECT_EQ(3, ints.size()); |
| 189 | |
| 190 | // Adapter<>::append(&&) |
| 191 | int i2{43}; |
| 192 | Adapter::append(ints, std::move(i2)); |
| 193 | EXPECT_EQ(3, ints.size()); // 43 already inserted |
| 194 | int i3{44}; |
| 195 | Adapter::append(ints, std::move(i3)); |
| 196 | EXPECT_EQ(4, ints.size()); |
| 197 | |
| 198 | // Adapter<>::remove() |
| 199 | Adapter::remove(ints, 0); // Remove "a value"! |
| 200 | EXPECT_EQ(3, ints.size()); |
| 201 | |
| 202 | // Adapter<>::removeAll() |
| 203 | Adapter::insert(ints, 42); |
| 204 | Adapter::insert(ints, 43); |
| 205 | Adapter::insert(ints, 42); |
| 206 | |
| 207 | // Can't have the removed item count with std::vector |
| 208 | const auto originalSize = ints.size(); |
| 209 | // Can't test removeAll, with std it _always_ return -1 |
| 210 | Adapter::removeAll(ints, 42); |
| 211 | EXPECT_EQ(originalSize - 1, ints.size()); |
| 212 | } |
| 213 | |
| 214 | TEST( qcmAdapter, qSetInt ) |
| 215 | { |