conspire 0.7.6

The Rust interface to conspire.
Documentation
use crate::geometry::{
    mesh::test::sphere,
    ntree::{CurvatureSizing, Octree, Sizing},
};

#[test]
fn a_size_field_knows_the_depth_it_asks_for() {
    let tessellation = sphere(4, 8, 2.0);
    let ordinary = Sizing::new(&tessellation, 4.0, CurvatureSizing::default(), 0);
    assert!(ordinary.levels() <= 15);
    assert!(ordinary.fits::<u16>());
    assert!(Octree::<u16, usize>::refine(&ordinary).is_ok());
    let deep = Sizing::new(&tessellation, 1.0e6, CurvatureSizing::default(), 0);
    assert!(deep.levels() > 15);
    assert!(!deep.fits::<u16>());
    assert!(deep.fits::<u32>());
    assert_eq!(
        Octree::<u16, usize>::refine(&deep).err(),
        Some("sizing field exceeds maximum octree depth")
    );
}