Skip to content
Snippets Groups Projects
Commit 3f24bc38 authored by Jirka Fink's avatar Jirka Fink
Browse files

Splay operation: One test is improved

parent ff52d832
No related branches found
No related tags found
No related merge requests found
......@@ -107,7 +107,7 @@ class TestSplay {
}
};
const int elements = 5000000;
const int elements = 5000000; // Must be even!
void test_lookup() {
// Insert even numbers
......@@ -200,14 +200,16 @@ void test_remove() {
tree.remove(0);
}
{
Node *node = nullptr;
for (int i = 1; i < elements; i++)
node = new Node(i, nullptr, node, nullptr);
node = new Node(0, nullptr, nullptr, node);
Tree tree(node);
Node *left_subtree = nullptr, *right_subtree = nullptr;
for (int i = elements/2-1; i >= 0; i--) {
left_subtree = new Node(i, nullptr, nullptr, left_subtree);
right_subtree = new Node(elements-i, nullptr, right_subtree, nullptr);
}
Node *root = new Node(elements/2, nullptr, left_subtree, right_subtree);
Tree tree(root);
for (int i = 1; i < elements; i++)
tree.remove(i);
while(tree.root)
tree.remove(tree.root->key);
}
}
......
......@@ -97,7 +97,7 @@ def test_insert():
assert flatten(tree) == sorted(sequence), "Incorrect tree after a sequence of inserts"
# Test speed
elements = 200000
elements = 200000 # Must be even!
tree = Tree()
for elem in range(elements):
for _ in range(10):
......@@ -141,13 +141,14 @@ def test_remove():
for elem in range(elements):
tree.remove(0)
node = None
for i in range(1, elements):
node = Node(i, None, node, None)
node = Node(0, None, None, node)
left_subtree = right_subtree = None
for i in reversed(range(0, elements//2)):
left_subtree = Node(i, right=left_subtree)
right_subtree = Node(elements-i, left=right_subtree)
node = Node(elements//2, left=left_subtree, right=right_subtree)
tree = Tree(node)
for i in range(1, elements):
tree.remove(i)
while tree.root is not None:
tree.remove(tree.root.key)
tests = [
("splay", test_splay),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment