ordist 0.2.0

Order distance package
Documentation
use ordist::error::*;
use ordist::ordmap::*;

use std::iter::FromIterator;

#[test]
fn error() {
    let v1 = vec![1, 2, 3, 4, 5];
    let om1 = OrdMap::from_iter(v1);

    let v2 = vec![1, 3, 5, 2, 4];
    let om2 = OrdMap::from_iter(v2);
    assert_eq!(om1.identical(&om2).unwrap(), ());

    let v3 = vec![1, 2, 3, 4, 5, 6];
    let om3 = OrdMap::from_iter(v3);
    match om1.identical(&om3) {
        Err(OrDistError::DifferentLength { left: _, right: _ }) => {}
        _ => assert!(false),
    }

    let v4 = vec![1, 2, 3, 4, 6];
    let om4 = OrdMap::from_iter(v4);
    match om1.identical(&om4) {
        Err(OrDistError::ElementNotFound(_)) => {}
        _ => assert!(false),
    }

    let v5 = vec![1, 2, 3, 4, 5];
    let mut om5 = OrdMap::from_iter(v5);
    *(om5.data.get_mut(&2).unwrap()) = 10;
    match om1.identical(&om5) {
        Err(OrDistError::RankOutOfLength {
            length: _,
            rank: _,
            elem: _,
        }) => {}
        _ => assert!(false),
    }

    *(om5.data.get_mut(&2).unwrap()) = 0;
    match om1.identical(&om5) {
        Err(OrDistError::DuplicateRank(_)) => {}
        _ => assert!(false),
    }
}