summaryrefslogtreecommitdiff
path: root/Tests
diff options
context:
space:
mode:
authorIdan Horowitz <idan.horowitz@gmail.com>2021-09-08 03:07:34 +0300
committerIdan Horowitz <idan.horowitz@gmail.com>2021-09-08 19:17:07 +0300
commitcb9720baabf9bed1f501556cf6fbce88cd657514 (patch)
treeaedaa94f2e8c7cbbb9dae917e02e6b077a33ac80 /Tests
parent1db925076641526a3ef5c4c41fc94f0c9d3361ee (diff)
downloadserenity-cb9720baabf9bed1f501556cf6fbce88cd657514.zip
AK: Set IntrusiveRBTree Node key on insertion instead of construction
This makes the API look much nicer.
Diffstat (limited to 'Tests')
-rw-r--r--Tests/AK/TestIntrusiveRedBlackTree.cpp59
1 files changed, 28 insertions, 31 deletions
diff --git a/Tests/AK/TestIntrusiveRedBlackTree.cpp b/Tests/AK/TestIntrusiveRedBlackTree.cpp
index 3ae0c7fe56..a27e8abb18 100644
--- a/Tests/AK/TestIntrusiveRedBlackTree.cpp
+++ b/Tests/AK/TestIntrusiveRedBlackTree.cpp
@@ -12,9 +12,8 @@
class IntrusiveTest {
public:
- IntrusiveTest(int key, int value)
- : m_tree_node(key)
- , m_some_value(value)
+ IntrusiveTest(int value)
+ : m_some_value(value)
{
}
@@ -33,12 +32,12 @@ TEST_CASE(construct)
TEST_CASE(ints)
{
IntrusiveRBTree test;
- IntrusiveTest first { 1, 10 };
- test.insert(first);
- IntrusiveTest second { 3, 20 };
- test.insert(second);
- IntrusiveTest third { 2, 30 };
- test.insert(third);
+ IntrusiveTest first { 10 };
+ test.insert(1, first);
+ IntrusiveTest second { 20 };
+ test.insert(3, second);
+ IntrusiveTest third { 30 };
+ test.insert(2, third);
EXPECT_EQ(test.size(), 3u);
EXPECT_EQ(test.find(3)->m_some_value, 20);
EXPECT_EQ(test.find(2)->m_some_value, 30);
@@ -53,12 +52,12 @@ TEST_CASE(ints)
TEST_CASE(largest_smaller_than)
{
IntrusiveRBTree test;
- IntrusiveTest first { 1, 10 };
- test.insert(first);
- IntrusiveTest second { 11, 20 };
- test.insert(second);
- IntrusiveTest third { 21, 30 };
- test.insert(third);
+ IntrusiveTest first { 10 };
+ test.insert(1, first);
+ IntrusiveTest second { 20 };
+ test.insert(11, second);
+ IntrusiveTest third { 30 };
+ test.insert(21, third);
EXPECT_EQ(test.size(), 3u);
EXPECT_EQ(test.find_largest_not_above(3)->m_some_value, 10);
EXPECT_EQ(test.find_largest_not_above(17)->m_some_value, 20);
@@ -86,8 +85,8 @@ TEST_CASE(key_ordered_iteration)
// insert random keys
for (size_t i = 0; i < amount; i++) {
- auto entry = make<IntrusiveTest>(keys[i], keys[i]);
- test.insert(*entry);
+ auto entry = make<IntrusiveTest>(keys[i]);
+ test.insert(keys[i], *entry);
m_entries.append(move(entry));
}
@@ -108,8 +107,8 @@ TEST_CASE(clear)
IntrusiveRBTree test;
NonnullOwnPtrVector<IntrusiveTest> m_entries;
for (size_t i = 0; i < 1000; i++) {
- auto entry = make<IntrusiveTest>(i, i);
- test.insert(*entry);
+ auto entry = make<IntrusiveTest>(i);
+ test.insert(i, *entry);
m_entries.append(move(entry));
}
test.clear();
@@ -118,8 +117,7 @@ TEST_CASE(clear)
class IntrusiveRefPtrTest : public RefCounted<IntrusiveRefPtrTest> {
public:
- IntrusiveRefPtrTest(int key)
- : m_tree_node(key)
+ IntrusiveRefPtrTest()
{
}
@@ -129,11 +127,11 @@ using IntrusiveRefPtrRBTree = IntrusiveRedBlackTree<int, IntrusiveRefPtrTest, Re
TEST_CASE(intrusive_ref_ptr_no_ref_leaks)
{
- auto item = adopt_ref(*new IntrusiveRefPtrTest(0));
+ auto item = adopt_ref(*new IntrusiveRefPtrTest());
EXPECT_EQ(1u, item->ref_count());
IntrusiveRefPtrRBTree ref_tree;
- ref_tree.insert(*item);
+ ref_tree.insert(0, *item);
EXPECT_EQ(2u, item->ref_count());
ref_tree.remove(0);
@@ -142,11 +140,11 @@ TEST_CASE(intrusive_ref_ptr_no_ref_leaks)
TEST_CASE(intrusive_ref_ptr_clear)
{
- auto item = adopt_ref(*new IntrusiveRefPtrTest(0));
+ auto item = adopt_ref(*new IntrusiveRefPtrTest());
EXPECT_EQ(1u, item->ref_count());
IntrusiveRefPtrRBTree ref_tree;
- ref_tree.insert(*item);
+ ref_tree.insert(0, *item);
EXPECT_EQ(2u, item->ref_count());
ref_tree.clear();
@@ -155,12 +153,12 @@ TEST_CASE(intrusive_ref_ptr_clear)
TEST_CASE(intrusive_ref_ptr_destructor)
{
- auto item = adopt_ref(*new IntrusiveRefPtrTest(0));
+ auto item = adopt_ref(*new IntrusiveRefPtrTest());
EXPECT_EQ(1u, item->ref_count());
{
IntrusiveRefPtrRBTree ref_tree;
- ref_tree.insert(*item);
+ ref_tree.insert(0, *item);
EXPECT_EQ(2u, item->ref_count());
}
@@ -169,8 +167,7 @@ TEST_CASE(intrusive_ref_ptr_destructor)
class IntrusiveNonnullRefPtrTest : public RefCounted<IntrusiveNonnullRefPtrTest> {
public:
- IntrusiveNonnullRefPtrTest(int key)
- : m_tree_node(key)
+ IntrusiveNonnullRefPtrTest()
{
}
@@ -180,11 +177,11 @@ using IntrusiveNonnullRefPtrRBTree = IntrusiveRedBlackTree<int, IntrusiveNonnull
TEST_CASE(intrusive_nonnull_ref_ptr_intrusive)
{
- auto item = adopt_ref(*new IntrusiveNonnullRefPtrTest(0));
+ auto item = adopt_ref(*new IntrusiveNonnullRefPtrTest());
EXPECT_EQ(1u, item->ref_count());
IntrusiveNonnullRefPtrRBTree nonnull_ref_tree;
- nonnull_ref_tree.insert(*item);
+ nonnull_ref_tree.insert(0, *item);
EXPECT_EQ(2u, item->ref_count());
EXPECT(!nonnull_ref_tree.is_empty());