bubbletree

Crates.iobubbletree
lib.rsbubbletree
version0.1.2
sourcesrc
created_at2024-07-24 01:27:19.446708
updated_at2024-09-04 05:37:54.799008
descriptionRust implementation of Bubble-tree
homepagehttps://github.com/azizkayumov/bubbletree
repositoryhttps://github.com/azizkayumov/bubbletree
max_upload_size
id1313509
size28,069
Aziz Kayumov (azizkayumov)

documentation

https://docs.rs/bubbletree

README

GitHub Workflow Status crates.io

bubbletree

Bubble-tree: a dynamic tree structure for maintaining data bubbles of fully dynamic data w.r.t. compression factor.

Usage

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));
}

License

This project is licensed under the Apache License, Version 2.0 - See the LICENSE.md file for details.

Commit count: 0

cargo fmt