Changeset View
Changeset View
Standalone View
Standalone View
src/test/radix_tests.cpp
Show First 20 Lines • Show All 638 Lines • ▼ Show 20 Lines | BOOST_AUTO_TEST_CASE(radix_adapter) { | ||||
BOOST_CHECK(mytree.remove(3)); | BOOST_CHECK(mytree.remove(3)); | ||||
BOOST_CHECK(!mytree.get(0)); | BOOST_CHECK(!mytree.get(0)); | ||||
BOOST_CHECK(!mytree.get(1)); | BOOST_CHECK(!mytree.get(1)); | ||||
BOOST_CHECK(!mytree.get(2)); | BOOST_CHECK(!mytree.get(2)); | ||||
BOOST_CHECK(!mytree.get(3)); | BOOST_CHECK(!mytree.get(3)); | ||||
} | } | ||||
BOOST_AUTO_TEST_CASE(radix_is_null) { | |||||
using E = TestElement<uint32_t>; | |||||
RadixTree<E> mytree; | |||||
BOOST_CHECK(mytree.isNull()); | |||||
auto zero = RCUPtr<E>::make(0); | |||||
auto one = RCUPtr<E>::make(1); | |||||
auto two = RCUPtr<E>::make(2); | |||||
auto three = RCUPtr<E>::make(3); | |||||
auto keyZero = zero->getId(); | |||||
auto keyOne = one->getId(); | |||||
auto keyTwo = two->getId(); | |||||
auto keyThree = three->getId(); | |||||
// Insert an element, we have 0 node and 1 leaf | |||||
BOOST_CHECK(mytree.insert(zero)); | |||||
BOOST_CHECK(!mytree.isNull()); | |||||
// Remove it, we have 0 node and 0 leaf | |||||
BOOST_CHECK(mytree.remove(keyZero)); | |||||
BOOST_CHECK(mytree.isNull()); | |||||
// Insert more, we have 1 node and 3 leaves | |||||
BOOST_CHECK(mytree.insert(one)); | |||||
BOOST_CHECK(mytree.insert(two)); | |||||
BOOST_CHECK(mytree.insert(three)); | |||||
BOOST_CHECK(!mytree.isNull()); | |||||
// Remove them, we have 1 node and 0 leaf | |||||
BOOST_CHECK(mytree.remove(keyOne)); | |||||
BOOST_CHECK(mytree.remove(keyTwo)); | |||||
BOOST_CHECK(mytree.remove(keyThree)); | |||||
BOOST_CHECK(!mytree.isNull()); | |||||
// Copy the tree | |||||
RadixTree<E> copiedTree = mytree; | |||||
BOOST_CHECK(!mytree.isNull()); | |||||
BOOST_CHECK(!copiedTree.isNull()); | |||||
// Assign to empty | |||||
mytree = {}; | |||||
BOOST_CHECK(mytree.isNull()); | |||||
} | |||||
BOOST_AUTO_TEST_SUITE_END() | BOOST_AUTO_TEST_SUITE_END() |