rules 0.0.2

An implementation of Perl 6 regex rules
Documentation
use super::generate;

#[test]
fn partial_overlap() {
    let left  = generate(vec![('3', '4')]);
    let right = generate(vec![('4', '6')]);

    let other = generate(vec![('3', '6')]);

    assert_eq!(left.union(&right), other);
    assert_eq!(right.union(&left), other);
}
#[test]
fn subset() {
    let set = generate(vec![('1', '5')]);

    let inner = generate(vec![('2', '3')]);
    let left  = generate(vec![('1', '3')]);
    let right = generate(vec![('2', '5')]);
    let both  = generate(vec![('1', '5')]);

    let other = generate(vec![('1', '5')]);

    assert_eq!(set.union(&inner), other);
    assert_eq!(set.union(&left), other);
    assert_eq!(set.union(&right), other);
    assert_eq!(set.union(&both), other);
}
#[test]
fn superset() {
    let set      = generate(vec![('3', '5')]);
    let superset = generate(vec![('2', '6')]);

    assert_eq!(set.union(&superset), superset);
    assert_eq!(superset.union(&set), superset);
}
#[test]
fn disjoint() {
    let left  = generate(vec![('2', '4')]);
    let right = generate(vec![('6', '8')]);

    let other = generate(vec![('2', '4'), ('6', '8')]);

    assert_eq!(left.union(&right), other);
    assert_eq!(right.union(&left), other);
}
#[test]
fn disjoint_extend() {
    let left  = generate(vec![('2', '4')]);
    let right = generate(vec![('5', '8')]);

    let other = generate(vec![('2', '8')]);

    assert_eq!(left.union(&right), other);
    assert_eq!(right.union(&left), other);
}