Lines Matching refs:set

18 TEST(set, DefaultConstructor)  in TEST()  argument
20 Set<int> set; in TEST() local
21 EXPECT_EQ(set.size(), 0); in TEST()
22 EXPECT_TRUE(set.is_empty()); in TEST()
25 TEST(set, ContainsNotExistant) in TEST() argument
27 Set<int> set; in TEST() local
28 EXPECT_FALSE(set.contains(3)); in TEST()
31 TEST(set, ContainsExistant) in TEST() argument
33 Set<int> set; in TEST() local
34 EXPECT_FALSE(set.contains(5)); in TEST()
35 EXPECT_TRUE(set.is_empty()); in TEST()
36 set.add(5); in TEST()
37 EXPECT_TRUE(set.contains(5)); in TEST()
38 EXPECT_FALSE(set.is_empty()); in TEST()
41 TEST(set, AddMany) in TEST() argument
43 Set<int> set; in TEST() local
45 set.add(i); in TEST()
49 EXPECT_TRUE(set.contains(i)); in TEST()
52 EXPECT_FALSE(set.contains(i)); in TEST()
56 TEST(set, InitializerListConstructor) in TEST() argument
58 Set<int> set = {4, 5, 6}; in TEST() local
59 EXPECT_EQ(set.size(), 3); in TEST()
60 EXPECT_TRUE(set.contains(4)); in TEST()
61 EXPECT_TRUE(set.contains(5)); in TEST()
62 EXPECT_TRUE(set.contains(6)); in TEST()
63 EXPECT_FALSE(set.contains(2)); in TEST()
64 EXPECT_FALSE(set.contains(3)); in TEST()
67 TEST(set, CopyConstructor) in TEST() argument
69 Set<int> set = {3}; in TEST() local
70 EXPECT_TRUE(set.contains(3)); in TEST()
71 EXPECT_FALSE(set.contains(4)); in TEST()
73 Set<int> set2(set); in TEST()
78 EXPECT_FALSE(set.contains(4)); in TEST()
81 TEST(set, MoveConstructor) in TEST() argument
83 Set<int> set = {1, 2, 3}; in TEST() local
84 EXPECT_EQ(set.size(), 3); in TEST()
85 Set<int> set2(std::move(set)); in TEST()
86 EXPECT_EQ(set.size(), 0); /* NOLINT: bugprone-use-after-move */ in TEST()
90 TEST(set, CopyAssignment) in TEST() argument
92 Set<int> set = {3}; in TEST() local
93 EXPECT_TRUE(set.contains(3)); in TEST()
94 EXPECT_FALSE(set.contains(4)); in TEST()
97 set2 = set; in TEST()
102 EXPECT_FALSE(set.contains(4)); in TEST()
105 TEST(set, MoveAssignment) in TEST() argument
107 Set<int> set = {1, 2, 3}; in TEST() local
108 EXPECT_EQ(set.size(), 3); in TEST()
110 set2 = std::move(set); in TEST()
111 EXPECT_EQ(set.size(), 0); /* NOLINT: bugprone-use-after-move */ in TEST()
115 TEST(set, RemoveContained) in TEST() argument
117 Set<int> set = {3, 4, 5}; in TEST() local
118 EXPECT_TRUE(set.contains(3)); in TEST()
119 EXPECT_TRUE(set.contains(4)); in TEST()
120 EXPECT_TRUE(set.contains(5)); in TEST()
121 set.remove_contained(4); in TEST()
122 EXPECT_TRUE(set.contains(3)); in TEST()
123 EXPECT_FALSE(set.contains(4)); in TEST()
124 EXPECT_TRUE(set.contains(5)); in TEST()
125 set.remove_contained(3); in TEST()
126 EXPECT_FALSE(set.contains(3)); in TEST()
127 EXPECT_FALSE(set.contains(4)); in TEST()
128 EXPECT_TRUE(set.contains(5)); in TEST()
129 set.remove_contained(5); in TEST()
130 EXPECT_FALSE(set.contains(3)); in TEST()
131 EXPECT_FALSE(set.contains(4)); in TEST()
132 EXPECT_FALSE(set.contains(5)); in TEST()
135 TEST(set, RemoveContainedMany) in TEST() argument
137 Set<int> set; in TEST() local
139 set.add(i); in TEST()
142 set.remove_contained(i); in TEST()
145 set.add(i); in TEST()
150 EXPECT_TRUE(set.contains(i)); in TEST()
153 EXPECT_FALSE(set.contains(i)); in TEST()
158 TEST(set, Intersects) in TEST() argument
166 TEST(set, Disjoint) in TEST() argument
174 TEST(set, AddMultiple) in TEST() argument
187 TEST(set, AddMultipleNew) in TEST() argument
195 TEST(set, Iterator) in TEST() argument
197 Set<int> set = {1, 3, 2, 5, 4}; in TEST() local
199 for (int value : set) { in TEST()
210 TEST(set, OftenAddRemoveContained) in TEST() argument
212 Set<int> set; in TEST() local
214 set.add(42); in TEST()
215 EXPECT_EQ(set.size(), 1); in TEST()
216 set.remove_contained(42); in TEST()
217 EXPECT_EQ(set.size(), 0); in TEST()
221 TEST(set, UniquePtrValues) in TEST() argument
223 Set<std::unique_ptr<int>> set; in TEST() local
224 set.add_new(std::unique_ptr<int>(new int())); in TEST()
226 set.add_new(std::move(value1)); in TEST()
227 set.add(std::unique_ptr<int>(new int())); in TEST()
229 EXPECT_EQ(set.size(), 3); in TEST()
232 TEST(set, Clear) in TEST() argument
234 Set<int> set = {3, 4, 6, 7}; in TEST() local
235 EXPECT_EQ(set.size(), 4); in TEST()
236 set.clear(); in TEST()
237 EXPECT_EQ(set.size(), 0); in TEST()
240 TEST(set, StringSet) in TEST() argument
242 Set<std::string> set; in TEST() local
243 set.add("hello"); in TEST()
244 set.add("world"); in TEST()
245 EXPECT_EQ(set.size(), 2); in TEST()
246 EXPECT_TRUE(set.contains("hello")); in TEST()
247 EXPECT_TRUE(set.contains("world")); in TEST()
248 EXPECT_FALSE(set.contains("world2")); in TEST()
251 TEST(set, PointerSet) in TEST() argument
254 Set<int *> set; in TEST() local
255 set.add(&a); in TEST()
256 set.add(&b); in TEST()
257 EXPECT_EQ(set.size(), 2); in TEST()
258 EXPECT_TRUE(set.contains(&a)); in TEST()
259 EXPECT_TRUE(set.contains(&b)); in TEST()
260 EXPECT_FALSE(set.contains(&c)); in TEST()
263 TEST(set, Remove) in TEST() argument
265 Set<int> set = {1, 2, 3, 4, 5, 6}; in TEST() local
266 EXPECT_EQ(set.size(), 6); in TEST()
267 EXPECT_TRUE(set.remove(2)); in TEST()
268 EXPECT_EQ(set.size(), 5); in TEST()
269 EXPECT_FALSE(set.contains(2)); in TEST()
270 EXPECT_FALSE(set.remove(2)); in TEST()
271 EXPECT_EQ(set.size(), 5); in TEST()
272 EXPECT_TRUE(set.remove(5)); in TEST()
273 EXPECT_EQ(set.size(), 4); in TEST()
310 TEST(set, ContainsAs) in TEST() argument
312 Set<Type1> set; in TEST() local
313 set.add(Type1{5}); in TEST()
314 EXPECT_TRUE(set.contains_as(Type1{5})); in TEST()
315 EXPECT_TRUE(set.contains_as(Type2{5})); in TEST()
316 EXPECT_FALSE(set.contains_as(Type1{6})); in TEST()
317 EXPECT_FALSE(set.contains_as(Type2{6})); in TEST()
320 TEST(set, ContainsAsString) in TEST() argument
322 Set<std::string> set; in TEST() local
323 set.add("test"); in TEST()
324 EXPECT_TRUE(set.contains_as("test")); in TEST()
325 EXPECT_TRUE(set.contains_as(StringRef("test"))); in TEST()
326 EXPECT_FALSE(set.contains_as("string")); in TEST()
327 EXPECT_FALSE(set.contains_as(StringRef("string"))); in TEST()
330 TEST(set, RemoveContainedAs) in TEST() argument
332 Set<Type1> set; in TEST() local
333 set.add(Type1{5}); in TEST()
334 EXPECT_TRUE(set.contains_as(Type2{5})); in TEST()
335 set.remove_contained_as(Type2{5}); in TEST()
336 EXPECT_FALSE(set.contains_as(Type2{5})); in TEST()
339 TEST(set, RemoveAs) in TEST() argument
341 Set<Type1> set; in TEST() local
342 set.add(Type1{5}); in TEST()
343 EXPECT_TRUE(set.contains_as(Type2{5})); in TEST()
344 set.remove_as(Type2{6}); in TEST()
345 EXPECT_TRUE(set.contains_as(Type2{5})); in TEST()
346 set.remove_as(Type2{5}); in TEST()
347 EXPECT_FALSE(set.contains_as(Type2{5})); in TEST()
348 set.remove_as(Type2{5}); in TEST()
349 EXPECT_FALSE(set.contains_as(Type2{5})); in TEST()
352 TEST(set, AddAs) in TEST() argument
354 Set<std::string> set; in TEST() local
355 EXPECT_TRUE(set.add_as("test")); in TEST()
356 EXPECT_TRUE(set.add_as(StringRef("qwe"))); in TEST()
357 EXPECT_FALSE(set.add_as(StringRef("test"))); in TEST()
358 EXPECT_FALSE(set.add_as("qwe")); in TEST()
375 TEST(set, CustomizeHashAndEquality) in TEST() argument
377 Set<uint, 0, DefaultProbingStrategy, HashIntModN<10>, EqualityIntModN<10>> set; in TEST() local
378 set.add(4); in TEST()
379 EXPECT_TRUE(set.contains(4)); in TEST()
380 EXPECT_TRUE(set.contains(14)); in TEST()
381 EXPECT_TRUE(set.contains(104)); in TEST()
382 EXPECT_FALSE(set.contains(5)); in TEST()
383 set.add(55); in TEST()
384 EXPECT_TRUE(set.contains(5)); in TEST()
385 EXPECT_TRUE(set.contains(14)); in TEST()
386 set.remove(1004); in TEST()
387 EXPECT_FALSE(set.contains(14)); in TEST()
390 TEST(set, IntrusiveIntKey) in TEST() argument
398 set; in TEST() local
399 EXPECT_TRUE(set.add(4)); in TEST()
400 EXPECT_TRUE(set.add(3)); in TEST()
401 EXPECT_TRUE(set.add(11)); in TEST()
402 EXPECT_TRUE(set.add(8)); in TEST()
403 EXPECT_FALSE(set.add(3)); in TEST()
404 EXPECT_FALSE(set.add(4)); in TEST()
405 EXPECT_TRUE(set.remove(4)); in TEST()
406 EXPECT_FALSE(set.remove(7)); in TEST()
407 EXPECT_TRUE(set.add(4)); in TEST()
408 EXPECT_TRUE(set.remove(4)); in TEST()
426 TEST(set, LookupKey) in TEST() argument
428 Set<MyKeyType> set; in TEST() local
429 set.add({1, 10}); in TEST()
430 set.add({2, 20}); in TEST()
431 EXPECT_EQ(set.lookup_key({1, 30}).attached_data, 10); in TEST()
432 EXPECT_EQ(set.lookup_key({2, 0}).attached_data, 20); in TEST()
435 TEST(set, LookupKeyDefault) in TEST() argument
437 Set<MyKeyType> set; in TEST() local
438 set.add({1, 10}); in TEST()
439 set.add({2, 20}); in TEST()
442 EXPECT_EQ(set.lookup_key_default({1, 66}, fallback).attached_data, 10); in TEST()
443 EXPECT_EQ(set.lookup_key_default({4, 40}, fallback).attached_data, 50); in TEST()
446 TEST(set, LookupKeyPtr) in TEST() argument
448 Set<MyKeyType> set; in TEST() local
449 set.add({1, 10}); in TEST()
450 set.add({2, 20}); in TEST()
451 EXPECT_EQ(set.lookup_key_ptr({1, 50})->attached_data, 10); in TEST()
452 EXPECT_EQ(set.lookup_key_ptr({2, 50})->attached_data, 20); in TEST()
453 EXPECT_EQ(set.lookup_key_ptr({3, 50}), nullptr); in TEST()
456 TEST(set, LookupKeyOrAdd) in TEST() argument
458 Set<MyKeyType> set; in TEST() local
459 set.add({1, 10}); in TEST()
460 set.add({2, 20}); in TEST()
461 EXPECT_EQ(set.size(), 2); in TEST()
462 EXPECT_EQ(set.lookup_key_or_add({2, 40}).attached_data, 20); in TEST()
463 EXPECT_EQ(set.size(), 2); in TEST()
464 EXPECT_EQ(set.lookup_key_or_add({3, 40}).attached_data, 40); in TEST()
465 EXPECT_EQ(set.size(), 3); in TEST()
466 EXPECT_EQ(set.lookup_key_or_add({3, 60}).attached_data, 40); in TEST()
467 EXPECT_EQ(set.size(), 3); in TEST()
470 TEST(set, StringViewKeys) in TEST() argument
472 Set<std::string_view> set; in TEST() local
473 set.add("hello"); in TEST()
474 set.add("world"); in TEST()
475 EXPECT_FALSE(set.contains("worlds")); in TEST()
476 EXPECT_TRUE(set.contains("world")); in TEST()
477 EXPECT_TRUE(set.contains("hello")); in TEST()
480 TEST(set, SpanConstructorExceptions) in TEST() argument
486 EXPECT_ANY_THROW({ Set<ExceptionThrower> set(span); }); in TEST()
489 TEST(set, CopyConstructorExceptions) in TEST() argument
491 Set<ExceptionThrower> set = {1, 2, 3, 4, 5}; in TEST() local
492 set.lookup_key(3).throw_during_copy = true; in TEST()
493 EXPECT_ANY_THROW({ Set<ExceptionThrower> set_copy(set); }); in TEST()
496 TEST(set, MoveConstructorExceptions) in TEST() argument
499 SetType set = {1, 2, 3}; in TEST() local
500 set.lookup_key(2).throw_during_move = true; in TEST()
501 EXPECT_ANY_THROW({ SetType set_moved(std::move(set)); }); in TEST()
502 EXPECT_EQ(set.size(), 0); /* NOLINT: bugprone-use-after-move */ in TEST()
503 set.add_multiple({3, 6, 7}); in TEST()
504 EXPECT_EQ(set.size(), 3); in TEST()
507 TEST(set, AddNewExceptions) in TEST() argument
509 Set<ExceptionThrower> set; in TEST() local
512 EXPECT_ANY_THROW({ set.add_new(value); }); in TEST()
513 EXPECT_EQ(set.size(), 0); in TEST()
514 EXPECT_ANY_THROW({ set.add_new(value); }); in TEST()
515 EXPECT_EQ(set.size(), 0); in TEST()
518 TEST(set, AddExceptions) in TEST() argument
520 Set<ExceptionThrower> set; in TEST() local
523 EXPECT_ANY_THROW({ set.add(value); }); in TEST()
524 EXPECT_EQ(set.size(), 0); in TEST()
525 EXPECT_ANY_THROW({ set.add(value); }); in TEST()
526 EXPECT_EQ(set.size(), 0); in TEST()
543 SetT set;
547 set.add(value);
554 count += set.contains(value);
560 count += set.remove(value);
568 TEST(set, Benchmark)