test/util/TestIntrusiveHashSet: add test for remove_and_dispose_key()
This commit is contained in:
parent
9691b609a2
commit
78801f303e
|
@ -118,3 +118,34 @@ TEST(IntrusiveHashSet, Basic)
|
||||||
ASSERT_EQ(e.value, -1);
|
ASSERT_EQ(e.value, -1);
|
||||||
ASSERT_EQ(f.value, -1);
|
ASSERT_EQ(f.value, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(IntrusiveHashSet, Multi)
|
||||||
|
{
|
||||||
|
IntItem a{1}, b{2}, c{3}, d{4}, e{5}, f{1};
|
||||||
|
|
||||||
|
IntrusiveHashSet<IntItem, 3,
|
||||||
|
IntrusiveHashSetOperators<IntItem::Hash,
|
||||||
|
IntItem::Equal>> set;
|
||||||
|
|
||||||
|
set.insert(a);
|
||||||
|
set.insert(b);
|
||||||
|
set.insert(c);
|
||||||
|
set.insert(d);
|
||||||
|
set.insert(e);
|
||||||
|
set.insert(f);
|
||||||
|
|
||||||
|
ASSERT_NE(set.find(f), set.end());
|
||||||
|
ASSERT_TRUE(&*set.find(a) == &a || &*set.find(a) == &f);
|
||||||
|
ASSERT_TRUE(&*set.find(f) == &a || &*set.find(f) == &f);
|
||||||
|
|
||||||
|
ASSERT_EQ(set.remove_and_dispose_key(a, [](auto*){}), 2U);
|
||||||
|
ASSERT_EQ(set.find(a), set.end());
|
||||||
|
ASSERT_EQ(set.find(f), set.end());
|
||||||
|
|
||||||
|
ASSERT_NE(set.find(b), set.end());
|
||||||
|
ASSERT_EQ(&*set.find(b), &b);
|
||||||
|
ASSERT_EQ(set.remove_and_dispose_key(b, [](auto*){}), 1U);
|
||||||
|
ASSERT_EQ(set.find(b), set.end());
|
||||||
|
ASSERT_EQ(set.remove_and_dispose_key(b, [](auto*){}), 0U);
|
||||||
|
ASSERT_EQ(set.find(b), set.end());
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue