molframe-core 0.6.1

Core types, storage and analysis contracts for molframe
Documentation
use super::*;

#[test]
fn codes_render_with_a_stable_prefix_and_four_digits() {
    assert_eq!(Code::E1001.to_string(), "MOLFRAME-E1001");
    assert_eq!(Code::W3011.to_string(), "MOLFRAME-W3011");
}

#[test]
fn strictness_decides_which_severities_are_errors() {
    assert!(!Severity::Loose.is_error(Strictness::Strict));
    assert!(Severity::Strict.is_error(Strictness::Strict));
    assert!(!Severity::Strict.is_error(Strictness::Medium));
    assert!(Severity::Invalidating.is_error(Strictness::Medium));
    assert!(!Severity::Invalidating.is_error(Strictness::Loose));
    assert!(Severity::Breaking.is_error(Strictness::Loose));
}

#[test]
fn the_leading_digit_names_the_class() {
    assert_eq!(Code::E1103.class(), Class::Syntax);
    assert_eq!(Code::E2001.class(), Class::Schema);
    assert_eq!(Code::W3011.class(), Class::Consistency);
    assert_eq!(Code::E4102.class(), Class::Conversion);
    assert_eq!(Code::E6001.class(), Class::Policy);
    assert_eq!(Code::E9001.class(), Class::Internal);
}

#[test]
fn an_unregistered_code_reads_as_breaking_rather_than_as_harmless() {
    let invented = Code::new(Kind::Error, 1);
    assert!(!invented.is_registered());
    assert_eq!(invented.severity(), Severity::Breaking);
}