69 lines
2.0 KiB
C++
69 lines
2.0 KiB
C++
|
#include "testutils/DataTreeShrinkingTest.h"
|
||
|
|
||
|
using blobstore::onblocks::datatreestore::DataTree;
|
||
|
using blockstore::Key;
|
||
|
|
||
|
class DataTreeShrinkingTest_DepthFlags: public DataTreeShrinkingTest {
|
||
|
public:
|
||
|
};
|
||
|
|
||
|
TEST_F(DataTreeShrinkingTest_DepthFlags, ShrinkATwoLeafTree) {
|
||
|
auto key = CreateTwoLeaf()->key();
|
||
|
Shrink(key);
|
||
|
CHECK_DEPTH(0, key);
|
||
|
}
|
||
|
|
||
|
TEST_F(DataTreeShrinkingTest_DepthFlags, ShrinkAFourNodeThreeLeafTree) {
|
||
|
auto key = CreateFourNodeThreeLeaf()->key();
|
||
|
Shrink(key);
|
||
|
CHECK_DEPTH(1, key);
|
||
|
}
|
||
|
|
||
|
TEST_F(DataTreeShrinkingTest_DepthFlags, ShrinkATwoInnerNodeOneTwoLeavesTree) {
|
||
|
auto key = CreateTwoInnerNodeOneTwoLeaves()->key();
|
||
|
Shrink(key);
|
||
|
CHECK_DEPTH(2, key);
|
||
|
}
|
||
|
|
||
|
TEST_F(DataTreeShrinkingTest_DepthFlags, ShrinkATwoInnerNodeTwoOneLeavesTree) {
|
||
|
auto key = CreateTwoInnerNodeTwoOneLeaves()->key();
|
||
|
Shrink(key);
|
||
|
CHECK_DEPTH(1, key);
|
||
|
}
|
||
|
|
||
|
TEST_F(DataTreeShrinkingTest_DepthFlags, ShrinkAThreeLevelMinDataTree) {
|
||
|
auto key = CreateThreeLevelMinData()->key();
|
||
|
Shrink(key);
|
||
|
CHECK_DEPTH(1, key);
|
||
|
}
|
||
|
|
||
|
TEST_F(DataTreeShrinkingTest_DepthFlags, ShrinkAFourLevelMinDataTree) {
|
||
|
auto key = CreateFourLevelMinData()->key();
|
||
|
Shrink(key);
|
||
|
CHECK_DEPTH(2, key);
|
||
|
}
|
||
|
|
||
|
TEST_F(DataTreeShrinkingTest_DepthFlags, ShrinkAFourLevelTreeWithTwoSiblingLeaves1) {
|
||
|
auto key = CreateFourLevelWithTwoSiblingLeaves1()->key();
|
||
|
Shrink(key);
|
||
|
CHECK_DEPTH(3, key);
|
||
|
}
|
||
|
|
||
|
TEST_F(DataTreeShrinkingTest_DepthFlags, ShrinkAFourLevelTreeWithTwoSiblingLeaves2) {
|
||
|
auto key = CreateFourLevelWithTwoSiblingLeaves2()->key();
|
||
|
Shrink(key);
|
||
|
CHECK_DEPTH(3, key);
|
||
|
}
|
||
|
|
||
|
TEST_F(DataTreeShrinkingTest_DepthFlags, ShrinkATreeWithFirstChildOfRootFullThreelevelAndSecondChildMindataThreelevel) {
|
||
|
auto key = CreateWithFirstChildOfRootFullThreelevelAndSecondChildMindataThreelevel()->key();
|
||
|
Shrink(key);
|
||
|
CHECK_DEPTH(3, key);
|
||
|
}
|
||
|
|
||
|
TEST_F(DataTreeShrinkingTest_DepthFlags, ShrinkAThreeLevelTreeWithThreeChildrenOfRoot) {
|
||
|
auto key = CreateThreeLevelWithThreeChildrenOfRoot()->key();
|
||
|
Shrink(key);
|
||
|
CHECK_DEPTH(2, key);
|
||
|
}
|