relmath-rs 0.7.0

Relation-first mathematics and scientific computing in Rust.
Documentation
//! Integration tests for partial-order detection.

use relmath::{BinaryRelation, UnaryRelation};

#[test]
fn recognizes_partial_orders() {
    let divides =
        BinaryRelation::from_pairs([(1_u8, 1_u8), (1, 2), (1, 4), (2, 2), (2, 4), (4, 4)]);

    let carrier = UnaryRelation::from_values([1_u8, 2_u8, 4_u8]);

    assert!(divides.is_reflexive(&carrier));
    assert!(divides.is_antisymmetric());
    assert!(divides.is_transitive());
    assert!(divides.is_partial_order(&carrier));
    assert!(!divides.is_equivalence(&carrier));
}

#[test]
fn rejects_symmetric_two_cycles_as_partial_orders() {
    let related = BinaryRelation::from_pairs([(1_u8, 1_u8), (1, 2), (2, 1), (2, 2)]);
    let carrier = UnaryRelation::from_values([1_u8, 2_u8]);

    assert!(!related.is_partial_order(&carrier));
}