maryada 0.1.1

No-std binary64 real interval arithmetic conforming to IEEE 1788.1
Documentation
use maryada::{DecoratedInterval, Interval, convex_hull, disjoint, interior, intersection, subset};

#[test]
fn constructors_and_set_operations_follow_the_set_based_model() {
    assert!(maryada::new::<Interval>(2.0, 1.0).is_empty());
    assert!(maryada::singleton::<Interval>(f64::NAN).is_empty());
    assert!(maryada::new::<DecoratedInterval>(2.0, 1.0).is_nai());
    assert!(maryada::singleton::<DecoratedInterval>(f64::NAN).is_nai());

    let inner = Interval::new(1.0, 2.0);
    let outer = Interval::new(0.0, 3.0);
    let apart = Interval::new(4.0, 5.0);

    assert!(subset(inner, outer));
    assert!(interior(inner, outer));
    assert!(disjoint(inner, apart));
    assert_eq!(intersection(inner, outer), inner);
    assert_eq!(convex_hull(inner, outer), outer);
    assert_eq!(intersection(inner, apart), Interval::EMPTY);
    assert_eq!(convex_hull(Interval::EMPTY, outer), outer);
}