diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 18:24:20 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 18:24:20 +0000 |
commit | 483eb2f56657e8e7f419ab1a4fab8dce9ade8609 (patch) | |
tree | e5d88d25d870d5dedacb6bbdbe2a966086a0a5cf /src/test/old/testtree.cc | |
parent | Initial commit. (diff) | |
download | ceph-483eb2f56657e8e7f419ab1a4fab8dce9ade8609.tar.xz ceph-483eb2f56657e8e7f419ab1a4fab8dce9ade8609.zip |
Adding upstream version 14.2.21.upstream/14.2.21upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/old/testtree.cc')
-rw-r--r-- | src/test/old/testtree.cc | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/test/old/testtree.cc b/src/test/old/testtree.cc new file mode 100644 index 00000000..2c21bcbe --- /dev/null +++ b/src/test/old/testtree.cc @@ -0,0 +1,46 @@ + + +#include "../crush/BinaryTree.h" +using namespace crush; + +#include <iostream> +#include <vector> +using namespace std; + +int main() +{ + BinaryTree t; + + vector<int> nodes; + + for (int i=0; i<30; i++) { + cout << "adding " << i << endl; + int n = t.add_node(1); + nodes.push_back(n); + //cout << t << endl; + } + cout << t << endl; + + for (int k=0; k<10000; k++) { + if (rand() % 2) { + cout << "adding" << endl; + nodes.push_back( t.add_node(1) ); + } else { + if (!nodes.empty()) { + //for (int i=0; i<nodes.size(); i++) { + int p = rand() % nodes.size(); + int n = nodes[p]; + assert (t.exists(n)); + cout << "removing " << n << endl; + t.remove_node(n); + + for (int j=p; j<nodes.size(); j++) + nodes[j] = nodes[j+1]; + nodes.pop_back(); + } + } + cout << t << endl; + } + + +} |