use-geode 0.0.1

Utility-first Geode-array primitives for RustUse
Documentation
use use_catalan::catalan;
use use_geode::{
    GeodeError, TypeVector, catalan_from_geode_dimension, geode, geode_memoized, hyper_catalan,
    polygon_edge_count, polygon_vertex_count,
};

#[test]
fn direct_geode_usage_covers_core_workflow() -> Result<(), GeodeError> {
    let vector = TypeVector::new(vec![0, 1])?;

    assert_eq!(polygon_edge_count(&vector)?, 4);
    assert_eq!(polygon_vertex_count(&vector)?, 4);
    assert_eq!(hyper_catalan(&vector)?, 1);
    assert_eq!(geode(&vector)?, 3);
    assert_eq!(geode_memoized(&vector)?, 3);

    Ok(())
}

#[test]
fn first_axis_helper_matches_use_catalan() -> Result<(), GeodeError> {
    for n in 0_u64..=5 {
        let catalan_value = catalan(n).map_err(|_| GeodeError::ArithmeticOverflow)?;
        assert_eq!(catalan_from_geode_dimension(n)?, catalan_value);
    }

    Ok(())
}