kdtree 0.8.1

K-dimensional tree in Rust for fast geospatial indexing and nearest neighbors lookup
Documentation
use kdtree::KdTree;

#[test]
fn bounding_box_returns_all_points_in_range() {
    let mut tree = KdTree::with_capacity(2, 2);
    for i in 0..10 {
        for j in 0..10 {
            let id = i.to_string() + &j.to_string();
            tree.add([i as f64, j as f64], id).unwrap();
        }
    }

    let within: Vec<String> = tree
        .bounding_box(&[4.0, 4.0], &[6.0, 6.0])
        .unwrap()
        .iter()
        .cloned()
        .cloned()
        .collect();
    assert_eq!(within.len(), 9);
    assert!(within.contains(&String::from("44")));
    assert!(within.contains(&String::from("45")));
    assert!(within.contains(&String::from("46")));
    assert!(within.contains(&String::from("54")));
    assert!(within.contains(&String::from("55")));
    assert!(within.contains(&String::from("56")));
    assert!(within.contains(&String::from("64")));
    assert!(within.contains(&String::from("65")));
    assert!(within.contains(&String::from("66")));
}