Crates.io | bubbletree |
lib.rs | bubbletree |
version | 0.1.2 |
source | src |
created_at | 2024-07-24 01:27:19.446708 |
updated_at | 2024-09-04 05:37:54.799008 |
description | Rust implementation of Bubble-tree |
homepage | https://github.com/azizkayumov/bubbletree |
repository | https://github.com/azizkayumov/bubbletree |
max_upload_size | |
id | 1313509 |
size | 28,069 |
Bubble-tree: a dynamic tree structure for maintaining data bubbles of fully dynamic data w.r.t. compression factor.
The following example shows how to maintain data bubbles of fully dynamic data for a given compression factor:
use bubbletree::BubbleTree;
#[test]
pub fn example_usage() {
// Configure the tree
let fanout = 4;
let compression_factor = 3;
let mut tree = BubbleTree::new(fanout, compression_factor);
// Insert points
let a = tree.insert([0.0, 0.0]);
let b = tree.insert([1.0, 1.0]);
let c = tree.insert([2.0, 2.0]);
let d = tree.insert([10.0, 10.0]);
let e = tree.insert([11.0, 11.0]);
let f = tree.insert([12.0, 12.0]);
// Confirm that the tree should have 2 leaves:
assert_eq!(tree.num_leaves, 2);
// 6 points compressed into 2 groups (or data bubbles)
// a, b, c should be in the same group
assert!(tree.parent_of(a) == tree.parent_of(b));
assert!(tree.parent_of(b) == tree.parent_of(c));
assert_ne!(tree.parent_of(a), tree.parent_of(d));
// d, e, f should be in the same group
assert!(tree.parent_of(d) == tree.parent_of(e));
assert!(tree.parent_of(e) == tree.parent_of(f));
}
This project is licensed under the Apache License, Version 2.0 - See the LICENSE.md file for details.